diff options
author | Frederic Guillot <fred@kanboard.net> | 2015-07-04 11:14:21 -0400 |
---|---|---|
committer | Frederic Guillot <fred@kanboard.net> | 2015-07-04 11:14:21 -0400 |
commit | 554500aa493faa66b43b2ddce72338880a874724 (patch) | |
tree | 73066cfbe6af3cabf81b5be1dc5ef81e44792a21 /assets/js/src | |
parent | a327f790ee036664439bf50e00c95fb8a0e1f97e (diff) |
Refactoring to implement new layout with filters: board/calendar/list views (work in progress)
Diffstat (limited to 'assets/js/src')
-rw-r--r-- | assets/js/src/analytic.js | 5 | ||||
-rw-r--r-- | assets/js/src/base.js | 1 | ||||
-rw-r--r-- | assets/js/src/board.js | 92 | ||||
-rw-r--r-- | assets/js/src/calendar.js | 188 | ||||
-rw-r--r-- | assets/js/src/swimlane.js | 2 |
5 files changed, 47 insertions, 241 deletions
diff --git a/assets/js/src/analytic.js b/assets/js/src/analytic.js index 8066165b..bec4d76e 100644 --- a/assets/js/src/analytic.js +++ b/assets/js/src/analytic.js @@ -1,5 +1,4 @@ - -Kanboard.Analytic = (function() { +(function() { // CFD diagram function drawCfd() @@ -185,6 +184,4 @@ Kanboard.Analytic = (function() { } }); - return {}; - })(); diff --git a/assets/js/src/base.js b/assets/js/src/base.js index 0d46b503..992342e9 100644 --- a/assets/js/src/base.js +++ b/assets/js/src/base.js @@ -1,4 +1,3 @@ -// Common functions var Kanboard = (function() { jQuery(document).ready(function() { diff --git a/assets/js/src/board.js b/assets/js/src/board.js index 9f93a869..d11e39f5 100644 --- a/assets/js/src/board.js +++ b/assets/js/src/board.js @@ -1,4 +1,4 @@ -Kanboard.Board = (function() { +(function() { var checkInterval = null; @@ -243,7 +243,6 @@ Kanboard.Board = (function() { $("#main").append(data); Kanboard.InitAfterAjax(); board_load_events(); - filter_apply(); stack_show(); compactview_reload(); } @@ -264,7 +263,6 @@ Kanboard.Board = (function() { Kanboard.InitAfterAjax(); board_unload_events(); board_load_events(); - filter_apply(); stack_show(); compactview_reload(); } @@ -273,93 +271,6 @@ Kanboard.Board = (function() { } } - // Apply user or date filter (change tasks opacity) - function filter_apply() - { - var selectedUserId = $("#form-user_id").val(); - var selectedCategoryId = $("#form-category_id").val(); - var filterDueDate = $("#more-filters option[value=filter-due-date]").is(":selected") - var filterRecent = $("#more-filters option[value=filter-recent]").is(":selected") - var projectId = $('#board').data('project-id'); - - $("[data-task-id]").each(function(index, item) { - - var ownerId = item.getAttribute("data-owner-id"); - var dueDate = item.getAttribute("data-due-date"); - var categoryId = item.getAttribute("data-category-id"); - var recent = $(item).hasClass("task-board-recent"); - - if (ownerId != selectedUserId && selectedUserId != -1) { - item.style.display = "none"; - } - else { - item.style.display = "block"; - } - - if (filterDueDate && (dueDate == "" || dueDate == "0")) { - item.style.display = "none"; - } - - if (categoryId != selectedCategoryId && selectedCategoryId != -1) { - item.style.display = "none"; - } - - if (filterRecent && ! recent) { - item.style.display = "none"; - } - }); - - // 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 + "_filter-recent", ~~(filterRecent)); - } - - // Load filter events - function filter_load_events() - { - var projectId = $('#board').data('project-id'); - - $("#form-user_id").chosen({ - width: "180px", - no_results_text: $("#form-user_id").data("notfound") - }); - - $("#form-category_id").chosen({ - width: "200px", - no_results_text: $("#form-category_id").data("notfound") - }); - - $("#more-filters").chosen({ - width: "30%", - no_results_text: $("#more-filters").data("notfound") - }); - - $(".apply-filters").change(function(e) { - filter_apply(); - }); - - // Get and set filters from localStorage - $("#form-user_id").val(Kanboard.GetStorageItem("board_filter_" + projectId + "_form-user_id") || -1); - $("#form-user_id").trigger("chosen:updated"); - - $("#form-category_id").val(Kanboard.GetStorageItem("board_filter_" + projectId + "_form-category_id") || -1); - $("#form-category_id").trigger("chosen:updated"); - - if (+Kanboard.GetStorageItem("board_filter_" + projectId + "_filter-due-date")) { - $("#more-filters option[value=filter-due-date]").attr("selected", true); - } - - if (+Kanboard.GetStorageItem("board_filter_" + projectId + "_filter-recent")) { - $("#more-filters option[value=filter-recent]").attr("selected", true); - } - - $("#more-filters").trigger("chosen:updated"); - - filter_apply(); - } - function compactview_load_events() { jQuery(document).on('click', ".filter-toggle-scrolling", function(e) { @@ -401,7 +312,6 @@ Kanboard.Board = (function() { if (Kanboard.Exists("board")) { board_load_events(); - filter_load_events(); stack_load_events(); compactview_load_events(); keyboard_shortcuts(); diff --git a/assets/js/src/calendar.js b/assets/js/src/calendar.js index 5e20f962..68da57ee 100644 --- a/assets/js/src/calendar.js +++ b/assets/js/src/calendar.js @@ -1,150 +1,50 @@ -Kanboard.Calendar = (function() { - - var filter_storage_key = ""; - - // Save the new due date for a moved task - function move_calendar_event(calendar_event) - { - var url = $("#calendar").data("save-url") || $("#user-calendar").data("save-url"); - - $.ajax({ - cache: false, - url: url, - contentType: "application/json", - type: "POST", - processData: false, - data: JSON.stringify({ - "task_id": calendar_event.id, - "date_due": calendar_event.start.format() - }) - }); - } - - // Show the user calendar - function show_user_calendar() - { - var calendar = $("#user-calendar"); - - calendar.fullCalendar({ - lang: $("body").data("js-lang"), - editable: true, - eventLimit: true, - defaultView: "month", - header: { - left: 'prev,next today', - center: 'title', - right: 'month,agendaWeek,agendaDay' - }, - viewRender: refresh_user_calendar, - eventDrop: move_calendar_event - }); - } - - // Refresh the calendar events - function refresh_user_calendar() - { - var calendar = $("#user-calendar"); - var url = calendar.data("check-url"); - var params = { - "start": calendar.fullCalendar('getView').start.format(), - "end": calendar.fullCalendar('getView').end.format(), - "user_id": calendar.data("user-id") - }; - - for (var key in params) { - url += "&" + key + "=" + params[key]; - } - - $.getJSON(url, function(events) { - calendar.fullCalendar('removeEvents'); - calendar.fullCalendar('addEventSource', events); - calendar.fullCalendar('rerenderEvents'); - }); - } - - // Show the project calendar - function show_project_calendar() - { - var calendar = $("#calendar"); - - calendar.fullCalendar({ - lang: $("body").data("js-lang"), - editable: true, - eventLimit: true, - defaultView: "month", - header: { - left: 'prev,next today', - center: 'title', - right: 'month,agendaWeek,agendaDay' - }, - viewRender: load_project_filters, - eventDrop: move_calendar_event - }); - } - - // Refresh the calendar events - function refresh_project_calendar(filters) - { - var calendar = $("#calendar"); - var url = calendar.data("check-url"); - var params = { - "start": calendar.fullCalendar('getView').start.format(), - "end": calendar.fullCalendar('getView').end.format() - }; - - jQuery.extend(params, filters); - - for (var key in params) { - url += "&" + key + "=" + params[key]; - } - - $.getJSON(url, function(events) { - calendar.fullCalendar('removeEvents'); - calendar.fullCalendar('addEventSource', events); - calendar.fullCalendar('rerenderEvents'); - }); - } - - // Restore saved filters - function load_project_filters() - { - var filters = Kanboard.GetStorageItem(filter_storage_key); - - if (filters !== "") { - filters = JSON.parse(filters); - - for (var filter in filters) { - $("select[name=" + filter + "]").val(filters[filter]); - } - } - - refresh_project_calendar(filters || {}); - - $('.calendar-filter').change(apply_project_filters); - } - - // Apply filters on change - function apply_project_filters() - { - var filters = {}; - - $('.calendar-filter').each(function() { - filters[$(this).attr("name")] = $(this).val(); - }); - - Kanboard.SetStorageItem(filter_storage_key, JSON.stringify(filters)); - refresh_project_calendar(filters); - } +(function() { jQuery(document).ready(function() { - if (Kanboard.Exists("calendar")) { - filter_storage_key = "calendar_filters_" + $("#calendar").data("project-id"); - show_project_calendar(); - load_project_filters(); - } - else if (Kanboard.Exists("user-calendar")) { - show_user_calendar(); + var calendar = $('#calendar'); + + calendar.fullCalendar({ + lang: $("body").data("js-lang"), + editable: true, + eventLimit: true, + defaultView: "month", + header: { + left: 'prev,next today', + center: 'title', + right: 'month,agendaWeek,agendaDay' + }, + eventDrop: function(event) { + $.ajax({ + cache: false, + url: calendar.data("save-url"), + contentType: "application/json", + type: "POST", + processData: false, + data: JSON.stringify({ + "task_id": event.id, + "date_due": event.start.format() + }) + }); + }, + viewRender: function() { + var url = calendar.data("check-url"); + var params = { + "start": calendar.fullCalendar('getView').start.format(), + "end": calendar.fullCalendar('getView').end.format() + }; + + for (var key in params) { + url += "&" + key + "=" + params[key]; + } + + $.getJSON(url, function(events) { + calendar.fullCalendar('removeEvents'); + calendar.fullCalendar('addEventSource', events); + calendar.fullCalendar('rerenderEvents'); + }); + } + }); } }); diff --git a/assets/js/src/swimlane.js b/assets/js/src/swimlane.js index 77f45907..212d6d36 100644 --- a/assets/js/src/swimlane.js +++ b/assets/js/src/swimlane.js @@ -1,4 +1,4 @@ -Kanboard.Swimlane = (function() {
+(function() {
// Expand a Swimlane via display attributes
function expand(swimlaneId)
|