diff options
author | Frédéric Guillot <fguillot@users.noreply.github.com> | 2014-04-26 20:04:39 -0400 |
---|---|---|
committer | Frédéric Guillot <fguillot@users.noreply.github.com> | 2014-04-26 20:04:39 -0400 |
commit | 6551609d1b248011d301080c1be7c48085dc5d55 (patch) | |
tree | 0b09326b95232338f9f61dfe6268ced206e5b78b /assets | |
parent | 3332949c8baae581ea70ce5c61bb2a6225100422 (diff) |
Add a filter by user and due date + minor changes
Diffstat (limited to 'assets')
-rw-r--r-- | assets/css/app.css | 5 | ||||
-rw-r--r-- | assets/js/board.js | 54 |
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(); + }; + } + }()); |