bfg-common 1.5.424 → 1.5.425

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 (137) 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_be.json +2 -1
  7. package/assets/localization/local_en.json +2 -1
  8. package/assets/localization/local_hy.json +2 -1
  9. package/assets/localization/local_kk.json +2 -1
  10. package/assets/localization/local_ru.json +2 -1
  11. package/assets/localization/local_zh.json +2 -1
  12. package/components/atoms/TheIcon3.vue +50 -50
  13. package/components/atoms/collapse/CollapseNav.vue +170 -170
  14. package/components/atoms/perPage/PerPage.vue +58 -58
  15. package/components/atoms/table/dataGrid/lib/config/settingsTable.ts +94 -94
  16. package/components/atoms/table/dataGrid/lib/utils/export.ts +16 -16
  17. package/components/common/browse/blocks/contents/filesNew/Skeleton.vue +18 -18
  18. package/components/common/context/lib/models/interfaces.ts +33 -33
  19. package/components/common/diagramMain/modals/lib/config/networkModal.ts +398 -398
  20. package/components/common/diagramMain/modals/lib/config/portModal.ts +251 -251
  21. package/components/common/diagramMain/modals/lib/config/vCenterModal.ts +48 -48
  22. package/components/common/diagramMain/port/Port.vue +580 -580
  23. package/components/common/layout/theHeader/helpMenu/About.vue +82 -82
  24. package/components/common/pages/backups/Backups.vue +102 -102
  25. package/components/common/pages/backups/DetailView.vue +52 -52
  26. package/components/common/pages/backups/lib/models/interfaces.ts +36 -36
  27. package/components/common/pages/backups/modals/Modals.vue +231 -231
  28. package/components/common/pages/backups/modals/createBackup/CreateBackup.vue +376 -376
  29. package/components/common/pages/backups/modals/createBackup/configuration/Configuration.vue +29 -29
  30. package/components/common/pages/backups/modals/createBackup/configuration/backupWindow/BackupWindow.vue +26 -26
  31. package/components/common/pages/backups/modals/createBackup/configuration/maxBandwidth/MaxBandwidth.vue +66 -66
  32. package/components/common/pages/backups/modals/createBackup/configuration/maxBandwidth/lib/config/options.ts +6 -6
  33. package/components/common/pages/backups/modals/createBackup/configuration/strategy/Strategy.vue +35 -35
  34. package/components/common/pages/backups/modals/createBackup/datastores/Datastores.vue +59 -59
  35. package/components/common/pages/backups/modals/createBackup/datastores/tableView/TableView.vue +95 -95
  36. package/components/common/pages/backups/modals/createBackup/datastores/tableView/lib/config/table.ts +119 -119
  37. package/components/common/pages/backups/modals/createBackup/disks/tableView/lib/config/table.ts +117 -117
  38. package/components/common/pages/backups/modals/createBackup/general/General.vue +135 -135
  39. package/components/common/pages/backups/modals/createBackup/lib/config/steps.ts +117 -117
  40. package/components/common/pages/backups/modals/createBackup/lib/config/strategyOptions.ts +12 -12
  41. package/components/common/pages/backups/modals/lib/config/restore.ts +115 -115
  42. package/components/common/pages/backups/modals/lib/models/interfaces.ts +186 -186
  43. package/components/common/pages/backups/modals/restore/Restore.vue +417 -417
  44. package/components/common/pages/backups/modals/restore/disks/Disks.vue +27 -27
  45. package/components/common/pages/backups/modals/restore/disks/tableView/TableView.vue +102 -102
  46. package/components/common/pages/backups/modals/restore/disks/tableView/lib/config/table.ts +117 -117
  47. package/components/common/pages/backups/modals/restore/lib/config/steps.ts +108 -108
  48. package/components/common/pages/backups/modals/restore/name/Name.vue +160 -160
  49. package/components/common/pages/backups/modals/restore/name/lib/models/interfaces.ts +6 -6
  50. package/components/common/pages/backups/modals/restore/networks/Networks.vue +67 -67
  51. package/components/common/pages/backups/modals/restore/networks/table/Table.vue +214 -214
  52. package/components/common/pages/backups/modals/restore/types/lib/config/typeOptions.ts +25 -25
  53. package/components/common/pages/backups/tools/Tools.vue +75 -75
  54. package/components/common/pages/backups/tools/lib/config/tabs.ts +36 -36
  55. package/components/common/pages/home/headline/HeadlineOld.vue +42 -42
  56. package/components/common/pages/home/lib/models/interfaces.ts +48 -48
  57. package/components/common/pages/home/widgets/hosts/Hosts.vue +27 -27
  58. package/components/common/pages/home/widgets/hosts/lib/config/items.ts +23 -23
  59. package/components/common/pages/home/widgets/vms/VmsOld.vue +35 -35
  60. package/components/common/pages/home/widgets/vms/lib/config/items.ts +19 -19
  61. package/components/common/pages/scheduledTasks/lib/utils/utils.ts +84 -84
  62. package/components/common/readyToComplete/ReadyToComplete.vue +17 -17
  63. package/components/common/select/radio/RadioGroup.vue +137 -137
  64. package/components/common/spiceConsole/Drawer.vue +381 -381
  65. package/components/common/spiceConsole/SpiceConsole.vue +127 -127
  66. package/components/common/spiceConsole/lib/models/interfaces.ts +5 -5
  67. package/components/common/tools/Actions.vue +207 -207
  68. package/components/common/treeView/TreeView.vue +52 -52
  69. package/components/common/vm/actions/add/folderTreeView/FolderTreeView.vue +72 -72
  70. package/components/common/vm/actions/add/folderTreeView/New.vue +40 -40
  71. package/components/common/vm/actions/clone/lib/config/steps.ts +291 -291
  72. package/components/common/vm/actions/clone/toTemplate/ToTemplate.vue +2 -2
  73. package/components/common/vm/actions/clone/toTemplate/lib/config/steps.ts +4 -2
  74. package/components/common/vm/actions/clone/toTemplate/lib/models/interfaces.ts +1 -1
  75. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/Media.vue +25 -25
  76. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaNew.vue +78 -78
  77. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaOld.vue +50 -50
  78. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/Shares.vue +140 -140
  79. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/lib/config/options.ts +28 -28
  80. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/Location.vue +154 -154
  81. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/LocationOld.vue +85 -85
  82. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/maximumSize/MaximumSize.vue +23 -23
  83. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddress.vue +119 -119
  84. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoNew.vue +66 -66
  85. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoOld.vue +62 -62
  86. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIo.vue +31 -31
  87. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIoOld.vue +76 -76
  88. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/Note.vue +15 -15
  89. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteNew.vue +42 -42
  90. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteOld.vue +30 -30
  91. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGridOld.vue +84 -84
  92. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/Other.vue +16 -16
  93. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/numberDisplays/NumberDisplays.vue +53 -53
  94. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/delay/Delay.vue +32 -32
  95. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/Firmware.vue +60 -60
  96. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/Order.vue +174 -174
  97. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/Keymap.vue +32 -32
  98. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/KeymapOld.vue +44 -44
  99. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/Password.vue +103 -103
  100. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirection.vue +28 -28
  101. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionOld.vue +44 -44
  102. package/components/common/vm/actions/common/select/compatibility/Old.vue +107 -107
  103. package/components/common/vm/actions/common/select/computeResource/ComputeResource.vue +143 -143
  104. package/components/common/vm/actions/common/select/computeResource/New.vue +184 -184
  105. package/components/common/vm/actions/common/select/computeResource/treeView/TreeView.vue +131 -131
  106. package/components/common/vm/actions/common/select/createType/CreateType.vue +38 -38
  107. package/components/common/vm/actions/common/select/createType/lib/config/items.ts +48 -48
  108. package/components/common/vm/actions/common/select/createType/lib/models/interfaces.ts +5 -5
  109. package/components/common/vm/actions/common/select/os/Old.vue +152 -152
  110. package/components/common/vm/actions/common/select/os/Os.vue +139 -139
  111. package/components/common/vm/actions/common/select/storage/new/lib/models/interfaces.ts +5 -5
  112. package/components/common/vm/actions/common/select/storage/new/lib/utils/utils.ts +21 -21
  113. package/components/common/vm/actions/common/select/template/old/Old.vue +50 -50
  114. package/components/common/vm/actions/editSettings/new/Skeleton.vue +88 -88
  115. package/components/common/vmt/actions/add/New.vue +5 -3
  116. package/components/common/vmt/actions/add/Old.vue +5 -3
  117. package/components/common/vmt/actions/add/lib/config/steps.ts +2 -2
  118. package/components/common/vmt/actions/add/lib/models/interfaces.ts +23 -23
  119. package/components/common/wizards/datastore/add/steps/nameAndConfigure/_serversList/lib/config/tableKeys.ts +2 -2
  120. package/components/common/wizards/datastore/add/steps/nameAndConfigure/_serversList/lib/models/types.ts +1 -1
  121. package/components/common/wizards/datastore/add/steps/typeMode/lib/config/typeOptions.ts +43 -43
  122. package/components/common/wizards/vm/migrate/lib/config/steps.ts +157 -157
  123. package/components/common/wizards/vm/migrate/lib/validations.ts +68 -68
  124. package/components/common/wizards/vm/migrate/select/network/Network.vue +103 -103
  125. package/components/common/wizards/vm/migrate/select/type/lib/config/typeOptions.ts +45 -45
  126. package/composables/productNameLocal.ts +30 -30
  127. package/composables/useAppVersion.ts +21 -21
  128. package/package.json +1 -1
  129. package/plugins/date.ts +233 -233
  130. package/plugins/panelStates.ts +70 -70
  131. package/plugins/text.ts +59 -59
  132. package/public/spice-console/lib/images/bitmap.js +203 -203
  133. package/public/spice-console/network/spicechannel.js +390 -390
  134. package/store/main/mutations.ts +7 -7
  135. package/store/main/state.ts +7 -7
  136. package/store/tasks/lib/models/enums.ts +5 -0
  137. package/store/tasks/mappers/recentTasks.ts +14 -3
