Files
q-edit/docs/RELEASE_NOTES_v0.7.2.md
2025-09-02 18:43:09 -04:00

72 lines
3.9 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Q-Edit v0.7.2 — Bulk Delete & Preview Polish
**Date:** 2025-08-24
## Summary
This release adds a fast, multi-select **Delete Files** workflow, tightens the image preview size to keep rows compact, and clarifies controls in the Identifier column.
## Changes
### New: Multi-select “Delete Files” mode
- **Entry point:** A **Delete Files** button appears to the right of the “XY of Z results” summary.
- **Mode toggle:** Clicking it turns on _deleting mode_ (button reads **Deleting Files**). In this mode:
- Row **Delete** icons are replaced by **checkboxes**.
- The **Identifier** header shows a **Select All (this page)** checkbox with a label.
- A **Clear Selected** button appears when youve selected any rows.
- **Selection model:**
- **Scope:** Header **Select All** applies only to the current page.
- **Persistence:** Selections persist across pagination and service-chip filter changes.
- **Batch delete:**
- Pressing **Delete N Files** publishes a tiny **non-empty** placeholder file over each selected resource via `PUBLISH_MULTIPLE_QDN_RESOURCES` (same “deleted” semantics used elsewhere).
- After success, the UI removes those rows and recomputes totals and service counts.
### UI tweaks
- **Identifier column ordering:** Now **Delete** (left) → **Edit** → Identifier → Embed icon (for image-like services).
- **Thumbnails:** `img.preview-image` max height reduced **320px → 100px** to prevent tall rows.
## Implementation Notes
- **State**
- `bulkDeleteMode: boolean`
- `selectedForDeletion: Set<string>` where key is `${service}||${identifier||'default'}`
- **Key functions**
- `setBulkMode(on: boolean)` — toggles `bulkDeleteMode` **and** `body.bulk-mode` class.
- `updateBulkControlsUI()` — updates button label (**Delete N Files**), maintains **Select All** checked/indeterminate states.
- `bulkDeleteSelected()` — builds the `resources` array and calls `qortalRequest({ action: 'PUBLISH_MULTIPLE_QDN_RESOURCES', resources })`.
- `buildIdentifierCellHTML(result, identifier)` — single source of truth for Identifier cell content/order (renders checkbox + delete + edit + text + embed).
- **Rendering**
- `buildContentTable(...)` uses `${buildIdentifierCellHTML(result, identifier)}` for the Identifier cell.
- Summary bar injects **Delete Files / Delete N Files** and **Clear Selected** controls.
- **Styling**
- `.bulk-select { display: none; }` by default; visible in `body.bulk-mode`.
- `body.bulk-mode .clickable-delete { display: none; }` hides row Delete during bulk mode.
- Header includes a `<label for="select-all-checkbox">Select All</label>` for usability.
## Fixes & Hardening
- Ensured the body class **`bulk-mode`** is always in sync with `bulkDeleteMode` (prevents stale visibility).
- Replaced any stray `bulkDeleteMode = false;` with `setBulkMode(false);`.
- Corrected a typo that had produced `let setBulkMode(false);` causing a syntax error.
## Upgrade Steps
1. Replace **`script.js`** and **`style.css`** with the v0.7.2 versions.
2. No HTML changes required (header/summary DOM is generated by JS).
3. (Optional) You can add the auto-auth snippet to call `accountLogin()` once on load, but it isnt required for this release.
## QA Checklist
- Toggle **Delete Files**: checkboxes appear; row Delete icons hide; **Select All** shows with label.
- **Select All** checks only visible rows; button updates to **Delete N Files**.
- Navigate pages and switch service chips—selections persist.
- Click **Delete N Files**: selected items are removed; counts/summary refresh; no console errors.
- Non-bulk mode: Identifier column shows Delete → Edit → Identifier → Embed; thumbnails are small (~100px tall).
## Known Limitations
- **Select All** is page-scoped by design (wont select items on other pages).
- Batch publish must succeed for all selected resources; network errors produce a user-visible alert and leave selections intact for retry.