Refactor & fix TeamController
parent
a92a0bba51
commit
a6c0fa8ada
|
@ -70,30 +70,18 @@ class TeamController extends mixOf(taiga.Controller, taiga.PageMixin)
|
||||||
@scope.filtersRole = null
|
@scope.filtersRole = null
|
||||||
|
|
||||||
loadMembers: ->
|
loadMembers: ->
|
||||||
currentUser = @auth.getUser()
|
user = @auth.getUser()
|
||||||
|
|
||||||
if currentUser? and not currentUser.photo?
|
|
||||||
currentUser.photo = "/images/unnamed.png"
|
|
||||||
|
|
||||||
memberships = @projectService.project.toJS().memberships
|
|
||||||
|
|
||||||
@scope.currentUser = _.find memberships, (membership) =>
|
|
||||||
return currentUser? and membership.user == currentUser.id
|
|
||||||
|
|
||||||
|
# Calculate totals
|
||||||
@scope.totals = {}
|
@scope.totals = {}
|
||||||
|
for member in @scope.activeUsers
|
||||||
|
@scope.totals[member.id] = 0
|
||||||
|
|
||||||
_.forEach memberships, (membership) =>
|
# Get current user
|
||||||
@scope.totals[membership.user] = 0
|
@scope.currentUser = _.find(@scope.activeUsers, {id: user?.id})
|
||||||
|
|
||||||
@scope.memberships = _.filter memberships, (membership) =>
|
# Get member list without current user
|
||||||
if membership.user && (not currentUser? or membership.user != currentUser.id)
|
@scope.memberships = _.reject(@scope.activeUsers, {id: user?.id})
|
||||||
return membership
|
|
||||||
|
|
||||||
@scope.memberships = _.filter memberships, (membership) => return membership.is_active
|
|
||||||
|
|
||||||
for membership in @scope.memberships
|
|
||||||
if not membership.photo?
|
|
||||||
membership.photo = "/images/unnamed.png"
|
|
||||||
|
|
||||||
loadProject: ->
|
loadProject: ->
|
||||||
return @rs.projects.getBySlug(@params.pslug).then (project) =>
|
return @rs.projects.getBySlug(@params.pslug).then (project) =>
|
||||||
|
@ -115,10 +103,10 @@ class TeamController extends mixOf(taiga.Controller, taiga.PageMixin)
|
||||||
total = _.reduce(vals, (sum, el) -> sum + el)
|
total = _.reduce(vals, (sum, el) -> sum + el)
|
||||||
@scope.totals[userId] = total
|
@scope.totals[userId] = total
|
||||||
|
|
||||||
@scope.stats = @.processStats(stats)
|
@scope.stats = @._processStats(stats)
|
||||||
@scope.stats.totals = @scope.totals
|
@scope.stats.totals = @scope.totals
|
||||||
|
|
||||||
processStat: (stat) ->
|
_processStat: (stat) ->
|
||||||
max = _.max(stat)
|
max = _.max(stat)
|
||||||
min = _.min(stat)
|
min = _.min(stat)
|
||||||
singleStat = _.map stat, (value, key) ->
|
singleStat = _.map stat, (value, key) ->
|
||||||
|
@ -130,9 +118,9 @@ class TeamController extends mixOf(taiga.Controller, taiga.PageMixin)
|
||||||
singleStat = _.object(singleStat)
|
singleStat = _.object(singleStat)
|
||||||
return singleStat
|
return singleStat
|
||||||
|
|
||||||
processStats: (stats) ->
|
_processStats: (stats) ->
|
||||||
for key,value of stats
|
for key,value of stats
|
||||||
stats[key] = @.processStat(value)
|
stats[key] = @._processStat(value)
|
||||||
return stats
|
return stats
|
||||||
|
|
||||||
loadInitialData: ->
|
loadInitialData: ->
|
||||||
|
@ -140,7 +128,6 @@ class TeamController extends mixOf(taiga.Controller, taiga.PageMixin)
|
||||||
return promise.then (project) =>
|
return promise.then (project) =>
|
||||||
@.fillUsersAndRoles(project.members, project.roles)
|
@.fillUsersAndRoles(project.members, project.roles)
|
||||||
@.loadMembers()
|
@.loadMembers()
|
||||||
|
|
||||||
return @.loadMemberStats()
|
return @.loadMemberStats()
|
||||||
|
|
||||||
module.controller("TeamController", TeamController)
|
module.controller("TeamController", TeamController)
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
.row
|
.row
|
||||||
.username
|
.username
|
||||||
figure.avatar
|
figure.avatar
|
||||||
img(tg-bo-src="currentUser.photo", tg-bo-alt="currentUser.full_name")
|
img(tg-bo-src="currentUser.photo", tg-bo-alt="currentUser.full_name_display")
|
||||||
|
|
||||||
figcaption
|
figcaption
|
||||||
span.name(tg-bo-bind="currentUser.full_name")
|
span.name(tg-bo-bind="currentUser.full_name_display")
|
||||||
|
|
||||||
span.position(tg-bo-bind="currentUser.role_name")
|
span.position(tg-bo-bind="currentUser.role_name")
|
||||||
|
|
||||||
|
|
|
@ -1,10 +1,11 @@
|
||||||
.row.member(ng-repeat="user in memberships | membersFilter:filtersQ:filtersRole")
|
.row.member(ng-repeat="user in memberships | membersFilter:filtersQ:filtersRole")
|
||||||
.username
|
.username
|
||||||
figure.avatar
|
figure.avatar
|
||||||
img(tg-bo-src="user.photo", tg-bo-alt="user.full_name")
|
img(tg-bo-src="user.photo", tg-bo-alt="user.full_name_display")
|
||||||
|
|
||||||
figcaption
|
figcaption
|
||||||
a.name(tg-nav="user-profile:username=user.username", title="{{::user.full_name }}") {{::user.full_name}}
|
a.name(tg-nav="user-profile:username=user.username",
|
||||||
|
title="{{::user.full_name_display}}") {{::user.full_name_display}}
|
||||||
span.position {{::user.role_name}}
|
span.position {{::user.role_name}}
|
||||||
|
|
||||||
.member-stats(tg-team-member-stats, stats="stats",
|
.member-stats(tg-team-member-stats, stats="stats",
|
||||||
|
|
Loading…
Reference in New Issue