summaryrefslogtreecommitdiff
path: root/assets/js
diff options
context:
space:
mode:
authorFrédéric Guillot <fguillot@users.noreply.github.com>2014-04-26 20:04:39 -0400
committerFrédéric Guillot <fguillot@users.noreply.github.com>2014-04-26 20:04:39 -0400
commit6551609d1b248011d301080c1be7c48085dc5d55 (patch)
tree0b09326b95232338f9f61dfe6268ced206e5b78b /assets/js
parent3332949c8baae581ea70ce5c61bb2a6225100422 (diff)
Add a filter by user and due date + minor changes
Diffstat (limited to 'assets/js')
-rw-r--r--assets/js/board.js54
1 files changed, 54 insertions, 0 deletions
diff --git a/assets/js/board.js b/assets/js/board.js
index 3c5ec51c..a030a5fb 100644
--- a/assets/js/board.js
+++ b/assets/js/board.js
@@ -208,6 +208,8 @@
});
}
+ // Drag and drop events
+
var dragSrcItem = null;
var dragSrcColumn = null;
@@ -235,4 +237,56 @@
});
});
+ // Filtering
+
+ function getSelectedUserFilter()
+ {
+ var select = document.getElementById("form-user_id");
+ return select.options[select.selectedIndex].value;
+ }
+
+ function hasDueDateFilter()
+ {
+ var dateFilter = document.getElementById("filter-due-date");
+ return dateFilter.classList.contains("filter-on");
+ }
+
+ function applyFilter(selectedUserId, filterDueDate)
+ {
+ [].forEach.call(document.querySelectorAll('[data-task-id]'), function (item) {
+
+ var ownerId = item.getAttribute("data-owner-id");
+ var dueDate = item.getAttribute("data-due-date");
+
+ if (ownerId != selectedUserId && selectedUserId != -1) {
+ item.style.opacity = "0.2";
+ }
+ else {
+ item.style.opacity = "1.0";
+ }
+
+ if (filterDueDate && dueDate == "") {
+ item.style.opacity = "0.2";
+ }
+ });
+ }
+
+ var userFilter = document.getElementById("form-user_id");
+ var dateFilter = document.getElementById("filter-due-date");
+
+ if (userFilter) {
+ userFilter.onchange = function() {
+ applyFilter(getSelectedUserFilter(), hasDueDateFilter());
+ };
+ }
+
+ if (dateFilter) {
+
+ dateFilter.onclick = function(e) {
+ dateFilter.classList.toggle("filter-on");
+ applyFilter(getSelectedUserFilter(), hasDueDateFilter());
+ e.preventDefault();
+ };
+ }
+
}());