bfg-common 1.5.679 → 1.5.683

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 (125) hide show
  1. package/CODE_STYLE.md +109 -109
  2. package/assets/img/icons/icons-sprite-dark-3.svg +227 -227
  3. package/assets/img/icons/icons-sprite-dark-5.svg +488 -488
  4. package/assets/img/icons/icons-sprite-light-3.svg +227 -227
  5. package/assets/img/icons/icons-sprite-light-5.svg +488 -488
  6. package/components/atoms/TheIcon3.vue +50 -50
  7. package/components/atoms/collapse/CollapseNav.vue +170 -170
  8. package/components/atoms/perPage/PerPage.vue +58 -58
  9. package/components/atoms/table/dataGrid/DataGrid.vue +1718 -1718
  10. package/components/atoms/table/dataGrid/DataGridPagination.vue +97 -97
  11. package/components/atoms/table/dataGrid/lib/config/settingsTable.ts +94 -94
  12. package/components/atoms/table/dataGrid/lib/utils/export.ts +16 -16
  13. package/components/common/backup/storage/actions/add/lib/utils.ts +51 -51
  14. package/components/common/browse/blocks/contents/filesNew/Skeleton.vue +18 -18
  15. package/components/common/diagramMain/modals/lib/config/vCenterModal.ts +48 -48
  16. package/components/common/diagramMain/port/Port.vue +580 -580
  17. package/components/common/layout/theHeader/TheHeaderNew.vue +315 -315
  18. package/components/common/layout/theHeader/TheHeaderOld.vue +262 -262
  19. package/components/common/layout/theHeader/helpMenu/About.vue +79 -79
  20. package/components/common/layout/theHeader/helpMenu/aboutOld/AboutOld.vue +79 -79
  21. package/components/common/layout/theHeader/userMenu/modals/changePassword/ChangePassword.vue +93 -93
  22. package/components/common/layout/theHeader/userMenu/modals/changePassword/New.vue +193 -193
  23. package/components/common/layout/theHeader/userMenu/modals/preferences/PreferencesOld.vue +144 -144
  24. package/components/common/layout/theHeader/userMenu/modals/preferences/lib/models/types.ts +7 -7
  25. package/components/common/layout/theHeader/userMenu/modals/preferences/security/Old.vue +216 -216
  26. package/components/common/layout/theHeader/userMenu/modals/preferences/security/Security.vue +31 -31
  27. package/components/common/pages/backups/DetailView.vue +52 -52
  28. package/components/common/pages/backups/lib/models/interfaces.ts +36 -36
  29. package/components/common/pages/backups/modals/Modals.vue +243 -243
  30. package/components/common/pages/backups/modals/createBackup/configuration/maxBandwidth/lib/config/options.ts +6 -6
  31. package/components/common/pages/backups/modals/createBackup/lib/config/readyToCompleteOptions.ts +69 -69
  32. package/components/common/pages/backups/modals/lib/config/restore.ts +115 -115
  33. package/components/common/pages/backups/modals/lib/models/interfaces.ts +186 -186
  34. package/components/common/pages/backups/modals/restore/name/lib/models/interfaces.ts +6 -6
  35. package/components/common/pages/home/lib/models/interfaces.ts +48 -48
  36. package/components/common/pages/home/widgets/hosts/Hosts.vue +27 -27
  37. package/components/common/pages/home/widgets/hosts/lib/config/items.ts +23 -23
  38. package/components/common/pages/home/widgets/vms/VmsOld.vue +35 -35
  39. package/components/common/pages/home/widgets/vms/lib/config/items.ts +19 -19
  40. package/components/common/pages/scheduledTasks/lib/utils/utils.ts +84 -84
  41. package/components/common/qr/Qr.vue +57 -57
  42. package/components/common/readyToComplete/ReadyToComplete.vue +17 -17
  43. package/components/common/select/radio/RadioGroup.vue +137 -137
  44. package/components/common/spiceConsole/Drawer.vue +420 -420
  45. package/components/common/spiceConsole/SpiceConsole.vue +184 -184
  46. package/components/common/spiceConsole/lib/models/interfaces.ts +5 -5
  47. package/components/common/tools/Actions.vue +207 -207
  48. package/components/common/treeView/TreeView.vue +52 -52
  49. package/components/common/vm/actions/add/New.vue +1 -1
  50. package/components/common/vm/actions/add/Old.vue +1 -1
  51. package/components/common/vm/actions/clone/lib/config/steps.ts +295 -295
  52. package/components/common/vm/actions/clone/new/New.vue +438 -438
  53. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardware.vue +698 -698
  54. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/lib/config/options.ts +28 -28
  55. package/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/Memory.vue +283 -283
  56. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDisk.vue +489 -489
  57. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/Order.vue +156 -156
  58. package/components/common/vm/actions/common/select/compatibility/Old.vue +107 -107
  59. package/components/common/vm/actions/common/select/createType/lib/models/interfaces.ts +5 -5
  60. package/components/common/vm/actions/common/select/options/New.vue +264 -264
  61. package/components/common/vm/actions/common/select/options/Old.vue +109 -110
  62. package/components/common/vm/actions/common/select/options/Options.vue +58 -58
  63. package/components/common/vm/actions/common/select/storage/Old.vue +125 -125
  64. package/components/common/vm/actions/common/select/storage/new/New.vue +311 -311
  65. package/components/common/vm/actions/common/select/storage/new/lib/models/interfaces.ts +5 -5
  66. package/components/common/vm/actions/common/select/storage/new/lib/utils/utils.ts +21 -21
  67. package/components/common/vm/actions/common/select/template/old/Old.vue +50 -50
  68. package/components/common/vm/actions/editSettings/new/Skeleton.vue +88 -88
  69. package/components/common/wizards/common/compatibility/Compatibility.vue +35 -35
  70. package/components/common/wizards/common/compatibility/New.vue +99 -99
  71. package/components/common/wizards/common/compatibility/Old.vue +53 -53
  72. package/components/common/wizards/common/steps/computeResource/New.vue +93 -93
  73. package/components/common/wizards/common/steps/name/Name.vue +178 -178
  74. package/components/common/wizards/common/steps/name/New.vue +221 -221
  75. package/components/common/wizards/common/steps/name/Old.vue +121 -121
  76. package/components/common/wizards/common/steps/name/lib/models/interfaces.ts +4 -4
  77. package/components/common/wizards/common/steps/name/location/New.vue +40 -40
  78. package/components/common/wizards/datastore/add/Add.vue +228 -228
  79. package/components/common/wizards/datastore/add/lib/config/createDatastore.ts +1 -0
  80. package/components/common/wizards/datastore/add/lib/models/interfaces.ts +1 -0
  81. package/components/common/wizards/datastore/add/lib/utils.ts +85 -85
  82. package/components/common/wizards/datastore/add/steps/nameAndDevice/NameAndDeviceNew.vue +232 -227
  83. package/components/common/wizards/datastore/add/steps/nameAndDevice/NameAndDeviceOld.vue +231 -226
  84. package/components/common/wizards/datastore/add/steps/nameAndDevice/advancedOptions/AdvancedOptions.vue +43 -0
  85. package/components/common/wizards/datastore/add/steps/nameAndDevice/advancedOptions/New.vue +101 -0
  86. package/components/common/wizards/datastore/add/steps/nameAndDevice/advancedOptions/Old.vue +101 -0
  87. package/components/common/wizards/datastore/add/steps/nameAndDevice/table/old/Old.vue +2 -3
  88. package/components/common/wizards/datastore/add/steps/readyComplete/lib/config/propertiesDetails.ts +8 -1
  89. package/components/common/wizards/datastore/add/steps/typeMode/lib/config/typeOptions.ts +43 -43
  90. package/composables/useAppVersion.ts +21 -21
  91. package/composables/useEnvLanguage.ts +22 -22
  92. package/composables/useLocal.ts +6 -6
  93. package/composables/useLocalCommon.ts +39 -39
  94. package/lib/models/enums.ts +1 -65
  95. package/package.json +1 -1
  96. package/plugins/console.ts +21 -21
  97. package/plugins/mouse.ts +21 -21
  98. package/plugins/panelStates.ts +70 -70
  99. package/plugins/text.ts +59 -59
  100. package/public/spice-console/application/clientgui.js +854 -854
  101. package/public/spice-console/application/packetfactory.js +211 -211
  102. package/public/spice-console/application/virtualmouse.js +147 -147
  103. package/public/spice-console/lib/images/bitmap.js +203 -203
  104. package/public/spice-console/network/spicechannel.js +440 -440
  105. package/public/spice-console/process/cursorprocess.js +128 -128
  106. package/public/spice-console/process/inputprocess.js +227 -227
  107. package/public/spice-console/process/mainprocess.js +212 -212
  108. package/public/spice-console/run.js +210 -210
  109. package/store/main/mutations.ts +7 -7
  110. package/store/main/state.ts +7 -7
  111. package/store/tasks/mappers/recentTasks.ts +123 -123
  112. package/store/tasks/mutations.ts +82 -82
  113. package/components/common/layout/bottomPanel/BottomPanel.vue +0 -68
  114. package/components/common/layout/bottomPanel/New.vue +0 -227
  115. package/components/common/layout/bottomPanel/Old.vue +0 -144
  116. package/components/common/layout/bottomPanel/lib/config/statusFilter.ts +0 -19
  117. package/components/common/layout/bottomPanel/lib/models/types.ts +0 -1
  118. package/components/common/layout/bottomPanel/recentTasks/RecentTasks.vue +0 -49
  119. package/components/common/layout/bottomPanel/recentTasks/lib/models/interfaces.ts +0 -14
  120. package/components/common/layout/bottomPanel/recentTasks/new/New.vue +0 -428
  121. package/components/common/layout/bottomPanel/recentTasks/new/lib/config/config.ts +0 -259
  122. package/components/common/layout/bottomPanel/recentTasks/old/Old.vue +0 -277
  123. package/components/common/layout/bottomPanel/recentTasks/old/lib/config/recentTaskTable.ts +0 -240
  124. package/components/common/layout/bottomPanel/recentTasks/old/lib/config/tableKeys.ts +0 -15
  125. package/components/common/layout/bottomPanel/recentTasks/old/lib/models/types.ts +0 -14
