Minor refactor
parent
2fe0773597
commit
9542c3f6c4
|
@ -43,6 +43,8 @@ class MembershipsController extends mixOf(taiga.Controller, taiga.PageMixin, tai
|
||||||
]
|
]
|
||||||
|
|
||||||
constructor: (@scope, @rootscope, @repo, @confirm, @rs, @params, @q, @location) ->
|
constructor: (@scope, @rootscope, @repo, @confirm, @rs, @params, @q, @location) ->
|
||||||
|
_.bindAll(@)
|
||||||
|
|
||||||
@scope.sectionName = "Memberships" #i18n
|
@scope.sectionName = "Memberships" #i18n
|
||||||
@scope.project = {}
|
@scope.project = {}
|
||||||
@scope.filters = {}
|
@scope.filters = {}
|
||||||
|
@ -51,7 +53,7 @@ class MembershipsController extends mixOf(taiga.Controller, taiga.PageMixin, tai
|
||||||
promise.then null, ->
|
promise.then null, ->
|
||||||
console.log "FAIL" #TODO
|
console.log "FAIL" #TODO
|
||||||
|
|
||||||
@scope.$on("membersform:new:success", @.onNewMembers)
|
@scope.$on("membersform:new:success", @.loadMembers)
|
||||||
|
|
||||||
loadProject: ->
|
loadProject: ->
|
||||||
return @rs.projects.get(@scope.projectId).then (project) =>
|
return @rs.projects.get(@scope.projectId).then (project) =>
|
||||||
|
@ -73,6 +75,7 @@ class MembershipsController extends mixOf(taiga.Controller, taiga.PageMixin, tai
|
||||||
return data
|
return data
|
||||||
|
|
||||||
return promise.then(=> @.loadProject())
|
return promise.then(=> @.loadProject())
|
||||||
|
.then(=> @.loadUsersAndRoles())
|
||||||
.then(=> @.loadMembers())
|
.then(=> @.loadMembers())
|
||||||
|
|
||||||
getUrlFilters: ->
|
getUrlFilters: ->
|
||||||
|
@ -83,9 +86,6 @@ class MembershipsController extends mixOf(taiga.Controller, taiga.PageMixin, tai
|
||||||
addNewMembers: ->
|
addNewMembers: ->
|
||||||
@rootscope.$broadcast("membersform:new")
|
@rootscope.$broadcast("membersform:new")
|
||||||
|
|
||||||
onNewMembers: ->
|
|
||||||
@.loadMembers()
|
|
||||||
|
|
||||||
|
|
||||||
module.controller("MembershipsController", MembershipsController)
|
module.controller("MembershipsController", MembershipsController)
|
||||||
|
|
||||||
|
@ -220,7 +220,7 @@ module.directive("tgMemberships", MembershipsDirective)
|
||||||
## Member Avatar Directive
|
## Member Avatar Directive
|
||||||
#############################################################################
|
#############################################################################
|
||||||
|
|
||||||
MembershipsMemberAvatarDirective = ($log) ->
|
MembershipsRowAvatarDirective = ($log) ->
|
||||||
template = _.template("""
|
template = _.template("""
|
||||||
<figure class="avatar">
|
<figure class="avatar">
|
||||||
<img src="<%= imgurl %>" alt="<%- full_name %>">
|
<img src="<%= imgurl %>" alt="<%- full_name %>">
|
||||||
|
@ -231,22 +231,22 @@ MembershipsMemberAvatarDirective = ($log) ->
|
||||||
</figure>
|
</figure>
|
||||||
""")
|
""")
|
||||||
|
|
||||||
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) ->
|
link = ($scope, $el, $attrs) ->
|
||||||
if not $attrs.tgMembershipsMemberAvatar?
|
render = (member) ->
|
||||||
return $log.error "MembershipsMemberAvatarDirective: the directive need a 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)
|
html = template(ctx)
|
||||||
render($el, member)
|
$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", ->
|
$scope.$on "$destroy", ->
|
||||||
$el.off()
|
$el.off()
|
||||||
|
@ -254,14 +254,14 @@ MembershipsMemberAvatarDirective = ($log) ->
|
||||||
return {link: link}
|
return {link: link}
|
||||||
|
|
||||||
|
|
||||||
module.directive("tgMembershipsMemberAvatar", ["$log", MembershipsMemberAvatarDirective])
|
module.directive("tgMembershipsRowAvatar", ["$log", MembershipsRowAvatarDirective])
|
||||||
|
|
||||||
|
|
||||||
#############################################################################
|
#############################################################################
|
||||||
## Member Actions Directive
|
## Member Actions Directive
|
||||||
#############################################################################
|
#############################################################################
|
||||||
|
|
||||||
MembershipsMemberActionsDirective = ($log, $repo, $confirm) ->
|
MembershipsRowActionsDirective = ($log, $repo, $confirm) ->
|
||||||
activedTemplate = _.template("""
|
activedTemplate = _.template("""
|
||||||
<div class="active">
|
<div class="active">
|
||||||
Active
|
Active
|
||||||
|
@ -270,6 +270,7 @@ MembershipsMemberActionsDirective = ($log, $repo, $confirm) ->
|
||||||
<span class="icon icon-delete"></span>
|
<span class="icon icon-delete"></span>
|
||||||
</a>
|
</a>
|
||||||
""") # i18n
|
""") # i18n
|
||||||
|
|
||||||
pendingTemplate = _.template("""
|
pendingTemplate = _.template("""
|
||||||
<a class="pending" href="">
|
<a class="pending" href="">
|
||||||
Pending
|
Pending
|
||||||
|
@ -280,22 +281,21 @@ MembershipsMemberActionsDirective = ($log, $repo, $confirm) ->
|
||||||
</a>
|
</a>
|
||||||
""") # i18n
|
""") # i18n
|
||||||
|
|
||||||
render = ($el, member) ->
|
|
||||||
if member.user
|
|
||||||
html = activedTemplate()
|
|
||||||
else
|
|
||||||
html = pendingTemplate()
|
|
||||||
|
|
||||||
$el.html(html)
|
|
||||||
|
|
||||||
link = ($scope, $el, $attrs) ->
|
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()
|
$ctrl = $el.controller()
|
||||||
|
member = $scope.$eval($attrs.tgMembershipsRowActions)
|
||||||
if not $attrs.tgMembershipsMemberActions?
|
render(member)
|
||||||
return $log.error "MembershipsMemberActionsDirective: the directive need a member"
|
|
||||||
|
|
||||||
member = $scope.$eval($attrs.tgMembershipsMemberActions)
|
|
||||||
render($el, member)
|
|
||||||
|
|
||||||
$el.on "click", ".pending", (event) ->
|
$el.on "click", ".pending", (event) ->
|
||||||
event.preventDefault()
|
event.preventDefault()
|
||||||
|
@ -319,32 +319,32 @@ MembershipsMemberActionsDirective = ($log, $repo, $confirm) ->
|
||||||
return {link: link}
|
return {link: link}
|
||||||
|
|
||||||
|
|
||||||
module.directive("tgMembershipsMemberActions", ["$log", "$tgRepo", "$tgConfirm",
|
module.directive("tgMembershipsRowActions", ["$log", "$tgRepo", "$tgConfirm",
|
||||||
MembershipsMemberActionsDirective])
|
MembershipsRowActionsDirective])
|
||||||
|
|
||||||
|
|
||||||
#############################################################################
|
#############################################################################
|
||||||
## Member IsAdminCheckbox Directive
|
## Member IsAdminCheckbox Directive
|
||||||
#############################################################################
|
#############################################################################
|
||||||
|
|
||||||
MembershipsMemberIsAdminCheckboxDirective = ($log, $repo, $confirm) ->
|
MembershipsRowAdminCheckboxDirective = ($log, $repo, $confirm) ->
|
||||||
template = _.template("""
|
template = _.template("""
|
||||||
<input type="checkbox" id="<%- inputId %>" />
|
<input type="checkbox" id="<%- inputId %>" />
|
||||||
<label for="<%- inputId %>">Is admin?</label>
|
<label for="<%- inputId %>">Is admin?</label>
|
||||||
""") # i18n
|
""") # i18n
|
||||||
|
|
||||||
render = ($el, member) ->
|
|
||||||
ctx = {inputId: "is-admin-#{member.id}"}
|
|
||||||
|
|
||||||
html = template(ctx)
|
|
||||||
$el.html(html)
|
|
||||||
|
|
||||||
link = ($scope, $el, $attrs) ->
|
link = ($scope, $el, $attrs) ->
|
||||||
if not $attrs.tgMembershipsMemberIsAdminCheckbox?
|
render = (member) ->
|
||||||
return $log.error "MembershipsMemberIsAdminCheckboxDirective: the directive need a member"
|
ctx = {inputId: "is-admin-#{member.id}"}
|
||||||
|
|
||||||
member = $scope.$eval($attrs.tgMembershipsMemberIsAdminCheckbox)
|
html = template(ctx)
|
||||||
html = render($el, member)
|
$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
|
if member.is_admin
|
||||||
$el.find(":checkbox").prop("checked", true)
|
$el.find(":checkbox").prop("checked", true)
|
||||||
|
@ -366,13 +366,13 @@ MembershipsMemberIsAdminCheckboxDirective = ($log, $repo, $confirm) ->
|
||||||
return {link: link}
|
return {link: link}
|
||||||
|
|
||||||
|
|
||||||
module.directive("tgMembershipsMemberIsAdminCheckbox", ["$log", "$tgRepo", "$tgConfirm",
|
module.directive("tgMembershipsRowAdminCheckbox", ["$log", "$tgRepo", "$tgConfirm",
|
||||||
MembershipsMemberIsAdminCheckboxDirective])
|
MembershipsRowAdminCheckboxDirective])
|
||||||
#############################################################################
|
#############################################################################
|
||||||
## Member RoleSelector Directive
|
## Member RoleSelector Directive
|
||||||
#############################################################################
|
#############################################################################
|
||||||
|
|
||||||
MembershipsMemberRoleSelectorDirective = ($log, $repo, $confirm) ->
|
MembershipsRowRoleSelectorDirective = ($log, $repo, $confirm) ->
|
||||||
template = _.template("""
|
template = _.template("""
|
||||||
<select>
|
<select>
|
||||||
<% _.each(roleList, function(role) { %>
|
<% _.each(roleList, function(role) { %>
|
||||||
|
@ -383,24 +383,22 @@ MembershipsMemberRoleSelectorDirective = ($log, $repo, $confirm) ->
|
||||||
</select>
|
</select>
|
||||||
""")
|
""")
|
||||||
|
|
||||||
render = ($el, member, roleList) ->
|
|
||||||
ctx = {
|
|
||||||
roleList: roleList,
|
|
||||||
selectedRole: member.role
|
|
||||||
}
|
|
||||||
|
|
||||||
html = template(ctx)
|
|
||||||
$el.html(html)
|
|
||||||
|
|
||||||
link = ($scope, $el, $attrs) ->
|
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()
|
$ctrl = $el.controller()
|
||||||
|
member = $scope.$eval($attrs.tgMembershipsRowRoleSelector)
|
||||||
if not $attrs.tgMembershipsMemberRoleSelector?
|
html = render(member)
|
||||||
return $log.error "MembershipsMemberRoleSelectorDirective: the directive need a member"
|
|
||||||
|
|
||||||
member = $scope.$eval($attrs.tgMembershipsMemberRoleSelector)
|
|
||||||
roleList = $ctrl.scope.project.roles
|
|
||||||
html = render($el, member, roleList)
|
|
||||||
|
|
||||||
$el.on "click", "select", (event) =>
|
$el.on "click", "select", (event) =>
|
||||||
onSuccess = ->
|
onSuccess = ->
|
||||||
|
@ -422,5 +420,5 @@ MembershipsMemberRoleSelectorDirective = ($log, $repo, $confirm) ->
|
||||||
return {link: link}
|
return {link: link}
|
||||||
|
|
||||||
|
|
||||||
module.directive("tgMembershipsMemberRoleSelector", ["$log", "$tgRepo", "$tgConfirm",
|
module.directive("tgMembershipsRowRoleSelector", ["$log", "$tgRepo", "$tgConfirm",
|
||||||
MembershipsMemberRoleSelectorDirective])
|
MembershipsRowRoleSelectorDirective])
|
||||||
|
|
|
@ -6,7 +6,7 @@ section.admin-membership-table.basic-table
|
||||||
div.header-status Status
|
div.header-status Status
|
||||||
|
|
||||||
div.row(ng-repeat="member in memberships")
|
div.row(ng-repeat="member in memberships")
|
||||||
div.row-member(tg-memberships-member-avatar="member")
|
div.row-member(tg-memberships-row-avatar="member")
|
||||||
div.row-admin(tg-memberships-member-is-admin-checkbox="member")
|
div.row-admin(tg-memberships-row-admin-checkbox="member")
|
||||||
div.row-role(tg-memberships-member-role-selector="member")
|
div.row-role(tg-memberships-row-role-selector="member")
|
||||||
div.row-status(tg-memberships-member-actions="member")
|
div.row-status(tg-memberships-row-actions="member")
|
||||||
|
|
Loading…
Reference in New Issue