diff --git a/app/coffee/modules/backlog/main.coffee b/app/coffee/modules/backlog/main.coffee index a66313c2..9baa9d7e 100644 --- a/app/coffee/modules/backlog/main.coffee +++ b/app/coffee/modules/backlog/main.coffee @@ -31,6 +31,22 @@ class BacklogController extends mixOf(taiga.Controller, taiga.PageMixin) @rootscope.$on("usform:bulk:success", @.loadUserstories) + initializeProjectStats: -> + @scope.stats = { + total_points: "--" + defined_points: "--" + assigned_points: "--" + closed_points: "--" + completedPercentage: "--%" + } + + loadProjectStats: -> + return @rs.projects.stats(@scope.projectId).then (stats) => + @scope.stats = stats + completedPercentage = Math.round(100 * stats.closed_points / stats.total_points) + @scope.stats.completedPercentage = "#{completedPercentage}%" + return stats + loadSprints: -> return @rs.sprints.list(@scope.projectId).then (sprints) => @scope.sprints = sprints @@ -46,6 +62,7 @@ class BacklogController extends mixOf(taiga.Controller, taiga.PageMixin) loadBacklog: -> return @q.all([ + @.loadProjectStats(), @.loadSprints(), @.loadUserstories() ]) @@ -58,6 +75,9 @@ class BacklogController extends mixOf(taiga.Controller, taiga.PageMixin) return project loadInitialData: -> + # Set stats initial values + @.initializeProjectStats() + # Resolve project slug promise = @repo.resolve({pslug: @params.pslug}).then (data) => @scope.projectId = data.project diff --git a/app/coffee/modules/resources/projects.coffee b/app/coffee/modules/resources/projects.coffee index fb536a9a..e09ff8e8 100644 --- a/app/coffee/modules/resources/projects.coffee +++ b/app/coffee/modules/resources/projects.coffee @@ -39,10 +39,12 @@ resourceProvider = ($repo) -> params = {"project": projectId} return $repo.queryMany("roles", params) + service.stats = (projectId) -> + return $repo.queryOneRaw("projects", "#{projectId}/stats") + return (instance) -> instance.projects = service module = angular.module("taigaResources") module.factory("$tgProjectsResourcesProvider", ["$tgRepo", resourceProvider]) - diff --git a/app/partials/views/components/summary.jade b/app/partials/views/components/summary.jade index 50650191..aa77ed0d 100644 --- a/app/partials/views/components/summary.jade +++ b/app/partials/views/components/summary.jade @@ -2,18 +2,18 @@ div.summary(tg-backlog-summary) div.summary-progress-bar div.current-progress div.data - span.number 30% + span.number(ng-bind="stats.completedPercentage") span.description completed ul li - span.number 12 + span.number(ng-bind="stats.total_points") span.description project
points li - span.number 23 + span.number(ng-bind="stats.defined_points") span.description defined
points li - span.number 12 + span.number(ng-bind="stats.assigned_points") span.description assigned
points li - span.number 23 + span.number(ng-bind="stats.closed_points") span.description closed
points