Resend invitations

stable
David Barragán Merino 2014-07-27 23:27:39 +02:00
parent 553096c496
commit 8d0cb8c54f
2 changed files with 78 additions and 69 deletions

View File

@ -257,72 +257,6 @@ MembershipsRowAvatarDirective = ($log) ->
module.directive("tgMembershipsRowAvatar", ["$log", MembershipsRowAvatarDirective])
#############################################################################
## Member Actions Directive
#############################################################################
MembershipsRowActionsDirective = ($log, $repo, $confirm) ->
activedTemplate = _.template("""
<div class="active">
Active
</div>
<a class="delete" href="">
<span class="icon icon-delete"></span>
</a>
""") # i18n
pendingTemplate = _.template("""
<a class="pending" href="">
Pending
<span class="icon icon-reload"></span>
</a>
<a class="delete" href="" title="Delete">
<span class="icon icon-delete"></span>
</a>
""") # i18n
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()
member = $scope.$eval($attrs.tgMembershipsRowActions)
render(member)
$el.on "click", ".pending", (event) ->
event.preventDefault()
#TODO: Re-send the invitation
console.log "re-sending the invitation to #{member.email}"
$el.on "click", ".delete", (event) ->
event.preventDefault()
title = "Delete member" # i18n
subtitle = if member.user then member.full_name else "the invitation to #{member.email}" # i18n
$confirm.ask(title, subtitle).then ->
$repo.remove(member).then ->
$ctrl.loadMembers()
$confirm.notify("success", null, "We've deleted #{subtitle}.") # i18n
$scope.$on "$destroy", ->
$el.off()
return {link: link}
module.directive("tgMembershipsRowActions", ["$log", "$tgRepo", "$tgConfirm",
MembershipsRowActionsDirective])
#############################################################################
## Member IsAdminCheckbox Directive
#############################################################################
@ -422,3 +356,74 @@ MembershipsRowRoleSelectorDirective = ($log, $repo, $confirm) ->
module.directive("tgMembershipsRowRoleSelector", ["$log", "$tgRepo", "$tgConfirm",
MembershipsRowRoleSelectorDirective])
#############################################################################
## Member Actions Directive
#############################################################################
MembershipsRowActionsDirective = ($log, $repo, $rs, $confirm) ->
activedTemplate = _.template("""
<div class="active">
Active
</div>
<a class="delete" href="">
<span class="icon icon-delete"></span>
</a>
""") # i18n
pendingTemplate = _.template("""
<a class="pending" href="">
Pending
<span class="icon icon-reload"></span>
</a>
<a class="delete" href="" title="Delete">
<span class="icon icon-delete"></span>
</a>
""") # i18n
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()
member = $scope.$eval($attrs.tgMembershipsRowActions)
render(member)
$el.on "click", ".pending", (event) ->
event.preventDefault()
onSuccess = ->
# i18n
$confirm.notify("success", "We've sent the invitationi again to '#{$scope.member.email}'.")
onError = ->
$confirm.notify("error", "We haven't sent the invitation.") # i18n
$rs.memberships.resendInvitation($scope.member.id).then(onSuccess, onError)
$el.on "click", ".delete", (event) ->
event.preventDefault()
title = "Delete member" # i18n
subtitle = if member.user then member.full_name else "the invitation to #{member.email}" # i18n
$confirm.ask(title, subtitle).then ->
$repo.remove(member).then ->
$ctrl.loadMembers()
$confirm.notify("success", null, "We've deleted #{subtitle}.") # i18n
$scope.$on "$destroy", ->
$el.off()
return {link: link}
module.directive("tgMembershipsRowActions", ["$log", "$tgRepo", "$tgResources", "$tgConfirm",
MembershipsRowActionsDirective])

View File

@ -22,7 +22,7 @@
taiga = @.taiga
resourceProvider = ($repo) ->
resourceProvider = ($repo, $http, $urls) ->
service = {}
service.get = (id) ->
@ -33,9 +33,13 @@ resourceProvider = ($repo) ->
params = _.extend({}, params, filters or {})
return $repo.queryPaginated("memberships", params)
service.resendInvitation = (id) ->
url = $urls.resolve("memberships")
return $http.post("#{url}/#{id}/resend_invitation", {})
return (instance) ->
instance.memberships = service
module = angular.module("taigaResources")
module.factory("$tgMembershipsResourcesProvider", ["$tgRepo", resourceProvider])
module.factory("$tgMembershipsResourcesProvider", ["$tgRepo", "$tgHttp", "$tgUrls", resourceProvider])