fix diagram delete confirmation

This commit is contained in:
Daniel 2026-05-08 06:28:12 +02:00
parent 9af599a0b0
commit f8b563e642
4 changed files with 12 additions and 8 deletions

View file

@ -494,7 +494,7 @@
<script defer src="/js/peGuide.js"></script>
<script defer src="/js/extensions.js"></script>
<script type="module" src="/js/notes.js"></script>
<script defer src="/js/diagrams.js"></script>
<script type="module" src="/js/diagrams.js"></script>
<script type="module" src="/js/clinicalAssistant.js"></script>
<script defer src="/js/nextcloud.js"></script>
<script type="module" src="/js/wellVisit.js"></script>

View file

@ -3,8 +3,6 @@
// Source on the left, live SVG preview on the right. CRUD against
// /api/diagrams. Autosaves on quiet typing like Personal Notes.
// ============================================================
(function () {
'use strict';
var initialized = false;
var mermaidReady = false;
@ -243,9 +241,7 @@
function onDelete() {
if (currentId == null) return;
var id = currentId;
var confirmFn = window.showConfirm || function (msg) { return Promise.resolve(window.confirm(msg)); };
Promise.resolve(confirmFn('Delete this diagram?')).then(function (ok) {
if (!ok) return;
confirmDelete('Delete this diagram?', function () {
fetch('/api/diagrams/' + id, {
method: 'DELETE',
credentials: 'include',
@ -257,6 +253,14 @@
});
}
function confirmDelete(message, onConfirm) {
if (window.showConfirm) {
window.showConfirm(message, onConfirm, { danger: true, confirmText: 'Delete' });
return;
}
if (window.confirm(message)) onConfirm();
}
// ── Render ─────────────────────────────────────────────────
function scheduleRender(delay) {
if (renderTimer) clearTimeout(renderTimer);
@ -394,4 +398,3 @@
document.addEventListener('visibilitychange', function () {
if (document.visibilityState === 'hidden') flushSaveIfPending();
});
})();

View file

@ -7,6 +7,7 @@ const moduleEntrypoints = [
'public/js/calculators.js',
'public/js/clinicalAssistant.js',
'public/js/admin.js',
'public/js/diagrams.js',
'public/js/notes.js',
'public/js/wellVisit.js'
];

View file

@ -17,7 +17,7 @@ const assert = require('node:assert/strict');
const { JSDOM } = require('jsdom');
const createDOMPurify = require('dompurify');
// Match the allowlist used in public/js/notes.js `sanitizeHtml`.
// Match the allowlist used in public/js/notes/utils.js `sanitizeHtml`.
const ALLOWED_TAGS = ['p','br','strong','em','b','i','u','s','h2','h3','h4',
'ul','ol','li','a','blockquote','code','pre','hr'];
const ALLOWED_ATTR = ['href','target','rel'];