bfg-common 1.5.246 → 1.5.248

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 (46) hide show
  1. package/assets/img/icons/icons-sprite-dark-3.svg +227 -227
  2. package/assets/img/icons/icons-sprite-dark-5.svg +488 -488
  3. package/assets/img/icons/icons-sprite-light-3.svg +227 -227
  4. package/assets/img/icons/icons-sprite-light-5.svg +488 -488
  5. package/assets/localization/local_be.json +15 -4
  6. package/assets/localization/local_en.json +15 -4
  7. package/assets/localization/local_hy.json +15 -4
  8. package/assets/localization/local_kk.json +15 -4
  9. package/assets/localization/local_ru.json +19 -8
  10. package/assets/localization/local_zh.json +15 -4
  11. package/assets/scss/clarity/local_ar.json +2 -2
  12. package/assets/scss/common/theme.scss +16 -0
  13. package/components/atoms/stack/StackBlock.vue +185 -185
  14. package/components/atoms/table/info/lib/models/interfaces.ts +10 -10
  15. package/components/common/backup/storage/actions/add/New.vue +6 -8
  16. package/components/common/backup/storage/actions/add/lib/config/createDatastore.ts +1 -1
  17. package/components/common/backup/storage/actions/add/lib/config/steps.ts +3 -3
  18. package/components/common/backup/storage/actions/add/steps/common/tooltipInfo/TooltipInfo.vue +94 -0
  19. package/components/common/backup/storage/actions/add/steps/hostAccessibility/HostAccessibility.vue +16 -18
  20. package/components/common/backup/storage/actions/add/steps/hostAccessibility/HostAccessibilityNew.vue +2 -7
  21. package/components/common/backup/storage/actions/add/steps/hostAccessibility/table/new/lib/config/compatibleTable.ts +3 -2
  22. package/components/common/backup/storage/actions/add/steps/name/Name.vue +1 -0
  23. package/components/common/backup/storage/actions/add/steps/name/New.vue +3 -16
  24. package/components/common/backup/storage/actions/add/steps/nameAndConfigure/NameAndConfigure.vue +1 -0
  25. package/components/common/backup/storage/actions/add/steps/nameAndConfigure/NameAndConfigureNew.vue +25 -73
  26. package/components/common/backup/storage/actions/add/steps/readyComplete/ReadyCompleteNew.vue +43 -5
  27. package/components/common/backup/storage/actions/add/steps/readyComplete/lib/config/propertiesDetails.ts +6 -5
  28. package/components/common/backup/storage/actions/add/steps/typeMode/TypeModeNew.vue +15 -16
  29. package/components/common/layout/theHeader/feedback/new/additionalDetails/Headline.vue +67 -8
  30. package/components/common/layout/theHeader/feedback/new/subtitle/Subtitle.vue +72 -8
  31. package/components/common/pages/tasks/table/Table.vue +7 -15
  32. package/components/common/pages/tasks/table/errorInfo/ErrorInfo.vue +128 -0
  33. package/components/common/pages/tasks/table/expandDetails/ExpandDetails.vue +9 -15
  34. package/components/common/vm/actions/common/customizeHardware/virtualHardware/bus/BusNew.vue +99 -10
  35. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaNew.vue +1 -1
  36. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/CpuNew.vue +3 -52
  37. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/model/ModelNew.vue +151 -32
  38. package/components/common/vm/actions/common/select/name/New.vue +70 -10
  39. package/components/common/wizards/datastore/add/New.vue +3 -8
  40. package/components/common/wizards/datastore/add/steps/common/tooltipInfo/TooltipInfo.vue +93 -0
  41. package/components/common/wizards/datastore/add/steps/nameAndConfigure/NameAndConfigureNew.vue +6 -17
  42. package/components/common/wizards/datastore/add/steps/nameAndDevice/NameAndDeviceNew.vue +3 -9
  43. package/components/common/wizards/datastore/add/steps/typeMode/TypeModeNew.vue +6 -9
  44. package/package.json +1 -1
  45. package/components/common/tooltip/Help.vue +0 -132
  46. package/components/common/tooltip/lib/models/types.ts +0 -1
