bfg-common 1.4.693 → 1.4.695

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 (112) hide show
  1. package/assets/scss/common/normalize.scss +355 -355
  2. package/components/atoms/TheIcon3.vue +50 -50
  3. package/components/atoms/modal/bySteps/BySteps.vue +253 -253
  4. package/components/atoms/stack/StackBlock.vue +185 -185
  5. package/components/atoms/table/dataGrid/DataGrid.vue +1696 -1696
  6. package/components/atoms/table/dataGrid/DataGridColumnSwitch.vue +222 -222
  7. package/components/atoms/table/dataGrid/lib/config/settingsTable.ts +91 -91
  8. package/components/common/browse/BrowseNew.vue +237 -237
  9. package/components/common/browse/BrowseOld.vue +217 -217
  10. package/components/common/browse/blocks/contents/Files.vue +37 -37
  11. package/components/common/browse/blocks/contents/FilesOld.vue +72 -72
  12. package/components/common/browse/blocks/contents/filesNew/FilesNew.vue +96 -96
  13. package/components/common/browse/blocks/contents/filesNew/Skeleton.vue +18 -18
  14. package/components/common/context/lib/models/interfaces.ts +30 -30
  15. package/components/common/context/recursion/Recursion.vue +86 -86
  16. package/components/common/context/recursion/RecursionNew.vue +199 -199
  17. package/components/common/context/recursion/RecursionOld.vue +213 -213
  18. package/components/common/layout/theHeader/helpMenu/About.vue +79 -79
  19. package/components/common/layout/theHeader/helpMenu/aboutNew/AboutNew.vue +103 -103
  20. package/components/common/mainNavigationPanel/MainNavigationPanel.vue +150 -150
  21. package/components/common/modals/confirmByInput/ConfirmByInput.vue +206 -206
  22. package/components/common/modals/unsavedChanges/UnsavedChanges.vue +56 -56
  23. package/components/common/monitor/advanced/tools/chartOptionsModal/counters/timespan/object/Object.vue +299 -298
  24. package/components/common/pages/home/StatusContent.vue +49 -49
  25. package/components/common/pages/home/headline/Headline.vue +44 -44
  26. package/components/common/pages/home/headline/HeadlineNew.vue +71 -71
  27. package/components/common/pages/home/lib/models/interfaces.ts +48 -48
  28. package/components/common/pages/home/widgets/hosts/HostsNew.vue +100 -100
  29. package/components/common/pages/home/widgets/hosts/lib/config/items.ts +23 -23
  30. package/components/common/pages/home/widgets/services/lib/config/config.ts +108 -108
  31. package/components/common/pages/home/widgets/vms/VmsNew.vue +101 -101
  32. package/components/common/pages/home/widgets/vms/lib/config/items.ts +19 -19
  33. package/components/common/select/button/ButtonDropdown.vue +108 -108
  34. package/components/common/spiceConsole/Drawer.vue +370 -370
  35. package/components/common/spiceConsole/lib/models/interfaces.ts +5 -5
  36. package/components/common/split/vertical/Vertical.vue +160 -160
  37. package/components/common/vm/actions/add/Add.vue +616 -616
  38. package/components/common/vm/actions/clone/lib/config/steps.ts +129 -129
  39. package/components/common/vm/actions/common/customizeHardware/CustomizeHardware.vue +267 -267
  40. package/components/common/vm/actions/common/customizeHardware/CustomizeHardwareNew.vue +269 -269
  41. package/components/common/vm/actions/common/customizeHardware/virtualHardware/browseView/BrowseView.vue +219 -219
  42. package/components/common/vm/actions/common/customizeHardware/virtualHardware/bus/BusNew.vue +117 -117
  43. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDriveNew.vue +161 -161
  44. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDriveOld.vue +165 -165
  45. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/Media.vue +25 -25
  46. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaNew.vue +55 -55
  47. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/Cpu.vue +338 -338
  48. package/components/common/vm/actions/common/customizeHardware/virtualHardware/lib/config/dropdownItems.ts +147 -147
  49. package/components/common/vm/actions/common/customizeHardware/virtualHardware/limit/Limit.vue +220 -220
  50. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/mode/ModeOld.vue +56 -56
  51. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/sharing/SharingNew.vue +44 -44
  52. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/NewNetwork.vue +281 -281
  53. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/NewNetworkNew.vue +124 -124
  54. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/LocationOld.vue +134 -134
  55. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/New.vue +63 -63
  56. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/table/lib/config/config.ts +95 -95
  57. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddress.vue +119 -119
  58. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddressNew.vue +69 -69
  59. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddressOld.vue +83 -83
  60. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/NewPciDeviceNew.vue +85 -85
  61. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/NewPciDeviceOld.vue +91 -91
  62. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoNew.vue +35 -35
  63. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIoNew.vue +48 -48
  64. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/Note.vue +15 -15
  65. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteNew.vue +42 -42
  66. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteOld.vue +30 -30
  67. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGridNew.vue +30 -30
  68. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/typeSelection/TypeSelectionNew.vue +46 -46
  69. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newUsbController/NewUsbControllerNew.vue +56 -56
  70. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/Other.vue +16 -16
  71. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/OtherNew.vue +30 -30
  72. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/VideoCardNew.vue +104 -104
  73. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/VideoCardOld.vue +112 -112
  74. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/totalVideoMemory/TotalVideoMemoryNew.vue +54 -54
  75. package/components/common/vm/actions/common/customizeHardware/vmoptions/Vmoptions.vue +145 -145
  76. package/components/common/vm/actions/common/customizeHardware/vmoptions/VmoptionsNew.vue +102 -102
  77. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/BootOptionsNew.vue +75 -75
  78. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/delay/Delay.vue +26 -26
  79. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/Firmware.vue +57 -57
  80. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/FirmwareNew.vue +42 -42
  81. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/menu/MenuNew.vue +25 -25
  82. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/Order.vue +171 -171
  83. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/OrderNew.vue +50 -50
  84. package/components/common/vm/actions/common/customizeHardware/vmoptions/generalOptions/GeneralOptionsNew.vue +141 -141
  85. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/New.vue +140 -140
  86. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/copyPaste/CopyPasteNew.vue +30 -30
  87. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/fileTransfer/FileTransferNew.vue +30 -30
  88. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/folderSharing/FolderSharingNew.vue +30 -30
  89. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/Keymap.vue +32 -32
  90. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/KeymapNew.vue +39 -39
  91. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/Password.vue +103 -103
  92. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/PasswordNew.vue +102 -102
  93. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/PasswordOld.vue +94 -94
  94. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirection.vue +28 -28
  95. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionNew.vue +38 -38
  96. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionOld.vue +44 -44
  97. package/components/common/vm/actions/common/select/storage/Storage.vue +130 -130
  98. package/components/common/vm/actions/common/select/storage/StorageOld.vue +129 -129
  99. package/components/common/vm/actions/editSettings/EditSettings.vue +232 -232
  100. package/components/common/vm/actions/editSettings/EditSettingsOld.vue +183 -183
  101. package/components/common/vm/actions/editSettings/new/New.vue +177 -177
  102. package/components/common/vm/actions/editSettings/new/Skeleton.vue +88 -88
  103. package/composables/productNameLocal.ts +30 -30
  104. package/composables/useAppVersion.ts +21 -21
  105. package/package.json +1 -1
  106. package/plugins/date.ts +233 -233
  107. package/plugins/recursion.ts +311 -311
  108. package/public/spice-console/lib/images/bitmap.js +203 -203
  109. package/public/spice-console/network/spicechannel.js +383 -383
  110. package/store/main/mutations.ts +7 -7
  111. package/store/main/state.ts +7 -7
  112. package/store/tasks/mappers/recentTasks.ts +64 -64
