mirror of
https://github.com/nextcloud/server.git
synced 2026-05-28 04:32:30 -04:00
Merge pull request #40352 from nextcloud/bugfix/version-events-26
This commit is contained in:
commit
9fc79b3a9e
6 changed files with 40 additions and 8 deletions
|
|
@ -19,7 +19,7 @@
|
|||
<div>
|
||||
<NcListItem class="version"
|
||||
:title="versionLabel"
|
||||
:href="downloadURL"
|
||||
@click="openVersion"
|
||||
:force-display-actions="true"
|
||||
data-files-versions-version>
|
||||
<template #icon>
|
||||
|
|
@ -122,6 +122,7 @@ import { translate } from '@nextcloud/l10n'
|
|||
import { joinPaths } from '@nextcloud/paths'
|
||||
import { generateUrl } from '@nextcloud/router'
|
||||
import { loadState } from '@nextcloud/initial-state'
|
||||
import { emit } from '@nextcloud/event-bus'
|
||||
|
||||
export default {
|
||||
name: 'Version',
|
||||
|
|
@ -238,6 +239,19 @@ export default {
|
|||
},
|
||||
},
|
||||
methods: {
|
||||
openVersion(e) {
|
||||
e.preventDefault()
|
||||
const openVersionEvent = {
|
||||
preventDefault: false,
|
||||
fileInfo: this.fileInfo,
|
||||
version: this.version,
|
||||
}
|
||||
emit('files_versions:view:open', openVersionEvent)
|
||||
if (openVersionEvent.preventDefault) {
|
||||
return
|
||||
}
|
||||
window.location.href = this.downloadURL
|
||||
},
|
||||
openVersionLabelModal() {
|
||||
this.showVersionLabelForm = true
|
||||
this.$nextTick(() => {
|
||||
|
|
|
|||
|
|
@ -33,6 +33,7 @@
|
|||
import { showError, showSuccess } from '@nextcloud/dialogs'
|
||||
import { fetchVersions, deleteVersion, restoreVersion, setVersionLabel } from '../utils/versions.js'
|
||||
import Version from '../components/Version.vue'
|
||||
import { emit, subscribe, unsubscribe } from '@nextcloud/event-bus'
|
||||
|
||||
export default {
|
||||
name: 'VersionTab',
|
||||
|
|
@ -47,6 +48,12 @@ export default {
|
|||
loading: false,
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
subscribe('files_versions:restore:restored', this.fetchVersions)
|
||||
},
|
||||
beforeUnmount() {
|
||||
unsubscribe('files_versions:restore:restored', this.fetchVersions)
|
||||
},
|
||||
computed: {
|
||||
/**
|
||||
* Order versions by mtime.
|
||||
|
|
@ -114,6 +121,16 @@ export default {
|
|||
mtime: version.mtime,
|
||||
}
|
||||
|
||||
const restoreStartedEventState = {
|
||||
preventDefault: false,
|
||||
fileInfo: this.fileInfo,
|
||||
version,
|
||||
}
|
||||
emit('files_versions:restore:requested', restoreStartedEventState)
|
||||
if (restoreStartedEventState.preventDefault) {
|
||||
return
|
||||
}
|
||||
|
||||
try {
|
||||
await restoreVersion(version)
|
||||
if (version.label !== '') {
|
||||
|
|
@ -123,10 +140,11 @@ export default {
|
|||
} else {
|
||||
showSuccess(t('files_versions', 'Version restored'))
|
||||
}
|
||||
await this.fetchVersions()
|
||||
emit('files_versions:restore:restored', version)
|
||||
} catch (exception) {
|
||||
this.fileInfo = oldFileInfo
|
||||
showError(t('files_versions', 'Could not restore version'))
|
||||
emit('files_versions:restore:failed', version)
|
||||
}
|
||||
},
|
||||
|
||||
|
|
|
|||
4
dist/core-common.js
vendored
4
dist/core-common.js
vendored
File diff suppressed because one or more lines are too long
2
dist/core-common.js.map
vendored
2
dist/core-common.js.map
vendored
File diff suppressed because one or more lines are too long
4
dist/files_versions-files_versions.js
vendored
4
dist/files_versions-files_versions.js
vendored
File diff suppressed because one or more lines are too long
2
dist/files_versions-files_versions.js.map
vendored
2
dist/files_versions-files_versions.js.map
vendored
File diff suppressed because one or more lines are too long
Loading…
Reference in a new issue