Merge pull request #1412 from dangarbar/ft/filter-refresh

Refresh views after change tasks/us status or assigned user
stable
Alejandro 2018-03-02 09:47:56 +01:00 committed by GitHub
commit 9a6541f6e0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 53 additions and 15 deletions

View File

@ -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)

View File

@ -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)

View File

@ -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", ->

View File

@ -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)

View File

@ -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) ->