From a64bfed81b3827503ff825090f1fb4b94e1cd9bd Mon Sep 17 00:00:00 2001 From: Amanda Brindle Date: Tue, 7 Nov 2017 14:31:38 -0800 Subject: [PATCH] recipes.html: Require keyword for recipe search Use JavaScript to check if the search box for recipe search is empty before querying the database. This will prevent the "502 Bad Gateway" error that occurs when the query takes too long due to the large list of recipes. Since there are so many recipes spread across the layers in the OE index, there's no point in allowing a user to search without a keyword in order to browse the list; it simply isn't digestible as a whole. For the Machines, Classes, and Distros pages, the search behaviour is unaffected, however to make it more obvious that you can browse the list add an explicit "browse" button. Fixes [YOCTO #11930] Signed-off-by: Amanda Brindle Signed-off-by: Paul Eggleton --- layerindex/views.py | 15 ++++++++++++--- templates/layerindex/classes.html | 3 ++- templates/layerindex/distros.html | 3 ++- templates/layerindex/machines.html | 3 ++- templates/layerindex/recipes.html | 27 +++++++++++++++++++++------ 5 files changed, 39 insertions(+), 12 deletions(-) diff --git a/layerindex/views.py b/layerindex/views.py index 03d47f2..414c770 100644 --- a/layerindex/views.py +++ b/layerindex/views.py @@ -656,7 +656,10 @@ class MachineSearchView(ListView): def get_queryset(self): _check_url_branch(self.kwargs) - query_string = self.request.GET.get('q', '') + if self.request.GET.get('search', ''): + query_string = self.request.GET.get('q', '') + else: + query_string = "" init_qs = Machine.objects.filter(layerbranch__branch__name=self.kwargs['branch']) if query_string.strip(): entry_query = simplesearch.get_query(query_string, ['name', 'description']) @@ -705,7 +708,10 @@ class DistroSearchView(ListView): def get_queryset(self): _check_url_branch(self.kwargs) - query_string = self.request.GET.get('q', '') + if self.request.GET.get('search', ''): + query_string = self.request.GET.get('q', '') + else: + query_string = "" init_qs = Distro.objects.filter(layerbranch__branch__name=self.kwargs['branch']) if query_string.strip(): entry_query = simplesearch.get_query(query_string, ['name', 'description']) @@ -730,7 +736,10 @@ class ClassSearchView(ListView): def get_queryset(self): _check_url_branch(self.kwargs) - query_string = self.request.GET.get('q', '') + if self.request.GET.get('search', ''): + query_string = self.request.GET.get('q', '') + else: + query_string = "" init_qs = BBClass.objects.filter(layerbranch__branch__name=self.kwargs['branch']) if query_string.strip(): entry_query = simplesearch.get_query(query_string, ['name']) diff --git a/templates/layerindex/classes.html b/templates/layerindex/classes.html index 34ac5aa..574cdb8 100644 --- a/templates/layerindex/classes.html +++ b/templates/layerindex/classes.html @@ -35,7 +35,8 @@
- + +
diff --git a/templates/layerindex/distros.html b/templates/layerindex/distros.html index 5b6995a..3266bf6 100644 --- a/templates/layerindex/distros.html +++ b/templates/layerindex/distros.html @@ -35,7 +35,8 @@
- + +
diff --git a/templates/layerindex/machines.html b/templates/layerindex/machines.html index c0c6f33..e963376 100644 --- a/templates/layerindex/machines.html +++ b/templates/layerindex/machines.html @@ -34,7 +34,8 @@
- + +
diff --git a/templates/layerindex/recipes.html b/templates/layerindex/recipes.html index 1322750..5ff92ab 100644 --- a/templates/layerindex/recipes.html +++ b/templates/layerindex/recipes.html @@ -32,14 +32,20 @@
-
-
- - -
-
+
+
+
+
+ + +
+ +
+
+
+
{% if recipe_list %} @@ -88,5 +94,14 @@ $('.icon-hdd').tooltip({title:"Inherits image"}); $('.label-inverse').tooltip(); }); + + function validate(){ + if (!$("#appendedInputButtons").val()){ + $("#errortext").html("

Please specify search text

"); + $("#searchfield").addClass("error"); + return false; + } + } + {% endblock %}