bfg-common 1.5.707 → 1.5.708

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 (192) hide show
  1. package/CODE_STYLE.md +109 -109
  2. package/assets/img/icons/icons-sprite-dark-1.svg +3 -2
  3. package/assets/img/icons/icons-sprite-dark-3.svg +227 -227
  4. package/assets/img/icons/icons-sprite-dark-5.svg +488 -488
  5. package/assets/img/icons/icons-sprite-light-1.svg +4 -3
  6. package/assets/img/icons/icons-sprite-light-3.svg +227 -227
  7. package/assets/img/icons/icons-sprite-light-5.svg +488 -488
  8. package/assets/localization/local_be.json +3 -46
  9. package/assets/localization/local_en.json +3 -46
  10. package/assets/localization/local_hy.json +3 -46
  11. package/assets/localization/local_kk.json +3 -46
  12. package/assets/localization/local_ru.json +5 -48
  13. package/assets/localization/local_zh.json +3 -46
  14. package/assets/scss/common/icons/icons-1.scss +1 -1
  15. package/assets/scss/common/icons/icons-2.scss +0 -18
  16. package/assets/scss/common/theme.scss +0 -2
  17. package/assets/scss/components/auth.scss +5 -32
  18. package/components/atoms/TheIcon3.vue +50 -50
  19. package/components/atoms/collapse/CollapseNav.vue +170 -170
  20. package/components/atoms/dropdown/tree/Tree.vue +0 -2
  21. package/components/atoms/perPage/PerPage.vue +58 -58
  22. package/components/atoms/switch/Switch.vue +1 -7
  23. package/components/atoms/table/dataGrid/DataGrid.vue +1718 -1718
  24. package/components/atoms/table/dataGrid/DataGridPagination.vue +97 -97
  25. package/components/atoms/table/dataGrid/lib/config/settingsTable.ts +94 -94
  26. package/components/atoms/table/dataGrid/lib/utils/export.ts +16 -16
  27. package/components/atoms/wizard/Wizard.vue +1 -1
  28. package/components/common/backup/storage/actions/add/lib/utils.ts +51 -51
  29. package/components/common/browse/blocks/contents/filesNew/Skeleton.vue +18 -18
  30. package/components/common/diagramMain/modals/lib/config/vCenterModal.ts +48 -48
  31. package/components/common/diagramMain/port/Port.vue +580 -580
  32. package/components/common/help/navbar/left/lib/utils/constructAccordion.ts +1 -2
  33. package/components/common/help/navbar/right/Right.vue +1 -1
  34. package/components/common/layout/theHeader/TheHeaderNew.vue +315 -315
  35. package/components/common/layout/theHeader/TheHeaderOld.vue +262 -262
  36. package/components/common/layout/theHeader/helpMenu/About.vue +79 -79
  37. package/components/common/layout/theHeader/helpMenu/aboutOld/AboutOld.vue +79 -79
  38. package/components/common/layout/theHeader/modals/reconnect/ReconnectOld.vue +0 -2
  39. package/components/common/layout/theHeader/userMenu/modals/changePassword/ChangePassword.vue +21 -12
  40. package/components/common/layout/theHeader/userMenu/modals/changePassword/New.vue +43 -36
  41. package/components/common/layout/theHeader/userMenu/modals/changePassword/Old.vue +2 -0
  42. package/components/common/layout/theHeader/userMenu/modals/changePassword/lib/utils.ts +1 -1
  43. package/components/common/layout/theHeader/userMenu/modals/preferences/PreferencesNew.vue +0 -13
  44. package/components/common/layout/theHeader/userMenu/modals/preferences/PreferencesOld.vue +144 -144
  45. package/components/common/layout/theHeader/userMenu/modals/preferences/changeLanguage/ChangeLanguage.vue +15 -8
  46. package/components/common/layout/theHeader/userMenu/modals/preferences/changeLanguage/{New.vue → ChangeLanguageNew.vue} +2 -1
  47. package/components/common/layout/theHeader/userMenu/modals/preferences/changeLanguage/{Old.vue → ChangeLanguageOld.vue} +2 -0
  48. package/components/common/layout/theHeader/userMenu/modals/preferences/defaultConsole/DefaultConsole.vue +7 -8
  49. package/components/common/layout/theHeader/userMenu/modals/preferences/defaultConsole/{New.vue → DefaultConsoleNew.vue} +3 -3
  50. package/components/common/layout/theHeader/userMenu/modals/preferences/defaultConsole/{Old.vue → DefaultConsoleOld.vue} +2 -2
  51. package/components/common/layout/theHeader/userMenu/modals/preferences/inventory/Inventory.vue +8 -7
  52. package/components/common/layout/theHeader/userMenu/modals/preferences/inventory/{New.vue → InventoryNew.vue} +2 -3
  53. package/components/common/layout/theHeader/userMenu/modals/preferences/inventory/{Old.vue → InventoryOld.vue} +2 -2
  54. package/components/common/layout/theHeader/userMenu/modals/preferences/lib/models/types.ts +7 -7
  55. package/components/common/layout/theHeader/userMenu/modals/preferences/security/New.vue +12 -277
  56. package/components/common/layout/theHeader/userMenu/modals/preferences/security/Old.vue +56 -30
  57. package/components/common/layout/theHeader/userMenu/modals/preferences/security/Security.vue +6 -65
  58. package/components/common/layout/theHeader/userMenu/modals/preferences/timeFormat/TimeFormat.vue +8 -8
  59. package/components/common/layout/theHeader/userMenu/modals/preferences/timeFormat/{New.vue → TimeFormatNew.vue} +3 -3
  60. package/components/common/layout/theHeader/userMenu/modals/preferences/timeFormat/{Old.vue → TimeFormatOld.vue} +2 -2
  61. package/components/common/layout/theHeader/userMenu/modals/preferences/view/View.vue +7 -8
  62. package/components/common/layout/theHeader/userMenu/modals/preferences/view/{New.vue → ViewNew.vue} +3 -12
  63. package/components/common/layout/theHeader/userMenu/modals/preferences/view/{Old.vue → ViewOld.vue} +2 -2
  64. package/components/common/monitor/advanced/graphView/GraphView.vue +0 -8
  65. package/components/common/monitor/advanced/tools/Tools.vue +1 -5
  66. package/components/common/pages/backups/DetailView.vue +52 -52
  67. package/components/common/pages/backups/lib/models/interfaces.ts +36 -36
  68. package/components/common/pages/backups/modals/Modals.vue +243 -243
  69. package/components/common/pages/backups/modals/createBackup/configuration/maxBandwidth/lib/config/options.ts +6 -6
  70. package/components/common/pages/backups/modals/createBackup/lib/config/readyToCompleteOptions.ts +69 -69
  71. package/components/common/pages/backups/modals/lib/config/restore.ts +115 -115
  72. package/components/common/pages/backups/modals/lib/models/interfaces.ts +186 -186
  73. package/components/common/pages/backups/modals/restore/name/lib/models/interfaces.ts +6 -6
  74. package/components/common/pages/hardwareHealth/historyTestimony/tools/Tools.vue +2 -7
  75. package/components/common/pages/hardwareHealth/tableView/TableView.vue +0 -8
  76. package/components/common/pages/hardwareHealth/tableView/lib/config/sensorTable.ts +1 -13
  77. package/components/common/pages/hardwareHealth/toolsPanel/lib/config/actionsPanel.ts +4 -4
  78. package/components/common/pages/home/lib/models/interfaces.ts +48 -48
  79. package/components/common/pages/home/widgets/hosts/Hosts.vue +27 -27
  80. package/components/common/pages/home/widgets/hosts/lib/config/items.ts +23 -23
  81. package/components/common/pages/home/widgets/vms/VmsOld.vue +35 -35
  82. package/components/common/pages/home/widgets/vms/lib/config/items.ts +19 -19
  83. package/components/common/pages/scheduledTasks/lib/utils/utils.ts +84 -84
  84. package/components/common/qrcode/Qrcode.vue +56 -0
  85. package/components/common/readyToComplete/ReadyToComplete.vue +17 -17
  86. package/components/common/select/radio/RadioGroup.vue +137 -137
  87. package/components/common/spiceConsole/Drawer.vue +420 -420
  88. package/components/common/spiceConsole/SpiceConsole.vue +184 -184
  89. package/components/common/spiceConsole/lib/models/interfaces.ts +5 -5
  90. package/components/common/split/horizontal/New.vue +2 -0
  91. package/components/common/split/vertical/New.vue +1 -2
  92. package/components/common/tools/Actions.vue +207 -207
  93. package/components/common/treeView/TreeView.vue +52 -52
  94. package/components/common/vm/actions/add/New.vue +1 -1
  95. package/components/common/vm/actions/add/Old.vue +1 -1
  96. package/components/common/vm/actions/clone/lib/config/steps.ts +295 -295
  97. package/components/common/vm/actions/clone/new/New.vue +438 -438
  98. package/components/common/vm/actions/clone/old/Old.vue +0 -1
  99. package/components/common/vm/actions/common/customizeHardware/virtualHardware/New.vue +34 -10
  100. package/components/common/vm/actions/common/customizeHardware/virtualHardware/Old.vue +37 -15
  101. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardware.vue +50 -49
  102. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/coresPerSocket/CoresPerSocket.vue +3 -3
  103. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/lib/config/options.ts +28 -28
  104. package/components/common/vm/actions/common/customizeHardware/virtualHardware/lib/models/interfaces.ts +1 -3
  105. package/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/Memory.vue +283 -283
  106. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDisk.vue +7 -13
  107. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/New.vue +4 -7
  108. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/NewPciDevice.vue +45 -52
  109. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/Old.vue +8 -5
  110. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIo.vue +3 -1
  111. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/New.vue +2 -2
  112. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/Old.vue +2 -2
  113. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIo.vue +1 -1
  114. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/New.vue +2 -1
  115. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/Old.vue +2 -1
  116. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/New.vue +1 -1
  117. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGrid.vue +1 -1
  118. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/Old.vue +1 -1
  119. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/Order.vue +156 -156
  120. package/components/common/vm/actions/common/select/compatibility/Old.vue +107 -107
  121. package/components/common/vm/actions/common/select/createType/lib/models/interfaces.ts +5 -5
  122. package/components/common/vm/actions/common/select/options/New.vue +264 -264
  123. package/components/common/vm/actions/common/select/options/Old.vue +2 -1
  124. package/components/common/vm/actions/common/select/options/Options.vue +58 -58
  125. package/components/common/vm/actions/common/select/storage/Old.vue +125 -125
  126. package/components/common/vm/actions/common/select/storage/new/New.vue +311 -311
  127. package/components/common/vm/actions/common/select/storage/new/lib/models/interfaces.ts +5 -5
  128. package/components/common/vm/actions/common/select/storage/new/lib/utils/utils.ts +21 -21
  129. package/components/common/vm/actions/common/select/template/old/Old.vue +50 -50
  130. package/components/common/vm/actions/editSettings/new/Skeleton.vue +88 -88
  131. package/components/common/wizards/common/compatibility/Compatibility.vue +35 -35
  132. package/components/common/wizards/common/compatibility/New.vue +1 -1
  133. package/components/common/wizards/common/compatibility/Old.vue +1 -1
  134. package/components/common/wizards/common/steps/computeResource/New.vue +93 -93
  135. package/components/common/wizards/common/steps/name/Name.vue +178 -178
  136. package/components/common/wizards/common/steps/name/New.vue +221 -221
  137. package/components/common/wizards/common/steps/name/Old.vue +121 -121
  138. package/components/common/wizards/common/steps/name/lib/models/interfaces.ts +4 -4
  139. package/components/common/wizards/common/steps/name/location/New.vue +40 -40
  140. package/components/common/wizards/datastore/add/Add.vue +228 -228
  141. package/components/common/wizards/datastore/add/lib/config/createDatastore.ts +0 -1
  142. package/components/common/wizards/datastore/add/lib/models/interfaces.ts +0 -1
  143. package/components/common/wizards/datastore/add/lib/utils.ts +85 -85
  144. package/components/common/wizards/datastore/add/steps/nameAndDevice/NameAndDeviceNew.vue +0 -5
  145. package/components/common/wizards/datastore/add/steps/nameAndDevice/NameAndDeviceOld.vue +0 -5
  146. package/components/common/wizards/datastore/add/steps/nameAndDevice/table/old/Old.vue +3 -2
  147. package/components/common/wizards/datastore/add/steps/readyComplete/lib/config/propertiesDetails.ts +1 -8
  148. package/components/common/wizards/datastore/add/steps/typeMode/lib/config/typeOptions.ts +43 -43
  149. package/components/common/wizards/vm/migrate/lib/models/enums.ts +2 -2
  150. package/components/common/wizards/vm/migrate/steps/selectStorage/SelectStorage.vue +4 -4
  151. package/components/common/wizards/vm/migrate/steps/selectStorage/configure/disk/table/new/lib/config/diskTable.ts +2 -6
  152. package/components/common/wizards/vm/migrate/steps/selectStorage/configure/disk/table/old/lib/config/diskTable.ts +12 -18
  153. package/composables/useAppVersion.ts +21 -21
  154. package/composables/useEnvLanguage.ts +8 -7
  155. package/composables/useLocal.ts +6 -6
  156. package/composables/useLocalCommon.ts +39 -39
  157. package/lib/models/interfaces.ts +0 -1
  158. package/package.json +4 -3
  159. package/plugins/console.ts +21 -21
  160. package/plugins/date.ts +37 -14
  161. package/plugins/mouse.ts +21 -21
  162. package/plugins/panelStates.ts +70 -70
  163. package/plugins/text.ts +59 -59
  164. package/public/spice-console/application/clientgui.js +854 -854
  165. package/public/spice-console/application/packetfactory.js +211 -211
  166. package/public/spice-console/application/virtualmouse.js +147 -147
  167. package/public/spice-console/lib/images/bitmap.js +203 -203
  168. package/public/spice-console/network/spicechannel.js +440 -440
  169. package/public/spice-console/process/cursorprocess.js +128 -128
  170. package/public/spice-console/process/inputprocess.js +227 -227
  171. package/public/spice-console/process/mainprocess.js +212 -212
  172. package/public/spice-console/run.js +210 -210
  173. package/store/main/getters.ts +2 -2
  174. package/store/main/mutations.ts +7 -7
  175. package/store/main/state.ts +7 -7
  176. package/store/tasks/mappers/recentTasks.ts +123 -123
  177. package/store/tasks/mutations.ts +82 -82
  178. package/components/common/certificate/Certificate.vue +0 -27
  179. package/components/common/certificate/CertificateInfo.vue +0 -139
  180. package/components/common/certificate/Tools.vue +0 -59
  181. package/components/common/certificate/lib/config/tabsPannel.ts +0 -22
  182. package/components/common/certificate/lib/models/interfaces.ts +0 -9
  183. package/components/common/certificate/lib/models/types.ts +0 -1
  184. package/components/common/certificate/modals/renew/New.vue +0 -64
  185. package/components/common/certificate/modals/renew/Old.vue +0 -122
  186. package/components/common/certificate/modals/renew/Renew.vue +0 -67
  187. package/components/common/pages/auth/TheFooter.vue +0 -104
  188. package/components/common/pages/files/lib/models/enums.ts +0 -10
  189. package/components/common/qr/Qr.vue +0 -69
  190. package/components/common/wizards/datastore/add/steps/nameAndDevice/advancedOptions/AdvancedOptions.vue +0 -43
  191. package/components/common/wizards/datastore/add/steps/nameAndDevice/advancedOptions/New.vue +0 -114
  192. package/components/common/wizards/datastore/add/steps/nameAndDevice/advancedOptions/Old.vue +0 -114
