From f528799fede8f5c938e30b5a4506fe3ef7bb34f3 Mon Sep 17 00:00:00 2001 From: zadam Date: Sat, 13 Feb 2021 23:52:52 +0100 Subject: [PATCH] added "limit" search modifier to search definition --- .../app/widgets/search_options/limit.js | 49 +++++++++++++++++++ .../search_definition.js | 9 +++- src/routes/api/search.js | 1 + .../search/expressions/order_by_and_limit.js | 2 +- src/services/search/search_context.js | 1 + src/services/search/services/parse.js | 2 +- 6 files changed, 61 insertions(+), 3 deletions(-) create mode 100644 src/public/app/widgets/search_options/limit.js diff --git a/src/public/app/widgets/search_options/limit.js b/src/public/app/widgets/search_options/limit.js new file mode 100644 index 000000000..28af4a2db --- /dev/null +++ b/src/public/app/widgets/search_options/limit.js @@ -0,0 +1,49 @@ +import AbstractSearchOption from "./abstract_search_option.js"; + +const TPL = ` + + + + + Limit + + + + + + + + + +`; + +export default class Limit extends AbstractSearchOption { + static get optionName() { return "limit" }; + static get attributeType() { return "label" }; + + static async create(noteId) { + await AbstractSearchOption.setAttribute(noteId, 'label', 'limit', '10'); + } + + doRender() { + const $option = $(TPL); + + this.$limit = $option.find('input[name=limit]'); + this.$limit.on('change', () => this.update()); + this.$limit.on('input', () => this.update()); + this.$limit.val(this.note.getLabelValue('limit')); + + return $option; + } + + async update() { + const limit = this.$limit.val(); + + await this.setAttribute('label', 'limit', limit); + } +} diff --git a/src/public/app/widgets/type_property_widgets/search_definition.js b/src/public/app/widgets/type_property_widgets/search_definition.js index 4df0cef68..66c64d6b4 100644 --- a/src/public/app/widgets/type_property_widgets/search_definition.js +++ b/src/public/app/widgets/type_property_widgets/search_definition.js @@ -18,6 +18,7 @@ import Ancestor from "../search_options/ancestor.js"; import IncludeArchivedNotes from "../search_options/include_archived_notes.js"; import OrderBy from "../search_options/order_by.js"; import SearchScript from "../search_options/search_script.js"; +import Limit from "../search_options/limit.js"; const TPL = `
@@ -106,6 +107,11 @@ const TPL = ` order by + +