bfg-common 1.5.708 → 1.5.709

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 (197) hide show
  1. package/CODE_STYLE.md +109 -109
  2. package/assets/img/icons/icons-sprite-dark-1.svg +2 -3
  3. package/assets/img/icons/icons-sprite-dark-3.svg +227 -227
  4. package/assets/img/icons/icons-sprite-dark-5.svg +488 -488
  5. package/assets/img/icons/icons-sprite-light-1.svg +3 -4
  6. package/assets/img/icons/icons-sprite-light-3.svg +227 -227
  7. package/assets/img/icons/icons-sprite-light-5.svg +488 -488
  8. package/assets/localization/local_be.json +46 -3
  9. package/assets/localization/local_en.json +46 -3
  10. package/assets/localization/local_hy.json +46 -3
  11. package/assets/localization/local_kk.json +46 -3
  12. package/assets/localization/local_ru.json +48 -5
  13. package/assets/localization/local_zh.json +46 -3
  14. package/assets/scss/common/icons/icons-1.scss +1 -1
  15. package/assets/scss/common/icons/icons-2.scss +18 -0
  16. package/assets/scss/common/theme.scss +2 -0
  17. package/assets/scss/components/auth.scss +32 -5
  18. package/components/atoms/TheIcon3.vue +50 -50
  19. package/components/atoms/collapse/CollapseNav.vue +170 -170
  20. package/components/atoms/dropdown/tree/Tree.vue +2 -0
  21. package/components/atoms/perPage/PerPage.vue +58 -58
  22. package/components/atoms/switch/Switch.vue +7 -1
  23. package/components/atoms/table/dataGrid/DataGrid.vue +1718 -1718
  24. package/components/atoms/table/dataGrid/DataGridPagination.vue +97 -97
  25. package/components/atoms/table/dataGrid/lib/config/settingsTable.ts +94 -94
  26. package/components/atoms/table/dataGrid/lib/utils/export.ts +16 -16
  27. package/components/atoms/wizard/Wizard.vue +1 -1
  28. package/components/common/backup/storage/actions/add/lib/utils.ts +51 -51
  29. package/components/common/browse/blocks/contents/filesNew/Skeleton.vue +18 -18
  30. package/components/common/certificate/Certificate.vue +27 -0
  31. package/components/common/certificate/CertificateInfo.vue +139 -0
  32. package/components/common/certificate/Tools.vue +59 -0
  33. package/components/common/certificate/lib/config/tabsPannel.ts +22 -0
  34. package/components/common/certificate/lib/models/interfaces.ts +9 -0
  35. package/components/common/certificate/lib/models/types.ts +1 -0
  36. package/components/common/certificate/modals/renew/New.vue +64 -0
  37. package/components/common/certificate/modals/renew/Old.vue +122 -0
  38. package/components/common/certificate/modals/renew/Renew.vue +67 -0
  39. package/components/common/diagramMain/modals/lib/config/vCenterModal.ts +48 -48
  40. package/components/common/diagramMain/port/Port.vue +580 -580
  41. package/components/common/help/navbar/left/lib/utils/constructAccordion.ts +2 -1
  42. package/components/common/help/navbar/right/Right.vue +86 -23
  43. package/components/common/layout/theHeader/TheHeader.vue +186 -191
  44. package/components/common/layout/theHeader/TheHeaderNew.vue +3 -7
  45. package/components/common/layout/theHeader/TheHeaderOld.vue +3 -7
  46. package/components/common/layout/theHeader/helpMenu/About.vue +79 -79
  47. package/components/common/layout/theHeader/helpMenu/aboutOld/AboutOld.vue +79 -79
  48. package/components/common/layout/theHeader/modals/reconnect/ReconnectOld.vue +2 -0
  49. package/components/common/layout/theHeader/userMenu/UserMenu.vue +109 -113
  50. package/components/common/layout/theHeader/userMenu/modals/changePassword/ChangePassword.vue +12 -21
  51. package/components/common/layout/theHeader/userMenu/modals/changePassword/New.vue +36 -43
  52. package/components/common/layout/theHeader/userMenu/modals/changePassword/Old.vue +0 -2
  53. package/components/common/layout/theHeader/userMenu/modals/changePassword/lib/utils.ts +1 -1
  54. package/components/common/layout/theHeader/userMenu/modals/preferences/Preferences.vue +81 -86
  55. package/components/common/layout/theHeader/userMenu/modals/preferences/PreferencesNew.vue +113 -102
  56. package/components/common/layout/theHeader/userMenu/modals/preferences/PreferencesOld.vue +2 -4
  57. package/components/common/layout/theHeader/userMenu/modals/preferences/changeLanguage/ChangeLanguage.vue +114 -115
  58. package/components/common/layout/theHeader/userMenu/modals/preferences/changeLanguage/{ChangeLanguageNew.vue → New.vue} +65 -89
  59. package/components/common/layout/theHeader/userMenu/modals/preferences/changeLanguage/{ChangeLanguageOld.vue → Old.vue} +66 -91
  60. package/components/common/layout/theHeader/userMenu/modals/preferences/defaultConsole/DefaultConsole.vue +8 -7
  61. package/components/common/layout/theHeader/userMenu/modals/preferences/defaultConsole/{DefaultConsoleNew.vue → New.vue} +3 -3
  62. package/components/common/layout/theHeader/userMenu/modals/preferences/defaultConsole/{DefaultConsoleOld.vue → Old.vue} +2 -2
  63. package/components/common/layout/theHeader/userMenu/modals/preferences/inventory/Inventory.vue +7 -8
  64. package/components/common/layout/theHeader/userMenu/modals/preferences/inventory/{InventoryNew.vue → New.vue} +3 -2
  65. package/components/common/layout/theHeader/userMenu/modals/preferences/inventory/{InventoryOld.vue → Old.vue} +2 -2
  66. package/components/common/layout/theHeader/userMenu/modals/preferences/lib/models/types.ts +7 -7
  67. package/components/common/layout/theHeader/userMenu/modals/preferences/security/New.vue +277 -12
  68. package/components/common/layout/theHeader/userMenu/modals/preferences/security/Old.vue +30 -56
  69. package/components/common/layout/theHeader/userMenu/modals/preferences/security/Security.vue +65 -6
  70. package/components/common/layout/theHeader/userMenu/modals/preferences/timeFormat/{TimeFormatNew.vue → New.vue} +3 -3
  71. package/components/common/layout/theHeader/userMenu/modals/preferences/timeFormat/{TimeFormatOld.vue → Old.vue} +2 -2
  72. package/components/common/layout/theHeader/userMenu/modals/preferences/timeFormat/TimeFormat.vue +8 -8
  73. package/components/common/layout/theHeader/userMenu/modals/preferences/view/{ViewNew.vue → New.vue} +12 -3
  74. package/components/common/layout/theHeader/userMenu/modals/preferences/view/{ViewOld.vue → Old.vue} +2 -2
  75. package/components/common/layout/theHeader/userMenu/modals/preferences/view/View.vue +33 -45
  76. package/components/common/monitor/advanced/graphView/GraphView.vue +8 -0
  77. package/components/common/monitor/advanced/tools/Tools.vue +5 -1
  78. package/components/common/pages/auth/TheFooter.vue +104 -0
  79. package/components/common/pages/backups/DetailView.vue +52 -52
  80. package/components/common/pages/backups/lib/models/interfaces.ts +36 -36
  81. package/components/common/pages/backups/modals/Modals.vue +243 -243
  82. package/components/common/pages/backups/modals/createBackup/configuration/maxBandwidth/lib/config/options.ts +6 -6
  83. package/components/common/pages/backups/modals/createBackup/lib/config/readyToCompleteOptions.ts +69 -69
  84. package/components/common/pages/backups/modals/lib/config/restore.ts +115 -115
  85. package/components/common/pages/backups/modals/lib/models/interfaces.ts +186 -186
  86. package/components/common/pages/backups/modals/restore/name/lib/models/interfaces.ts +6 -6
  87. package/components/common/pages/files/lib/models/enums.ts +10 -0
  88. package/components/common/pages/hardwareHealth/historyTestimony/tools/Tools.vue +7 -2
  89. package/components/common/pages/hardwareHealth/tableView/TableView.vue +8 -0
  90. package/components/common/pages/hardwareHealth/tableView/lib/config/sensorTable.ts +13 -1
  91. package/components/common/pages/hardwareHealth/toolsPanel/lib/config/actionsPanel.ts +4 -4
  92. package/components/common/pages/home/lib/models/interfaces.ts +48 -48
  93. package/components/common/pages/home/widgets/hosts/Hosts.vue +27 -27
  94. package/components/common/pages/home/widgets/hosts/lib/config/items.ts +23 -23
  95. package/components/common/pages/home/widgets/vms/VmsOld.vue +35 -35
  96. package/components/common/pages/home/widgets/vms/lib/config/items.ts +19 -19
  97. package/components/common/pages/scheduledTasks/lib/utils/utils.ts +84 -84
  98. package/components/common/pages/tasks/table/expandDetails/ExpandDetails.vue +1 -1
  99. package/components/common/qr/Qr.vue +69 -0
  100. package/components/common/readyToComplete/ReadyToComplete.vue +17 -17
  101. package/components/common/select/radio/RadioGroup.vue +137 -137
  102. package/components/common/selectLanguage/SelectLanguage.vue +200 -200
  103. package/components/common/spiceConsole/Drawer.vue +420 -420
  104. package/components/common/spiceConsole/SpiceConsole.vue +184 -184
  105. package/components/common/spiceConsole/lib/models/interfaces.ts +5 -5
  106. package/components/common/split/horizontal/New.vue +0 -2
  107. package/components/common/split/vertical/New.vue +2 -1
  108. package/components/common/tools/Actions.vue +207 -207
  109. package/components/common/treeView/TreeView.vue +52 -52
  110. package/components/common/vm/actions/add/New.vue +1 -1
  111. package/components/common/vm/actions/add/Old.vue +1 -1
  112. package/components/common/vm/actions/clone/lib/config/steps.ts +295 -295
  113. package/components/common/vm/actions/clone/new/New.vue +438 -438
  114. package/components/common/vm/actions/clone/old/Old.vue +1 -0
  115. package/components/common/vm/actions/common/customizeHardware/virtualHardware/New.vue +10 -34
  116. package/components/common/vm/actions/common/customizeHardware/virtualHardware/Old.vue +15 -37
  117. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardware.vue +49 -50
  118. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/coresPerSocket/CoresPerSocket.vue +1 -1
  119. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/lib/config/options.ts +28 -28
  120. package/components/common/vm/actions/common/customizeHardware/virtualHardware/lib/models/interfaces.ts +3 -1
  121. package/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/Memory.vue +283 -283
  122. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDisk.vue +13 -7
  123. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/New.vue +7 -4
  124. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/NewPciDevice.vue +52 -45
  125. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/Old.vue +5 -8
  126. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIo.vue +1 -3
  127. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/New.vue +2 -2
  128. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/Old.vue +2 -2
  129. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIo.vue +1 -1
  130. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/New.vue +1 -2
  131. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/Old.vue +1 -2
  132. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/New.vue +1 -1
  133. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGrid.vue +1 -1
  134. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/Old.vue +1 -1
  135. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/Order.vue +156 -156
  136. package/components/common/vm/actions/common/select/compatibility/Old.vue +107 -107
  137. package/components/common/vm/actions/common/select/createType/lib/models/interfaces.ts +5 -5
  138. package/components/common/vm/actions/common/select/options/New.vue +264 -264
  139. package/components/common/vm/actions/common/select/options/Old.vue +1 -2
  140. package/components/common/vm/actions/common/select/options/Options.vue +58 -58
  141. package/components/common/vm/actions/common/select/storage/Old.vue +125 -125
  142. package/components/common/vm/actions/common/select/storage/new/New.vue +311 -311
  143. package/components/common/vm/actions/common/select/storage/new/lib/models/interfaces.ts +5 -5
  144. package/components/common/vm/actions/common/select/storage/new/lib/utils/utils.ts +21 -21
  145. package/components/common/vm/actions/common/select/template/old/Old.vue +50 -50
  146. package/components/common/vm/actions/editSettings/new/Skeleton.vue +88 -88
  147. package/components/common/wizards/common/compatibility/Compatibility.vue +35 -35
  148. package/components/common/wizards/common/compatibility/New.vue +1 -1
  149. package/components/common/wizards/common/compatibility/Old.vue +1 -1
  150. package/components/common/wizards/common/steps/computeResource/New.vue +93 -93
  151. package/components/common/wizards/common/steps/name/Name.vue +178 -178
  152. package/components/common/wizards/common/steps/name/New.vue +221 -221
  153. package/components/common/wizards/common/steps/name/Old.vue +121 -121
  154. package/components/common/wizards/common/steps/name/lib/models/interfaces.ts +4 -4
  155. package/components/common/wizards/common/steps/name/location/New.vue +40 -40
  156. package/components/common/wizards/datastore/add/Add.vue +228 -228
  157. package/components/common/wizards/datastore/add/lib/config/createDatastore.ts +1 -0
  158. package/components/common/wizards/datastore/add/lib/models/interfaces.ts +1 -0
  159. package/components/common/wizards/datastore/add/lib/utils.ts +85 -85
  160. package/components/common/wizards/datastore/add/steps/nameAndDevice/NameAndDeviceNew.vue +5 -0
  161. package/components/common/wizards/datastore/add/steps/nameAndDevice/NameAndDeviceOld.vue +5 -0
  162. package/components/common/wizards/datastore/add/steps/nameAndDevice/advancedOptions/AdvancedOptions.vue +43 -0
  163. package/components/common/wizards/datastore/add/steps/nameAndDevice/advancedOptions/New.vue +114 -0
  164. package/components/common/wizards/datastore/add/steps/nameAndDevice/advancedOptions/Old.vue +114 -0
  165. package/components/common/wizards/datastore/add/steps/nameAndDevice/table/old/Old.vue +2 -3
  166. package/components/common/wizards/datastore/add/steps/readyComplete/lib/config/propertiesDetails.ts +8 -1
  167. package/components/common/wizards/datastore/add/steps/typeMode/lib/config/typeOptions.ts +43 -43
  168. package/components/common/wizards/vm/migrate/lib/models/enums.ts +2 -2
  169. package/components/common/wizards/vm/migrate/steps/selectStorage/SelectStorage.vue +4 -4
  170. package/components/common/wizards/vm/migrate/steps/selectStorage/configure/disk/table/new/lib/config/diskTable.ts +6 -2
  171. package/components/common/wizards/vm/migrate/steps/selectStorage/configure/disk/table/old/lib/config/diskTable.ts +18 -12
  172. package/composables/useAppVersion.ts +21 -21
  173. package/composables/useEnvLanguage.ts +7 -8
  174. package/composables/useLocal.ts +6 -6
  175. package/composables/useLocalCommon.ts +39 -39
  176. package/lib/models/interfaces.ts +1 -0
  177. package/package.json +3 -4
  178. package/plugins/console.ts +21 -21
  179. package/plugins/date.ts +14 -37
  180. package/plugins/mouse.ts +21 -21
  181. package/plugins/panelStates.ts +70 -70
  182. package/plugins/text.ts +59 -59
  183. package/public/spice-console/application/clientgui.js +854 -854
  184. package/public/spice-console/application/packetfactory.js +211 -211
  185. package/public/spice-console/application/virtualmouse.js +147 -147
  186. package/public/spice-console/lib/images/bitmap.js +203 -203
  187. package/public/spice-console/network/spicechannel.js +440 -440
  188. package/public/spice-console/process/cursorprocess.js +128 -128
  189. package/public/spice-console/process/inputprocess.js +227 -227
  190. package/public/spice-console/process/mainprocess.js +212 -212
  191. package/public/spice-console/run.js +210 -210
  192. package/store/main/getters.ts +2 -2
  193. package/store/main/mutations.ts +7 -7
  194. package/store/main/state.ts +7 -7
  195. package/store/tasks/mappers/recentTasks.ts +123 -123
  196. package/store/tasks/mutations.ts +82 -82
  197. package/components/common/qrcode/Qrcode.vue +0 -56
