Team Member Data Function Filter

stable
Xavier Julián 2014-11-24 19:18:51 +01:00 committed by Jesús Espino
parent 47c7998847
commit a4f65b947a
2 changed files with 26 additions and 3 deletions

View File

@ -45,6 +45,9 @@ resourceProvider = ($repo) ->
service.stats = (projectId) -> service.stats = (projectId) ->
return $repo.queryOneRaw("projects", "#{projectId}/stats") return $repo.queryOneRaw("projects", "#{projectId}/stats")
service.memberStats = (projectId) ->
return $repo.queryOneRaw("projects", "#{projectId}/member_stats")
service.tagsColors = (id) -> service.tagsColors = (id) ->
return $repo.queryOne("projects", "#{id}/tags_colors") return $repo.queryOne("projects", "#{id}/tags_colors")

View File

@ -74,6 +74,24 @@ class TeamController extends mixOf(taiga.Controller, taiga.PageMixin)
return project return project
loadMemberStats: ->
return @rs.projects.memberStats(@scope.projectId).then (stats) =>
@scope.stats = @.processStats(stats)
processStat: (stat) ->
max = _.max(stat)
singleStat = _.map stat, (value, key) ->
if value == max
return [key, 1]
return [key, (value * 0.3) / max]
singleStat = _.object(singleStat)
return singleStat
processStats: (stats) ->
for key,value of stats
stats[key] = @.processStat(value)
return stats
loadInitialData: -> loadInitialData: ->
promise = @repo.resolve({pslug: @params.pslug}).then (data) => promise = @repo.resolve({pslug: @params.pslug}).then (data) =>
@scope.projectId = data.project @scope.projectId = data.project
@ -82,6 +100,7 @@ class TeamController extends mixOf(taiga.Controller, taiga.PageMixin)
return promise.then(=> @.loadProject()) return promise.then(=> @.loadProject())
.then(=> @.loadUsersAndRoles()) .then(=> @.loadUsersAndRoles())
.then(=> @.loadMembers()) .then(=> @.loadMembers())
.then(=> @.loadMemberStats())
module.controller("TeamController", TeamController) module.controller("TeamController", TeamController)
@ -131,7 +150,7 @@ TeamMembersDirective = () ->
</figure> </figure>
</div> </div>
<div class="attribute"> <div class="attribute">
<span class="icon icon-github"></span> <span class="icon icon-edit" ng-style="{'opacity': stats.closed_tasks[user.user_id]}"></span>
</div> </div>
<div class="attribute"> <div class="attribute">
<span class="icon icon-github"></span> <span class="icon icon-github"></span>
@ -152,7 +171,7 @@ TeamMembersDirective = () ->
""" """
return { return {
link: (scope) -> link: (scope) ->
if !_.isArray(scope.memberships) if not _.isArray(scope.memberships)
scope.memberships = [scope.memberships] scope.memberships = [scope.memberships]
template: template template: template
@ -160,7 +179,8 @@ TeamMembersDirective = () ->
memberships: "=", memberships: "=",
filtersQ: "=filtersq", filtersQ: "=filtersq",
filtersRole: "=filtersrole", filtersRole: "=filtersrole",
currentUser: "@currentuser" currentUser: "@currentuser",
stats: "="
} }
} }