Fixing points in backlog column

stable
Alejandro Alonso 2014-06-26 08:38:27 +02:00
parent 8aba67d820
commit a5f0d0859c
1 changed files with 15 additions and 11 deletions

View File

@ -443,24 +443,28 @@ UsPointsDirective = ($repo) ->
</ul> </ul>
""") """)
updatePointsValue = (us, pointsById, pointsDomNode, selectedRoleId) -> updatePointsValue = (usPoints, usTotalPoints, pointsById, pointsDomNode, selectedRoleId) ->
if not selectedRoleId? if not selectedRoleId?
pointsDomNode.text(us.total_points) pointsDomNode.text(usTotalPoints)
else else
selectedPoints = pointsById[us.points[selectedRoleId]] selectedPoints = pointsById[usPoints[selectedRoleId]]
selectedPointsValue = selectedPoints.value selectedPointsValue = selectedPoints.value
selectedPointsValue = '?' if not selectedPointsValue? selectedPointsValue = '?' if not selectedPointsValue?
pointsDomNode.text("#{selectedPointsValue}/#{us.total_points}") pointsDomNode.text("#{selectedPointsValue}/#{usTotalPoints}")
calculateTotalPoints = (us, pointsById) ->
return _.reduce(_.map(us.points, (value, key) -> pointsById[value].value), (memo, num) -> memo + num)
link = ($scope, $el, $attrs) -> link = ($scope, $el, $attrs) ->
$ctrl = $el.controller() $ctrl = $el.controller()
us = $scope.$eval($attrs.tgUsPoints) us = $scope.$eval($attrs.tgUsPoints)
usPoints = us.points usPoints = us.points
usTotalPoints = us.total_points
pointsDom = $el.find("a") pointsDom = $el.find("a")
selectedRoleId = null selectedRoleId = null
updatingSelectedRoleId = null updatingSelectedRoleId = null
pointsById = $scope.pointsById pointsById = $scope.pointsById
updatePointsValue(us, pointsById, pointsDom, selectedRoleId) updatePointsValue(usPoints, usTotalPoints, pointsById, pointsDom, selectedRoleId)
taiga.bindOnce $scope, "project", (project) -> taiga.bindOnce $scope, "project", (project) ->
roles = _.filter(project.roles, "computable") roles = _.filter(project.roles, "computable")
@ -469,11 +473,11 @@ UsPointsDirective = ($repo) ->
$scope.$on "uspoints:select", (ctx, roleId,roleName) -> $scope.$on "uspoints:select", (ctx, roleId,roleName) ->
selectedRoleId = roleId selectedRoleId = roleId
updatePointsValue(us, pointsById, pointsDom, selectedRoleId) updatePointsValue(usPoints, usTotalPoints, pointsById, pointsDom, selectedRoleId)
$scope.$on "uspoints:clear-selection", (ctx) -> $scope.$on "uspoints:clear-selection", (ctx) ->
selectedRoleId = null selectedRoleId = null
updatePointsValue(us, pointsById, pointsDom, selectedRoleId) updatePointsValue(usPoints, usTotalPoints, pointsById, pointsDom, selectedRoleId)
$el.on "click", "a.us-points", (event) -> $el.on "click", "a.us-points", (event) ->
event.preventDefault() event.preventDefault()
@ -507,10 +511,10 @@ UsPointsDirective = ($repo) ->
$el.find(".pop-points-open").hide() $el.find(".pop-points-open").hide()
$scope.$apply () -> $scope.$apply () ->
usPoints[updatingSelectedRoleId] = target.data("point-id") usPoints[updatingSelectedRoleId] = target.data("point-id")
us.points = _.clone(usPoints, false) us.points = _.clone(usPoints, true)
total = _.reduce(_.map(us.points, (value, key) -> $scope.pointsById[value].value), (memo, num) -> memo + num) usTotalPoints = calculateTotalPoints(us, $scope.pointsById)
us.total_points = total us.total_points = usTotalPoints
updatePointsValue(us, pointsById, pointsDom, selectedRoleId) updatePointsValue(usPoints, usTotalPoints, pointsById, pointsDom, selectedRoleId)
$repo.save(us).then -> $repo.save(us).then ->
$ctrl.loadProjectStats() $ctrl.loadProjectStats()