diff --git a/app/coffee/modules/admin/memberships.coffee b/app/coffee/modules/admin/memberships.coffee
index df1018d8..0662a240 100644
--- a/app/coffee/modules/admin/memberships.coffee
+++ b/app/coffee/modules/admin/memberships.coffee
@@ -43,6 +43,8 @@ class MembershipsController extends mixOf(taiga.Controller, taiga.PageMixin, tai
]
constructor: (@scope, @rootscope, @repo, @confirm, @rs, @params, @q, @location) ->
+ _.bindAll(@)
+
@scope.sectionName = "Memberships" #i18n
@scope.project = {}
@scope.filters = {}
@@ -51,7 +53,7 @@ class MembershipsController extends mixOf(taiga.Controller, taiga.PageMixin, tai
promise.then null, ->
console.log "FAIL" #TODO
- @scope.$on("membersform:new:success", @.onNewMembers)
+ @scope.$on("membersform:new:success", @.loadMembers)
loadProject: ->
return @rs.projects.get(@scope.projectId).then (project) =>
@@ -73,6 +75,7 @@ class MembershipsController extends mixOf(taiga.Controller, taiga.PageMixin, tai
return data
return promise.then(=> @.loadProject())
+ .then(=> @.loadUsersAndRoles())
.then(=> @.loadMembers())
getUrlFilters: ->
@@ -83,9 +86,6 @@ class MembershipsController extends mixOf(taiga.Controller, taiga.PageMixin, tai
addNewMembers: ->
@rootscope.$broadcast("membersform:new")
- onNewMembers: ->
- @.loadMembers()
-
module.controller("MembershipsController", MembershipsController)
@@ -220,7 +220,7 @@ module.directive("tgMemberships", MembershipsDirective)
## Member Avatar Directive
#############################################################################
-MembershipsMemberAvatarDirective = ($log) ->
+MembershipsRowAvatarDirective = ($log) ->
template = _.template("""
@@ -231,22 +231,22 @@ MembershipsMemberAvatarDirective = ($log) ->
""")
- render = ($el, member) ->
- ctx = {
- full_name: if member.full_name then member.full_name else ""
- email: member.email
- imgurl: if member.photo then member.photo else "http://thecodeplayer.com/u/uifaces/12.jpg"
- }
-
- html = template(ctx)
- $el.html(html)
-
link = ($scope, $el, $attrs) ->
- if not $attrs.tgMembershipsMemberAvatar?
- return $log.error "MembershipsMemberAvatarDirective: the directive need a member"
+ render = (member) ->
+ ctx = {
+ full_name: if member.full_name then member.full_name else ""
+ email: member.email
+ imgurl: if member.photo then member.photo else "http://thecodeplayer.com/u/uifaces/12.jpg"
+ }
- member = $scope.$eval($attrs.tgMembershipsMemberAvatar)
- render($el, member)
+ html = template(ctx)
+ $el.html(html)
+
+ if not $attrs.tgMembershipsRowAvatar?
+ return $log.error "MembershipsRowAvatarDirective: the directive need a member"
+
+ member = $scope.$eval($attrs.tgMembershipsRowAvatar)
+ render(member)
$scope.$on "$destroy", ->
$el.off()
@@ -254,14 +254,14 @@ MembershipsMemberAvatarDirective = ($log) ->
return {link: link}
-module.directive("tgMembershipsMemberAvatar", ["$log", MembershipsMemberAvatarDirective])
+module.directive("tgMembershipsRowAvatar", ["$log", MembershipsRowAvatarDirective])
#############################################################################
## Member Actions Directive
#############################################################################
-MembershipsMemberActionsDirective = ($log, $repo, $confirm) ->
+MembershipsRowActionsDirective = ($log, $repo, $confirm) ->
activedTemplate = _.template("""
Active
@@ -270,6 +270,7 @@ MembershipsMemberActionsDirective = ($log, $repo, $confirm) ->
""") # i18n
+
pendingTemplate = _.template("""
Pending
@@ -280,22 +281,21 @@ MembershipsMemberActionsDirective = ($log, $repo, $confirm) ->
""") # i18n
- render = ($el, member) ->
- if member.user
- html = activedTemplate()
- else
- html = pendingTemplate()
-
- $el.html(html)
-
link = ($scope, $el, $attrs) ->
+ render = (member) ->
+ if member.user
+ html = activedTemplate()
+ else
+ html = pendingTemplate()
+
+ $el.html(html)
+
+ if not $attrs.tgMembershipsRowActions?
+ return $log.error "MembershipsRowActionsDirective: the directive need a member"
+
$ctrl = $el.controller()
-
- if not $attrs.tgMembershipsMemberActions?
- return $log.error "MembershipsMemberActionsDirective: the directive need a member"
-
- member = $scope.$eval($attrs.tgMembershipsMemberActions)
- render($el, member)
+ member = $scope.$eval($attrs.tgMembershipsRowActions)
+ render(member)
$el.on "click", ".pending", (event) ->
event.preventDefault()
@@ -319,32 +319,32 @@ MembershipsMemberActionsDirective = ($log, $repo, $confirm) ->
return {link: link}
-module.directive("tgMembershipsMemberActions", ["$log", "$tgRepo", "$tgConfirm",
- MembershipsMemberActionsDirective])
+module.directive("tgMembershipsRowActions", ["$log", "$tgRepo", "$tgConfirm",
+ MembershipsRowActionsDirective])
#############################################################################
## Member IsAdminCheckbox Directive
#############################################################################
-MembershipsMemberIsAdminCheckboxDirective = ($log, $repo, $confirm) ->
+MembershipsRowAdminCheckboxDirective = ($log, $repo, $confirm) ->
template = _.template("""
""") # i18n
- render = ($el, member) ->
- ctx = {inputId: "is-admin-#{member.id}"}
-
- html = template(ctx)
- $el.html(html)
-
link = ($scope, $el, $attrs) ->
- if not $attrs.tgMembershipsMemberIsAdminCheckbox?
- return $log.error "MembershipsMemberIsAdminCheckboxDirective: the directive need a member"
+ render = (member) ->
+ ctx = {inputId: "is-admin-#{member.id}"}
- member = $scope.$eval($attrs.tgMembershipsMemberIsAdminCheckbox)
- html = render($el, member)
+ html = template(ctx)
+ $el.html(html)
+
+ if not $attrs.tgMembershipsRowAdminCheckbox?
+ return $log.error "MembershipsRowAdminCheckboxDirective: the directive need a member"
+
+ member = $scope.$eval($attrs.tgMembershipsRowAdminCheckbox)
+ html = render(member)
if member.is_admin
$el.find(":checkbox").prop("checked", true)
@@ -366,13 +366,13 @@ MembershipsMemberIsAdminCheckboxDirective = ($log, $repo, $confirm) ->
return {link: link}
-module.directive("tgMembershipsMemberIsAdminCheckbox", ["$log", "$tgRepo", "$tgConfirm",
- MembershipsMemberIsAdminCheckboxDirective])
+module.directive("tgMembershipsRowAdminCheckbox", ["$log", "$tgRepo", "$tgConfirm",
+ MembershipsRowAdminCheckboxDirective])
#############################################################################
## Member RoleSelector Directive
#############################################################################
-MembershipsMemberRoleSelectorDirective = ($log, $repo, $confirm) ->
+MembershipsRowRoleSelectorDirective = ($log, $repo, $confirm) ->
template = _.template("""
""")
- render = ($el, member, roleList) ->
- ctx = {
- roleList: roleList,
- selectedRole: member.role
- }
-
- html = template(ctx)
- $el.html(html)
-
link = ($scope, $el, $attrs) ->
+ render = (member) ->
+ ctx = {
+ roleList: $scope.roles,
+ selectedRole: member.role
+ }
+
+ html = template(ctx)
+ $el.html(html)
+
+ if not $attrs.tgMembershipsRowRoleSelector?
+ return $log.error "MembershipsRowRoleSelectorDirective: the directive need a member"
+
$ctrl = $el.controller()
-
- if not $attrs.tgMembershipsMemberRoleSelector?
- return $log.error "MembershipsMemberRoleSelectorDirective: the directive need a member"
-
- member = $scope.$eval($attrs.tgMembershipsMemberRoleSelector)
- roleList = $ctrl.scope.project.roles
- html = render($el, member, roleList)
+ member = $scope.$eval($attrs.tgMembershipsRowRoleSelector)
+ html = render(member)
$el.on "click", "select", (event) =>
onSuccess = ->
@@ -422,5 +420,5 @@ MembershipsMemberRoleSelectorDirective = ($log, $repo, $confirm) ->
return {link: link}
-module.directive("tgMembershipsMemberRoleSelector", ["$log", "$tgRepo", "$tgConfirm",
- MembershipsMemberRoleSelectorDirective])
+module.directive("tgMembershipsRowRoleSelector", ["$log", "$tgRepo", "$tgConfirm",
+ MembershipsRowRoleSelectorDirective])
diff --git a/app/partials/views/modules/admin/admin-membership-table.jade b/app/partials/views/modules/admin/admin-membership-table.jade
index 73b300da..490c5cf0 100644
--- a/app/partials/views/modules/admin/admin-membership-table.jade
+++ b/app/partials/views/modules/admin/admin-membership-table.jade
@@ -6,7 +6,7 @@ section.admin-membership-table.basic-table
div.header-status Status
div.row(ng-repeat="member in memberships")
- div.row-member(tg-memberships-member-avatar="member")
- div.row-admin(tg-memberships-member-is-admin-checkbox="member")
- div.row-role(tg-memberships-member-role-selector="member")
- div.row-status(tg-memberships-member-actions="member")
+ div.row-member(tg-memberships-row-avatar="member")
+ div.row-admin(tg-memberships-row-admin-checkbox="member")
+ div.row-role(tg-memberships-row-role-selector="member")
+ div.row-status(tg-memberships-row-actions="member")