diff --git a/public/src/forum/admin/users.js b/public/src/forum/admin/users.js index c589ee4b34..7451f883af 100644 --- a/public/src/forum/admin/users.js +++ b/public/src/forum/admin/users.js @@ -1,4 +1,83 @@ + + +function initUsers() { + + + function isUserAdmin(element) { + var parent = $(element).parents('.users-box'); + return (parent.attr('data-admin') !== "0"); + } + + function getUID(element) { + var parent = $(element).parents('.users-box'); + return parent.attr('data-uid'); + } + + jQuery('.admin-btn').each(function(index, element) { + var adminBtn = $(element); + var isAdmin = isUserAdmin(adminBtn); + + if(isAdmin) + adminBtn.addClass('btn-success'); + else + adminBtn.removeClass('btn-success'); + + }); + + jQuery('.delete-btn').each(function(index, element) { + var deleteBtn = $(element); + var isAdmin = isUserAdmin(deleteBtn); + + if(isAdmin) + deleteBtn.addClass('disabled'); + else + deleteBtn.show(); + }); + + jQuery('.admin-btn').on('click', function() { + var adminBtn = $(this); + var isAdmin = isUserAdmin(adminBtn); + var parent = adminBtn.parents('.users-box'); + var uid = getUID(adminBtn); + + if(isAdmin) { + socket.emit('api:admin.user.removeAdmin', uid); + adminBtn.removeClass('btn-success'); + parent.find('.delete-btn').removeClass('disabled'); + parent.attr('data-admin', 0); + } + else { + bootbox.confirm('Do you really want to make "' + parent.attr('data-username') +'" an admin?', function(confirm) { + if(confirm) { + socket.emit('api:admin.user.makeAdmin', uid); + adminBtn.addClass('btn-success'); + parent.find('.delete-btn').addClass('disabled'); + parent.attr('data-admin', 1); + } + }); + } + + return false; + }); + + jQuery('.delete-btn').on('click', function() { + var deleteBtn = $(this); + var isAdmin = isUserAdmin(deleteBtn); + var parent = deleteBtn.parents('.users-box'); + var uid = getUID(deleteBtn); + + if(!isAdmin) { + bootbox.confirm('Do you really want to delete "' + parent.attr('data-username') +'"?', function(confirm) { + socket.emit('api:admin.user.deleteUser', uid); + }); + } + + return false; + }); +} + + (function() { jQuery('document').ready(function() { @@ -23,85 +102,14 @@ timeoutId = 0; } - timeoutId = setTimeout(function() { jQuery('.icon-spinner').removeClass('none'); socket.emit('api:admin.user.search', $('#search-user').val()); }, 250); }); - - function isUserAdmin(element) { - var parent = $(element).parents('.users-box'); - return (parent.attr('data-admin') !== "0"); - } - - function getUID(element) { - var parent = $(element).parents('.users-box'); - return parent.attr('data-uid'); - } - - jQuery('.admin-btn').each(function(index, element) { - var adminBtn = $(element); - var isAdmin = isUserAdmin(adminBtn); - - if(isAdmin) - adminBtn.addClass('btn-success'); - else - adminBtn.removeClass('btn-success'); - - }); - - jQuery('.delete-btn').each(function(index, element) { - var deleteBtn = $(element); - var isAdmin = isUserAdmin(deleteBtn); - - if(isAdmin) - deleteBtn.addClass('disabled'); - else - deleteBtn.show(); - }); - - jQuery('.admin-btn').on('click', function() { - var adminBtn = $(this); - var isAdmin = isUserAdmin(adminBtn); - var parent = adminBtn.parents('.users-box'); - var uid = getUID(adminBtn); - - if(isAdmin) { - socket.emit('api:admin.user.removeAdmin', uid); - adminBtn.removeClass('btn-success'); - parent.find('.delete-btn').removeClass('disabled'); - parent.attr('data-admin', 0); - } - else { - bootbox.confirm('Do you really want to make "' + parent.attr('data-username') +'" an admin?', function(confirm) { - if(confirm) { - socket.emit('api:admin.user.makeAdmin', uid); - adminBtn.addClass('btn-success'); - parent.find('.delete-btn').addClass('disabled'); - parent.attr('data-admin', 1); - } - }); - } - - return false; - }); - - jQuery('.delete-btn').on('click', function() { - var deleteBtn = $(this); - var isAdmin = isUserAdmin(deleteBtn); - var parent = deleteBtn.parents('.users-box'); - var uid = getUID(deleteBtn); - - if(!isAdmin) { - bootbox.confirm('Do you really want to delete "' + parent.attr('data-username') +'"?', function(confirm) { - socket.emit('api:admin.user.deleteUser', uid); - }); - } - - return false; - }); + initUsers(); + }); diff --git a/public/templates/admin/index.tpl b/public/templates/admin/index.tpl index 843a155ede..c33b5bda4a 100644 --- a/public/templates/admin/index.tpl +++ b/public/templates/admin/index.tpl @@ -43,6 +43,7 @@ socket.emit('api:get_all_rooms'); socket.on('api:admin.user.search', function(data) { + console.log('move this into user.js but it should execute only once'); var html = templates.prepare(templates['admin/users'].blocks['users']).parse({ users: data }), @@ -57,12 +58,14 @@ .addClass('label-important') .removeClass('label-success'); } - else + else { $('#user-notfound-notify').html(data.length + ' user'+(data.length>1?'s':'') + ' found!') .show() .addClass('label-success') .removeClass('label-important'); - + } + + user.initUsers(); }); \ No newline at end of file