Browse Source

Add settings front and split sharing entry config

Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
pull/17725/head
John Molakvoæ (skjnldsv) 6 years ago
committed by Roeland Jago Douma
parent
commit
444c9b6744
No known key found for this signature in database GPG Key ID: F941078878347C0C
  1. 22
      apps/files_sharing/src/components/SharingEntry.vue
  2. 22
      apps/files_sharing/src/components/SharingEntryLink.vue
  3. 22
      apps/files_sharing/src/mixins/SharesMixin.js
  4. 55
      apps/files_sharing/src/services/ConfigService.js
  5. 4
      apps/settings/js/admin.js
  6. 2
      apps/settings/templates/settings/admin/sharing.php

22
apps/files_sharing/src/components/SharingEntry.vue

@ -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')
}
},

22
apps/files_sharing/src/components/SharingEntryLink.vue

@ -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}

22
apps/files_sharing/src/mixins/SharesMixin.js

@ -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

55
apps/files_sharing/src/services/ConfigService.js

@ -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 ?
*

4
apps/settings/js/admin.js

@ -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) {

2
apps/settings/templates/settings/admin/sharing.php

@ -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/>

Loading…
Cancel
Save