@@ -1,185 +1,185 @@
1
- <template>
2
- <div
3
- :class="[
4
- 'stack-block',
5
- open ? 'stack-block-expanded' : 'stack-block-expandable',
6
- { 'not-children': !props.hasChildren },
7
- ]"
8
- >
9
- <div
10
- :id="`${props.testId}-toggle`"
11
- :data-id="`${props.testId}-toggle`"
12
- class="stack-block-label"
13
- @click="onToggle"
14
- >
15
- <atoms-the-icon name="angle" class="angle-icon" fill="#565656" />
16
-
17
- <div class="stack-view-key">
18
- <slot name="stackBlockKey" />
19
- </div>
20
- <div class="stack-block-content">
21
- <slot name="stackBlockContent" />
22
- </div>
23
-
24
- <span
25
- v-if="props.removable && props.isRollBack"
26
- :data-id="`${props.testId}-roll-back`"
27
- class="icon-roll-back"
28
- @mousedown="onRollBack"
29
- @click.stop
30
- />
31
- <atoms-the-icon
32
- v-else-if="props.removable"
33
- :data-id="`${props.testId}-remove`"
34
- class="remove-icon"
35
- name="close-circle"
36
- @mousedown="onRemove"
37
- @click.stop
38
- />
39
- <span v-else class="empty-icon"></span>
40
- </div>
41
-
42
- <div v-show="open" class="stack-children">
43
- <div style="height: auto">
44
- <slot name="stackChildren" />
45
- </div>
46
- </div>
47
- </div>
48
- </template>
49
-
50
- <script setup lang="ts">
51
- const props = withDefaults(
52
- defineProps<{
53
- hasChildren: boolean
54
- removable?: boolean
55
- testId?: string
56
- openByDefault?: boolean
57
- isRollBack?: boolean
58
- }>(),
59
- { testId: 'ui-stack-block', openByDefault: false }
60
- )
61
- const emits = defineEmits<{
62
- (event: 'toggle', value: boolean): void
63
- (event: 'remove'): void
64
- (event: 'roll-back'): void
65
- }>()
66
-
67
- const open = ref<boolean>(props.openByDefault || false)
68
- const onToggle = (): void => {
69
- if (!props.hasChildren) return
70
- setTimeout(() => {
71
- open.value = !open.value
72
- emits('toggle', open.value)
73
- }, 0)
74
- }
75
-
76
- const onRemove = (): void => {
77
- emits('remove')
78
- }
79
- const onRollBack = (): void => {
80
- emits('roll-back')
81
- }
82
- </script>
83
-
84
- <style scoped lang="scss">
85
- .stack-block {
86
- cursor: pointer;
87
- background-color: var(--block-view-bg-color);
88
- border-color: var(--global-border-color);
89
-
90
- &.stack-block-expandable:hover {
91
- border-bottom: 1px solid #666;
92
-
93
- .stack-block-label {
94
- background-color: var(--block-view-bg-color);
95
- border-color: var(--global-border-color);
96
- }
97
- }
98
-
99
- .stack-block-label {
100
- padding: 6px 12px;
101
- flex: 1 1 auto;
102
- max-width: unset;
103
- display: flex;
104
- background-color: var(--block-view-bg-color);
105
- border-color: var(--global-border-color);
106
-
107
- &:hover {
108
- .remove-icon {
109
- opacity: 1;
110
- }
111
- }
112
-
113
- &::before {
114
- display: none;
115
- }
116
-
117
- .angle-icon {
118
- width: 14px;
119
- height: 14px;
120
- margin-right: 4px;
121
- transform: rotate(90deg);
122
- align-self: center;
123
- }
124
-
125
- .remove-icon {
126
- width: 18px;
127
- height: 18px;
128
- opacity: 0;
129
- cursor: pointer;
130
- }
131
-
132
- .stack-view-key {
133
- flex: 0 0 40%;
134
- max-width: 40%;
135
- }
136
-
137
- .stack-block-content {
138
- padding: 0;
139
- flex: 1 1 auto;
140
- width: 60%;
141
- background-color: transparent;
142
- word-break: break-all;
143
- }
144
-
145
- .empty-icon {
146
- width: 18px;
147
- height: 18px;
148
- }
149
- }
150
-
151
- &.stack-block-expanded {
152
- .stack-block-label {
153
- color: #ffffff;
154
- background-color: #29414e;
155
-
156
- .angle-icon {
157
- fill: #ffffff;
158
- transform: rotate(180deg);
159
- }
160
-
161
- .remove-icon {
162
- fill: #ffffff;
163
- }
164
- }
165
- }
166
-
167
- &.not-children {
168
- cursor: default;
169
- .stack-block-label {
170
- background-color: transparent;
171
- color: #333333;
172
-
173
- &:hover {
174
- cursor: default;
175
- background-color: transparent;
176
- border-bottom: none;
177
- }
178
-
179
- .angle-icon {
180
- opacity: 0;
181
- }
182
- }
183
- }
184
- }
185
- </style>
1
+ <template>
2
+ <div
3
+ :class="[
4
+ 'stack-block',
5
+ open ? 'stack-block-expanded' : 'stack-block-expandable',
6
+ { 'not-children': !props.hasChildren },
7
+ ]"
8
+ >
9
+ <div
10
+ :id="`${props.testId}-toggle`"
11
+ :data-id="`${props.testId}-toggle`"
12
+ class="stack-block-label"
13
+ @click="onToggle"
14
+ >
15
+ <atoms-the-icon name="angle" class="angle-icon" fill="#565656" />
16
+
17
+ <div class="stack-view-key">
18
+ <slot name="stackBlockKey" />
19
+ </div>
20
+ <div class="stack-block-content">
21
+ <slot name="stackBlockContent" />
22
+ </div>
23
+
24
+ <span
25
+ v-if="props.removable && props.isRollBack"
26
+ :data-id="`${props.testId}-roll-back`"
27
+ class="icon-roll-back"
28
+ @mousedown="onRollBack"
29
+ @click.stop
30
+ />
31
+ <atoms-the-icon
32
+ v-else-if="props.removable"
33
+ :data-id="`${props.testId}-remove`"
34
+ class="remove-icon"
35
+ name="close-circle"
36
+ @mousedown="onRemove"
37
+ @click.stop
38
+ />
39
+ <span v-else class="empty-icon"></span>
40
+ </div>
41
+
42
+ <div v-show="open" class="stack-children">
43
+ <div style="height: auto">
44
+ <slot name="stackChildren" />
45
+ </div>
46
+ </div>
47
+ </div>
48
+ </template>
49
+
50
+ <script setup lang="ts">
51
+ const props = withDefaults(
52
+ defineProps<{
53
+ hasChildren: boolean
54
+ removable?: boolean
55
+ testId?: string
56
+ openByDefault?: boolean
57
+ isRollBack?: boolean
58
+ }>(),
59
+ { testId: 'ui-stack-block', openByDefault: false }
60
+ )
61
+ const emits = defineEmits<{
62
+ (event: 'toggle', value: boolean): void
63
+ (event: 'remove'): void
64
+ (event: 'roll-back'): void
65
+ }>()
66
+
67
+ const open = ref<boolean>(props.openByDefault || false)
68
+ const onToggle = (): void => {
69
+ if (!props.hasChildren) return
70
+ setTimeout(() => {
71
+ open.value = !open.value
72
+ emits('toggle', open.value)
73
+ }, 0)
74
+ }
75
+
76
+ const onRemove = (): void => {
77
+ emits('remove')
78
+ }
79
+ const onRollBack = (): void => {
80
+ emits('roll-back')
81
+ }
82
+ </script>
83
+
84
+ <style scoped lang="scss">
85
+ .stack-block {
86
+ cursor: pointer;
87
+ background-color: var(--block-view-bg-color);
88
+ border-color: var(--global-border-color);
89
+
90
+ &.stack-block-expandable:hover {
91
+ border-bottom: 1px solid #666;
92
+
93
+ .stack-block-label {
94
+ background-color: var(--block-view-bg-color);
95
+ border-color: var(--global-border-color);
96
+ }
97
+ }
98
+
99
+ .stack-block-label {
100
+ padding: 6px 12px;
101
+ flex: 1 1 auto;
102
+ max-width: unset;
103
+ display: flex;
104
+ background-color: var(--block-view-bg-color);
105
+ border-color: var(--global-border-color);
106
+
107
+ &:hover {
108
+ .remove-icon {
109
+ opacity: 1;
110
+ }
111
+ }
112
+
113
+ &::before {
114
+ display: none;
115
+ }
116
+
117
+ .angle-icon {
118
+ width: 14px;
119
+ height: 14px;
120
+ margin-right: 4px;
121
+ transform: rotate(90deg);
122
+ align-self: center;
123
+ }
124
+
125
+ .remove-icon {
126
+ width: 18px;
127
+ height: 18px;
128
+ opacity: 0;
129
+ cursor: pointer;
130
+ }
131
+
132
+ .stack-view-key {
133
+ flex: 0 0 40%;
134
+ max-width: 40%;
135
+ }
136
+
137
+ .stack-block-content {
138
+ padding: 0;
139
+ flex: 1 1 auto;
140
+ width: 60%;
141
+ background-color: transparent;
142
+ word-break: break-all;
143
+ }
144
+
145
+ .empty-icon {
146
+ width: 18px;
147
+ height: 18px;
148
+ }
149
+ }
150
+
151
+ &.stack-block-expanded {
152
+ .stack-block-label {
153
+ color: #ffffff;
154
+ background-color: #29414e;
155
+
156
+ .angle-icon {
157
+ fill: #ffffff;
158
+ transform: rotate(180deg);
159
+ }
160
+
161
+ .remove-icon {
162
+ fill: #ffffff;
163
+ }
164
+ }
165
+ }
166
+
167
+ &.not-children {
168
+ cursor: default;
169
+ .stack-block-label {
170
+ background-color: transparent;
171
+ color: #333333;
172
+
173
+ &:hover {
174
+ cursor: default;
175
+ background-color: transparent;
176
+ border-bottom: none;
177
+ }
178
+
179
+ .angle-icon {
180
+ opacity: 0;
181
+ }
182
+ }
183
+ }
184
+ }
185
+ </style>
@@ -1,10 +1,10 @@
1
- export interface UI_I_TableInfoItem {
2
- label: string
3
- value: any
4
- isProperty?: boolean
5
- key?: string
6
- localization?: string
7
- localizationTemplate?: string
8
- isCapital?: boolean
9
- iconName?: string
10
- }
1
+ export interface UI_I_TableInfoItem {
2
+ label: string
3
+ value: any
4
+ isProperty?: boolean
5
+ key?: string
6
+ localization?: string
7
+ localizationTemplate?: string
8
+ isCapital?: boolean
9
+ iconName?: string
10
+ }
@@ -21,14 +21,10 @@
21
21
  <div class="subtitle-block flex-row">
