Skip to content

Commit

Permalink
feat: author displayname and avatar on versions
Browse files Browse the repository at this point in the history
Signed-off-by: Eduardo Morales <[email protected]>
  • Loading branch information
emoral435 authored and susnux committed Mar 15, 2024
1 parent 3e8534b commit e03c74a
Show file tree
Hide file tree
Showing 2 changed files with 42 additions and 2 deletions.
42 changes: 40 additions & 2 deletions apps/files_versions/src/components/Version.vue
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,23 @@
</div>
</template>

<!-- author -->
<template #name>
<div class="version__info">
<div v-if="versionLabel" class="version__info__label">{{ versionLabel }}</div>
<div v-if="versionAuthor" class="version__info version__info__author">
<div>•</div>
<div>{{ versionAuthor }}</div>
<NcAvatar class="avatar"
:user="version.author"
:size="24"
:disable-menu="true"
:disable-tooltip="true"
:show-user-status="false" />
</div>
</div>
</template>

<!-- Version file size as subline -->
<template #subname>
<div class="version__info">
Expand Down Expand Up @@ -113,11 +130,13 @@ import Pencil from 'vue-material-design-icons/Pencil.vue'

import NcActionButton from '@nextcloud/vue/dist/Components/NcActionButton.js'
import NcActionLink from '@nextcloud/vue/dist/Components/NcActionLink.js'
import NcAvatar from '@nextcloud/vue/dist/Components/NcAvatar.js'
import NcListItem from '@nextcloud/vue/dist/Components/NcListItem.js'
import Tooltip from '@nextcloud/vue/dist/Directives/Tooltip.js'

import { defineComponent, type PropType } from 'vue'
import { getRootUrl } from '@nextcloud/router'
import axios from '@nextcloud/axios'
import { getRootUrl, generateOcsUrl } from '@nextcloud/router'
import { joinPaths } from '@nextcloud/paths'
import { loadState } from '@nextcloud/initial-state'
import { Permission, formatFileSize } from '@nextcloud/files'
Expand All @@ -132,6 +151,7 @@ export default defineComponent({
components: {
NcActionLink,
NcActionButton,
NcAvatar,
NcListItem,
BackupRestore,
Download,
Expand All @@ -145,6 +165,10 @@ export default defineComponent({
tooltip: Tooltip,
},

created() {
this.fetchDisplayName()
},

filters: {
humanReadableSize(bytes: number): string {
return formatFileSize(bytes)
Expand Down Expand Up @@ -193,6 +217,7 @@ export default defineComponent({
previewLoaded: false,
previewErrored: false,
capabilities: loadState('core', 'capabilities', { files: { version_labeling: false, version_deletion: false } }),
versionAuthor: '',
}
},

Expand Down Expand Up @@ -279,6 +304,14 @@ export default defineComponent({
this.$emit('delete', this.version)
},

async fetchDisplayName() {
// check to make sure that we have a valid author - in case database did not migrate, null author, etc.
if (this.version.author) {
const { data } = await axios.get(generateOcsUrl(`/cloud/users/${this.version.author}`))
this.versionAuthor = data.ocs.data.displayname
}
},

click() {
if (!this.canView) {
window.location = this.downloadURL
Expand Down Expand Up @@ -310,8 +343,13 @@ export default defineComponent({
align-items: center;
gap: 0.5rem;

&__size {
&__label {
font-weight: 700;
}

&__size, &__author {
color: var(--color-text-lighter);
font-weight: 500;
}
}

Expand Down
2 changes: 2 additions & 0 deletions apps/files_versions/src/utils/versions.ts
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@ import logger from '../utils/logger.js'
export interface Version {
fileId: string, // The id of the file associated to the version.
label: string, // 'Current version' or ''
author: string|null, // UID for the author of the version
filename: string, // File name relative to the version DAV endpoint
basename: string, // A base name generated from the mtime
mime: string, // Empty for the current version, else the actual mime type of the version
Expand Down Expand Up @@ -107,6 +108,7 @@ function formatVersion(version: any, fileInfo: any): Version {
return {
fileId: fileInfo.id,
label: version.props['version-label'],
author: version.props['version-author'] ?? null,
filename: version.filename,
basename: moment(mtime).format('LLL'),
mime: version.mime,
Expand Down

0 comments on commit e03c74a

Please sign in to comment.