diff --git a/app/coffee/modules/backlog/lightboxes.coffee b/app/coffee/modules/backlog/lightboxes.coffee index 03e0a43a..3a2e41a5 100644 --- a/app/coffee/modules/backlog/lightboxes.coffee +++ b/app/coffee/modules/backlog/lightboxes.coffee @@ -58,7 +58,7 @@ CreateEditUserstoryDirective = ($repo, $model, $rs, $rootScope) -> $el.find("label.blocked").addClass("selected") if us.team_requirement $el.find("label.team-requirement").addClass("selected") - if us.is_blocked + if us.client_requirement $el.find("label.client-requirement").addClass("selected") $scope.$on "$destroy", -> diff --git a/app/coffee/modules/resources/tasks.coffee b/app/coffee/modules/resources/tasks.coffee index ca124fd5..b1fb1345 100644 --- a/app/coffee/modules/resources/tasks.coffee +++ b/app/coffee/modules/resources/tasks.coffee @@ -25,9 +25,10 @@ taiga = @.taiga resourceProvider = ($repo, $http, $urls) -> service = {} - service.list = (projectId, sprintId=null) -> + service.list = (projectId, sprintId=null, userStoryId=null) -> params = {project: projectId} params.milestone = sprintId if sprintId + params.user_story = userStoryId if userStoryId return $repo.queryMany("tasks", params) service.bulkCreate = (projectId, usId, data) -> diff --git a/app/coffee/modules/userstories/detail.coffee b/app/coffee/modules/userstories/detail.coffee index 47875458..2629df74 100644 --- a/app/coffee/modules/userstories/detail.coffee +++ b/app/coffee/modules/userstories/detail.coffee @@ -55,11 +55,10 @@ class UserStoryDetailController extends mixOf(taiga.Controller, taiga.PageMixin) @scope.project = project @scope.statusList = project.issue_statuses @scope.statusById = groupBy(project.us_statuses, (x) -> x.id) - @scope.severityList = project.severities - @scope.severityById = groupBy(project.severities, (x) -> x.id) - @scope.priorityList = project.priorities - @scope.priorityById = groupBy(project.priorities, (x) -> x.id) + @scope.taskStatusById = groupBy(project.task_statuses, (x) -> x.id) @scope.membersById = groupBy(project.memberships, (x) -> x.user) + @scope.pointsList = _.sortBy(project.points, "order") + @scope.pointsById = groupBy(@scope.pointsList, (e) -> e.id) return project loadUs: -> @@ -69,6 +68,15 @@ class UserStoryDetailController extends mixOf(taiga.Controller, taiga.PageMixin) @scope.previousUrl = "/project/#{@scope.project.slug}/us/#{@scope.us.neighbors.previous.ref}" if @scope.us.neighbors.previous.id? @scope.nextUrl = "/project/#{@scope.project.slug}/us/#{@scope.us.neighbors.next.ref}" if @scope.us.neighbors.next.id? + loadTasks: -> + # http://localhost:8000/api/v1/tasks?user_story=6 + return @rs.tasks.list(@scope.projectId, null, @scope.usId).then (tasks) => + @scope.tasks = tasks + @scope.totalTasks = tasks.length + closedTasks = _.filter(tasks, (task) => @scope.taskStatusById[task.status].is_closed) + @scope.totalClosedTasks = closedTasks.length + @scope.usProgress = 100 * @scope.totalClosedTasks / @scope.totalTasks + loadHistory: -> return @rs.userstories.history(@scope.usId).then (history) => _.each history.results, (historyResult) -> @@ -95,6 +103,7 @@ class UserStoryDetailController extends mixOf(taiga.Controller, taiga.PageMixin) return promise.then(=> @.loadProject()) .then(=> @.loadUsersAndRoles()) .then(=> @.loadUs()) + .then(=> @.loadTasks()) .then(=> @.loadHistory()) getUserFullName: (userId) -> @@ -222,3 +231,63 @@ UsStatusDetailDirective = () -> return {link:link, require:"ngModel"} module.directive("tgUsStatusDetail", UsStatusDetailDirective) + + + + + + + + + + + + +############################################################################# +## User story points detail directive +############################################################################# + +USPointsDetailDirective = () -> + #TODO: i18n + template = _.template(""" +