diff options
author | Robin Appelman <icewind1991@gmail.com> | 2011-08-10 20:51:35 +0200 |
---|---|---|
committer | Robin Appelman <icewind1991@gmail.com> | 2011-08-10 22:38:28 +0200 |
commit | f03874ac4994ac54816828a7e5d58570080c5bcf (patch) | |
tree | c57e9bb47514457005b6902c74ca64a6bc5cd766 /admin/js/users.js | |
parent | b54d790a873290e71654e94ac5072e87e6ba5427 (diff) | |
download | nextcloud-server-f03874ac4994ac54816828a7e5d58570080c5bcf.tar.gz nextcloud-server-f03874ac4994ac54816828a7e5d58570080c5bcf.zip |
work on user management
Diffstat (limited to 'admin/js/users.js')
-rw-r--r-- | admin/js/users.js | 110 |
1 files changed, 44 insertions, 66 deletions
diff --git a/admin/js/users.js b/admin/js/users.js index 7e643fb60a2..7402255750f 100644 --- a/admin/js/users.js +++ b/admin/js/users.js @@ -1,5 +1,37 @@ $(document).ready(function(){ - $('select[multiple]').chosen(); + function applyMultiplySelect(element){ + var checked=[]; + var user=element.data('username') + if(element.data('userGroups')){ + checked=element.data('userGroups').split(', '); + } + if(user){ + var checkHandeler=function(group){ + if(user==OC.currentUser && group=='admin'){ + return false; + } + $.post( + OC.filePath('admin','ajax','togglegroups.php'), + { + username:user, + group:group + }, + function(){} + ); + } + }else{ + checkHandeler=false; + } + element.multiSelect({ + createText:'add group', + checked:checked, + oncheck:checkHandeler, + onuncheck:checkHandeler + }); + } + $('select[multiple]').each(function(index,element){ + applyMultiplySelect($(element)); + }); $('td.remove>img').live('click',function(event){ var uid=$(this).parent().parent().data('uid'); @@ -17,7 +49,7 @@ $(document).ready(function(){ event.preventDefault(); var username=$('#newusername').val(); var password=$('#newuserpassword').val(); - var groups=$('#newusergroups').val(); + var groups=$('#newusergroups').prev().children('div').data('settings').checked; $.post( OC.filePath('admin','ajax','createuser.php'), { @@ -29,72 +61,18 @@ $(document).ready(function(){ } ); - var tr=$('#rightcontent tr').first().clone(); + var tr=$('#content table tr').first().clone(); tr.attr('data-uid',username); tr.find('td.name').text(username); - tr.find('td.groups').text(groups.join(', ')); - $('#rightcontent tr').first().after(tr); - if(groups.indexOf($('#leftcontent li.selected').text().trim())!=-1){ - tr.find('td.select input').attr('checked','checked'); - } - }); - - $('#newgroup').submit(function(event){ - event.preventDefault(); - var name=$('#newgroupname').val(); - $.post( - OC.filePath('admin','ajax','creategroup.php'), - {groupname:name}, - function(result){ - - } - ); - $('#newusergroups').append('<option value="'+name+'">'+name+'</option>'); - $('select[multiple]').trigger("liszt:updated"); - var li=$('#leftcontent li').first().next().clone(); - li.text(name); - $('#leftcontent li').first().after(li); - }); - - $('#leftcontent li').live('click',function(event){ - $('#leftcontent li').removeClass('selected'); - $(this).addClass('selected'); - $('#rightcontent tr td.select input').show(); - $('#rightcontent tr td.select input').removeAttr('checked'); - var group=$(this).text().trim(); - var rows=$('#rightcontent tr').filter(function(i,tr){ - return ($(tr).children('td.groups').text().split(', ').indexOf(group)>-1); + var select=$('<select multiple="multiple" data-placehoder="Groups" title="Groups">'); + select.data('username',username); + select.data('userGroups',groups.join(', ')); + tr.find('td.groups').empty(); + $.each($('#content table').data('groups').split(', '),function(i,group){ + select.append($('<option value="'+group+'">'+group+'</option>')); }); - rows.find('td.select input').attr('checked','checked'); - }); - $('#rightcontent tr td.select input').live('change',function(event){ - var group=$('#leftcontent li.selected').text().trim(); - var user=$(this).parent().parent().children('td.name').text().trim(); - if(group=='admin' && user==OC.currentUser){ - event.preventDefault(); - $(this).attr('checked','checked'); - return false; - } - if(group){ - $.post( - OC.filePath('admin','ajax','togglegroups.php'), - { - username:user, - group:group - }, - function(result){ - - } - ); - var groups=$(this).parent().parent().children('td.groups').text().trim().split(', '); - if(groups[0]=='') groups.pop(); - var index=groups.indexOf(group); - if(index==-1){ - groups.push(group); - }else{ - groups.splice(index,1); - } - $(this).parent().parent().children('td.groups').text(groups.join(', ')); - } + tr.find('td.groups').append(select); + applyMultiplySelect(select); + $('#content table tr').last().after(tr); }); }); |