ソースを参照

Merge pull request #40184 from nextcloud/enh/files_versions_events-vue

feat: Add events for version restore
tags/v28.0.0beta1
max-nextcloud 9ヶ月前
コミット
8ac768c584
コミッターのメールアドレスに関連付けられたアカウントが存在しません

+ 19
- 1
apps/files_versions/src/views/VersionTab.vue ファイルの表示

@@ -39,6 +39,7 @@ import { showError, showSuccess } from '@nextcloud/dialogs'
import isMobile from '@nextcloud/vue/dist/Mixins/isMobile.js'
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',
@@ -57,6 +58,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.
@@ -163,6 +170,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 !== '') {
@@ -172,10 +189,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)
}
},


+ 2
- 2
dist/files_versions-files_versions.js
ファイル差分が大きすぎるため省略します
ファイルの表示


+ 1
- 1
dist/files_versions-files_versions.js.map
ファイル差分が大きすぎるため省略します
ファイルの表示


読み込み中…
キャンセル
保存