import server from "../services/server.js"; import treeCache from "../services/tree_cache.js"; import linkService from "../services/link.js"; import utils from "../services/utils.js"; const $dialog = $("#delete-notes-dialog"); const $okButton = $("#delete-notes-dialog-ok-button"); const $cancelButton = $("#delete-notes-dialog-cancel-button"); const $deleteNotesList = $("#delete-notes-list"); const $brokenRelationsList = $("#broken-relations-list"); const $deletedNotesCount = $("#deleted-notes-count"); const $noNoteToDeleteWrapper = $("#no-note-to-delete-wrapper"); const $deleteNotesListWrapper = $("#delete-notes-list-wrapper"); const $brokenRelationsListWrapper = $("#broken-relations-wrapper"); const $brokenRelationsCount = $("#broke-relations-count"); 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 let branchIds = null; let resolve = null; export async function showDialog(branchIdsToDelete) { branchIds = branchIdsToDelete; $originallyFocused = $(':focus'); const response = await server.post('delete-notes-preview', {branchIdsToDelete}); $deleteNotesList.empty(); $brokenRelationsList.empty(); $deleteNotesListWrapper.toggle(response.noteIdsToBeDeleted.length > 0); $noNoteToDeleteWrapper.toggle(response.noteIdsToBeDeleted.length === 0); for (const note of await treeCache.getNotes(response.noteIdsToBeDeleted)) { $deleteNotesList.append( $("
${attr.name} originating from `)
.append(await linkService.createNoteLink(attr.noteId))
);
}
utils.openDialog($dialog);
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"));
$cancelButton.on('click', () => {
utils.closeActiveDialog();
resolve({proceed: false});
});
$okButton.on('click', () => {
utils.closeActiveDialog();
resolve({
proceed: true,
deleteClones: false
});
});