Add settings front and split sharing entry config

Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
This commit is contained in:
John Molakvoæ (skjnldsv) 2019-11-13 15:43:11 +01:00 committed by Roeland Jago Douma
parent efce1fdfac
commit 444c9b6744
No known key found for this signature in database
GPG Key ID: F941078878347C0C
6 changed files with 102 additions and 25 deletions

View File

@ -213,6 +213,28 @@ export default {
set: function(checked) {
this.updatePermissions(this.canEdit, checked)
}
},
/**
* Does the current share have an expiration date
* @returns {boolean}
*/
hasExpirationDate: {
get: function() {
return this.config.isDefaultInternalExpireDateEnforced || !!this.share.expireDate
},
set: function(enabled) {
this.share.expireDate = enabled
? this.config.defaultInternalExpirationDateString !== ''
? this.config.defaultInternalExpirationDateString
: moment().format('YYYY-MM-DD')
: ''
}
},
dateMaxEnforced() {
return this.config.isDefaultInternalExpireDateEnforced
&& moment().add(1 + this.config.defaultInternalExpireDate, 'days')
}
},

View File

@ -379,6 +379,28 @@ export default {
return t('files_sharing', 'Share link')
},
/**
* Does the current share have an expiration date
* @returns {boolean}
*/
hasExpirationDate: {
get: function() {
return this.config.isDefaultExpireDateEnforced || !!this.share.expireDate
},
set: function(enabled) {
this.share.expireDate = enabled
? this.config.defaultExpirationDateString !== ''
? this.config.defaultExpirationDateString
: moment().format('YYYY-MM-DD')
: ''
}
},
dateMaxEnforced() {
return this.config.isDefaultExpireDateEnforced
&& moment().add(1 + this.config.defaultExpireDate, 'days')
},
/**
* Is the current share password protected ?
* @returns {boolean}

View File

@ -82,23 +82,6 @@ export default {
computed: {
/**
* Does the current share have an expiration date
* @returns {boolean}
*/
hasExpirationDate: {
get: function() {
return this.config.isDefaultExpireDateEnforced || !!this.share.expireDate
},
set: function(enabled) {
this.share.expireDate = enabled
? this.config.defaultExpirationDateString !== ''
? this.config.defaultExpirationDateString
: moment().format('YYYY-MM-DD')
: ''
}
},
/**
* Does the current share have a note
* @returns {boolean}
@ -118,11 +101,6 @@ export default {
return moment().add(1, 'days')
},
dateMaxEnforced() {
return this.config.isDefaultExpireDateEnforced
&& moment().add(1 + this.config.defaultExpireDate, 'days')
},
/**
* Datepicker lang values
* https://github.com/nextcloud/nextcloud-vue/pull/146

View File

@ -58,7 +58,7 @@ export default class Config {
}
/**
* Get the default expiration date as string
* Get the default link share expiration date as string
*
* @returns {string}
* @readonly
@ -75,6 +75,24 @@ export default class Config {
return expireDateString
}
/**
* Get the default internal expiration date as string
*
* @returns {string}
* @readonly
* @memberof Config
*/
get defaultInternalExpirationDateString() {
let expireDateString = ''
if (this.isDefaultInternalExpireDateEnabled) {
const date = window.moment.utc()
const expireAfterDays = this.defaultInternalExpireDate
date.add(expireAfterDays, 'days')
expireDateString = date.format('YYYY-MM-DD')
}
return expireDateString
}
/**
* Are link shares password-enforced ?
*
@ -119,6 +137,28 @@ export default class Config {
return OC.appConfig.core.defaultExpireDateEnabled === true
}
/**
* Is internal shares expiration enforced ?
*
* @returns {boolean}
* @readonly
* @memberof Config
*/
get isDefaultInternalExpireDateEnforced() {
return OC.appConfig.core.defaultInternalExpireDateEnforced === true
}
/**
* Is there a default expiration date for new internal shares ?
*
* @returns {boolean}
* @readonly
* @memberof Config
*/
get isDefaultInternalExpireDateEnabled() {
return OC.appConfig.core.defaultInternalExpireDateEnabled === true
}
/**
* Are users on this server allowed to send shares to other servers ?
*
@ -142,7 +182,7 @@ export default class Config {
}
/**
* Get the default days to expiration
* Get the default days to link shares expiration
*
* @returns {int}
* @readonly
@ -152,6 +192,17 @@ export default class Config {
return OC.appConfig.core.defaultExpireDate
}
/**
* Get the default days to internal shares expiration
*
* @returns {int}
* @readonly
* @memberof Config
*/
get defaultInternalExpireDate() {
return OC.appConfig.core.defaultInternalExpireDate
}
/**
* Is resharing allowed ?
*

View File

@ -86,6 +86,10 @@ $(document).ready(function(){
$("#setDefaultExpireDate").toggleClass('hidden', !this.checked);
});
$('#shareapiDefaultInternalExpireDate').change(function() {
$("#setDefaultInternalExpireDate").toggleClass('hidden', !this.checked);
});
$('#publicShareDisclaimer').change(function() {
$("#publicShareDisclaimerText").toggleClass('hidden', !this.checked);
if(!this.checked) {

View File

@ -38,7 +38,7 @@
<label for="shareAPIEnabled"><?php p($l->t('Allow apps to use the Share API'));?></label><br/>
</p>
<p id="internalShareSettings" class="indent" <?php if ($_['shareAPIEnabled'] === 'no') p('hidden'); ?>">
<p id="internalShareSettings" class="indent <?php if ($_['shareAPIEnabled'] === 'no') p('hidden'); ?>">
<input type="checkbox" name="shareapi_default_internal_expire_date" id="shareapiDefaultInternalExpireDate" class="checkbox"
value="1" <?php if ($_['shareDefaultInternalExpireDateSet'] === 'yes') print_unescaped('checked="checked"'); ?> />
<label for="shareapiDefaultInternalExpireDate"><?php p($l->t('Set default expiration date for non-link shares'));?></label><br/>