diff options
-rw-r--r-- | settings/ajax/setquota.php | 9 | ||||
-rw-r--r-- | settings/css/settings.css | 3 | ||||
-rw-r--r-- | settings/js/users.js | 105 | ||||
-rw-r--r-- | settings/templates/users.php | 14 | ||||
-rw-r--r-- | settings/users.php | 8 |
5 files changed, 94 insertions, 45 deletions
diff --git a/settings/ajax/setquota.php b/settings/ajax/setquota.php index 7bfc65102c1..e66513e54cc 100644 --- a/settings/ajax/setquota.php +++ b/settings/ajax/setquota.php @@ -11,10 +11,11 @@ $username = $_POST["username"]; $quota=$_POST["quota"]; if($quota!='none' and $quota!='default'){ $quota= OC_Helper::computerFileSize($quota); - $quota=OC_Helper::humanFileSize($quota); -} -if($quota==0){ - $quota='default'; + if($quota==0){ + $quota='default'; + }else{ + $quota=OC_Helper::humanFileSize($quota); + } } // Return Success story diff --git a/settings/css/settings.css b/settings/css/settings.css index a8af839a1e6..b80d7da82c6 100644 --- a/settings/css/settings.css +++ b/settings/css/settings.css @@ -29,6 +29,9 @@ li.selected { background-color:#ddd; } #content>table:not(.nostyle) { margin-top:3em; } table:not(.nostyle) { width:100%; } #rightcontent { padding-left: 1em; } +td.quota { position:relative } +select.quota { position:absolute; left:0px; top:0px; width:10em; } +input.quota-other { display:none; position:absolute; left:0.1em; top:0.1em; width:7em; border:none; -webkit-box-shadow: none -mox-box-shadow:none ; box-shadow:none; } /* APPS */ li { color:#888; } diff --git a/settings/js/users.js b/settings/js/users.js index c9b1d855db0..bfc00138e0e 100644 --- a/settings/js/users.js +++ b/settings/js/users.js @@ -5,6 +5,18 @@ */ $(document).ready(function(){ + function setQuota(uid,quota,ready){ + $.post( + OC.filePath('settings','ajax','setquota.php'), + {username:uid,quota:quota}, + function(result){ + if(ready){ + ready(result.data.quota); + } + } + ); + } + function applyMultiplySelect(element){ var checked=[]; var user=element.data('username'); @@ -82,48 +94,63 @@ $(document).ready(function(){ $('td.password').live('click',function(event){ $(this).children('img').click(); }); - - $('td.quota>img').live('click',function(event){ - event.stopPropagation(); - var img=$(this); - var uid=img.parent().parent().data('uid'); - var input=$('<input>'); - var quota=img.parent().children('span').text(); - if(quota=='None'){ - quota=''; + + $('select.quota').live('change',function(){ + var select=$(this); + var uid=$(this).parent().parent().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(); + other.focus(); } - input.val(quota); - img.css('display','none'); - img.parent().children('span').replaceWith(input); - input.focus(); - input.keypress(function(event) { - if(event.keyCode == 13) { - $(this).parent().attr('data-quota',$(this).val()); - if($(this).val().length>0){ - $.post( - OC.filePath('settings','ajax','setquota.php'), - {username:uid,quota:$(this).val()}, - function(result){ - img.parent().children('span').text(result.data.quota) - $(this).parent().attr('data-quota',result.data.quota); - } - ); - input.blur(); + }); + $('select.quota').each(function(i,select){ + $(select).data('previous',$(select).val()); + }) + + $('input.quota-other').live('change',function(){ + var uid=$(this).parent().parent().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{ - input.blur(); + var option=$('<option/>'); + option.attr('selected','selected').attr('value',quota).text(quota); + select.children().last().before(option); } - } - }); - input.blur(function(){ - var quota=$(this).parent().attr('data-quota'); - $(this).replaceWith($('<span>'+quota+'</span>')); - img.css('display',''); - }); - }); - $('td.quota').live('click',function(event){ - $(this).children('img').click(); + select.val(quota); + other.val(null); + other.hide(); + }); + }else{ + var previous=select.data('previous'); + select.children().attr('selected',null); + select.children().each(function(i,option){ + if($(option).val()==previous){ + $(option).attr('selected','selected'); + } + }); + other.hide(); + } }); + $('input.quota-other').live('blur',function(){ + $(this).change(); + }) + $('#newuser').submit(function(event){ event.preventDefault(); var username=$('#newusername').val(); @@ -166,5 +193,9 @@ $(document).ready(function(){ } applyMultiplySelect(select); $('#content table tbody').last().after(tr); + + tr.find('select.quota option').attr('selected',null); + tr.find('select.quota option').first().attr('selected','selected'); + tr.find('select.quota').data('previous','default'); }); }); diff --git a/settings/templates/users.php b/settings/templates/users.php index fde4cfb9aed..4d75b7a06db 100644 --- a/settings/templates/users.php +++ b/settings/templates/users.php @@ -48,9 +48,17 @@ foreach($_["groups"] as $group) { <?php endforeach;?> </select> </td> - <td class="quota" data-quota="<?php echo $user['quota']?>"> - <span><?php echo ($user['quota']>0)?$user['quota']:'None';?></span> - <img class="svg action" src="<?php echo image_path('core','actions/rename.svg')?>" alt="set new password" title="set quota" /> + <td class="quota"> + <select class='quota'> + <?php foreach($_['quota_preset'] as $preset):?> + <option <?php if($user['quota']==$preset) echo 'selected="selected"';?> value='<?php echo $preset;?>'><?php echo $preset;?></option> + <?php endforeach;?> + <?php if(array_search($user['quota'],$_['quota_preset'])===false):?> + <option selected="selected" value='<?php echo $user['quota'];?>'><?php echo $user['quota'];?></option> + <?php endif;?> + <option value='other'><?php echo $l->t('Other');?>...</option> + </select> + <input class='quota-other'></input> </td> <td class="remove"> <?php if($user['name']!=OC_User::getUser()):?> diff --git a/settings/users.php b/settings/users.php index e5dcc049481..1ae75752115 100644 --- a/settings/users.php +++ b/settings/users.php @@ -18,17 +18,23 @@ $users = array(); $groups = array(); foreach( OC_User::getUsers() as $i ){ - $users[] = array( "name" => $i, "groups" => join( ", ", OC_Group::getUserGroups( $i ) ),'quota'=>OC_Preferences::getValue($i,'files','quota',0)); + $users[] = array( "name" => $i, "groups" => join( ", ", OC_Group::getUserGroups( $i ) ),'quota'=>OC_Preferences::getValue($i,'files','quota','default')); } foreach( OC_Group::getGroups() as $i ){ // Do some more work here soon $groups[] = array( "name" => $i ); } +$quotaPreset=OC_Appconfig::getValue('files','quota_preset','default,none,1 GB, 5 GB, 10 GB'); +$quotaPreset=explode(',',$quotaPreset); +foreach($quotaPreset as &$preset){ + $preset=trim($preset); +} $tmpl = new OC_Template( "settings", "users", "user" ); $tmpl->assign( "users", $users ); $tmpl->assign( "groups", $groups ); +$tmpl->assign( 'quota_preset', $quotaPreset); $tmpl->printPage(); ?> |