|
|
|
@ -5,20 +5,14 @@ define('admin/manage/group', [
|
|
|
|
|
'forum/groups/memberlist',
|
|
|
|
|
'iconSelect',
|
|
|
|
|
'admin/modules/colorpicker',
|
|
|
|
|
'translator',
|
|
|
|
|
'benchpress',
|
|
|
|
|
], function (memberList, iconSelect, colorpicker, translator, Benchpress) {
|
|
|
|
|
], function (memberList, iconSelect, colorpicker) {
|
|
|
|
|
var Groups = {};
|
|
|
|
|
|
|
|
|
|
Groups.init = function () {
|
|
|
|
|
var groupDetailsSearch = $('#group-details-search');
|
|
|
|
|
var groupDetailsSearchResults = $('#group-details-search-results');
|
|
|
|
|
var groupIcon = $('#group-icon');
|
|
|
|
|
var changeGroupUserTitle = $('#change-group-user-title');
|
|
|
|
|
var changeGroupLabelColor = $('#change-group-label-color');
|
|
|
|
|
var groupLabelPreview = $('#group-label-preview');
|
|
|
|
|
var searchDelay;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var groupName = ajaxify.data.group.name;
|
|
|
|
|
|
|
|
|
@ -36,87 +30,6 @@ define('admin/manage/group', [
|
|
|
|
|
groupLabelPreview.css('background', changeGroupLabelColor.val() || '#000000');
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
groupDetailsSearch.on('keyup', function () {
|
|
|
|
|
if (searchDelay) {
|
|
|
|
|
clearTimeout(searchDelay);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
searchDelay = setTimeout(function () {
|
|
|
|
|
var searchText = groupDetailsSearch.val();
|
|
|
|
|
var foundUser;
|
|
|
|
|
|
|
|
|
|
socket.emit('admin.user.search', {
|
|
|
|
|
query: searchText,
|
|
|
|
|
}, function (err, results) {
|
|
|
|
|
if (!err && results && results.users.length > 0) {
|
|
|
|
|
var numResults = results.users.length;
|
|
|
|
|
var x;
|
|
|
|
|
if (numResults > 20) {
|
|
|
|
|
numResults = 20;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
groupDetailsSearchResults.empty();
|
|
|
|
|
|
|
|
|
|
for (x = 0; x < numResults; x += 1) {
|
|
|
|
|
foundUser = $('<li />');
|
|
|
|
|
foundUser
|
|
|
|
|
.attr({
|
|
|
|
|
title: results.users[x].username,
|
|
|
|
|
'data-uid': results.users[x].uid,
|
|
|
|
|
'data-username': results.users[x].username,
|
|
|
|
|
'data-userslug': results.users[x].userslug,
|
|
|
|
|
'data-picture': results.users[x].picture,
|
|
|
|
|
'data-usericon-bgColor': results.users[x]['icon:bgColor'],
|
|
|
|
|
'data-usericon-text': results.users[x]['icon:text'],
|
|
|
|
|
})
|
|
|
|
|
.append(results.users[x].picture ?
|
|
|
|
|
$('<img />').addClass('avatar avatar-sm').attr('src', results.users[x].picture) :
|
|
|
|
|
$('<div />').addClass('avatar avatar-sm').css('background-color', results.users[x]['icon:bgColor']).html(results.users[x]['icon:text']))
|
|
|
|
|
.append($('<span />').html(results.users[x].username));
|
|
|
|
|
|
|
|
|
|
groupDetailsSearchResults.append(foundUser);
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
groupDetailsSearchResults.translateHtml('<li>[[admin/manage/groups:edit.no-users-found]]</li>');
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}, 200);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
groupDetailsSearchResults.on('click', 'li[data-uid]', function () {
|
|
|
|
|
var userLabel = $(this);
|
|
|
|
|
var uid = parseInt(userLabel.attr('data-uid'), 10);
|
|
|
|
|
|
|
|
|
|
socket.emit('admin.groups.join', {
|
|
|
|
|
groupName: groupName,
|
|
|
|
|
uid: uid,
|
|
|
|
|
}, function (err) {
|
|
|
|
|
if (err) {
|
|
|
|
|
return app.alertError(err.message);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var member = {
|
|
|
|
|
uid: userLabel.attr('data-uid'),
|
|
|
|
|
username: userLabel.attr('data-username'),
|
|
|
|
|
userslug: userLabel.attr('data-userslug'),
|
|
|
|
|
picture: userLabel.attr('data-picture'),
|
|
|
|
|
'icon:bgColor': userLabel.attr('data-usericon-bgColor'),
|
|
|
|
|
'icon:text': userLabel.attr('data-usericon-text'),
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Benchpress.parse('admin/partials/groups/memberlist', 'group.members', {
|
|
|
|
|
group: {
|
|
|
|
|
isOwner: ajaxify.data.group.isOwner,
|
|
|
|
|
members: [member],
|
|
|
|
|
},
|
|
|
|
|
}, function (html) {
|
|
|
|
|
translator.translate(html, function (html) {
|
|
|
|
|
$('[component="groups/members"] tbody').prepend(html);
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
$('[component="groups/members"]').on('click', '[data-action]', function () {
|
|
|
|
|
var btnEl = $(this);
|
|
|
|
|
var userRow = btnEl.parents('[data-uid]');
|
|
|
|
|