Minor refactor

stable
David Barragán Merino 2014-07-24 12:51:34 +02:00
parent 2fe0773597
commit 9542c3f6c4
2 changed files with 71 additions and 73 deletions

View File

@ -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])

View File

@ -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")