bfg-common 1.5.264 → 1.5.265

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 (135) hide show
  1. package/CODE_STYLE.md +109 -109
  2. package/assets/localization/local_be.json +0 -26
  3. package/assets/localization/local_en.json +0 -26
  4. package/assets/localization/local_hy.json +0 -26
  5. package/assets/localization/local_kk.json +0 -26
  6. package/assets/localization/local_ru.json +0 -26
  7. package/assets/localization/local_zh.json +0 -26
  8. package/assets/scss/common/theme.scss +0 -24
  9. package/components/atoms/TheIcon3.vue +50 -50
  10. package/components/atoms/perPage/PerPage.vue +58 -58
  11. package/components/atoms/stack/StackBlock.vue +185 -185
  12. package/components/atoms/table/dataGrid/DataGrid.vue +1717 -1717
  13. package/components/atoms/table/dataGrid/lib/config/settingsTable.ts +94 -94
  14. package/components/atoms/table/dataGrid/lib/utils/export.ts +16 -16
  15. package/components/atoms/table/info/lib/models/interfaces.ts +10 -10
  16. package/components/atoms/tabs/VerticalTabs.vue +105 -105
  17. package/components/common/backup/storage/actions/add/Add.vue +250 -250
  18. package/components/common/backup/storage/actions/add/Old.vue +116 -116
  19. package/components/common/backup/storage/actions/add/lib/config/steps.ts +168 -168
  20. package/components/common/backup/storage/actions/add/steps/hostAccessibility/HostAccessibility.vue +52 -52
  21. package/components/common/backup/storage/actions/add/steps/name/New.vue +102 -102
  22. package/components/common/backup/storage/actions/add/steps/nameAndConfigure/NameAndConfigure.vue +42 -42
  23. package/components/common/backup/storage/actions/add/steps/readyComplete/ReadyComplete.vue +45 -45
  24. package/components/common/backup/storage/actions/add/steps/readyComplete/ReadyCompleteNew.vue +160 -160
  25. package/components/common/backup/storage/actions/add/steps/readyComplete/lib/config/propertiesDetails.ts +243 -243
  26. package/components/common/backup/storage/actions/delete/Delete.vue +65 -65
  27. package/components/common/browse/blocks/contents/filesNew/Skeleton.vue +18 -18
  28. package/components/common/context/lib/models/interfaces.ts +31 -31
  29. package/components/common/diagramMain/DiagramMain.vue +897 -897
  30. package/components/common/diagramMain/Header.vue +214 -214
  31. package/components/common/layout/theHeader/helpMenu/About.vue +82 -82
  32. package/components/common/layout/theHeader/userMenu/modals/preferences/view/ViewOld.vue +112 -112
  33. package/components/common/monitor/overview/OverviewOld.vue +139 -139
  34. package/components/common/pages/home/headline/Headline.vue +45 -45
  35. package/components/common/pages/home/headline/HeadlineOld.vue +42 -42
  36. package/components/common/pages/home/lib/models/interfaces.ts +48 -48
  37. package/components/common/pages/home/widgets/Widgets.vue +49 -49
  38. package/components/common/pages/home/widgets/WidgetsNew.vue +86 -86
  39. package/components/common/pages/home/widgets/WidgetsOld.vue +34 -34
  40. package/components/common/pages/home/widgets/hosts/Hosts.vue +27 -27
  41. package/components/common/pages/home/widgets/hosts/lib/config/items.ts +23 -23
  42. package/components/common/pages/home/widgets/vms/Vms.vue +26 -26
  43. package/components/common/pages/home/widgets/vms/VmsOld.vue +35 -35
  44. package/components/common/pages/home/widgets/vms/lib/config/items.ts +19 -19
  45. package/components/common/pages/packages/Packages.vue +208 -208
  46. package/components/common/pages/shortcuts/block/BlockOld.vue +68 -68
  47. package/components/common/readyToComplete/ReadyToComplete.vue +17 -17
  48. package/components/common/recursionTree/RecursionTree.vue +223 -223
  49. package/components/common/select/button/ButtonDropdown.vue +108 -108
  50. package/components/common/spiceConsole/Drawer.vue +377 -377
  51. package/components/common/spiceConsole/lib/models/interfaces.ts +5 -5
  52. package/components/common/vm/actions/add/Add.vue +823 -823
  53. package/components/common/vm/actions/add/Old.vue +382 -382
  54. package/components/common/vm/actions/add/folderTreeView/FolderTreeView.vue +72 -72
  55. package/components/common/vm/actions/add/folderTreeView/New.vue +40 -40
  56. package/components/common/vm/actions/add/folderTreeView/Old.vue +50 -50
  57. package/components/common/vm/actions/clone/lib/config/steps.ts +291 -291
  58. package/components/common/vm/actions/clone/toTemplate/lib/config/steps.ts +116 -116
  59. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardwareOld.vue +321 -321
  60. package/components/common/vm/actions/common/customizeHardware/virtualHardware/browseView/BrowseView.vue +227 -227
  61. package/components/common/vm/actions/common/customizeHardware/virtualHardware/bus/Bus.vue +100 -100
  62. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDrive.vue +232 -232
  63. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDriveOld.vue +168 -168
  64. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/Media.vue +25 -25
  65. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaNew.vue +78 -78
  66. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaOld.vue +50 -50
  67. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/Shares.vue +140 -140
  68. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/lib/config/options.ts +28 -28
  69. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/tooltip/TooltipNew.vue +154 -154
  70. package/components/common/vm/actions/common/customizeHardware/virtualHardware/limit/Limit.vue +220 -220
  71. package/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/Memory.vue +307 -307
  72. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDisk.vue +385 -385
  73. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/Location.vue +154 -154
  74. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/LocationNew.vue +75 -75
  75. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/LocationOld.vue +85 -85
  76. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/NewNetwork.vue +288 -288
  77. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/table/lib/config/config.ts +94 -94
  78. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddress.vue +119 -119
  79. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/NewPciDevice.vue +205 -205
  80. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoNew.vue +66 -66
  81. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoOld.vue +62 -62
  82. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIo.vue +31 -31
  83. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIoOld.vue +76 -76
  84. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/Note.vue +15 -15
  85. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteNew.vue +42 -42
  86. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteOld.vue +30 -30
  87. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGridOld.vue +84 -84
  88. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/Other.vue +16 -16
  89. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/inputDevices/InputDevicesNew.vue +40 -40
  90. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/VideoCard.vue +154 -154
  91. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/numberDisplays/NumberDisplays.vue +53 -53
  92. package/components/common/vm/actions/common/customizeHardware/vmoptions/Vmoptions.vue +145 -145
  93. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/delay/Delay.vue +32 -32
  94. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/Firmware.vue +60 -60
  95. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/Order.vue +174 -174
  96. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/copyPaste/CopyPasteNew.vue +31 -31
  97. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/fileTransfer/FileTransferNew.vue +31 -31
  98. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/Keymap.vue +32 -32
  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/password/PasswordNew.vue +128 -128
  101. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirection.vue +28 -28
  102. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionNew.vue +39 -39
  103. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionOld.vue +44 -44
  104. package/components/common/vm/actions/common/lib/utils/capabilities.ts +52 -52
  105. package/components/common/vm/actions/common/select/compatibility/Old.vue +107 -107
  106. package/components/common/vm/actions/common/select/computeResource/treeView/New.vue +44 -44
  107. package/components/common/vm/actions/common/select/computeResource/treeView/TreeView.vue +118 -118
  108. package/components/common/vm/actions/common/select/createType/CreateType.vue +38 -38
  109. package/components/common/vm/actions/common/select/createType/lib/models/interfaces.ts +5 -5
  110. package/components/common/vm/actions/common/select/name/Name.vue +174 -174
  111. package/components/common/vm/actions/common/select/os/Old.vue +152 -152
  112. package/components/common/vm/actions/common/select/os/Os.vue +139 -139
  113. package/components/common/vm/actions/common/select/storage/new/lib/models/interfaces.ts +5 -5
  114. package/components/common/vm/actions/common/select/storage/new/lib/utils/utils.ts +21 -21
  115. package/components/common/vm/actions/editSettings/new/Skeleton.vue +88 -88
  116. package/components/common/vmt/actions/add/Add.vue +641 -641
  117. package/components/common/vmt/actions/add/lib/config/steps.ts +107 -107
  118. package/components/common/vmt/actions/add/lib/models/interfaces.ts +23 -23
  119. package/components/common/wizards/vm/migrate/lib/config/constructDataReady.ts +220 -220
  120. package/components/common/wizards/vm/migrate/lib/config/steps.ts +157 -157
  121. package/components/common/wizards/vm/migrate/lib/validations.ts +68 -68
  122. package/components/common/wizards/vm/migrate/select/computeResource/tableView/TableView.vue +135 -135
  123. package/components/common/wizards/vm/migrate/select/network/Network.vue +103 -103
  124. package/components/common/wizards/vm/migrate/select/network/table/network/lib/config/advancedTable.ts +91 -91
  125. package/composables/productNameLocal.ts +30 -30
  126. package/composables/useAppVersion.ts +21 -21
  127. package/package.json +2 -2
  128. package/plugins/date.ts +233 -233
  129. package/plugins/panelStates.ts +70 -70
  130. package/plugins/text.ts +59 -59
  131. package/public/spice-console/lib/images/bitmap.js +203 -203
  132. package/public/spice-console/network/spicechannel.js +387 -387
  133. package/store/main/mutations.ts +7 -7
  134. package/store/main/state.ts +7 -7
  135. package/store/tasks/mappers/recentTasks.ts +64 -64
