diff --git a/js/app.js b/js/app.js index b5103f1..0ab3002 100644 --- a/js/app.js +++ b/js/app.js @@ -1244,7 +1244,7 @@ function highlightText(text, query) { function showShortcutsHelp() { const overlay = document.createElement('div'); overlay.className = 'custom-modal-overlay show'; - overlay.innerHTML = `

⌨️ Keyboard Shortcuts

Ctrl+NNew entryCtrl+ASelect allCtrl+FSearchCtrl+TToggle trashCtrl+LLock vaultCtrl+SSave entryEscClose modal / deselect◀ ▶Detail view nav?Show this help

💡 Click any entry to select, Shift+click for range, Ctrl+click to toggle

`; + overlay.innerHTML = `

⌨️ Keyboard Shortcuts

Ctrl+NNew entryCtrl+ASelect allCtrl+FSearchCtrl+TToggle trashCtrl+LLock vaultCtrl+SSave entryDelDelete selectedEscClose modal / deselect◀ ▶Detail view nav?Show this help

💡 Click any entry to select, Shift+click for range, Ctrl+click to toggle

`; document.body.appendChild(overlay); overlay.addEventListener('click', e => { if (e.target === overlay) overlay.remove(); }); } @@ -1408,7 +1408,15 @@ document.addEventListener('keydown', function(e) { showShortcutsHelp(); return; } - + + // Delete key — move to trash or permanently delete selected entries + if (e.key === 'Delete' && !isInput && selectedIds.size > 0 && document.getElementById('authSection').classList.contains('hidden')) { + e.preventDefault(); + if (showTrash) batchPermanentDelete(); + else batchDelete(); + return; + } + // Only handle Ctrl+[key], no Shift/Alt/Meta if (!e.ctrlKey || e.shiftKey || e.altKey || e.metaKey) return; @@ -1431,7 +1439,7 @@ document.addEventListener('keydown', function(e) { if (document.getElementById('addModal').classList.contains('show')) addEntry(); else if (document.getElementById('editModal').classList.contains('show')) saveEdit(); } else if (code === 'KeyA') { - if (!isInput && !document.getElementById('authSection').classList.contains('hidden')) { + if (!isInput && document.getElementById('authSection').classList.contains('hidden')) { getFilteredEntries(view === 'grouped' || view === 'detail').forEach(e => selectedIds.add(e.id)); updateBatchBar(); render();