diff --git a/app/coffee/modules/admin/memberships.coffee b/app/coffee/modules/admin/memberships.coffee
index cc69ff58..b25e1dcd 100644
--- a/app/coffee/modules/admin/memberships.coffee
+++ b/app/coffee/modules/admin/memberships.coffee
@@ -283,9 +283,57 @@ MembershipsMemberActionsDirective = ($log) ->
html = render(member)
$el.html(html)
- return {
- link: link
- }
+ $scope.$on "$destroy", ->
+ $el.off()
+
+ return {link: link}
module.directive("tgMembershipsMemberActions", ["$log", MembershipsMemberActionsDirective])
+
+
+#############################################################################
+## Member IsAdminCheckbox Directive
+#############################################################################
+
+MembershipsMemberIsAdminCheckboxDirective = ($log, $repo, $confirm) ->
+ template = _.template("""
+
+
+ """) # 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])
diff --git a/app/partials/views/modules/admin/admin-membership-table.jade b/app/partials/views/modules/admin/admin-membership-table.jade
index 0a53b2fe..083a1ecc 100644
--- a/app/partials/views/modules/admin/admin-membership-table.jade
+++ b/app/partials/views/modules/admin/admin-membership-table.jade
@@ -7,9 +7,7 @@ section.admin-membership-table.basic-table
div.row(ng-repeat="member in memberships")
div.row-member(tg-memberships-member-avatar="member")
- div.row-admin
- input(type="checkbox", id="is-admin" ng-model="member.is_admin")
- label(for="is-admin") Is admin?
+ div.row-admin(tg-memberships-member-is-admin-checkbox="member")
div.row-role
select(ng-model="member.role")
option UX