diff options
author | Dan McGee <dan@archlinux.org> | 2014-03-09 11:58:51 -0500 |
---|---|---|
committer | Dan McGee <dan@archlinux.org> | 2014-03-09 11:58:51 -0500 |
commit | 268317dd331bcdbe1c2828583034c0274a19eea3 (patch) | |
tree | d0a7f120ddd881a6f0ae12a2af7340c0d3b0e1ec | |
parent | 697a2b15c1e402c1c624af1ffeaf5123d7fb0e9f (diff) |
Use localStorage to save/restore developer report filters
Signed-off-by: Dan McGee <dan@archlinux.org>
-rw-r--r-- | devel/views.py | 1 | ||||
-rw-r--r-- | sitestatic/archweb.js | 16 | ||||
-rw-r--r-- | templates/devel/packages.html | 6 |
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> |