From 2ffae368f152d9d0e90c7ba0d1fe25d13794f1d3 Mon Sep 17 00:00:00 2001 From: Oliver Date: Wed, 21 Jul 2021 15:05:14 +1000 Subject: [PATCH] Add an option to configure number of parts displayed in search preview box --- InvenTree/InvenTree/urls.py | 1 + InvenTree/common/models.py | 7 +++++++ InvenTree/templates/InvenTree/settings/global.html | 7 +++++++ InvenTree/templates/base.html | 2 +- .../script/inventree => templates/js}/inventree.js | 11 +++++++++-- 5 files changed, 25 insertions(+), 3 deletions(-) rename InvenTree/{InvenTree/static/script/inventree => templates/js}/inventree.js (97%) diff --git a/InvenTree/InvenTree/urls.py b/InvenTree/InvenTree/urls.py index a3af143f92..cd8575177a 100644 --- a/InvenTree/InvenTree/urls.py +++ b/InvenTree/InvenTree/urls.py @@ -111,6 +111,7 @@ dynamic_javascript_urls = [ url(r'^company.js', DynamicJsView.as_view(template_name='js/company.js'), name='company.js'), url(r'^filters.js', DynamicJsView.as_view(template_name='js/filters.js'), name='filters.js'), url(r'^forms.js', DynamicJsView.as_view(template_name='js/forms.js'), name='forms.js'), + url(r'^inventree.js', DynamicJsView.as_view(template_name='js/inventree.js'), name='inventree.js'), url(r'^label.js', DynamicJsView.as_view(template_name='js/label.js'), name='label.js'), url(r'^model_renderers.js', DynamicJsView.as_view(template_name='js/model_renderers.js'), name='model_renderers.js'), url(r'^modals.js', DynamicJsView.as_view(template_name='js/modals.js'), name='modals.js'), diff --git a/InvenTree/common/models.py b/InvenTree/common/models.py index dcdeea5292..a1738bcea9 100644 --- a/InvenTree/common/models.py +++ b/InvenTree/common/models.py @@ -277,6 +277,13 @@ class InvenTreeSetting(models.Model): 'validator': bool, }, + 'SEARCH_PREVIEW_RESULTS': { + 'name': _('Search Preview Results'), + 'description': _('Number of results to show in search preview window'), + 'default': 10, + 'validator': [int, MinValueValidator(1)] + }, + 'STOCK_ENABLE_EXPIRY': { 'name': _('Stock Expiry'), 'description': _('Enable stock expiry functionality'), diff --git a/InvenTree/templates/InvenTree/settings/global.html b/InvenTree/templates/InvenTree/settings/global.html index 1a8915f4fb..0c10a13271 100644 --- a/InvenTree/templates/InvenTree/settings/global.html +++ b/InvenTree/templates/InvenTree/settings/global.html @@ -31,4 +31,11 @@ +

{% trans "Search Settings" %}

+ + + {% include "InvenTree/settings/setting.html" with key="SEARCH_PREVIEW_RESULTS" icon="fa-search" %} + +
+ {% endblock %} diff --git a/InvenTree/templates/base.html b/InvenTree/templates/base.html index 9d4eaa5142..72f20404aa 100644 --- a/InvenTree/templates/base.html +++ b/InvenTree/templates/base.html @@ -142,11 +142,11 @@ - + diff --git a/InvenTree/InvenTree/static/script/inventree/inventree.js b/InvenTree/templates/js/inventree.js similarity index 97% rename from InvenTree/InvenTree/static/script/inventree/inventree.js rename to InvenTree/templates/js/inventree.js index bdcbb82ebd..f1e9472910 100644 --- a/InvenTree/InvenTree/static/script/inventree/inventree.js +++ b/InvenTree/templates/js/inventree.js @@ -1,3 +1,5 @@ +{% load inventree_extras %} + function attachClipboard(selector, containerselector, textElement) { // set container if (containerselector){ @@ -13,7 +15,8 @@ function attachClipboard(selector, containerselector, textElement) { } } else { text = function(trigger) { - var content = trigger.parentElement.parentElement.textContent;return content.trim(); + var content = trigger.parentElement.parentElement.textContent; + return content.trim(); } } @@ -86,7 +89,11 @@ function inventreeDocReady() { source: function (request, response) { $.ajax({ url: '/api/part/', - data: { search: request.term, limit: 4, offset: 0 }, + data: { + search: request.term, + limit: {% settings_value 'SEARCH_PREVIEW_RESULTS' %}, + offset: 0 + }, success: function (data) { var transformed = $.map(data.results, function (el) { return {