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] 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