Fixing arrows error on hide/show sprints in backlog

stable
Alejandro Alonso 2015-02-03 15:08:12 +01:00
parent a4b10210a7
commit bc064f8e50
3 changed files with 30 additions and 20 deletions

View File

@ -59,7 +59,6 @@ class BacklogController extends mixOf(taiga.Controller, taiga.PageMixin, taiga.F
@scope.sectionName = "Backlog" @scope.sectionName = "Backlog"
@showTags = false @showTags = false
@activeFilters = false @activeFilters = false
@excludeClosedSprints = true
@.initializeEventHandlers() @.initializeEventHandlers()
@ -111,7 +110,8 @@ class BacklogController extends mixOf(taiga.Controller, taiga.PageMixin, taiga.F
@scope.$on("sprint:us:moved", @.loadSprints) @scope.$on("sprint:us:moved", @.loadSprints)
@scope.$on("sprint:us:moved", @.loadProjectStats) @scope.$on("sprint:us:moved", @.loadProjectStats)
@scope.$on("backlog:toggle-closed-sprints-visualization", @.toggleClosedSprintsVisualization) @scope.$on("backlog:load-closed-sprints", @.loadClosedSprints)
@scope.$on("backlog:unload-closed-sprints", @.unloadClosedSprints)
initializeSubscription: -> initializeSubscription: ->
routingKey1 = "changes.project.#{@scope.projectId}.userstories" routingKey1 = "changes.project.#{@scope.projectId}.userstories"
@ -146,11 +146,23 @@ class BacklogController extends mixOf(taiga.Controller, taiga.PageMixin, taiga.F
return @rs.projects.tagsColors(@scope.projectId).then (tags_colors) => return @rs.projects.tagsColors(@scope.projectId).then (tags_colors) =>
@scope.project.tags_colors = tags_colors @scope.project.tags_colors = tags_colors
loadSprints: -> unloadClosedSprints: ->
params = {} @scope.$apply =>
if @excludeClosedSprints @scope.closedSprints = []
params["closed"] = false @rootscope.$broadcast("closed-sprints:reloaded", [])
loadClosedSprints: ->
params = {closed: true}
return @rs.sprints.list(@scope.projectId, params).then (sprints) =>
# NOTE: Fix order of USs because the filter orderBy does not work propertly in partials files
for sprint in sprints
sprint.user_stories = _.sortBy(sprint.user_stories, "sprint_order")
@scope.closedSprints = sprints
@rootscope.$broadcast("closed-sprints:reloaded", sprints)
return sprints
loadSprints: ->
params = {closed: false}
return @rs.sprints.list(@scope.projectId, params).then (sprints) => return @rs.sprints.list(@scope.projectId, params).then (sprints) =>
# NOTE: Fix order of USs because the filter orderBy does not work propertly in partials files # NOTE: Fix order of USs because the filter orderBy does not work propertly in partials files
for sprint in sprints for sprint in sprints
@ -158,10 +170,8 @@ class BacklogController extends mixOf(taiga.Controller, taiga.PageMixin, taiga.F
@scope.sprints = sprints @scope.sprints = sprints
@scope.openSprints = _.filter(sprints, (sprint) => not sprint.closed).reverse() @scope.openSprints = _.filter(sprints, (sprint) => not sprint.closed).reverse()
@scope.closedSprints = _.filter(sprints, (sprint) => sprint.closed) @scope.closedSprints = []
if not @excludeClosedSprints
@scope.totalClosedMilestones = @scope.closedSprints.length
@scope.sprintsCounter = sprints.length @scope.sprintsCounter = sprints.length
@scope.sprintsById = groupBy(sprints, (x) -> x.id) @scope.sprintsById = groupBy(sprints, (x) -> x.id)
@rootscope.$broadcast("sprints:loaded", sprints) @rootscope.$broadcast("sprints:loaded", sprints)
@ -232,10 +242,6 @@ class BacklogController extends mixOf(taiga.Controller, taiga.PageMixin, taiga.F
return promise.then(=> @.loadBacklog()) return promise.then(=> @.loadBacklog())
toggleClosedSprintsVisualization: ->
@excludeClosedSprints = not @excludeClosedSprints
@.loadSprints()
filterVisibleUserstories: -> filterVisibleUserstories: ->
@scope.visibleUserstories = [] @scope.visibleUserstories = []

View File

@ -135,23 +135,27 @@ module.directive("tgBacklogSprintHeader", ["$tgNavUrls", "$tgTemplate", BacklogS
############################################################################# #############################################################################
ToggleExcludeClosedSprintsVisualization = ($rootscope, $loading) -> ToggleExcludeClosedSprintsVisualization = ($rootscope, $loading) ->
excludeClosedSprints = false excludeClosedSprints = true
link = ($scope, $el, $attrs) -> link = ($scope, $el, $attrs) ->
# Event Handlers # Event Handlers
$el.on "click", "", (event) -> $el.on "click", "", (event) ->
excludeClosedSprints = not excludeClosedSprints
$loading.start($el.parent().siblings('.loading-spinner')) $loading.start($el.parent().siblings('.loading-spinner'))
$rootscope.$broadcast("backlog:toggle-closed-sprints-visualization") if excludeClosedSprints
$rootscope.$broadcast("backlog:unload-closed-sprints")
else
$rootscope.$broadcast("backlog:load-closed-sprints")
$scope.$on "$destroy", -> $scope.$on "$destroy", ->
$el.off() $el.off()
$scope.$on "sprints:loaded", (ctx, sprints) => $scope.$on "closed-sprints:reloaded", (ctx, sprints) =>
closedSprints = _.filter(sprints, (sprint) -> sprint.closed)
$loading.finish($el.parent().siblings('.loading-spinner')) $loading.finish($el.parent().siblings('.loading-spinner'))
#TODO: i18n #TODO: i18n
if closedSprints.length > 0 if sprints.length > 0
$el.text("Hide closed sprints") $el.text("Hide closed sprints")
else else
$el.text("Show closed sprints") $el.text("Show closed sprints")

View File

@ -17,7 +17,7 @@ section.sprints
a.filter-closed-sprints(href="", ng-show="totalClosedMilestones") a.filter-closed-sprints(href="", ng-show="totalClosedMilestones")
span.icon.icon-archive span.icon.icon-archive
span(tg-backlog-toggle-closed-sprints-visualization="ctrl.excludeClosedSprints") Show closed sprints span(tg-backlog-toggle-closed-sprints-visualization) Show closed sprints
div.loading-spinner div.loading-spinner
div.sprint.sprint-closed(ng-repeat="sprint in closedSprints track by sprint.id" tg-backlog-sprint="sprint", tg-sprint-sortable) div.sprint.sprint-closed(ng-repeat="sprint in closedSprints track by sprint.id" tg-backlog-sprint="sprint", tg-sprint-sortable)