bfg-common 1.5.421 → 1.5.423

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