On 11/7/17 4:31 PM, Amanda Brindle wrote: > 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. > > Add a browse button for the Machines, Classes, and Distros pages.
There are reasons to view all of the recipes, machines, classes, distros, etc. (Not necessarily good reasons, but I know people do it.) If the query is too long, it would be better to figure out a way to get a partial response and formulate the first page based on partial responses... having a multipage response that the user can look at. --Mark > Fixes [YOCTO #11930] > > Signed-off-by: Amanda Brindle <[email protected]> > --- > 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 @@ > <div class="input-append"> > <form id="filter-form" action="{% url 'class_search' > url_branch %}" method="get"> > <input type="text" class="input-xxlarge" > id="appendedInputButtons" placeholder="Search classes" name="q" value="{{ > search_keyword }}" /> > - <button class="btn" type="submit">search</button> > + <button class="btn" type="submit" name="search" > value="1">search</button> > + <button class="btn" type="submit" name="browse" > value="1">browse</button> > </form> > </div> > </div> > 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 @@ > <div class="input-append"> > <form id="filter-form" action="{% url > 'distro_search' url_branch %}" method="get"> > <input type="text" class="input-xxlarge" > id="appendedInputButtons" placeholder="Search distros" name="q" value="{{ > search_keyword }}" /> > - <button class="btn" type="submit">search</button> > + <button class="btn" type="submit" name="search" > value="1">search</button> > + <button class="btn" type="submit" name="browse" > value="1">browse</button> > </form> > </div> > </div> > 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 @@ > <div class="input-append"> > <form id="filter-form" action="{% url > 'machine_search' url_branch %}" method="get"> > <input type="text" class="input-xxlarge" > id="appendedInputButtons" placeholder="Search machines" name="q" value="{{ > search_keyword }}" /> > - <button class="btn" type="submit">search</button> > + <button class="btn" type="submit" name="search" > value="1">search</button> > + <button class="btn" type="submit" name="browse" > value="1">browse</button> > </form> > </div> > </div> > 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 @@ > > > <div class="row-fluid"> > - <div class="input-append"> > - <form id="filter-form" action="{% url > 'recipe_search' url_branch %}" method="get"> > - <input type="text" class="input-xxlarge" > id="appendedInputButtons" placeholder="Search recipes" name="q" value="{{ > search_keyword }}" /> > - <button class="btn" type="submit">search</button> > - </form> > - </div> > + <form id="filter-form" action="{% url 'recipe_search' > url_branch %}" method="get" onsubmit="return validate()"> > + <div class="control-group" id="searchfield"> > + <div class="controls"> > + <div class="input-append"> > + <input type="text" class="input-xxlarge" > id="appendedInputButtons" placeholder="Search recipes" name="q" value="{{ > search_keyword }}" /> > + <button class="btn" > type="submit">search</button> > + </div> > + <span class="help-inline" > id="errortext"></span> > + </div> > + </div> > + </form> > </div> > > + <div id="error"> </div> > {% if recipe_list %} > <table class="table table-striped table-bordered > recipestable"> > <thead> > @@ -88,5 +94,14 @@ > $('.icon-hdd').tooltip({title:"Inherits image"}); > $('.label-inverse').tooltip(); > }); > + > + function validate(){ > + if (!$("#appendedInputButtons").val()){ > + $("#errortext").html("<p>Please specify search text</p>"); > + $("#searchfield").addClass("error"); > + return false; > + } > + } > + > </script> > {% endblock %} > -- _______________________________________________ yocto mailing list [email protected] https://lists.yoctoproject.org/listinfo/yocto
