aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--rrs/views.py11
-rw-r--r--templates/rrs/recipes.html35
2 files changed, 44 insertions, 2 deletions
diff --git a/rrs/views.py b/rrs/views.py
index 8cbbe4967d..957529c1ce 100644
--- a/rrs/views.py
+++ b/rrs/views.py
@@ -253,6 +253,15 @@ class RecipeListView(ListView):
else:
self.maintainer_name = 'All'
+ if 'search' in self.request.GET.keys():
+ self.search = self.request.GET['search']
+
+ # only allow one type of filter search or upstream_status/maintainer
+ self.upstream_status = 'All'
+ self.maintainer_name = 'All'
+ else:
+ self.search = ''
+
_check_url_params(self.upstream_status, self.maintainer_name)
self.milestone_statistics = _get_milestone_statistics(milestone)
@@ -309,6 +318,8 @@ class RecipeListView(ListView):
all_maintainers.append(rm['maintainer__name'])
context['all_maintainers'] = all_maintainers
+ context['search'] = self.search
+
return context
def recipes_report(request, release_name, milestone_name):
diff --git a/templates/rrs/recipes.html b/templates/rrs/recipes.html
index 3ec980bdf5..be2a3a5a3c 100644
--- a/templates/rrs/recipes.html
+++ b/templates/rrs/recipes.html
@@ -167,6 +167,16 @@ $(document).ready(function() {
recipesTable = $('#recipestable')
upstreamStatus = $("<div/>").html('{{ upstream_status }}').text()
maintainer = $("<div/>").html('{{ maintainer_name }}').text()
+ search = '{{ search }}'
+
+ function updateQueryString(queryString) {
+ if (window.history.pushState) {
+ var newurl = window.location.protocol + "//" +
+ window.location.host + window.location.pathname +
+ queryString
+ window.history.pushState({path:newurl}, '', newurl);
+ }
+ }
function updateRecipeCount() {
$('#recipestable').show()
@@ -243,21 +253,38 @@ $(document).ready(function() {
updateStatusSelected()
updateMaintainerSelected()
+
+ queryString = ''
+ if (search != '') {
+ $.uiTableFilter(recipesTable, search);
+ queryString = '?search=' + search
+ } else {
+ if (upstreamStatus != 'All' && maintainer != 'All') {
+ queryString = '?upstream_status=' + upstreamStatus +
+ '&maintainer_name=' + maintainer
+ } else if (upstreamStatus != 'All') {
+ queryString = '?upstream_status=' + upstreamStatus
+ } else if (maintainer != 'All') {
+ queryString = '?maintainer_name=' + maintainer
+ }
+ }
+ updateQueryString(queryString)
}
$("#form-search").submit(function( event ) {
upstreamStatus = 'All'
maintainer = 'All'
- search_text = $("#filter").val()
+ search = $("#filter").val()
$("#clear-search-btn").show()
applyFilters()
- $.uiTableFilter(recipesTable, search_text);
updateRecipeCount()
+
event.preventDefault();
});
function clearSearch() {
$("#filter").val('')
+ search = $("#filter").val()
$("#clear-search-btn").hide()
applyFilters()
updateRecipeCount()
@@ -299,6 +326,10 @@ $(document).ready(function() {
});
{% endif %}
+ if (search != '') {
+ $("#filter").val(search)
+ $("#clear-search-btn").show()
+ }
applyFilters()
updateRecipeCount()
});