rrs/recipes: Add support for persist search and filters.

Now when search something the URL is modified and you can
share the URL for access to the data.

[YOCTO #7809]

Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com>
This commit is contained in:
Aníbal Limón 2015-12-01 18:02:59 -06:00
parent 45499f50c2
commit baf1798be1
2 changed files with 44 additions and 2 deletions

View File

@ -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):

View File

@ -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()
});