diff --git a/settings/js/users.js b/settings/js/users.js index f148a43a48..b0e30feb80 100644 --- a/settings/js/users.js +++ b/settings/js/users.js @@ -4,405 +4,413 @@ * See the COPYING-README file. */ -var UserList={ - useUndo:true, - - /** - * @brief Initiate user deletion process in UI - * @param string uid the user ID to be deleted - * - * Does not actually delete the user; it sets them for - * deletion when the current page is unloaded, at which point - * finishDelete() completes the process. This allows for 'undo'. - */ - do_delete:function( uid ) { - if (typeof UserList.deleteUid !== 'undefined') { - //Already a user in the undo queue - UserList.finishDelete(null); - } - UserList.deleteUid = uid; - - // Set undo flag - UserList.deleteCanceled = false; - - // Provide user with option to undo - $('#notification').html(t('users', 'deleted')+' '+uid+''+t('users', 'undo')+''); - $('#notification').data('deleteuser',true); - $('#notification').fadeIn(); - }, - - /** - * @brief Delete a user via ajax - * @param bool ready whether to use ready() upon completion - * - * Executes deletion via ajax of user identified by property deleteUid - * if 'undo' has not been used. Completes the user deletion procedure - * and reflects success in UI. - */ - finishDelete:function( ready ){ - - // Check deletion has not been undone - if( !UserList.deleteCanceled && UserList.deleteUid ){ - - // Delete user via ajax - $.ajax({ - type: 'POST', - url: OC.filePath('settings', 'ajax', 'removeuser.php'), - async: false, - data: { username: UserList.deleteUid }, - success: function(result) { - if (result.status == 'success') { - // Remove undo option, & remove user from table - $('#notification').fadeOut(); - $('tr').filterAttr('data-uid', UserList.deleteUid).remove(); - UserList.deleteCanceled = true; - if (ready) { - ready(); - } - } else { - oc.dialogs.alert(result.data.message, t('settings', 'Unable to remove user')); - } - } - }); - } - }, +var UserList = { + useUndo:true, - add:function(username, groups, subadmin, quota, sort) { - var tr = $('tbody tr').first().clone(); - tr.attr('data-uid', username); - tr.find('td.name').text(username); - var groupsSelect = $('').attr('data-username', username).attr('data-user-groups', groups); - tr.find('td.groups').empty(); - if (tr.find('td.subadmins').length > 0) { - var subadminSelect = $('').attr('data-username', username).attr('data-user-groups', groups); + tr.find('td.groups').empty(); + if (tr.find('td.subadmins').length > 0) { + var subadminSelect = $(''); - img.css('display','none'); - img.parent().children('span').replaceWith(input); - input.focus(); - input.keypress(function(event) { - if(event.keyCode == 13) { - if($(this).val().length>0){ - $.post( - OC.filePath('settings','ajax','changepassword.php'), - {username:uid,password:$(this).val()}, - function(result){} - ); - input.blur(); - }else{ - input.blur(); - } - } - }); - input.blur(function(){ - $(this).replaceWith($('●●●●●●●')); - img.css('display',''); - }); - }); - $('td.password').live('click',function(event){ - $(this).children('img').click(); - }); - - $('select.quota, select.quota-user').live('change',function(){ - var select=$(this); - var uid=$(this).parent().parent().parent().attr('data-uid'); - var quota=$(this).val(); - var other=$(this).next(); - if(quota!='other'){ - other.hide(); - select.data('previous',quota); - setQuota(uid,quota); - }else{ - other.show(); - select.addClass('active'); - other.focus(); - } - }); - $('select.quota, select.quota-user').each(function(i,select){ - $(select).data('previous',$(select).val()); - }) - - $('input.quota-other').live('change',function(){ - var uid=$(this).parent().parent().parent().attr('data-uid'); - var quota=$(this).val(); - var select=$(this).prev(); - var other=$(this); - if(quota){ - setQuota(uid,quota,function(quota){ - select.children().attr('selected',null); - var existingOption=select.children().filter(function(i,option){ - return ($(option).val()==quota); - }); - if(existingOption.length){ - existingOption.attr('selected','selected'); - }else{ - var option=$('