Skip to content

Commit 12d9c1c

Browse files
Merge pull request #45911 from nextcloud/backport/45900/stable29
[stable29] fix(files_versions): Use `NcDateTime` for proper translated version dates
2 parents c2be5b2 + c4fb357 commit 12d9c1c

3 files changed

Lines changed: 38 additions & 30 deletions

File tree

apps/files_versions/src/components/Version.vue

Lines changed: 35 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -41,9 +41,13 @@
4141
<!-- author -->
4242
<template #name>
4343
<div class="version__info">
44-
<div v-if="versionLabel" class="version__info__label">{{ versionLabel }}</div>
44+
<div v-if="versionLabel"
45+
class="version__info__label"
46+
:title="versionLabel">
47+
{{ versionLabel }}
48+
</div>
4549
<div v-if="versionAuthor" class="version__info">
46-
<div v-if="versionLabel">•</div>
50+
<span v-if="versionLabel">•</span>
4751
<NcAvatar class="avatar"
4852
:user="version.author"
4953
:size="16"
@@ -58,10 +62,12 @@
5862
<!-- Version file size as subline -->
5963
<template #subname>
6064
<div class="version__info version__info__subline">
61-
<span :title="formattedDate">{{ version.mtime | humanDateFromNow }}</span>
65+
<NcDateTime class="version__info__date"
66+
relative-time="short"
67+
:timestamp="version.mtime" />
6268
<!-- Separate dot to improve alignement -->
6369
<span>•</span>
64-
<span>{{ version.size | humanReadableSize }}</span>
70+
<span>{{ humanReadableSize }}</span>
6571
</div>
6672
</template>
6773

@@ -118,6 +124,7 @@
118124
</template>
119125

120126
<script lang="ts">
127+
import type { PropType } from 'vue'
121128
import type { Version } from '../utils/versions'
122129
123130
import BackupRestore from 'vue-material-design-icons/BackupRestore.vue'
@@ -130,17 +137,18 @@ import Pencil from 'vue-material-design-icons/Pencil.vue'
130137
import NcActionButton from '@nextcloud/vue/dist/Components/NcActionButton.js'
131138
import NcActionLink from '@nextcloud/vue/dist/Components/NcActionLink.js'
132139
import NcAvatar from '@nextcloud/vue/dist/Components/NcAvatar.js'
140+
import NcDateTime from '@nextcloud/vue/dist/Components/NcDateTime.js'
133141
import NcListItem from '@nextcloud/vue/dist/Components/NcListItem.js'
134142
import Tooltip from '@nextcloud/vue/dist/Directives/Tooltip.js'
135143
136-
import { defineComponent, type PropType } from 'vue'
137-
import axios from '@nextcloud/axios'
138144
import { getRootUrl, generateOcsUrl } from '@nextcloud/router'
139145
import { joinPaths } from '@nextcloud/paths'
140146
import { loadState } from '@nextcloud/initial-state'
141147
import { Permission, formatFileSize } from '@nextcloud/files'
142148
import { translate as t } from '@nextcloud/l10n'
143-
import moment from '@nextcloud/moment'
149+
import { defineComponent } from 'vue'
150+
151+
import axios from '@nextcloud/axios'
144152
145153
const hasPermission = (permissions: number, permission: number): boolean => (permissions & permission) !== 0
146154
@@ -151,6 +159,7 @@ export default defineComponent({
151159
NcActionLink,
152160
NcActionButton,
153161
NcAvatar,
162+
NcDateTime,
154163
NcListItem,
155164
BackupRestore,
156165
Download,
@@ -164,20 +173,6 @@ export default defineComponent({
164173
tooltip: Tooltip,
165174
},
166175
167-
created() {
168-
this.fetchDisplayName()
169-
},
170-
171-
filters: {
172-
humanReadableSize(bytes: number): string {
173-
return formatFileSize(bytes)
174-
},
175-
176-
humanDateFromNow(timestamp: number): string {
177-
return moment(timestamp).fromNow()
178-
},
179-
},
180-
181176
props: {
182177
version: {
183178
type: Object as PropType<Version>,
@@ -221,6 +216,10 @@ export default defineComponent({
221216
},
222217
223218
computed: {
219+
humanReadableSize() {
220+
return formatFileSize(this.version.size)
221+
},
222+
224223
versionLabel(): string {
225224
const label = this.version.label ?? ''
226225
@@ -247,10 +246,6 @@ export default defineComponent({
247246
}
248247
},
249248
250-
formattedDate(): string {
251-
return moment(this.version.mtime).format('LLL')
252-
},
253-
254249
enableLabeling(): boolean {
255250
return this.capabilities.files.version_labeling === true
256251
},
@@ -286,6 +281,10 @@ export default defineComponent({
286281
},
287282
},
288283
284+
created() {
285+
this.fetchDisplayName()
286+
},
287+
289288
methods: {
290289
labelUpdate() {
291290
this.$emit('label-update-request')
@@ -351,11 +350,20 @@ export default defineComponent({
351350
352351
&__label {
353352
font-weight: 700;
353+
// Fix overflow on narrow screens
354+
overflow: hidden;
355+
text-overflow: ellipsis;
356+
}
357+
358+
&__date {
359+
// Fix overflow on narrow screens
360+
overflow: hidden;
361+
text-overflow: ellipsis;
354362
}
355363
356364
&__subline {
357-
color: var(--color-text-maxcontrast)
358-
}
365+
color: var(--color-text-maxcontrast)
366+
}
359367
}
360368
361369
&__image {

dist/files_versions-files_versions.js

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/files_versions-files_versions.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)