diff --git a/src/public/javascripts/dialogs/markdown_import.js b/src/public/javascripts/dialogs/markdown_import.js index 05d7d245a..e8ce051e8 100644 --- a/src/public/javascripts/dialogs/markdown_import.js +++ b/src/public/javascripts/dialogs/markdown_import.js @@ -16,7 +16,7 @@ async function convertMarkdownToHtml(text) { const result = writer.render(parsed); - appContext.triggerEvent('executeInActiveEditor', { + appContext.triggerCommand('executeInActiveEditor', { callback: textEditor => { const viewFragment = textEditor.data.processor.toView(result); const modelFragment = textEditor.data.toModel(viewFragment); diff --git a/src/public/javascripts/dialogs/options/appearance.js b/src/public/javascripts/dialogs/options/appearance.js index 8d7b53d2d..f5272b685 100644 --- a/src/public/javascripts/dialogs/options/appearance.js +++ b/src/public/javascripts/dialogs/options/appearance.js @@ -106,7 +106,7 @@ export default class ApperanceOptions { server.put('options/theme/' + newTheme); }); - this.$zoomFactorSelect.on('change', () => { appContext.triggerEvent('setZoomFactorAndSave', {zoomFactor: this.$zoomFactorSelect.val()}); }); + this.$zoomFactorSelect.on('change', () => { appContext.triggerCommand('setZoomFactorAndSave', {zoomFactor: this.$zoomFactorSelect.val()}); }); this.$nativeTitleBarSelect.on('change', () => { const nativeTitleBarVisible = this.$nativeTitleBarSelect.val() === 'show' ? 'true' : 'false'; diff --git a/src/public/javascripts/services/entrypoints.js b/src/public/javascripts/services/entrypoints.js index aba20aaca..64a356926 100644 --- a/src/public/javascripts/services/entrypoints.js +++ b/src/public/javascripts/services/entrypoints.js @@ -6,6 +6,7 @@ import treeCache from "./tree_cache.js"; import server from "./server.js"; import appContext from "./app_context.js"; import Component from "../widgets/component.js"; +import toastService from "./toast.js"; export default class Entrypoints extends Component { constructor() { @@ -142,4 +143,19 @@ export default class Entrypoints extends Component { forwardInNoteHistoryCommand() { window.history.forward(); } + + async searchForResultsCommand({searchText}) { + const response = await server.get('search/' + encodeURIComponent(searchText)); + + if (!response.success) { + toastService.showError("Search failed.", 3000); + return; + } + + this.triggerEvent('searchResults', {results: response.results}); + + // have at least some feedback which is good especially in situations + // when the result list does not change with a query + toastService.showMessage("Search finished successfully."); + } } diff --git a/src/public/javascripts/services/frontend_script_api.js b/src/public/javascripts/services/frontend_script_api.js index da2bd014a..54ebe72d1 100644 --- a/src/public/javascripts/services/frontend_script_api.js +++ b/src/public/javascripts/services/frontend_script_api.js @@ -58,7 +58,7 @@ function FrontendScriptApi(startNote, currentNote, originEntity = null, $contain await ws.waitForMaxKnownSyncId(); await appContext.tabManager.getActiveTabContext().setNote(notePath); - appContext.triggerEvent('focusAndSelectTitle'); + appContext.triggerCommand('focusAndSelectTitle'); }; /** @@ -276,7 +276,7 @@ function FrontendScriptApi(startNote, currentNote, originEntity = null, $contain * @param {string} text - this must be clear text, HTML is not supported. * @method */ - this.addTextToActiveTabEditor = text => appContext.triggerEvent('addTextToActiveEditor', {text}); + this.addTextToActiveTabEditor = text => appContext.triggerCommand('addTextToActiveEditor', {text}); /** * @method @@ -290,7 +290,7 @@ function FrontendScriptApi(startNote, currentNote, originEntity = null, $contain * @method * @param callback - method receiving "textEditor" instance */ - this.getActiveTabTextEditor = callback => appContext.triggerEvent('executeInActiveEditor', {callback}); + this.getActiveTabTextEditor = callback => appContext.triggerCommand('executeInActiveEditor', {callback}); /** * @method diff --git a/src/public/javascripts/widgets/note_title.js b/src/public/javascripts/widgets/note_title.js index f4d167d36..5c6eb2404 100644 --- a/src/public/javascripts/widgets/note_title.js +++ b/src/public/javascripts/widgets/note_title.js @@ -40,7 +40,7 @@ export default class NoteTitleWidget extends TabAwareWidget { this.$noteTitle.on('input', () => this.spacedUpdate.scheduleUpdate()); utils.bindElShortcut(this.$noteTitle, 'return', () => { - this.triggerEvent('focusOnDetail', {tabId: this.tabContext.tabId}); + this.triggerCommand('focusOnDetail', {tabId: this.tabContext.tabId}); }); return this.$widget; diff --git a/src/public/javascripts/widgets/note_tree.js b/src/public/javascripts/widgets/note_tree.js index 3d2f5e32b..e5ce35c8b 100644 --- a/src/public/javascripts/widgets/note_tree.js +++ b/src/public/javascripts/widgets/note_tree.js @@ -794,7 +794,7 @@ export default class NoteTreeWidget extends TabAwareWidget { } editNoteTitleCommand({node}) { - appContext.triggerEvent('focusOnTitle'); + appContext.triggerCommand('focusOnTitle'); } activateParentNoteCommand({node}) { diff --git a/src/public/javascripts/widgets/search_box.js b/src/public/javascripts/widgets/search_box.js index 3c9b7c256..186ba6180 100644 --- a/src/public/javascripts/widgets/search_box.js +++ b/src/public/javascripts/widgets/search_box.js @@ -70,7 +70,7 @@ export default class SearchBoxWidget extends BasicWidget { this.$saveSearchButton.on('click', () => this.saveSearch()); - this.$closeSearchButton.on('click', () => this.triggerEvent('hideSearch')); + this.$closeSearchButton.on('click', () => this.triggerCommand('hideSearch')); return this.$widget; } @@ -91,7 +91,7 @@ export default class SearchBoxWidget extends BasicWidget { return; } - this.triggerEvent('searchForResults', { + this.triggerCommand('searchForResults', { searchText: this.$searchInput.val() }); @@ -147,7 +147,7 @@ export default class SearchBoxWidget extends BasicWidget { this.$searchBox.slideUp(); - this.triggerEvent('hideSearchResults'); + this.triggerCommand('searchFlowEnded'); } toggleSearchEvent() { @@ -159,7 +159,7 @@ export default class SearchBoxWidget extends BasicWidget { } } - searchNotesCommand() { + searchNotesEvent() { this.toggleSearchEvent(); } diff --git a/src/public/javascripts/widgets/search_results.js b/src/public/javascripts/widgets/search_results.js index fad5a801d..51152c8e5 100644 --- a/src/public/javascripts/widgets/search_results.js +++ b/src/public/javascripts/widgets/search_results.js @@ -39,20 +39,13 @@ export default class SearchResultsWidget extends BasicWidget { return this.$widget; } - async searchForResultsEvent({searchText}) { + searchResultsEvent({results}) { this.toggle(true); - const response = await server.get('search/' + encodeURIComponent(searchText)); - - if (!response.success) { - toastService.showError("Search failed.", 3000); - return; - } - this.$searchResultsInner.empty(); this.$searchResults.show(); - for (const result of response.results) { + for (const result of results) { const link = $('', { href: 'javascript:', text: result.title @@ -62,13 +55,9 @@ export default class SearchResultsWidget extends BasicWidget { this.$searchResultsInner.append($result); } - - // have at least some feedback which is good especially in situations - // when the result list does not change with a query - toastService.showMessage("Search finished successfully."); } - hideSearchResultsEvent() { + searchFlowEndedEvent() { this.$searchResults.hide(); } } \ No newline at end of file diff --git a/src/public/javascripts/widgets/standard_top_widget.js b/src/public/javascripts/widgets/standard_top_widget.js index e205476e5..fb3b14968 100644 --- a/src/public/javascripts/widgets/standard_top_widget.js +++ b/src/public/javascripts/widgets/standard_top_widget.js @@ -71,8 +71,8 @@ export default class StandardTopWidget extends BasicWidget { this.$widget.prepend(historyNavigationWidget.render()); - this.$widget.find(".jump-to-note-dialog-button").on('click', () => this.triggerEvent('jumpToNote')); - this.$widget.find(".recent-changes-button").on('click', () => this.triggerEvent('showRecentChanges')); + this.$widget.find(".jump-to-note-dialog-button").on('click', () => this.triggerCommand('jumpToNote')); + this.$widget.find(".recent-changes-button").on('click', () => this.triggerCommand('showRecentChanges')); this.$widget.find(".enter-protected-session-button").on('click', protectedSessionService.enterProtectedSession); this.$widget.find(".leave-protected-session-button").on('click', protectedSessionService.leaveProtectedSession);