summaryrefslogtreecommitdiff
path: root/assets
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
parent3332949c8baae581ea70ce5c61bb2a6225100422 (diff)
Add a filter by user and due date + minor changes
Diffstat (limited to 'assets')
-rw-r--r--assets/css/app.css5
-rw-r--r--assets/js/board.js54
2 files changed, 59 insertions, 0 deletions
diff --git a/assets/css/app.css b/assets/css/app.css
index f3a44c92..a406fa4d 100644
--- a/assets/css/app.css
+++ b/assets/css/app.css
@@ -468,6 +468,11 @@ nav .active a {
background-color: red;
}
+a.filter-on {
+ font-weight: bold;
+ color: #333;
+}
+
.task-title {
margin-top: 10px;
font-size: 110%;
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();
+ };
+ }
+
}());