bfg-common 1.5.110 → 1.5.111

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 (191) 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 +9 -11
  7. package/assets/localization/local_en.json +1 -3
  8. package/assets/localization/local_hy.json +9 -11
  9. package/assets/localization/local_kk.json +9 -11
  10. package/assets/localization/local_ru.json +8 -8
  11. package/assets/localization/local_zh.json +9 -11
  12. package/components/atoms/TheIcon3.vue +50 -50
  13. package/components/atoms/perPage/PerPage.vue +58 -58
  14. package/components/atoms/table/dataGrid/lib/config/settingsTable.ts +94 -94
  15. package/components/atoms/table/dataGrid/lib/utils/export.ts +16 -16
  16. package/components/atoms/tabs/VerticalTabs.vue +105 -105
  17. package/components/common/browse/blocks/contents/filesNew/Skeleton.vue +18 -18
  18. package/components/common/context/lib/models/interfaces.ts +31 -31
  19. package/components/common/context/recursion/Recursion.vue +87 -87
  20. package/components/common/context/recursion/RecursionNew.vue +238 -238
  21. package/components/common/diagramMain/DiagramMain.vue +897 -897
  22. package/components/common/diagramMain/Header.vue +214 -214
  23. package/components/common/diagramMain/modals/viewSettings/viewSettings/ViewSettingsNew.vue +4 -5
  24. package/components/common/diagramMain/modals/viewSettings/viewSettings/ViewSettingsOld.vue +4 -5
  25. package/components/common/layout/theHeader/helpMenu/About.vue +82 -82
  26. package/components/common/layout/theHeader/userMenu/modals/preferences/view/ViewOld.vue +112 -112
  27. package/components/common/monitor/overview/OverviewOld.vue +139 -139
  28. package/components/common/pages/home/headline/Headline.vue +45 -45
  29. package/components/common/pages/home/headline/HeadlineOld.vue +42 -42
  30. package/components/common/pages/home/lib/models/interfaces.ts +48 -48
  31. package/components/common/pages/home/widgets/Widgets.vue +49 -49
  32. package/components/common/pages/home/widgets/WidgetsNew.vue +86 -86
  33. package/components/common/pages/home/widgets/WidgetsOld.vue +34 -34
  34. package/components/common/pages/home/widgets/hosts/Hosts.vue +27 -27
  35. package/components/common/pages/home/widgets/hosts/lib/config/items.ts +23 -23
  36. package/components/common/pages/home/widgets/vms/Vms.vue +26 -26
  37. package/components/common/pages/home/widgets/vms/VmsOld.vue +35 -35
  38. package/components/common/pages/home/widgets/vms/lib/config/items.ts +19 -19
  39. package/components/common/pages/packages/Packages.vue +208 -208
  40. package/components/common/pages/shortcuts/block/BlockOld.vue +68 -68
  41. package/components/common/portlets/customAttributes/Portlet.vue +667 -667
  42. package/components/common/portlets/tag/Portlet.vue +433 -433
  43. package/components/common/readyToComplete/New.vue +66 -66
  44. package/components/common/readyToComplete/ReadyToComplete.vue +17 -17
  45. package/components/common/recursionTree/RecursionTree.vue +223 -223
  46. package/components/common/select/button/ButtonDropdown.vue +108 -108
  47. package/components/common/spiceConsole/Drawer.vue +370 -370
  48. package/components/common/spiceConsole/lib/models/interfaces.ts +5 -5
  49. package/components/common/split/horizontal/HorizontalOld.vue +337 -337
  50. package/components/common/split/vertical/Vertical.vue +160 -160
  51. package/components/common/tools/Actions.vue +202 -202
  52. package/components/common/vm/actions/add/Add.vue +785 -785
  53. package/components/common/vm/actions/add/New.vue +556 -556
  54. package/components/common/vm/actions/add/Old.vue +371 -371
  55. package/components/common/vm/actions/add/folderTreeView/FolderTreeView.vue +72 -72
  56. package/components/common/vm/actions/add/folderTreeView/New.vue +40 -40
  57. package/components/common/vm/actions/add/folderTreeView/Old.vue +50 -50
  58. package/components/common/vm/actions/add/lib/config/steps.ts +263 -263
  59. package/components/common/vm/actions/clone/Clone.vue +798 -798
  60. package/components/common/vm/actions/clone/lib/config/steps.ts +291 -291
  61. package/components/common/vm/actions/clone/toTemplate/ToTemplate.vue +626 -626
  62. package/components/common/vm/actions/clone/toTemplate/lib/config/steps.ts +116 -116
  63. package/components/common/vm/actions/common/customizeHardware/CustomizeHardware.vue +275 -275
  64. package/components/common/vm/actions/common/customizeHardware/CustomizeHardwareNew.vue +272 -272
  65. package/components/common/vm/actions/common/customizeHardware/CustomizeHardwareOld.vue +177 -177
  66. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardware.vue +698 -698
  67. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardwareNew.vue +468 -468
  68. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardwareOld.vue +319 -319
  69. package/components/common/vm/actions/common/customizeHardware/virtualHardware/browseView/BrowseView.vue +219 -219
  70. package/components/common/vm/actions/common/customizeHardware/virtualHardware/bus/Bus.vue +99 -99
  71. package/components/common/vm/actions/common/customizeHardware/virtualHardware/bus/BusNew.vue +118 -118
  72. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDrive.vue +232 -232
  73. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDriveNew.vue +198 -198
  74. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDriveOld.vue +168 -168
  75. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/Media.vue +25 -25
  76. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaNew.vue +70 -70
  77. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaOld.vue +50 -50
  78. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/Cpu.vue +338 -338
  79. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/CpuNew.vue +194 -194
  80. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/Shares.vue +140 -140
  81. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/lib/config/options.ts +28 -28
  82. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/tooltip/TooltipNew.vue +122 -122
  83. package/components/common/vm/actions/common/customizeHardware/virtualHardware/limit/Limit.vue +220 -220
  84. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDisk.vue +368 -368
  85. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDiskNew.vue +266 -266
  86. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDiskOld.vue +250 -250
  87. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/Location.vue +149 -161
  88. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/LocationNew.vue +74 -0
  89. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/LocationOld.vue +83 -0
  90. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/StorageModalNew.vue +74 -74
  91. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/mode/ModeOld.vue +56 -56
  92. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/sharing/SharingNew.vue +45 -45
  93. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/NewNetwork.vue +288 -286
  94. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/NewNetworkNew.vue +124 -125
  95. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/LocationOld.vue +134 -134
  96. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/New.vue +63 -63
  97. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/table/lib/config/config.ts +94 -95
  98. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddress.vue +119 -119
  99. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddressNew.vue +70 -70
  100. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddressOld.vue +83 -83
  101. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/NewPciDevice.vue +205 -205
  102. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoNew.vue +66 -66
  103. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoOld.vue +62 -62
  104. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIo.vue +31 -31
  105. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIoNew.vue +85 -85
  106. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIoOld.vue +76 -76
  107. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/Note.vue +15 -15
  108. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteNew.vue +42 -42
  109. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteOld.vue +30 -30
  110. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGrid.vue +41 -41
  111. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGridNew.vue +82 -82
  112. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGridOld.vue +84 -84
  113. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newUsbController/NewUsbControllerNew.vue +57 -57
  114. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/Other.vue +16 -16
  115. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/OtherNew.vue +30 -30
  116. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/VideoCardNew.vue +105 -105
  117. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/VideoCardOld.vue +112 -112
  118. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/totalVideoMemory/TotalVideoMemoryNew.vue +54 -54
  119. package/components/common/vm/actions/common/customizeHardware/vmoptions/Vmoptions.vue +145 -145
  120. package/components/common/vm/actions/common/customizeHardware/vmoptions/VmoptionsNew.vue +102 -102
  121. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/BootOptionsNew.vue +75 -75
  122. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/delay/Delay.vue +26 -26
  123. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/Firmware.vue +57 -57
  124. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/FirmwareNew.vue +43 -43
  125. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/menu/MenuNew.vue +25 -25
  126. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/Order.vue +171 -171
  127. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/OrderNew.vue +50 -50
  128. package/components/common/vm/actions/common/customizeHardware/vmoptions/generalOptions/GeneralOptionsNew.vue +144 -144
  129. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/New.vue +140 -140
  130. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/copyPaste/CopyPasteNew.vue +30 -30
  131. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/fileTransfer/FileTransferNew.vue +30 -30
  132. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/folderSharing/FolderSharingNew.vue +30 -30
  133. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/Keymap.vue +32 -32
  134. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/KeymapNew.vue +40 -40
  135. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/Password.vue +103 -103
  136. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/PasswordNew.vue +102 -102
  137. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/PasswordOld.vue +94 -94
  138. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirection.vue +28 -28
  139. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionNew.vue +39 -39
  140. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionOld.vue +44 -44
  141. package/components/common/vm/actions/common/lib/utils/capabilities.ts +52 -52
  142. package/components/common/vm/actions/common/select/compatibility/Compatibility.vue +100 -100
  143. package/components/common/vm/actions/common/select/compatibility/New.vue +165 -165
  144. package/components/common/vm/actions/common/select/compatibility/Old.vue +107 -107
  145. package/components/common/vm/actions/common/select/computeResource/ComputeResource.vue +134 -134
  146. package/components/common/vm/actions/common/select/computeResource/New.vue +141 -141
  147. package/components/common/vm/actions/common/select/computeResource/Old.vue +99 -99
  148. package/components/common/vm/actions/common/select/computeResource/treeView/New.vue +44 -44
  149. package/components/common/vm/actions/common/select/computeResource/treeView/Old.vue +48 -48
  150. package/components/common/vm/actions/common/select/computeResource/treeView/TreeView.vue +118 -118
  151. package/components/common/vm/actions/common/select/createType/CreateType.vue +38 -38
  152. package/components/common/vm/actions/common/select/createType/New.vue +84 -84
  153. package/components/common/vm/actions/common/select/createType/Old.vue +70 -70
  154. package/components/common/vm/actions/common/select/createType/lib/models/interfaces.ts +5 -5
  155. package/components/common/vm/actions/common/select/name/Name.vue +167 -167
  156. package/components/common/vm/actions/common/select/name/New.vue +246 -246
  157. package/components/common/vm/actions/common/select/name/Old.vue +119 -119
  158. package/components/common/vm/actions/common/select/os/New.vue +122 -122
  159. package/components/common/vm/actions/common/select/os/Old.vue +152 -152
  160. package/components/common/vm/actions/common/select/os/Os.vue +139 -139
  161. package/components/common/vm/actions/common/select/storage/Old.vue +129 -129
  162. package/components/common/vm/actions/common/select/storage/Storage.vue +131 -130
  163. package/components/common/vm/actions/common/select/storage/new/New.vue +193 -189
  164. package/components/common/vm/actions/common/select/storage/new/lib/config/table.ts +326 -326
  165. package/components/common/vm/actions/common/select/storage/new/lib/models/interfaces.ts +5 -5
  166. package/components/common/vm/actions/common/select/storage/new/lib/utils/utils.ts +21 -21
  167. package/components/common/vm/actions/common/select/template/Template.vue +64 -64
  168. package/components/common/vm/actions/common/select/template/TemplateTreeView.vue +88 -88
  169. package/components/common/vm/actions/editSettings/new/New.vue +186 -185
  170. package/components/common/vm/actions/editSettings/new/Skeleton.vue +88 -88
  171. package/components/common/wizards/datastore/add/lib/config/steps.ts +138 -138
  172. package/components/common/wizards/datastore/add/nfs/accessibility/Accessibility.vue +60 -60
  173. package/components/common/wizards/datastore/add/readyComplete/ReadyComplete.vue +92 -92
  174. package/components/common/wizards/network/add/steps/SelectConnectionType.vue +105 -105
  175. package/components/common/wizards/vm/migrate/lib/config/constructDataReady.ts +220 -220
  176. package/components/common/wizards/vm/migrate/lib/config/steps.ts +157 -157
  177. package/components/common/wizards/vm/migrate/lib/validations.ts +68 -68
  178. package/components/common/wizards/vm/migrate/select/network/Network.vue +103 -103
  179. package/components/common/wizards/vm/migrate/select/network/table/network/Network.vue +150 -150
  180. package/components/common/wizards/vm/migrate/select/network/table/network/lib/config/advancedTable.ts +91 -91
  181. package/components/common/wizards/vm/migrate/select/priority/Priority.vue +43 -43
  182. package/composables/productNameLocal.ts +30 -30
  183. package/composables/useAppVersion.ts +21 -21
  184. package/package.json +1 -1
  185. package/plugins/date.ts +233 -233
  186. package/plugins/directives.ts +24 -24
  187. package/public/spice-console/lib/images/bitmap.js +203 -203
  188. package/public/spice-console/network/spicechannel.js +383 -383
  189. package/store/main/mutations.ts +7 -7
  190. package/store/main/state.ts +7 -7
  191. package/store/tasks/mappers/recentTasks.ts +64 -64
