bfg-common 1.3.392 → 1.3.393
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/img/icons/icons-sprite-dark-1-old.svg +1 -0
- package/assets/img/icons/icons-sprite-dark-1.svg +360 -1
- package/assets/img/icons/icons-sprite-dark-2-old.svg +1 -0
- package/assets/img/icons/icons-sprite-dark-2.svg +296 -1
- package/assets/img/icons/icons-sprite-dark-3-old.svg +1 -0
- package/assets/img/icons/icons-sprite-dark-3.svg +221 -1
- package/assets/img/icons/icons-sprite-dark-4-old.svg +1 -0
- package/assets/img/icons/icons-sprite-dark-4.svg +247 -1
- package/assets/img/icons/icons-sprite-dark-7.svg +8 -0
- package/assets/img/icons/icons-sprite-light-1-old.svg +1 -0
- package/assets/img/icons/icons-sprite-light-1.svg +360 -1
- package/assets/img/icons/icons-sprite-light-2-old.svg +1 -0
- package/assets/img/icons/icons-sprite-light-2.svg +296 -1
- package/assets/img/icons/icons-sprite-light-3-old.svg +1 -0
- package/assets/img/icons/icons-sprite-light-3.svg +221 -1
- package/assets/img/icons/icons-sprite-light-4-old.svg +1 -0
- package/assets/img/icons/icons-sprite-light-4.svg +247 -1
- package/assets/img/icons/icons-sprite-light-7.svg +8 -0
- package/assets/localization/local_be.json +1 -5
- package/assets/localization/local_en.json +1 -5
- package/assets/localization/local_hy.json +1 -5
- package/assets/localization/local_kk.json +1 -5
- package/assets/localization/local_ru.json +1 -5
- package/assets/localization/local_zh.json +1 -5
- package/assets/scss/common/icons/icons-7.scss +29 -0
- package/assets/scss/common/icons/icons.scss +1 -0
- package/components/atoms/loader/Loader.vue +30 -30
- package/components/atoms/loader/PreLoader.vue +38 -38
- package/components/atoms/switch/Switch.vue +111 -111
- package/components/atoms/table/compact/Compact.vue +526 -526
- package/components/common/adapterManager/ui/table/Header.vue +93 -93
- package/components/common/adapterManager/ui/table/Table.vue +162 -162
- package/components/common/context/Context.vue +99 -99
- package/components/common/lib/config/states.ts +126 -126
- package/components/common/pages/hardwareHealth/tableView/TableView.vue +42 -1
- package/components/common/pages/hardwareHealth/tableView/lib/config/alertWarningTable.ts +15 -8
- package/components/common/pages/hardwareHealth/tableView/lib/config/sensorTable.ts +1 -1
- package/components/common/pages/hardwareHealth/tableView/modal/sensorWarning.vue +63 -0
- package/components/common/resource/progressBlock/ProgressBlock.vue +142 -142
- package/components/common/split/horizontal/Horizontal.vue +307 -49
- package/components/common/vm/actions/add/Add.vue +602 -602
- package/components/common/vm/actions/clone/Clone.vue +518 -518
- package/components/common/vm/actions/common/customizeHardware/CustomizeHardware.vue +273 -273
- package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardware.vue +697 -697
- package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDrive.vue +256 -256
- package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDisk.vue +458 -458
- package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/NewNetwork.vue +304 -304
- package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/NewPciDevice.vue +167 -167
- package/components/common/vm/actions/common/customizeHardware/virtualHardware/newUsbController/NewUsbController.vue +82 -82
- package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/Other.vue +32 -32
- package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/VideoCard.vue +182 -182
- package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/BootOptions.vue +114 -114
- package/components/common/vm/actions/common/customizeHardware/vmoptions/generalOptions/GeneralOptions.vue +188 -188
- package/components/common/vm/actions/common/customizeHardware/vmoptions/tools/Tools.vue +72 -72
- package/components/common/vm/actions/common/select/computeResource/ComputeResource.vue +164 -164
- package/components/common/vm/actions/common/select/name/Name.vue +235 -235
- package/components/common/vm/actions/common/select/storage/Storage.vue +198 -198
- package/components/common/vm/actions/editSettings/EditSettings.vue +316 -316
- package/components/common/weekSelect/lib/config/options.ts +10 -10
- package/components/common/wizards/datastore/add/Add.vue +436 -436
- package/components/common/wizards/datastore/add/lib/config/stepItems.ts +191 -191
- package/components/common/wizards/datastore/add/lib/models/interfaces.ts +38 -38
- package/components/common/wizards/datastore/add/lib/utils.ts +70 -70
- package/components/common/wizards/datastore/add/local/createName/CreateName.vue +160 -160
- package/components/common/wizards/datastore/add/nfs/Nfs.vue +112 -112
- package/components/common/wizards/datastore/add/nfs/accessibility/Accessibility.vue +104 -104
- package/components/common/wizards/datastore/add/nfs/accessibility/tablesView/lib/config/compatibleTable.ts +62 -62
- package/components/common/wizards/datastore/add/nfs/accessibility/tablesView/lib/config/hostsTableItems.ts +53 -53
- package/components/common/wizards/datastore/add/readyComplete/ReadyComplete.vue +86 -86
- package/components/common/wizards/datastore/add/readyComplete/lib/config/propertiesDetails.ts +184 -184
- package/components/common/wizards/datastore/add/sharedStorm/deviceSelection/DeviceSelection.vue +459 -459
- package/components/common/wizards/datastore/add/types/Types.vue +80 -80
- package/components/common/wizards/datastore/add/types/lib/config/typeOptions.ts +49 -49
- package/composables/useAppVersion.ts +21 -21
- package/composables/useEnvLanguage.ts +20 -20
- package/lib/utils/sendTask.ts +72 -72
- package/minify.js +146 -146
- package/package.json +1 -1
- package/plugins/spice-console/spice.console.ts +147 -147
- package/public/spice-console/application/codec.js +263 -263
- package/public/spice-console/lib/rasterEngine.js +907 -907
- package/public/spice-console/network/spicechannel.js +375 -375
- package/store/main/lib/interfaces.ts +9 -9
- package/store/tasks/actions.ts +133 -133
- package/store/tasks/getters.ts +25 -25
- package/store/tasks/lib/models/interfaces.ts +18 -18
- package/store/tasks/mutations.ts +58 -58
- package/store/tasks/state.ts +16 -16
- package/components/common/split/horizontal/HorizontalOld.vue +0 -307
|
@@ -1,99 +1,99 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<div
|
|
3
|
-
:id="elementId"
|
|
4
|
-
class="context-popup"
|
|
5
|
-
:style="{
|
|
6
|
-
top: currentContextMenuY,
|
|
7
|
-
left: currentContextMenuX,
|
|
8
|
-
}"
|
|
9
|
-
>
|
|
10
|
-
<common-context-recursion
|
|
11
|
-
:action-loading="props.actionLoading"
|
|
12
|
-
:items="props.contextMenu.items"
|
|
13
|
-
@select-item="selectItem"
|
|
14
|
-
/>
|
|
15
|
-
</div>
|
|
16
|
-
</template>
|
|
17
|
-
|
|
18
|
-
<script setup lang="ts">
|
|
19
|
-
import {
|
|
20
|
-
UI_I_ContextMenuItem,
|
|
21
|
-
UI_I_ContextMenu,
|
|
22
|
-
} from '~/components/common/context/lib/models/interfaces'
|
|
23
|
-
|
|
24
|
-
const props = defineProps<{
|
|
25
|
-
contextMenu: UI_I_ContextMenu
|
|
26
|
-
actionLoading: string | null
|
|
27
|
-
}>()
|
|
28
|
-
const emits = defineEmits<{
|
|
29
|
-
(event: 'select-item', value: UI_I_ContextMenuItem): void
|
|
30
|
-
(event: 'hide'): void
|
|
31
|
-
}>()
|
|
32
|
-
const selectItem = (item: UI_I_ContextMenuItem): void => {
|
|
33
|
-
emits('select-item', item)
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
const elementId = ref<string>(`context-${useUniqueId()}`)
|
|
37
|
-
|
|
38
|
-
const currentContextMenuY = ref<string>('')
|
|
39
|
-
const currentContextMenuX = ref<string>('')
|
|
40
|
-
const setCurrentPositionsPopup = (): void => {
|
|
41
|
-
const contextMenuY = props.contextMenu.y
|
|
42
|
-
const contextMenuX = props.contextMenu.x
|
|
43
|
-
|
|
44
|
-
const contextWrap: HTMLElement | null =
|
|
45
|
-
document.querySelector(`#${elementId.value} .context-wrap`)
|
|
46
|
-
const contextW = contextWrap?.offsetWidth || 0
|
|
47
|
-
const contextH = contextWrap?.offsetHeight || 0
|
|
48
|
-
|
|
49
|
-
const windowW = window.innerWidth
|
|
50
|
-
const windowH = window.innerHeight
|
|
51
|
-
|
|
52
|
-
if (contextMenuY + contextH >= windowH) {
|
|
53
|
-
currentContextMenuY.value = 'auto'
|
|
54
|
-
} else {
|
|
55
|
-
currentContextMenuY.value = `${contextMenuY}px`
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
if (contextMenuX + contextW >= windowW) {
|
|
59
|
-
const divisionW = windowW - contextW
|
|
60
|
-
currentContextMenuX.value = `${divisionW}px`
|
|
61
|
-
} else {
|
|
62
|
-
currentContextMenuX.value = `${contextMenuX}px`
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
const windowMousedown = (): void => {
|
|
67
|
-
emits('hide')
|
|
68
|
-
}
|
|
69
|
-
watch(
|
|
70
|
-
() => props.contextMenu.y,
|
|
71
|
-
(newValue: number) => {
|
|
72
|
-
if (!newValue) return
|
|
73
|
-
|
|
74
|
-
if (newValue < 0) {
|
|
75
|
-
window.removeEventListener('mousedown', windowMousedown)
|
|
76
|
-
} else {
|
|
77
|
-
window.addEventListener('mousedown', windowMousedown)
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
setTimeout(() => {
|
|
81
|
-
setCurrentPositionsPopup()
|
|
82
|
-
}, 0)
|
|
83
|
-
}
|
|
84
|
-
)
|
|
85
|
-
</script>
|
|
86
|
-
|
|
87
|
-
<style scoped lang="scss">
|
|
88
|
-
.context-popup {
|
|
89
|
-
top: -9999px;
|
|
90
|
-
left: -9999px;
|
|
91
|
-
bottom: 0;
|
|
92
|
-
border: none;
|
|
93
|
-
box-sizing: content-box;
|
|
94
|
-
overflow: visible;
|
|
95
|
-
display: block;
|
|
96
|
-
position: fixed;
|
|
97
|
-
z-index: 10002;
|
|
98
|
-
}
|
|
99
|
-
</style>
|
|
1
|
+
<template>
|
|
2
|
+
<div
|
|
3
|
+
:id="elementId"
|
|
4
|
+
class="context-popup"
|
|
5
|
+
:style="{
|
|
6
|
+
top: currentContextMenuY,
|
|
7
|
+
left: currentContextMenuX,
|
|
8
|
+
}"
|
|
9
|
+
>
|
|
10
|
+
<common-context-recursion
|
|
11
|
+
:action-loading="props.actionLoading"
|
|
12
|
+
:items="props.contextMenu.items"
|
|
13
|
+
@select-item="selectItem"
|
|
14
|
+
/>
|
|
15
|
+
</div>
|
|
16
|
+
</template>
|
|
17
|
+
|
|
18
|
+
<script setup lang="ts">
|
|
19
|
+
import {
|
|
20
|
+
UI_I_ContextMenuItem,
|
|
21
|
+
UI_I_ContextMenu,
|
|
22
|
+
} from '~/components/common/context/lib/models/interfaces'
|
|
23
|
+
|
|
24
|
+
const props = defineProps<{
|
|
25
|
+
contextMenu: UI_I_ContextMenu
|
|
26
|
+
actionLoading: string | null
|
|
27
|
+
}>()
|
|
28
|
+
const emits = defineEmits<{
|
|
29
|
+
(event: 'select-item', value: UI_I_ContextMenuItem): void
|
|
30
|
+
(event: 'hide'): void
|
|
31
|
+
}>()
|
|
32
|
+
const selectItem = (item: UI_I_ContextMenuItem): void => {
|
|
33
|
+
emits('select-item', item)
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
const elementId = ref<string>(`context-${useUniqueId()}`)
|
|
37
|
+
|
|
38
|
+
const currentContextMenuY = ref<string>('')
|
|
39
|
+
const currentContextMenuX = ref<string>('')
|
|
40
|
+
const setCurrentPositionsPopup = (): void => {
|
|
41
|
+
const contextMenuY = props.contextMenu.y
|
|
42
|
+
const contextMenuX = props.contextMenu.x
|
|
43
|
+
|
|
44
|
+
const contextWrap: HTMLElement | null =
|
|
45
|
+
document.querySelector(`#${elementId.value} .context-wrap`)
|
|
46
|
+
const contextW = contextWrap?.offsetWidth || 0
|
|
47
|
+
const contextH = contextWrap?.offsetHeight || 0
|
|
48
|
+
|
|
49
|
+
const windowW = window.innerWidth
|
|
50
|
+
const windowH = window.innerHeight
|
|
51
|
+
|
|
52
|
+
if (contextMenuY + contextH >= windowH) {
|
|
53
|
+
currentContextMenuY.value = 'auto'
|
|
54
|
+
} else {
|
|
55
|
+
currentContextMenuY.value = `${contextMenuY}px`
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
if (contextMenuX + contextW >= windowW) {
|
|
59
|
+
const divisionW = windowW - contextW
|
|
60
|
+
currentContextMenuX.value = `${divisionW}px`
|
|
61
|
+
} else {
|
|
62
|
+
currentContextMenuX.value = `${contextMenuX}px`
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
const windowMousedown = (): void => {
|
|
67
|
+
emits('hide')
|
|
68
|
+
}
|
|
69
|
+
watch(
|
|
70
|
+
() => props.contextMenu.y,
|
|
71
|
+
(newValue: number) => {
|
|
72
|
+
if (!newValue) return
|
|
73
|
+
|
|
74
|
+
if (newValue < 0) {
|
|
75
|
+
window.removeEventListener('mousedown', windowMousedown)
|
|
76
|
+
} else {
|
|
77
|
+
window.addEventListener('mousedown', windowMousedown)
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
setTimeout(() => {
|
|
81
|
+
setCurrentPositionsPopup()
|
|
82
|
+
}, 0)
|
|
83
|
+
}
|
|
84
|
+
)
|
|
85
|
+
</script>
|
|
86
|
+
|
|
87
|
+
<style scoped lang="scss">
|
|
88
|
+
.context-popup {
|
|
89
|
+
top: -9999px;
|
|
90
|
+
left: -9999px;
|
|
91
|
+
bottom: 0;
|
|
92
|
+
border: none;
|
|
93
|
+
box-sizing: content-box;
|
|
94
|
+
overflow: visible;
|
|
95
|
+
display: block;
|
|
96
|
+
position: fixed;
|
|
97
|
+
z-index: 10002;
|
|
98
|
+
}
|
|
99
|
+
</style>
|
|
@@ -1,126 +1,126 @@
|
|
|
1
|
-
export const clusterLocalizationByState = [
|
|
2
|
-
'unknown',
|
|
3
|
-
'connected',
|
|
4
|
-
'warning',
|
|
5
|
-
'error',
|
|
6
|
-
]
|
|
7
|
-
|
|
8
|
-
export const clusterIconByState = [
|
|
9
|
-
'cluster-error',
|
|
10
|
-
'cluster',
|
|
11
|
-
'cluster-warning',
|
|
12
|
-
'cluster-error',
|
|
13
|
-
// TODO Добавил на скорую руку нужно дополнить, если есть что добавить
|
|
14
|
-
]
|
|
15
|
-
|
|
16
|
-
export const hostLocalizationByState = [
|
|
17
|
-
'unknown',
|
|
18
|
-
'connected',
|
|
19
|
-
'warning',
|
|
20
|
-
'error',
|
|
21
|
-
'maintenance',
|
|
22
|
-
'notResponding',
|
|
23
|
-
'disconnected',
|
|
24
|
-
]
|
|
25
|
-
|
|
26
|
-
export const hostIconByState = [
|
|
27
|
-
'host-error',
|
|
28
|
-
'host',
|
|
29
|
-
'host-warning',
|
|
30
|
-
'host-error',
|
|
31
|
-
'host-maintenance',
|
|
32
|
-
'host-not-responding',
|
|
33
|
-
'host-disconnected',
|
|
34
|
-
]
|
|
35
|
-
|
|
36
|
-
export const vmLocalizationByState = [
|
|
37
|
-
'unknown',
|
|
38
|
-
'powerOff',
|
|
39
|
-
'poweredOn',
|
|
40
|
-
'suspended',
|
|
41
|
-
'error',
|
|
42
|
-
'warning',
|
|
43
|
-
'pending',
|
|
44
|
-
'paused',
|
|
45
|
-
'blocked',
|
|
46
|
-
'shuttingDown',
|
|
47
|
-
'shuttingOff',
|
|
48
|
-
]
|
|
49
|
-
|
|
50
|
-
export const vmIconByState = [
|
|
51
|
-
'vm-error',
|
|
52
|
-
'vm',
|
|
53
|
-
'vm-on',
|
|
54
|
-
'vm-suspended',
|
|
55
|
-
'vm-error',
|
|
56
|
-
'vm-warning',
|
|
57
|
-
'vm-warning',
|
|
58
|
-
'vm-suspended',
|
|
59
|
-
'vm-warning',
|
|
60
|
-
'vm-warning',
|
|
61
|
-
'vm-warning',
|
|
62
|
-
]
|
|
63
|
-
|
|
64
|
-
export const datastoreLocalizationByState = [
|
|
65
|
-
'unknown',
|
|
66
|
-
'connected',
|
|
67
|
-
'warning',
|
|
68
|
-
'error',
|
|
69
|
-
'maintenance',
|
|
70
|
-
'inaccessible',
|
|
71
|
-
'disconnected',
|
|
72
|
-
]
|
|
73
|
-
|
|
74
|
-
export const datastoreIconByState = [
|
|
75
|
-
'datastore-error',
|
|
76
|
-
'datastore',
|
|
77
|
-
'datastore-warning',
|
|
78
|
-
'datastore-error',
|
|
79
|
-
'datastore-maintenance',
|
|
80
|
-
'datastore-inaccessible',
|
|
81
|
-
'datastore-unmount', // 'datastore-disconnected',
|
|
82
|
-
]
|
|
83
|
-
|
|
84
|
-
export const networkLocalizationByState = [
|
|
85
|
-
'unknown',
|
|
86
|
-
'connected',
|
|
87
|
-
'warning',
|
|
88
|
-
'error',
|
|
89
|
-
]
|
|
90
|
-
|
|
91
|
-
export const networkIconByState = [
|
|
92
|
-
'network-error',
|
|
93
|
-
'network',
|
|
94
|
-
'network-warning',
|
|
95
|
-
'network-error',
|
|
96
|
-
]
|
|
97
|
-
|
|
98
|
-
export const switchLocalizationByState = [
|
|
99
|
-
'unknown',
|
|
100
|
-
'connected',
|
|
101
|
-
'warning',
|
|
102
|
-
'error',
|
|
103
|
-
]
|
|
104
|
-
|
|
105
|
-
export const switchIconByState = [
|
|
106
|
-
'switch-error',
|
|
107
|
-
'switch',
|
|
108
|
-
'switch-warning',
|
|
109
|
-
'switch-error',
|
|
110
|
-
]
|
|
111
|
-
|
|
112
|
-
export const resourcePoolLocalizationByState = [
|
|
113
|
-
'unknown',
|
|
114
|
-
'normal',
|
|
115
|
-
'warning',
|
|
116
|
-
'error',
|
|
117
|
-
'alert',
|
|
118
|
-
]
|
|
119
|
-
|
|
120
|
-
export const resourcePoolIconByState = [
|
|
121
|
-
'resourcePoolAlert',
|
|
122
|
-
'resource-pool',
|
|
123
|
-
'resourcePoolWarning',
|
|
124
|
-
'resourcePoolAlert',
|
|
125
|
-
'resourcePoolAlert',
|
|
126
|
-
]
|
|
1
|
+
export const clusterLocalizationByState = [
|
|
2
|
+
'unknown',
|
|
3
|
+
'connected',
|
|
4
|
+
'warning',
|
|
5
|
+
'error',
|
|
6
|
+
]
|
|
7
|
+
|
|
8
|
+
export const clusterIconByState = [
|
|
9
|
+
'cluster-error',
|
|
10
|
+
'cluster',
|
|
11
|
+
'cluster-warning',
|
|
12
|
+
'cluster-error',
|
|
13
|
+
// TODO Добавил на скорую руку нужно дополнить, если есть что добавить
|
|
14
|
+
]
|
|
15
|
+
|
|
16
|
+
export const hostLocalizationByState = [
|
|
17
|
+
'unknown',
|
|
18
|
+
'connected',
|
|
19
|
+
'warning',
|
|
20
|
+
'error',
|
|
21
|
+
'maintenance',
|
|
22
|
+
'notResponding',
|
|
23
|
+
'disconnected',
|
|
24
|
+
]
|
|
25
|
+
|
|
26
|
+
export const hostIconByState = [
|
|
27
|
+
'host-error',
|
|
28
|
+
'host',
|
|
29
|
+
'host-warning',
|
|
30
|
+
'host-error',
|
|
31
|
+
'host-maintenance',
|
|
32
|
+
'host-not-responding',
|
|
33
|
+
'host-disconnected',
|
|
34
|
+
]
|
|
35
|
+
|
|
36
|
+
export const vmLocalizationByState = [
|
|
37
|
+
'unknown',
|
|
38
|
+
'powerOff',
|
|
39
|
+
'poweredOn',
|
|
40
|
+
'suspended',
|
|
41
|
+
'error',
|
|
42
|
+
'warning',
|
|
43
|
+
'pending',
|
|
44
|
+
'paused',
|
|
45
|
+
'blocked',
|
|
46
|
+
'shuttingDown',
|
|
47
|
+
'shuttingOff',
|
|
48
|
+
]
|
|
49
|
+
|
|
50
|
+
export const vmIconByState = [
|
|
51
|
+
'vm-error',
|
|
52
|
+
'vm',
|
|
53
|
+
'vm-on',
|
|
54
|
+
'vm-suspended',
|
|
55
|
+
'vm-error',
|
|
56
|
+
'vm-warning',
|
|
57
|
+
'vm-warning',
|
|
58
|
+
'vm-suspended',
|
|
59
|
+
'vm-warning',
|
|
60
|
+
'vm-warning',
|
|
61
|
+
'vm-warning',
|
|
62
|
+
]
|
|
63
|
+
|
|
64
|
+
export const datastoreLocalizationByState = [
|
|
65
|
+
'unknown',
|
|
66
|
+
'connected',
|
|
67
|
+
'warning',
|
|
68
|
+
'error',
|
|
69
|
+
'maintenance',
|
|
70
|
+
'inaccessible',
|
|
71
|
+
'disconnected',
|
|
72
|
+
]
|
|
73
|
+
|
|
74
|
+
export const datastoreIconByState = [
|
|
75
|
+
'datastore-error',
|
|
76
|
+
'datastore',
|
|
77
|
+
'datastore-warning',
|
|
78
|
+
'datastore-error',
|
|
79
|
+
'datastore-maintenance',
|
|
80
|
+
'datastore-inaccessible',
|
|
81
|
+
'datastore-unmount', // 'datastore-disconnected',
|
|
82
|
+
]
|
|
83
|
+
|
|
84
|
+
export const networkLocalizationByState = [
|
|
85
|
+
'unknown',
|
|
86
|
+
'connected',
|
|
87
|
+
'warning',
|
|
88
|
+
'error',
|
|
89
|
+
]
|
|
90
|
+
|
|
91
|
+
export const networkIconByState = [
|
|
92
|
+
'network-error',
|
|
93
|
+
'network',
|
|
94
|
+
'network-warning',
|
|
95
|
+
'network-error',
|
|
96
|
+
]
|
|
97
|
+
|
|
98
|
+
export const switchLocalizationByState = [
|
|
99
|
+
'unknown',
|
|
100
|
+
'connected',
|
|
101
|
+
'warning',
|
|
102
|
+
'error',
|
|
103
|
+
]
|
|
104
|
+
|
|
105
|
+
export const switchIconByState = [
|
|
106
|
+
'switch-error',
|
|
107
|
+
'switch',
|
|
108
|
+
'switch-warning',
|
|
109
|
+
'switch-error',
|
|
110
|
+
]
|
|
111
|
+
|
|
112
|
+
export const resourcePoolLocalizationByState = [
|
|
113
|
+
'unknown',
|
|
114
|
+
'normal',
|
|
115
|
+
'warning',
|
|
116
|
+
'error',
|
|
117
|
+
'alert',
|
|
118
|
+
]
|
|
119
|
+
|
|
120
|
+
export const resourcePoolIconByState = [
|
|
121
|
+
'resourcePoolAlert',
|
|
122
|
+
'resource-pool',
|
|
123
|
+
'resourcePoolWarning',
|
|
124
|
+
'resourcePoolAlert',
|
|
125
|
+
'resourcePoolAlert',
|
|
126
|
+
]
|
|
@@ -40,10 +40,26 @@
|
|
|
40
40
|
/>
|
|
41
41
|
<span v-else :class="['icon', item.data.iconClassName]"></span>
|
|
42
42
|
{{ item.text }}
|
|
43
|
+
|
|
44
|
+
<a
|
|
45
|
+
v-if="false"
|
|
46
|
+
id="sensor-item-warning"
|
|
47
|
+
:data-id="item.data.testId"
|
|
48
|
+
href="javascript:void(0)"
|
|
49
|
+
class="row-details__text"
|
|
50
|
+
@click="onShowFieldWarning(item.data.error)"
|
|
51
|
+
>{{ localization.details }}...
|
|
52
|
+
</a>
|
|
43
53
|
</template>
|
|
44
54
|
</atoms-table-data-grid>
|
|
45
55
|
</div>
|
|
46
56
|
</div>
|
|
57
|
+
|
|
58
|
+
<common-pages-hardware-health-table-view-modal-sensor-warning
|
|
59
|
+
v-if="isShowSensorWarningDetails"
|
|
60
|
+
:error="sensorWarningError"
|
|
61
|
+
@close-modal="isShowSensorWarningDetails = false"
|
|
62
|
+
/>
|
|
47
63
|
</template>
|
|
48
64
|
|
|
49
65
|
<script lang="ts" setup>
|
|
@@ -92,10 +108,32 @@ const headItems = computed<UI_I_HeadItem[]>(() =>
|
|
|
92
108
|
)
|
|
93
109
|
|
|
94
110
|
const bodyItems = computed<UI_I_BodyItem[][]>(() => {
|
|
95
|
-
const tableData = ['sensor'].includes(props.tableMode) ? props.dataTable : [] // TODO временно так
|
|
111
|
+
// const tableData = ['sensor'].includes(props.tableMode) ? props.dataTable : [] // TODO временно так
|
|
112
|
+
let tableData = props.dataTable
|
|
113
|
+
|
|
114
|
+
switch (props.tableMode) {
|
|
115
|
+
case 'storage-sensor':
|
|
116
|
+
tableData = []
|
|
117
|
+
break
|
|
118
|
+
case 'alert-warning':
|
|
119
|
+
tableData = tableData.filter((sensor: UI_I_HardwareHealthSensors) =>
|
|
120
|
+
[2, 3].includes(sensor.status)
|
|
121
|
+
)
|
|
122
|
+
break
|
|
123
|
+
case 'system-log':
|
|
124
|
+
tableData = []
|
|
125
|
+
break
|
|
126
|
+
}
|
|
96
127
|
|
|
97
128
|
return table[props.tableMode].bodyItems(tableData, localization.value)
|
|
98
129
|
})
|
|
130
|
+
|
|
131
|
+
const isShowSensorWarningDetails = ref<boolean>(false)
|
|
132
|
+
const sensorWarningError = ref<string | null>(null)
|
|
133
|
+
const onShowFieldWarning = (error: string): void => {
|
|
134
|
+
isShowSensorWarningDetails.value = true
|
|
135
|
+
sensorWarningError.value = error
|
|
136
|
+
}
|
|
99
137
|
</script>
|
|
100
138
|
|
|
101
139
|
<style lang="scss" scoped>
|
|
@@ -126,6 +164,9 @@ const bodyItems = computed<UI_I_BodyItem[][]>(() => {
|
|
|
126
164
|
margin-top: 5px;
|
|
127
165
|
}
|
|
128
166
|
}
|
|
167
|
+
&__text {
|
|
168
|
+
margin-left: 8px;
|
|
169
|
+
}
|
|
129
170
|
}
|
|
130
171
|
.icon {
|
|
131
172
|
width: 18px;
|
|
@@ -9,8 +9,11 @@ import {
|
|
|
9
9
|
constructColumnKey,
|
|
10
10
|
} from '~/components/atoms/table/dataGrid/lib/utils/constructDataTable'
|
|
11
11
|
import type { UI_I_HardwareHealthAlertWarnings } from '~/components/common/pages/hardwareHealth/tableView/lib/models/interfaces'
|
|
12
|
-
// import { E_HostStatusIcon } from '~/components/templates/inventory/treeView/lib/models/enums'
|
|
13
12
|
import { hardwareHealthAlertWarningTableKeys } from '~/components/common/pages/hardwareHealth/tableView/lib/config/tableKeys'
|
|
13
|
+
import {
|
|
14
|
+
sensorsLocalizationByStatus,
|
|
15
|
+
sensorsIconByStatus,
|
|
16
|
+
} from '~/components/common/pages/hardwareHealth/lib/config/status'
|
|
14
17
|
|
|
15
18
|
const getItems = (
|
|
16
19
|
localization: UI_I_Localization
|
|
@@ -68,7 +71,8 @@ export const headItems = (localization: UI_I_Localization): UI_I_HeadItem[] => {
|
|
|
68
71
|
}
|
|
69
72
|
|
|
70
73
|
export const bodyItems = (
|
|
71
|
-
data: UI_I_HardwareHealthAlertWarnings[]
|
|
74
|
+
data: UI_I_HardwareHealthAlertWarnings[],
|
|
75
|
+
localization: UI_I_Localization
|
|
72
76
|
): UI_I_BodyItem[][] => {
|
|
73
77
|
const bodyItems: UI_I_BodyItem[][] = []
|
|
74
78
|
data.forEach((sensor: UI_I_HardwareHealthAlertWarnings, key) => {
|
|
@@ -81,13 +85,16 @@ export const bodyItems = (
|
|
|
81
85
|
},
|
|
82
86
|
{
|
|
83
87
|
key: 'icon',
|
|
84
|
-
text:
|
|
88
|
+
text: localization[
|
|
89
|
+
sensorsLocalizationByStatus[
|
|
90
|
+
sensor[hardwareHealthAlertWarningTableKeys[1]]
|
|
91
|
+
]
|
|
92
|
+
],
|
|
85
93
|
id: key,
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
data: {},
|
|
94
|
+
data: {
|
|
95
|
+
iconClassName: sensorsIconByStatus[sensor.status],
|
|
96
|
+
isSprite: false,
|
|
97
|
+
},
|
|
91
98
|
testId: `table-item-${key}`,
|
|
92
99
|
},
|
|
93
100
|
{
|
|
@@ -21,7 +21,7 @@ const getItems = (
|
|
|
21
21
|
): [string, boolean, string, string][] => {
|
|
22
22
|
return [
|
|
23
23
|
[localization.sensors, true, '330px', hardwareHealthSensorTableKeys[0]],
|
|
24
|
-
[localization.status, true, '
|
|
24
|
+
[localization.status, true, '140px', hardwareHealthSensorTableKeys[1]],
|
|
25
25
|
[localization.reading, true, '115px', hardwareHealthSensorTableKeys[2]],
|
|
26
26
|
[localization.categories, true, '130px', hardwareHealthSensorTableKeys[3]],
|
|
27
27
|
[localization.lastUpdated, true, '195px', hardwareHealthSensorTableKeys[4]],
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<atoms-modal
|
|
3
|
+
show
|
|
4
|
+
width="580px"
|
|
5
|
+
class="feedback-field"
|
|
6
|
+
:title="localization.theOperationFailed"
|
|
7
|
+
test-id="feedback-filed-modal"
|
|
8
|
+
@hide="onCloseModal"
|
|
9
|
+
>
|
|
10
|
+
<template #modalBody>
|
|
11
|
+
<div class="feedback-field__body">
|
|
12
|
+
<atoms-the-icon name="info" class="feedback-field__icon" />
|
|
13
|
+
|
|
14
|
+
<p class="feedback-field__text">
|
|
15
|
+
{{ props.error }}
|
|
16
|
+
</p>
|
|
17
|
+
</div>
|
|
18
|
+
</template>
|
|
19
|
+
|
|
20
|
+
<template #modalFooter>
|
|
21
|
+
<button
|
|
22
|
+
id="sensor-feedback-field-apply-button"
|
|
23
|
+
data-id="sensor-feedback-field-apply-button"
|
|
24
|
+
class="btn btn-primary"
|
|
25
|
+
@click="onCloseModal"
|
|
26
|
+
>
|
|
27
|
+
{{ localization.ok }}
|
|
28
|
+
</button>
|
|
29
|
+
</template>
|
|
30
|
+
</atoms-modal>
|
|
31
|
+
</template>
|
|
32
|
+
|
|
33
|
+
<script setup lang="ts">
|
|
34
|
+
import type { UI_I_Localization } from '~/lib/models/interfaces'
|
|
35
|
+
|
|
36
|
+
const props = defineProps<{
|
|
37
|
+
error: string
|
|
38
|
+
}>()
|
|
39
|
+
const localization = computed<UI_I_Localization>(() => useLocal())
|
|
40
|
+
const emits = defineEmits<{
|
|
41
|
+
(event: 'close-modal'): void
|
|
42
|
+
}>()
|
|
43
|
+
const onCloseModal = (): void => {
|
|
44
|
+
emits('close-modal')
|
|
45
|
+
}
|
|
46
|
+
</script>
|
|
47
|
+
|
|
48
|
+
<style lang="scss" scoped>
|
|
49
|
+
@import 'assets/scss/common/mixins.scss';
|
|
50
|
+
.feedback-field {
|
|
51
|
+
&__body {
|
|
52
|
+
@include flex($align: center);
|
|
53
|
+
}
|
|
54
|
+
&__icon {
|
|
55
|
+
min-width: 40px;
|
|
56
|
+
height: 40px;
|
|
57
|
+
margin-right: 20px;
|
|
58
|
+
}
|
|
59
|
+
&__text {
|
|
60
|
+
@include text($fs: 14px, $fw: 300);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
</style>
|