fixes multiple click handlers in admin users

v1.18.x
Baris Soner Usakli 11 years ago
parent 7e825c61bd
commit a92fb07f02

@ -23,14 +23,15 @@ define(function() {
elements.each(function(index, element) { elements.each(function(index, element) {
var banBtn = $(element); var banBtn = $(element);
var uid = getUID(banBtn); var uid = getUID(banBtn);
if (isUserAdmin(banBtn) || uid === yourid) if (isUserAdmin(banBtn) || uid === yourid) {
banBtn.addClass('disabled'); banBtn.addClass('disabled');
else if (isUserBanned(banBtn)) } else if (isUserBanned(banBtn)) {
banBtn.addClass('btn-warning'); banBtn.addClass('btn-warning');
else if (!isUserAdmin(banBtn)) } else if (!isUserAdmin(banBtn)) {
banBtn.removeClass('disabled'); banBtn.removeClass('disabled');
else } else {
banBtn.removeClass('btn-warning'); banBtn.removeClass('btn-warning');
}
}); });
} }
@ -43,41 +44,39 @@ define(function() {
if (uid === yourid) { if (uid === yourid) {
adminBtn.addClass('disabled'); adminBtn.addClass('disabled');
} }
} } else if (isUserBanned(adminBtn)) {
else if (isUserBanned(adminBtn))
adminBtn.addClass('disabled'); adminBtn.addClass('disabled');
else if (!isUserBanned(adminBtn)) } else if (!isUserBanned(adminBtn)) {
adminBtn.removeClass('disabled'); adminBtn.removeClass('disabled');
else } else {
adminBtn.removeClass('btn-warning'); adminBtn.removeClass('btn-warning');
}
}); });
} }
function initUsers() { function updateButtons() {
updateUserBanButtons(jQuery('.ban-btn')); updateUserBanButtons($('.ban-btn'));
updateUserAdminButtons(jQuery('.admin-btn')); updateUserAdminButtons($('.admin-btn'));
}
$('#users-container').on('click', '.ban-btn', function() { $('#users-container').on('click', '.ban-btn', function() {
var banBtn = $(this); var banBtn = $(this);
var isAdmin = isUserAdmin(banBtn);
var isBanned = isUserBanned(banBtn);
var parent = banBtn.parents('.users-box'); var parent = banBtn.parents('.users-box');
var uid = getUID(banBtn); var uid = getUID(banBtn);
if (!isAdmin) { if (!isUserAdmin(banBtn)) {
if (isBanned) { if (isUserBanned(banBtn)) {
socket.emit('admin.user.unbanUser', uid); socket.emit('admin.user.unbanUser', uid);
banBtn.removeClass('btn-warning'); banBtn.removeClass('btn-warning');
parent.attr('data-banned', 0); parent.attr('data-banned', 0);
updateUserAdminButtons(jQuery('.admin-btn')); updateUserAdminButtons($('.admin-btn'));
} else { } else {
bootbox.confirm('Do you really want to ban "' + parent.attr('data-username') + '"?', function(confirm) { bootbox.confirm('Do you really want to ban "' + parent.attr('data-username') + '"?', function(confirm) {
if (confirm) { if (confirm) {
socket.emit('admin.user.banUser', uid); socket.emit('admin.user.banUser', uid);
banBtn.addClass('btn-warning'); banBtn.addClass('btn-warning');
parent.attr('data-banned', 1); parent.attr('data-banned', 1);
updateUserAdminButtons(jQuery('.admin-btn')); updateUserAdminButtons($('.admin-btn'));
} }
}); });
} }
@ -88,24 +87,21 @@ define(function() {
$('#users-container').on('click', '.admin-btn', function() { $('#users-container').on('click', '.admin-btn', function() {
var adminBtn = $(this); var adminBtn = $(this);
var isAdmin = isUserAdmin(adminBtn);
var parent = adminBtn.parents('.users-box'); var parent = adminBtn.parents('.users-box');
var isBanned = isUserBanned(adminBtn);
var uid = getUID(adminBtn); var uid = getUID(adminBtn);
if(uid === yourid){ if(uid === yourid) {
app.alert({ app.alert({
title: 'Error', title: 'Error',
message: 'You can\'t remove yourself as Administrator!', message: 'You can\'t remove yourself as Administrator!',
type: 'danger', type: 'danger',
timeout: 5000 timeout: 5000
}); });
} } else if (!isUserAdmin(adminBtn)) {
else if (!isAdmin) {
socket.emit('admin.user.makeAdmin', uid); socket.emit('admin.user.makeAdmin', uid);
adminBtn.attr('value', 'UnMake Admin').html('Remove Admin'); adminBtn.attr('value', 'UnMake Admin').html('Remove Admin');
parent.attr('data-admin', 1); parent.attr('data-admin', 1);
updateUserBanButtons(jQuery('.ban-btn')); updateUserBanButtons($('.ban-btn'));
} else if(uid !== yourid) { } else if(uid !== yourid) {
bootbox.confirm('Do you really want to remove this user as admin "' + parent.attr('data-username') + '"?', function(confirm) { bootbox.confirm('Do you really want to remove this user as admin "' + parent.attr('data-username') + '"?', function(confirm) {
@ -113,16 +109,12 @@ define(function() {
socket.emit('admin.user.removeAdmin', uid); socket.emit('admin.user.removeAdmin', uid);
adminBtn.attr('value', 'Make Admin').html('Make Admin'); adminBtn.attr('value', 'Make Admin').html('Make Admin');
parent.attr('data-admin', 0); parent.attr('data-admin', 0);
updateUserBanButtons(jQuery('.ban-btn')); updateUserBanButtons($('.ban-btn'));
} }
}); });
} }
return false; return false;
}); });
}
function handleUserCreate() { function handleUserCreate() {
var errorEl = $('#create-modal-error'); var errorEl = $('#create-modal-error');
@ -217,12 +209,12 @@ define(function() {
.removeClass('label-danger'); .removeClass('label-danger');
} }
initUsers(); updateButtons();
}); });
}, 250); }, 250);
}); });
initUsers(); updateButtons();
handleUserCreate(); handleUserCreate();

Loading…
Cancel
Save