margin: 0 auto;
}
+#emptycontent.has-disclaimer {
+ margin-top: 10vh;
+}
+
#public-upload #emptycontent h2 {
margin: 10px 0 5px 0;
}
padding-left: 18px;
margin-right: 7px;
}
+
+
+.disclaimer {
+ margin: -20px auto 30px;
+ max-width: 400px;
+ text-align: left;
+}
\ No newline at end of file
$shareTmpl['previewEnabled'] = $this->config->getSystemValue('enable_previews', true);
$shareTmpl['previewMaxX'] = $this->config->getSystemValue('preview_max_x', 1024);
$shareTmpl['previewMaxY'] = $this->config->getSystemValue('preview_max_y', 1024);
+ $shareTmpl['disclaimer'] = $this->config->getAppValue('core', 'shareapi_public_link_disclaimertext', null);
// Load files we need
\OCP\Util::addScript('files', 'file-upload');
<?php } else { ?>
<input type="hidden" id="upload-only-interface" value="1"/>
<div id="public-upload">
- <div id="emptycontent" class="">
+ <div id="emptycontent" class="<?php if (!empty($_['disclaimer'])) { ?>has-disclaimer<?php } ?>">
<div id="displayavatar"><div class="avatardiv"></div></div>
<h2><?php p($l->t('Upload files to %s', [$_['shareOwner']])) ?></h2>
<p><span class="icon-folder"></span> <?php p($_['filename']) ?></p>
+ <?php if (!empty($_['disclaimer'])) { ?>
+ <p class="disclaimer"><?php p($_['disclaimer']); ?></p>
+ <?php } ?>
<input type="file" name="files[]" class="hidden" multiple>
<a href="#" class="button icon-upload"><?php p($l->t('Select or drop files')) ?></a>
'shareEnforceExpireDate' => $this->config->getAppValue('core', 'shareapi_enforce_expire_date', 'no'),
'shareExcludeGroups' => $this->config->getAppValue('core', 'shareapi_exclude_groups', 'no') === 'yes' ? true : false,
'shareExcludedGroupsList' => $excludeGroupsList,
+ 'publicShareDisclaimerText' => $this->config->getAppValue('core', 'shareapi_public_link_disclaimertext', null),
];
return new TemplateResponse('settings', 'admin/sharing', $parameters, '');
display: inline-block;
}
+#publicShareDisclaimerText {
+ width: calc(100% - 23px); /* 20 px left margin, 3 px right margin */
+ max-width: 600px;
+ height: 150px;
+ margin-left: 20px;
+ box-sizing: border-box;
+}
+
/* correctly display help icons next to headings */
.icon-info {
padding: 11px 20px;
}
});
- $('#shareAPI input:not(#excludedGroups)').change(function() {
+ $('#shareAPI input:not(.noJSAutoUpdate)').change(function() {
var value = $(this).val();
if ($(this).attr('type') === 'checkbox') {
if (this.checked) {
$("#setDefaultExpireDate").toggleClass('hidden', !this.checked);
});
+ $('#publicShareDisclaimer').change(function() {
+ $("#publicShareDisclaimerText").toggleClass('hidden', !this.checked);
+ if(!this.checked) {
+ savePublicShareDisclaimerText('');
+ }
+ });
+
+ var savePublicShareDisclaimerText = _.debounce(function(value) {
+ var data = {
+ app:'core',
+ key:'shareapi_public_link_disclaimertext'
+ };
+ if (_.isString(value) && value !== '') {
+ data['action'] = 'setValue';
+ data['value'] = value;
+ } else {
+ data['action'] = 'deleteKey';
+ $('#publicShareDisclaimerText').val('');
+ }
+
+ OC.msg.startSaving('#publicShareDisclaimerStatus');
+ $.post(
+ OC.AppConfig.url,
+ data,
+ function(result){
+ if(result.status === 'success'){
+ OC.msg.finishedSuccess('#publicShareDisclaimerStatus', t('core', 'Saved'))
+ } else {
+ OC.msg.finishedError('#publicShareDisclaimerStatus', t('core', 'Not saved'))
+ }
+ },
+ 'json'
+ );
+ }, 500);
+
+ $('#publicShareDisclaimerText').on('change, keyup', function() {
+ savePublicShareDisclaimerText(this.value);
+ });
+
$('#allowLinks').change(function() {
$("#publicLinkSettings").toggleClass('hidden', !this.checked);
$('#setDefaultExpireDate').toggleClass('hidden', !(this.checked && $('#shareapiDefaultExpireDate')[0].checked));
<label for="shareapiExcludeGroups"><?php p($l->t('Exclude groups from sharing'));?></label><br/>
</p>
<p id="selectExcludedGroups" class="indent <?php if (!$_['shareExcludeGroups'] || $_['shareAPIEnabled'] === 'no') p('hidden'); ?>">
- <input name="shareapi_exclude_groups_list" type="hidden" id="excludedGroups" value="<?php p($_['shareExcludedGroupsList']) ?>" style="width: 400px"/>
+ <input name="shareapi_exclude_groups_list" type="hidden" id="excludedGroups" value="<?php p($_['shareExcludedGroupsList']) ?>" style="width: 400px" class="noJSAutoUpdate"/>
<br />
<em><?php p($l->t('These groups will still be able to receive shares, but not to initiate them.')); ?></em>
</p>
<?php if ($_['allowShareDialogUserEnumeration'] === 'yes') print_unescaped('checked="checked"'); ?> />
<label for="shareapi_allow_share_dialog_user_enumeration"><?php p($l->t('Allow username autocompletion in share dialog. If this is disabled the full username needs to be entered.'));?></label><br />
</p>
+ <p>
+ <input type="checkbox" id="publicShareDisclaimer" class="checkbox noJSAutoUpdate"
+ <?php if ($_['publicShareDisclaimerText'] !== null) print_unescaped('checked="checked"'); ?> />
+ <label for="publicShareDisclaimer"><?php p($l->t('Show disclaimer text on the public link upload page. (Only shown when the file list is hidden.)'));?></label>
+ <span id="publicShareDisclaimerStatus" class="msg" style="display:none"></span>
+ <br/>
+ <textarea placeholder="This text will be shown on the public link upload page when the file list is hidden." id="publicShareDisclaimerText" <?php if ($_['publicShareDisclaimerText'] === null) { print_unescaped('class="hidden"'); } ?>><?php p($_['publicShareDisclaimerText']) ?></textarea>
+ </p>
</div>
->method('getAppValue')
->with('core', 'shareapi_exclude_groups', 'no')
->willReturn('no');
+ $this->config
+ ->expects($this->at(13))
+ ->method('getAppValue')
+ ->with('core', 'shareapi_public_link_disclaimertext', null)
+ ->willReturn('Lorem ipsum');
$expected = new TemplateResponse(
'settings',
'shareEnforceExpireDate' => 'no',
'shareExcludeGroups' => false,
'shareExcludedGroupsList' => '',
+ 'publicShareDisclaimer' => 'Lorem ipsum',
],
''
);
->method('getAppValue')
->with('core', 'shareapi_exclude_groups', 'no')
->willReturn('yes');
+ $this->config
+ ->expects($this->at(13))
+ ->method('getAppValue')
+ ->with('core', 'shareapi_public_link_disclaimertext', null)
+ ->willReturn('Lorem ipsum');
$expected = new TemplateResponse(
'settings',
'shareEnforceExpireDate' => 'no',
'shareExcludeGroups' => true,
'shareExcludedGroupsList' => 'NoSharers|OtherNoSharers',
+ 'publicShareDisclaimer' => 'Lorem ipsum',
],
''
);