22
22
  <ui-wizard-subtitle :sub-title="selectedStep.subTitle" />
23
23
 
24
- <common-tooltip-help
25
- test-id="datastore-type-subtitle"
26
- help-id="datastore-type-subtitle-icon"
27
- :title="localization.common.information"
28
- :help-text="localization.common.datastoreTypeHelpDesc"
29
- dropdown-width="272px"
30
- dropdown-left
31
- dropdown-top
24
+ <common-wizards-datastore-add-steps-common-tooltip-info
25
+ id="datastore-type-subtitle-tooltip"
26
+ class="ml-2"
27
+ :description="localization.common.datastoreTypeHelpDesc"
32
28
  />
33
29
  </div>
34
30
  </div>
@@ -66,6 +62,7 @@
66
62
  v-if="selectedStep.id === dynamicSteps.name"
67
63
  v-model="formModelLocal"
68
64
  :project="props.project"
65
+ :alert-messages="props.alertMessages[dynamicSteps.name]"
69
66
  :messages-fields="selectedStep.fields"
70
67
  />
71
68
  </template>
@@ -96,6 +93,7 @@
96
93
  v-if="selectedStep.id === dynamicSteps.nameAndConfigure"
97
94
  v-model="formModelLocal"
98
95
  :project="props.project"
