Adding stats visualization to backlog

stable
Alejandro Alonso 2014-06-23 11:02:48 +02:00
parent 41ad8e731d
commit 8f2835cebf
3 changed files with 28 additions and 6 deletions

View File

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

View File

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

View File

@ -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<br />points
li
span.number 23
span.number(ng-bind="stats.defined_points")
span.description defined<br />points
li
span.number 12
span.number(ng-bind="stats.assigned_points")
span.description assigned<br />points
li
span.number 23
span.number(ng-bind="stats.closed_points")
span.description closed<br />points