@@ -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
+ }
@@ -1,57 +1,57 @@
1
- <template>
2
- <div class="qrcode">
3
- <!-- <img v-if="qrDataUrl" :src="qrDataUrl" alt="QR Code" class="qr-image" />-->
4
- <Qrcode :value="props.qrCodeUrl" width="130" height="130" />
5
- </div>
6
- </template>
7
-
8
- <script setup lang="ts">
9
- // import QRCode from 'qrcode'
10
-
11
- const props = defineProps<{
12
- qrCodeUrl: string
13
- }>()
14
-
15
- // const qrDataUrl = ref<string>('')
16
- // const generateQRCode = async (): Promise<void> => {
17
- // try {
18
- // qrDataUrl.value = await QRCode.toDataURL(props.qrCodeUrl, {
19
- // width: 150,
20
- // margin: 2,
21
- // })
22
- // } catch (error) {
23
- // console.error('Error generating QR code:', error)
24
- // }
25
- // }
26
- //
27
- // watch(
28
- // () => props.qrCodeUrl,
29
- // (newValue) => {
30
- // newValue && generateQRCode()
31
- // },
32
- // { immediate: true }
33
- // )
34
- </script>
35
-
36
- <style scoped lang="scss">
37
- //.qr-code-display {
38
- // text-align: center;
39
- // max-width: 400px;
40
- // margin: 0 auto;
41
- //}
42
- //
43
- //.qr-wrapper {
44
- // margin: 20px 0;
45
- // padding: 20px;
46
- // background: white;
47
- // border-radius: 12px;
48
- // border: 1px solid #e0e0e0;
49
- // display: inline-block;
50
- //}
51
- //
52
- //.qr-canvas,
53
- //.qr-image {
54
- // width: 150px;
55
- // height: 150px;
56
- //}
57
- </style>
1
+ <template>
2
+ <div class="qrcode">
3
+ <!-- <img v-if="qrDataUrl" :src="qrDataUrl" alt="QR Code" class="qr-image" />-->
4
+ <Qrcode :value="props.qrCodeUrl" width="130" height="130" />
5
+ </div>
6
+ </template>
7
+
8
+ <script setup lang="ts">
9
+ // import QRCode from 'qrcode'
10
+
11
+ const props = defineProps<{
12
+ qrCodeUrl: string
13
+ }>()
14
+
15
+ // const qrDataUrl = ref<string>('')
16
+ // const generateQRCode = async (): Promise<void> => {
17
+ // try {
18
+ // qrDataUrl.value = await QRCode.toDataURL(props.qrCodeUrl, {
19
+ // width: 150,
20
+ // margin: 2,
21
+ // })
22
+ // } catch (error) {
23
+ // console.error('Error generating QR code:', error)
24
+ // }
25
+ // }
26
+ //
27
+ // watch(
28
+ // () => props.qrCodeUrl,
29
+ // (newValue) => {
30
+ // newValue && generateQRCode()
31
+ // },
32
+ // { immediate: true }
33
+ // )
34
+ </script>
35
+
36
+ <style scoped lang="scss">
37
+ //.qr-code-display {
38
+ // text-align: center;
39
+ // max-width: 400px;
40
+ // margin: 0 auto;
41
+ //}
42
+ //
43
+ //.qr-wrapper {
44
+ // margin: 20px 0;
45
+ // padding: 20px;
46
+ // background: white;
47
+ // border-radius: 12px;
48
+ // border: 1px solid #e0e0e0;
49
+ // display: inline-block;
50
+ //}
51
+ //
52
+ //.qr-canvas,
53
+ //.qr-image {
54
+ // width: 150px;
55
+ // height: 150px;
56
+ //}
57
+ </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>