Skip to content

Commit

Permalink
Add full text search in autocomplete
Browse files Browse the repository at this point in the history
  • Loading branch information
SiriusXT committed Nov 20, 2024
1 parent 0028391 commit c51adbc
Show file tree
Hide file tree
Showing 4 changed files with 30 additions and 23 deletions.
27 changes: 27 additions & 0 deletions src/public/app/services/note_autocomplete.js
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,16 @@ async function autocompleteSource(term, cb, options = {}) {
].concat(results);
}

if (term.trim().length >= 1 && options.allowSearchNotes) {
results = results.concat([
{
action: 'search-notes',
noteTitle: term,
highlightedNotePathTitle: `Search for "${utils.escapeHtml(term)}" <kbd style='color: var(--muted-text-color); background-color: transparent; float: right;'>Ctrl+Enter</kbd>`
}
]);
}

if (term.match(/^[a-z]+:\/\/.+/i) && options.allowExternalLinks) {
results = [
{
Expand Down Expand Up @@ -138,6 +148,17 @@ function initNoteAutocomplete($el, options) {
autocompleteOptions.debug = true; // don't close on blur
}

if (options.allowSearchNotes) {
$el.on('keydown', (event) => {
if (event.ctrlKey && event.key === 'Enter') {
// Prevent Ctrl + Enter from triggering autoComplete.
event.stopImmediatePropagation();
event.preventDefault();
$el.trigger('autocomplete:selected', { action: 'search-notes', noteTitle: $el.autocomplete("val")});
}
});
}

$el.autocomplete({
...autocompleteOptions,
appendTo: document.querySelector('body'),
Expand Down Expand Up @@ -192,6 +213,12 @@ function initNoteAutocomplete($el, options) {
suggestion.notePath = note.getBestNotePathString(hoistedNoteId);
}

if (suggestion.action === 'search-notes') {
const searchString = suggestion.noteTitle;
appContext.triggerCommand('searchNotes', { searchString });
return;
}

$el.setSelectedNotePath(suggestion.notePath);
$el.setSelectedExternalLink(null);

Expand Down
11 changes: 1 addition & 10 deletions src/public/app/widgets/dialogs/jump_to_note.js
Original file line number Diff line number Diff line change
Expand Up @@ -38,16 +38,6 @@ export default class JumpToNoteDialog extends BasicWidget {
this.modal = bootstrap.Modal.getOrCreateInstance(this.$widget);

this.$autoComplete = this.$widget.find(".jump-to-note-autocomplete");
this.$autoComplete.on('keydown', (event) => {
if (event.ctrlKey && event.key === 'Enter') {
// Prevent Ctrl + Enter from triggering autoComplete.
event.stopImmediatePropagation();
event.preventDefault();
const searchString = this.$autoComplete.val();
appContext.triggerCommand('searchNotes', { searchString });
}

});
this.$results = this.$widget.find(".jump-to-note-results");
this.$showInFullTextButton = this.$widget.find(".show-in-full-text-button");
this.$showInFullTextButton.on('click', e => this.showInFullText(e));
Expand All @@ -68,6 +58,7 @@ export default class JumpToNoteDialog extends BasicWidget {
noteAutocompleteService.initNoteAutocomplete(this.$autoComplete, {
allowCreatingNotes: true,
hideGoToSelectedNoteButton: true,
allowSearchNotes: true,
container: this.$results
})
// clear any event listener added in previous invocation of this function
Expand Down
13 changes: 1 addition & 12 deletions src/public/app/widgets/type_widgets/empty.js
Original file line number Diff line number Diff line change
Expand Up @@ -65,23 +65,12 @@ export default class EmptyTypeWidget extends TypeWidget {

this.$widget = $(TPL);
this.$autoComplete = this.$widget.find(".note-autocomplete");

this.$autoComplete.on('keydown', (event) => {
if (event.ctrlKey && event.key === 'Enter') {
// Prevent Ctrl + Enter from triggering autoComplete.
event.stopImmediatePropagation();
event.preventDefault();
const searchString = this.$autoComplete.val();
appContext.triggerCommand('searchNotes', { searchString });
}

});

this.$results = this.$widget.find(".note-detail-empty-results");

noteAutocompleteService.initNoteAutocomplete(this.$autoComplete, {
hideGoToSelectedNoteButton: true,
allowCreatingNotes: true,
allowSearchNotes: true,
container: this.$results
})
.on('autocomplete:noteselected', function(event, suggestion, dataset) {
Expand Down
2 changes: 1 addition & 1 deletion src/public/translations/en/translation.json
Original file line number Diff line number Diff line change
Expand Up @@ -922,7 +922,7 @@
},
"empty": {
"open_note_instruction": "Open a note by typing the note's title into the input below or choose a note in the tree.",
"search_placeholder": "search for a note by its name, Ctrl+Enter for full-text search.",
"search_placeholder": "search for a note by its name",
"enter_workspace": "Enter workspace {{title}}"
},
"file": {
Expand Down

0 comments on commit c51adbc

Please sign in to comment.