summaryrefslogtreecommitdiff
path: root/assets/js/src
diff options
context:
space:
mode:
Diffstat (limited to 'assets/js/src')
-rw-r--r--assets/js/src/board.js62
1 files changed, 46 insertions, 16 deletions
diff --git a/assets/js/src/board.js b/assets/js/src/board.js
index 8e086c93..32a9d3ed 100644
--- a/assets/js/src/board.js
+++ b/assets/js/src/board.js
@@ -273,6 +273,7 @@ Kanboard.Board = (function() {
var selectedUserId = $("#form-user_id").val();
var selectedCategoryId = $("#form-category_id").val();
var filterDueDate = $("#filter-due-date").hasClass("filter-on");
+ var filterRecent = $("#filter-recent").hasClass("filter-on");
var projectId = $('#board').data('project-id');
$("[data-task-id]").each(function(index, item) {
@@ -280,27 +281,33 @@ Kanboard.Board = (function() {
var ownerId = item.getAttribute("data-owner-id");
var dueDate = item.getAttribute("data-due-date");
var categoryId = item.getAttribute("data-category-id");
+ var recent = item.matches(".task-board-recent");
if (ownerId != selectedUserId && selectedUserId != -1) {
- item.style.opacity = "0.2";
+ item.style.display = "none";
}
else {
- item.style.opacity = "1.0";
+ item.style.display = "block";
}
if (filterDueDate && (dueDate == "" || dueDate == "0")) {
- item.style.opacity = "0.2";
+ item.style.display = "none";
}
if (categoryId != selectedCategoryId && selectedCategoryId != -1) {
+ item.style.display = "none";
+ }
+
+ if (filterRecent && ! recent) {
item.style.opacity = "0.2";
}
});
// Save filter settings
- Kanboard.SetStorageItem("board_filter_" + projectId + "_form-user_id", selectedUserId);
- Kanboard.SetStorageItem("board_filter_" + projectId + "_form-category_id", selectedCategoryId);
- Kanboard.SetStorageItem("board_filter_" + projectId + "_filter-due-date", ~~(filterDueDate));
+ Kanboard.SetStorageItem("board_filter_" + projectId + "_form-user_id", selectedUserId);
+ Kanboard.SetStorageItem("board_filter_" + projectId + "_form-category_id", selectedCategoryId);
+ Kanboard.SetStorageItem("board_filter_" + projectId + "_filter-due-date", ~~(filterDueDate));
+ Kanboard.SetStorageItem("board_filter_" + projectId + "_filter-recent", ~~(filterRecent));
}
// Load filter events
@@ -308,23 +315,46 @@ Kanboard.Board = (function() {
{
var projectId = $('#board').data('project-id');
- $("#form-user_id").change(filter_apply);
- $("#form-category_id").change(filter_apply);
+ $("#form-user_id").change(function(e) {
+ $(this).parent().toggleClass("filter-on", $(this).val() != -1);
+ filter_apply();
+ });
+
+ $("#form-category_id").change(function(e) {
+ $(this).parent().toggleClass("filter-on", $(this).val() != -1);
+ filter_apply();
+ });
+
$("#filter-due-date").click(function(e) {
$(this).toggleClass("filter-on");
filter_apply();
e.preventDefault();
});
+ $("#filter-recent").click(function(e) {
+ $(this).toggleClass("filter-on");
+ filter_apply();
+ e.preventDefault();
+ });
+
// Get and set filters from localStorage
- $("#form-user_id").val(Kanboard.GetStorageItem("board_filter_" + projectId + "_form-user_id") || -1);
- $("#form-category_id").val(Kanboard.GetStorageItem("board_filter_" + projectId + "_form-category_id") || -1);
-
- if (+Kanboard.GetStorageItem("board_filter_" + projectId + "_filter-due-date")) {
- $("#filter-due-date").addClass("filter-on");
- } else {
- $("#filter-due-date").removeClass("filter-on");
- }
+ $("#form-user_id").val(Kanboard.GetStorageItem("board_filter_" + projectId + "_form-user_id") || -1);
+ $("#form-user_id").parent().toggleClass("filter-on", $("#form-user_id").val() != -1);
+
+ $("#form-category_id").val(Kanboard.GetStorageItem("board_filter_" + projectId + "_form-category_id") || -1);
+ $("#form-category_id").parent().toggleClass("filter-on", $("#form-category_id").val() != -1);
+
+ if (+Kanboard.GetStorageItem("board_filter_" + projectId + "_filter-due-date")) {
+ $("#filter-due-date").addClass("filter-on");
+ } else {
+ $("#filter-due-date").removeClass("filter-on");
+ }
+
+ if (+Kanboard.GetStorageItem("board_filter_" + projectId + "_filter-recent")) {
+ $("#filter-recent").addClass("filter-on");
+ } else {
+ $("#filter-recent").removeClass("filter-on");
+ }
filter_apply();
}