fix diagram delete confirmation
This commit is contained in:
parent
9af599a0b0
commit
f8b563e642
4 changed files with 12 additions and 8 deletions
|
|
@ -494,7 +494,7 @@
|
||||||
<script defer src="/js/peGuide.js"></script>
|
<script defer src="/js/peGuide.js"></script>
|
||||||
<script defer src="/js/extensions.js"></script>
|
<script defer src="/js/extensions.js"></script>
|
||||||
<script type="module" src="/js/notes.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 type="module" src="/js/clinicalAssistant.js"></script>
|
||||||
<script defer src="/js/nextcloud.js"></script>
|
<script defer src="/js/nextcloud.js"></script>
|
||||||
<script type="module" src="/js/wellVisit.js"></script>
|
<script type="module" src="/js/wellVisit.js"></script>
|
||||||
|
|
|
||||||
|
|
@ -3,8 +3,6 @@
|
||||||
// Source on the left, live SVG preview on the right. CRUD against
|
// Source on the left, live SVG preview on the right. CRUD against
|
||||||
// /api/diagrams. Autosaves on quiet typing like Personal Notes.
|
// /api/diagrams. Autosaves on quiet typing like Personal Notes.
|
||||||
// ============================================================
|
// ============================================================
|
||||||
(function () {
|
|
||||||
'use strict';
|
|
||||||
|
|
||||||
var initialized = false;
|
var initialized = false;
|
||||||
var mermaidReady = false;
|
var mermaidReady = false;
|
||||||
|
|
@ -243,9 +241,7 @@
|
||||||
function onDelete() {
|
function onDelete() {
|
||||||
if (currentId == null) return;
|
if (currentId == null) return;
|
||||||
var id = currentId;
|
var id = currentId;
|
||||||
var confirmFn = window.showConfirm || function (msg) { return Promise.resolve(window.confirm(msg)); };
|
confirmDelete('Delete this diagram?', function () {
|
||||||
Promise.resolve(confirmFn('Delete this diagram?')).then(function (ok) {
|
|
||||||
if (!ok) return;
|
|
||||||
fetch('/api/diagrams/' + id, {
|
fetch('/api/diagrams/' + id, {
|
||||||
method: 'DELETE',
|
method: 'DELETE',
|
||||||
credentials: 'include',
|
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 ─────────────────────────────────────────────────
|
// ── Render ─────────────────────────────────────────────────
|
||||||
function scheduleRender(delay) {
|
function scheduleRender(delay) {
|
||||||
if (renderTimer) clearTimeout(renderTimer);
|
if (renderTimer) clearTimeout(renderTimer);
|
||||||
|
|
@ -394,4 +398,3 @@
|
||||||
document.addEventListener('visibilitychange', function () {
|
document.addEventListener('visibilitychange', function () {
|
||||||
if (document.visibilityState === 'hidden') flushSaveIfPending();
|
if (document.visibilityState === 'hidden') flushSaveIfPending();
|
||||||
});
|
});
|
||||||
})();
|
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,7 @@ const moduleEntrypoints = [
|
||||||
'public/js/calculators.js',
|
'public/js/calculators.js',
|
||||||
'public/js/clinicalAssistant.js',
|
'public/js/clinicalAssistant.js',
|
||||||
'public/js/admin.js',
|
'public/js/admin.js',
|
||||||
|
'public/js/diagrams.js',
|
||||||
'public/js/notes.js',
|
'public/js/notes.js',
|
||||||
'public/js/wellVisit.js'
|
'public/js/wellVisit.js'
|
||||||
];
|
];
|
||||||
|
|
|
||||||
|
|
@ -17,7 +17,7 @@ const assert = require('node:assert/strict');
|
||||||
const { JSDOM } = require('jsdom');
|
const { JSDOM } = require('jsdom');
|
||||||
const createDOMPurify = require('dompurify');
|
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',
|
const ALLOWED_TAGS = ['p','br','strong','em','b','i','u','s','h2','h3','h4',
|
||||||
'ul','ol','li','a','blockquote','code','pre','hr'];
|
'ul','ol','li','a','blockquote','code','pre','hr'];
|
||||||
const ALLOWED_ATTR = ['href','target','rel'];
|
const ALLOWED_ATTR = ['href','target','rel'];
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue