bfg-common 1.6.74 → 1.6.75

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 (165) hide show
  1. package/assets/localization/local_be.json +272 -11
  2. package/assets/localization/local_en.json +291 -29
  3. package/assets/localization/local_hy.json +274 -13
  4. package/assets/localization/local_kk.json +272 -11
  5. package/assets/localization/local_ru.json +286 -25
  6. package/assets/localization/local_zh.json +273 -12
  7. package/assets/scss/common/global.scss +11 -0
  8. package/assets/scss/common/normalize.scss +3 -0
  9. package/assets/scss/common/theme.scss +2 -2
  10. package/components/atoms/stack/StackBlock.vue +1 -1
  11. package/components/atoms/table/dataGrid/DataGridColumnSwitch.vue +2 -2
  12. package/components/atoms/tooltip/TooltipError.vue +3 -0
  13. package/components/common/adapterManager/AdapterManagerNew.vue +86 -0
  14. package/components/common/adapterManager/addAdapterModal/AddAdapterModalNew.vue +1 -1
  15. package/components/common/adapterManager/addAdapterWarningModal/AddAdapterWarningModalNew.vue +0 -1
  16. package/components/common/adapterManager/ui/actions/bar/Bar.vue +2 -0
  17. package/components/common/adapterManager/ui/actions/bar/BarNew.vue +3 -2
  18. package/components/common/adapterManager/ui/table/adapters/AdaptersNew.vue +1 -0
  19. package/components/common/certificate/CertificateInfo.vue +7 -1
  20. package/components/common/configure/physicalAdapters/PhysicalAdapters.vue +6 -0
  21. package/components/common/configure/physicalAdapters/PhysicalAdaptersNew.vue +219 -192
  22. package/components/common/configure/physicalAdapters/PhysicalAdaptersOld.vue +6 -4
  23. package/components/common/configure/physicalAdapters/buttons/Buttons.vue +1 -0
  24. package/components/common/configure/physicalAdapters/modals/edit/Edit.vue +26 -1
  25. package/components/common/configure/physicalAdapters/modals/edit/EditNew.vue +30 -1
  26. package/components/common/configure/physicalAdapters/modals/edit/lib/models/interfaces.ts +5 -0
  27. package/components/common/configure/physicalAdapters/modals/edit/lib/validations/validations.ts +19 -0
  28. package/components/common/configure/physicalAdapters/tableView/TableViewNew.vue +12 -1
  29. package/components/common/configure/physicalAdapters/tableView/lib/config/physicalAdaptersTableConfigNew.ts +21 -21
  30. package/components/common/configure/physicalAdapters/tableView/lib/config/settings.ts +12 -5
  31. package/components/common/configure/physicalAdapters/tableView/lib/models/interfaces.ts +4 -1
  32. package/components/common/diagramMain/Diagram.vue +169 -85
  33. package/components/common/diagramMain/DiagramMain.vue +40 -10
  34. package/components/common/diagramMain/header/Header.vue +49 -0
  35. package/components/common/diagramMain/header/HeaderNew.vue +155 -0
  36. package/components/common/diagramMain/{Header.vue → header/HeaderOld.vue} +78 -67
  37. package/components/common/diagramMain/modals/Modals.vue +4 -0
  38. package/components/common/diagramMain/modals/UnsavedChangesModal.vue +32 -0
  39. package/components/common/diagramMain/modals/editSettings/EditSettings.vue +104 -102
  40. package/components/common/diagramMain/modals/editSettings/EditSettingsNew.vue +285 -0
  41. package/components/common/diagramMain/modals/editSettings/EditSettingsOld.vue +254 -0
  42. package/components/common/diagramMain/modals/editSettings/confirmTeamingSettingsModal/ConfirmTeamingSettingsModal.vue +31 -0
  43. package/components/common/diagramMain/modals/editSettings/confirmTeamingSettingsModal/ConfirmTeamingSettingsModalNew.vue +82 -0
  44. package/components/common/diagramMain/modals/editSettings/{ConfirmTeamingSettingsModal.vue → confirmTeamingSettingsModal/ConfirmTeamingSettingsModalOld.vue} +2 -5
  45. package/components/common/diagramMain/modals/editSettings/lib/config/config.ts +15 -0
  46. package/components/common/diagramMain/modals/editSettings/lib/models/interfaces.ts +6 -0
  47. package/components/common/diagramMain/modals/editSettings/lib/utils/utils.ts +177 -0
  48. package/components/common/diagramMain/modals/editSettings/modal/EditSettingsModal.vue +137 -0
  49. package/components/common/diagramMain/modals/editSettings/modal/EditSettingsModalNew.vue +91 -0
  50. package/components/common/diagramMain/modals/editSettings/{EditSettingsModal.vue → modal/EditSettingsModalOld.vue} +12 -51
  51. package/components/common/diagramMain/modals/editSettings/tabs/networkProperties/NetworkProperties.vue +158 -0
  52. package/components/common/diagramMain/modals/editSettings/tabs/networkProperties/NetworkPropertiesNew.vue +262 -0
  53. package/components/common/diagramMain/modals/editSettings/tabs/{NetworkProperties.vue → networkProperties/NetworkPropertiesOld.vue} +12 -113
  54. package/components/common/diagramMain/modals/editSettings/tabs/port/ipvFourSettings/IpvFourSettings.vue +192 -0
  55. package/components/common/diagramMain/modals/editSettings/tabs/port/ipvFourSettings/IpvFourSettingsNew.vue +388 -0
  56. package/components/common/diagramMain/modals/editSettings/tabs/port/{IpvFourSettings.vue → ipvFourSettings/IpvFourSettingsOld.vue} +11 -152
  57. package/components/common/diagramMain/modals/editSettings/tabs/port/portProperties/PortProperties.vue +139 -0
  58. package/components/common/diagramMain/modals/editSettings/tabs/port/portProperties/PortPropertiesNew.vue +286 -0
  59. package/components/common/diagramMain/modals/editSettings/tabs/port/{PortProperties.vue → portProperties/PortPropertiesOld.vue} +12 -103
  60. package/components/common/diagramMain/modals/editSettings/tabs/security/Security.vue +209 -0
  61. package/components/common/diagramMain/modals/editSettings/tabs/security/SecurityNew.vue +233 -0
  62. package/components/common/diagramMain/modals/editSettings/tabs/{Security.vue → security/SecurityOld.vue} +25 -48
  63. package/components/common/diagramMain/modals/editSettings/tabs/switchProperties/SwitchProperties.vue +128 -0
  64. package/components/common/diagramMain/modals/editSettings/tabs/switchProperties/SwitchPropertiesNew.vue +235 -0
  65. package/components/common/diagramMain/modals/editSettings/tabs/{SwitchProperties.vue → switchProperties/SwitchPropertiesOld.vue} +12 -89
  66. package/components/common/diagramMain/modals/editSettings/tabs/teamingFailover/TeamingFailover.vue +99 -0
  67. package/components/common/diagramMain/modals/editSettings/tabs/teamingFailover/TeamingFailoverNew.vue +319 -0
  68. package/components/common/diagramMain/modals/editSettings/tabs/{TeamingFailover.vue → teamingFailover/TeamingFailoverOld.vue} +11 -48
  69. package/components/common/diagramMain/modals/editSettings/tabs/trafficShaping/TrafficShaping.vue +173 -0
  70. package/components/common/diagramMain/modals/editSettings/tabs/trafficShaping/TrafficShapingNew.vue +348 -0
  71. package/components/common/diagramMain/modals/editSettings/tabs/{TrafficShaping.vue → trafficShaping/TrafficShapingOld.vue} +12 -134
  72. package/components/common/diagramMain/modals/lib/config/diagramConfig.ts +43 -2
  73. package/components/common/diagramMain/modals/lib/config/index.ts +2 -1
  74. package/components/common/diagramMain/modals/lib/config/vmKernelAdapter.ts +1 -1
  75. package/components/common/diagramMain/modals/lib/utils/index.ts +34 -4
  76. package/components/common/diagramMain/modals/migrateVmkernelAdapter/MigrateVmkernelAdapter.vue +2 -2
  77. package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/common.ts +1 -1
  78. package/components/common/diagramMain/skeleton/Header.vue +31 -0
  79. package/components/common/diagramMain/skeleton/Switch.vue +75 -0
  80. package/components/common/layout/theHeader/ThemeSwitch.vue +1 -1
  81. package/components/common/layout/theHeader/modals/reconnect/New.vue +38 -30
  82. package/components/common/layout/theHeader/userMenu/modals/changePassword/New.vue +8 -9
  83. package/components/common/layout/theHeader/userMenu/modals/preferences/New.vue +4 -0
  84. package/components/common/layout/theHeader/userMenu/modals/preferences/Old.vue +9 -2
  85. package/components/common/layout/theHeader/userMenu/modals/preferences/changeLanguage/ChangeLanguage.vue +11 -7
  86. package/components/common/layout/theHeader/userMenu/modals/preferences/defaultConsole/DefaultConsole.vue +7 -1
  87. package/components/common/layout/theHeader/userMenu/modals/preferences/defaultConsole/lib/config/consoleOptions.ts +8 -5
  88. package/components/common/layout/theHeader/userMenu/modals/preferences/timeFormat/TimeFormat.vue +9 -5
  89. package/components/common/layout/theHeader/userMenu/modals/preferences/timeFormat/lib/config/formatOptions.ts +1 -1
  90. package/components/common/layout/theHeader/userMenu/modals/preferences/view/Old.vue +5 -9
  91. package/components/common/layout/theHeader/userMenu/modals/preferences/view/View.vue +9 -6
  92. package/components/common/mainNavigationPanel/MainNavigationPanelNew.vue +3 -1
  93. package/components/common/modals/Rename.vue +3 -1
  94. package/components/common/noDataProvided/NoDataProvidedNew.vue +1 -1
  95. package/components/common/pages/backups/modals/createBackup/datastores/tableView/new/lib/config/table.ts +4 -4
  96. package/components/common/pages/backups/modals/createBackup/datastores/tableView/old/lib/config/table.ts +4 -4
  97. package/components/common/pages/hardwareHealth/historyTestimony/tools/chartOptionsModal/ChartOptionsModal.vue +184 -253
  98. package/components/common/pages/hardwareHealth/historyTestimony/tools/chartOptionsModal/actions/ActionsNew.vue +1 -1
  99. package/components/common/pages/scheduledTasks/table/lib/models/enums.ts +9 -0
  100. package/components/common/pages/scheduledTasks/table/new/New.vue +12 -10
  101. package/components/common/pages/tasks/Tasks.vue +4 -1
  102. package/components/common/pages/tasks/table/Table.vue +25 -23
  103. package/components/common/readyToComplete/New.vue +1 -0
  104. package/components/common/split/vertical/New.vue +42 -8
  105. package/components/common/split/vertical/Old.vue +31 -2
  106. package/components/common/split/vertical/Vertical.vue +4 -0
  107. package/components/common/tools/Actions.vue +7 -3
  108. package/components/common/tools/lib/models/interfaces.ts +1 -0
  109. package/components/common/vm/actions/add/New.vue +21 -6
  110. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/Media.vue +14 -1
  111. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/New.vue +5 -0
  112. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/Old.vue +1 -0
  113. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/New.vue +1 -0
  114. package/components/common/vm/actions/common/customizeHardware/virtualHardware/reservation/New.vue +2 -0
  115. package/components/common/vm/actions/common/select/options/New.vue +14 -12
  116. package/components/common/vm/actions/common/select/options/Old.vue +16 -15
  117. package/components/common/vm/actions/common/select/storage/new/lib/config/table.ts +13 -15
  118. package/components/common/vm/actions/confirm/Confirm.vue +3 -0
  119. package/components/common/vm/actions/rename/Old.vue +1 -0
  120. package/components/common/vm/snapshots/DetailView.vue +6 -6
  121. package/components/common/wizards/datastore/add/New.vue +6 -0
  122. package/components/common/wizards/datastore/add/lib/config/steps.ts +1 -1
  123. package/components/common/wizards/datastore/add/steps/nameAndDevice/NameAndDeviceNew.vue +1 -1
  124. package/components/common/wizards/datastore/add/steps/nameAndDevice/advancedOptions/New.vue +1 -1
  125. package/components/common/wizards/network/add/Add.vue +13 -2
  126. package/components/common/wizards/network/add/AddNew.vue +22 -26
  127. package/components/common/wizards/network/add/lib/config/initialData.ts +6 -4
  128. package/components/common/wizards/network/add/lib/config/steps.ts +1 -1
  129. package/components/common/wizards/network/add/lib/models/interfaces.ts +1 -0
  130. package/components/common/wizards/network/add/lib/utils/utils.ts +1 -1
  131. package/components/common/wizards/network/add/steps/connectionSettings/ConnectionSettingsOld.vue +5 -1
  132. package/components/common/wizards/network/add/steps/ipFourSettings/IpFourSettingsNew.vue +2 -8
  133. package/components/common/wizards/network/add/steps/ipFourSettings/IpFourSettingsOld.vue +3 -0
  134. package/components/common/wizards/network/add/steps/portProperties/PortPropertiesNew.vue +2 -8
  135. package/components/common/wizards/network/add/steps/portProperties/PortPropertiesOld.vue +6 -2
  136. package/components/common/wizards/network/add/steps/selectTargetDevice/SelectTargetDeviceNew.vue +10 -3
  137. package/components/common/wizards/network/add/steps/selectTargetDevice/SelectTargetDeviceOld.vue +4 -0
  138. package/components/common/wizards/network/add/steps/selectTargetDevice/modals/new/SelectNetwork.vue +5 -1
  139. package/components/common/wizards/network/add/validations/common.ts +1 -1
  140. package/components/common/wizards/vm/migrate/New.vue +13 -3
  141. package/components/common/wizards/vm/migrate/lib/config/constructDataReady.ts +5 -0
  142. package/components/common/wizards/vm/migrate/lib/config/steps.ts +3 -2
  143. package/components/common/wizards/vm/migrate/steps/computeResource/New.vue +2 -1
  144. package/components/common/wizards/vm/migrate/steps/computeResource/tableView/new/New.vue +40 -21
  145. package/components/common/wizards/vm/migrate/steps/computeResource/tableView/new/lib/config/clusterTable.ts +340 -0
  146. package/components/common/wizards/vm/migrate/steps/computeResource/tableView/new/lib/config/hostTable.ts +44 -14
  147. package/components/common/wizards/vm/migrate/steps/computeResource/tableView/new/lib/models/enums.ts +4 -0
  148. package/components/common/wizards/vm/migrate/steps/priority/New.vue +7 -2
  149. package/components/common/wizards/vm/migrate/steps/selectStorage/New.vue +22 -7
  150. package/components/common/wizards/vm/migrate/steps/selectStorage/configure/batch/New.vue +6 -0
  151. package/components/common/wizards/vm/migrate/steps/selectStorage/configure/batch/table/new/New.vue +4 -1
  152. package/components/common/wizards/vm/migrate/steps/selectStorage/configure/batch/table/new/lib/config/datastoreTable.ts +12 -16
  153. package/components/common/wizards/vm/migrate/steps/selectStorage/configure/disk/table/new/New.vue +10 -5
  154. package/components/common/wizards/vm/migrate/steps/selectStorage/configure/disk/table/new/lib/config/diskTable.ts +16 -11
  155. package/components/common/wizards/vm/migrate/steps/selectStorage/configure/disk/table/old/lib/config/diskTable.ts +7 -1
  156. package/components/common/wizards/vm/migrate/steps/selectStorage/selectedPerDisk/New.vue +17 -10
  157. package/components/common/wizards/vm/migrate/steps/type/TypeNew.vue +1 -0
  158. package/components/common/wizards/vm/migrate/vmOrigin/New.vue +35 -15
  159. package/lib/models/store/tasks/enums.ts +3 -0
  160. package/lib/models/store/tasks/types.ts +7 -6
  161. package/package.json +2 -2
  162. package/plugins/directives.ts +3 -5
  163. package/public/spice-console/application/agent.js +18 -17
  164. package/store/tasks/actions.ts +26 -8
  165. package/store/tasks/mappers/recentTasks.ts +1 -0
