Skip to content

Commit 8ac768c

Browse files
Merge pull request #40184 from nextcloud/enh/files_versions_events-vue
feat: Add events for version restore
2 parents f254173 + c1fcc3e commit 8ac768c

3 files changed

Lines changed: 22 additions & 4 deletions

File tree

apps/files_versions/src/views/VersionTab.vue

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ import { showError, showSuccess } from '@nextcloud/dialogs'
3939
import isMobile from '@nextcloud/vue/dist/Mixins/isMobile.js'
4040
import { fetchVersions, deleteVersion, restoreVersion, setVersionLabel } from '../utils/versions.js'
4141
import Version from '../components/Version.vue'
42+
import { emit, subscribe, unsubscribe } from '@nextcloud/event-bus'
4243
4344
export default {
4445
name: 'VersionTab',
@@ -57,6 +58,12 @@ export default {
5758
loading: false,
5859
}
5960
},
61+
mounted() {
62+
subscribe('files_versions:restore:restored', this.fetchVersions)
63+
},
64+
beforeUnmount() {
65+
unsubscribe('files_versions:restore:restored', this.fetchVersions)
66+
},
6067
computed: {
6168
/**
6269
* Order versions by mtime.
@@ -163,6 +170,16 @@ export default {
163170
mtime: version.mtime,
164171
}
165172
173+
const restoreStartedEventState = {
174+
preventDefault: false,
175+
fileInfo: this.fileInfo,
176+
version,
177+
}
178+
emit('files_versions:restore:requested', restoreStartedEventState)
179+
if (restoreStartedEventState.preventDefault) {
180+
return
181+
}
182+
166183
try {
167184
await restoreVersion(version)
168185
if (version.label !== '') {
@@ -172,10 +189,11 @@ export default {
172189
} else {
173190
showSuccess(t('files_versions', 'Version restored'))
174191
}
175-
await this.fetchVersions()
192+
emit('files_versions:restore:restored', version)
176193
} catch (exception) {
177194
this.fileInfo = oldFileInfo
178195
showError(t('files_versions', 'Could not restore version'))
196+
emit('files_versions:restore:failed', version)
179197
}
180198
},
181199

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)