bfg-common 1.5.534 → 1.5.535

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (133) hide show
  1. package/CODE_STYLE.md +109 -109
  2. package/assets/img/icons/icons-sprite-dark-3.svg +227 -227
  3. package/assets/img/icons/icons-sprite-dark-5.svg +488 -488
  4. package/assets/img/icons/icons-sprite-light-3.svg +227 -227
  5. package/assets/img/icons/icons-sprite-light-5.svg +488 -488
  6. package/assets/localization/local_ru.json +1 -1
  7. package/components/atoms/TheIcon3.vue +50 -50
  8. package/components/atoms/collapse/CollapseNav.vue +170 -170
  9. package/components/atoms/perPage/PerPage.vue +58 -58
  10. package/components/atoms/table/dataGrid/DataGrid.vue +1718 -1718
  11. package/components/atoms/table/dataGrid/DataGridPagination.vue +97 -97
  12. package/components/atoms/table/dataGrid/lib/config/settingsTable.ts +94 -94
  13. package/components/atoms/table/dataGrid/lib/utils/export.ts +16 -16
  14. package/components/common/backup/storage/actions/add/Add.vue +251 -251
  15. package/components/common/backup/storage/actions/add/lib/utils.ts +51 -51
  16. package/components/common/browse/blocks/contents/filesNew/Skeleton.vue +18 -18
  17. package/components/common/browse/blocks/lib/models/types.ts +1 -1
  18. package/components/common/browse/lib/models/interfaces.ts +5 -5
  19. package/components/common/diagramMain/network/Contents.vue +497 -497
  20. package/components/common/layout/theHeader/helpMenu/About.vue +79 -79
  21. package/components/common/layout/theHeader/helpMenu/aboutOld/AboutOld.vue +79 -79
  22. package/components/common/pages/backups/DetailView.vue +52 -52
  23. package/components/common/pages/backups/lib/models/interfaces.ts +36 -36
  24. package/components/common/pages/backups/modals/Modals.vue +243 -243
  25. package/components/common/pages/backups/modals/createBackup/CreateBackup.vue +195 -195
  26. package/components/common/pages/backups/modals/createBackup/configuration/maxBandwidth/lib/config/options.ts +6 -6
  27. package/components/common/pages/backups/modals/createBackup/lib/config/readyToCompleteOptions.ts +69 -69
  28. package/components/common/pages/backups/modals/lib/config/restore.ts +115 -115
  29. package/components/common/pages/backups/modals/lib/models/interfaces.ts +186 -186
  30. package/components/common/pages/backups/modals/restore/disks/Disks.vue +27 -27
  31. package/components/common/pages/backups/modals/restore/disks/tableView/lib/config/table.ts +117 -117
  32. package/components/common/pages/backups/modals/restore/name/Name.vue +166 -166
  33. package/components/common/pages/backups/modals/restore/name/lib/models/interfaces.ts +6 -6
  34. package/components/common/pages/backups/modals/restore/networks/Networks.vue +70 -67
  35. package/components/common/pages/backups/modals/restore/networks/table/Table.vue +214 -214
  36. package/components/common/pages/backups/modals/restore/types/lib/config/typeOptions.ts +25 -25
  37. package/components/common/pages/home/lib/models/interfaces.ts +48 -48
  38. package/components/common/pages/home/widgets/hosts/Hosts.vue +27 -27
  39. package/components/common/pages/home/widgets/hosts/lib/config/items.ts +23 -23
  40. package/components/common/pages/home/widgets/vms/VmsOld.vue +35 -35
  41. package/components/common/pages/home/widgets/vms/lib/config/items.ts +19 -19
  42. package/components/common/pages/scheduledTasks/lib/utils/utils.ts +84 -84
  43. package/components/common/readyToComplete/ReadyToComplete.vue +17 -17
  44. package/components/common/select/radio/RadioGroup.vue +137 -137
  45. package/components/common/spiceConsole/Drawer.vue +420 -420
  46. package/components/common/spiceConsole/SpiceConsole.vue +184 -184
  47. package/components/common/spiceConsole/lib/models/interfaces.ts +5 -5
  48. package/components/common/tools/Actions.vue +207 -207
  49. package/components/common/treeView/TreeView.vue +52 -52
  50. package/components/common/vm/actions/add/Add.vue +945 -895
  51. package/components/common/vm/actions/add/New.vue +689 -695
  52. package/components/common/vm/actions/add/Old.vue +400 -414
  53. package/components/common/vm/actions/add/lib/config/steps.ts +347 -347
  54. package/components/common/vm/actions/clone/Clone.vue +806 -754
  55. package/components/common/vm/actions/clone/{cloneNew/CloneNew.vue → new/New.vue} +454 -434
  56. package/components/common/vm/actions/clone/{cloneOld/CloneOld.vue → old/Old.vue} +375 -382
  57. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/Cpu.vue +368 -368
  58. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/Shares.vue +140 -140
  59. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/lib/config/options.ts +28 -28
  60. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDisk.vue +427 -427
  61. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/Location.vue +154 -154
  62. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/table/Table.vue +99 -93
  63. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddress.vue +119 -119
  64. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIo.vue +31 -31
  65. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/Other.vue +16 -16
  66. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/numberDisplays/NumberDisplays.vue +53 -53
  67. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/delay/Delay.vue +32 -32
  68. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/Firmware.vue +60 -60
  69. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/Order.vue +174 -174
  70. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/Keymap.vue +32 -32
  71. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/Password.vue +103 -103
  72. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirection.vue +28 -28
  73. package/components/common/vm/actions/common/select/compatibility/Old.vue +107 -107
  74. package/components/common/vm/actions/common/select/createType/CreateType.vue +38 -38
  75. package/components/common/vm/actions/common/select/createType/lib/models/interfaces.ts +5 -5
  76. package/components/common/vm/actions/common/select/os/Old.vue +152 -152
  77. package/components/common/vm/actions/common/select/os/Os.vue +139 -139
  78. package/components/common/vm/actions/common/select/storage/new/lib/models/interfaces.ts +5 -5
  79. package/components/common/vm/actions/common/select/storage/new/lib/utils/utils.ts +21 -21
  80. package/components/common/vm/actions/common/select/template/old/Old.vue +50 -50
  81. package/components/common/vm/actions/editSettings/new/Skeleton.vue +88 -88
  82. package/components/common/vm/actions/register/Register.vue +352 -285
  83. package/components/common/vm/actions/register/lib/config/steps.ts +86 -86
  84. package/components/common/wizards/common/steps/computeResource/ComputeResource.vue +85 -95
  85. package/components/common/wizards/common/steps/computeResource/New.vue +92 -88
  86. package/components/common/wizards/common/steps/computeResource/Old.vue +102 -81
  87. package/components/common/wizards/common/steps/computeResource/compatibility/Compatibility.vue +31 -0
  88. package/components/common/wizards/common/steps/computeResource/compatibility/New.vue +98 -0
  89. package/components/common/wizards/{vm/common/validation/compatibility/Compatibility.vue → common/steps/computeResource/compatibility/Old.vue} +54 -62
  90. package/components/common/wizards/common/steps/computeResource/compatibility/lib/models/enums.ts +6 -0
  91. package/components/common/wizards/common/steps/name/Name.vue +178 -178
  92. package/components/common/wizards/common/steps/name/New.vue +221 -221
  93. package/components/common/wizards/common/steps/name/Old.vue +121 -121
  94. package/components/common/wizards/common/steps/name/lib/models/interfaces.ts +4 -4
  95. package/components/common/wizards/common/steps/name/location/Location.vue +85 -85
  96. package/components/common/wizards/common/steps/name/location/New.vue +40 -40
  97. package/components/common/wizards/datastore/add/Add.vue +228 -228
  98. package/components/common/wizards/datastore/add/lib/utils.ts +85 -85
  99. package/components/common/wizards/datastore/add/steps/typeMode/lib/config/typeOptions.ts +43 -43
  100. package/components/common/wizards/vm/migrate/select/computeResource/ComputeResource.vue +6 -6
  101. package/components/common/wizards/vm/migrate/select/network/Network.vue +103 -103
  102. package/components/common/wizards/vm/migrate/select/storage/Storage.vue +3 -3
  103. package/composables/useAppVersion.ts +21 -21
  104. package/composables/useLocal.ts +6 -6
  105. package/composables/useLocalCommon.ts +39 -39
  106. package/package.json +2 -2
  107. package/plugins/console.ts +21 -21
  108. package/plugins/date.ts +233 -233
  109. package/plugins/mouse.ts +21 -21
  110. package/plugins/panelStates.ts +70 -70
  111. package/plugins/text.ts +59 -59
  112. package/public/spice-console/application/clientgui.js +854 -854
  113. package/public/spice-console/application/packetfactory.js +211 -211
  114. package/public/spice-console/application/virtualmouse.js +147 -147
  115. package/public/spice-console/lib/images/bitmap.js +203 -203
  116. package/public/spice-console/network/spicechannel.js +440 -440
  117. package/public/spice-console/process/cursorprocess.js +121 -121
  118. package/public/spice-console/process/inputprocess.js +227 -227
  119. package/public/spice-console/process/mainprocess.js +210 -210
  120. package/public/spice-console/run.js +210 -210
  121. package/store/main/mutations.ts +7 -7
  122. package/store/main/state.ts +7 -7
  123. package/components/common/vm/actions/common/select/computeResource/ComputeResource.vue +0 -143
  124. package/components/common/vm/actions/common/select/computeResource/New.vue +0 -184
  125. package/components/common/vm/actions/common/select/computeResource/Old.vue +0 -99
  126. package/components/common/vm/actions/common/select/computeResource/lib/ComputeResource.spec.ts +0 -479
  127. package/components/common/vm/actions/common/select/computeResource/treeView/New.vue +0 -51
  128. package/components/common/vm/actions/common/select/computeResource/treeView/Old.vue +0 -51
  129. package/components/common/vm/actions/common/select/computeResource/treeView/TreeView.vue +0 -131
  130. package/components/common/wizards/common/compatibility/Compatibility.vue +0 -13
  131. package/components/common/wizards/common/compatibility/New.vue +0 -10
  132. package/components/common/wizards/common/compatibility/Old.vue +0 -10
  133. package/components/common/wizards/vm/common/validation/lib/models/enums.ts +0 -5
