aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBjörn Schießle <schiessle@owncloud.com>2014-05-14 12:54:27 -0400
committerBjörn Schießle <schiessle@owncloud.com>2014-05-14 12:54:27 -0400
commitdab3cb65cf16d78796ce8dc23fa1f72aa9846b7e (patch)
treee9c60ed1ecab0cb41791e48523573b012537173d
parent4c19acf09be85d644b8ad6f4a031d0fdfa8444e4 (diff)
parent737be1a10f64200483560bf8ce533d74e1c3b7b0 (diff)
downloadnextcloud-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.css2
-rw-r--r--core/js/config.php15
-rw-r--r--core/js/share.js22
-rw-r--r--settings/css/settings.css3
-rw-r--r--settings/js/admin.js8
-rw-r--r--settings/templates/admin.php44
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>