bfg-common 1.6.49 → 1.6.50
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.
- package/assets/localization/local_be.json +255 -9
- package/assets/localization/local_en.json +264 -17
- package/assets/localization/local_hy.json +257 -11
- package/assets/localization/local_kk.json +255 -9
- package/assets/localization/local_ru.json +264 -18
- package/assets/localization/local_zh.json +255 -9
- package/assets/scss/common/global.scss +11 -0
- package/assets/scss/common/theme.scss +2 -2
- package/components/atoms/stack/StackBlock.vue +1 -1
- package/components/atoms/tooltip/TooltipError.vue +3 -0
- package/components/common/adapterManager/addAdapterModal/AddAdapterModalNew.vue +1 -1
- package/components/common/adapterManager/addAdapterWarningModal/AddAdapterWarningModalNew.vue +0 -1
- package/components/common/adapterManager/ui/table/adapters/AdaptersNew.vue +1 -0
- package/components/common/certificate/CertificateInfo.vue +7 -1
- package/components/common/configure/physicalAdapters/PhysicalAdapters.vue +6 -0
- package/components/common/configure/physicalAdapters/PhysicalAdaptersNew.vue +219 -192
- package/components/common/configure/physicalAdapters/PhysicalAdaptersOld.vue +6 -4
- package/components/common/configure/physicalAdapters/buttons/Buttons.vue +1 -0
- package/components/common/configure/physicalAdapters/modals/edit/Edit.vue +26 -1
- package/components/common/configure/physicalAdapters/modals/edit/EditNew.vue +30 -1
- package/components/common/configure/physicalAdapters/modals/edit/lib/models/interfaces.ts +5 -0
- package/components/common/configure/physicalAdapters/modals/edit/lib/validations/validations.ts +19 -0
- package/components/common/configure/physicalAdapters/tableView/TableViewNew.vue +12 -1
- package/components/common/configure/physicalAdapters/tableView/lib/config/physicalAdaptersTableConfigNew.ts +21 -21
- package/components/common/configure/physicalAdapters/tableView/lib/config/settings.ts +12 -5
- package/components/common/configure/physicalAdapters/tableView/lib/models/interfaces.ts +4 -1
- package/components/common/diagramMain/Diagram.vue +167 -85
- package/components/common/diagramMain/DiagramMain.vue +34 -10
- package/components/common/diagramMain/header/Header.vue +49 -0
- package/components/common/diagramMain/header/HeaderNew.vue +155 -0
- package/components/common/diagramMain/{Header.vue → header/HeaderOld.vue} +78 -67
- package/components/common/diagramMain/modals/Modals.vue +4 -0
- package/components/common/diagramMain/modals/editSettings/tabs/NetworkProperties.vue +2 -2
- package/components/common/diagramMain/modals/lib/config/diagramConfig.ts +43 -2
- package/components/common/diagramMain/modals/lib/config/index.ts +2 -1
- package/components/common/diagramMain/modals/lib/config/vmKernelAdapter.ts +1 -1
- package/components/common/diagramMain/modals/migrateVmkernelAdapter/MigrateVmkernelAdapter.vue +2 -2
- package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/common.ts +1 -1
- package/components/common/diagramMain/skeleton/Header.vue +31 -0
- package/components/common/diagramMain/skeleton/Switch.vue +75 -0
- package/components/common/layout/theHeader/ThemeSwitch.vue +1 -1
- package/components/common/layout/theHeader/modals/reconnect/New.vue +38 -30
- package/components/common/layout/theHeader/userMenu/modals/changePassword/New.vue +8 -9
- package/components/common/layout/theHeader/userMenu/modals/preferences/New.vue +4 -0
- package/components/common/layout/theHeader/userMenu/modals/preferences/Old.vue +9 -2
- package/components/common/layout/theHeader/userMenu/modals/preferences/changeLanguage/ChangeLanguage.vue +11 -7
- package/components/common/layout/theHeader/userMenu/modals/preferences/defaultConsole/DefaultConsole.vue +7 -1
- package/components/common/layout/theHeader/userMenu/modals/preferences/defaultConsole/lib/config/consoleOptions.ts +8 -5
- package/components/common/layout/theHeader/userMenu/modals/preferences/timeFormat/TimeFormat.vue +9 -5
- package/components/common/layout/theHeader/userMenu/modals/preferences/timeFormat/lib/config/formatOptions.ts +1 -1
- package/components/common/layout/theHeader/userMenu/modals/preferences/view/Old.vue +5 -9
- package/components/common/layout/theHeader/userMenu/modals/preferences/view/View.vue +9 -6
- package/components/common/mainNavigationPanel/MainNavigationPanelNew.vue +3 -1
- package/components/common/monitor/advanced/tools/Tools.vue +10 -9
- package/components/common/monitor/advanced/tools/chartOptionsModal/ChartOptionsModal.vue +16 -19
- package/components/common/monitor/advanced/tools/lib/config/advancedToolbar.ts +62 -9
- package/components/common/noDataProvided/NoDataProvidedNew.vue +1 -1
- package/components/common/pages/backups/modals/createBackup/datastores/tableView/new/lib/config/table.ts +4 -4
- package/components/common/pages/backups/modals/createBackup/datastores/tableView/old/lib/config/table.ts +4 -4
- package/components/common/pages/hardwareHealth/HardwareHealth.vue +4 -0
- package/components/common/pages/hardwareHealth/HardwareHealthNew.vue +12 -3
- package/components/common/pages/hardwareHealth/HardwareHealthOld.vue +3 -0
- package/components/common/pages/hardwareHealth/historyTestimony/Graph.vue +4 -4
- package/components/common/pages/hardwareHealth/historyTestimony/GraphNew.vue +4 -3
- package/components/common/pages/hardwareHealth/historyTestimony/GraphOld.vue +3 -2
- package/components/common/pages/hardwareHealth/historyTestimony/tools/Tools.vue +32 -8
- package/components/common/pages/hardwareHealth/historyTestimony/tools/ToolsNew.vue +11 -18
- package/components/common/pages/hardwareHealth/historyTestimony/tools/ToolsOld.vue +10 -19
- package/components/common/pages/hardwareHealth/historyTestimony/tools/chartOptionsModal/ChartOptionsModal.vue +19 -7
- package/components/common/pages/hardwareHealth/historyTestimony/tools/chartOptionsModal/actions/ActionsNew.vue +1 -1
- package/components/common/pages/hardwareHealth/historyTestimony/tools/lib/config/toolbar.ts +68 -5
- package/components/common/pages/scheduledTasks/table/lib/models/enums.ts +9 -0
- package/components/common/pages/scheduledTasks/table/new/New.vue +12 -10
- package/components/common/pages/tasks/Tasks.vue +4 -1
- package/components/common/pages/tasks/table/Table.vue +25 -23
- package/components/common/readyToComplete/New.vue +1 -0
- package/components/common/split/vertical/New.vue +42 -8
- package/components/common/split/vertical/Old.vue +31 -2
- package/components/common/split/vertical/Vertical.vue +4 -0
- package/components/common/vm/actions/add/New.vue +21 -6
- package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/Media.vue +14 -1
- package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/New.vue +5 -0
- package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/Old.vue +1 -0
- package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/New.vue +1 -0
- package/components/common/vm/actions/common/customizeHardware/virtualHardware/reservation/New.vue +2 -0
- package/components/common/vm/actions/common/select/storage/new/lib/config/table.ts +13 -15
- package/components/common/vm/actions/confirm/Confirm.vue +3 -0
- package/components/common/vm/snapshots/DetailView.vue +6 -6
- package/components/common/wizards/datastore/add/New.vue +6 -0
- package/components/common/wizards/datastore/add/lib/config/steps.ts +1 -1
- package/components/common/wizards/datastore/add/steps/nameAndDevice/NameAndDeviceNew.vue +1 -1
- package/components/common/wizards/datastore/add/steps/nameAndDevice/advancedOptions/New.vue +1 -1
- package/components/common/wizards/network/add/Add.vue +13 -2
- package/components/common/wizards/network/add/AddNew.vue +22 -26
- package/components/common/wizards/network/add/lib/config/initialData.ts +6 -4
- package/components/common/wizards/network/add/lib/config/steps.ts +1 -1
- package/components/common/wizards/network/add/lib/models/interfaces.ts +1 -0
- package/components/common/wizards/network/add/lib/utils/utils.ts +1 -1
- package/components/common/wizards/network/add/steps/connectionSettings/ConnectionSettingsOld.vue +5 -1
- package/components/common/wizards/network/add/steps/ipFourSettings/IpFourSettingsNew.vue +2 -8
- package/components/common/wizards/network/add/steps/ipFourSettings/IpFourSettingsOld.vue +3 -0
- package/components/common/wizards/network/add/steps/portProperties/PortPropertiesNew.vue +2 -8
- package/components/common/wizards/network/add/steps/portProperties/PortPropertiesOld.vue +6 -2
- package/components/common/wizards/network/add/steps/selectTargetDevice/SelectTargetDeviceNew.vue +10 -3
- package/components/common/wizards/network/add/steps/selectTargetDevice/SelectTargetDeviceOld.vue +4 -0
- package/components/common/wizards/network/add/steps/selectTargetDevice/modals/new/SelectNetwork.vue +5 -1
- package/components/common/wizards/network/add/validations/common.ts +1 -1
- package/components/common/wizards/vm/migrate/New.vue +13 -3
- package/components/common/wizards/vm/migrate/lib/config/constructDataReady.ts +5 -0
- package/components/common/wizards/vm/migrate/lib/config/steps.ts +3 -2
- package/components/common/wizards/vm/migrate/steps/computeResource/New.vue +2 -1
- package/components/common/wizards/vm/migrate/steps/computeResource/tableView/new/New.vue +40 -21
- package/components/common/wizards/vm/migrate/steps/computeResource/tableView/new/lib/config/clusterTable.ts +340 -0
- package/components/common/wizards/vm/migrate/steps/computeResource/tableView/new/lib/config/hostTable.ts +44 -14
- package/components/common/wizards/vm/migrate/steps/computeResource/tableView/new/lib/models/enums.ts +4 -0
- package/components/common/wizards/vm/migrate/steps/priority/New.vue +7 -2
- package/components/common/wizards/vm/migrate/steps/selectStorage/New.vue +22 -7
- package/components/common/wizards/vm/migrate/steps/selectStorage/configure/batch/New.vue +6 -0
- package/components/common/wizards/vm/migrate/steps/selectStorage/configure/batch/table/new/New.vue +4 -1
- package/components/common/wizards/vm/migrate/steps/selectStorage/configure/batch/table/new/lib/config/datastoreTable.ts +12 -16
- package/components/common/wizards/vm/migrate/steps/selectStorage/configure/disk/table/new/New.vue +10 -5
- package/components/common/wizards/vm/migrate/steps/selectStorage/configure/disk/table/new/lib/config/diskTable.ts +16 -11
- package/components/common/wizards/vm/migrate/steps/selectStorage/configure/disk/table/old/lib/config/diskTable.ts +7 -1
- package/components/common/wizards/vm/migrate/steps/selectStorage/selectedPerDisk/New.vue +17 -10
- package/components/common/wizards/vm/migrate/steps/type/TypeNew.vue +1 -0
- package/components/common/wizards/vm/migrate/vmOrigin/New.vue +35 -15
- package/lib/models/store/tasks/enums.ts +3 -0
- package/lib/models/store/tasks/types.ts +7 -6
- package/package.json +2 -2
- package/plugins/directives.ts +3 -5
- package/public/spice-console/application/agent.js +18 -17
- package/store/tasks/actions.ts +26 -8
- package/store/tasks/mappers/recentTasks.ts +1 -0
- package/components/common/pages/hardwareHealth/historyTestimony/tools/chartOptionsModal/actions/SaveOptionsModal.vue +0 -81
|
@@ -83,6 +83,7 @@
|
|
|
83
83
|
:valid-date-end="props.validDateEnd"
|
|
84
84
|
:format-date="props.formatDate"
|
|
85
85
|
:selected-host-name="props.selectedHostName"
|
|
86
|
+
:project="props.project"
|
|
86
87
|
@hide="emits('hide-chart-modal')"
|
|
87
88
|
@select-metric-local="emits('select-metric-local', $event)"
|
|
88
89
|
@power-selected-rows-local="emits('power-selected-rows-local', $event)"
|
|
@@ -91,21 +92,19 @@
|
|
|
91
92
|
"
|
|
92
93
|
@update-period-type="emits('update-period-type', $event)"
|
|
93
94
|
@delete-option="emits('delete-option')"
|
|
94
|
-
@save-option-name="
|
|
95
|
+
@save-option-name="emits('save-option-name')"
|
|
95
96
|
@submit-options="emits('submit-options', $event)"
|
|
96
97
|
/>
|
|
97
98
|
</template>
|
|
98
99
|
|
|
99
100
|
<script setup lang="ts">
|
|
100
101
|
import type { UI_I_Localization } from '~/lib/models/interfaces'
|
|
102
|
+
import type { UI_T_Project } from '~/lib/models/types'
|
|
101
103
|
import type { UI_I_HardwareHealthSensorsGraph } from '~/components/common/pages/hardwareHealth/historyTestimony/lib/models/interfaces'
|
|
102
104
|
import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
|
|
103
105
|
import type { UI_I_OptionsForm } from '~/components/common/monitor/advanced/tools/chartOptionsModal/lib/models/interfaces'
|
|
104
106
|
import type { UI_T_Chart } from '~/components/common/pages/hardwareHealth/historyTestimony/tools/chartOptionsModal/lib/models/types'
|
|
105
|
-
import {
|
|
106
|
-
getCurrentOptionsStorageFunc,
|
|
107
|
-
viewFunc,
|
|
108
|
-
} from '~/components/common/pages/hardwareHealth/historyTestimony/tools/lib/config/toolbar'
|
|
107
|
+
import { viewFunc } from '~/components/common/pages/hardwareHealth/historyTestimony/tools/lib/config/toolbar'
|
|
109
108
|
|
|
110
109
|
const selectedView = defineModel<string>('selectedView', { required: true })
|
|
111
110
|
const selectedPeriod = defineModel<string>('selectedPeriod', { required: true })
|
|
@@ -135,6 +134,8 @@ const props = defineProps<{
|
|
|
135
134
|
chartTitleDate: string
|
|
136
135
|
periodOptions: UI_I_OptionItem[]
|
|
137
136
|
selectedHostName: string
|
|
137
|
+
optionsNames: string[]
|
|
138
|
+
project: UI_T_Project
|
|
138
139
|
}>()
|
|
139
140
|
|
|
140
141
|
const emits = defineEmits<{
|
|
@@ -151,16 +152,15 @@ const emits = defineEmits<{
|
|
|
151
152
|
value: UI_I_HardwareHealthSensorsGraph[]
|
|
152
153
|
): void
|
|
153
154
|
(event: 'update-period-type', value: string): void
|
|
154
|
-
(event: 'delete-option'): void
|
|
155
155
|
(event: 'submit-options', value: UI_I_OptionsForm): void
|
|
156
|
+
(event: 'save-option-name'): void
|
|
157
|
+
(event: 'delete-option'): void
|
|
156
158
|
}>()
|
|
157
159
|
|
|
158
160
|
const localization = computed<UI_I_Localization>(() => useLocal())
|
|
159
161
|
|
|
160
|
-
const optionsNames = ref<string[]>([])
|
|
161
|
-
|
|
162
162
|
const viewOptions = computed<UI_I_OptionItem[]>(() =>
|
|
163
|
-
viewFunc(localization.value, optionsNames
|
|
163
|
+
viewFunc(localization.value, props.optionsNames)
|
|
164
164
|
)
|
|
165
165
|
|
|
166
166
|
watch(
|
|
@@ -170,7 +170,7 @@ watch(
|
|
|
170
170
|
if (newValue) currentValue = newValue
|
|
171
171
|
else if (
|
|
172
172
|
selectedView.value &&
|
|
173
|
-
optionsNames.
|
|
173
|
+
props.optionsNames.includes(selectedView.value)
|
|
174
174
|
)
|
|
175
175
|
currentValue = selectedView.value
|
|
176
176
|
else currentValue = selectedView.value || viewOptions.value[0]?.value
|
|
@@ -179,15 +179,6 @@ watch(
|
|
|
179
179
|
},
|
|
180
180
|
{ immediate: true }
|
|
181
181
|
)
|
|
182
|
-
|
|
183
|
-
const onSaveOptionName = (): void => {
|
|
184
|
-
optionsNames.value = getCurrentOptionsStorageFunc()
|
|
185
|
-
}
|
|
186
|
-
|
|
187
|
-
onMounted(() => {
|
|
188
|
-
optionsNames.value = getCurrentOptionsStorageFunc()
|
|
189
|
-
emits('update-tools')
|
|
190
|
-
})
|
|
191
182
|
</script>
|
|
192
183
|
|
|
193
184
|
<style scoped lang="scss">
|
|
@@ -87,6 +87,7 @@
|
|
|
87
87
|
|
|
88
88
|
<script setup lang="ts">
|
|
89
89
|
import type { UI_I_Localization } from '~/lib/models/interfaces'
|
|
90
|
+
import type { UI_T_Project } from '~/lib/models/types'
|
|
90
91
|
import type { UI_I_VerticalTabs } from '~/components/atoms/tabs/lib/models/interfaces'
|
|
91
92
|
import type { UI_T_Chart } from '~/components/common/pages/hardwareHealth/historyTestimony/tools/chartOptionsModal/lib/models/types'
|
|
92
93
|
import type { UI_I_OptionsForm } from '~/components/common/pages/hardwareHealth/historyTestimony/tools/chartOptionsModal/lib/models/interfaces'
|
|
@@ -94,7 +95,11 @@ import type { UI_I_HardwareHealthSensorsGraph } from '~/components/common/pages/
|
|
|
94
95
|
import { metricsFunc } from '~/components/common/pages/hardwareHealth/historyTestimony/tools/chartOptionsModal/lib/config/optionsMetrics'
|
|
95
96
|
import { checkDateFunc } from '~/components/common/monitor/overview/filters/customIntervalModal/lib/config/dateChecker'
|
|
96
97
|
import { getValidDateByOptionFunc } from '~/components/common/monitor/lib/config/getValidDateByOption'
|
|
97
|
-
import {
|
|
98
|
+
import {
|
|
99
|
+
getCurrentOptionsStorageFunc,
|
|
100
|
+
removeSelectedOptionsFromStorageFunc,
|
|
101
|
+
getSelectedOptionsValueFromStorageFunc,
|
|
102
|
+
} from '~/components/common/pages/hardwareHealth/historyTestimony/tools/lib/config/toolbar'
|
|
98
103
|
|
|
99
104
|
const props = defineProps<{
|
|
100
105
|
selectedChartOptionName: string
|
|
@@ -117,6 +122,7 @@ const props = defineProps<{
|
|
|
117
122
|
validDateEnd: number
|
|
118
123
|
formatDate: string
|
|
119
124
|
selectedHostName: string
|
|
125
|
+
project: UI_T_Project
|
|
120
126
|
}>()
|
|
121
127
|
|
|
122
128
|
const emits = defineEmits<{
|
|
@@ -141,6 +147,7 @@ const { $store }: any = useNuxtApp()
|
|
|
141
147
|
const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
|
|
142
148
|
|
|
143
149
|
const routeType = '' + useRoute().params.type
|
|
150
|
+
const routeId = '' + useRoute().params.id
|
|
144
151
|
|
|
145
152
|
const localization = computed<UI_I_Localization>(() => useLocal())
|
|
146
153
|
|
|
@@ -389,6 +396,8 @@ const onSaveOptions = (name: string): void => {
|
|
|
389
396
|
chartType,
|
|
390
397
|
counters,
|
|
391
398
|
metric: selectedMetric.value,
|
|
399
|
+
validShowName: name,
|
|
400
|
+
nodeId: routeId,
|
|
392
401
|
timespan: {
|
|
393
402
|
periodType: localTimespanPeriodType.value,
|
|
394
403
|
units: localCustomTime.value,
|
|
@@ -396,8 +405,8 @@ const onSaveOptions = (name: string): void => {
|
|
|
396
405
|
type: timespanType.value,
|
|
397
406
|
},
|
|
398
407
|
}
|
|
399
|
-
useLocalStorage(
|
|
400
|
-
optionsNames.value = getCurrentOptionsStorageFunc()
|
|
408
|
+
useLocalStorage(`ChartOptionsSensors${name}`, saveOptionsData)
|
|
409
|
+
optionsNames.value = getCurrentOptionsStorageFunc(props.project)
|
|
401
410
|
localSelectedChartOptionName.value = name
|
|
402
411
|
emits('save-option-name')
|
|
403
412
|
}
|
|
@@ -418,7 +427,10 @@ const setDefaultOptions = (): void => {
|
|
|
418
427
|
}
|
|
419
428
|
|
|
420
429
|
const setCustomOptions = (name: string): void => {
|
|
421
|
-
const selectedValue =
|
|
430
|
+
const selectedValue = getSelectedOptionsValueFromStorageFunc(
|
|
431
|
+
name,
|
|
432
|
+
props.project
|
|
433
|
+
)
|
|
422
434
|
|
|
423
435
|
if (selectedValue.routeType !== routeType) return
|
|
424
436
|
|
|
@@ -462,8 +474,8 @@ watch(
|
|
|
462
474
|
)
|
|
463
475
|
|
|
464
476
|
const onDeleteChartName = (name: string): void => {
|
|
465
|
-
|
|
466
|
-
optionsNames.value = getCurrentOptionsStorageFunc()
|
|
477
|
+
removeSelectedOptionsFromStorageFunc(name, props.project)
|
|
478
|
+
optionsNames.value = getCurrentOptionsStorageFunc(props.project)
|
|
467
479
|
setSelectOptions()
|
|
468
480
|
emits('delete-option')
|
|
469
481
|
}
|
|
@@ -481,7 +493,7 @@ watch(
|
|
|
481
493
|
)
|
|
482
494
|
|
|
483
495
|
onMounted(() => {
|
|
484
|
-
optionsNames.value = getCurrentOptionsStorageFunc()
|
|
496
|
+
optionsNames.value = getCurrentOptionsStorageFunc(props.project)
|
|
485
497
|
})
|
|
486
498
|
</script>
|
|
487
499
|
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { UI_I_Localization } from '~/lib/models/interfaces'
|
|
2
|
+
import type { UI_T_Project } from '~/lib/models/types'
|
|
2
3
|
import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
|
|
3
4
|
|
|
4
5
|
export const periodFunc = (
|
|
@@ -69,14 +70,76 @@ export const viewFunc = (
|
|
|
69
70
|
return result
|
|
70
71
|
}
|
|
71
72
|
|
|
72
|
-
export const getCurrentOptionsStorageFunc = (
|
|
73
|
+
export const getCurrentOptionsStorageFunc = (
|
|
74
|
+
project: UI_T_Project
|
|
75
|
+
): string[] => {
|
|
76
|
+
const routeId = useRoute().params.id
|
|
77
|
+
const routeType = useRoute().params.type
|
|
78
|
+
const localStoragePrefix = project === 'sphere' ? getLocalStoragePrefix() : ''
|
|
79
|
+
|
|
73
80
|
const optionsNames = []
|
|
74
81
|
for (const key of Object.entries(localStorage)) {
|
|
75
|
-
if (
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
82
|
+
if (
|
|
83
|
+
key[0].includes('ChartOptionsSensors') &&
|
|
84
|
+
key[0].includes(localStoragePrefix)
|
|
85
|
+
) {
|
|
86
|
+
const values = JSON.parse(key[1])
|
|
87
|
+
|
|
88
|
+
if (
|
|
89
|
+
values.value.routeType === routeType &&
|
|
90
|
+
values.value.nodeId === routeId
|
|
91
|
+
)
|
|
92
|
+
optionsNames.push(values.value.validShowName)
|
|
79
93
|
}
|
|
80
94
|
}
|
|
81
95
|
return optionsNames
|
|
82
96
|
}
|
|
97
|
+
|
|
98
|
+
export const removeSelectedOptionsFromStorageFunc = (
|
|
99
|
+
selectedName: string,
|
|
100
|
+
project: UI_T_Project
|
|
101
|
+
): void => {
|
|
102
|
+
const routeId = useRoute().params.id
|
|
103
|
+
const localStoragePrefix = project === 'sphere' ? getLocalStoragePrefix() : ''
|
|
104
|
+
|
|
105
|
+
for (const key of Object.entries(localStorage)) {
|
|
106
|
+
if (
|
|
107
|
+
key[0].includes('ChartOptionsSensors') &&
|
|
108
|
+
key[0].includes(localStoragePrefix)
|
|
109
|
+
) {
|
|
110
|
+
let values = JSON.parse(key[1])
|
|
111
|
+
|
|
112
|
+
if (
|
|
113
|
+
values.value.validShowName === selectedName &&
|
|
114
|
+
values.value.nodeId === routeId
|
|
115
|
+
)
|
|
116
|
+
window.localStorage.removeItem(key[0])
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
export const getSelectedOptionsValueFromStorageFunc = (
|
|
122
|
+
selectedName: string,
|
|
123
|
+
project: UI_T_Project
|
|
124
|
+
): any => {
|
|
125
|
+
const routeId = useRoute().params.id
|
|
126
|
+
const localStoragePrefix = project === 'sphere' ? getLocalStoragePrefix() : ''
|
|
127
|
+
|
|
128
|
+
let result = null
|
|
129
|
+
|
|
130
|
+
for (const key of Object.entries(localStorage)) {
|
|
131
|
+
if (
|
|
132
|
+
key[0].includes('ChartOptionsSensors') &&
|
|
133
|
+
key[0].includes(localStoragePrefix)
|
|
134
|
+
) {
|
|
135
|
+
let values = JSON.parse(key[1])
|
|
136
|
+
|
|
137
|
+
if (
|
|
138
|
+
values.value.validShowName === selectedName &&
|
|
139
|
+
values.value.nodeId === routeId
|
|
140
|
+
)
|
|
141
|
+
result = values.value
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
return result
|
|
145
|
+
}
|
|
@@ -2,3 +2,12 @@ export enum UI_E_SchedulerRunStatus {
|
|
|
2
2
|
RUNNING = 'this task has been started',
|
|
3
3
|
SUCCESS = 'success',
|
|
4
4
|
}
|
|
5
|
+
|
|
6
|
+
export enum E_SchedulerFrequencyModeLocale {
|
|
7
|
+
Once = 'once',
|
|
8
|
+
Startup = 'afterVCenterStartup',
|
|
9
|
+
Hourly = 'hourly',
|
|
10
|
+
Daily = 'daily',
|
|
11
|
+
Weekly = 'weekly',
|
|
12
|
+
Monthly = 'monthly',
|
|
13
|
+
}
|
|
@@ -82,16 +82,18 @@
|
|
|
82
82
|
<ui-icon name="vertical-dotes" width="20" height="20" />
|
|
83
83
|
</span>
|
|
84
84
|
</ui-button>
|
|
85
|
-
<
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
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',
|
|
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
|
-
<
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
<
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
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.
|
|
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,
|
|
@@ -3,13 +3,22 @@
|
|
|
3
3
|
:id="props.elementId"
|
|
4
4
|
:class="['fill-parent vertical', { dragging: props.isDrag }]"
|
|
5
5
|
>
|
|
6
|
-
<div
|
|
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
|
|
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
|
-
.
|
|
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-
|
|
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:
|
|
116
|
-
top:
|
|
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
|
|
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
|
|
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<{
|
|
@@ -55,13 +55,13 @@
|
|
|
55
55
|
<div ref="subTitleBlockName">
|
|
56
56
|
<div class="subtitle-block">
|
|
57
57
|
<div
|
|
58
|
-
|
|
59
|
-
|
|
58
|
+
id="name-alert-wrapper"
|
|
59
|
+
:class="[{ 'mb-4': !isNameAlertWrapperEmpty }]"
|
|
60
60
|
></div>
|
|
61
61
|
<ui-wizard-subtitle
|
|
62
|
-
|
|
63
|
-
|
|
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="
|
|
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>
|