mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-11-02 12:05:57 +01:00
closes #5043
This commit is contained in:
@@ -61,7 +61,7 @@
|
|||||||
"nodebb-plugin-spam-be-gone": "0.4.10",
|
"nodebb-plugin-spam-be-gone": "0.4.10",
|
||||||
"nodebb-rewards-essentials": "0.0.9",
|
"nodebb-rewards-essentials": "0.0.9",
|
||||||
"nodebb-theme-lavender": "3.0.14",
|
"nodebb-theme-lavender": "3.0.14",
|
||||||
"nodebb-theme-persona": "4.1.49",
|
"nodebb-theme-persona": "4.1.50",
|
||||||
"nodebb-theme-vanilla": "5.1.33",
|
"nodebb-theme-vanilla": "5.1.33",
|
||||||
"nodebb-widget-essentials": "2.0.11",
|
"nodebb-widget-essentials": "2.0.11",
|
||||||
"nodemailer": "2.0.0",
|
"nodemailer": "2.0.0",
|
||||||
|
|||||||
@@ -59,5 +59,7 @@
|
|||||||
"membership.reject": "Reject",
|
"membership.reject": "Reject",
|
||||||
|
|
||||||
"new-group.group_name": "Group Name:",
|
"new-group.group_name": "Group Name:",
|
||||||
"upload-group-cover": "Upload group cover"
|
"upload-group-cover": "Upload group cover",
|
||||||
|
"bulk-invite-instructions": "Enter a list of comma separated usernames to invite to this group",
|
||||||
|
"bulk-invite": "Bulk Invite"
|
||||||
}
|
}
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
"use strict";
|
"use strict";
|
||||||
/* globals define, socket, ajaxify, app, bootbox, utils, RELATIVE_PATH */
|
/* globals define, socket, ajaxify, app, bootbox, utils, config */
|
||||||
|
|
||||||
define('forum/groups/details', [
|
define('forum/groups/details', [
|
||||||
'forum/groups/memberlist',
|
'forum/groups/memberlist',
|
||||||
@@ -227,23 +227,41 @@ define('forum/groups/details', [
|
|||||||
};
|
};
|
||||||
|
|
||||||
function handleMemberInvitations() {
|
function handleMemberInvitations() {
|
||||||
if (ajaxify.data.group.isOwner) {
|
if (!ajaxify.data.group.isOwner) {
|
||||||
var searchInput = $('[component="groups/members/invite"]');
|
return;
|
||||||
require(['autocomplete'], function(autocomplete) {
|
}
|
||||||
autocomplete.user(searchInput, function(event, selected) {
|
|
||||||
socket.emit('groups.issueInvite', {
|
var searchInput = $('[component="groups/members/invite"]');
|
||||||
toUid: selected.item.user.uid,
|
require(['autocomplete'], function(autocomplete) {
|
||||||
groupName: ajaxify.data.group.name
|
autocomplete.user(searchInput, function(event, selected) {
|
||||||
}, function(err) {
|
socket.emit('groups.issueInvite', {
|
||||||
if (!err) {
|
toUid: selected.item.user.uid,
|
||||||
ajaxify.refresh();
|
groupName: ajaxify.data.group.name
|
||||||
} else {
|
}, function(err) {
|
||||||
app.alertError(err.message);
|
if (err) {
|
||||||
}
|
return app.alertError(err.message);
|
||||||
});
|
}
|
||||||
|
ajaxify.refresh();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
}
|
});
|
||||||
|
|
||||||
|
$('[component="groups/members/bulk-invite-button"]').on('click', function() {
|
||||||
|
var usernames = $('[component="groups/members/bulk-invite"]').val();
|
||||||
|
if (!usernames) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
socket.emit('groups.issueMassInvite', {
|
||||||
|
usernames: usernames,
|
||||||
|
groupName: ajaxify.data.group.name
|
||||||
|
}, function(err) {
|
||||||
|
if (err) {
|
||||||
|
return app.alertError(err.message);
|
||||||
|
}
|
||||||
|
ajaxify.refresh();
|
||||||
|
});
|
||||||
|
return false;
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function removeCover() {
|
function removeCover() {
|
||||||
|
|||||||
@@ -135,6 +135,28 @@ SocketGroups.issueInvite = isOwner(function(socket, data, callback) {
|
|||||||
groups.invite(data.groupName, data.toUid, callback);
|
groups.invite(data.groupName, data.toUid, callback);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
SocketGroups.issueMassInvite = isOwner(function(socket, data, callback) {
|
||||||
|
if (!data || !data.usernames || !data.groupName) {
|
||||||
|
return callback(new Error('[[error:invalid-data]]'));
|
||||||
|
}
|
||||||
|
var usernames = data.usernames.split(',');
|
||||||
|
usernames = usernames.map(function(username) {
|
||||||
|
return username && username.trim();
|
||||||
|
});
|
||||||
|
user.getUidsByUsernames(usernames, function(err, uids) {
|
||||||
|
if (err) {
|
||||||
|
return callback(err);
|
||||||
|
}
|
||||||
|
uids = uids.filter(function(uid) {
|
||||||
|
return !!uid && parseInt(uid, 10);
|
||||||
|
});
|
||||||
|
|
||||||
|
async.eachSeries(uids, function(uid, next) {
|
||||||
|
groups.invite(data.groupName, uid, callback);
|
||||||
|
}, callback);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
SocketGroups.rescindInvite = isOwner(function(socket, data, callback) {
|
SocketGroups.rescindInvite = isOwner(function(socket, data, callback) {
|
||||||
groups.rejectMembership(data.groupName, data.toUid, callback);
|
groups.rejectMembership(data.groupName, data.toUid, callback);
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user