From bf1c2c61721f8179f7baa25e34a1860d0bf6d831 Mon Sep 17 00:00:00 2001 From: Bruno Charest Date: Mon, 20 Apr 2026 13:54:33 -0400 Subject: [PATCH] =?UTF-8?q?feat:=20impl=C3=A9menter=20modal=20confirmation?= =?UTF-8?q?=20actions=20bulk=20avec=20preview=20liste=20liens=20(ID=20+=20?= =?UTF-8?q?titre),=20styles=20d=C3=A9di=C3=A9s=20(max-width=20520px,=20lis?= =?UTF-8?q?t=20scrollable=20320px,=20boutons=20color=C3=A9s=20par=20action?= =?UTF-8?q?=20delete/public/private),=20synchronisation=20mode=20th=C3=A8m?= =?UTF-8?q?e=20vers=20bookmark=20via=20fetch/POST=20formulaire,=20refactor?= =?UTF-8?q?ing=20actions=20bulk=20(delete/visibility)=20avec=20URLs=20GET?= =?UTF-8?q?=20params=20au=20lieu=20de=20forms=20POST,=20ajout=20token=20sh?= =?UTF-8?q?aarli=20dans=20includes.html,=20correction=20tag=20config=20boo?= =?UTF-8?q?kmark=20(shaarit=5Fconfig=E2=86=92themes),=20et=20support=20fer?= =?UTF-8?q?meture=20modal=20ESC/overlay-click?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- shaarli-pro/css/style.css | 99 ++++++++++++ shaarli-pro/includes.html | 13 ++ shaarli-pro/js/script.js | 303 +++++++++++++++++++++++++++-------- shaarli-pro/page.footer.html | 16 ++ shaarli-pro/tools.html | 27 +++- 5 files changed, 387 insertions(+), 71 deletions(-) diff --git a/shaarli-pro/css/style.css b/shaarli-pro/css/style.css index b5fc3e4..4cffe72 100644 --- a/shaarli-pro/css/style.css +++ b/shaarli-pro/css/style.css @@ -797,6 +797,105 @@ input:checked+.theme-slider:before { margin-top: 1.75rem; } +.bulk-modal { + max-width: 520px; +} + +.bulk-modal-header h3 { + margin: 0; + font-size: 1.25rem; + color: var(--text-main); +} + +.bulk-modal-header p { + margin: 0.3rem 0 0; + color: var(--text-secondary); + font-size: 0.95rem; +} + +.bulk-modal-list { + margin: 1.5rem 0; + border: 1px solid var(--border-light); + border-radius: 0.65rem; + max-height: 320px; + overflow-y: auto; + background: var(--bg-body); +} + +.bulk-modal-item { + display: flex; + gap: 0.75rem; + padding: 0.85rem 1rem; + border-bottom: 1px solid var(--border-light); + font-size: 0.95rem; + align-items: center; +} + +.bulk-modal-item:last-child { + border-bottom: none; +} + +.bulk-modal-item-id { + font-weight: 600; + color: var(--primary); + min-width: 70px; +} + +.bulk-modal-item-title { + color: var(--text-main); + flex: 1; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +.bulk-modal-actions { + display: flex; + justify-content: flex-end; + gap: 0.75rem; +} + +.bulk-modal-btn { + min-width: 140px; + padding: 0.75rem 1.2rem; + border-radius: 0.5rem; + border: none; + font-weight: 600; + font-size: 0.9rem; + cursor: pointer; + transition: transform 0.15s ease, opacity 0.15s ease; +} + +.bulk-modal-btn:active { + transform: translateY(1px); +} + +.bulk-modal-cancel { + background: var(--bg-card-hover); + color: var(--text-secondary); +} + +.bulk-modal-confirm { + color: #fff; +} + +.bulk-modal-confirm.bulk-confirm-delete { + background: var(--danger); +} + +.bulk-modal-confirm.bulk-confirm-public { + background: var(--primary); +} + +.bulk-modal-confirm.bulk-confirm-private { + background: var(--info); + color: #0f172a; +} + +.bulk-modal-btn:hover { + opacity: 0.9; +} + @keyframes fadeIn { from { opacity: 0; diff --git a/shaarli-pro/includes.html b/shaarli-pro/includes.html index e06e58f..1597543 100644 --- a/shaarli-pro/includes.html +++ b/shaarli-pro/includes.html @@ -10,10 +10,22 @@