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 9f000f12..a21d0d2b 100644 --- a/app/coffee/modules/controllerMixins.coffee +++ b/app/coffee/modules/controllerMixins.coffee @@ -208,6 +208,12 @@ class UsFiltersMixin @filterRemoteStorageService.storeFilters(@scope.projectId, userFilters, @.storeCustomFiltersName).then(@.generateFilters) @.generateFilters() + isFilterDataTypeSelected: (filterDataType) -> + 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/issues/list.coffee b/app/coffee/modules/issues/list.coffee index 3abcf2d0..66fd80a7 100644 --- a/app/coffee/modules/issues/list.coffee +++ b/app/coffee/modules/issues/list.coffee @@ -127,6 +127,12 @@ class IssuesController extends mixOf(taiga.Controller, taiga.PageMixin, taiga.Fi delete userFilters[customFilter.id] @filterRemoteStorageService.storeFilters(@scope.projectId, userFilters, @.myFiltersHashSuffix).then(@.generateFilters) + isFilterDataTypeSelected: (filterDataType) -> + for filter in @.selectedFilters + if (filter['dataType'] == filterDataType) + return true + return false + saveCustomFilter: (name) -> filters = {} urlfilters = @location.search() @@ -588,8 +594,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 })) @@ -655,13 +662,17 @@ 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.generateFilters() + if $ctrl.isFilterDataTypeSelected('assigned_to') \ + || $ctrl.isFilterDataTypeSelected('role') + $ctrl.loadIssues() - $scope.$watch $attrs.tgIssueAssignedToInlineEdition, (val) => + $scope.$watch $attrs.tgIssueAssignedToInlineEdition, (val) -> updateIssue(val) $scope.$on "$destroy", -> diff --git a/app/coffee/modules/kanban/main.coffee b/app/coffee/modules/kanban/main.coffee index ff8642e5..bbeb79c7 100644 --- a/app/coffee/modules/kanban/main.coffee +++ b/app/coffee/modules/kanban/main.coffee @@ -199,9 +199,10 @@ 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 => + @.generateFilters() + if @.isFilterDataTypeSelected('assigned_to') || @.isFilterDataTypeSelected('role') + @.filtersReloadContent() refreshTagsColors: -> return @rs.projects.tagsColors(@scope.projectId).then (tags_colors) => @@ -302,14 +303,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 = { @@ -323,7 +324,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) @@ -334,7 +335,14 @@ 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") + + @.generateFilters() + if @.isFilterDataTypeSelected('status') + @.filtersReloadContent() + + return promise + module.controller("KanbanController", KanbanController) diff --git a/app/coffee/modules/taskboard/main.coffee b/app/coffee/modules/taskboard/main.coffee index b55899fd..8697bf61 100644 --- a/app/coffee/modules/taskboard/main.coffee +++ b/app/coffee/modules/taskboard/main.coffee @@ -134,6 +134,12 @@ class TaskboardController extends mixOf(taiga.Controller, taiga.PageMixin, taiga @filterRemoteStorageService.storeFilters(@scope.projectId, userFilters, 'tasks-custom-filters').then(@.generateFilters) + isFilterDataTypeSelected: (filterDataType) -> + for filter in @.selectedFilters + if (filter['dataType'] == filterDataType) + return true + return false + saveCustomFilter: (name) -> filters = {} urlfilters = @location.search() @@ -310,9 +316,10 @@ 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 => + @.generateFilters() + if @.isFilterDataTypeSelected('assigned_to') || @.isFilterDataTypeSelected('role') + @.loadTasks() initializeSubscription: -> routingKey = "changes.project.#{@scope.projectId}.tasks" @@ -458,6 +465,10 @@ class TaskboardController extends mixOf(taiga.Controller, taiga.PageMixin, taiga @taskboardTasksService.assignOrders(order) @.loadSprintStats() + @.generateFilters() + if @.isFilterDataTypeSelected('status') + @.loadTasks() + ## Template actions addNewTask: (type, us) ->