@@ -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>
@@ -1,6 +1,6 @@
1
- import type {UI_I_SelectInputItem} from "~/components/common/select/input/lib/models/interfaces";
2
-
3
- export const maxBandwidthOptions: UI_I_SelectInputItem[] = [
4
- { label: 'Mbps', value: 0 },
5
- { label: 'Gbps', value: 1 },
6
- ]
1
+ import type {UI_I_SelectInputItem} from "~/components/common/select/input/lib/models/interfaces";
2
+
3
+ export const maxBandwidthOptions: UI_I_SelectInputItem[] = [
4
+ { label: 'Mbps', value: 0 },
5
+ { label: 'Gbps', value: 1 },
6
+ ]
@@ -1,69 +1,69 @@
1
- import type { UI_I_Localization } from '~/lib/models/interfaces'
2
- import type {
3
- UI_I_BackupDatastoreTable,
4
- UI_I_CreateBackupForm,
5
- } from '~/components/common/pages/backups/modals/lib/models/interfaces'
6
- import type { UI_I_TableInfoItem } from '~/components/atoms/table/info/lib/models/interfaces'
7
- import type { UI_I_SelectInputItem } from '~/components/common/select/input/lib/models/interfaces'
8
-
9
- export const readyToCompleteOptions = (
10
- backupForm: UI_I_CreateBackupForm,
11
- localization: UI_I_Localization,
12
- strategyOptions: UI_I_SelectInputItem[],
13
- datastoreTable: UI_I_BackupDatastoreTable | null
14
- ): UI_I_TableInfoItem[] => {
15
- const { $binary } = useNuxtApp()
16
-
17
- const result = [
18
- // General
19
- {
20
- label: localization.common.name,
21
- value: backupForm.name,
22
- iconClassName: 'icon-backup',
23
- },
24
- {
25
- label: localization.common.description,
26
- value: backupForm.description,
27
- },
28
- ]
29
-
30
- // Disks
31
- backupForm.disk_devices.forEach((disk_device, i) => {
32
- result.push({
33
- label: `${localization.common.disk} ${i + 1}`,
34
- value: disk_device.location,
35
- iconClassName: 'icon-vSphere-dsVmDisk',
36
- })
37
- })
38
-
39
- // Datastores
40
- const datastore = datastoreTable?.items.find(
41
- (item) => item.id === backupForm.backup_storage
42
- )
43
- result.push({
44
- label: localization.common.datastore,
45
- value: datastore?.name || '',
46
- iconClassName: 'vsphere-icon-datastore',
47
- })
48
-
49
- // Configuration
50
- result.push({
51
- label: localization.common.strategy,
52
- value:
53
- strategyOptions.find((option) => option.value === backupForm.strategy)
54
- ?.label || '',
55
- })
56
-
57
- const gbSizeByB = 1_073_741_824
58
- const maxBandwidth =
59
- backupForm.bandwidth_limit >= gbSizeByB
60
- ? $binary.bToGb(backupForm.bandwidth_limit) + ' Gbps'
61
- : $binary.bToMb(backupForm.bandwidth_limit) + ' Mbps'
62
-
63
- result.push({
64
- label: localization.common.maxBandwidth,
65
- value: maxBandwidth,
66
- })
67
-
68
- return result
69
- }
1
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
2
+ import type {
3
+ UI_I_BackupDatastoreTable,
4
+ UI_I_CreateBackupForm,
5
+ } from '~/components/common/pages/backups/modals/lib/models/interfaces'
6
+ import type { UI_I_TableInfoItem } from '~/components/atoms/table/info/lib/models/interfaces'
7
+ import type { UI_I_SelectInputItem } from '~/components/common/select/input/lib/models/interfaces'
8
+
9
+ export const readyToCompleteOptions = (
10
+ backupForm: UI_I_CreateBackupForm,
11
+ localization: UI_I_Localization,
12
+ strategyOptions: UI_I_SelectInputItem[],
13
+ datastoreTable: UI_I_BackupDatastoreTable | null
14
+ ): UI_I_TableInfoItem[] => {
15
+ const { $binary } = useNuxtApp()
16
+
17
+ const result = [
18
+ // General
19
+ {
20
+ label: localization.common.name,
21
+ value: backupForm.name,
22
+ iconClassName: 'icon-backup',
23
+ },
24
+ {
25
+ label: localization.common.description,
26
+ value: backupForm.description,
27
+ },
28
+ ]
29
+
30
+ // Disks
31
+ backupForm.disk_devices.forEach((disk_device, i) => {
32
+ result.push({
33
+ label: `${localization.common.disk} ${i + 1}`,
34
+ value: disk_device.location,
35
+ iconClassName: 'icon-vSphere-dsVmDisk',
36
+ })
37
+ })
38
+
39
+ // Datastores
40
+ const datastore = datastoreTable?.items.find(
41
+ (item) => item.id === backupForm.backup_storage
42
+ )
43
+ result.push({
44
+ label: localization.common.datastore,
45
+ value: datastore?.name || '',
46
+ iconClassName: 'vsphere-icon-datastore',
47
+ })
48
+
49
+ // Configuration
50
+ result.push({
51
+ label: localization.common.strategy,
52
+ value:
53
+ strategyOptions.find((option) => option.value === backupForm.strategy)
54
+ ?.label || '',
55
+ })
56
+
57
+ const gbSizeByB = 1_073_741_824
58
+ const maxBandwidth =
59
+ backupForm.bandwidth_limit >= gbSizeByB
60
+ ? $binary.bToGb(backupForm.bandwidth_limit) + ' Gbps'
61
+ : $binary.bToMb(backupForm.bandwidth_limit) + ' Mbps'
62
+
63
+ result.push({
64
+ label: localization.common.maxBandwidth,
65
+ value: maxBandwidth,
66
+ })
67
+
68
+ return result
69
+ }