|
@@ -15,10 +15,10 @@
|
|
<magic-dialog v-model:value="dialog" :title="$i('history.name')" width="80%" maxWidth="100%" top="60px" height="80%" className="magic-dialog-diff">
|
|
<magic-dialog v-model:value="dialog" :title="$i('history.name')" width="80%" maxWidth="100%" top="60px" height="80%" className="magic-dialog-diff">
|
|
<div class="magic-backup-diff-container">
|
|
<div class="magic-backup-diff-container">
|
|
<div class="magic-backup-diff-header">
|
|
<div class="magic-backup-diff-header">
|
|
- <div>{{ currentTime }}</div>
|
|
|
|
- <div>{{ $i('backup.current') }}</div>
|
|
|
|
|
|
+ <div>{{ currentTime }} by {{ currentSelected.createBy || 'guest' }}</div>
|
|
|
|
+ <div>{{ $i('backup.current') }}({{ formatDate(currentVersion.updateTime || currentVersion.createTime) }} by {{ currentVersion.updateBy || currentVersion.createBy || 'guest' }})</div>
|
|
</div>
|
|
</div>
|
|
- <magic-monaco-diff-editor v-if="!dialogLoading" v-model:value="diffValue" language="magicscript"/>
|
|
|
|
|
|
+ <magic-monaco-diff-editor v-if="!dialogLoading" v-model:value="diffValue" :language="language"/>
|
|
<magic-loading v-else :loading="dialogLoading" />
|
|
<magic-loading v-else :loading="dialogLoading" />
|
|
</div>
|
|
</div>
|
|
<magic-button-group align="right">
|
|
<magic-button-group align="right">
|
|
@@ -27,7 +27,7 @@
|
|
</magic-dialog>
|
|
</magic-dialog>
|
|
</template>
|
|
</template>
|
|
<script setup>
|
|
<script setup>
|
|
-import { getCurrentInstance, inject, onMounted, ref } from 'vue'
|
|
|
|
|
|
+import { getCurrentInstance, inject, onMounted, ref, resolveDynamicComponent, shallowRef } from 'vue'
|
|
import bus from '../../../scripts/bus.js'
|
|
import bus from '../../../scripts/bus.js'
|
|
import constants from '../../../scripts/constants.js'
|
|
import constants from '../../../scripts/constants.js'
|
|
import Message from '../../../scripts/constants/message.js'
|
|
import Message from '../../../scripts/constants/message.js'
|
|
@@ -35,6 +35,7 @@ import request from '../../../scripts/request.js'
|
|
import $i from '../../../scripts/i18n.js'
|
|
import $i from '../../../scripts/i18n.js'
|
|
import { formatDate } from '../../../scripts/utils.js'
|
|
import { formatDate } from '../../../scripts/utils.js'
|
|
import modal from '../../common/dialog/magic-modal.js'
|
|
import modal from '../../common/dialog/magic-modal.js'
|
|
|
|
+const magicBackupFileComponent = resolveDynamicComponent('magic-backup-file')
|
|
const loading = ref(true)
|
|
const loading = ref(true)
|
|
const toolbars = [{
|
|
const toolbars = [{
|
|
icon: 'refresh',
|
|
icon: 'refresh',
|
|
@@ -58,6 +59,7 @@ const dialog = ref(false)
|
|
const dialogLoading = ref(true)
|
|
const dialogLoading = ref(true)
|
|
const currentTime = ref('')
|
|
const currentTime = ref('')
|
|
const currentSelected = ref({})
|
|
const currentSelected = ref({})
|
|
|
|
+const language = ref('magicscript')
|
|
let loadingNext = false
|
|
let loadingNext = false
|
|
let hasNext = false
|
|
let hasNext = false
|
|
let nextTimestamp = undefined
|
|
let nextTimestamp = undefined
|
|
@@ -76,6 +78,7 @@ const load = (timestamp) => {
|
|
})
|
|
})
|
|
}
|
|
}
|
|
const service = inject('service')
|
|
const service = inject('service')
|
|
|
|
+const currentVersion = ref({})
|
|
const displayTitle = type => {
|
|
const displayTitle = type => {
|
|
if(type.endsWith('-group')){
|
|
if(type.endsWith('-group')){
|
|
return $i('message.group', service[type.replace('-group', '')]?.name || 'Unknown')
|
|
return $i('message.group', service[type.replace('-group', '')]?.name || 'Unknown')
|
|
@@ -110,19 +113,38 @@ const onContextmenu = (event, row) => {
|
|
currentTime.value = formatDate(row.createDate)
|
|
currentTime.value = formatDate(row.createDate)
|
|
dialog.value = true
|
|
dialog.value = true
|
|
dialogLoading.value = true
|
|
dialogLoading.value = true
|
|
|
|
+ language.value = service[row.type].language || 'magicscript'
|
|
Promise.all([
|
|
Promise.all([
|
|
new Promise(r => request.sendGet('/backup', { id: row.id, timestamp: row.createDate}).success(script => r(script))),
|
|
new Promise(r => request.sendGet('/backup', { id: row.id, timestamp: row.createDate}).success(script => r(script))),
|
|
- new Promise(r => request.sendGet('/resource/file/' + row.id).success(res => r(res?.script || '')))
|
|
|
|
|
|
+ new Promise(r => request.sendGet('/resource/file/' + row.id).success(res => r(res)))
|
|
]).then(values => {
|
|
]).then(values => {
|
|
|
|
+ currentVersion.value = values[1]
|
|
|
|
+ console.log(currentVersion)
|
|
currentSelected.value = row
|
|
currentSelected.value = row
|
|
dialogLoading.value = false
|
|
dialogLoading.value = false
|
|
- diffValue.value = values
|
|
|
|
|
|
+ diffValue.value = [values[0], values[1]?.script]
|
|
}).catch(e => {
|
|
}).catch(e => {
|
|
console.error(e)
|
|
console.error(e)
|
|
dialog.value = false
|
|
dialog.value = false
|
|
})
|
|
})
|
|
}
|
|
}
|
|
})
|
|
})
|
|
|
|
+ menus.push({
|
|
|
|
+ label: $i('toolbars.history'),
|
|
|
|
+ icon: 'history',
|
|
|
|
+ onClick: () => {
|
|
|
|
+ bus.$emit(Message.ADD_FOOTER_TOOLBAR, {
|
|
|
|
+ component: shallowRef(magicBackupFileComponent),
|
|
|
|
+ id: 'backup-file',
|
|
|
|
+ icon: 'history',
|
|
|
|
+ title: $i('toolbars.viewHistory', row.name),
|
|
|
|
+ allowClose: true,
|
|
|
|
+ data: {
|
|
|
|
+ id: row.id
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ }
|
|
|
|
+ })
|
|
}
|
|
}
|
|
if(row.id === 'full' || !row.id.endsWith('-group')){
|
|
if(row.id === 'full' || !row.id.endsWith('-group')){
|
|
menus.push({
|
|
menus.push({
|