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,86 +44,77 @@ 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 parent = banBtn.parents('.users-box');
var isBanned = isUserBanned(banBtn); var uid = getUID(banBtn);
var parent = banBtn.parents('.users-box');
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'));
} }
}); });
}
} }
}
return false; return false;
}); });
$('#users-container').on('click', '.admin-btn', function() {
var adminBtn = $(this);
var isAdmin = isUserAdmin(adminBtn);
var parent = adminBtn.parents('.users-box');
var isBanned = isUserBanned(adminBtn);
var uid = getUID(adminBtn);
if(uid === yourid){ $('#users-container').on('click', '.admin-btn', function() {
app.alert({ var adminBtn = $(this);
title: 'Error', var parent = adminBtn.parents('.users-box');
message: 'You can\'t remove yourself as Administrator!', var uid = getUID(adminBtn);
type: 'danger',
timeout: 5000 if(uid === yourid) {
}); app.alert({
} title: 'Error',
else if (!isAdmin) { message: 'You can\'t remove yourself as Administrator!',
socket.emit('admin.user.makeAdmin', uid); type: 'danger',
adminBtn.attr('value', 'UnMake Admin').html('Remove Admin'); timeout: 5000
parent.attr('data-admin', 1); });
updateUserBanButtons(jQuery('.ban-btn')); } else if (!isUserAdmin(adminBtn)) {
socket.emit('admin.user.makeAdmin', uid);
} else if(uid !== yourid) { adminBtn.attr('value', 'UnMake Admin').html('Remove Admin');
bootbox.confirm('Do you really want to remove this user as admin "' + parent.attr('data-username') + '"?', function(confirm) { parent.attr('data-admin', 1);
if (confirm) { updateUserBanButtons($('.ban-btn'));
socket.emit('admin.user.removeAdmin', uid);
adminBtn.attr('value', 'Make Admin').html('Make Admin'); } else if(uid !== yourid) {
parent.attr('data-admin', 0); bootbox.confirm('Do you really want to remove this user as admin "' + parent.attr('data-username') + '"?', function(confirm) {
updateUserBanButtons(jQuery('.ban-btn')); if (confirm) {
socket.emit('admin.user.removeAdmin', uid);
} adminBtn.attr('value', 'Make Admin').html('Make Admin');
}); parent.attr('data-admin', 0);
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