1
Fork 0
mirror of https://github.com/thegeneralist01/archivr synced 2026-07-22 03:05:32 +02:00

feat: bulk-action panel for multi-selected entries

When >= 2 entries are selected, ContextRail switches to a bulk panel:

- Count badge showing number of selected entries
- Assign tag: path input + Add button; applies assignTag() to all selected
  UIDs sequentially; shows done/error feedback; refreshes tag tree on success
- Add to collection: select populated from listCollections(); applies
  addEntryToCollection() to all UIDs (skips already-present errors)
- Delete: window.confirm with count; deletes sequentially; partial failures
  are skipped; calls onBulkDeleted() to remove all deleted entries from the
  list in one update
- Single-entry Tags/Delete/Collections sections gated with !isBulk to prevent
  flash of stale single-entry UI during the async auto-snap effect
- Transient bulk state (tag input, coll selection, delete spinner) resets
  whenever selectedUids changes
- CSS: bulk-count, bulk-coll-row/select, tag-add-btn:disabled
This commit is contained in:
TheGeneralist 2026-07-14 15:37:23 +02:00
parent 4d14ed3a32
commit c296634956
Signed by: thegeneralist01
SSH key fingerprint: SHA256:pp9qddbCNmVNoSjevdvQvM5z0DHN7LTa8qBMbcMq/R4
6 changed files with 213 additions and 55 deletions

View file

@ -4,8 +4,8 @@
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Archivr</title>
<script type="module" crossorigin src="/assets/index-BHmYoVqT.js"></script>
<link rel="stylesheet" crossorigin href="/assets/index-p2mzAHzf.css">
<script type="module" crossorigin src="/assets/index-B7dq_VAM.js"></script>
<link rel="stylesheet" crossorigin href="/assets/index-nbPbdgtG.css">
</head>
<body>
<div id="root"></div>