From 697a2b15c1e402c1c624af1ffeaf5123d7fb0e9f Mon Sep 17 00:00:00 2001 From: Dan McGee Date: Sun, 9 Mar 2014 11:49:22 -0500 Subject: Use localStorage to save/restore todolist filters Signed-off-by: Dan McGee --- sitestatic/archweb.js | 19 +++++++++++++++++++ templates/todolists/view.html | 6 +++++- 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/sitestatic/archweb.js b/sitestatic/archweb.js index 8212e85..457e334 100644 --- a/sitestatic/archweb.js +++ b/sitestatic/archweb.js @@ -367,6 +367,25 @@ function filter_pkgs_reset(callback) { callback(); } +function filter_todolist_save(list_id) { + var state = $('#todolist_filter').serializeArray(); + localStorage['filter_todolist_' + list_id] = JSON.stringify(state); +} +function filter_todolist_load(list_id) { + var state = localStorage['filter_todolist_' + list_id]; + if (!state) + return; + state = JSON.parse(state); + $('#todolist_filter .arch_filter').removeAttr('checked'); + $('#todolist_filter .repo_filter').removeAttr('checked'); + $('#id_incomplete').removeAttr('checked'); + $('#id_mine_only').removeAttr('checked'); + $.each(state, function (i, v) { + // this assumes our only filters are checkboxes + $('#todolist_filter input[name="' + v['name'] + '"]').attr('checked', 'checked'); + }); +} + /* signoffs.html */ function signoff_package() { // TODO: fix usage of this diff --git a/templates/todolists/view.html b/templates/todolists/view.html index a3ee547..0045390 100644 --- a/templates/todolists/view.html +++ b/templates/todolists/view.html @@ -118,10 +118,14 @@ $(document).ready(function() { }); $(document).ready(function() { $('a.status-link').click(todolist_flag); - var filter_func = function() { filter_pkgs_list('#todolist_filter', '#dev-todo-pkglist tbody'); }; + var filter_func = function() { + filter_pkgs_list('#todolist_filter', '#dev-todo-pkglist tbody'); + filter_todolist_save({{ list.id }}); + }; $('#todolist_filter input').change(filter_func); $('#criteria_reset').click(function() { filter_pkgs_reset(filter_func); }); // fire function on page load to ensure the current form selections take effect + filter_todolist_load({{ list.id }}); filter_func(); }); -- cgit v1.2.3-24-g4f1b