From 507e3f6ddfa33c2af83b1fa235891be700d39924 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Garc=C3=ADa?= Date: Tue, 27 Feb 2018 10:10:38 +0100 Subject: [PATCH 1/6] Reload issues list after editing assigned user inline --- app/coffee/modules/issues/list.coffee | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/app/coffee/modules/issues/list.coffee b/app/coffee/modules/issues/list.coffee index 3abcf2d0..f662a41d 100644 --- a/app/coffee/modules/issues/list.coffee +++ b/app/coffee/modules/issues/list.coffee @@ -655,13 +655,15 @@ IssueAssignedToInlineEditionDirective = ($repo, $rootscope, $translate, avatarSe $el.unbind("click") $el.find("a").addClass("not-clickable") - $scope.$on "assigned-to:added", (ctx, userId, updatedIssue) => + $scope.$on "assigned-to:added", (ctx, userId, updatedIssue) -> if updatedIssue.id == issue.id updatedIssue.assigned_to = userId - $repo.save(updatedIssue) - updateIssue(updatedIssue) + $repo.save(issue).then -> + updateIssue(updatedIssue) + $ctrl.loadIssues() + $ctrl.generateFilters() - $scope.$watch $attrs.tgIssueAssignedToInlineEdition, (val) => + $scope.$watch $attrs.tgIssueAssignedToInlineEdition, (val) -> updateIssue(val) $scope.$on "$destroy", -> From b3535ae3f2ee57215265811246bd97f6990ff824 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Garc=C3=ADa?= Date: Tue, 27 Feb 2018 10:48:06 +0100 Subject: [PATCH 2/6] Reload kanban filtered cards after editing assigned user --- app/coffee/modules/kanban/main.coffee | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/app/coffee/modules/kanban/main.coffee b/app/coffee/modules/kanban/main.coffee index ff8642e5..16000bde 100644 --- a/app/coffee/modules/kanban/main.coffee +++ b/app/coffee/modules/kanban/main.coffee @@ -199,9 +199,8 @@ class KanbanController extends mixOf(taiga.Controller, taiga.PageMixin, taiga.Fi @kanbanUserstoriesService.replaceModel(usModel) - promise = @repo.save(usModel) - promise.then null, -> - console.log "FAIL" # TODO + @repo.save(usModel).then => + @.filtersReloadContent() refreshTagsColors: -> return @rs.projects.tagsColors(@scope.projectId).then (tags_colors) => From 28bdedf0b59bd8590da2e151a54f06d040ee09a6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Garc=C3=ADa?= Date: Tue, 27 Feb 2018 12:00:57 +0100 Subject: [PATCH 3/6] Reload kanban data only if last action is related to selected filters --- app/coffee/modules/controllerMixins.coffee | 10 ++++++++++ app/coffee/modules/kanban/main.coffee | 17 ++++++++++++----- 2 files changed, 22 insertions(+), 5 deletions(-) diff --git a/app/coffee/modules/controllerMixins.coffee b/app/coffee/modules/controllerMixins.coffee index 9f000f12..580ca4a3 100644 --- a/app/coffee/modules/controllerMixins.coffee +++ b/app/coffee/modules/controllerMixins.coffee @@ -208,6 +208,16 @@ class UsFiltersMixin @filterRemoteStorageService.storeFilters(@scope.projectId, userFilters, @.storeCustomFiltersName).then(@.generateFilters) @.generateFilters() + isFilterDataTypeSelected: (filterDataType) -> + if (@.selectedFilters.length == 0) + return false + + for filter in @.selectedFilters + if (filter['dataType'] == filterDataType) + return true + + return false + generateFilters: (milestone) -> @.storeFilters(@params.pslug, @location.search(), @.storeFiltersName) diff --git a/app/coffee/modules/kanban/main.coffee b/app/coffee/modules/kanban/main.coffee index 16000bde..a0aefbb3 100644 --- a/app/coffee/modules/kanban/main.coffee +++ b/app/coffee/modules/kanban/main.coffee @@ -200,7 +200,8 @@ class KanbanController extends mixOf(taiga.Controller, taiga.PageMixin, taiga.Fi @kanbanUserstoriesService.replaceModel(usModel) @repo.save(usModel).then => - @.filtersReloadContent() + if @.isFilterDataTypeSelected('assigned_to') + @.filtersReloadContent() refreshTagsColors: -> return @rs.projects.tagsColors(@scope.projectId).then (tags_colors) => @@ -301,14 +302,14 @@ class KanbanController extends mixOf(taiga.Controller, taiga.PageMixin, taiga.Fi moveUs: (ctx, usList, newStatusId, index) -> @.cleanSelectedUss() - usList = _.map usList, (us) => + usList = _.map usList, (us) => return @kanbanUserstoriesService.getUsModel(us.id) data = @kanbanUserstoriesService.move(usList, newStatusId, index) promise = @rs.userstories.bulkUpdateKanbanOrder(@scope.projectId, data.bulkOrders) - promise.then () => + promise.then () => # saving # drag single or different status options = { @@ -322,7 +323,7 @@ class KanbanController extends mixOf(taiga.Controller, taiga.PageMixin, taiga.Fi include_tasks: true } - promises = _.map usList, (us) => + promises = _.map usList, (us) => @repo.save(us, true, params, options, true) promise = @q.all(promises) @@ -333,7 +334,13 @@ class KanbanController extends mixOf(taiga.Controller, taiga.PageMixin, taiga.Fi if headers && headers['taiga-info-order-updated'] order = JSON.parse(headers['taiga-info-order-updated']) @kanbanUserstoriesService.assignOrders(order) - @scope.$broadcast("redraw:wip") + @scope.$broadcast("redraw:wip") + + if @.isFilterDataTypeSelected('status') + @.filtersReloadContent() + + return promise + module.controller("KanbanController", KanbanController) From 02e6fa1f6b5cd2c228e9e900145fca7ce0880971 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Garc=C3=ADa?= Date: Tue, 27 Feb 2018 12:19:50 +0100 Subject: [PATCH 4/6] Reload taskboard and issues list only if last action is related to selected filters --- app/coffee/modules/issues/list.coffee | 17 +++++++++++++++-- app/coffee/modules/kanban/main.coffee | 2 +- app/coffee/modules/taskboard/main.coffee | 19 ++++++++++++++++--- 3 files changed, 32 insertions(+), 6 deletions(-) diff --git a/app/coffee/modules/issues/list.coffee b/app/coffee/modules/issues/list.coffee index f662a41d..ae8c040e 100644 --- a/app/coffee/modules/issues/list.coffee +++ b/app/coffee/modules/issues/list.coffee @@ -127,6 +127,16 @@ class IssuesController extends mixOf(taiga.Controller, taiga.PageMixin, taiga.Fi delete userFilters[customFilter.id] @filterRemoteStorageService.storeFilters(@scope.projectId, userFilters, @.myFiltersHashSuffix).then(@.generateFilters) + isFilterDataTypeSelected: (filterDataType) -> + if (@.selectedFilters.length == 0) + return false + + for filter in @.selectedFilters + if (filter['dataType'] == filterDataType) + return true + + return false + saveCustomFilter: (name) -> filters = {} urlfilters = @location.search() @@ -588,8 +598,9 @@ IssueStatusInlineEditionDirective = ($repo, $template, $rootscope) -> $scope.$apply () -> $repo.save(issue).then -> - $ctrl.loadIssues() $ctrl.generateFilters() + if $ctrl.isFilterDataTypeSelected('status') + $ctrl.loadIssues() taiga.bindOnce $scope, "project", (project) -> $el.append(selectionTemplate({ 'statuses': project.issue_statuses })) @@ -660,8 +671,10 @@ IssueAssignedToInlineEditionDirective = ($repo, $rootscope, $translate, avatarSe updatedIssue.assigned_to = userId $repo.save(issue).then -> updateIssue(updatedIssue) - $ctrl.loadIssues() $ctrl.generateFilters() + if $ctrl.isFilterDataTypeSelected('assigned_to') \ + || $ctrl.isFilterDataTypeSelected('role') + $ctrl.loadIssues() $scope.$watch $attrs.tgIssueAssignedToInlineEdition, (val) -> updateIssue(val) diff --git a/app/coffee/modules/kanban/main.coffee b/app/coffee/modules/kanban/main.coffee index a0aefbb3..fefb3abe 100644 --- a/app/coffee/modules/kanban/main.coffee +++ b/app/coffee/modules/kanban/main.coffee @@ -200,7 +200,7 @@ class KanbanController extends mixOf(taiga.Controller, taiga.PageMixin, taiga.Fi @kanbanUserstoriesService.replaceModel(usModel) @repo.save(usModel).then => - if @.isFilterDataTypeSelected('assigned_to') + if @.isFilterDataTypeSelected('assigned_to') || @.isFilterDataTypeSelected('role') @.filtersReloadContent() refreshTagsColors: -> diff --git a/app/coffee/modules/taskboard/main.coffee b/app/coffee/modules/taskboard/main.coffee index b55899fd..9a9f3c46 100644 --- a/app/coffee/modules/taskboard/main.coffee +++ b/app/coffee/modules/taskboard/main.coffee @@ -134,6 +134,16 @@ class TaskboardController extends mixOf(taiga.Controller, taiga.PageMixin, taiga @filterRemoteStorageService.storeFilters(@scope.projectId, userFilters, 'tasks-custom-filters').then(@.generateFilters) + isFilterDataTypeSelected: (filterDataType) -> + if (@.selectedFilters.length == 0) + return false + + for filter in @.selectedFilters + if (filter['dataType'] == filterDataType) + return true + + return false + saveCustomFilter: (name) -> filters = {} urlfilters = @location.search() @@ -310,9 +320,9 @@ class TaskboardController extends mixOf(taiga.Controller, taiga.PageMixin, taiga @taskboardTasksService.replaceModel(taskModel) - promise = @repo.save(taskModel) - promise.then null, -> - console.log "FAIL" # TODO + @repo.save(taskModel).then => + if @.isFilterDataTypeSelected('assigned_to') || @.isFilterDataTypeSelected('role') + @.loadTasks() initializeSubscription: -> routingKey = "changes.project.#{@scope.projectId}.tasks" @@ -457,6 +467,9 @@ class TaskboardController extends mixOf(taiga.Controller, taiga.PageMixin, taiga order = JSON.parse(headers['taiga-info-order-updated']) @taskboardTasksService.assignOrders(order) + if @.isFilterDataTypeSelected('status') + @.loadTasks() + @.loadSprintStats() ## Template actions From 0b6765acbbe022fff6bba4d1337f98dbfe78cfaa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Garc=C3=ADa?= Date: Tue, 27 Feb 2018 13:36:57 +0100 Subject: [PATCH 5/6] Reload backlog after changing us status if status filter is selected --- app/coffee/modules/backlog/main.coffee | 2 ++ app/coffee/modules/controllerMixins.coffee | 4 ---- app/coffee/modules/issues/list.coffee | 4 ---- app/coffee/modules/taskboard/main.coffee | 4 ---- 4 files changed, 2 insertions(+), 12 deletions(-) diff --git a/app/coffee/modules/backlog/main.coffee b/app/coffee/modules/backlog/main.coffee index 1c4a3d2d..95d7277a 100644 --- a/app/coffee/modules/backlog/main.coffee +++ b/app/coffee/modules/backlog/main.coffee @@ -521,6 +521,8 @@ class BacklogController extends mixOf(taiga.Controller, taiga.PageMixin, taiga.F @.generateFilters().then () => @rootscope.$broadcast("filters:update") @.loadProjectStats() + if @.isFilterDataTypeSelected('status') + @.filtersReloadContent() editUserStory: (projectId, ref, $event) -> target = $($event.target) diff --git a/app/coffee/modules/controllerMixins.coffee b/app/coffee/modules/controllerMixins.coffee index 580ca4a3..a21d0d2b 100644 --- a/app/coffee/modules/controllerMixins.coffee +++ b/app/coffee/modules/controllerMixins.coffee @@ -209,13 +209,9 @@ class UsFiltersMixin @.generateFilters() isFilterDataTypeSelected: (filterDataType) -> - if (@.selectedFilters.length == 0) - return false - for filter in @.selectedFilters if (filter['dataType'] == filterDataType) return true - return false generateFilters: (milestone) -> diff --git a/app/coffee/modules/issues/list.coffee b/app/coffee/modules/issues/list.coffee index ae8c040e..66fd80a7 100644 --- a/app/coffee/modules/issues/list.coffee +++ b/app/coffee/modules/issues/list.coffee @@ -128,13 +128,9 @@ class IssuesController extends mixOf(taiga.Controller, taiga.PageMixin, taiga.Fi @filterRemoteStorageService.storeFilters(@scope.projectId, userFilters, @.myFiltersHashSuffix).then(@.generateFilters) isFilterDataTypeSelected: (filterDataType) -> - if (@.selectedFilters.length == 0) - return false - for filter in @.selectedFilters if (filter['dataType'] == filterDataType) return true - return false saveCustomFilter: (name) -> diff --git a/app/coffee/modules/taskboard/main.coffee b/app/coffee/modules/taskboard/main.coffee index 9a9f3c46..a50253f8 100644 --- a/app/coffee/modules/taskboard/main.coffee +++ b/app/coffee/modules/taskboard/main.coffee @@ -135,13 +135,9 @@ class TaskboardController extends mixOf(taiga.Controller, taiga.PageMixin, taiga @filterRemoteStorageService.storeFilters(@scope.projectId, userFilters, 'tasks-custom-filters').then(@.generateFilters) isFilterDataTypeSelected: (filterDataType) -> - if (@.selectedFilters.length == 0) - return false - for filter in @.selectedFilters if (filter['dataType'] == filterDataType) return true - return false saveCustomFilter: (name) -> From 3c65770272e02e9817d9f7143666c01b71fe7d49 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Garc=C3=ADa?= Date: Thu, 1 Mar 2018 11:42:42 +0100 Subject: [PATCH 6/6] Update filter counters after change tasks/us status or assigned user in Issues List, Kanban and Sprint Taskboard --- app/coffee/modules/kanban/main.coffee | 2 ++ app/coffee/modules/taskboard/main.coffee | 4 +++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/app/coffee/modules/kanban/main.coffee b/app/coffee/modules/kanban/main.coffee index fefb3abe..bbeb79c7 100644 --- a/app/coffee/modules/kanban/main.coffee +++ b/app/coffee/modules/kanban/main.coffee @@ -200,6 +200,7 @@ class KanbanController extends mixOf(taiga.Controller, taiga.PageMixin, taiga.Fi @kanbanUserstoriesService.replaceModel(usModel) @repo.save(usModel).then => + @.generateFilters() if @.isFilterDataTypeSelected('assigned_to') || @.isFilterDataTypeSelected('role') @.filtersReloadContent() @@ -336,6 +337,7 @@ class KanbanController extends mixOf(taiga.Controller, taiga.PageMixin, taiga.Fi @kanbanUserstoriesService.assignOrders(order) @scope.$broadcast("redraw:wip") + @.generateFilters() if @.isFilterDataTypeSelected('status') @.filtersReloadContent() diff --git a/app/coffee/modules/taskboard/main.coffee b/app/coffee/modules/taskboard/main.coffee index a50253f8..8697bf61 100644 --- a/app/coffee/modules/taskboard/main.coffee +++ b/app/coffee/modules/taskboard/main.coffee @@ -317,6 +317,7 @@ class TaskboardController extends mixOf(taiga.Controller, taiga.PageMixin, taiga @taskboardTasksService.replaceModel(taskModel) @repo.save(taskModel).then => + @.generateFilters() if @.isFilterDataTypeSelected('assigned_to') || @.isFilterDataTypeSelected('role') @.loadTasks() @@ -463,10 +464,11 @@ class TaskboardController extends mixOf(taiga.Controller, taiga.PageMixin, taiga order = JSON.parse(headers['taiga-info-order-updated']) @taskboardTasksService.assignOrders(order) + @.loadSprintStats() + @.generateFilters() if @.isFilterDataTypeSelected('status') @.loadTasks() - @.loadSprintStats() ## Template actions addNewTask: (type, us) ->