summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan McGee <dan@archlinux.org>2014-03-09 11:58:51 -0500
committerDan McGee <dan@archlinux.org>2014-03-09 11:58:51 -0500
commit268317dd331bcdbe1c2828583034c0274a19eea3 (patch)
treed0a7f120ddd881a6f0ae12a2af7340c0d3b0e1ec
parent697a2b15c1e402c1c624af1ffeaf5123d7fb0e9f (diff)
Use localStorage to save/restore developer report filters
Signed-off-by: Dan McGee <dan@archlinux.org>
-rw-r--r--devel/views.py1
-rw-r--r--sitestatic/archweb.js16
-rw-r--r--templates/devel/packages.html6
3 files changed, 22 insertions, 1 deletions
diff --git a/devel/views.py b/devel/views.py
index c53da668..972d0abb 100644
--- a/devel/views.py
+++ b/devel/views.py
@@ -201,6 +201,7 @@ def report(request, report_name, username=None):
context = {
'all_maintainers': maints,
'title': report.description,
+ 'report': report,
'maintainer': user,
'packages': report.packages(packages, username),
'arches': sorted(arches),
diff --git a/sitestatic/archweb.js b/sitestatic/archweb.js
index 457e334c..0a979494 100644
--- a/sitestatic/archweb.js
+++ b/sitestatic/archweb.js
@@ -386,6 +386,22 @@ function filter_todolist_load(list_id) {
});
}
+function filter_report_save(report_id) {
+ var state = $('#report_filter').serializeArray();
+ localStorage['filter_report_' + report_id] = JSON.stringify(state);
+}
+function filter_report_load(report_id) {
+ var state = localStorage['filter_report_' + report_id];
+ if (!state)
+ return;
+ state = JSON.parse(state);
+ $('#report_filter input[type="checkbox"]').removeAttr('checked')
+ $.each(state, function (i, v) {
+ // this assumes our only filters are checkboxes
+ $('#report_filter input[name="' + v['name'] + '"]').attr('checked', 'checked');
+ });
+}
+
/* signoffs.html */
function signoff_package() {
// TODO: fix usage of this
diff --git a/templates/devel/packages.html b/templates/devel/packages.html
index 74aebf20..c190ab08 100644
--- a/templates/devel/packages.html
+++ b/templates/devel/packages.html
@@ -84,10 +84,14 @@ $(document).ready(function() {
$(".results").tablesorter({widgets: ['zebra']});
});
$(document).ready(function() {
- var filter_func = function() { filter_pkgs_list('#report_filter', '#dev-report-results tbody'); };
+ var filter_func = function() {
+ filter_pkgs_list('#report_filter', '#dev-report-results tbody');
+ filter_report_save('{{ report.slug }}');
+ };
$('#report_filter input').change(filter_func);
$('#criteria_reset').click(function() { filter_pkgs_reset(filter_func); });
// run on page load to ensure current form selections take effect
+ filter_report_load('{{ report.slug }}');
filter_func();
});
</script>