Skip to content

Commit 47f8483

Browse files
authored
Merge pull request #2021 from nextcloud/bugfix/noid/description
2 parents ba26b3e + cdc98a4 commit 47f8483

2 files changed

Lines changed: 26 additions & 18 deletions

File tree

src/components/card/CardSidebar.vue

Lines changed: 24 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -132,11 +132,6 @@
132132
href="https://deck.readthedocs.io/en/latest/Markdown/"
133133
target="_blank"
134134
class="icon icon-info" />
135-
<Actions v-if="canEdit">
136-
<ActionButton v-if="descriptionEditing" icon="icon-attach" @click="showAttachmentModal()">
137-
{{ t('deck', 'Add Attachment') }}
138-
</ActionButton>
139-
</Actions>
140135
<Actions v-if="canEdit">
141136
<ActionButton v-if="!descriptionEditing" icon="icon-rename" @click="showEditor()">
142137
{{ t('deck', 'Edit description') }}
@@ -145,17 +140,24 @@
145140
{{ t('deck', 'View description') }}
146141
</ActionButton>
147142
</Actions>
143+
<Actions v-if="canEdit">
144+
<ActionButton v-if="descriptionEditing" icon="icon-attach" @click="showAttachmentModal()">
145+
{{ t('deck', 'Add Attachment') }}
146+
</ActionButton>
147+
</Actions>
148148
</h5>
149149

150150
<div v-if="!descriptionEditing"
151151
id="description-preview"
152152
@click="clickedPreview"
153153
v-html="renderedDescription" />
154154
<VueEasymde v-else
155+
:key="copiedCard.id"
155156
ref="markdownEditor"
156-
:value="copiedCard.description"
157+
v-model="copiedCard.description"
157158
:configs="mdeConfig"
158-
@input="updateDescription" />
159+
@input="updateDescription"
160+
@blur="saveDescription" />
159161
</AppSidebarTab>
160162

161163
<AppSidebarTab id="attachments"
@@ -356,11 +358,15 @@ export default {
356358
this.initialize()
357359
},
358360
methods: {
359-
initialize() {
361+
async initialize() {
360362
if (!this.currentCard) {
361363
return
362364
}
363365
366+
if (this.copiedCard) {
367+
await this.saveDescription()
368+
}
369+
364370
this.copiedCard = JSON.parse(JSON.stringify(this.currentCard))
365371
this.allLabels = this.currentCard.labels
366372
@@ -431,20 +437,21 @@ export default {
431437
this.copiedCard.duedate = null
432438
this.$store.dispatch('updateCardDue', this.copiedCard)
433439
},
440+
async saveDescription() {
441+
if (!Object.prototype.hasOwnProperty.call(this.copiedCard, 'descriptionLastEdit') || this.descriptionSaving) {
442+
return
443+
}
444+
this.descriptionSaving = true
445+
await this.$store.dispatch('updateCardDesc', this.copiedCard)
446+
delete this.copiedCard.descriptionLastEdit
447+
this.descriptionSaving = false
448+
},
434449
updateDescription(text) {
435-
this.copiedCard.description = text
436450
this.copiedCard.descriptionLastEdit = Date.now()
437451
clearTimeout(this.descriptionSaveTimeout)
438452
this.descriptionSaveTimeout = setTimeout(async() => {
439-
if (!Object.prototype.hasOwnProperty.call(this.copiedCard, 'descriptionLastEdit') || this.descriptionSaving) {
440-
return
441-
}
442-
this.descriptionSaving = true
443-
await this.$store.dispatch('updateCardDesc', this.copiedCard)
444-
delete this.copiedCard.descriptionLastEdit
445-
this.descriptionSaving = false
453+
await this.saveDescription()
446454
}, 2500)
447-
448455
},
449456
450457
closeSidebar() {

webpack.common.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@ module.exports = {
1010
filename: '[name].js',
1111
path: __dirname + '/js',
1212
publicPath: '/js/',
13-
jsonpFunction: 'webpackJsonpOCADeck'
13+
jsonpFunction: 'webpackJsonpOCADeck',
14+
chunkFilename: '[name].js?v=[contenthash]',
1415
},
1516
module: {
1617
rules: [

0 commit comments

Comments
 (0)