@@ -82,16 +82,18 @@
82
82
  <ui-icon name="vertical-dotes" width="20" height="20" />
83
83
  </span>
84
84
  </ui-button>
85
- <ui-dropdown
86
- :show="actionsShowId === item.data.id"
87
- :test-id="`event-table-action-dropdown-${item.data.id}`"
88
- :items="schedulerDropActions"
89
- :elem-id="`event-table-action-${item.data.id}`"
90
- width="max-content"
91
- left
92
- @select="onSelectAction"
93
- @hide="onHideActionsDropdown"
94
- />
85
+ <Teleport to="body">
86
+ <ui-dropdown
87
+ :show="actionsShowId === item.data.id"
88
+ :test-id="`event-table-action-dropdown-${item.data.id}`"
89
+ :items="schedulerDropActions"
90
+ :elem-id="`event-table-action-${item.data.id}`"
91
+ width="max-content"
92
+ left
93
+ @select="onSelectAction"
94
+ @hide="onHideActionsDropdown"
95
+ />
96
+ </Teleport>
95
97
  </div>
96
98
  </template>
97
99
 
@@ -58,7 +58,10 @@ const getTasks = async (): Promise<void> => {
58
58
  sortBy: sort.value || '',
59
59
  filter: filter.value || '',
60
60
  }