@@ -1,118 +1,118 @@
1
- <template>
2
- <common-vm-actions-common-select-compute-resource-tree-view-new
3
- v-if="isNewView"
4
- :compute-resource-tree="props.computeResourceTree"
5
- :loading="loading"
6
- @show-nodes="onShowNodes"
7
- @select-node="onSelectNode"
8
- />
9
- <common-vm-actions-common-select-compute-resource-tree-view-old
10
- v-else
11
- :compute-resource-tree="props.computeResourceTree"
12
- :loading="loading"
13
- @show-nodes="onShowNodes"
14
- @select-node="onSelectNode"
15
- />
16
- </template>
17
-
18
- <script setup lang="ts">
19
- import type { UI_I_TreeNode } from '~/components/common/recursionTree/lib/models/interfaces'
20
-
21
- const model = defineModel<UI_I_TreeNode>('modelValue', { required: true })
22
-
23
- const props = defineProps<{
24
- dataCenter: UI_I_TreeNode | null
25
- computeResource: UI_I_TreeNode
26
- computeResourceTree: UI_I_TreeNode[]
27
- }>()
28
-
29
- const emits = defineEmits<{
30
- (
31
- event: 'get-compute-resource-tree',
32
- value: { id: string | number; cb: () => void }
33
- ): void
34
- (event: 'show-compute-resource-tree', value: UI_I_TreeNode): void
35
- (event: 'select-compute-resource-tree', value: UI_I_TreeNode): void
36
- (event: 'clear-compute-resource-tree'): void
37
- }>()
38
-
39
- const { $store }: any = useNuxtApp()
40
- const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
41
-
42
- const loading = ref<boolean>(false)
43
- watch(
44
- () => props.dataCenter,
45
- async () => {
46
- if (!props.dataCenter) return
47
-
48
- loading.value = true
49
- emits('get-compute-resource-tree', {
50
- id: props.dataCenter.id,
51
- cb: () => {
52
- let node = model.value
53
- let hasNode = checkHasNodeRecursion(
54
- props.computeResourceTree[0].nodes,
55
- node
56
- )
57
- if (!hasNode) {
58
- node = props.computeResource
59
- hasNode = checkHasNodeRecursion(
60
- props.computeResourceTree[0].nodes,
61
- node
62
- )
63
- }
64
- if (!hasNode) {
65
- node = props.computeResourceTree[0]
66
- }
67
- loading.value = false
68
-
69
- if (!node) return
70
- onSelectNode(node)
71
- },
72
- })
73
- },
74
- { immediate: true, deep: true }
75
- )
76
- const checkHasNodeRecursion = (
77
- nodes: UI_I_TreeNode[],
78
- node: UI_I_TreeNode | null
79
- ): boolean => {
80
- if (!node) return false
81
-
82
- let has = false
83
- for (let i = 0; i < nodes.length; i++) {
84
- const item = nodes[i]
85
-
86
- if (item.id === node.id && item.type === node.type) {
87
- has = true
88
- break
89
- }
90
- if (has) break
91
-
92
- has = checkHasNodeRecursion(item.nodes, node)
93
- }
94
- return has
95
- }
96
-
97
- const onShowNodes = ({
98
- node,
99
- cb,
100
- }: {
101
- node: UI_I_TreeNode
102
- cb: () => void
103
- }): void => {
104
- emits('show-compute-resource-tree', node)
105
- cb()
106
- }
107
- const onSelectNode = (node: UI_I_TreeNode): void => {
108
- emits('select-compute-resource-tree', node)
109
-
110
- model.value = node
111
- }
112
-
113
- onUnmounted(() => {
114
- emits('clear-compute-resource-tree')
115
- })
116
- </script>
117
-
118
- <style scoped lang="scss"></style>
1
+ <template>
2
+ <common-vm-actions-common-select-compute-resource-tree-view-new
3
+ v-if="isNewView"
4
+ :compute-resource-tree="props.computeResourceTree"
5
+ :loading="loading"
6
+ @show-nodes="onShowNodes"
7
+ @select-node="onSelectNode"
8
+ />
9
+ <common-vm-actions-common-select-compute-resource-tree-view-old
10
+ v-else
11
+ :compute-resource-tree="props.computeResourceTree"
12
+ :loading="loading"
13
+ @show-nodes="onShowNodes"
14
+ @select-node="onSelectNode"
15
+ />
16
+ </template>
17
+
18
+ <script setup lang="ts">
19
+ import type { UI_I_TreeNode } from '~/components/common/recursionTree/lib/models/interfaces'
20
+
21
+ const model = defineModel<UI_I_TreeNode>('modelValue', { required: true })
22
+
23
+ const props = defineProps<{
24
+ dataCenter: UI_I_TreeNode | null
25
+ computeResource: UI_I_TreeNode
26
+ computeResourceTree: UI_I_TreeNode[]
27
+ }>()
28
+
29
+ const emits = defineEmits<{
30
+ (
31
+ event: 'get-compute-resource-tree',
32
+ value: { id: string | number; cb: () => void }
33
+ ): void
34
+ (event: 'show-compute-resource-tree', value: UI_I_TreeNode): void
35
+ (event: 'select-compute-resource-tree', value: UI_I_TreeNode): void
36
+ (event: 'clear-compute-resource-tree'): void
37
+ }>()
38
+
39
+ const { $store }: any = useNuxtApp()
40
+ const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
41
+
42
+ const loading = ref<boolean>(false)
43
+ watch(
44
+ () => props.dataCenter,
45
+ async () => {
46
+ if (!props.dataCenter) return
47
+
48
+ loading.value = true
49
+ emits('get-compute-resource-tree', {
50
+ id: props.dataCenter.id,
51
+ cb: () => {
52
+ let node = model.value
53
+ let hasNode = checkHasNodeRecursion(
54
+ props.computeResourceTree[0].nodes,
55
+ node
56
+ )
57
+ if (!hasNode) {
58
+ node = props.computeResource
59
+ hasNode = checkHasNodeRecursion(
60
+ props.computeResourceTree[0].nodes,
61
+ node
62
+ )
63
+ }
64
+ if (!hasNode) {
65
+ node = props.computeResourceTree[0]
66
+ }
67
+ loading.value = false
68
+
69
+ if (!node) return
70
+ onSelectNode(node)
71
+ },
72
+ })
73
+ },
74
+ { immediate: true, deep: true }
75
+ )
76
+ const checkHasNodeRecursion = (
77
+ nodes: UI_I_TreeNode[],
78
+ node: UI_I_TreeNode | null
79
+ ): boolean => {
80
+ if (!node) return false
81
+
82
+ let has = false
83
+ for (let i = 0; i < nodes.length; i++) {
84
+ const item = nodes[i]
85
+
86
+ if (item.id === node.id && item.type === node.type) {
87
+ has = true
88
+ break
89
+ }
90
+ if (has) break
91
+
92
+ has = checkHasNodeRecursion(item.nodes, node)
93
+ }
94
+ return has
95
+ }
96
+
97
+ const onShowNodes = ({
98
+ node,
99
+ cb,
100
+ }: {
101
+ node: UI_I_TreeNode
102
+ cb: () => void
103
+ }): void => {
104
+ emits('show-compute-resource-tree', node)
105
+ cb()
106
+ }
107
+ const onSelectNode = (node: UI_I_TreeNode): void => {
108
+ emits('select-compute-resource-tree', node)
109
+
110
+ model.value = node
111
+ }
112
+
113
+ onUnmounted(() => {
114
+ emits('clear-compute-resource-tree')
115
+ })
116
+ </script>
117
+
118
+ <style scoped lang="scss"></style>
@@ -1,38 +1,38 @@
1
- <template>
2
- <common-vm-actions-common-select-create-type-new
3
- v-if="isNewView"
4
- v-model="model"
5
- :items="items"
6
- :import-from-v-m-warev-sphere="props.importFromVMWarevSphere"
7
- />
8
- <common-vm-actions-common-select-create-type-old
9
- v-else
10
- v-model="model"
11
- :items="items"
12
- :import-from-v-m-warev-sphere="props.importFromVMWarevSphere"
13
- />
14
- </template>
15
-
16
- <script setup lang="ts">
17
- import type { UI_I_Localization } from '~/lib/models/interfaces'
18
- import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
19
- import { itemsFunc } from '~/components/common/vm/actions/common/select/createType/lib/config/items'
20
-
21
- const model = defineModel<string>()
22
-
23
- const props = defineProps<{
24
- importFromVMWarevSphere: string
25
- }>()
26
-
27
- const { $store }: any = useNuxtApp()
28
- const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
29
-
30
- const localization = computed<UI_I_Localization>(() => useLocal())
31
-
32
- const items = computed<UI_I_OptionItem[]>(() =>
33
- itemsFunc(localization.value, props.importFromVMWarevSphere)
34
- )
35
- </script>
36
-
37
- <style scoped lang="scss">
38
- </style>
1
+ <template>
2
+ <common-vm-actions-common-select-create-type-new
3
+ v-if="isNewView"
4
+ v-model="model"
5
+ :items="items"
6
+ :import-from-v-m-warev-sphere="props.importFromVMWarevSphere"
7
+ />
8
+ <common-vm-actions-common-select-create-type-old
9
+ v-else
10
+ v-model="model"
11
+ :items="items"
12
+ :import-from-v-m-warev-sphere="props.importFromVMWarevSphere"
13
+ />
14
+ </template>
15
+
16
+ <script setup lang="ts">
17
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
18
+ import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
19
+ import { itemsFunc } from '~/components/common/vm/actions/common/select/createType/lib/config/items'
20
+
21
+ const model = defineModel<string>()
22
+
23
+ const props = defineProps<{
24
+ importFromVMWarevSphere: string
25
+ }>()
26
+
27
+ const { $store }: any = useNuxtApp()
28
+ const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
29
+
30
+ const localization = computed<UI_I_Localization>(() => useLocal())
31
+
32
+ const items = computed<UI_I_OptionItem[]>(() =>
33
+ itemsFunc(localization.value, props.importFromVMWarevSphere)
34
+ )
35
+ </script>
36
+
37
+ <style scoped lang="scss">
38
+ </style>
@@ -1,5 +1,5 @@
1
- import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
2
-
3
- export interface UI_I_VmCreateTypeOption extends UI_I_OptionItem {
4
- description: string
5
- }
1
+ import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
2
+
3
+ export interface UI_I_VmCreateTypeOption extends UI_I_OptionItem {
4
+ description: string
5
+ }
@@ -1,174 +1,174 @@
1
- <template>
2
- <common-vm-actions-common-select-name-new
3
- v-if="isNewView"
4
- v-model:vm-name="vmName"
5
- v-model:is-show-help="isShowHelp"
6
- :project="props.project"
7
- :errors="errors"
8
- :data-center="props.dataCenter"
9
- @remove-validation-errors="onRemoveValidationErrors"
10
- @select-node="onSelectNode"
11
- />
12
- <common-vm-actions-common-select-name-old
13
- v-else
14
- v-model:vm-name="vmName"
15
- v-model:is-show-help="isShowHelp"
16
- :project="props.project"
17
- :errors="errors"
18
- :data-center="props.dataCenter"
19
- @remove-validation-errors="onRemoveValidationErrors"
20
- @select-node="onSelectNode"
21
- />
22
- </template>
23
-
24
- <script setup lang="ts">
25
- // import { API_UI_I_Error } from '~/lib/models/store/interfaces'
26
- import type { UI_I_Localization } from '~/lib/models/interfaces'
27
- import type { UI_T_Project } from '~/lib/models/types'
28
- import type { UI_I_TreeNode } from '~/components/common/recursionTree/lib/models/interfaces'
29
-
30
- const props = defineProps<{
31
- nameFormSubmit: null | Function
32
- show: boolean
33
- project: UI_T_Project
34
- dataCenter?: UI_I_TreeNode // для сферы
35
- }>()
36
- const emits = defineEmits<{
37
- (event: 'submit', value: [string, UI_I_TreeNode | null]): void
38
- (event: 'loading', value: boolean): void
39
- (
40
- event: 'check-name',
41
- value: [[string, UI_I_TreeNode | null], (error: any) => void]
42
- ): void
43
- (event: 'has-errors', value: boolean): void
44
- }>()
45
-
46
- const { $store }: any = useNuxtApp()
47
- const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
48
-
49
- const localization = computed<UI_I_Localization>(() => useLocal())
50
-
51
- const vmName = ref<string>('')
52
-
53
- const selectedNode = ref<UI_I_TreeNode | null>(null)
54
- const onSelectNode = (node: UI_I_TreeNode): void => {
55
- selectedNode.value = node
56
- }
57
-
58
- watch(
59
- () => props.nameFormSubmit,
60
- (newValue) => {
61
- newValue && submit(newValue)
62
- }
63
- )
64
-
65
- const isParentDatacenter = (node: UI_I_TreeNode | null): boolean => {
66
- if (!node) return false
67
-
68
- if (node.parent?.type === 'datacenter') return true
69
- if (node.parent?.type === 'folder') return isParentDatacenter(node.parent)
70
- return false
71
- }
72
- const submit = async (cb: Function): Promise<void> => {
73
- const name = vmName.value
74
-
75
- if (name !== '') {
76
- const isNameValid = await checkNameIsValid(name)
77
- if (!isNameValid) {
78
- cb(false)
79
- return
80
- }
81
- }
82
-
83
- if (props.project === 'sphere') {
84
- // const isDatacenterFolder = isParentDatacenter(selectedNode.value)
85
-
86
- if (
87
- // selectedNode.value?.type !== 'datacenter' &&
88
- // selectedNode.value?.type === 'folder' &&
89
- // !isDatacenterFolder
90
- // TODO рефакторинг, здесь сейчас проверяем является ли выбранный элемент датацентром или папкой(вм)
91
- ![3, 7].includes(selectedNode.value?.kind)
92
- ) {
93
- showValidationErrors([
94
- localization.value.common.enterValidLocationVirtualMachine,
95
- ])
96
- cb(false)
97
- return
98
- }
99
- }
100
-
101
- onRemoveValidationErrors()
102
- emits('submit', [name, selectedNode.value])
103
- cb(true)
104
- }
105
- const checkNameIsValid = async (name: string): Promise<boolean> => {
106
- emits('loading', true)
107
-
108
- return new Promise((resolve) => {
109
- emits('check-name', [
110
- [name, selectedNode.value],
111
- (error) => {
112
- emits('loading', false)
113
-
114
- const status = error?.statusCode || 200
115
- switch (status) {
116
- case 405: // Invalid kind
117
- showValidationErrors([
118
- localization.value.common.kindValidationDescription,
119
- ])
120
- resolve(false)
121
- break
122
- case 406: // Invalid name
123
- showValidationErrors([
124
- localization.value.common.vmNameValidationDescription,
125
- ])
126
- resolve(false)
127
- break
128
- case 409: // Name exist
129
- showValidationErrors([
130
- localization.value.common.vmNameExistInSelectedLocation,
131
- ])
132
- resolve(false)
133
- break
134
- }
135
-
136
- resolve(true)
137
- },
138
- ])
139
- })
140
- }
141
-
142
- const errors = ref<string[]>([])
143
- const showValidationErrors = (data: string[]): void => {
144
- errors.value = data
145
- }
146
- const onRemoveValidationErrors = (): void => {
147
- errors.value = []
148
- }
149
- watch(
150
- errors,
151
- (newValue) => {
152
- emits('has-errors', !newValue.length)
153
- },
154
- { immediate: true, deep: true }
155
- )
156
-
157
- watch(
158
- () => props.show,
159
- (newValue) => {
160
- if (!newValue) return
161
-
162
- const input = document.getElementById('virtual-machine-name')
163
- if (!input) return
164
-
165
- setTimeout(() => {
166
- input.focus()
167
- }, 0)
168
- }
169
- )
170
-
171
- const isShowHelp = ref<boolean>(false)
172
- </script>
173
-
174
- <style scoped lang="scss"></style>
1
+ <template>
2
+ <common-vm-actions-common-select-name-new
3
+ v-if="isNewView"
4
+ v-model:vm-name="vmName"
5
+ v-model:is-show-help="isShowHelp"
6
+ :project="props.project"
7
+ :errors="errors"
8
+ :data-center="props.dataCenter"
9
+ @remove-validation-errors="onRemoveValidationErrors"
10
+ @select-node="onSelectNode"
11
+ />
12
+ <common-vm-actions-common-select-name-old
13
+ v-else
14
+ v-model:vm-name="vmName"
15
+ v-model:is-show-help="isShowHelp"
16
+ :project="props.project"
17
+ :errors="errors"
18
+ :data-center="props.dataCenter"
19
+ @remove-validation-errors="onRemoveValidationErrors"
20
+ @select-node="onSelectNode"
21
+ />
22
+ </template>
23
+
24
+ <script setup lang="ts">
25
+ // import { API_UI_I_Error } from '~/lib/models/store/interfaces'
26
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
27
+ import type { UI_T_Project } from '~/lib/models/types'
28
+ import type { UI_I_TreeNode } from '~/components/common/recursionTree/lib/models/interfaces'
29
+
30
+ const props = defineProps<{
31
+ nameFormSubmit: null | Function
32
+ show: boolean
33
+ project: UI_T_Project
34
+ dataCenter?: UI_I_TreeNode // для сферы
35
+ }>()
36
+ const emits = defineEmits<{
37
+ (event: 'submit', value: [string, UI_I_TreeNode | null]): void
38
+ (event: 'loading', value: boolean): void
39
+ (
40
+ event: 'check-name',
41
+ value: [[string, UI_I_TreeNode | null], (error: any) => void]
42
+ ): void
43
+ (event: 'has-errors', value: boolean): void
44
+ }>()
45
+
46
+ const { $store }: any = useNuxtApp()
47
+ const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
48
+
49
+ const localization = computed<UI_I_Localization>(() => useLocal())
50
+
51
+ const vmName = ref<string>('')
52
+
53
+ const selectedNode = ref<UI_I_TreeNode | null>(null)
54
+ const onSelectNode = (node: UI_I_TreeNode): void => {
55
+ selectedNode.value = node
56
+ }
57
+
58
+ watch(
59
+ () => props.nameFormSubmit,
60
+ (newValue) => {
61
+ newValue && submit(newValue)
62
+ }
63
+ )
64
+
65
+ const isParentDatacenter = (node: UI_I_TreeNode | null): boolean => {
66
+ if (!node) return false
67
+
68
+ if (node.parent?.type === 'datacenter') return true
69
+ if (node.parent?.type === 'folder') return isParentDatacenter(node.parent)
70
+ return false
71
+ }
72
+ const submit = async (cb: Function): Promise<void> => {
73
+ const name = vmName.value
74
+
75
+ if (name !== '') {
76
+ const isNameValid = await checkNameIsValid(name)
77
+ if (!isNameValid) {
78
+ cb(false)
79
+ return
80
+ }
81
+ }
82
+
83
+ if (props.project === 'sphere') {
84
+ // const isDatacenterFolder = isParentDatacenter(selectedNode.value)
85
+
86
+ if (
87
+ // selectedNode.value?.type !== 'datacenter' &&
88
+ // selectedNode.value?.type === 'folder' &&
89
+ // !isDatacenterFolder
90
+ // TODO рефакторинг, здесь сейчас проверяем является ли выбранный элемент датацентром или папкой(вм)
91
+ ![3, 7].includes(selectedNode.value?.kind)
92
+ ) {
93
+ showValidationErrors([
94
+ localization.value.common.enterValidLocationVirtualMachine,
95
+ ])
96
+ cb(false)
97
+ return
98
+ }
99
+ }
100
+
101
+ onRemoveValidationErrors()
102
+ emits('submit', [name, selectedNode.value])
103
+ cb(true)
104
+ }
105
+ const checkNameIsValid = async (name: string): Promise<boolean> => {
106
+ emits('loading', true)
107
+
108
+ return new Promise((resolve) => {
109
+ emits('check-name', [
110
+ [name, selectedNode.value],
111
+ (error) => {
112
+ emits('loading', false)
113
+
114
+ const status = error?.statusCode || 200
115
+ switch (status) {
116
+ case 405: // Invalid kind
117
+ showValidationErrors([
118
+ localization.value.common.kindValidationDescription,
119
+ ])
120
+ resolve(false)
121
+ break
122
+ case 406: // Invalid name
123
+ showValidationErrors([
124
+ localization.value.common.vmNameValidationDescription,
125
+ ])
126
+ resolve(false)
127
+ break
128
+ case 409: // Name exist
129
+ showValidationErrors([
130
+ localization.value.common.vmNameExistInSelectedLocation,
131
+ ])
132
+ resolve(false)
133
+ break
134
+ }
135
+
136
+ resolve(true)
137
+ },
138
+ ])
139
+ })
140
+ }
141
+
142
+ const errors = ref<string[]>([])
143
+ const showValidationErrors = (data: string[]): void => {
144
+ errors.value = data
145
+ }
146
+ const onRemoveValidationErrors = (): void => {
147
+ errors.value = []
148
+ }
149
+ watch(
150
+ errors,
151
+ (newValue) => {
152
+ emits('has-errors', !newValue.length)
153
+ },
154
+ { immediate: true, deep: true }
155
+ )
156
+
157
+ watch(
158
+ () => props.show,
159
+ (newValue) => {
160
+ if (!newValue) return
161
+
162
+ const input = document.getElementById('virtual-machine-name')
163
+ if (!input) return
164
+
165
+ setTimeout(() => {
166
+ input.focus()
167
+ }, 0)
168
+ }
169
+ )
170
+
171
+ const isShowHelp = ref<boolean>(false)
172
+ </script>
173
+
174
+ <style scoped lang="scss"></style>