diff --git a/src/public/javascripts/dialogs/confirm.js b/src/public/javascripts/dialogs/confirm.js index 5a103ca70..efbc686df 100644 --- a/src/public/javascripts/dialogs/confirm.js +++ b/src/public/javascripts/dialogs/confirm.js @@ -7,8 +7,11 @@ const $custom = $("#confirm-dialog-custom"); const DELETE_NOTE_BUTTON_ID = "confirm-dialog-delete-note"; let resolve; +let $originallyFocused; // element focused before the dialog was opened so we can return to it afterwards function confirm(message) { + $originallyFocused = $(':focus'); + $custom.hide(); glob.activeDialog = $dialog; @@ -55,6 +58,11 @@ $dialog.on("hidden.bs.modal", () => { if (resolve) { resolve(false); } + + if ($originallyFocused) { + $originallyFocused.focus(); + $originallyFocused = null; + } }); function doResolve(ret) { diff --git a/src/public/javascripts/dialogs/info.js b/src/public/javascripts/dialogs/info.js index 35e067741..5a1eb3193 100644 --- a/src/public/javascripts/dialogs/info.js +++ b/src/public/javascripts/dialogs/info.js @@ -5,8 +5,11 @@ const $infoContent = $("#info-dialog-content"); const $okButton = $("#info-dialog-ok-button"); let resolve; +let $originallyFocused; // element focused before the dialog was opened so we can return to it afterwards function info(message) { + $originallyFocused = $(':focus'); + utils.closeActiveDialog(); glob.activeDialog = $dialog; @@ -24,6 +27,11 @@ $dialog.on("hidden.bs.modal", () => { if (resolve) { resolve(); } + + if ($originallyFocused) { + $originallyFocused.focus(); + $originallyFocused = null; + } }); $okButton.click(() => $dialog.modal("hide")); diff --git a/src/public/javascripts/services/branches.js b/src/public/javascripts/services/branches.js index fc2983f9d..dbcda42cf 100644 --- a/src/public/javascripts/services/branches.js +++ b/src/public/javascripts/services/branches.js @@ -6,6 +6,7 @@ import treeCache from "./tree_cache.js"; import treeUtils from "./tree_utils.js"; import hoistedNoteService from "./hoisted_note.js"; import noteDetailService from "./note_detail.js"; +import confirmDialog from "../dialogs/confirm.js"; async function moveBeforeNode(nodesToMove, beforeNode) { nodesToMove = await filterRootNote(nodesToMove); @@ -82,7 +83,7 @@ async function moveToNode(nodesToMove, toNode) { async function deleteNodes(nodes) { nodes = await filterRootNote(nodes); - if (nodes.length === 0 || !confirm('Are you sure you want to delete select note(s) and all the sub-notes?')) { + if (nodes.length === 0 || !await confirmDialog.confirm('Are you sure you want to delete select note(s) and all the sub-notes?')) { return false; }