Team Member Data Function Filter
parent
47c7998847
commit
a4f65b947a
|
@ -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")
|
||||||
|
|
||||||
|
|
|
@ -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: "="
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue