зеркало из https://github.com/nextcloud/deck.git
fix: Properly show attachment extension
Signed-off-by: Julius Härtl <jus@bitgrid.net>
This commit is contained in:
Родитель
97afe9fa85
Коммит
d5fd80d116
|
@ -24,7 +24,8 @@
|
||||||
<div class="details">
|
<div class="details">
|
||||||
<a>
|
<a>
|
||||||
<div class="filename">
|
<div class="filename">
|
||||||
<span class="basename">{{ attachment.name }}</span>
|
<span>{{ attachmentBasename(attachment) }}</span>
|
||||||
|
<span class="extension">.{{ attachmentExtension(attachment) }}</span>
|
||||||
</div>
|
</div>
|
||||||
<progress :value="attachment.progress" max="100" />
|
<progress :value="attachment.progress" max="100" />
|
||||||
</a>
|
</a>
|
||||||
|
@ -41,7 +42,8 @@
|
||||||
<div class="details">
|
<div class="details">
|
||||||
<a :href="internalLink(attachment)" @click.prevent="showViewer(attachment)">
|
<a :href="internalLink(attachment)" @click.prevent="showViewer(attachment)">
|
||||||
<div class="filename">
|
<div class="filename">
|
||||||
<span class="basename">{{ attachment.data }}</span>
|
<span>{{ attachmentBasename(attachment) }}</span>
|
||||||
|
<span class="extension">.{{ attachmentExtension(attachment) }}</span>
|
||||||
</div>
|
</div>
|
||||||
<div v-if="attachment.deletedAt === 0">
|
<div v-if="attachment.deletedAt === 0">
|
||||||
<span class="filesize">{{ formattedFileSize(attachment.extendedData.filesize) }}</span>
|
<span class="filesize">{{ formattedFileSize(attachment.extendedData.filesize) }}</span>
|
||||||
|
@ -183,6 +185,14 @@ export default {
|
||||||
return t('deck', 'Drop your files to upload')
|
return t('deck', 'Drop your files to upload')
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
attachmentBasename() {
|
||||||
|
return (attachment) => attachment?.extendedData?.info.filename
|
||||||
|
?? (attachment?.name ?? attachment.data).replace(/\.[^/.]+$/, '')
|
||||||
|
},
|
||||||
|
attachmentExtension() {
|
||||||
|
return (attachment) => attachment?.extendedData?.info?.extension
|
||||||
|
?? (attachment?.name ?? attachment.data).split('.').pop()
|
||||||
|
},
|
||||||
},
|
},
|
||||||
watch: {
|
watch: {
|
||||||
cardId: {
|
cardId: {
|
||||||
|
|
|
@ -239,15 +239,18 @@ export default {
|
||||||
},
|
},
|
||||||
addAttachment(attachment) {
|
addAttachment(attachment) {
|
||||||
const asImage = (attachment.type === 'file' && attachment.extendedData.hasPreview) || attachment.extendedData.mimetype.includes('image')
|
const asImage = (attachment.type === 'file' && attachment.extendedData.hasPreview) || attachment.extendedData.mimetype.includes('image')
|
||||||
|
// We need to strip those as text does not support rtl yet, so we cannot insert them separately
|
||||||
|
const stripRTLO = (text) => text.replaceAll('\u202e', '')
|
||||||
|
const fileName = stripRTLO(attachment.extendedData.info.filename) + '.' + stripRTLO(attachment.extendedData.info.extension)
|
||||||
if (this.editor) {
|
if (this.editor) {
|
||||||
this.editor.insertAtCursor(
|
this.editor.insertAtCursor(
|
||||||
asImage
|
asImage
|
||||||
? `<a href="${this.attachmentPreview(attachment)}"><img src="${this.attachmentPreview(attachment)}" alt="${attachment.data}" /></a>`
|
? `<a href="${this.attachmentPreview(attachment)}"><img src="${this.attachmentPreview(attachment)}" alt="${attachment.data}" /></a>`
|
||||||
: `<a href="${this.attachmentPreview(attachment)}">${attachment.data}</a>`,
|
: `<a href="${this.attachmentPreview(attachment)}">${fileName}</a>`,
|
||||||
)
|
)
|
||||||
return
|
return
|
||||||
} else {
|
} else {
|
||||||
const attachmentString = (asImage ? '!' : '') + '[📎 ' + attachment.data + '](' + this.attachmentPreview(attachment) + ')'
|
const attachmentString = (asImage ? '!' : '') + '[📎 ' + fileName + '](' + this.attachmentPreview(attachment) + ')'
|
||||||
const descString = this.$refs.markdownEditor.easymde.value()
|
const descString = this.$refs.markdownEditor.easymde.value()
|
||||||
const newContent = descString + '\n' + attachmentString
|
const newContent = descString + '\n' + attachmentString
|
||||||
this.$refs.markdownEditor.easymde.value(newContent)
|
this.$refs.markdownEditor.easymde.value(newContent)
|
||||||
|
|
Загрузка…
Ссылка в новой задаче