diff --git a/apps/files_sharing/src/components/SharingEntryLink.vue b/apps/files_sharing/src/components/SharingEntryLink.vue index 3c54a3f8ae..cb02e289b7 100644 --- a/apps/files_sharing/src/components/SharingEntryLink.vue +++ b/apps/files_sharing/src/components/SharingEntryLink.vue @@ -242,9 +242,9 @@ }" :class="{ error: errors.note}" :disabled="saving" - :value.sync="share.note" + :value="share.note" icon="icon-edit" - @update:value="debounceQueueUpdate('note')" /> + @update:value="onNoteChange" /> @@ -733,7 +733,7 @@ export default { */ onPasswordSubmit() { if (this.hasUnsavedPassword) { - this.share.password = this.share.newPassword + this.share.password = this.share.newPassword.trim() this.queueUpdate('password') } }, diff --git a/apps/files_sharing/src/mixins/SharesMixin.js b/apps/files_sharing/src/mixins/SharesMixin.js index c8ffbd6f5c..19b2a9a687 100644 --- a/apps/files_sharing/src/mixins/SharesMixin.js +++ b/apps/files_sharing/src/mixins/SharesMixin.js @@ -88,12 +88,12 @@ export default { */ hasNote: { get: function() { - return !!this.share.note + return this.share.note !== '' }, set: function(enabled) { this.share.note = enabled - ? t('files_sharing', 'Enter a note for the share recipient') - : '' + ? null // enabled but user did not changed the content yet + : '' // empty = no note = disabled }, }, @@ -117,10 +117,10 @@ export default { // fallback to default in case of unavailable data return { days: window.dayNamesShort - ? window.dayNamesShort // provided by nextcloud + ? window.dayNamesShort // provided by nextcloud : ['Sun.', 'Mon.', 'Tue.', 'Wed.', 'Thu.', 'Fri.', 'Sat.'], months: window.monthNamesShort - ? window.monthNamesShort // provided by nextcloud + ? window.monthNamesShort // provided by nextcloud : ['Jan.', 'Feb.', 'Mar.', 'Apr.', 'May.', 'Jun.', 'Jul.', 'Aug.', 'Sep.', 'Oct.', 'Nov.', 'Dec.'], placeholder: { date: 'Select Date', // TODO: Translate @@ -182,6 +182,16 @@ export default { this.queueUpdate('expireDate') }, + /** + * When the note change, we trim, save and dispatch + * + * @param {string} note the note + */ + onNoteChange: debounce(function(note) { + this.share.note = note.trim() + this.queueUpdate('note') + }, 500), + /** * Delete share button handler */ diff --git a/apps/files_sharing/src/models/Share.js b/apps/files_sharing/src/models/Share.js index 13b68ad68b..35a9511954 100644 --- a/apps/files_sharing/src/models/Share.js +++ b/apps/files_sharing/src/models/Share.js @@ -250,7 +250,7 @@ export default class Share { * @memberof Share */ set note(note) { - this.#share.note = note.trim() + this.#share.note = note } /** @@ -303,7 +303,7 @@ export default class Share { * @memberof Share */ set password(password) { - this.#share.password = password.trim() + this.#share.password = password } // SHARED ITEM DATA --------------------------------------------- diff --git a/apps/files_sharing/src/views/SharingLinkList.vue b/apps/files_sharing/src/views/SharingLinkList.vue index 20789f7211..1fcfbecd4c 100644 --- a/apps/files_sharing/src/views/SharingLinkList.vue +++ b/apps/files_sharing/src/views/SharingLinkList.vue @@ -21,7 +21,7 @@ -->