@@ -89,6 +89,9 @@ export const bodyItems = (
89
89
  localization: UI_I_Localization
90
90
  ): UI_I_BodyItem[][] => {
91
91
  const bodyItems: UI_I_BodyItem[][] = []
92
+
93
+ const { $formattedDatetime }: any = useNuxtApp()
94
+
92
95
  data.forEach((sensor: UI_I_HardwareHealthSensors, key) => {
93
96
  const statusData = {
94
97
  iconClassName: sensorsIconByStatus[sensor.status],
@@ -96,6 +99,15 @@ export const bodyItems = (
96
99
  warning: sensor.warning,
97
100
  }
98
101
 
102
+ const lastUpdate = sensor[hardwareHealthSensorTableKeys[4]]
103
+ const currentLastUpdate =
104
+ typeof lastUpdate === 'number'
105
+ ? $formattedDatetime(lastUpdate, {
106
+ hasSeconds: true,
107
+ separator: ', ',
108
+ })
109
+ : lastUpdate
110
+
99
111
  bodyItems.push([
100
112
  // {
101
113
  // data,
@@ -139,7 +151,7 @@ export const bodyItems = (
139
151
  },
140
152
  {
141
153
  key: 'col4',
142
- text: sensor[hardwareHealthSensorTableKeys[4]],
154
+ text: currentLastUpdate,
143
155
  id: key,
144
156
  },
145
157
  {
@@ -11,24 +11,24 @@ export const hardwareHealthActionsFunc = (
11
11
  text: localization.common.refresh,
12
12
  type: 'refresh',
13
13
  disabled: false,
14
- permission: ['sensor', 'storage-sensor', 'alert-warning', 'system-log'],
14
+ allowed: ['sensor', 'storage-sensor', 'alert-warning', 'system-log'],
15
15
  testId: 'hardware-health-refresh',
16
16
  },
17
17
  {
18
18
  text: localization.common.exportToXml,
19
19
  type: 'export-to-xml',
20
20
  disabled: true,
21
- permission: ['sensor'],
21
+ allowed: ['sensor'],
22
22
  testId: 'hardware-health-export-to-xml',
23
23
  },
24
24
  {
25
25
  text: localization.common.resetEventLog,
26
26
  type: 'reset-event-log',
27
27
  disabled: true,
28
- permission: ['system-log'],
28
+ allowed: ['system-log'],
29
29
  testId: 'hardware-health-reset-event-log',
30
30
  },
31
31
  ]
32
32
 
33
- return tabs.filter((tab) => tab.permission.includes(<string>selectedTab))
33
+ return tabs.filter((tab) => tab.allowed.includes(<string>selectedTab))
34
34
  }
@@ -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
- vms: UI_I_Vms
39
- alerts: UI_I_Alert[]
40
- services: UI_I_Service[]
41
- hosts?: UI_I_Hosts
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
+ vms: UI_I_Vms
39
+ alerts: UI_I_Alert[]
40
+ services: UI_I_Service[]
41
+ hosts?: UI_I_Hosts
42
+ }
43
+
44
+ export interface UI_I_Card {
45
+ text: string
46
+ value: number
47
+ icon?: string
48
+ }
@@ -1,27 +1,27 @@
1
- <template>
2
- <common-pages-home-widgets-hosts-new
3
- v-if="isNewView"
4
- :hosts="props.hosts"
5
- :loading="props.loading"
6
- />
7
-
8
- <common-pages-home-widgets-hosts-old
9
- v-else
10
- :hosts="props.hosts"
11
- />
12
- </template>
13
-
14
- <script lang="ts" setup>
15
- import type { UI_I_Hosts } from '~/components/common/pages/home/lib/models/interfaces'
16
-
17
- const props = defineProps<{
18
- hosts: UI_I_Hosts
19
- loading: boolean
20
- }>()
21
-
22
- const { $store }: any = useNuxtApp()
23
-
24
- const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
25
- </script>
26
-
27
- <style lang="scss" scoped></style>
1
+ <template>
2
+ <common-pages-home-widgets-hosts-new
3
+ v-if="isNewView"
4
+ :hosts="props.hosts"
5
+ :loading="props.loading"
6
+ />
7
+
8
+ <common-pages-home-widgets-hosts-old
9
+ v-else
10
+ :hosts="props.hosts"
11
+ />
12
+ </template>
13
+
14
+ <script lang="ts" setup>
15
+ import type { UI_I_Hosts } from '~/components/common/pages/home/lib/models/interfaces'
16
+
17
+ const props = defineProps<{
18
+ hosts: UI_I_Hosts
19
+ loading: boolean
20
+ }>()
21
+
22
+ const { $store }: any = useNuxtApp()
23
+
24
+ const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
25
+ </script>
26
+
27
+ <style lang="scss" scoped></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
+ ]
@@ -1,35 +1,35 @@
1
- <template>
2
- <div :class="classes">
3
- <div class="entity-status">
4
- <common-pages-home-card
5
- :title="localization.common.vms"
6
- :count="props.vms.total"
7
- icon-name="vsphere-icon-vm"
8
- >
9
- <common-pages-home-status-content :items="props.vms" />
10
- </common-pages-home-card>
11
- </div>
12
- </div>
13
- </template>
14
-
15
- <script lang="ts" setup>
16
- import type { UI_I_Localization } from '~/lib/models/interfaces'
17
- import type { UI_I_Vms } from '~/components/common/pages/home/lib/models/interfaces'
18
- import type { UI_T_Project } from '~/lib/models/types'
19
- const props = defineProps<{
20
- vms: UI_I_Vms
21
- project?: UI_T_Project
22
- }>()
23
-
24
- const localization = computed<UI_I_Localization>(() => useLocal())
25
-
26
- const classes = computed<string>(() => {
27
- let classes = 'clr-col-md-6 clr-col-sm-12'
28
- if (props.project === 'procurator') {
29
- classes = 'clr-col-md-12 clr-col-sm-12'
30
- }
31
- return classes
32
- })
33
- </script>
34
-
35
- <style lang="scss" scoped></style>
1
+ <template>
2
+ <div :class="classes">
3
+ <div class="entity-status">
4
+ <common-pages-home-card
5
+ :title="localization.common.vms"
6
+ :count="props.vms.total"
7
+ icon-name="vsphere-icon-vm"
8
+ >
9
+ <common-pages-home-status-content :items="props.vms" />
10
+ </common-pages-home-card>
11
+ </div>
12
+ </div>
13
+ </template>
14
+
15
+ <script lang="ts" setup>
16
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
17
+ import type { UI_I_Vms } from '~/components/common/pages/home/lib/models/interfaces'
18
+ import type { UI_T_Project } from '~/lib/models/types'
19
+ const props = defineProps<{
20
+ vms: UI_I_Vms
21
+ project?: UI_T_Project
22
+ }>()
23
+
24
+ const localization = computed<UI_I_Localization>(() => useLocal())
25
+
26
+ const classes = computed<string>(() => {
27
+ let classes = 'clr-col-md-6 clr-col-sm-12'
28
+ if (props.project === 'procurator') {
29
+ classes = 'clr-col-md-12 clr-col-sm-12'
30
+ }
31
+ return classes
32
+ })
33
+ </script>
34
+
35
+ <style lang="scss" scoped></style>
@@ -1,20 +1,20 @@
1
- import type {UI_I_Card, UI_I_Vms} from "~/components/common/pages/home/lib/models/interfaces";
2
-
3
- export const itemsFunc = (vms: UI_I_Vms): UI_I_Card[] => [
4
- {
5
- value: vms.powered_on,
6
- text: 'powered_on',
7
- icon: 'vsphere-icon-vm-on',
8
- },
9
- {
10
- value: vms.powered_off,
11
- text: 'powered_off',
12
- icon: 'icon-vm-power-off',
13
- },
14
-
15
- {
16
- value: vms.suspended,
17
- text: 'suspended',
18
- icon: 'vsphere-icon-vm-suspended',
19
- },
1
+ import type {UI_I_Card, UI_I_Vms} from "~/components/common/pages/home/lib/models/interfaces";
2
+
3
+ export const itemsFunc = (vms: UI_I_Vms): UI_I_Card[] => [
4
+ {
5
+ value: vms.powered_on,
6
+ text: 'powered_on',
7
+ icon: 'vsphere-icon-vm-on',
8
+ },
9
+ {
10
+ value: vms.powered_off,
11
+ text: 'powered_off',
12
+ icon: 'icon-vm-power-off',
13
+ },
14
+
15
+ {
16
+ value: vms.suspended,
17
+ text: 'suspended',
18
+ icon: 'vsphere-icon-vm-suspended',
19
+ },
20
20
  ]
@@ -1,84 +1,84 @@
1
- import type { UI_T_Project } from '~/lib/models/types'
2
- import type {
3
- UI_I_Localization,
4
- UI_I_SendTaskParams,
5
- } from '~/lib/models/interfaces'
6
- import type { UI_I_ScheduleNewTasksForm } from '~/components/common/pages/scheduledTasks/modals/lib/models/interfaces'
7
- import { base64 } from '~/lib/utils/base64'
8
- import type {
9
- UI_I_CreateScheduledTaskArgs,
10
- UI_I_ScheduledTasksTableItem,
11
- } from '~/components/common/pages/scheduledTasks/lib/models/interfaces'
12
- import type { UI_T_ScheduledTasksActionsType } from '~/components/common/pages/scheduledTasks/lib/models/types'
13
-
14
- export const defineScheduleTaskModalTitle = (
15
- type: UI_T_ScheduledTasksActionsType,
16
- isEdit: boolean
17
- ): string => {
18
- const localization: UI_I_Localization = useLocal()
19
- const { scheduleNewTasks, scheduleTaskEdit } = localization.common
20
-
21
- const typeTitleMap: Partial<Record<UI_T_ScheduledTasksActionsType, string>> =
22
- {
23
- 'power-on': localization.common.powerOn,
24
- 'power-off': localization.common.powerOff,
25
- 'shut-down-guest-os': localization.common.shutDownGuestOs,
26
- 'restart-guest-os': localization.common.restartGuestOs,
27
- suspend: localization.common.suspend,
28
- reset: localization.common.reset,
29
- 'take-snapshot': localization.common.takeSnapshot,
30
- }
31
-
32
- const title = typeTitleMap[type]
33
- const modalMode = isEdit ? scheduleTaskEdit : scheduleNewTasks
34
-
35
- return `${modalMode} (${title})`
36
- }
37
- export const scheduledTasks = (
38
- form: UI_I_ScheduleNewTasksForm,
39
- args: UI_I_SendTaskParams,
40
- target: string,
41
- isEdit: boolean,
42
- data: UI_I_ScheduledTasksTableItem,
43
- project: UI_T_Project
44
- ): UI_I_SendTaskParams => {
45
- const methodArgs = {
46
- method: args.method,
47
- params: {
48
- target: args.target,
49
- args: args.args ? base64.encode(args.args) : '',
50
- },
51
- }
52
-
53
- let method = ''
54
- switch (project) {
55
- case 'sphere':
56
- method = isEdit
57
- ? 'VirtualMachines.UpdateScheduledTask'
58
- : 'VirtualMachines.CreateScheduledTask'
59
- break
60
- case 'procurator':
61
- method = isEdit ? 'vm.update_sched_task' : 'vm.create_sched_task'
62
- break
63
- }
64
-
65
- const taskArgs: UI_I_CreateScheduledTaskArgs = {
66
- target,
67
- name: form.task_name,
68
- description: form.description,
69
- toggle: form.toggle,
70
- cron_2: form.cron,
71
- notify_emails: form.ntfn_target,
72
- args: base64.encode(methodArgs),
73
- ...(isEdit && {
74
- rid: data.rid,
75
- last_modified: data.last_modified,
76
- }),
77
- }
78
-
79
- return {
80
- method,
81
- target,
82
- args: taskArgs,
83
- }
84
- }
1
+ import type { UI_T_Project } from '~/lib/models/types'
2
+ import type {
3
+ UI_I_Localization,
4
+ UI_I_SendTaskParams,
5
+ } from '~/lib/models/interfaces'
6
+ import type { UI_I_ScheduleNewTasksForm } from '~/components/common/pages/scheduledTasks/modals/lib/models/interfaces'
7
+ import { base64 } from '~/lib/utils/base64'
8
+ import type {
9
+ UI_I_CreateScheduledTaskArgs,
10
+ UI_I_ScheduledTasksTableItem,
11
+ } from '~/components/common/pages/scheduledTasks/lib/models/interfaces'
12
+ import type { UI_T_ScheduledTasksActionsType } from '~/components/common/pages/scheduledTasks/lib/models/types'
13
+
14
+ export const defineScheduleTaskModalTitle = (
15
+ type: UI_T_ScheduledTasksActionsType,
16
+ isEdit: boolean
17
+ ): string => {
18
+ const localization: UI_I_Localization = useLocal()
19
+ const { scheduleNewTasks, scheduleTaskEdit } = localization.common
20
+
21
+ const typeTitleMap: Partial<Record<UI_T_ScheduledTasksActionsType, string>> =
22
+ {
23
+ 'power-on': localization.common.powerOn,
24
+ 'power-off': localization.common.powerOff,
25
+ 'shut-down-guest-os': localization.common.shutDownGuestOs,
26
+ 'restart-guest-os': localization.common.restartGuestOs,
27
+ suspend: localization.common.suspend,
28
+ reset: localization.common.reset,
29
+ 'take-snapshot': localization.common.takeSnapshot,
30
+ }
31
+
32
+ const title = typeTitleMap[type]
33
+ const modalMode = isEdit ? scheduleTaskEdit : scheduleNewTasks
34
+
35
+ return `${modalMode} (${title})`
36
+ }
37
+ export const scheduledTasks = (
38
+ form: UI_I_ScheduleNewTasksForm,
39
+ args: UI_I_SendTaskParams,
40
+ target: string,
41
+ isEdit: boolean,
42
+ data: UI_I_ScheduledTasksTableItem,
43
+ project: UI_T_Project
44
+ ): UI_I_SendTaskParams => {
45
+ const methodArgs = {
46
+ method: args.method,
47
+ params: {
48
+ target: args.target,
49
+ args: args.args ? base64.encode(args.args) : '',
50
+ },
51
+ }
52
+
53
+ let method = ''
54
+ switch (project) {
55
+ case 'sphere':
56
+ method = isEdit
57
+ ? 'VirtualMachines.UpdateScheduledTask'
58
+ : 'VirtualMachines.CreateScheduledTask'
59
+ break
60
+ case 'procurator':
61
+ method = isEdit ? 'vm.update_sched_task' : 'vm.create_sched_task'
62
+ break
63
+ }
64
+
65
+ const taskArgs: UI_I_CreateScheduledTaskArgs = {
66
+ target,
67
+ name: form.task_name,
68
+ description: form.description,
69
+ toggle: form.toggle,
70
+ cron_2: form.cron,
71
+ notify_emails: form.ntfn_target,
72
+ args: base64.encode(methodArgs),
73
+ ...(isEdit && {
74
+ rid: data.rid,
75
+ last_modified: data.last_modified,
76
+ }),
77
+ }
78
+
79
+ return {
80
+ method,
81
+ target,
82
+ args: taskArgs,
83
+ }
84
+ }
@@ -42,7 +42,7 @@
42
42
  status="error"
43
43
  dropdown-width="232px"
44
44
  dropdown-left
45
- dropdown-top
45
+ dropdown-bottom
46
46
  />
47
47
  </div>
48
48
  </span>
@@ -0,0 +1,69 @@
1
+ <template>
2
+ <div class="qrcode">
3
+ <!-- <img v-if="qrDataUrl" :src="qrDataUrl" alt="QR Code" class="qr-image" />-->
4
+ <Qrcode
5
+ :value="props.qrCodeUrl"
6
+ :width="props.width"
7
+ :height="props.height"
8
+ />
9
+ </div>
10
+ </template>
11
+
12
+ <script setup lang="ts">
13
+ // import QRCode from 'qrcode'
14
+
15
+ const props = withDefaults(
16
+ defineProps<{
17
+ qrCodeUrl: string
18
+ width?: string
19
+ height?: string
20
+ }>(),
21
+ {
22
+ width: '130',
23
+ height: '130',
24
+ }
25
+ )
26
+
27
+ // const qrDataUrl = ref<string>('')
28
+ // const generateQRCode = async (): Promise<void> => {
29
+ // try {
30
+ // qrDataUrl.value = await QRCode.toDataURL(props.qrCodeUrl, {
31
+ // width: 150,
32
+ // margin: 2,
33
+ // })
34
+ // } catch (error) {
35
+ // console.error('Error generating QR code:', error)
36
+ // }
37
+ // }
38
+ //
39
+ // watch(
40
+ // () => props.qrCodeUrl,
41
+ // (newValue) => {
42
+ // newValue && generateQRCode()
43
+ // },
44
+ // { immediate: true }
45
+ // )
46
+ </script>
47
+
48
+ <style scoped lang="scss">
49
+ //.qr-code-display {
50
+ // text-align: center;
51
+ // max-width: 400px;
52
+ // margin: 0 auto;
53
+ //}
54
+ //
55
+ //.qr-wrapper {
56
+ // margin: 20px 0;
57
+ // padding: 20px;
58
+ // background: white;
59
+ // border-radius: 12px;
60
+ // border: 1px solid #e0e0e0;
61
+ // display: inline-block;
62
+ //}
63
+ //
64
+ //.qr-canvas,
65
+ //.qr-image {
66
+ // width: 150px;
67
+ // height: 150px;
68
+ //}
69
+ </style>
@@ -1,17 +1,17 @@
1
- <template>
2
- <common-ready-to-complete-new v-if="isNewView" :data="props.data" />
3
- <common-ready-to-complete-old v-else :data="props.data" />
4
- </template>
5
-
6
- <script lang="ts" setup>
7
- import type { UI_I_TableInfoItem } from '~/components/atoms/table/info/lib/models/interfaces'
8
-
9
- const props = defineProps<{
10
- data: UI_I_TableInfoItem[]
11
- }>()
12
-
13
- const { $store }: any = useNuxtApp()
14
- const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
15
- </script>
16
-
17
- <style lang="scss" scoped></style>
1
+ <template>
2
+ <common-ready-to-complete-new v-if="isNewView" :data="props.data" />
3
+ <common-ready-to-complete-old v-else :data="props.data" />
4
+ </template>
5
+
6
+ <script lang="ts" setup>
7
+ import type { UI_I_TableInfoItem } from '~/components/atoms/table/info/lib/models/interfaces'
8
+
9
+ const props = defineProps<{
10
+ data: UI_I_TableInfoItem[]
11
+ }>()
12
+
13
+ const { $store }: any = useNuxtApp()
14
+ const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
15
+ </script>
16
+
17
+ <style lang="scss" scoped></style>