3131 <div class =" version__info" >
3232 <div v-if =" versionLabel"
3333 class =" version__info__label"
34+ data-cy-files-version-label
3435 :title =" versionLabel" >
3536 {{ versionLabel }}
3637 </div >
37- <div v-if =" versionAuthor" class =" version__info" >
38+ <div v-if =" versionAuthor"
39+ class =" version__info"
40+ data-cy-files-version-author-name >
3841 <span v-if =" versionLabel" >•</span >
3942 <NcAvatar class =" avatar"
4043 :user =" version.author"
41- :size =" 16 "
42- : disable-menu= " true "
43- : disable-tooltip= " true "
44+ :size =" 20 "
45+ disable-menu
46+ disable-tooltip
4447 :show-user-status =" false" />
4548 <div >{{ versionAuthor }}</div >
4649 </div >
5356 <NcDateTime class =" version__info__date"
5457 relative-time =" short"
5558 :timestamp =" version.mtime" />
56- <!-- Separate dot to improve alignement -->
59+ <!-- Separate dot to improve alignment -->
5760 <span >•</span >
5861 <span >{{ humanReadableSize }}</span >
5962 </div >
114117import type { PropType } from ' vue'
115118import type { Version } from ' ../utils/versions'
116119
120+ import { getCurrentUser } from ' @nextcloud/auth'
121+ import { Permission , formatFileSize } from ' @nextcloud/files'
122+ import { loadState } from ' @nextcloud/initial-state'
123+ import { t } from ' @nextcloud/l10n'
124+ import { joinPaths } from ' @nextcloud/paths'
125+ import { getRootUrl , generateUrl } from ' @nextcloud/router'
117126import { defineComponent } from ' vue'
118127
128+ import axios from ' @nextcloud/axios'
129+ import moment from ' @nextcloud/moment'
130+ import logger from ' ../utils/logger'
131+
119132import BackupRestore from ' vue-material-design-icons/BackupRestore.vue'
120133import Delete from ' vue-material-design-icons/Delete.vue'
121134import Download from ' vue-material-design-icons/Download.vue'
@@ -130,14 +143,6 @@ import NcDateTime from '@nextcloud/vue/components/NcDateTime'
130143import NcListItem from ' @nextcloud/vue/components/NcListItem'
131144import Tooltip from ' @nextcloud/vue/directives/Tooltip'
132145
133- import { Permission , formatFileSize } from ' @nextcloud/files'
134- import { loadState } from ' @nextcloud/initial-state'
135- import { t } from ' @nextcloud/l10n'
136- import { joinPaths } from ' @nextcloud/paths'
137- import { getRootUrl , generateOcsUrl } from ' @nextcloud/router'
138- import axios from ' @nextcloud/axios'
139- import moment from ' @nextcloud/moment'
140-
141146const hasPermission = (permissions : number , permission : number ): boolean => (permissions & permission ) !== 0
142147
143148export default defineComponent ({
@@ -295,21 +300,26 @@ export default defineComponent({
295300 },
296301
297302 async fetchDisplayName() {
298- // check to make sure that we have a valid author - in case database did not migrate, null author, etc.
299- if (this .version .author ) {
303+ this .versionAuthor = null
304+ if (! this .version .author ) {
305+ return
306+ }
307+
308+ if (this .version .author === getCurrentUser ()?.uid ) {
309+ this .versionAuthor = t (' files_versions' , ' You' )
310+ } else {
300311 try {
301- const { data } = await axios .get (generateOcsUrl (` /cloud/users/${this .version .author } ` ))
302- this .versionAuthor = data .ocs .data .displayname
303- } catch (e ) {
304- // Promise got rejected - default to null author to not try to load author profile
305- this .versionAuthor = null
312+ const { data } = await axios .post (generateUrl (' /displaynames' ), { users: [this .version .author ] })
313+ this .versionAuthor = data .users [this .version .author ]
314+ } catch (error ) {
315+ logger .warn (' Could not load user display name' , { error })
306316 }
307317 }
308318 },
309319
310320 click() {
311321 if (! this .canView ) {
312- window .location = this .downloadURL
322+ window .location . href = this .downloadURL
313323 return
314324 }
315325 this .$emit (' click' , { version: this .version })
0 commit comments