From b3381a3b5377692badcd7505ad79789e65dacacc Mon Sep 17 00:00:00 2001 From: zadam Date: Sat, 15 Jul 2023 10:59:30 +0200 Subject: [PATCH] reimplemented triggering search from URL, fixes #385 --- src/public/app/components/tab_manager.js | 4 ++++ src/public/app/services/link.js | 6 +++++- src/public/app/widgets/search_options/search_string.js | 2 +- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/public/app/components/tab_manager.js b/src/public/app/components/tab_manager.js index 770b2df4f..5d0a3d6e9 100644 --- a/src/public/app/components/tab_manager.js +++ b/src/public/app/components/tab_manager.js @@ -117,6 +117,10 @@ export default class TabManager extends Component { parsedFromUrl.viewScope, parsedFromUrl.hoistedNoteId ); + } else if (parsedFromUrl.searchString) { + await appContext.triggerCommand('searchNotes', { + searchString: parsedFromUrl.searchString + }); } } catch (e) { diff --git a/src/public/app/services/link.js b/src/public/app/services/link.js index f2c0e9ee3..6608460ca 100644 --- a/src/public/app/services/link.js +++ b/src/public/app/services/link.js @@ -153,6 +153,7 @@ function parseNavigationStateFromUrl(url) { }; let ntxId = null; let hoistedNoteId = null; + let searchString = null; if (paramString) { for (const pair of paramString.split("&")) { @@ -164,6 +165,8 @@ function parseNavigationStateFromUrl(url) { ntxId = value; } else if (name === 'hoistedNoteId') { hoistedNoteId = value; + } else if (name === 'searchString') { + searchString = value; // supports triggering search from URL, e.g. #?searchString=blabla } else if (['viewMode', 'attachmentId'].includes(name)) { viewScope[name] = value; } else { @@ -177,7 +180,8 @@ function parseNavigationStateFromUrl(url) { noteId: treeService.getNoteIdFromUrl(notePath), ntxId, hoistedNoteId, - viewScope + viewScope, + searchString }; } diff --git a/src/public/app/widgets/search_options/search_string.js b/src/public/app/widgets/search_options/search_string.js index 3a6dfc8b9..03e3e2b50 100644 --- a/src/public/app/widgets/search_options/search_string.js +++ b/src/public/app/widgets/search_options/search_string.js @@ -86,7 +86,7 @@ export default class SearchString extends AbstractSearchOption { } focusOnSearchDefinitionEvent() { - this.$searchString.val(appContext.lastSearchString).focus().select(); + this.$searchString.val(this.$searchString.val().trim() || appContext.lastSearchString).focus().select(); this.spacedUpdate.scheduleUpdate(); } }