parent
3ccebf112e
commit
d83eb7f89e
@ -0,0 +1,64 @@
|
||||
'use strict';
|
||||
|
||||
define('accounts/invite', ['api', 'benchpress', 'bootbox'], function (api, Benchpress, bootbox) {
|
||||
const Invite = {};
|
||||
|
||||
function isACP() {
|
||||
return ajaxify.data.template.name.startsWith('admin/');
|
||||
}
|
||||
|
||||
Invite.handle = function () {
|
||||
$('[component="user/invite"]').on('click', function (e) {
|
||||
e.preventDefault();
|
||||
api.get(`/api/v3/users/${app.user.uid}/invites/groups`, {}).then((groups) => {
|
||||
Benchpress.parse('modals/invite', { groups: groups }, function (html) {
|
||||
bootbox.dialog({
|
||||
message: html,
|
||||
title: `[[${isACP ? 'admin/manage/users:invite' : 'users:invite'}]]`,
|
||||
onEscape: true,
|
||||
buttons: {
|
||||
cancel: {
|
||||
label: `[[${isACP ? 'admin/manage/users:alerts.button-cancel' : 'modules:bootbox.cancel'}]]`,
|
||||
className: 'btn-default',
|
||||
},
|
||||
invite: {
|
||||
label: `[[${isACP ? 'admin/manage/users:invite' : 'users:invite'}]]`,
|
||||
className: 'btn-primary',
|
||||
callback: Invite.send,
|
||||
},
|
||||
},
|
||||
});
|
||||
});
|
||||
}).catch((err) => {
|
||||
app.alertError(err.message);
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
Invite.send = function () {
|
||||
var $emails = $('#invite-modal-emails');
|
||||
var $groups = $('#invite-modal-groups');
|
||||
|
||||
var data = {
|
||||
emails: $emails.val()
|
||||
.split(',')
|
||||
.map(m => m.trim())
|
||||
.filter(Boolean)
|
||||
.filter((m, i, arr) => i === arr.indexOf(m))
|
||||
.join(','),
|
||||
groupsToJoin: $groups.val(),
|
||||
};
|
||||
|
||||
if (!data.emails) {
|
||||
return;
|
||||
}
|
||||
|
||||
api.post(`/users/${app.user.uid}/invites`, data).then(() => {
|
||||
app.alertSuccess(`[[${isACP ? 'admin/manage/users:alerts.email-sent-to' : 'users:invitation-email-sent'}, ${data.emails.replace(/,/g, ', ')}]]`);
|
||||
}).catch((err) => {
|
||||
app.alertError(err.message);
|
||||
});
|
||||
};
|
||||
|
||||
return Invite;
|
||||
});
|
Loading…
Reference in New Issue