From 7bbf797cafdbea7e71f5e1cc4559aaf0ec9cf0ef Mon Sep 17 00:00:00 2001 From: zadam Date: Sat, 30 Mar 2019 00:12:32 +0100 Subject: [PATCH] saved search note now has refresh button, closes #369 --- src/public/javascripts/desktop.js | 2 ++ src/public/javascripts/services/note_detail_search.js | 7 ++----- src/public/javascripts/services/search_notes.js | 10 ++++++++++ src/public/javascripts/services/tree.js | 8 ++++++++ src/public/stylesheets/desktop.css | 6 ++++++ src/views/details/search.ejs | 2 +- 6 files changed, 29 insertions(+), 6 deletions(-) diff --git a/src/public/javascripts/desktop.js b/src/public/javascripts/desktop.js index 02cb5fd5d..189a8f07f 100644 --- a/src/public/javascripts/desktop.js +++ b/src/public/javascripts/desktop.js @@ -107,6 +107,8 @@ $("#logout-button").click(() => { $("#tree").on("click", ".unhoist-button", hoistedNoteService.unhoist); +$("#tree").on("click", ".refresh-search-button", searchNotesService.refreshSearch); + $("body").on("click", "a.external", function () { window.open($(this).attr("href"), '_blank'); }); diff --git a/src/public/javascripts/services/note_detail_search.js b/src/public/javascripts/services/note_detail_search.js index c6e27ee0b..2cd9dd9d2 100644 --- a/src/public/javascripts/services/note_detail_search.js +++ b/src/public/javascripts/services/note_detail_search.js @@ -1,6 +1,5 @@ import noteDetailService from "./note_detail.js"; -import treeService from "./tree.js"; -import infoService from './info.js'; +import searchNotesService from "./search_notes.js"; const $searchString = $("#search-string"); const $component = $('#note-detail-search'); @@ -31,9 +30,7 @@ function getContent() { $refreshButton.click(async () => { await noteDetailService.saveNoteIfChanged(); - treeService.reload(); - - infoService.showMessage('Tree has been refreshed.'); + await searchNotesService.refreshSearch(); }); export default { diff --git a/src/public/javascripts/services/search_notes.js b/src/public/javascripts/services/search_notes.js index 3d2b1d7ca..e26f5e821 100644 --- a/src/public/javascripts/services/search_notes.js +++ b/src/public/javascripts/services/search_notes.js @@ -96,6 +96,15 @@ async function saveSearch() { resetSearch(); } +async function refreshSearch() { + const activeNode = treeService.getActiveNode(); + + activeNode.load(true); + activeNode.setExpanded(true); + + infoService.showMessage("Saved search note refreshed."); +} + function init() { const hashValue = treeService.getHashValueFromAddress(); @@ -129,6 +138,7 @@ export default { toggleSearch, resetSearch, showSearch, + refreshSearch, doSearch, init }; \ No newline at end of file diff --git a/src/public/javascripts/services/tree.js b/src/public/javascripts/services/tree.js index 333e55bf9..3e28bdf84 100644 --- a/src/public/javascripts/services/tree.js +++ b/src/public/javascripts/services/tree.js @@ -453,6 +453,14 @@ function initFancyTree(tree) { $span.append(unhoistButton); } + + const note = await treeCache.getNote(node.data.noteId); + + if (note.type === 'search' && $span.find('.refresh-search-button').length === 0) { + const refreshSearchButton = $('  '); + + $span.append(refreshSearchButton); + } }, // this is done to automatically lazy load all expanded search notes after tree load loadChildren: function(event, data) { diff --git a/src/public/stylesheets/desktop.css b/src/public/stylesheets/desktop.css index 7664a0ed2..dfed75129 100644 --- a/src/public/stylesheets/desktop.css +++ b/src/public/stylesheets/desktop.css @@ -133,4 +133,10 @@ li.dropdown-submenu:hover > ul.dropdown-menu { .dropdown-menu > li > a:hover:after { text-decoration: underline; transform: rotate(-90deg); +} + +.refresh-search-button { + cursor: pointer; + position: relative; + top: -1px; } \ No newline at end of file diff --git a/src/views/details/search.ejs b/src/views/details/search.ejs index 0f7cf41b1..70d938ea1 100644 --- a/src/views/details/search.ejs +++ b/src/views/details/search.ejs @@ -5,7 +5,7 @@     - +