@@ -1,246 +1,246 @@
1
- <template>
2
- <div class="select-name">
3
- <Teleport to="#name-alert-wrapper">
4
- <ui-alert
5
- v-show="props.errors.length"
6
- status="alert-danger"
7
- :messages="props.errors"
8
- test-id="name-alert"
9
- class="errors-alert"
10
- @remove="emits('remove-validation-errors')"
11
- />
12
- </Teleport>
13
-
14
- <div class="name-field">
15
- <div class="flex-1 flex-align-center">
16
- <label for="virtual-machine-name" class="name-label">{{
17
- localization.common.name
18
- }}</label>
19
- <ui-icon
20
- id="virtual-machine-name-icon"
21
- width="16"
22
- height="16"
23
- name="info"
24
- data-id="virtual-machine-name-icon"
25
- :class="{ active: isShowHelp }"
26
- @click.stop="isShowHelp = !isShowHelp"
27
- />
28
- </div>
29
- <Teleport to="body">
30
- <ui-dropdown
31
- :show="isShowHelp"
32
- elem-id="virtual-machine-name-icon"
33
- test-id=""
34
- :items="[]"
35
- width="320px"
36
- top
37
- left
38
- @hide="isShowHelp = false"
39
- >
40
- <template #content>
41
- <div class="vm-name-help-content">
42
- <div class="headline">
43
- <ui-icon name="info-2" width="16" height="16" />
44
- <h3 class="vm-name-help-title">
45
- {{ localization.vmWizard.vmNameRules }}
46
- </h3>
47
- <ui-icon
48
- name="close"
49
- width="16"
50
- height="16"
51
- class="hide-icon pointer"
52
- @click="isShowHelp = false"
53
- />
54
- </div>
55
-
56
- <p class="vm-name-help-text">
57
- {{ localization.common.vmNameValidationDescription }}
58
- </p>
59
- </div>
60
- </template>
61
- </ui-dropdown>
62
- </Teleport>
63
-
64
- <div class="flex-2">
65
- <ui-input
66
- v-model="vmName"
67
- type="text"
68
- maxlength="54"
69
- :placeholder="localization.common.name"
70
- test-id="virtual-machine-name"
71
- />
72
- </div>
73
- </div>
74
-
75
- <template v-if="props.project === 'sphere'">
76
- <div class="location">
77
- <span class="location-label">{{ localization.common.location }}</span>
78
-
79
- <div v-if="selectedLocation" class="selected-location">
80
- <span :class="['node-icon', selectedLocation.iconClassName]" />
81
- <span :class="['text', isShowAlert && 'error']">
82
- {{ selectedLocation.name }}
83
- </span>
84
- </div>
85
- <ui-skeleton-item v-else width="160px" height="20px" />
86
- </div>
87
- <div class="tree-view-wrap">
88
- <common-vm-actions-add-folder-tree-view
89
- :data-center="props.dataCenter"
90
- @select-node="onSelectNode"
91
- />
92
- </div>
93
- </template>
94
- </div>
95
- </template>
96
-
97
- <script setup lang="ts">
98
- // import { API_UI_I_Error } from '~/lib/models/store/interfaces'
99
- import type { UI_I_Localization } from '~/lib/models/interfaces'
100
- import type { UI_T_Project } from '~/lib/models/types'
101
- import type { UI_I_TreeNode } from '~/components/common/recursionTree/lib/models/interfaces'
102
-
103
- const vmName = defineModel<string>('vmName', { required: true })
104
- const isShowHelp = defineModel<boolean>('isShowHelp', { required: true })
105
-
106
- const props = defineProps<{
107
- project: UI_T_Project
108
- errors: string[]
109
- dataCenter?: UI_I_TreeNode // для сферы
110
- }>()
111
- const emits = defineEmits<{
112
- (event: 'remove-validation-errors'): void
113
- (event: 'select-node', value: UI_I_TreeNode): void
114
- }>()
115
-
116
- const localization = computed<UI_I_Localization>(() => useLocal())
117
-
118
- const isShowAlert = computed<boolean>(() =>
119
- props.errors.includes(
120
- localization.value.common.enterValidLocationVirtualMachine
121
- )
122
- )
123
- const selectedLocation = ref<UI_I_TreeNode | null>(null)
124
- const onSelectNode = (node: UI_I_TreeNode) => {
125
- selectedLocation.value = node
126
- emits('select-node', node)
127
- }
128
- </script>
129
-
130
- <style>
131
- :root {
132
- --select-name-text-color: #4d5d69;
133
- --select-name-help-icon-hover-color: #4d5d69;
134
- --select-name-help-icon-active-color: #008fd6;
135
- --select-name-help-hide-icon-color: #213444;
136
- --select-name-border-color: #e9ebed;
137
- --select-name-location-node-color: #182531;
138
- --select-name-location-bg-color: #ffffff;
139
- }
140
- :root.dark-theme {
141
- --select-name-text-color: #e9eaec;
142
- --select-name-help-icon-hover-color: #e9eaec;
143
- --select-name-help-icon-active-color: #2ba2de;
144
- --select-name-help-hide-icon-color: #E9EAEC;
145
- --select-name-border-color: #e9ebed1f;
146
- --select-name-location-node-color: #e9eaec;
147
- --select-name-location-bg-color: transparent;
148
- }
149
- </style>
150
- <style scoped lang="scss">
151
- .select-name {
152
- height: 100%;
153
- display: flex;
154
- flex-direction: column;
155
- padding-top: 16px;
156
-
157
- .name-field {
158
- display: flex;
159
- align-items: center;
160
-
161
- .name-label {
162
- font-size: 13px;
163
- color: var(--select-name-text-color);
164
- margin-right: 8px;
165
- }
166
- #virtual-machine-name-icon {
167
- color: #9da6ad; // equal in dark and white modes
168
- cursor: pointer;
169
-
170
- &:hover {
171
- color: var(--select-name-help-icon-hover-color);
172
- }
173
- &.active {
174
- color: var(--select-name-help-icon-active-color);
175
- }
176
- }
177
- }
178
-
179
- .location {
180
- display: grid;
181
- grid-template-columns: 1fr 2fr;
182
- margin-top: 16px;
183
- padding: 16px 0;
184
- border-top: 1px solid var(--select-name-border-color);
185
-
186
- .location-label {
187
- font-size: 13px;
188
- color: var(--select-name-text-color);
189
- }
190
-
191
- .selected-location {
192
- display: flex;
193
- align-items: center;
194
- gap: 8px;
195
-
196
- .text {
197
- font-size: 13px;
198
- color: var(--select-name-location-node-color);
199
-
200
- &.error {
201
- color: #ea3223; // equal in dark and white modes
202
- }
203
- }
204
- }
205
- }
206
- .tree-view-wrap {
207
- flex: 1;
208
- border-radius: 8px;
209
- border: 1px solid var(--select-name-border-color);
210
- padding: 12px;
211
- background-color: var(--select-name-location-bg-color);
212
-
213
- :deep(.tree-content) {
214
- padding: 0 !important;
215
- }
216
- }
217
- }
218
-
219
- .vm-name-help-content {
220
- padding: 16px;
221
-
222
- .headline {
223
- display: flex;
224
- align-items: center;
225
- gap: 8px;
226
- margin-bottom: 12px;
227
-
228
- .vm-name-help-title {
229
- flex: 1;
230
- font-size: 14px;
231
- font-weight: 500;
232
- line-height: 16.94px;
233
- color: var(--select-name-text-color);
234
- }
235
- .hide-icon {
236
- color: var(--select-name-help-hide-icon-color)
237
- }
238
- }
239
-
240
- .vm-name-help-text {
241
- font-size: 13px;
242
- line-height: 15.73px;
243
- color: var(--select-name-text-color);
244
- }
245
- }
246
- </style>
1
+ <template>
2
+ <div class="select-name">
3
+ <Teleport to="#name-alert-wrapper">
4
+ <ui-alert
5
+ v-show="props.errors.length"
6
+ status="alert-danger"
7
+ :messages="props.errors"
8
+ test-id="name-alert"
9
+ class="errors-alert"
10
+ @remove="emits('remove-validation-errors')"
11
+ />
12
+ </Teleport>
13
+
14
+ <div class="name-field">
15
+ <div class="flex-1 flex-align-center">
16
+ <label for="virtual-machine-name" class="name-label">{{
17
+ localization.common.name
18
+ }}</label>
19
+ <ui-icon
20
+ id="virtual-machine-name-icon"
21
+ width="16"
22
+ height="16"
23
+ name="info"
24
+ data-id="virtual-machine-name-icon"
25
+ :class="{ active: isShowHelp }"
26
+ @click.stop="isShowHelp = !isShowHelp"
27
+ />
28
+ </div>
29
+ <Teleport to="body">
30
+ <ui-dropdown
31
+ :show="isShowHelp"
32
+ elem-id="virtual-machine-name-icon"
33
+ test-id=""
34
+ :items="[]"
35
+ width="320px"
36
+ top
37
+ left
38
+ @hide="isShowHelp = false"
39
+ >
40
+ <template #content>
41
+ <div class="vm-name-help-content">
42
+ <div class="headline">
43
+ <ui-icon name="info-2" width="16" height="16" />
44
+ <h3 class="vm-name-help-title">
45
+ {{ localization.vmWizard.vmNameRules }}
46
+ </h3>
47
+ <ui-icon
48
+ name="close"
49
+ width="16"
50
+ height="16"
51
+ class="hide-icon pointer"
52
+ @click="isShowHelp = false"
53
+ />
54
+ </div>
55
+
56
+ <p class="vm-name-help-text">
57
+ {{ localization.common.vmNameValidationDescription }}
58
+ </p>
59
+ </div>
60
+ </template>
61
+ </ui-dropdown>
62
+ </Teleport>
63
+
64
+ <div class="flex-2">
65
+ <ui-input
66
+ v-model="vmName"
67
+ type="text"
68
+ maxlength="54"
69
+ :placeholder="localization.common.name"
70
+ test-id="virtual-machine-name"
71
+ />
72
+ </div>
73
+ </div>
74
+
75
+ <template v-if="props.project === 'sphere'">
76
+ <div class="location">
77
+ <span class="location-label">{{ localization.common.location }}</span>
78
+
79
+ <div v-if="selectedLocation" class="selected-location">
80
+ <span :class="['node-icon', selectedLocation.iconClassName]" />
81
+ <span :class="['text', isShowAlert && 'error']">
82
+ {{ selectedLocation.name }}
83
+ </span>
84
+ </div>
85
+ <ui-skeleton-item v-else width="160px" height="20px" />
86
+ </div>
87
+ <div class="tree-view-wrap">
88
+ <common-vm-actions-add-folder-tree-view
89
+ :data-center="props.dataCenter"
90
+ @select-node="onSelectNode"
91
+ />
92
+ </div>
93
+ </template>
94
+ </div>
95
+ </template>
96
+
97
+ <script setup lang="ts">
98
+ // import { API_UI_I_Error } from '~/lib/models/store/interfaces'
99
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
100
+ import type { UI_T_Project } from '~/lib/models/types'
101
+ import type { UI_I_TreeNode } from '~/components/common/recursionTree/lib/models/interfaces'
102
+
103
+ const vmName = defineModel<string>('vmName', { required: true })
104
+ const isShowHelp = defineModel<boolean>('isShowHelp', { required: true })
105
+
106
+ const props = defineProps<{
107
+ project: UI_T_Project
108
+ errors: string[]
109
+ dataCenter?: UI_I_TreeNode // для сферы
110
+ }>()
111
+ const emits = defineEmits<{
112
+ (event: 'remove-validation-errors'): void
113
+ (event: 'select-node', value: UI_I_TreeNode): void
114
+ }>()
115
+
116
+ const localization = computed<UI_I_Localization>(() => useLocal())
117
+
118
+ const isShowAlert = computed<boolean>(() =>
119
+ props.errors.includes(
120
+ localization.value.common.enterValidLocationVirtualMachine
121
+ )
122
+ )
123
+ const selectedLocation = ref<UI_I_TreeNode | null>(null)
124
+ const onSelectNode = (node: UI_I_TreeNode) => {
125
+ selectedLocation.value = node
126
+ emits('select-node', node)
127
+ }
128
+ </script>
129
+
130
+ <style>
131
+ :root {
132
+ --select-name-text-color: #4d5d69;
133
+ --select-name-help-icon-hover-color: #4d5d69;
134
+ --select-name-help-icon-active-color: #008fd6;
135
+ --select-name-help-hide-icon-color: #213444;
136
+ --select-name-border-color: #e9ebed;
137
+ --select-name-location-node-color: #182531;
138
+ --select-name-location-bg-color: #ffffff;
139
+ }
140
+ :root.dark-theme {
141
+ --select-name-text-color: #e9eaec;
142
+ --select-name-help-icon-hover-color: #e9eaec;
143
+ --select-name-help-icon-active-color: #2ba2de;
144
+ --select-name-help-hide-icon-color: #E9EAEC;
145
+ --select-name-border-color: #e9ebed1f;
146
+ --select-name-location-node-color: #e9eaec;
147
+ --select-name-location-bg-color: transparent;
148
+ }
149
+ </style>
150
+ <style scoped lang="scss">
151
+ .select-name {
152
+ height: 100%;
153
+ display: flex;
154
+ flex-direction: column;
155
+ padding-top: 16px;
156
+
157
+ .name-field {
158
+ display: flex;
159
+ align-items: center;
160
+
161
+ .name-label {
162
+ font-size: 13px;
163
+ color: var(--select-name-text-color);
164
+ margin-right: 8px;
165
+ }
166
+ #virtual-machine-name-icon {
167
+ color: #9da6ad; // equal in dark and white modes
168
+ cursor: pointer;
169
+
170
+ &:hover {
171
+ color: var(--select-name-help-icon-hover-color);
172
+ }
173
+ &.active {
174
+ color: var(--select-name-help-icon-active-color);
175
+ }
176
+ }
177
+ }
178
+
179
+ .location {
180
+ display: grid;
181
+ grid-template-columns: 1fr 2fr;
182
+ margin-top: 16px;
183
+ padding: 16px 0;
184
+ border-top: 1px solid var(--select-name-border-color);
185
+
186
+ .location-label {
187
+ font-size: 13px;
188
+ color: var(--select-name-text-color);
189
+ }
190
+
191
+ .selected-location {
192
+ display: flex;
193
+ align-items: center;
194
+ gap: 8px;
195
+
196
+ .text {
197
+ font-size: 13px;
198
+ color: var(--select-name-location-node-color);
199
+
200
+ &.error {
201
+ color: #ea3223; // equal in dark and white modes
202
+ }
203
+ }
204
+ }
205
+ }
206
+ .tree-view-wrap {
207
+ flex: 1;
208
+ border-radius: 8px;
209
+ border: 1px solid var(--select-name-border-color);
210
+ padding: 12px;
211
+ background-color: var(--select-name-location-bg-color);
212
+
213
+ :deep(.tree-content) {
214
+ padding: 0 !important;
215
+ }
216
+ }
217
+ }
218
+
219
+ .vm-name-help-content {
220
+ padding: 16px;
221
+
222
+ .headline {
223
+ display: flex;
224
+ align-items: center;
225
+ gap: 8px;
226
+ margin-bottom: 12px;
227
+
228
+ .vm-name-help-title {
229
+ flex: 1;
230
+ font-size: 14px;
231
+ font-weight: 500;
232
+ line-height: 16.94px;
233
+ color: var(--select-name-text-color);
234
+ }
235
+ .hide-icon {
236
+ color: var(--select-name-help-hide-icon-color)
237
+ }
238
+ }
239
+
240
+ .vm-name-help-text {
241
+ font-size: 13px;
242
+ line-height: 15.73px;
243
+ color: var(--select-name-text-color);
244
+ }
245
+ }
246
+ </style>