@@ -1,243 +1,243 @@
1
- <template>
2
- <common-pages-backups-modals-create-backup
3
- v-if="schedulerTask.isShow"
4
- v-model="backupForm"
5
- v-model:scheduler-form="schedulerTaskForm"
6
- :is-scheduled-tasks="schedulerTask.scheduler.isSchedulerTask"
7
- :is-edit-scheduled-tasks="schedulerTask.scheduler.editTask"
8
- :target="props.target"
9
- :selected-vm-name="props.selectedVmName"
10
- :disks="props.disks"
11
- :disks-loading="props.disksLoading"
12
- :datastore-table="props.datastoreTable"
13
- :datastore-table-loading="props.datastoreTableLoading"
14
- @change-step-create-backup="onChangeStepCreateBackup"
15
- @check-name="onCheckBackupName"
16
- @finish="onCreateBackup"
17
- @hide="onHide"
18
- />
19
-
20
- <common-pages-backups-modals-restore
21
- v-if="isShowRestoreModal"
22
- v-model="restoreForm"
23
- :datastore="props.restoreDatastore"
24
- :datastore-loading="props.isRestoreDatastoreLoading"
25
- :networks="props.restoreNetworks"
26
- @get-datastore="onGetRestoreDatastore"
27
- @get-networks="onGetRestoreNetworks"
28
- @check-name="onCheckRestoreName"
29
- @finish="onRestore"
30
- @hide="onHide"
31
- />
32
-
33
- <common-pages-backups-modals-delete-backup
34
- v-if="isShowDeleteBackupModal || isShowDeleteAllBackupsModal"
35
- :name="action?.name"
36
- :is-loading="isLoadingDeleteBackup"
37
- :is-all="isShowDeleteAllBackupsModal"
38
- @remove="onDeleteBackup"
39
- @hide="onHide"
40
- />
41
- </template>
42
-
43
- <script lang="ts" setup>
44
- import type { UI_I_WizardStep } from '~/node_modules/bfg-uikit/components/ui/wizard/lib/models/interfaces'
45
- import type { UI_T_Project } from '~/lib/models/types'
46
- import type {
47
- UI_I_SendTaskParams,
48
- UI_I_ModalPayload,
49
- } from '~/lib/models/interfaces'
50
- import type { UI_I_ScheduleNewTasksForm } from '~/components/common/pages/scheduledTasks/modals/lib/models/interfaces'
51
- import type {
52
- UI_I_BackupDatastoreTable,
53
- UI_I_CreateBackupForm,
54
- UI_I_Pvm,
55
- UI_I_RestoreForm,
56
- } from '~/components/common/pages/backups/modals/lib/models/interfaces'
57
- import type { UI_I_DatastoreTableItem } from '~/lib/models/store/storage/interfaces'
58
- import type { UI_I_NetworkTableItem } from '~/lib/models/store/network/interfaces'
59
- import type { UI_I_BackupAction } from '~/components/common/pages/backups/lib/models/interfaces'
60
- import type { UI_I_NameCheck } from '~/components/common/pages/backups/modals/restore/name/lib/models/interfaces'
61
- import { sendTask } from '~/lib/utils/sendTask'
62
- import { scheduledTaskDefaultFormFunc } from '~/components/common/pages/scheduledTasks/modals/lib/config/createScheduledTask'
63
- import { backupDefaultFormFunc } from '~/components/common/pages/backups/modals/lib/config/createBackup'
64
- import { restoreDefaultFormFunc } from '~/components/common/pages/backups/modals/lib/config/restore'
65
- import { scheduledTasks } from '~/components/common/pages/scheduledTasks/lib/utils/utils'
66
-
67
- const action = defineModel<UI_I_BackupAction | null>('action', {
68
- required: true,
69
- })
70
-
71
- const props = defineProps<{
72
- project: UI_T_Project
73
- target: string
74
- selectedVmName: string
75
- disks: UI_I_Pvm['disk_devices']
76
- disksLoading: boolean
77
- datastoreTable: UI_I_BackupDatastoreTable | null
78
- datastoreTableLoading: boolean
79
- restoreDatastore: UI_I_DatastoreTableItem[]
80
- isRestoreDatastoreLoading: boolean
81
- restoreNetworks: UI_I_NetworkTableItem[]
82
- }>()
83
- const emits = defineEmits<{
84
- (event: 'change-step-create-backup', value: UI_I_WizardStep[]): void
85
- (event: 'get-restore-datastore', value: string): void
86
- (event: 'get-restore-networks', value: string): void
87
- (event: 'check-restore-name', value: UI_I_NameCheck): void
88
- (event: 'check-backup-name', value: UI_I_NameCheck): void
89
- (event: 'delete-backup', value: boolean): void
90
- }>()
91
-
92
- const { $store }: any = useNuxtApp()
93
-
94
- const backupForm = ref<UI_I_CreateBackupForm>(
95
- useDeepCopy(backupDefaultFormFunc())
96
- )
97
-
98
- const schedulerTaskForm = ref<UI_I_ScheduleNewTasksForm>(
99
- useDeepCopy(scheduledTaskDefaultFormFunc())
100
- )
101
-
102
- const restoreForm = ref<UI_I_RestoreForm>(useDeepCopy(restoreDefaultFormFunc()))
103
- const deleteBackupId = ref<string>('')
104
-
105
- const schedulerTask = computed<UI_I_ModalPayload>(
106
- () => $store.getters['backup/getCreateBackupModal']
107
- )
108
- watch(
109
- schedulerTask,
110
- (newValue: UI_I_ModalPayload) => {
111
- const { scheduler } = newValue
112
- if (!scheduler.isSchedulerTask) return
113
- schedulerTaskForm.value = scheduler.data
114
- },
115
- { immediate: true, deep: true }
116
- )
117
-
118
- const isShowDeleteBackupModal = ref<boolean>(false)
119
- const isShowDeleteAllBackupsModal = ref<boolean>(false)
120
- const isLoadingDeleteBackup = ref<boolean>(false)
121
- const isShowRestoreModal = ref<boolean>(false)
122
-
123
- const onCreateBackup = (): void => {
124
- // TODO
125
- backupForm.value.target = props.target
126
- const backupTask: UI_I_SendTaskParams = {
127
- method:
128
- props.project === 'sphere'
129
- ? 'VirtualMachines.CreateBackup'
130
- : 'backup.create_backup',
131
- target: props.target,
132
- args: backupForm.value,
133
- }
134
-
135
- const {
136
- scheduler: { isSchedulerTask, editTask, data },
137
- } = schedulerTask.value
138
- const sendData = isSchedulerTask
139
- ? scheduledTasks(
140
- schedulerTaskForm.value,
141
- backupTask,
142
- props.target,
143
- editTask,
144
- data,
145
- props.project
146
- )
147
- : backupTask
148
-
149
- sendTask(sendData)
150
- onHide()
151
- }
152
-
153
- const onDeleteBackup = async (isAll: boolean): Promise<void> => {
154
- isLoadingDeleteBackup.value = true
155
- emits('delete-backup', isAll)
156
- isLoadingDeleteBackup.value = false
157
- onHide()
158
- }
159
-
160
- const onRestore = (): void => {
161
- sendTask({
162
- args: restoreForm.value,
163
- method:
164
- props.project === 'sphere'
165
- ? 'VirtualMachines.RestoreBackup'
166
- : 'backup.restore_backup',
167
- target: props.target,
168
- })
169
- onHide()
170
- }
171
-
172
- watch(
173
- action,
174
- (newValue) => {
175
- switch (newValue?.action) {
176
- case 'createBackup':
177
- // TODO
178
- $store.dispatch('backup/A_SHOW_CREATE_BACKUP_MODAL', {
179
- isShow: true,
180
- scheduler: {
181
- isSchedulerTask: false,
182
- editTask: false,
183
- data: null,
184
- },
185
- })
186
- break
187
- case 'restoreBackup':
188
- isShowRestoreModal.value = true
189
- restoreForm.value.backup_storage = newValue.storageId || ''
190
- restoreForm.value.bucket = newValue.bucketId || ''
191
- restoreForm.value.backup = newValue.backupId || ''
192
- break
193
- case 'deleteBackup':
194
- deleteBackupId.value = newValue.backupId || ''
195
- isShowDeleteBackupModal.value = true
196
- break
197
- case 'deleteBackupAll':
198
- isShowDeleteAllBackupsModal.value = true
199
- break
200
- }
201
- },
202
- { deep: true }
203
- )
204
-
205
- const onHide = (): void => {
206
- // TODO
207
- $store.dispatch('backup/A_SHOW_CREATE_BACKUP_MODAL', {
208
- isShow: false,
209
- scheduler: {
210
- isSchedulerTask: false,
211
- editTask: false,
212
- data: null,
213
- },
214
- })
215
- isShowRestoreModal.value = false
216
- isShowDeleteBackupModal.value = false
217
- isShowDeleteAllBackupsModal.value = false
218
-
219
- action.value.action = ''
220
- backupForm.value = useDeepCopy(backupDefaultFormFunc())
221
- backupForm.value.target = props.target
222
- restoreForm.value = useDeepCopy(restoreDefaultFormFunc())
223
- }
224
-
225
- const onChangeStepCreateBackup = (value: UI_I_WizardStep[]): void => {
226
- emits('change-step-create-backup', value)
227
- }
228
- const onCheckBackupName = (data: UI_I_NameCheck): void => {
229
- emits('check-backup-name', data)
230
- }
231
-
232
- const onGetRestoreDatastore = (bucket: string): void => {
233
- emits('get-restore-datastore', bucket)
234
- }
235
- const onGetRestoreNetworks = (hostId: string): void => {
236
- emits('get-restore-networks', hostId)
237
- }
238
- const onCheckRestoreName = (data: UI_I_NameCheck): void => {
239
- emits('check-restore-name', data)
240
- }
241
- </script>
242
-
243
- <style lang="scss" scoped></style>
1
+ <template>
2
+ <common-pages-backups-modals-create-backup
3
+ v-if="schedulerTask.isShow"
4
+ v-model="backupForm"
5
+ v-model:scheduler-form="schedulerTaskForm"
6
+ :is-scheduled-tasks="schedulerTask.scheduler.isSchedulerTask"
7
+ :is-edit-scheduled-tasks="schedulerTask.scheduler.editTask"
8
+ :target="props.target"
9
+ :selected-vm-name="props.selectedVmName"
10
+ :disks="props.disks"
11
+ :disks-loading="props.disksLoading"
12
+ :datastore-table="props.datastoreTable"
13
+ :datastore-table-loading="props.datastoreTableLoading"
14
+ @change-step-create-backup="onChangeStepCreateBackup"
15
+ @check-name="onCheckBackupName"
16
+ @finish="onCreateBackup"
17
+ @hide="onHide"
18
+ />
19
+
20
+ <common-pages-backups-modals-restore
21
+ v-if="isShowRestoreModal"
22
+ v-model="restoreForm"
23
+ :datastore="props.restoreDatastore"
24
+ :datastore-loading="props.isRestoreDatastoreLoading"
25
+ :networks="props.restoreNetworks"
26
+ @get-datastore="onGetRestoreDatastore"
27
+ @get-networks="onGetRestoreNetworks"
28
+ @check-name="onCheckRestoreName"
29
+ @finish="onRestore"
30
+ @hide="onHide"
31
+ />
32
+
33
+ <common-pages-backups-modals-delete-backup
34
+ v-if="isShowDeleteBackupModal || isShowDeleteAllBackupsModal"
35
+ :name="action?.name"
36
+ :is-loading="isLoadingDeleteBackup"
37
+ :is-all="isShowDeleteAllBackupsModal"
38
+ @remove="onDeleteBackup"
39
+ @hide="onHide"
40
+ />
41
+ </template>
42
+
43
+ <script lang="ts" setup>
44
+ import type { UI_I_WizardStep } from '~/node_modules/bfg-uikit/components/ui/wizard/lib/models/interfaces'
45
+ import type { UI_T_Project } from '~/lib/models/types'
46
+ import type {
47
+ UI_I_SendTaskParams,
48
+ UI_I_ModalPayload,
49
+ } from '~/lib/models/interfaces'
50
+ import type { UI_I_ScheduleNewTasksForm } from '~/components/common/pages/scheduledTasks/modals/lib/models/interfaces'
51
+ import type {
52
+ UI_I_BackupDatastoreTable,
53
+ UI_I_CreateBackupForm,
54
+ UI_I_Pvm,
55
+ UI_I_RestoreForm,
56
+ } from '~/components/common/pages/backups/modals/lib/models/interfaces'
57
+ import type { UI_I_DatastoreTableItem } from '~/lib/models/store/storage/interfaces'
58
+ import type { UI_I_NetworkTableItem } from '~/lib/models/store/network/interfaces'
59
+ import type { UI_I_BackupAction } from '~/components/common/pages/backups/lib/models/interfaces'
60
+ import type { UI_I_NameCheck } from '~/components/common/pages/backups/modals/restore/name/lib/models/interfaces'
61
+ import { sendTask } from '~/lib/utils/sendTask'
62
+ import { scheduledTaskDefaultFormFunc } from '~/components/common/pages/scheduledTasks/modals/lib/config/createScheduledTask'
63
+ import { backupDefaultFormFunc } from '~/components/common/pages/backups/modals/lib/config/createBackup'
64
+ import { restoreDefaultFormFunc } from '~/components/common/pages/backups/modals/lib/config/restore'
65
+ import { scheduledTasks } from '~/components/common/pages/scheduledTasks/lib/utils/utils'
66
+
67
+ const action = defineModel<UI_I_BackupAction | null>('action', {
68
+ required: true,
69
+ })
70
+
71
+ const props = defineProps<{
72
+ project: UI_T_Project
73
+ target: string
74
+ selectedVmName: string
75
+ disks: UI_I_Pvm['disk_devices']
76
+ disksLoading: boolean
77
+ datastoreTable: UI_I_BackupDatastoreTable | null
78
+ datastoreTableLoading: boolean
79
+ restoreDatastore: UI_I_DatastoreTableItem[]
80
+ isRestoreDatastoreLoading: boolean
81
+ restoreNetworks: UI_I_NetworkTableItem[]
82
+ }>()
83
+ const emits = defineEmits<{
84
+ (event: 'change-step-create-backup', value: UI_I_WizardStep[]): void
85
+ (event: 'get-restore-datastore', value: string): void
86
+ (event: 'get-restore-networks', value: string): void
87
+ (event: 'check-restore-name', value: UI_I_NameCheck): void
88
+ (event: 'check-backup-name', value: UI_I_NameCheck): void
89
+ (event: 'delete-backup', value: boolean): void
90
+ }>()
91
+
92
+ const { $store }: any = useNuxtApp()
93
+
94
+ const backupForm = ref<UI_I_CreateBackupForm>(
95
+ useDeepCopy(backupDefaultFormFunc())
96
+ )
97
+
98
+ const schedulerTaskForm = ref<UI_I_ScheduleNewTasksForm>(
99
+ useDeepCopy(scheduledTaskDefaultFormFunc())
100
+ )
101
+
102
+ const restoreForm = ref<UI_I_RestoreForm>(useDeepCopy(restoreDefaultFormFunc()))
103
+ const deleteBackupId = ref<string>('')
104
+
105
+ const schedulerTask = computed<UI_I_ModalPayload>(
106
+ () => $store.getters['backup/getCreateBackupModal']
107
+ )
108
+ watch(
109
+ schedulerTask,
110
+ (newValue: UI_I_ModalPayload) => {
111
+ const { scheduler } = newValue
112
+ if (!scheduler.isSchedulerTask) return
113
+ schedulerTaskForm.value = scheduler.data
114
+ },
115
+ { immediate: true, deep: true }
116
+ )
117
+
118
+ const isShowDeleteBackupModal = ref<boolean>(false)
119
+ const isShowDeleteAllBackupsModal = ref<boolean>(false)
120
+ const isLoadingDeleteBackup = ref<boolean>(false)
121
+ const isShowRestoreModal = ref<boolean>(false)
122
+
123
+ const onCreateBackup = (): void => {
124
+ // TODO
125
+ backupForm.value.target = props.target
126
+ const backupTask: UI_I_SendTaskParams = {
127
+ method:
128
+ props.project === 'sphere'
129
+ ? 'VirtualMachines.CreateBackup'
130
+ : 'backup.create_backup',
131
+ target: props.target,
132
+ args: backupForm.value,
133
+ }
134
+
135
+ const {
136
+ scheduler: { isSchedulerTask, editTask, data },
137
+ } = schedulerTask.value
138
+ const sendData = isSchedulerTask
139
+ ? scheduledTasks(
140
+ schedulerTaskForm.value,
141
+ backupTask,
142
+ props.target,
143
+ editTask,
144
+ data,
145
+ props.project
146
+ )
147
+ : backupTask
148
+
149
+ sendTask(sendData)
150
+ onHide()
151
+ }
152
+
153
+ const onDeleteBackup = async (isAll: boolean): Promise<void> => {
154
+ isLoadingDeleteBackup.value = true
155
+ emits('delete-backup', isAll)
156
+ isLoadingDeleteBackup.value = false
157
+ onHide()
158
+ }
159
+
160
+ const onRestore = (): void => {
161
+ sendTask({
162
+ args: restoreForm.value,
163
+ method:
164
+ props.project === 'sphere'
165
+ ? 'VirtualMachines.RestoreBackup'
166
+ : 'backup.restore_backup',
167
+ target: props.target,
168
+ })
169
+ onHide()
170
+ }
171
+
172
+ watch(
173
+ action,
174
+ (newValue) => {
175
+ switch (newValue?.action) {
176
+ case 'createBackup':
177
+ // TODO
178
+ $store.dispatch('backup/A_SHOW_CREATE_BACKUP_MODAL', {
179
+ isShow: true,
180
+ scheduler: {
181
+ isSchedulerTask: false,
182
+ editTask: false,
183
+ data: null,
184
+ },
185
+ })
186
+ break
187
+ case 'restoreBackup':
188
+ isShowRestoreModal.value = true
189
+ restoreForm.value.backup_storage = newValue.storageId || ''
190
+ restoreForm.value.bucket = newValue.bucketId || ''
191
+ restoreForm.value.backup = newValue.backupId || ''
192
+ break
193
+ case 'deleteBackup':
194
+ deleteBackupId.value = newValue.backupId || ''
195
+ isShowDeleteBackupModal.value = true
196
+ break
197
+ case 'deleteBackupAll':
198
+ isShowDeleteAllBackupsModal.value = true
199
+ break
200
+ }
201
+ },
202
+ { deep: true }
203
+ )
204
+
205
+ const onHide = (): void => {
206
+ // TODO
207
+ $store.dispatch('backup/A_SHOW_CREATE_BACKUP_MODAL', {
208
+ isShow: false,
209
+ scheduler: {
210
+ isSchedulerTask: false,
211
+ editTask: false,
212
+ data: null,
213
+ },
214
+ })
215
+ isShowRestoreModal.value = false
216
+ isShowDeleteBackupModal.value = false
217
+ isShowDeleteAllBackupsModal.value = false
218
+
219
+ action.value.action = ''
220
+ backupForm.value = useDeepCopy(backupDefaultFormFunc())
221
+ backupForm.value.target = props.target
222
+ restoreForm.value = useDeepCopy(restoreDefaultFormFunc())
223
+ }
224
+
225
+ const onChangeStepCreateBackup = (value: UI_I_WizardStep[]): void => {
226
+ emits('change-step-create-backup', value)
227
+ }
228
+ const onCheckBackupName = (data: UI_I_NameCheck): void => {
229
+ emits('check-backup-name', data)
230
+ }
231
+
232
+ const onGetRestoreDatastore = (bucket: string): void => {
233
+ emits('get-restore-datastore', bucket)
234
+ }
235
+ const onGetRestoreNetworks = (hostId: string): void => {
236
+ emits('get-restore-networks', hostId)
237
+ }
238
+ const onCheckRestoreName = (data: UI_I_NameCheck): void => {
239
+ emits('check-restore-name', data)
240
+ }
241
+ </script>
242
+
243
+ <style lang="scss" scoped></style>