| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- import i18n from '@/locales'
- import { BRAND_MAP } from '@/constants'
- import { RollbackDiskValidate } from '../validate'
- export default {
- created () {
- this.singleActions = [
- {
- label: i18n.t('compute.text_1069'),
- permission: 'disks_perform_disk_reset',
- action: obj => {
- this.createDialog('DiskRollbackDialog', {
- data: [obj],
- columns: this.columns,
- refresh: this.refresh,
- })
- },
- meta: obj => {
- const brand = obj.brand && obj.brand.toLowerCase()
- if (!obj.disk_name) {
- return { validate: false }
- }
- if (brand && RollbackDiskValidate[brand]) {
- return { ...RollbackDiskValidate[brand](obj) }
- }
- return { validate: true }
- },
- },
- {
- label: i18n.t('compute.perform_sync_status'),
- permission: 'snapshots_perform_syncstatus',
- action: obj => {
- this.onManager('performAction', {
- steadyStatus: ['running', 'ready'],
- id: obj.id,
- managerArgs: {
- action: 'syncstatus',
- },
- })
- },
- meta: () => ({
- validate: true,
- }),
- },
- {
- label: i18n.t('compute.create_disk'),
- permission: 'disks_create',
- action: obj => {
- this.createDialog('SnapshotCreateDiskDialog', {
- data: [obj],
- columns: this.columns,
- refresh: this.refresh,
- })
- },
- meta: (obj) => {
- const ret = { validate: true }
- if (obj.brand !== BRAND_MAP.OneCloud.brand) {
- ret.validate = false
- ret.tooltip = i18n.t('compute.text_473', [BRAND_MAP[obj.brand]?.label || ''])
- return ret
- }
- return ret
- },
- },
- {
- label: i18n.t('compute.perform_delete'),
- permission: 'snapshots_delete',
- action: obj => {
- this.createDialog('DeleteResDialog', {
- vm: this,
- data: [obj],
- columns: this.columns,
- title: i18n.t('compute.perform_delete'),
- onManager: this.onManager,
- name: i18n.t('compute.text_462'),
- })
- },
- meta: obj => {
- const ret = { validate: true }
- if (obj.guest_status === 'disk_reset') {
- ret.validate = false
- ret.tooltip = this.$t('compute.text_1347')
- return ret
- }
- return this.$getDeleteResult(obj)
- },
- },
- ]
- },
- }
|