@@ -1,49 +1,49 @@
1
- <template>
2
- <div class="entity-status-content">
3
- <div v-for="(text, value) in props.items" :key="value" class="item">
4
- <h3 class="entity-status-item-value">
5
- {{ text }}
6
- </h3>
7
- <div class="entity-status-item-status">
8
- {{ localization.common[value] }}
9
- </div>
10
- </div>
11
- </div>
12
- </template>
13
-
14
- <script setup lang="ts">
15
- import type { UI_I_Localization } from '~/lib/models/interfaces'
16
- import type { UI_I_Hosts } from '~/components/common/pages/home/lib/models/interfaces'
17
-
18
- const props = defineProps<{
19
- items: UI_I_Hosts
20
- }>()
21
- const localization = computed<UI_I_Localization>(() => useLocal())
22
- </script>
23
-
24
- <style scoped lang="scss">
25
- .entity-status-content {
26
- display: flex;
27
- justify-content: space-around;
28
- align-items: center;
29
- min-height: 100px;
30
-
31
- .item {
32
- display: flex;
33
- flex-direction: column;
34
- justify-content: center;
35
- align-items: center;
36
- color: inherit;
37
- background-color: inherit;
38
-
39
- .entity-status-item-value {
40
- font-size: 22px;
41
- font-weight: 200;
42
- }
43
- .entity-status-item-status {
44
- font-size: 13px;
45
- margin-top: 5px;
46
- }
47
- }
48
- }
49
- </style>
1
+ <template>
2
+ <div class="entity-status-content">
3
+ <div v-for="(text, value) in props.items" :key="value" class="item">
4
+ <h3 class="entity-status-item-value">
5
+ {{ text }}
6
+ </h3>
7
+ <div class="entity-status-item-status">
8
+ {{ localization.common[value] }}
9
+ </div>
10
+ </div>
11
+ </div>
12
+ </template>
13
+
14
+ <script setup lang="ts">
15
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
16
+ import type { UI_I_Hosts } from '~/components/common/pages/home/lib/models/interfaces'
17
+
18
+ const props = defineProps<{
19
+ items: UI_I_Hosts
20
+ }>()
21
+ const localization = computed<UI_I_Localization>(() => useLocal())
22
+ </script>
23
+
24
+ <style scoped lang="scss">
25
+ .entity-status-content {
26
+ display: flex;
27
+ justify-content: space-around;
28
+ align-items: center;
29
+ min-height: 100px;
30
+
31
+ .item {
32
+ display: flex;
33
+ flex-direction: column;
34
+ justify-content: center;
35
+ align-items: center;
36
+ color: inherit;
37
+ background-color: inherit;
38
+
39
+ .entity-status-item-value {
40
+ font-size: 22px;
41
+ font-weight: 200;
42
+ }
43
+ .entity-status-item-status {
44
+ font-size: 13px;
45
+ margin-top: 5px;
46
+ }
47
+ }
48
+ }
49
+ </style>
@@ -1,44 +1,44 @@
1
- <template>
2
- <div class="home-headline">
3
- <common-pages-home-headline-new
4
- v-if="isNewView"
5
- v-model="selectedZone"
6
- :data="zoneOptionList"
7
- :project="props.project"
8
- ></common-pages-home-headline-new>
9
-
10
- <common-pages-home-headline-old
11
- v-else
12
- v-model="selectedZone"
13
- :data="zoneOptionList"
14
- ></common-pages-home-headline-old>
15
- </div>
16
- </template>
17
-
18
- <script lang="ts" setup>
19
- import type { UI_I_ZoneList } from '~/components/common/pages/home/lib/models/interfaces'
20
- import type { UI_T_Project } from '~/lib/models/types'
21
-
22
- const selectedZone = defineModel<string>('selectedZone', { required: true })
23
-
24
- const props = defineProps<{
25
- zoneList: UI_I_ZoneList[]
26
- project: UI_T_Project
27
- }>()
28
-
29
- const { $store }: any = useNuxtApp()
30
-
31
- const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
32
-
33
- const zoneOptionList = computed<UI_I_ZoneList[]>(() => props.zoneList)
34
- </script>
35
-
36
- <style lang="scss">
37
- :root {
38
- --home-title-color: #4d5d69;
39
- }
40
-
41
- :root.dark-theme {
42
- --home-title-color: #e9eaec;
43
- }
44
- </style>
1
+ <template>
2
+ <div class="home-headline">
3
+ <common-pages-home-headline-new
4
+ v-if="isNewView"
5
+ v-model="selectedZone"
6
+ :data="zoneOptionList"
7
+ :project="props.project"
8
+ ></common-pages-home-headline-new>
9
+
10
+ <common-pages-home-headline-old
11
+ v-else
12
+ v-model="selectedZone"
13
+ :data="zoneOptionList"
14
+ ></common-pages-home-headline-old>
15
+ </div>
16
+ </template>
17
+
18
+ <script lang="ts" setup>
19
+ import type { UI_I_ZoneList } from '~/components/common/pages/home/lib/models/interfaces'
20
+ import type { UI_T_Project } from '~/lib/models/types'
21
+
22
+ const selectedZone = defineModel<string>('selectedZone', { required: true })
23
+
24
+ const props = defineProps<{
25
+ zoneList: UI_I_ZoneList[]
26
+ project: UI_T_Project
27
+ }>()
28
+
29
+ const { $store }: any = useNuxtApp()
30
+
31
+ const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
32
+
33
+ const zoneOptionList = computed<UI_I_ZoneList[]>(() => props.zoneList)
34
+ </script>
35
+
36
+ <style lang="scss">
37
+ :root {
38
+ --home-title-color: #4d5d69;
39
+ }
40
+
41
+ :root.dark-theme {
42
+ --home-title-color: #e9eaec;
43
+ }
44
+ </style>
@@ -1,71 +1,71 @@
1
- <template>
2
- <div class="container-flex">
3
- <h1>{{ localization.mainNavigation.home }}</h1>
4
-
5
- <ui-select
6
- v-if="isProjectSphere"
7
- v-model="selectedZoneModel"
8
- :items="selectItems"
9
- :disabled="!selectItems.length"
10
- width="165px"
11
- select-width="100%"
12
- size="sm"
13
- test-id="home-zone-select"
14
- >
15
- <template v-if="!selectItems.length" #toggleContent>
16
- <div class="default-toggle-content">
17
- <span class="default-icon vsphere-icon-vcenter"></span>
18
- <span class="text">{{ localization.common.default }}</span>
19
- </div>
20
- </template>
21
- </ui-select>
22
- </div>
23
- </template>
24
-
25
- <script lang="ts" setup>
26
- import type { UI_I_Dropdown } from '~/node_modules/bfg-uikit/components/ui/dropdown/models/interfaces'
27
- import type { UI_I_Localization } from '~/lib/models/interfaces'
28
- import type { UI_T_Project } from '~/lib/models/types'
29
- import type { UI_I_Option } from '~/components/atoms/select/lib/models/interfaces'
30
-
31
- const selectedZoneModel = defineModel<string>({ required: true })
32
- const props = defineProps<{
33
- project: UI_T_Project
34
- data: UI_I_Option[]
35
- }>()
36
-
37
- const localization = computed<UI_I_Localization>(() => useLocal())
38
-
39
- const isProjectSphere = computed<boolean>(() => props.project === 'sphere')
40
-
41
- const selectItems = computed<UI_I_Dropdown[]>(() => props.data)
42
- </script>
43
-
44
- <style lang="scss" scoped>
45
- @import '/assets/scss/common/mixins';
46
- .container-flex {
47
- @include flex($align: center, $just: space-between);
48
- & > h1 {
49
- color: var(--home-title-color);
50
- font-size: 22px;
51
- font-weight: 400;
52
- line-height: 26.63px;
53
- margin-bottom: 19px;
54
- }
55
-
56
- .default-toggle-content {
57
- display: flex;
58
- align-items: center;
59
- grid-gap: 8px;
60
-
61
- .default-icon {
62
- width: 20px;
63
- height: 20px;
64
- }
65
- .text {
66
- font-size: 13px;
67
- font-weight: 400;
68
- }
69
- }
70
- }
71
- </style>
1
+ <template>
2
+ <div class="container-flex">
3
+ <h1>{{ localization.mainNavigation.home }}</h1>
4
+
5
+ <ui-select
6
+ v-if="isProjectSphere"
7
+ v-model="selectedZoneModel"
8
+ :items="selectItems"
9
+ :disabled="!selectItems.length"
10
+ width="165px"
11
+ select-width="100%"
12
+ size="sm"
13
+ test-id="home-zone-select"
14
+ >
15
+ <template v-if="!selectItems.length" #toggleContent>
16
+ <div class="default-toggle-content">
17
+ <span class="default-icon vsphere-icon-vcenter"></span>
18
+ <span class="text">{{ localization.common.default }}</span>
19
+ </div>
20
+ </template>
21
+ </ui-select>
22
+ </div>
23
+ </template>
24
+
25
+ <script lang="ts" setup>
26
+ import type { UI_I_Dropdown } from '~/node_modules/bfg-uikit/components/ui/dropdown/models/interfaces'
27
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
28
+ import type { UI_T_Project } from '~/lib/models/types'
29
+ import type { UI_I_Option } from '~/components/atoms/select/lib/models/interfaces'
30
+
31
+ const selectedZoneModel = defineModel<string>({ required: true })
32
+ const props = defineProps<{
33
+ project: UI_T_Project
34
+ data: UI_I_Option[]
35
+ }>()
36
+
37
+ const localization = computed<UI_I_Localization>(() => useLocal())
38
+
39
+ const isProjectSphere = computed<boolean>(() => props.project === 'sphere')
40
+
41
+ const selectItems = computed<UI_I_Dropdown[]>(() => props.data)
42
+ </script>
43
+
44
+ <style lang="scss" scoped>
45
+ @import '/assets/scss/common/mixins';
46
+ .container-flex {
47
+ @include flex($align: center, $just: space-between);
48
+ & > h1 {
49
+ color: var(--home-title-color);
50
+ font-size: 22px;
51
+ font-weight: 400;
52
+ line-height: 26.63px;
53
+ margin-bottom: 19px;
54
+ }
55
+
56
+ .default-toggle-content {
57
+ display: flex;
58
+ align-items: center;
59
+ grid-gap: 8px;
60
+
61
+ .default-icon {
62
+ width: 20px;
63
+ height: 20px;
64
+ }
65
+ .text {
66
+ font-size: 13px;
67
+ font-weight: 400;
68
+ }
69
+ }
70
+ }
71
+ </style>
@@ -1,48 +1,48 @@
1
- import type { UI_T_NodeType } from '~/components/common/pages/home/lib/models/types'
2
- import type { UI_I_Resources } from '~/components/common/resource/lib/models/interfaces'
3
- import type { UI_I_Option } from '~/components/atoms/select/lib/models/interfaces'
4
-
5
- export interface UI_I_ZoneList extends UI_I_Option {}
6
- export interface UI_I_Hosts {
7
- connected: number
8
- disconnected: number
9
- maintenance: number
10
- total: number
11
- }
12
-
13
- export interface UI_I_Vms {
14
- powered_on: number
15
- powered_off: number
16
- suspended: number
17
- total: number
18
- }
19
-
20
- export interface UI_I_Alert {
21
- item: string
22
- type: UI_T_NodeType
23
- id: number
24
- alerts: number
25
- warnings: number
26
- }
27
-
28
- export interface UI_I_Service {
29
- id: number
30
- item: string
31
- statusIcon: string
32
- statusText: string
33
- version: string
34
- }
35
-
36
- export interface UI_I_HomeInfo {
37
- resource_meter: UI_I_Resources[]
38
- hosts: UI_I_Hosts
39
- vms: UI_I_Vms
40
- alerts: UI_I_Alert[]
41
- services: UI_I_Service[]
42
- }
43
-
44
- export interface UI_I_Card {
45
- text: string
46
- value: number
47
- icon?: string
48
- }
1
+ import type { UI_T_NodeType } from '~/components/common/pages/home/lib/models/types'
2
+ import type { UI_I_Resources } from '~/components/common/resource/lib/models/interfaces'
3
+ import type { UI_I_Option } from '~/components/atoms/select/lib/models/interfaces'
4
+
5
+ export interface UI_I_ZoneList extends UI_I_Option {}
6
+ export interface UI_I_Hosts {
7
+ connected: number
8
+ disconnected: number
9
+ maintenance: number
10
+ total: number
11
+ }
12
+
13
+ export interface UI_I_Vms {
14
+ powered_on: number
15
+ powered_off: number
16
+ suspended: number
17
+ total: number
18
+ }
19
+
20
+ export interface UI_I_Alert {
21
+ item: string
22
+ type: UI_T_NodeType
23
+ id: number
24
+ alerts: number
25
+ warnings: number
26
+ }
27
+
28
+ export interface UI_I_Service {
29
+ id: number
30
+ item: string
31
+ statusIcon: string
32
+ statusText: string
33
+ version: string
34
+ }
35
+
36
+ export interface UI_I_HomeInfo {
37
+ resource_meter: UI_I_Resources[]
38
+ hosts: UI_I_Hosts
39
+ vms: UI_I_Vms
40
+ alerts: UI_I_Alert[]
41
+ services: UI_I_Service[]
42
+ }
43
+
44
+ export interface UI_I_Card {
45
+ text: string
46
+ value: number
47
+ icon?: string
48
+ }
@@ -1,100 +1,100 @@
1
- <template>
2
- <ui-widget>
3
- <template v-if="props.loading">
4
- <common-pages-home-widgets-skeleton-total-quantities-item />
5
- </template>
6
- <div v-else class="card-content">
7
- <div class="card-content__title">
8
- <h1>{{ localization.common.hosts }}</h1>
9
- <span>({{ props.hosts.total }})</span>
10
- </div>
11
-
12
- <div class="card-content__container">
13
- <template v-for="({ text, value, icon }, key) in itemsLocal" :key="key">
14
- <div v-if="key > 0" class="divider"></div>
15
-
16
- <div class="card-content-item">
17
- <span :class="['icon', icon]"></span>
18
- <div class="label">{{ localization.common[text] }}</div>
19
- <div class="count">{{ value }}</div>
20
- </div>
21
- </template>
22
- </div>
23
- </div>
24
- </ui-widget>
25
- </template>
26
-
27
- <script lang="ts" setup>
28
- import type { UI_I_Localization } from '~/lib/models/interfaces'
29
- import type {
30
- UI_I_Card,
31
- UI_I_Hosts,
32
- } from '~/components/common/pages/home/lib/models/interfaces'
33
- import { itemsFunc } from '~/components/common/pages/home/widgets/hosts/lib/config/items'
34
-
35
- const props = defineProps<{
36
- hosts: UI_I_Hosts
37
- loading: boolean
38
- }>()
39
-
40
- const localization = computed<UI_I_Localization>(() => useLocal())
41
-
42
- const itemsLocal = computed<UI_I_Card[]>(() => itemsFunc(props.hosts))
43
- </script>
44
-
45
- <style lang="scss" scoped>
46
- @import 'assets/scss/common/mixins.scss';
47
- .card-content {
48
- &__title {
49
- @include flex($align: center);
50
- color: var(--widget-text-first);
51
- margin-bottom: 16px;
52
- & > h1 {
53
- font-size: 16px;
54
- font-weight: 500;
55
- line-height: 19.36px;
56
- }
57
- & > span {
58
- font-size: 16px;
59
- font-weight: 500;
60
- margin-left: 5px;
61
- }
62
- }
63
- &__container {
64
- display: grid;
65
- grid-template-columns: 1fr auto 1fr auto 1fr;
66
- grid-column-gap: 12px;
67
- padding: 24px 0;
68
- box-sizing: border-box;
69
- }
70
- .divider {
71
- width: 1px;
72
- height: 100%;
73
- background-color: var(--horizontal-line);
74
- }
75
- .card-content-item {
76
- @include flex($align: center, $dir: column);
77
-
78
- .icon {
79
- width: 20px;
80
- height: 20px;
81
- margin-bottom: 8px;
82
- }
83
-
84
- .label {
85
- color: #9da6ad;
86
- font-size: 14px;
87
- font-weight: 500;
88
- line-height: 16.94px;
89
- margin-bottom: 12px;
90
- }
91
-
92
- .count {
93
- color: var(--widget-text-first);
94
- font-size: 16px;
95
- font-weight: 500;
96
- line-height: 19.36px;
97
- }
98
- }
99
- }
100
- </style>
1
+ <template>
2
+ <ui-widget>
3
+ <template v-if="props.loading">
4
+ <common-pages-home-widgets-skeleton-total-quantities-item />
5
+ </template>
6
+ <div v-else class="card-content">
7
+ <div class="card-content__title">
8
+ <h1>{{ localization.common.hosts }}</h1>
9
+ <span>({{ props.hosts.total }})</span>
10
+ </div>
11
+
12
+ <div class="card-content__container">
13
+ <template v-for="({ text, value, icon }, key) in itemsLocal" :key="key">
14
+ <div v-if="key > 0" class="divider"></div>
15
+
16
+ <div class="card-content-item">
17
+ <span :class="['icon', icon]"></span>
18
+ <div class="label">{{ localization.common[text] }}</div>
19
+ <div class="count">{{ value }}</div>
20
+ </div>
21
+ </template>
22
+ </div>
23
+ </div>
24
+ </ui-widget>
25
+ </template>
26
+
27
+ <script lang="ts" setup>
28
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
29
+ import type {
30
+ UI_I_Card,
31
+ UI_I_Hosts,
32
+ } from '~/components/common/pages/home/lib/models/interfaces'
33
+ import { itemsFunc } from '~/components/common/pages/home/widgets/hosts/lib/config/items'
34
+
35
+ const props = defineProps<{
36
+ hosts: UI_I_Hosts
37
+ loading: boolean
38
+ }>()
39
+
40
+ const localization = computed<UI_I_Localization>(() => useLocal())
41
+
42
+ const itemsLocal = computed<UI_I_Card[]>(() => itemsFunc(props.hosts))
43
+ </script>
44
+
45
+ <style lang="scss" scoped>
46
+ @import 'assets/scss/common/mixins.scss';
47
+ .card-content {
48
+ &__title {
49
+ @include flex($align: center);
50
+ color: var(--widget-text-first);
51
+ margin-bottom: 16px;
52
+ & > h1 {
53
+ font-size: 16px;
54
+ font-weight: 500;
55
+ line-height: 19.36px;
56
+ }
57
+ & > span {
58
+ font-size: 16px;
59
+ font-weight: 500;
60
+ margin-left: 5px;
61
+ }
62
+ }
63
+ &__container {
64
+ display: grid;
65
+ grid-template-columns: 1fr auto 1fr auto 1fr;
66
+ grid-column-gap: 12px;
67
+ padding: 24px 0;
68
+ box-sizing: border-box;
69
+ }
70
+ .divider {
71
+ width: 1px;
72
+ height: 100%;
73
+ background-color: var(--horizontal-line);
74
+ }
75
+ .card-content-item {
76
+ @include flex($align: center, $dir: column);
77
+
78
+ .icon {
79
+ width: 20px;
80
+ height: 20px;
81
+ margin-bottom: 8px;
82
+ }
83
+
84
+ .label {
85
+ color: #9da6ad;
86
+ font-size: 14px;
87
+ font-weight: 500;
88
+ line-height: 16.94px;
89
+ margin-bottom: 12px;
90
+ }
91
+
92
+ .count {
93
+ color: var(--widget-text-first);
94
+ font-size: 16px;
95
+ font-weight: 500;
96
+ line-height: 19.36px;
97
+ }
98
+ }
99
+ }
100
+ </style>
@@ -1,23 +1,23 @@
1
- import type {
2
- UI_I_Card,
3
- UI_I_Hosts,
4
- } from '~/components/common/pages/home/lib/models/interfaces'
5
-
6
- export const itemsFunc = (hosts: UI_I_Hosts): UI_I_Card[] => [
7
- {
8
- value: hosts.connected,
9
- text: 'connected',
10
- icon: 'vsphere-icon-Host_Connect',
11
- },
12
- {
13
- value: hosts.disconnected,
14
- text: 'disconnected',
15
- icon: 'vsphere-icon-Host_Disconnect',
16
- },
17
-
18
- {
19
- value: hosts.maintenance,
20
- text: 'maintenance',
21
- icon: 'vsphere-icon-host-maintenance',
22
- },
23
- ]
1
+ import type {
2
+ UI_I_Card,
3
+ UI_I_Hosts,
4
+ } from '~/components/common/pages/home/lib/models/interfaces'
5
+
6
+ export const itemsFunc = (hosts: UI_I_Hosts): UI_I_Card[] => [
7
+ {
8
+ value: hosts.connected,
9
+ text: 'connected',
10
+ icon: 'vsphere-icon-Host_Connect',
11
+ },
12
+ {
13
+ value: hosts.disconnected,
14
+ text: 'disconnected',
15
+ icon: 'vsphere-icon-Host_Disconnect',
16
+ },
17
+
18
+ {
19
+ value: hosts.maintenance,
20
+ text: 'maintenance',
21
+ icon: 'vsphere-icon-host-maintenance',
22
+ },
23
+ ]