diff options
author | Björn Schießle <schiessle@owncloud.com> | 2014-05-14 12:54:27 -0400 |
---|---|---|
committer | Björn Schießle <schiessle@owncloud.com> | 2014-05-14 12:54:27 -0400 |
commit | dab3cb65cf16d78796ce8dc23fa1f72aa9846b7e (patch) | |
tree | e9c60ed1ecab0cb41791e48523573b012537173d | |
parent | 4c19acf09be85d644b8ad6f4a031d0fdfa8444e4 (diff) | |
parent | 737be1a10f64200483560bf8ce533d74e1c3b7b0 (diff) | |
download | nextcloud-server-dab3cb65cf16d78796ce8dc23fa1f72aa9846b7e.tar.gz nextcloud-server-dab3cb65cf16d78796ce8dc23fa1f72aa9846b7e.zip |
Merge pull request #8522 from owncloud/sharing_ux_improvements
Sharing ux improvements
-rw-r--r-- | core/css/share.css | 2 | ||||
-rw-r--r-- | core/js/config.php | 15 | ||||
-rw-r--r-- | core/js/share.js | 22 | ||||
-rw-r--r-- | settings/css/settings.css | 3 | ||||
-rw-r--r-- | settings/js/admin.js | 8 | ||||
-rw-r--r-- | settings/templates/admin.php | 44 |
6 files changed, 69 insertions, 25 deletions
diff --git a/core/css/share.css b/core/css/share.css index 4ae3b77757e..1527a3a0c0f 100644 --- a/core/css/share.css +++ b/core/css/share.css @@ -11,7 +11,7 @@ margin-right:112px; position:absolute; right:0; - width:320px; + width:420px; z-index:500; padding:16px; } diff --git a/core/js/config.php b/core/js/config.php index 7e23f3e2e41..9169cc14a7b 100644 --- a/core/js/config.php +++ b/core/js/config.php @@ -25,6 +25,13 @@ foreach(OC_App::getEnabledApps() as $app) { $apps_paths[$app] = OC_App::getAppWebPath($app); } +$defaultExpireDateEnabled = \OCP\Config::getAppValue('core', 'shareapi_default_expire_date', 'no'); +$defaultExpireDate = $enforceDefaultExpireDate = null; +if ($defaultExpireDateEnabled === 'yes') { + $defaultExpireDate = \OCP\Config::getAppValue('core', 'shareapi_expire_after_n_days', '7'); + $enforceDefaultExpireDate = \OCP\Config::getAppValue('core', 'shareapi_enforce_expire_date', 'no'); +} + $array = array( "oc_debug" => (defined('DEBUG') && DEBUG) ? 'true' : 'false', "oc_isadmin" => OC_User::isAdminUser(OC_User::getUser()) ? 'true' : 'false', @@ -67,6 +74,14 @@ $array = array( 'versionstring' => OC_Util::getVersionString(), ) ), + "oc_appconfig" => json_encode( + array("core" => array( + 'defaultExpireDateEnabled' => $defaultExpireDateEnabled, + 'defaultExpireDate' => $defaultExpireDate, + 'defaultExpireDateEnforced' => $enforceDefaultExpireDate, + ) + ) + ), "oc_defaults" => json_encode( array( 'entity' => $defaults->getEntity(), diff --git a/core/js/share.js b/core/js/share.js index 54da171b726..9ceca85bff7 100644 --- a/core/js/share.js +++ b/core/js/share.js @@ -219,7 +219,18 @@ OC.Share={ html += '<div id="link">'; html += '<input type="checkbox" name="linkCheckbox" id="linkCheckbox" value="1" /><label for="linkCheckbox">'+t('core', 'Share link')+'</label>'; html += '<br />'; + + var defaultExpireMessage = ''; + if ((itemType === 'folder' || itemType === 'file') && oc_appconfig.core.defaultExpireDateEnabled === 'yes') { + if (oc_appconfig.core.defaultExpireDateEnforced === 'yes') { + defaultExpireMessage = t('core', 'The public link will expire no later than {days} days after it is created', {'days': oc_appconfig.core.defaultExpireDate}) + '<br/>'; + } else { + defaultExpireMessage = t('core', 'By default the public link will expire after {days} days', {'days': oc_appconfig.core.defaultExpireDate}) + '<br/>'; + } + } + html += '<input id="linkText" type="text" readonly="readonly" />'; + html += '<input type="checkbox" name="showPassword" id="showPassword" value="1" style="display:none;" /><label for="showPassword" style="display:none;">'+t('core', 'Password protect')+'</label>'; html += '<div id="linkPass">'; html += '<input id="linkPassText" type="password" placeholder="'+t('core', 'Password')+'" />'; @@ -239,6 +250,7 @@ OC.Share={ html += '<div id="expiration">'; html += '<input type="checkbox" name="expirationCheckbox" id="expirationCheckbox" value="1" /><label for="expirationCheckbox">'+t('core', 'Set expiration date')+'</label>'; html += '<input id="expirationDate" type="text" placeholder="'+t('core', 'Expiration date')+'" style="display:none; width:90%;" />'; + html += '<div id="defaultExpireMessage">'+defaultExpireMessage+'</div>'; html += '</div>'; dropDownEl = $(html); dropDownEl = dropDownEl.appendTo(appendTo); @@ -490,19 +502,20 @@ OC.Share={ $('#linkPassText').attr('placeholder', '**********'); } $('#expiration').show(); + $('#defaultExpireMessage').show(); $('#emailPrivateLink #email').show(); $('#emailPrivateLink #emailButton').show(); $('#allowPublicUploadWrapper').show(); }, hideLink:function() { $('#linkText').hide('blind'); + $('#defaultExpireMessage').hide(); $('#showPassword').hide(); $('#showPassword+label').hide(); $('#linkPass').hide(); $('#emailPrivateLink #email').hide(); $('#emailPrivateLink #emailButton').hide(); $('#allowPublicUploadWrapper').hide(); - $('#expirationDate').hide(); }, dirname:function(path) { return path.replace(/\\/g,'/').replace(/\/[^\/]*$/, ''); @@ -734,6 +747,9 @@ $(document).ready(function() { OC.dialogs.alert(t('core', 'Error unsetting expiration date'), t('core', 'Error')); } $('#expirationDate').hide('blind'); + if (oc_appconfig.core.defaultExpireDateEnforced === 'no') { + $('#defaultExpireMessage'). show('blind'); + } }); } }); @@ -756,6 +772,10 @@ $(document).ready(function() { expirationDateField.tipsy({gravity: 'n', fade: true}); expirationDateField.tipsy('show'); expirationDateField.addClass('error'); + } else { + if (oc_appconfig.core.defaultExpireDateEnforced === 'no') { + $('#defaultExpireMessage'). hide('blind'); + } } }); }); diff --git a/settings/css/settings.css b/settings/css/settings.css index 5d8f9a7541c..2056e567b38 100644 --- a/settings/css/settings.css +++ b/settings/css/settings.css @@ -132,7 +132,8 @@ table.grid td.date{ span.securitywarning {color:#C33; font-weight:bold; } span.connectionwarning {color:#933; font-weight:bold; } table.shareAPI td { padding-bottom: 0.8em; } -table.shareAPI input#shareapi_expire_after_n_days {width: 25px;} +table.shareAPI input#shareapiExpireAfterNDays {width: 25px;} +table.shareAPI .indent { padding-left: 2em; } #mail_settings p label:first-child { display: inline-block; diff --git a/settings/js/admin.js b/settings/js/admin.js index c04c0505deb..cd11e68442a 100644 --- a/settings/js/admin.js +++ b/settings/js/admin.js @@ -31,6 +31,14 @@ $(document).ready(function(){ OC.AppConfig.setValue('core', $(this).attr('name'), value); }); + $('#shareapiDefaultExpireDate').change(function() { + $("#setDefaultExpireDate").toggleClass('hidden', !this.checked); + }); + + $('#allowLinks').change(function() { + $("#publicLinkSettings").toggleClass('hidden', !this.checked); + }); + $('#security').change(function(){ $.post(OC.filePath('settings','ajax','setsecurity.php'), { enforceHTTPS: $('#forcessl').val() },function(){} ); }); diff --git a/settings/templates/admin.php b/settings/templates/admin.php index d8a800ca202..4d453b01270 100644 --- a/settings/templates/admin.php +++ b/settings/templates/admin.php @@ -217,15 +217,31 @@ if (!$_['internetconnectionworking']) { <input type="checkbox" name="shareapi_allow_links" id="allowLinks" value="1" <?php if ($_['allowLinks'] === 'yes') print_unescaped('checked="checked"'); ?> /> <label for="allowLinks"><?php p($l->t('Allow links'));?></label><br/> - <em><?php p($l->t('Allow users to share items to the public with links')); ?></em> - </td> - </tr> - <tr> - <td <?php if ($_['shareAPIEnabled'] == 'no') print_unescaped('class="hidden"');?>> + + <div <?php ($_['allowLinks'] === 'yes') ? print_unescaped('class="indent"') : print_unescaped('class="hidden indent"');?> id="publicLinkSettings"> + <input type="checkbox" name="shareapi_allow_public_upload" id="allowPublicUpload" value="1" <?php if ($_['allowPublicUpload'] == 'yes') print_unescaped('checked="checked"'); ?> /> <label for="allowPublicUpload"><?php p($l->t('Allow public uploads'));?></label><br/> - <em><?php p($l->t('Allow users to enable others to upload into their publicly shared folders')); ?></em> + + <input type="checkbox" name="shareapi_default_expire_date" id="shareapiDefaultExpireDate" + value="1" <?php if ($_['shareDefaultExpireDateSet'] === 'yes') print_unescaped('checked="checked"'); ?> /> + <label for="shareapiDefaultExpireDate"><?php p($l->t('Set default expiration date'));?></label><br/> + <div id="setDefaultExpireDate" <?php ($_['shareDefaultExpireDateSet'] === 'no') ? print_unescaped('class="hidden indent"') : print_unescaped('class="indent"');?>> + <?php p($l->t( 'Expire after ' )); ?> + <input type="text" name='shareapi_expire_after_n_days' id="shareapiExpireAfterNDays" placeholder="<?php p('7')?>" + value='<?php p($_['shareExpireAfterNDays']) ?>' /> + <?php p($l->t( 'days' )); ?> + <input type="checkbox" name="shareapi_enforce_expire_date" id="shareapiEnforceExpireDate" + value="1" <?php if ($_['shareEnforceExpireDate'] == 'yes') print_unescaped('checked="checked"'); ?> /> + <label for="shareapiEnforceExpireDate"><?php p($l->t('Enforce expiration date'));?></label><br/> + </div> + + </div> + <em><?php p($l->t('Allow users to share items to the public with links')); ?></em> + + + </td> </tr> <tr> @@ -255,22 +271,6 @@ if (!$_['internetconnectionworking']) { </td> </tr> - <tr> - <td <?php if ($_['shareAPIEnabled'] == 'no') print_unescaped('class="hidden"');?>> - <input type="checkbox" name="shareapi_default_expire_date" id="shareapi_default_expire_date" - value="1" <?php if ($_['shareDefaultExpireDateSet'] == 'yes') print_unescaped('checked="checked"'); ?> /> - <label for="shareapi_default_expire_date"><?php p($l->t('Set default expiration date'));?></label><br/> - <?php p($l->t( 'Expire after ' )); ?> - <input type="text" name='shareapi_expire_after_n_days' id="shareapi_expire_after_n_days" placeholder="<?php p('7')?>" - value='<?php p($_['shareExpireAfterNDays']) ?>' /> - <?php p($l->t( 'days' )); ?> - <input type="checkbox" name="shareapi_enforce_expire_date" id="shareapi_enforce_expire_date" - value="1" <?php if ($_['shareEnforceExpireDate'] == 'yes') print_unescaped('checked="checked"'); ?> /> - <label for="shareapi_enforce_expire_date"><?php p($l->t('Enforce expiration date'));?></label><br/> - <em><?php p($l->t('Expire shares by default after N days')); ?></em> - </td> - </tr> - </table> </div> |