Skip to content

Commit 52ceb40

Browse files
committed
Fix: allow to name the current version
We only need to change the filename of the current version for the viewer Signed-off-by: Louis Chemineau <[email protected]>
1 parent 8d84dc3 commit 52ceb40

File tree

4 files changed

+18
-12
lines changed

4 files changed

+18
-12
lines changed

apps/files_versions/src/utils/versions.js

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@ import { encodeFilePath } from '../../../files/src/utils/fileUtils.js'
2929
import client from '../utils/davClient.js'
3030
import davRequest from '../utils/davRequest.js'
3131
import logger from '../utils/logger.js'
32-
import path from 'path'
3332

3433
/**
3534
* @typedef {object} Version
@@ -101,16 +100,13 @@ export async function restoreVersion(version) {
101100
function formatVersion(version, fileInfo) {
102101
const mtime = moment(version.lastmod).unix() * 1000
103102
let previewUrl = ''
104-
let filename = ''
105103

106104
if (mtime === fileInfo.mtime) { // Version is the current one
107-
filename = path.join('files', getCurrentUser()?.uid ?? '', fileInfo.path, fileInfo.name)
108105
previewUrl = generateUrl('/core/preview?fileId={fileId}&c={fileEtag}&x=250&y=250&forceIcon=0&a=0', {
109106
fileId: fileInfo.id,
110107
fileEtag: fileInfo.etag,
111108
})
112109
} else {
113-
filename = version.filename
114110
previewUrl = generateUrl('/apps/files_versions/preview?file={file}&version={fileVersion}', {
115111
file: joinPaths(fileInfo.path, fileInfo.name),
116112
fileVersion: version.basename,
@@ -120,7 +116,7 @@ function formatVersion(version, fileInfo) {
120116
return {
121117
fileId: fileInfo.id,
122118
label: version.props['version-label'],
123-
filename,
119+
filename: version.filename,
124120
basename: moment(mtime).format('LLL'),
125121
mime: version.mime,
126122
etag: `${version.props.getetag}`,
@@ -130,8 +126,8 @@ function formatVersion(version, fileInfo) {
130126
permissions: 'R',
131127
hasPreview: version.props['has-preview'] === 1,
132128
previewUrl,
133-
url: joinPaths('/remote.php/dav', filename),
134-
source: generateRemoteUrl('dav') + encodeFilePath(filename),
129+
url: joinPaths('/remote.php/dav', version.filename),
130+
source: generateRemoteUrl('dav') + encodeFilePath(version.filename),
135131
fileVersion: version.basename,
136132
}
137133
}

apps/files_versions/src/views/VersionTab.vue

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,11 +35,15 @@
3535
</template>
3636

3737
<script>
38+
import path from 'path'
39+
3840
import { showError, showSuccess } from '@nextcloud/dialogs'
3941
import isMobile from '@nextcloud/vue/dist/Mixins/isMobile.js'
42+
import { emit, subscribe, unsubscribe } from '@nextcloud/event-bus'
43+
import { getCurrentUser } from '@nextcloud/auth'
44+
4045
import { fetchVersions, deleteVersion, restoreVersion, setVersionLabel } from '../utils/versions.js'
4146
import Version from '../components/Version.vue'
42-
import { emit, subscribe, unsubscribe } from '@nextcloud/event-bus'
4347
4448
export default {
4549
name: 'VersionTab',
@@ -249,7 +253,13 @@ export default {
249253
250254
// Versions previews are too small for our use case, so we override hasPreview and previewUrl
251255
// which makes the viewer render the original file.
252-
const versions = this.versions.map(version => ({ ...version, hasPreview: false, previewUrl: undefined }))
256+
// We also point to the original filename if the version is the current one.
257+
const versions = this.versions.map(version => ({
258+
...version,
259+
filename: version.mtime === this.fileInfo.mtime ? path.join('files', getCurrentUser()?.uid ?? '', fileInfo.path, fileInfo.name) : version.filename,
260+
hasPreview: false,
261+
previewUrl: undefined,
262+
}))
253263
254264
OCA.Viewer.open({
255265
fileInfo: versions.find(v => v.source === version.source),

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)