From 03a11e6f77cc29a198eab841cedb086168218f8b Mon Sep 17 00:00:00 2001 From: zadam Date: Thu, 11 Mar 2021 22:35:53 +0100 Subject: [PATCH] delete notes skeleton dialog --- package-lock.json | 2 +- src/public/app/dialogs/delete_notes.js | 54 ++++++++++++++++++++++++++ src/public/app/services/branches.js | 9 ++--- src/views/desktop.ejs | 1 + src/views/dialogs/delete_notes.ejs | 23 +++++++++++ 5 files changed, 83 insertions(+), 6 deletions(-) create mode 100644 src/public/app/dialogs/delete_notes.js create mode 100644 src/views/dialogs/delete_notes.ejs diff --git a/package-lock.json b/package-lock.json index aebe0d41f..7efaa46d3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "trilium", - "version": "0.46.3-beta", + "version": "0.46.4-beta", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/src/public/app/dialogs/delete_notes.js b/src/public/app/dialogs/delete_notes.js new file mode 100644 index 000000000..35eb880f5 --- /dev/null +++ b/src/public/app/dialogs/delete_notes.js @@ -0,0 +1,54 @@ +const $dialog = $("#delete-notes-dialog"); +const $confirmContent = $("#delete-notes-dialog-content"); +const $okButton = $("#delete-notes-dialog-ok-button"); +const $cancelButton = $("#delete-notes-dialog-cancel-button"); +const $custom = $("#delete-notes-dialog-custom"); + +const DELETE_NOTE_BUTTON_ID = "delete-notes-dialog-delete-note"; + +let $originallyFocused; // element focused before the dialog was opened so we can return to it afterwards + +export function showDialog(message) { + $originallyFocused = $(':focus'); + + $custom.hide(); + + glob.activeDialog = $dialog; + + if (typeof message === 'string') { + message = $("
").text(message); + } + + $confirmContent.empty().append(message); + + $dialog.modal(); + + return new Promise((res, rej) => { resolve = res; }); +} + +export function isDeleteNoteChecked() { + return $("#" + DELETE_NOTE_BUTTON_ID + ":checked").length > 0; +} + +$dialog.on('shown.bs.modal', () => $okButton.trigger("focus")); + +$dialog.on("hidden.bs.modal", () => { + if (resolve) { + resolve(false); + } + + if ($originallyFocused) { + $originallyFocused.trigger('focus'); + $originallyFocused = null; + } +}); + +function doResolve(ret) { + resolve(ret); + resolve = null; + + $dialog.modal("hide"); +} + +$cancelButton.on('click', () => doResolve(false)); +$okButton.on('click', () => doResolve(true)); diff --git a/src/public/app/services/branches.js b/src/public/app/services/branches.js index 0ae9c0a96..8f368626b 100644 --- a/src/public/app/services/branches.js +++ b/src/public/app/services/branches.js @@ -74,6 +74,9 @@ async function deleteNotes(branchIdsToDelete) { return false; } + const deleteNotesDialog = await import("../dialogs/delete_notes.js"); + deleteNotesDialog.showDialog(); + const $deleteClonesCheckbox = $('
') .append($('')) .append($('