@@ -1,231 +1,231 @@
1
- <template>
2
- <common-pages-backups-modals-create-backup
3
- v-if="isShowCreateBackupModal.isShow"
4
- v-model="backupForm"
5
- v-model:scheduler-form="schedulerTaskForm"
6
- :is-scheduled-tasks="isShowCreateBackupModal.scheduler.isSchedulerTask"
7
- :is-edit-scheduled-tasks="isShowCreateBackupModal.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_T_Project } from '~/lib/models/types'
45
- import type { UI_I_SendTaskParams } from '~/lib/models/interfaces'
46
- import type { UI_I_ScheduleNewTasksForm } from '~/components/common/pages/scheduledTasks/modals/lib/models/interfaces'
47
- import type {
48
- UI_I_BackupDatastoreTable,
49
- UI_I_CreateBackupForm,
50
- UI_I_Pvm,
51
- UI_I_RestoreForm,
52
- } from '~/components/common/pages/backups/modals/lib/models/interfaces'
53
- import type { UI_I_DatastoreTableItem } from '~/lib/models/store/storage/interfaces'
54
- import type { UI_I_NetworkTableItem } from '~/lib/models/store/network/interfaces'
55
- import type { UI_I_WizardStep } from '~/components/atoms/wizard/lib/models/interfaces'
56
- import type { UI_I_BackupAction } from '~/components/common/pages/backups/lib/models/interfaces'
57
- import type { UI_I_NameCheck } from '~/components/common/pages/backups/modals/restore/name/lib/models/interfaces'
58
- import { sendTask } from '~/lib/utils/sendTask'
59
- import { scheduledTaskDefaultFormFunc } from '~/components/common/pages/scheduledTasks/modals/lib/config/createScheduledTask'
60
- import { backupDefaultFormFunc } from '~/components/common/pages/backups/modals/lib/config/createBackup'
61
- import { restoreDefaultFormFunc } from '~/components/common/pages/backups/modals/lib/config/restore'
62
- import { scheduledTasks } from '~/components/common/pages/scheduledTasks/lib/utils/utils'
63
-
64
- const action = defineModel<UI_I_BackupAction>('action', { required: true })
65
-
66
- const props = defineProps<{
67
- project: UI_T_Project
68
- target: string
69
- selectedVmName: string
70
- disks: UI_I_Pvm['disk_devices']
71
- disksLoading: boolean
72
- datastoreTable: UI_I_BackupDatastoreTable
73
- datastoreTableLoading: boolean
74
- restoreDatastore: UI_I_DatastoreTableItem[]
75
- isRestoreDatastoreLoading: boolean
76
- restoreNetworks: UI_I_NetworkTableItem[]
77
- }>()
78
- const emits = defineEmits<{
79
- (event: 'change-step-create-backup', value: UI_I_WizardStep[]): void
80
- (event: 'get-restore-datastore', value: string): void
81
- (event: 'get-restore-networks', value: string): void
82
- (event: 'check-restore-name', value: UI_I_NameCheck): void
83
- (event: 'check-backup-name', value: UI_I_NameCheck): void
84
- (event: 'delete-backup', value: boolean): void
85
- }>()
86
-
87
- const { $store }: any = useNuxtApp()
88
-
89
- const idFromRoute = useRoute().params.id?.toString() || ''
90
-
91
- const backupForm = ref<UI_I_CreateBackupForm>(
92
- useDeepCopy(backupDefaultFormFunc())
93
- )
94
- backupForm.value.target = props.target
95
-
96
- const schedulerTaskForm = ref<UI_I_ScheduleNewTasksForm>(
97
- useDeepCopy(scheduledTaskDefaultFormFunc())
98
- )
99
-
100
- const restoreForm = ref<UI_I_RestoreForm>(useDeepCopy(restoreDefaultFormFunc()))
101
- const deleteBackupId = ref<string>('')
102
-
103
- // TODO fix after refactor schedule tasks
104
- const isShowCreateBackupModal = computed<any>( // ??
105
- () => $store.getters['backup/getCreateBackupModal']
106
- )
107
- const isShowDeleteBackupModal = ref<boolean>(false)
108
- const isShowDeleteAllBackupsModal = ref<boolean>(false)
109
- const isLoadingDeleteBackup = ref<boolean>(false)
110
- const isShowRestoreModal = ref<boolean>(false)
111
-
112
- const onCreateBackup = (): void => {
113
- // TODO
114
- const backupTask: UI_I_SendTaskParams = {
115
- method:
116
- props.project === 'sphere'
117
- ? 'VirtualMachines.CreateBackup'
118
- : 'backup.create_backup',
119
- target: idFromRoute,
120
- args: backupForm.value,
121
- }
122
-
123
- const {
124
- scheduler: { isSchedulerTask, editTask, data },
125
- } = isShowCreateBackupModal.value
126
- const sendData = isSchedulerTask
127
- ? scheduledTasks(
128
- schedulerTaskForm.value,
129
- backupTask,
130
- idFromRoute,
131
- editTask,
132
- data,
133
- props.project
134
- )
135
- : backupTask
136
-
137
- sendTask(sendData)
138
- onHide()
139
- }
140
-
141
- const onDeleteBackup = async (isAll: boolean): Promise<void> => {
142
- isLoadingDeleteBackup.value = true
143
- emits('delete-backup', isAll)
144
- isLoadingDeleteBackup.value = false
145
- onHide()
146
- }
147
-
148
- const onRestore = (): void => {
149
- sendTask({
150
- args: restoreForm.value,
151
- method:
152
- props.project === 'sphere'
153
- ? 'VirtualMachines.RestoreBackup'
154
- : 'backup.restore_backup',
155
- target: props.target,
156
- })
157
- onHide()
158
- }
159
-
160
- watch(
161
- action,
162
- (newValue) => {
163
- switch (newValue.action) {
164
- case 'createBackup':
165
- // TODO
166
- $store.dispatch('backup/A_SHOW_CREATE_BACKUP_MODAL', {
167
- isShow: true,
168
- scheduler: {
169
- isSchedulerTask: false,
170
- editTask: false,
171
- data: null,
172
- },
173
- })
174
- break
175
- case 'restoreBackup':
176
- isShowRestoreModal.value = true
177
- restoreForm.value.backup_storage = newValue.storageId || ''
178
- restoreForm.value.bucket = newValue.bucketId || ''
179
- restoreForm.value.backup = newValue.backupId || ''
180
- break
181
- case 'deleteBackup':
182
- deleteBackupId.value = newValue.backupId || ''
183
- isShowDeleteBackupModal.value = true
184
- break
185
- case 'deleteBackupAll':
186
- isShowDeleteAllBackupsModal.value = true
187
- break
188
- }
189
- },
190
- { deep: true }
191
- )
192
-
193
- const onHide = (): void => {
194
- // TODO
195
- $store.dispatch('backup/A_SHOW_CREATE_BACKUP_MODAL', {
196
- isShow: false,
197
- scheduler: {
198
- isSchedulerTask: false,
199
- editTask: false,
200
- data: null,
201
- },
202
- })
203
- isShowRestoreModal.value = false
204
- isShowDeleteBackupModal.value = false
205
- isShowDeleteAllBackupsModal.value = false
206
-
207
- action.value.action = ''
208
- backupForm.value = useDeepCopy(backupDefaultFormFunc())
209
- backupForm.value.target = props.target
210
- restoreForm.value = useDeepCopy(restoreDefaultFormFunc())
211
- }
212
-
213
- const onChangeStepCreateBackup = (value: UI_I_WizardStep[]): void => {
214
- emits('change-step-create-backup', value)
215
- }
216
- const onCheckBackupName = (data: UI_I_NameCheck): void => {
217
- emits('check-backup-name', data)
218
- }
219
-
220
- const onGetRestoreDatastore = (bucket: string): void => {
221
- emits('get-restore-datastore', bucket)
222
- }
223
- const onGetRestoreNetworks = (hostId: string): void => {
224
- emits('get-restore-networks', hostId)
225
- }
226
- const onCheckRestoreName = (data: UI_I_NameCheck): void => {
227
- emits('check-restore-name', data)
228
- }
229
- </script>
230
-
231
- <style lang="scss" scoped></style>
1
+ <template>
2
+ <common-pages-backups-modals-create-backup
3
+ v-if="isShowCreateBackupModal.isShow"
4
+ v-model="backupForm"
5
+ v-model:scheduler-form="schedulerTaskForm"
6
+ :is-scheduled-tasks="isShowCreateBackupModal.scheduler.isSchedulerTask"
7
+ :is-edit-scheduled-tasks="isShowCreateBackupModal.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_T_Project } from '~/lib/models/types'
45
+ import type { UI_I_SendTaskParams } from '~/lib/models/interfaces'
46
+ import type { UI_I_ScheduleNewTasksForm } from '~/components/common/pages/scheduledTasks/modals/lib/models/interfaces'
47
+ import type {
48
+ UI_I_BackupDatastoreTable,
49
+ UI_I_CreateBackupForm,
50
+ UI_I_Pvm,
51
+ UI_I_RestoreForm,
52
+ } from '~/components/common/pages/backups/modals/lib/models/interfaces'
53
+ import type { UI_I_DatastoreTableItem } from '~/lib/models/store/storage/interfaces'
54
+ import type { UI_I_NetworkTableItem } from '~/lib/models/store/network/interfaces'
55
+ import type { UI_I_WizardStep } from '~/components/atoms/wizard/lib/models/interfaces'
56
+ import type { UI_I_BackupAction } from '~/components/common/pages/backups/lib/models/interfaces'
57
+ import type { UI_I_NameCheck } from '~/components/common/pages/backups/modals/restore/name/lib/models/interfaces'
58
+ import { sendTask } from '~/lib/utils/sendTask'
59
+ import { scheduledTaskDefaultFormFunc } from '~/components/common/pages/scheduledTasks/modals/lib/config/createScheduledTask'
60
+ import { backupDefaultFormFunc } from '~/components/common/pages/backups/modals/lib/config/createBackup'
61
+ import { restoreDefaultFormFunc } from '~/components/common/pages/backups/modals/lib/config/restore'
62
+ import { scheduledTasks } from '~/components/common/pages/scheduledTasks/lib/utils/utils'
63
+
64
+ const action = defineModel<UI_I_BackupAction>('action', { required: true })
65
+
66
+ const props = defineProps<{
67
+ project: UI_T_Project
68
+ target: string
69
+ selectedVmName: string
70
+ disks: UI_I_Pvm['disk_devices']
71
+ disksLoading: boolean
72
+ datastoreTable: UI_I_BackupDatastoreTable
73
+ datastoreTableLoading: boolean
74
+ restoreDatastore: UI_I_DatastoreTableItem[]
75
+ isRestoreDatastoreLoading: boolean
76
+ restoreNetworks: UI_I_NetworkTableItem[]
77
+ }>()
78
+ const emits = defineEmits<{
79
+ (event: 'change-step-create-backup', value: UI_I_WizardStep[]): void
80
+ (event: 'get-restore-datastore', value: string): void
81
+ (event: 'get-restore-networks', value: string): void
82
+ (event: 'check-restore-name', value: UI_I_NameCheck): void
83
+ (event: 'check-backup-name', value: UI_I_NameCheck): void
84
+ (event: 'delete-backup', value: boolean): void
85
+ }>()
86
+
87
+ const { $store }: any = useNuxtApp()
88
+
89
+ const idFromRoute = useRoute().params.id?.toString() || ''
90
+
91
+ const backupForm = ref<UI_I_CreateBackupForm>(
92
+ useDeepCopy(backupDefaultFormFunc())
93
+ )
94
+ backupForm.value.target = props.target
95
+
96
+ const schedulerTaskForm = ref<UI_I_ScheduleNewTasksForm>(
97
+ useDeepCopy(scheduledTaskDefaultFormFunc())
98
+ )
99
+
100
+ const restoreForm = ref<UI_I_RestoreForm>(useDeepCopy(restoreDefaultFormFunc()))
101
+ const deleteBackupId = ref<string>('')
102
+
103
+ // TODO fix after refactor schedule tasks
104
+ const isShowCreateBackupModal = computed<any>( // ??
105
+ () => $store.getters['backup/getCreateBackupModal']
106
+ )
107
+ const isShowDeleteBackupModal = ref<boolean>(false)
108
+ const isShowDeleteAllBackupsModal = ref<boolean>(false)
109
+ const isLoadingDeleteBackup = ref<boolean>(false)
110
+ const isShowRestoreModal = ref<boolean>(false)
111
+
112
+ const onCreateBackup = (): void => {
113
+ // TODO
114
+ const backupTask: UI_I_SendTaskParams = {
115
+ method:
116
+ props.project === 'sphere'
117
+ ? 'VirtualMachines.CreateBackup'
118
+ : 'backup.create_backup',
119
+ target: idFromRoute,
120
+ args: backupForm.value,
121
+ }
122
+
123
+ const {
124
+ scheduler: { isSchedulerTask, editTask, data },
125
+ } = isShowCreateBackupModal.value
126
+ const sendData = isSchedulerTask
127
+ ? scheduledTasks(
128
+ schedulerTaskForm.value,
129
+ backupTask,
130
+ idFromRoute,
131
+ editTask,
132
+ data,
133
+ props.project
134
+ )
135
+ : backupTask
136
+
137
+ sendTask(sendData)
138
+ onHide()
139
+ }
140
+
141
+ const onDeleteBackup = async (isAll: boolean): Promise<void> => {
142
+ isLoadingDeleteBackup.value = true
143
+ emits('delete-backup', isAll)
144
+ isLoadingDeleteBackup.value = false
145
+ onHide()
146
+ }
147
+
148
+ const onRestore = (): void => {
149
+ sendTask({
150
+ args: restoreForm.value,
151
+ method:
152
+ props.project === 'sphere'
153
+ ? 'VirtualMachines.RestoreBackup'
154
+ : 'backup.restore_backup',
155
+ target: props.target,
156
+ })
157
+ onHide()
158
+ }
159
+
160
+ watch(
161
+ action,
162
+ (newValue) => {
163
+ switch (newValue.action) {
164
+ case 'createBackup':
165
+ // TODO
166
+ $store.dispatch('backup/A_SHOW_CREATE_BACKUP_MODAL', {
167
+ isShow: true,
168
+ scheduler: {
169
+ isSchedulerTask: false,
170
+ editTask: false,
171
+ data: null,
172
+ },
173
+ })
174
+ break
175
+ case 'restoreBackup':
176
+ isShowRestoreModal.value = true
177
+ restoreForm.value.backup_storage = newValue.storageId || ''
178
+ restoreForm.value.bucket = newValue.bucketId || ''
179
+ restoreForm.value.backup = newValue.backupId || ''
180
+ break
181
+ case 'deleteBackup':
182
+ deleteBackupId.value = newValue.backupId || ''
183
+ isShowDeleteBackupModal.value = true
184
+ break
185
+ case 'deleteBackupAll':
186
+ isShowDeleteAllBackupsModal.value = true
187
+ break
188
+ }
189
+ },
190
+ { deep: true }
191
+ )
192
+
193
+ const onHide = (): void => {
194
+ // TODO
195
+ $store.dispatch('backup/A_SHOW_CREATE_BACKUP_MODAL', {
196
+ isShow: false,
197
+ scheduler: {
198
+ isSchedulerTask: false,
199
+ editTask: false,
200
+ data: null,
201
+ },
202
+ })
203
+ isShowRestoreModal.value = false
204
+ isShowDeleteBackupModal.value = false
205
+ isShowDeleteAllBackupsModal.value = false
206
+
207
+ action.value.action = ''
208
+ backupForm.value = useDeepCopy(backupDefaultFormFunc())
209
+ backupForm.value.target = props.target
210
+ restoreForm.value = useDeepCopy(restoreDefaultFormFunc())
211
+ }
212
+
213
+ const onChangeStepCreateBackup = (value: UI_I_WizardStep[]): void => {
214
+ emits('change-step-create-backup', value)
215
+ }
216
+ const onCheckBackupName = (data: UI_I_NameCheck): void => {
217
+ emits('check-backup-name', data)
218
+ }
219
+
220
+ const onGetRestoreDatastore = (bucket: string): void => {
221
+ emits('get-restore-datastore', bucket)
222
+ }
223
+ const onGetRestoreNetworks = (hostId: string): void => {
224
+ emits('get-restore-networks', hostId)
225
+ }
226
+ const onCheckRestoreName = (data: UI_I_NameCheck): void => {
227
+ emits('check-restore-name', data)
228
+ }
229
+ </script>
230
+
231
+ <style lang="scss" scoped></style>