Directive to do a member administrator

stable
David Barragán Merino 2014-07-22 20:37:17 +02:00
parent 2817bd3d45
commit fd7733dfd7
2 changed files with 52 additions and 6 deletions

View File

@ -283,9 +283,57 @@ MembershipsMemberActionsDirective = ($log) ->
html = render(member) html = render(member)
$el.html(html) $el.html(html)
return { $scope.$on "$destroy", ->
link: link $el.off()
}
return {link: link}
module.directive("tgMembershipsMemberActions", ["$log", MembershipsMemberActionsDirective]) module.directive("tgMembershipsMemberActions", ["$log", MembershipsMemberActionsDirective])
#############################################################################
## Member IsAdminCheckbox Directive
#############################################################################
MembershipsMemberIsAdminCheckboxDirective = ($log, $repo, $confirm) ->
template = _.template("""
<input type="checkbox" id="<%- inputId %>" />
<label for="<%- inputId %>">Is admin?</label>
""") # i18n
render = (member) ->
ctx = {inputId: "is-admin-#{member.id}"}
return template(ctx)
link = ($scope, $el, $attrs) ->
if not $attrs.tgMembershipsMemberIsAdminCheckbox?
return $log.error "MembershipsMemberIsAdminCheckboxDirective: the directive need a member"
member = $scope.$eval($attrs.tgMembershipsMemberIsAdminCheckbox)
html = render(member)
$el.html(html)
if member.is_admin
$el.find(":checkbox").prop("checked", true)
$el.on "click", ":checkbox", (event) =>
onSuccess = ->
$confirm.notify("success")
onError = ->
$confirm.notify("error")
target = angular.element(event.currentTarget)
member.is_admin = target.prop("checked")
$repo.save(member).then(onSuccess, onError)
$scope.$on "$destroy", ->
$el.off()
return {link: link}
module.directive("tgMembershipsMemberIsAdminCheckbox", ["$log", "$tgRepo", "$tgConfirm",
MembershipsMemberIsAdminCheckboxDirective])

View File

@ -7,9 +7,7 @@ section.admin-membership-table.basic-table
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-member-avatar="member")
div.row-admin div.row-admin(tg-memberships-member-is-admin-checkbox="member")
input(type="checkbox", id="is-admin" ng-model="member.is_admin")
label(for="is-admin") Is admin?
div.row-role div.row-role
select(ng-model="member.role") select(ng-model="member.role")
option UX option UX