From 5a50705d9c5d445d14b6192c5d92459c0c0428c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jes=C3=BAs=20Espino?= Date: Tue, 19 Aug 2014 11:47:08 +0200 Subject: [PATCH] Fixed bug #708: Now backlog progress bar works, and all progress bar use the same directive --- app/coffee/modules/backlog/main.coffee | 6 +-- app/coffee/modules/common/components.coffee | 53 +++++++++---------- app/coffee/modules/taskboard/main.coffee | 4 ++ .../views/components/sprint-summary.jade | 7 ++- app/partials/views/components/summary.jade | 5 +- app/partials/views/modules/sprints.jade | 3 +- 6 files changed, 38 insertions(+), 40 deletions(-) diff --git a/app/coffee/modules/backlog/main.coffee b/app/coffee/modules/backlog/main.coffee index 1bd3e31b..3db8739c 100644 --- a/app/coffee/modules/backlog/main.coffee +++ b/app/coffee/modules/backlog/main.coffee @@ -83,11 +83,10 @@ class BacklogController extends mixOf(taiga.Controller, taiga.PageMixin, taiga.F @scope.stats = stats if stats.total_points - completedPercentage = Math.round(100 * stats.closed_points / stats.total_points) + @scope.stats.completedPercentage = Math.round(100 * stats.closed_points / stats.total_points) else - completedPercentage = 0 + @scope.stats.completedPercentage = 0 - @scope.stats.completedPercentage = "#{completedPercentage}%" return stats refreshTagsColors: -> @@ -880,6 +879,7 @@ tgBacklogGraphDirective = -> return {link: link} + module.directive("tgBacklog", ["$tgRepo", "$rootScope", BacklogDirective]) module.directive("tgUsPoints", ["$tgRepo", UsPointsDirective]) module.directive("tgUsRolePointsSelector", ["$rootScope", UsRolePointsSelectorDirective]) diff --git a/app/coffee/modules/common/components.coffee b/app/coffee/modules/common/components.coffee index 57e4611b..dc323829 100644 --- a/app/coffee/modules/common/components.coffee +++ b/app/coffee/modules/common/components.coffee @@ -46,34 +46,6 @@ DateRangeDirective = -> module.directive("tgDateRange", DateRangeDirective) -############################################################################# -## Sprint Progress Bar Directive -############################################################################# - -SprintProgressBarDirective = -> - renderProgress = ($el, percentage, visual_percentage) -> - if $el.is(".current-progress") - $el.css("width", "#{percentage}%") - else - $el.find(".current-progress").css("width", "#{visual_percentage}%") - $el.find(".number").html("#{percentage} %") - - link = ($scope, $el, $attrs) -> - bindOnce $scope, $attrs.tgSprintProgressbar, (sprint) -> - closedPoints = sprint.closed_points - totalPoints = sprint.total_points - percentage = 0 - percentage = Math.round(100 * (closedPoints/totalPoints)) if totalPoints != 0 - visual_percentage = 0 - #Visual hack for .current-progress bar - visual_percentage = Math.round(98 * (closedPoints/totalPoints)) if totalPoints != 0 - renderProgress($el, percentage, visual_percentage) - - return {link: link} - -module.directive("tgSprintProgressbar", SprintProgressBarDirective) - - ############################################################################# ## Date Selector Directive (using pikaday) ############################################################################# @@ -422,6 +394,30 @@ ListItemTypeDirective = -> } +############################################################################# +## Progress bar directive +############################################################################# + +TgProgressBarDirective = -> + template = _.template(""" +
+ """) + + render = (el, percentage) -> + el.html(template({percentage: percentage})) + + link = ($scope, $el, $attrs) -> + element = angular.element($el) + + $scope.$watch $attrs.tgProgressBar, (percentage) -> + render($el, percentage) + + $scope.$on "$destroy", -> + $el.off() + + return {link: link} + + module.directive("tgListitemType", ListItemTypeDirective) module.directive("tgListitemIssueStatus", ListItemIssueStatusDirective) module.directive("tgListitemAssignedto", ListItemAssignedtoDirective) @@ -429,3 +425,4 @@ module.directive("tgListitemPriority", ListItemPriorityDirective) module.directive("tgListitemSeverity", ListItemSeverityDirective) module.directive("tgListitemTaskStatus", ListItemTaskStatusDirective) module.directive("tgListitemUsStatus", ListItemUsStatusDirective) +module.directive("tgProgressBar", TgProgressBarDirective) diff --git a/app/coffee/modules/taskboard/main.coffee b/app/coffee/modules/taskboard/main.coffee index 22ad2e04..6de00b2f 100644 --- a/app/coffee/modules/taskboard/main.coffee +++ b/app/coffee/modules/taskboard/main.coffee @@ -83,6 +83,10 @@ class TaskboardController extends mixOf(taiga.Controller, taiga.PageMixin) @scope.stats.completedPointsSum = completedPointsSum @scope.stats.remainingPointsSum = remainingPointsSum @scope.stats.remainingTasks = remainingTasks + if stats.totalPointsSum + @scope.stats.completedPercentage = Math.round(100 * stats.completedPointsSum / stats.totalPointsSum) + else + @scope.stats.completedPercentage = 0 return stats refreshTagsColors: -> diff --git a/app/partials/views/components/sprint-summary.jade b/app/partials/views/components/sprint-summary.jade index 8b8e19d5..2e4e975a 100644 --- a/app/partials/views/components/sprint-summary.jade +++ b/app/partials/views/components/sprint-summary.jade @@ -1,9 +1,8 @@ div.summary.large-summary - div(tg-sprint-progressbar="sprint") - div.summary-progress-bar - div.current-progress + div + div.summary-progress-bar(tg-progress-bar="stats.completedPercentage") div.data - span.number -- % + span.number(tg-bind-html="stats.completedPercentage + '%'") ul li diff --git a/app/partials/views/components/summary.jade b/app/partials/views/components/summary.jade index b6376aab..c8d0db74 100644 --- a/app/partials/views/components/summary.jade +++ b/app/partials/views/components/summary.jade @@ -1,8 +1,7 @@ div.summary - div.summary-progress-bar - div.current-progress + div.summary-progress-bar(tg-progress-bar="stats.completedPercentage") div.data - span.number(tg-bind-html="stats.completedPercentage") + span.number(tg-bind-html="stats.completedPercentage + '%'") ul li span.number(tg-bind-html="stats.total_points") -- diff --git a/app/partials/views/modules/sprints.jade b/app/partials/views/modules/sprints.jade index 6187ab7e..bb202b11 100644 --- a/app/partials/views/modules/sprints.jade +++ b/app/partials/views/modules/sprints.jade @@ -26,8 +26,7 @@ section.sprints li span.number(ng-bind="sprint.total_points|default:''") span.description total - div.sprint-progress-bar - div.current-progress(tg-sprint-progressbar="sprint") + div.sprint-progress-bar(tg-progress-bar="100 * sprint.closed_points / total_points") div.sprint-table(tg-sprint-sortable) div.row.milestone-us-item-row(ng-repeat="us in sprint.user_stories|orderBy:order track by us.id") div.column-us.width-8