61
- await $store.dispatch('tasks/A_GET_TASKS', payload)
61
+ await $store.dispatch('tasks/A_GET_TASKS', {
62
+ data: payload,
63
+ project: props.project,
64
+ })
62
65
  }
63
66
  const onUpdatePagination = (event: UI_I_Pagination): void => {
64
67
  pagination.value = event
@@ -67,28 +67,30 @@
67
67
  <ui-icon name="vertical-dotes" width="20" height="20" />
68
68
  </span>
69
69
  </ui-button>
70
- <ui-dropdown
71
- :show="actionsShowId === item.data.id"
72
- :test-id="`data-table-task-dropdown-${item.data.id}`"
73
- :items="actions"
74
- :elem-id="`data-table-task-action-${item.data.id}`"
75
- width="max-content"
76
- left
77
- @select="onSelectAction(item.data.target, $event)"
78
- @hide="onHideActionsDropdown"
79
- >
80
- <template #row="{ item: dropMenu }">
81
- <ui-icon
82
- v-if="dropMenu.iconName === 'hide'"
83
- name="password-hide"
84
- width="16"
85
- height="16"
86
- />
87
- <span class="action-text">
88
- {{ dropMenu.text }}
89
- </span>
90
- </template>
91
- </ui-dropdown>
70
+ <Teleport to="body">
71
+ <ui-dropdown
72
+ :show="actionsShowId === item.data.id"
73
+ :test-id="`data-table-task-dropdown-${item.data.id}`"
74
+ :items="actions"
75
+ :elem-id="`data-table-task-action-${item.data.id}`"
76
+ width="max-content"
77
+ left
78
+ @select="onSelectAction(item.data.target, $event)"
79
+ @hide="onHideActionsDropdown"
80
+ >
81
+ <template #row="{ item: dropMenu }">
82
+ <ui-icon
83
+ v-if="dropMenu.iconName === 'hide'"
84
+ name="password-hide"
85
+ width="16"
86
+ height="16"
87
+ />
88
+ <span class="action-text">
89
+ {{ dropMenu.text }}
90
+ </span>
91
+ </template>
92
+ </ui-dropdown>
93
+ </Teleport>
92
94
  </div>
93
95
  </template>
94
96
 
@@ -162,7 +164,7 @@ const texts = computed<UI_I_TableTexts>(() => ({
162
164
  searchHere: localization.value.common.searchHere,
163
165
  rowsPerPage: localization.value.common.rowsPerPage,
164
166
  of: localization.value.common.of,
165
- selected: localization.value.common.selected,
167
+ selected: localization.value.common.selected2,
166
168
  columns: localization.value.common.columns,
167
169
  previous: localization.value.common.previous,
168
170
  next: localization.value.common.next,
@@ -74,6 +74,7 @@ const dataLocal = computed<UI_I_TableInfoItem[]>(() => {
74
74
  row-gap: 12px;
75
75
  column-gap: 24px;
76
76
  margin-top: 16px;
77
+ padding-bottom: 16px;
77
78
 
78
79
  &.lang-ru {
79
80
  .details-item {
@@ -3,13 +3,22 @@
3
3
  :id="props.elementId"
4
4
  :class="['fill-parent vertical', { dragging: props.isDrag }]"
5
5
  >
6
- <div :style="props.topPanelStyle" class="vui-horizontal-panel firstPanel">
6
+ <div
7
+ :style="props.topPanelStyle"
8
+ :class="[
9
+ 'vui-horizontal-panel firstPanel',
10
+ {
11
+ 'hidden-second': !props.bottomPermission,
12
+ },
13
+ ]"
14
+ >
7
15
  <div class="vui-horizontal-panel sec-nav-container">
8
16
  <slot name="firstPanel" />
9
17
  </div>
10
18
  </div>
11
19
 
12
20
  <div
21
+ v-if="props.bottomPermission"
13
22
  :id="`gutter-${props.elementId}`"
14
23
  class="gutter gutter-vertical"
15
24
  tabindex="0"
@@ -20,7 +29,16 @@
20
29
  <div class="gutter-vertical-handler"></div>
21
30
  </div>
22
31
 
23
- <div :style="props.bottomPanelStyle" class="secondPanel bottom">
32
+ <div
33
+ v-if="props.bottomPermission"
34
+ :style="props.bottomPanelStyle"
35
+ :class="[
36
+ 'secondPanel bottom',
37
+ {
38
+ hidden: !props.bottomPermission,
39
+ },
40
+ ]"
41
+ >
24
42
  <slot name="secondPanel" />
25
43
  </div>
26
44
  </div>
@@ -37,6 +55,7 @@ const props = defineProps<{
37
55
  isDrag: boolean
38
56
  topPanelStyle: UI_I_SplitVerticalStyle
39
57
  bottomPanelStyle: UI_I_SplitVerticalStyle
58
+ bottomPermission: boolean
40
59
  }>()
41
60
  </script>
42
61
 
@@ -52,10 +71,14 @@ const props = defineProps<{
52
71
  </style>
53
72
 
54
73
  <style scoped lang="scss">
55
- .fill-parent {
74
+ .vertical {
56
75
  &.dragging {
57
76
  .gutter-vertical.gutter {
58
- background-color: var(--gutter-active-bg-color);
77
+ background-color: var(--new-gutter-active-bg-color);
78
+
79
+ &::before {
80
+ background-color: var(--new-gutter-active-before-bg-color);
81
+ }
59
82
  }
60
83
  }
61
84
 
@@ -63,6 +86,11 @@ const props = defineProps<{
63
86
  max-height: calc(100% - 36px);
64
87
  height: calc(100vh - 36px);
65
88
 
89
+ &.hidden-second {
90
+ max-height: 100%;
91
+ height: 100% !important;
92
+ }
93
+
66
94
  .sec-nav-container {
67
95
  width: 100%;
68
96
  height: 100%;
@@ -95,11 +123,11 @@ const props = defineProps<{
95
123
  //}
96
124
 
97
125
  &:hover {
98
- background-color: var(--gutter-hover-bg-color);
126
+ background-color: var(--new-gutter-hover-bg-color);
99
127
  cursor: row-resize;
100
128
 
101
129
  &:before {
102
- background-color: var(--gutter-handler-active-bg-color);
130
+ background-color: var(--new-gutter-active-before-bg-color);
103
131
  }
104
132
  }
105
133
 
@@ -112,8 +140,9 @@ const props = defineProps<{
112
140
  transition-duration: 0.25s;
113
141
  width: 24px;
114
142
  height: 2px;
115
- left: calc(50% - 12px);
116
- top: calc(50% - 1px);
143
+ left: 50%;
144
+ top: 50%;
145
+ transform: translate(-50%, -50%);
117
146
  border-radius: 4px;
118
147
  }
119
148
  }
@@ -122,6 +151,11 @@ const props = defineProps<{
122
151
  overflow: hidden;
123
152
  flex: 1;
124
153
  box-shadow: var(--second-panel-box-shadow);
154
+
155
+ &.hidden {
156
+ display: none;
157
+ height: 0;
158
+ }
125
159
  //z-index: calc(var(--z-default) + 1);
126
160
  }
127
161
  }
@@ -3,13 +3,22 @@
3
3
  :id="props.elementId"
4
4
  :class="['fill-parent vertical', { dragging: props.isDrag }]"
5
5
  >
6
- <div :style="props.topPanelStyle" class="vui-horizontal-panel firstPanel">
6
+ <div
7
+ :style="props.topPanelStyle"
8
+ :class="[
9
+ 'vui-horizontal-panel firstPanel',
10
+ {
11
+ 'hidden-second': !props.bottomPermission,
12
+ },
13
+ ]"
14
+ >
7
15
  <div class="vui-horizontal-panel sec-nav-container">
8
16
  <slot name="firstPanel" />
9
17
  </div>
10
18
  </div>
11
19
 
12
20
  <div
21
+ v-if="props.bottomPermission"
13
22
  :id="`gutter-${props.elementId}`"
14
23
  class="gutter gutter-vertical"
15
24
  tabindex="0"
@@ -20,7 +29,16 @@
20
29
  <div class="gutter-vertical-handler"></div>
21
30
  </div>
22
31
 
23
- <div :style="props.bottomPanelStyle" class="secondPanel bottom">
32
+ <div
33
+ v-if="props.bottomPermission"
34
+ :style="props.bottomPanelStyle"
35
+ :class="[
36
+ 'secondPanel bottom',
37
+ {
38
+ hidden: !props.bottomPermission,
39
+ },
40
+ ]"
41
+ >
24
42
  <slot name="secondPanel" />
25
43
  </div>
26
44
  </div>
@@ -37,6 +55,7 @@ const props = defineProps<{
37
55
  isDrag: boolean
38
56
  topPanelStyle: UI_I_SplitVerticalStyle
39
57
  bottomPanelStyle: UI_I_SplitVerticalStyle
58
+ bottomPermission: boolean
40
59
  }>()
41
60
  </script>
42
61
 
@@ -52,6 +71,11 @@ const props = defineProps<{
52
71
  max-height: calc(100% - 36px);
53
72
  height: calc(100vh - 36px);
54
73
 
74
+ &.hidden-second {
75
+ max-height: 100%;
76
+ height: 100% !important;
77
+ }
78
+
55
79
  .sec-nav-container {
56
80
  width: 100%;
57
81
  height: 100%;
@@ -109,6 +133,11 @@ const props = defineProps<{
109
133
  height: auto;
110
134
  overflow: hidden;
111
135
  flex: 1;
136
+
137
+ &.hidden {
138
+ display: none;
139
+ height: 0;
140
+ }
112
141
  }
113
142
  }
114
143
  </style>
@@ -7,6 +7,7 @@
7
7
  :is-drag="isDrag"
8
8
  :top-panel-style="topPanelStyle"
9
9
  :bottom-panel-style="bottomPanelStyle"
10
+ :bottom-permission="props.bottomPermission"
10
11
  >
11
12
  <template #firstPanel>
12
13
  <slot name="firstPanel" />
@@ -25,6 +26,7 @@
25
26
  :is-drag="isDrag"
26
27
  :top-panel-style="topPanelStyle"
27
28
  :bottom-panel-style="bottomPanelStyle"
29
+ :bottom-permission="props.bottomPermission"
28
30
  >
29
31
  <template #firstPanel>
30
32
  <slot name="firstPanel" />
@@ -46,12 +48,14 @@ const props = withDefaults(
46
48
  topPanelH?: number
47
49
  topPanelMinHeight?: number
48
50
  bottomPanelMinHeight?: number
51
+ bottomPermission?: boolean
49
52
  }>(),
50
53
  {
51
54
  topPanelMinHeight: 200, // 200px
52
55
  bottomPanelMinHeight: 200, // 200px
53
56
  topPanelHForce: '',
54
57
  topPanelH: undefined,
58
+ bottomPermission: true,
55
59
  }
56
60
  )
57
61
  const emits = defineEmits<{
@@ -5,12 +5,16 @@
5
5
  :style="{ paddingRight: spaceForCollapseBtn + 'px' }"
6
6
  class="btn-group"
7
7
  >
8
- <div v-for="(button, key) in props.actions" :key="button.type">
8
+ <div
9
+ v-for="(button, key) in props.actions"
10
+ :key="button.type"
11
+ :title="button.title"
12
+ >
9
13
  <label
10
14
  v-if="button.uploaded"
11
15
  v-development="button.development"
12
16
  v-permission="button.permission"
13
- >
17
+ >
14
18
  <span
15
19
  :class="[`btn btn-link ${props.size}`]"
16
20
  :data-id="`${button.testId}-text`"
@@ -35,7 +39,7 @@
35
39
  v-development="button.development"
36
40
  v-permission="button.permission"
37
41
  :data-id="button.testId"
38
- :class="[`btn btn-link ${props.size}`]"
42
+ :class="[`btn btn-link ${props.size} ${button.class}`]"
39
43
  :disabled="button.disabled"
40
44
  @click="onClickButton(button.type)"
41
45
  >
@@ -8,4 +8,5 @@ export interface UI_I_Button {
8
8
  iconName?: string
9
9
  permission?: string
10
10
  title?: string
11
+ class?: string
11
12
  }
@@ -55,13 +55,13 @@
55
55
  <div ref="subTitleBlockName">
56
56
  <div class="subtitle-block">
57
57
  <div
58
- id="name-alert-wrapper"
59
- :class="[{ 'mb-4': !isNameAlertWrapperEmpty }]"
58
+ id="name-alert-wrapper"
59
+ :class="[{ 'mb-4': !isNameAlertWrapperEmpty }]"
60
60
  ></div>
61
61
  <ui-wizard-subtitle
62
- :sub-title="
63
- localization.vmWizard.specifyUniqueNameAndTargetLocationForVm
64
- "
62
+ :sub-title="
63
+ localization.vmWizard.specifyUniqueNameAndTargetLocationForVm
64
+ "
65
65
  />
66
66
  </div>
67
67
  </div>
@@ -153,7 +153,8 @@
153
153
  :datastore="props.datastore"
154
154
  :is-datastore-loading="props.isDatastoreLoading"
155
155
  :get-datastore-table-func="props.getDatastoreTableFunc"
156
- :storage="props.vmtSettings?.storage"
156
+ :storage="storageLocal"
157
+ @change-storage="setSelectedStorageIdLocal"
157
158
  @submit="emits('change-storage', $event)"
158
159
  @has-errors="isStorageAlertWrapperEmpty = $event"
159
160
  />
@@ -593,6 +594,20 @@ const isNameAlertWrapperEmpty = ref<boolean>(false)
593
594
  // const isComputeResourceAlertWrapperEmpty = ref<boolean>(false)
594
595
  const isStorageAlertWrapperEmpty = ref<boolean>(false)
595
596
  const isCompatibilityAlertWrapperEmpty = ref<boolean>(false)
597
+
598
+ const storageLocal = computed<UI_I_DatastoreTableItem | undefined>(() => {
599
+ return selectedStorageLocal.value ?? props.vmtSettings?.storage
600
+ })
601
+
602
+ /* TODO: В дальнейшем необходимо вынести все данные наружу и передавать его через v-model */
603
+ // рефакторинг. При возврате на шаг выбора хранилища ранее выбранное хранилище не отображается как выбранное.
604
+ // Для хранилища в v-model необходимо сохранять ID хранилища, а не ключ индекса.
605
+ const selectedStorageLocal = ref<UI_I_DatastoreTableItem | null>(null)
606
+ const setSelectedStorageIdLocal = (datastore: UI_I_DatastoreTableItem) => {
607
+ selectedStorageLocal.value = {
608
+ id: datastore.id,
609
+ } as UI_I_DatastoreTableItem
610
+ }
596
611
  </script>
597
612
 
598
613
  <style>
@@ -1,7 +1,7 @@
1
1
  <template>
2
2
  <component
3
3
  :is="currentComponent"
4
- v-model:cd-dvd-media="cdDvdMedia"
4
+ v-model:cd-dvd-media="localCdDvdMedia"
5
5
  :index="props.index"
6
6
  @browse="emits('browse')"
7
7
  />
@@ -24,6 +24,19 @@ const currentComponent = computed(() =>
24
24
  ? defineAsyncComponent(() => import('./New.vue'))
25
25
  : defineAsyncComponent(() => import('./Old.vue'))
26
26
  )
27
+
28
+ const localCdDvdMedia = ref<string>('')
29
+
30
+ watch(cdDvdMedia, (newValue) => {
31
+ localCdDvdMedia.value = newValue.replace(/^([^:]+):\//, '[$1]:/')
32
+ }, { immediate: true })
33
+
34
+ watch(localCdDvdMedia, (newValue) => {
35
+ const cleaned = newValue.replace(/^\[([^\]]+)\]:\//, '$1:/')
36
+ if (cleaned !== cdDvdMedia.value) {
37
+ cdDvdMedia.value = cleaned
38
+ }
39
+ })
27
40
  </script>
28
41
 
29
42
  <style scoped></style>
@@ -56,6 +56,11 @@ const emits = defineEmits<{
56
56
  }>()
57
57
 
58
58
  const localization = computed<UI_I_Localization>(() => useLocal())
59
+
60
+ onMounted(() => {
61
+ const cdDvdMediaInputElement = document.getElementById('vm-wizard-dvd-media-input')
62
+ cdDvdMediaInputElement?.classList.remove('text-ellipsis')
63
+ })
59
64
  </script>
60
65
 
61
66
  <style>
@@ -12,6 +12,7 @@
12
12
  <input
13
13
  id="vm-wizard-dvd-media-input"
14
14
  v-model="cdDvdMedia"
15
+ :title="cdDvdMedia"
15
16
  data-id="vm-wizard-dvd-media-input"
16
17
  type="text"
17
18
  disabled
@@ -242,6 +242,7 @@ const localization = computed<UI_I_Localization>(() => useLocal())
242
242
  .cpu-info-block {
243
243
  :deep(.help-text) {
244
244
  margin-bottom: 12px;
245
+ color: var(--stack-block-text-color);
245
246
  }
246
247
  :deep(.cpu-more-info) {
247
248
  font-size: 13px;
@@ -106,6 +106,8 @@ const onSelectReservation = (value: number): void => {
106
106
 
107
107
  .ui-checkbox-label {
108
108
  min-height: unset !important;
109
+ height: max-content;
110
+ word-break: break-word;
109
111
  }
110
112
  }
111
113
  </style>
@@ -76,18 +76,20 @@
76
76
  {{ localization.vmWizard.powerVMAfterCreation }}
77
77
  </p>
78
78
  </div>
79
- <div
80
- v-if="props.isNewVmFromTemplate && props.project === 'sphere'"
81
- class="checkbox-container"
82
- >
83
- <ui-input
84
- v-model="maxParallel"
85
- :placeholder="localization.vmWizard.maxParallel"
86
- test-id="max-parallel"
87
- type="number"
88
- class="ml-1 mt-2"
89
- />
90
- </div>
79
+
80
+ <!-- SC-2112-->
81
+ <!-- <div-->
82
+ <!-- v-if="props.isNewVmFromTemplate && props.project === 'sphere'"-->
83
+ <!-- class="checkbox-container"-->
84
+ <!-- >-->
85
+ <!-- <ui-input-->
86
+ <!-- v-model="maxParallel"-->
87
+ <!-- :placeholder="localization.vmWizard.maxParallel"-->
88
+ <!-- test-id="max-parallel"-->
89
+ <!-- type="number"-->
90
+ <!-- class="ml-1 mt-2"-->
91
+ <!-- />-->
92
+ <!-- </div>-->
91
93
  <!-- Пока что нужно скрыть-->
92
94
  <!-- <div-->
93
95
  <!-- v-if="props.isNewVmFromTemplate"-->
@@ -40,21 +40,22 @@
40
40
  }}</label>
41
41
  </div>
42
42
 
43
- <div
44
- v-if="props.isNewVmFromTemplate && props.project === 'sphere'"
45
- class="checkbox"
46
- >
47
- <label for="max-parallel">{{ localization.vmWizard.maxParallel }}</label>
48
- <input
49
- id="max-parallel"
50
- v-model="maxParallel"
51
- data-id="max-parallel"
52
- type="number"
53
- class="ml-1"
54
- :min="1"
55
- :max="100"
56
- />
57
- </div>
43
+ <!-- SC-2112-->
44
+ <!-- <div-->
45
+ <!-- v-if="props.isNewVmFromTemplate && props.project === 'sphere'"-->
46
+ <!-- class="checkbox"-->
47
+ <!-- >-->
48
+ <!-- <label for="max-parallel">{{ localization.vmWizard.maxParallel }}</label>-->
49
+ <!-- <input-->
50
+ <!-- id="max-parallel"-->
51
+ <!-- v-model="maxParallel"-->
52
+ <!-- data-id="max-parallel"-->
53
+ <!-- type="number"-->
54
+ <!-- class="ml-1"-->
55
+ <!-- :min="1"-->
56
+ <!-- :max="100"-->
57
+ <!-- />-->
58
+ <!-- </div>-->
58
59
  <!-- Пока что нужно скрыть-->
59
60
  <!-- <div v-if="props.isNewVmFromTemplate" class="checkbox">-->
60
61
  <!-- &lt;!&ndash; :disabled="props.isNewVmFromTemplate"&ndash;&gt;-->