summaryrefslogtreecommitdiff
path: root/assets/js/board.js
diff options
context:
space:
mode:
Diffstat (limited to 'assets/js/board.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();
+ };
+ }
+
}());