Reload taskboard and issues list only if last action is related to selected filters

stable
Daniel García 2018-02-27 12:19:50 +01:00
parent 28bdedf0b5
commit 02e6fa1f6b
3 changed files with 32 additions and 6 deletions

View File

@ -127,6 +127,16 @@ class IssuesController extends mixOf(taiga.Controller, taiga.PageMixin, taiga.Fi
delete userFilters[customFilter.id] delete userFilters[customFilter.id]
@filterRemoteStorageService.storeFilters(@scope.projectId, userFilters, @.myFiltersHashSuffix).then(@.generateFilters) @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) -> saveCustomFilter: (name) ->
filters = {} filters = {}
urlfilters = @location.search() urlfilters = @location.search()
@ -588,8 +598,9 @@ IssueStatusInlineEditionDirective = ($repo, $template, $rootscope) ->
$scope.$apply () -> $scope.$apply () ->
$repo.save(issue).then -> $repo.save(issue).then ->
$ctrl.loadIssues()
$ctrl.generateFilters() $ctrl.generateFilters()
if $ctrl.isFilterDataTypeSelected('status')
$ctrl.loadIssues()
taiga.bindOnce $scope, "project", (project) -> taiga.bindOnce $scope, "project", (project) ->
$el.append(selectionTemplate({ 'statuses': project.issue_statuses })) $el.append(selectionTemplate({ 'statuses': project.issue_statuses }))
@ -660,8 +671,10 @@ IssueAssignedToInlineEditionDirective = ($repo, $rootscope, $translate, avatarSe
updatedIssue.assigned_to = userId updatedIssue.assigned_to = userId
$repo.save(issue).then -> $repo.save(issue).then ->
updateIssue(updatedIssue) updateIssue(updatedIssue)
$ctrl.loadIssues()
$ctrl.generateFilters() $ctrl.generateFilters()
if $ctrl.isFilterDataTypeSelected('assigned_to') \
|| $ctrl.isFilterDataTypeSelected('role')
$ctrl.loadIssues()
$scope.$watch $attrs.tgIssueAssignedToInlineEdition, (val) -> $scope.$watch $attrs.tgIssueAssignedToInlineEdition, (val) ->
updateIssue(val) updateIssue(val)

View File

@ -200,7 +200,7 @@ class KanbanController extends mixOf(taiga.Controller, taiga.PageMixin, taiga.Fi
@kanbanUserstoriesService.replaceModel(usModel) @kanbanUserstoriesService.replaceModel(usModel)
@repo.save(usModel).then => @repo.save(usModel).then =>
if @.isFilterDataTypeSelected('assigned_to') if @.isFilterDataTypeSelected('assigned_to') || @.isFilterDataTypeSelected('role')
@.filtersReloadContent() @.filtersReloadContent()
refreshTagsColors: -> refreshTagsColors: ->

View File

@ -134,6 +134,16 @@ class TaskboardController extends mixOf(taiga.Controller, taiga.PageMixin, taiga
@filterRemoteStorageService.storeFilters(@scope.projectId, userFilters, 'tasks-custom-filters').then(@.generateFilters) @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) -> saveCustomFilter: (name) ->
filters = {} filters = {}
urlfilters = @location.search() urlfilters = @location.search()
@ -310,9 +320,9 @@ class TaskboardController extends mixOf(taiga.Controller, taiga.PageMixin, taiga
@taskboardTasksService.replaceModel(taskModel) @taskboardTasksService.replaceModel(taskModel)
promise = @repo.save(taskModel) @repo.save(taskModel).then =>
promise.then null, -> if @.isFilterDataTypeSelected('assigned_to') || @.isFilterDataTypeSelected('role')
console.log "FAIL" # TODO @.loadTasks()
initializeSubscription: -> initializeSubscription: ->
routingKey = "changes.project.#{@scope.projectId}.tasks" 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']) order = JSON.parse(headers['taiga-info-order-updated'])
@taskboardTasksService.assignOrders(order) @taskboardTasksService.assignOrders(order)
if @.isFilterDataTypeSelected('status')
@.loadTasks()
@.loadSprintStats() @.loadSprintStats()
## Template actions ## Template actions