From f19adf3ee0d8ddf6e7dba7aec566ef7180c8c83b Mon Sep 17 00:00:00 2001 From: zadam Date: Mon, 30 May 2022 20:50:53 +0200 Subject: [PATCH] add the ability to sort notes by folders first, closes #2649 --- src/public/app/dialogs/sort_child_notes.js | 3 ++- src/public/app/widgets/toc.js | 2 -- src/routes/api/notes.js | 6 +++--- src/views/dialogs/sort_child_notes.ejs | 11 +++++++++++ 4 files changed, 16 insertions(+), 6 deletions(-) diff --git a/src/public/app/dialogs/sort_child_notes.js b/src/public/app/dialogs/sort_child_notes.js index f6a28dd5f..e855b3fa2 100644 --- a/src/public/app/dialogs/sort_child_notes.js +++ b/src/public/app/dialogs/sort_child_notes.js @@ -9,8 +9,9 @@ let parentNoteId = null; $form.on('submit', async () => { const sortBy = $form.find("input[name='sort-by']:checked").val(); const sortDirection = $form.find("input[name='sort-direction']:checked").val(); + const foldersFirst = $form.find("input[name='sort-folders-first']").is(":checked"); - await server.put(`notes/${parentNoteId}/sort-children`, {sortBy, sortDirection}); + await server.put(`notes/${parentNoteId}/sort-children`, {sortBy, sortDirection, foldersFirst}); utils.closeActiveDialog(); }); diff --git a/src/public/app/widgets/toc.js b/src/public/app/widgets/toc.js index adde8805b..3a95620a3 100644 --- a/src/public/app/widgets/toc.js +++ b/src/public/app/widgets/toc.js @@ -76,8 +76,6 @@ function findHeadingElementByIndex(parent, headingIndex) { // heading level. If a heading node is found, decrement the headingIndex // until zero is reached - console.log(child.tagName, headingIndex); - if (child.tagName.match(/H\d+/i) !== null) { if (headingIndex === 0) { headingElement = child; diff --git a/src/routes/api/notes.js b/src/routes/api/notes.js index 5f334edc8..2b7ccf595 100644 --- a/src/routes/api/notes.js +++ b/src/routes/api/notes.js @@ -94,13 +94,13 @@ function undeleteNote(req) { function sortChildNotes(req) { const noteId = req.params.noteId; - const {sortBy, sortDirection} = req.body; + const {sortBy, sortDirection, foldersFirst} = req.body; - log.info(`Sorting '${noteId}' children with ${sortBy} ${sortDirection}`); + log.info(`Sorting '${noteId}' children with ${sortBy} ${sortDirection}, foldersFirst=${foldersFirst}`); const reverse = sortDirection === 'desc'; - treeService.sortNotes(noteId, sortBy, reverse); + treeService.sortNotes(noteId, sortBy, reverse, foldersFirst); } function protectNote(req) { diff --git a/src/views/dialogs/sort_child_notes.ejs b/src/views/dialogs/sort_child_notes.ejs index 36c6475e0..ed38a0636 100644 --- a/src/views/dialogs/sort_child_notes.ejs +++ b/src/views/dialogs/sort_child_notes.ejs @@ -50,6 +50,17 @@ descending + +
+ +
Folders
+ +
+ + +