mirror of
https://github.com/zadam/trilium.git
synced 2025-10-30 01:36:24 +01:00
promoted relation attributes now work correctly, refactoring of note autocomplete code
This commit is contained in:
54
src/public/javascripts/services/note_autocomplete.js
Normal file
54
src/public/javascripts/services/note_autocomplete.js
Normal file
@@ -0,0 +1,54 @@
|
||||
import server from "./server.js";
|
||||
|
||||
async function initNoteAutocomplete($el) {
|
||||
if (!$el.hasClass("ui-autocomplete-input")) {
|
||||
const $showRecentNotesButton = $("<span>")
|
||||
.addClass("input-group-addon show-recent-notes-button")
|
||||
.prop("title", "Show recent notes");
|
||||
|
||||
$el.after($showRecentNotesButton);
|
||||
|
||||
$showRecentNotesButton.click(() => $el.autocomplete("search", ""));
|
||||
|
||||
await $el.autocomplete({
|
||||
appendTo: $el.parent().parent(),
|
||||
source: async function (request, response) {
|
||||
const result = await server.get('autocomplete?query=' + encodeURIComponent(request.term));
|
||||
|
||||
if (result.length > 0) {
|
||||
response(result.map(row => {
|
||||
return {
|
||||
label: row.label,
|
||||
value: row.label + ' (' + row.value + ')'
|
||||
}
|
||||
}));
|
||||
}
|
||||
else {
|
||||
response([{
|
||||
label: "No results",
|
||||
value: "No results"
|
||||
}]);
|
||||
}
|
||||
},
|
||||
minLength: 0,
|
||||
change: function (event, ui) {
|
||||
$el.trigger("change");
|
||||
},
|
||||
select: function (event, ui) {
|
||||
if (ui.item.value === 'No results') {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
ko.bindingHandlers.noteAutocomplete = {
|
||||
init: function(element, valueAccessor, allBindings, viewModel, bindingContext) {
|
||||
initNoteAutocomplete($(element));
|
||||
}
|
||||
};
|
||||
|
||||
export default {
|
||||
initNoteAutocomplete
|
||||
}
|
||||
Reference in New Issue
Block a user