diff --git a/Tekst-API/openapi.json b/Tekst-API/openapi.json index 09b6f320..3eec6905 100644 --- a/Tekst-API/openapi.json +++ b/Tekst-API/openapi.json @@ -7366,7 +7366,8 @@ "default": { "sortOrder": 10, "defaultActive": true, - "showOnParentLevel": false + "showOnParentLevel": false, + "quickSearchable": true } }, "general": { @@ -7520,6 +7521,7 @@ "default": { "common": { "defaultActive": true, + "quickSearchable": true, "showOnParentLevel": false, "sortOrder": 10 }, @@ -7737,6 +7739,7 @@ "default": { "common": { "defaultActive": true, + "quickSearchable": true, "showOnParentLevel": false, "sortOrder": 10 }, @@ -7916,6 +7919,7 @@ "default": { "common": { "defaultActive": true, + "quickSearchable": true, "showOnParentLevel": false, "sortOrder": 10 }, @@ -8481,6 +8485,12 @@ "title": "Showonparentlevel", "description": "Show combined contents of this resource on the parent level", "default": false + }, + "quickSearchable": { + "type": "boolean", + "title": "Quicksearchable", + "description": "Whether this resource should be included in quick search", + "default": true } }, "type": "object", @@ -9025,7 +9035,8 @@ "default": { "sortOrder": 10, "defaultActive": true, - "showOnParentLevel": false + "showOnParentLevel": false, + "quickSearchable": true } }, "general": { @@ -9179,6 +9190,7 @@ "default": { "common": { "defaultActive": true, + "quickSearchable": true, "showOnParentLevel": false, "sortOrder": 10 }, @@ -9396,6 +9408,7 @@ "default": { "common": { "defaultActive": true, + "quickSearchable": true, "showOnParentLevel": false, "sortOrder": 10 }, @@ -9575,6 +9588,7 @@ "default": { "common": { "defaultActive": true, + "quickSearchable": true, "showOnParentLevel": false, "sortOrder": 10 }, @@ -10097,7 +10111,8 @@ "default": { "sortOrder": 10, "defaultActive": true, - "showOnParentLevel": false + "showOnParentLevel": false, + "quickSearchable": true } }, "general": { @@ -10251,6 +10266,7 @@ "default": { "common": { "defaultActive": true, + "quickSearchable": true, "showOnParentLevel": false, "sortOrder": 10 }, @@ -10468,6 +10484,7 @@ "default": { "common": { "defaultActive": true, + "quickSearchable": true, "showOnParentLevel": false, "sortOrder": 10 }, @@ -10647,6 +10664,7 @@ "default": { "common": { "defaultActive": true, + "quickSearchable": true, "showOnParentLevel": false, "sortOrder": 10 }, @@ -11426,7 +11444,8 @@ "default": { "sortOrder": 10, "defaultActive": true, - "showOnParentLevel": false + "showOnParentLevel": false, + "quickSearchable": true } }, "general": { @@ -11597,6 +11616,7 @@ "default": { "common": { "defaultActive": true, + "quickSearchable": true, "showOnParentLevel": false, "sortOrder": 10 }, @@ -11825,6 +11845,7 @@ "default": { "common": { "defaultActive": true, + "quickSearchable": true, "showOnParentLevel": false, "sortOrder": 10 }, @@ -12015,6 +12036,7 @@ "default": { "common": { "defaultActive": true, + "quickSearchable": true, "showOnParentLevel": false, "sortOrder": 10 }, @@ -13156,7 +13178,8 @@ "default": { "sortOrder": 10, "defaultActive": true, - "showOnParentLevel": false + "showOnParentLevel": false, + "quickSearchable": true } }, "general": { @@ -13310,6 +13333,7 @@ "default": { "common": { "defaultActive": true, + "quickSearchable": true, "showOnParentLevel": false, "sortOrder": 10 }, @@ -13527,6 +13551,7 @@ "default": { "common": { "defaultActive": true, + "quickSearchable": true, "showOnParentLevel": false, "sortOrder": 10 }, @@ -13706,6 +13731,7 @@ "default": { "common": { "defaultActive": true, + "quickSearchable": true, "showOnParentLevel": false, "sortOrder": 10 }, @@ -14290,7 +14316,8 @@ "default": { "sortOrder": 10, "defaultActive": true, - "showOnParentLevel": false + "showOnParentLevel": false, + "quickSearchable": true } }, "general": { @@ -14465,6 +14492,7 @@ "default": { "common": { "defaultActive": true, + "quickSearchable": true, "showOnParentLevel": false, "sortOrder": 10 }, @@ -14704,6 +14732,7 @@ "default": { "common": { "defaultActive": true, + "quickSearchable": true, "showOnParentLevel": false, "sortOrder": 10 }, @@ -14905,6 +14934,7 @@ "default": { "common": { "defaultActive": true, + "quickSearchable": true, "showOnParentLevel": false, "sortOrder": 10 }, diff --git a/Tekst-API/tekst/models/resource_configs.py b/Tekst-API/tekst/models/resource_configs.py index fa53e405..9c260d76 100644 --- a/Tekst-API/tekst/models/resource_configs.py +++ b/Tekst-API/tekst/models/resource_configs.py @@ -38,6 +38,12 @@ class CommonResourceConfig(ModelBase): description="Show combined contents of this resource on the parent level", ), ] = False + quick_searchable: Annotated[ + bool, + Field( + description="Whether this resource should be included in quick search", + ), + ] = True class ResourceConfigBase(ModelBase): diff --git a/Tekst-API/tekst/search/__init__.py b/Tekst-API/tekst/search/__init__.py index c06e720c..a61d3112 100644 --- a/Tekst-API/tekst/search/__init__.py +++ b/Tekst-API/tekst/search/__init__.py @@ -403,8 +403,9 @@ async def search_quick( field_pattern_suffix = ".strict" if settings_general.strict else "" fields = [] for res_id, res in target_resources.items(): - for field in res.quick_search_fields(): - fields.append(f"resources.{res_id}.{field}{field_pattern_suffix}") + if res.config.common.quick_searchable: + for field in res.quick_search_fields(): + fields.append(f"resources.{res_id}.{field}{field_pattern_suffix}") # compose the query if not settings_quick.regexp or not query_string: diff --git a/Tekst-Web/src/api/schema.d.ts b/Tekst-Web/src/api/schema.d.ts index 96d21ac0..fc266fec 100644 --- a/Tekst-Web/src/api/schema.d.ts +++ b/Tekst-Web/src/api/schema.d.ts @@ -607,7 +607,8 @@ export interface components { * @default { * "sortOrder": 10, * "defaultActive": true, - * "showOnParentLevel": false + * "showOnParentLevel": false, + * "quickSearchable": true * } */ common?: components['schemas']['CommonResourceConfig']; @@ -703,6 +704,7 @@ export interface components { * @default { * "common": { * "defaultActive": true, + * "quickSearchable": true, * "showOnParentLevel": false, * "sortOrder": 10 * }, @@ -820,6 +822,7 @@ export interface components { * @default { * "common": { * "defaultActive": true, + * "quickSearchable": true, * "showOnParentLevel": false, * "sortOrder": 10 * }, @@ -906,6 +909,7 @@ export interface components { * @default { * "common": { * "defaultActive": true, + * "quickSearchable": true, * "showOnParentLevel": false, * "sortOrder": 10 * }, @@ -1201,6 +1205,12 @@ export interface components { * @default false */ showOnParentLevel?: boolean; + /** + * Quicksearchable + * @description Whether this resource should be included in quick search + * @default true + */ + quickSearchable?: boolean; }; /** CommonResourceSearchQueryData */ CommonResourceSearchQueryData: { @@ -1483,7 +1493,8 @@ export interface components { * @default { * "sortOrder": 10, * "defaultActive": true, - * "showOnParentLevel": false + * "showOnParentLevel": false, + * "quickSearchable": true * } */ common?: components['schemas']['CommonResourceConfig']; @@ -1579,6 +1590,7 @@ export interface components { * @default { * "common": { * "defaultActive": true, + * "quickSearchable": true, * "showOnParentLevel": false, * "sortOrder": 10 * }, @@ -1696,6 +1708,7 @@ export interface components { * @default { * "common": { * "defaultActive": true, + * "quickSearchable": true, * "showOnParentLevel": false, * "sortOrder": 10 * }, @@ -1782,6 +1795,7 @@ export interface components { * @default { * "common": { * "defaultActive": true, + * "quickSearchable": true, * "showOnParentLevel": false, * "sortOrder": 10 * }, @@ -2054,7 +2068,8 @@ export interface components { * @default { * "sortOrder": 10, * "defaultActive": true, - * "showOnParentLevel": false + * "showOnParentLevel": false, + * "quickSearchable": true * } */ common?: components['schemas']['CommonResourceConfig']; @@ -2150,6 +2165,7 @@ export interface components { * @default { * "common": { * "defaultActive": true, + * "quickSearchable": true, * "showOnParentLevel": false, * "sortOrder": 10 * }, @@ -2267,6 +2283,7 @@ export interface components { * @default { * "common": { * "defaultActive": true, + * "quickSearchable": true, * "showOnParentLevel": false, * "sortOrder": 10 * }, @@ -2353,6 +2370,7 @@ export interface components { * @default { * "common": { * "defaultActive": true, + * "quickSearchable": true, * "showOnParentLevel": false, * "sortOrder": 10 * }, @@ -2690,7 +2708,8 @@ export interface components { * @default { * "sortOrder": 10, * "defaultActive": true, - * "showOnParentLevel": false + * "showOnParentLevel": false, + * "quickSearchable": true * } */ common?: components['schemas']['CommonResourceConfig']; @@ -2803,6 +2822,7 @@ export interface components { * @default { * "common": { * "defaultActive": true, + * "quickSearchable": true, * "showOnParentLevel": false, * "sortOrder": 10 * }, @@ -2931,6 +2951,7 @@ export interface components { * @default { * "common": { * "defaultActive": true, + * "quickSearchable": true, * "showOnParentLevel": false, * "sortOrder": 10 * }, @@ -3028,6 +3049,7 @@ export interface components { * @default { * "common": { * "defaultActive": true, + * "quickSearchable": true, * "showOnParentLevel": false, * "sortOrder": 10 * }, @@ -3661,7 +3683,8 @@ export interface components { * @default { * "sortOrder": 10, * "defaultActive": true, - * "showOnParentLevel": false + * "showOnParentLevel": false, + * "quickSearchable": true * } */ common?: components['schemas']['CommonResourceConfig']; @@ -3757,6 +3780,7 @@ export interface components { * @default { * "common": { * "defaultActive": true, + * "quickSearchable": true, * "showOnParentLevel": false, * "sortOrder": 10 * }, @@ -3874,6 +3898,7 @@ export interface components { * @default { * "common": { * "defaultActive": true, + * "quickSearchable": true, * "showOnParentLevel": false, * "sortOrder": 10 * }, @@ -3960,6 +3985,7 @@ export interface components { * @default { * "common": { * "defaultActive": true, + * "quickSearchable": true, * "showOnParentLevel": false, * "sortOrder": 10 * }, @@ -4239,7 +4265,8 @@ export interface components { * @default { * "sortOrder": 10, * "defaultActive": true, - * "showOnParentLevel": false + * "showOnParentLevel": false, + * "quickSearchable": true * } */ common?: components['schemas']['CommonResourceConfig']; @@ -4346,6 +4373,7 @@ export interface components { * @default { * "common": { * "defaultActive": true, + * "quickSearchable": true, * "showOnParentLevel": false, * "sortOrder": 10 * }, @@ -4475,6 +4503,7 @@ export interface components { * @default { * "common": { * "defaultActive": true, + * "quickSearchable": true, * "showOnParentLevel": false, * "sortOrder": 10 * }, @@ -4573,6 +4602,7 @@ export interface components { * @default { * "common": { * "defaultActive": true, + * "quickSearchable": true, * "showOnParentLevel": false, * "sortOrder": 10 * }, diff --git a/Tekst-Web/src/components/search/QuickSearch.vue b/Tekst-Web/src/components/search/QuickSearch.vue index 6e2ea08b..55f4ee08 100644 --- a/Tekst-Web/src/components/search/QuickSearch.vue +++ b/Tekst-Web/src/components/search/QuickSearch.vue @@ -1,10 +1,18 @@