96
+ :alert-messages="props.alertMessages"
99
97
  :messages-fields="selectedStep.fields"
100
98
  />
101
99
  </template>
@@ -3,7 +3,7 @@ import type { UI_I_CreateDatastoreForm } from '~/components/common/backup/storag
3
3
  export const datastoreDefaultFormFunc = (
4
4
  ): UI_I_CreateDatastoreForm => {
5
5
  return {
6
- name: 'Datastore',
6
+ name: 'BackupStorage',
7
7
  version: 4.1,
8
8
  type_code: 1,
9
9
  readonly: false,
@@ -20,7 +20,7 @@ export const stepsFunc = (
20
20
  {
21
21
  id: dynamicSteps.type,
22
22
  title: localization.common.type,
23
- subTitle: localization.common.specifyBackupStorageType,
23
+ subTitle: localization.backup.specifyBackupStorageType,
24
24
  status: UI_E_WIZARD_STATUS.SELECTED,
25
25
  fields: {},
26
26
  isValid: true,
@@ -29,7 +29,7 @@ export const stepsFunc = (
29
29
  {
30
30
  id: dynamicSteps.name,
31
31
  title: localization.backup.selectName,
32
- subTitle: localization.common.specifyBackupStorageName,
32
+ subTitle: localization.backup.specifyBackupStorageName,
33
33
  status: UI_E_WIZARD_STATUS.INACTIVE,
34
34
  fields: {
35
35
  name: {
@@ -101,7 +101,7 @@ export const stepsFunc = (
101
101
  {
102
102
  id: dynamicSteps.readyComplete,
103
103
  title: localization.common.readyComplete,
104
- subTitle: localization.common.readyCompleteDesc,
104
+ subTitle: localization.backup.storageReview,
105
105
  status: UI_E_WIZARD_STATUS.INACTIVE,
106
106
  fields: {},
107
107
  isValid: true,
@@ -0,0 +1,94 @@
1
+ <template>
2
+ <div class="tooltip-info">
3
+ <ui-icon
4
+ :id="`${props.id}-info-trigger`"
5
+ name="info"
6
+ width="16"
7
+ height="16"
8
+ :class="['tooltip-info__icon pointer', { active: isShowInfo }]"
9
+ @click.stop="isShowInfo = !isShowInfo"
10
+ />
11
+ <ui-popup-window
12
+ v-model="isShowInfo"
13
+ top
14
+ left
15
+ width="272px"
16
+ :elem-id="`${props.id}-info-trigger`"
17
+ >
18
+ <div class="common-widget-info">
19
+ <div class="flex justify-between">
20
+ <div class="flex">
21
+ <ui-icon name="info-2" width="16px" height="16px" />
22
+ <span class="title"> {{ localization.common.information }}</span>
23
+ </div>
24
+ <ui-icon
25
+ name="close"
26
+ class="pointer hide-icon"
27
+ width="16px"
28
+ height="16px"
29
+ @click.stop="isShowInfo = false"
30
+ />
31
+ </div>
32
+
33
+ <div class="common-widget-info-description">
34
+ {{ props.description }}
35
+ </div>
36
+ </div>
37
+ </ui-popup-window>
38
+ </div>
39
+ </template>
40
+
41
+ <script lang="ts" setup>
42
+ // TODO move to global
43
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
44
+
45
+ const props = defineProps<{
46
+ id: string
47
+ description: string
48
+ }>()
49
+
50
+ const localization = computed<UI_I_Localization>(() => useLocal())
51
+
52
+ const isShowInfo = ref<boolean>(false)
53
+ </script>
54
+
55
+ <style lang="scss" scoped>
56
+ @import 'assets/scss/common/mixins.scss';
57
+ .tooltip-info {
58
+ @include flex($align: center);
59
+ &__icon {
60
+ color: var(--form-icon-color);
61
+ &:hover {
62
+ color: var(--close-icon);
63
+ }
64
+ &.active {
65
+ color: var(--btn-primary-fill-bg-color);
66
+ }
67
+ }
68
+
69
+ .common-widget-info {
70
+ padding: 16px;
71
+
72
+ .title {
73
+ font-size: 14px;
74
+ font-weight: 500;
75
+ line-height: 16px;
76
+ color: var(--zabbix-text-color);
77
+ margin-left: 8px;
78
+ }
79
+
80
+ .common-widget-info-description {
81
+ font-size: 13px;
82
+ line-height: 15.73px;
83
+ color: var(--zabbix-text-color);
84
+ margin-top: 12px;
85
+ white-space: pre-line;
86
+ }
87
+
88
+ svg {
89
+ color: var(--alert-icon);
90
+ min-width: 16px;
91
+ }
92
+ }
93
+ }
94
+ </style>
@@ -1,22 +1,20 @@
1
1
  <template>
2
- <div class="host-accessibility">
3
- <common-backup-storage-actions-add-steps-host-accessibility-new
4
- v-if="isNewView"
5
- v-model="modelHostsLocal"
6
- v-model:active-tab="activeTab"
7
- :hosts="dataTable"
8
- :tab-options="tabs"
9
- />
10
- <common-backup-storage-actions-add-steps-host-accessibility-old
11
- v-else
12
- v-model="modelHostsLocal"
13
- v-model:active-tab="activeTab"
14
- :hosts="dataTable"
15
- :tab-options="tabs"
16
- :alert-messages="props.alertMessages"
17
- @hide-alert="(e) => emits('hide-alert', e)"
18
- />
19
- </div>
2
+ <common-backup-storage-actions-add-steps-host-accessibility-new
3
+ v-if="isNewView"
4
+ v-model="modelHostsLocal"
5
+ v-model:active-tab="activeTab"
6
+ :hosts="dataTable"
7
+ :tab-options="tabs"
8
+ />
9
+ <common-backup-storage-actions-add-steps-host-accessibility-old
10
+ v-else
11
+ v-model="modelHostsLocal"
12
+ v-model:active-tab="activeTab"
13
+ :hosts="dataTable"
14
+ :tab-options="tabs"
15
+ :alert-messages="props.alertMessages"
16
+ @hide-alert="(e) => emits('hide-alert', e)"
17
+ />
20
18
  </template>
21
19
 
22
20
  <script lang="ts" setup>
@@ -1,11 +1,11 @@
1
1
  <template>
2
- <div class="host-accessibility">
2
+ <div class="host-accessibility pb-4">
3
3
  <ui-tabs
4
4
  v-model="activeTabModel"
5
5
  test-id="accessibility"
6
6
  :tabs="tabsLocal"
7
7
  type="outline"
8
- class="host-accessibility__tab"
8
+ class="host-accessibility__tab py-4"
9
9
  >
10
10
  </ui-tabs>
11
11
 
@@ -40,9 +40,4 @@ const tabsLocal = computed<UI_I_CollapseNavItem[]>(() =>
40
40
  </script>
41
41
 
42
42
  <style lang="scss" scoped>
43
- .host-accessibility {
44
- &__tab {
45
- padding: 16px 0;
46
- }
47
- }
48
43
  </style>
@@ -19,7 +19,7 @@ export const getHeaderDataFunc = (
19
19
  text: localization.common.host,
20
20
  isSortable: true,
21
21
  sort: 'asc',
22
- width: '250px',
22
+ width: '50%',
23
23
  show: true,
24
24
  filter: false,
25
25
  },
@@ -29,7 +29,7 @@ export const getHeaderDataFunc = (
29
29
  text: localization.common.cluster,
30
30
  isSortable: true,
31
31
  sort: 'asc',
32
- width: '250px',
32
+ width: '50%',
33
33
  show: true,
34
34
  filter: false,
35
35
  },
@@ -45,6 +45,7 @@ export const options: UI_I_DataTableOptions = {
45
45
  isResizable: true,
46
46
  showSelectedRows: true,
47
47
  showColumnManager: false,
48
+ inBlock: true
48
49
  }
49
50
 
50
51
  export const getBodyDataFunc = (
@@ -2,6 +2,7 @@
2
2
  <common-backup-storage-actions-add-steps-name-new
3
3
  v-if="isNewView"
4
4
  v-model="formModel"
5
+ :alert-messages="props.alertMessages"
5
6
  :messages-fields="props.messagesFields"
6
7
  />
7
8