Browse Source

Merge pull request #20771 from nextcloud/fix/sharing-reactivity

Do not process the same shares twice
pull/20776/head
Roeland Jago Douma 6 years ago
committed by GitHub
parent
commit
24bb4a05c4
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 14
      apps/files_sharing/js/dist/files_sharing_tab.js
  2. 2
      apps/files_sharing/js/dist/files_sharing_tab.js.map
  3. 22
      apps/files_sharing/src/components/SharingEntryLink.vue
  4. 2
      apps/files_sharing/src/mixins/SharesMixin.js
  5. 6
      apps/files_sharing/src/views/SharingTab.vue

14
apps/files_sharing/js/dist/files_sharing_tab.js
File diff suppressed because it is too large
View File

2
apps/files_sharing/js/dist/files_sharing_tab.js.map
File diff suppressed because it is too large
View File

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

@ -398,15 +398,19 @@ export default {
* @returns {boolean}
*/
hasExpirationDate: {
get: function() {
return this.config.isDefaultExpireDateEnforced || !!this.share.expireDate
get() {
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')
set(enabled) {
let dateString = moment(this.config.defaultExpirationDateString)
if (!dateString.isValid()) {
dateString = moment()
}
this.share.state.expiration = enabled
? dateString.format('YYYY-MM-DD')
: ''
console.debug('Expiration date status', enabled, this.share.expireDate)
},
},
@ -420,11 +424,11 @@ export default {
* @returns {boolean}
*/
isPasswordProtected: {
get: function() {
get() {
return this.config.enforcePasswordForPublicLink
|| !!this.share.password
},
set: async function(enabled) {
async set(enabled) {
// TODO: directly save after generation to make sure the share is always protected
Vue.set(this.share, 'password', enabled ? await this.generatePassword() : '')
Vue.set(this.share, 'newPassword', this.share.password)

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

@ -64,7 +64,7 @@ export default {
* ! This allow vue to make the Share class state reactive
* ! do not remove it ot you'll lose all reactivity here
*/
reactiveState: this.share && this.share.state,
reactiveState: this.share?.state,
SHARE_TYPES: {
SHARE_TYPE_USER: OC.Share.SHARE_TYPE_USER,

6
apps/files_sharing/src/views/SharingTab.vue

@ -189,10 +189,6 @@ export default {
},
},
beforeMount() {
this.getShares()
},
methods: {
/**
* Get the existing shares infos
@ -284,6 +280,8 @@ export default {
this.linkShares = shares.filter(share => share.type === this.SHARE_TYPES.SHARE_TYPE_LINK || share.type === this.SHARE_TYPES.SHARE_TYPE_EMAIL)
this.shares = shares.filter(share => share.type !== this.SHARE_TYPES.SHARE_TYPE_LINK && share.type !== this.SHARE_TYPES.SHARE_TYPE_EMAIL)
console.debug('Processed', this.linkShares.length, 'link share(s)')
console.debug('Processed', this.shares.length, 'share(s)')
}
},

Loading…
Cancel
Save