From f913a87b14f26b821b839f0b24421fc5343f97e4 Mon Sep 17 00:00:00 2001 From: Jukka Lampikoski Date: Thu, 12 Mar 2026 00:24:01 +0200 Subject: [PATCH] =?UTF-8?q?Lis=C3=A4=C3=A4=20kansion=20poisto=20-toiminto?= =?UTF-8?q?=20dokumenttien=20hallintaan?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Poisto-nappi (🗑) näkyy kansion päällä hover-tilassa - Vahvistusikkuna ennen poistoa - Kansion dokumentit ja alikansiot siirtyvät ylätasolle poistettaessa Co-Authored-By: Claude Opus 4.6 --- script.js | 10 +++++++++- style.css | 3 +++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/script.js b/script.js index 5e137ae..f6e2f29 100644 --- a/script.js +++ b/script.js @@ -4921,7 +4921,7 @@ function renderDocFolderBar() { const subfolders = allDocFolders.filter(f => (f.parent_id || null) === currentDocFolderId); const grid = document.getElementById('doc-folders-grid'); grid.innerHTML = subfolders.map(f => - `
📁 ${esc(f.name)}
` + `
📁 ${esc(f.name)}
` ).join(''); } @@ -4944,6 +4944,14 @@ function navigateDocFolder(folderId) { renderDocumentsList(); } +async function deleteDocFolder(folderId, folderName) { + if (!confirm(`Poistetaanko kansio "${folderName}"?\n\nKansion dokumentit ja alikansiot siirretään ylätasolle.`)) return; + try { + await apiCall('document_folder_delete', 'POST', { id: folderId }); + await loadDocuments(); + } catch (e) { alert('Kansion poisto epäonnistui: ' + e.message); } +} + // ---- Sub-tabit ---- function switchDocSubTab(target) { diff --git a/style.css b/style.css index 9c6e576..1a36e66 100644 --- a/style.css +++ b/style.css @@ -1621,6 +1621,9 @@ span.empty { transition: background 0.15s, border-color 0.15s; } .doc-folder-item:hover { background: #e5e7eb; } +.doc-folder-delete { background: none; border: none; cursor: pointer; font-size: 0.75rem; padding: 0 0.15rem; opacity: 0; transition: opacity 0.15s; margin-left: 0.25rem; } +.doc-folder-item:hover .doc-folder-delete { opacity: 0.6; } +.doc-folder-delete:hover { opacity: 1 !important; } #doc-breadcrumbs a { color: var(--primary-color); text-decoration: none; font-weight: 500; } #doc-breadcrumbs a:hover { text-decoration: underline; }