From aaca5e981415e16b9920df1e5a1d181c8540ebd7 Mon Sep 17 00:00:00 2001
From: gavlepeter
Date: Mon, 5 Jan 2015 11:51:41 +0100
Subject: Update board.js to always keep filter settings
Save filter settings to localStorage everytime filter_apply() is called.
Get and set filters from localStorage when filter_load_events() is called.
This improves the user experience when browsing tasks on a filtered board. No need to set the filters each time the board loads.
Perhaps a checkbox option to initialize this functionality but I think it should be default behavior.
---
assets/js/board.js | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)
(limited to 'assets/js/board.js')
diff --git a/assets/js/board.js b/assets/js/board.js
index 9a0f070d..00d2efdd 100644
--- a/assets/js/board.js
+++ b/assets/js/board.js
@@ -213,6 +213,14 @@ Kanboard.Board = (function() {
item.style.opacity = "0.2";
}
});
+
+ //Save filter settings for active project to localStorage
+ if (typeof(Storage) !== "undefined") {
+ var projectId = $('#board').data('project-id');
+ localStorage.setItem(projectId + "_form-user_id", selectedUserId);
+ localStorage.setItem(projectId + "_form-category_id", selectedCategoryId);
+ localStorage.setItem(projectId + "_filter-due-date", ~~(filterDueDate));
+ }
}
// Load filter events
@@ -227,6 +235,22 @@ Kanboard.Board = (function() {
filter_apply();
e.preventDefault();
});
+
+ // Get and set filters from localStorage for active project
+ if (typeof(Storage) !== "undefined") {
+ var projectId = $('#board').data('project-id');
+ $("#form-user_id").val(localStorage.getItem(projectId + "_form-user_id") || -1);
+ $("#form-category_id").val(localStorage.getItem(projectId + "_form-category_id") || -1);
+
+ if (+localStorage.getItem(projectId + "_filter-due-date")) {
+ $("#filter-due-date").addClass("filter-on");
+ } else {
+ $("#filter-due-date").removeClass("filter-on");
+ }
+
+ // apply filters on load
+ filter_apply();
+ }
}
return {
--
cgit v1.2.3