bfg-common 1.5.773 → 1.5.774

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 (154) 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 +19 -4
  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/configure/advancedSystemSettings/AdvancedSystemSettings.vue +49 -0
  16. package/components/common/configure/advancedSystemSettings/modals/edit/Edit.vue +55 -0
  17. package/components/common/configure/advancedSystemSettings/modals/edit/New.vue +37 -0
  18. package/components/common/configure/advancedSystemSettings/modals/edit/Old.vue +46 -0
  19. package/components/common/configure/advancedSystemSettings/tableView/TableView.vue +30 -0
  20. package/components/common/configure/advancedSystemSettings/tableView/new/New.vue +193 -0
  21. package/components/common/configure/advancedSystemSettings/tableView/new/lib/config/hostTable.ts +308 -0
  22. package/components/common/configure/advancedSystemSettings/tableView/old/Old.vue +128 -0
  23. package/components/common/configure/advancedSystemSettings/tableView/old/lib/config/table.ts +93 -0
  24. package/components/common/configure/advancedSystemSettings/tableView/old/lib/config/tableKeys.ts +9 -0
  25. package/components/common/configure/advancedSystemSettings/tableView/old/lib/models/types.ts +5 -0
  26. package/components/common/configure/advancedSystemSettings/tools/New.vue +5 -0
  27. package/components/common/configure/advancedSystemSettings/tools/Old.vue +28 -0
  28. package/components/common/configure/advancedSystemSettings/tools/Tools.vue +28 -0
  29. package/components/common/configure/securityProfile/SecurityProfile.vue +28 -0
  30. package/components/common/configure/securityProfile/lockdownMode/LockdownMode.vue +112 -0
  31. package/components/common/configure/securityProfile/lockdownMode/lib/utils/constructData.ts +27 -0
  32. package/components/common/configure/securityProfile/lockdownMode/modals/lockdownModeEdit/LockdownModeEdit.vue +61 -0
  33. package/components/common/configure/securityProfile/lockdownMode/modals/lockdownModeEdit/New.vue +5 -0
  34. package/components/common/configure/securityProfile/lockdownMode/modals/lockdownModeEdit/Old.vue +109 -0
  35. package/components/common/configure/securityProfile/lockdownMode/modals/lockdownModeEdit/exceptionUsers/ExceptionUsers.vue +28 -0
  36. package/components/common/configure/securityProfile/lockdownMode/modals/lockdownModeEdit/exceptionUsers/New.vue +5 -0
  37. package/components/common/configure/securityProfile/lockdownMode/modals/lockdownModeEdit/exceptionUsers/old/Old.vue +180 -0
  38. package/components/common/configure/securityProfile/lockdownMode/modals/lockdownModeEdit/exceptionUsers/old/lib/config/table.ts +64 -0
  39. package/components/common/configure/securityProfile/lockdownMode/modals/lockdownModeEdit/exceptionUsers/old/lib/config/tableKeys.ts +6 -0
  40. package/components/common/configure/securityProfile/lockdownMode/modals/lockdownModeEdit/exceptionUsers/old/lib/models/types.ts +1 -0
  41. package/components/common/configure/securityProfile/lockdownMode/modals/lockdownModeEdit/lib/config/tabs.ts +19 -0
  42. package/components/common/configure/securityProfile/lockdownMode/modals/lockdownModeEdit/lockdownMode/LockdownMode.vue +22 -0
  43. package/components/common/configure/securityProfile/lockdownMode/modals/lockdownModeEdit/lockdownMode/New.vue +5 -0
  44. package/components/common/configure/securityProfile/lockdownMode/modals/lockdownModeEdit/lockdownMode/Old.vue +76 -0
  45. package/components/common/configure/securityProfile/lockdownMode/tools/New.vue +5 -0
  46. package/components/common/configure/securityProfile/lockdownMode/tools/Old.vue +30 -0
  47. package/components/common/configure/securityProfile/lockdownMode/tools/Tools.vue +29 -0
  48. package/components/common/diagramMain/modals/lib/config/vCenterModal.ts +48 -48
  49. package/components/common/diagramMain/port/Port.vue +580 -580
  50. package/components/common/layout/console/Console.vue +70 -70
  51. package/components/common/layout/theHeader/userMenu/modals/preferences/lib/models/types.ts +7 -7
  52. package/components/common/layout/theHeader/userMenu/modals/preferences/view/New.vue +64 -64
  53. package/components/common/pages/backups/DetailView.vue +52 -52
  54. package/components/common/pages/backups/lib/models/interfaces.ts +36 -36
  55. package/components/common/pages/backups/modals/Modals.vue +243 -243
  56. package/components/common/pages/backups/modals/createBackup/configuration/backupWindow/BackupWindow.vue +29 -29
  57. package/components/common/pages/backups/modals/createBackup/configuration/maxBandwidth/MaxBandwidth.vue +69 -69
  58. package/components/common/pages/backups/modals/createBackup/configuration/strategy/Strategy.vue +38 -38
  59. package/components/common/pages/backups/modals/createBackup/lib/models/interfaces.ts +8 -8
  60. package/components/common/pages/backups/modals/lib/config/restore.ts +116 -116
  61. package/components/common/pages/backups/modals/lib/models/interfaces.ts +187 -187
  62. package/components/common/pages/backups/modals/restore/Restore.vue +302 -302
  63. package/components/common/pages/backups/modals/restore/disks/Disks.vue +50 -50
  64. package/components/common/pages/backups/modals/restore/lib/config/readyToCompleteOptions.ts +94 -94
  65. package/components/common/pages/backups/modals/restore/lib/config/steps.ts +130 -130
  66. package/components/common/pages/backups/modals/restore/name/lib/models/interfaces.ts +6 -6
  67. package/components/common/pages/backups/modals/restore/types/New.vue +95 -95
  68. package/components/common/pages/backups/modals/restore/types/Old.vue +62 -62
  69. package/components/common/pages/backups/modals/restore/types/Types.vue +31 -31
  70. package/components/common/pages/home/lib/models/interfaces.ts +48 -48
  71. package/components/common/pages/home/widgets/hosts/Hosts.vue +27 -27
  72. package/components/common/pages/home/widgets/hosts/lib/config/items.ts +23 -23
  73. package/components/common/pages/home/widgets/vms/VmsOld.vue +35 -35
  74. package/components/common/pages/home/widgets/vms/lib/config/items.ts +19 -19
  75. package/components/common/pages/scheduledTasks/lib/utils/utils.ts +84 -84
  76. package/components/common/pages/scheduledTasks/table/Table.vue +3 -11
  77. package/components/common/pages/scheduledTasks/table/expandDetails/ExpandDetails.vue +30 -0
  78. package/components/common/pages/scheduledTasks/table/expandDetails/New.vue +61 -0
  79. package/components/common/pages/scheduledTasks/table/{detailsList/DetailsList.vue → expandDetails/Old.vue} +7 -4
  80. package/components/common/pages/scheduledTasks/table/{detailsList/Table.vue → expandDetails/historyRun/HistoryRun.vue} +9 -5
  81. package/components/common/pages/scheduledTasks/table/{detailsList → expandDetails/historyRun}/lib/config/historyRunsTable.ts +4 -2
  82. package/components/common/pages/scheduledTasks/table/{detailsList → expandDetails/historyRun}/lib/config/tableKeys.ts +1 -1
  83. package/components/common/pages/scheduledTasks/table/{detailsList/lib/config/tasksRowDetails.ts → expandDetails/lib/config/expandDetails.ts} +3 -1
  84. package/components/common/pages/scheduledTasks/table/lib/config/scheduledTasksTable.ts +3 -0
  85. package/components/common/pages/tasks/Tasks.vue +125 -125
  86. package/components/common/pages/tasks/table/Table.vue +373 -373
  87. package/components/common/pages/tasks/table/lib/config/config.ts +279 -279
  88. package/components/common/pages/tasks/table/lib/models/interfaces.ts +9 -9
  89. package/components/common/readyToComplete/ReadyToComplete.vue +17 -17
  90. package/components/common/select/radio/RadioGroup.vue +137 -137
  91. package/components/common/spiceConsole/Drawer.vue +420 -420
  92. package/components/common/spiceConsole/SpiceConsole.vue +184 -184
  93. package/components/common/spiceConsole/lib/models/interfaces.ts +5 -5
  94. package/components/common/tools/Actions.vue +207 -207
  95. package/components/common/treeView/TreeView.vue +52 -52
  96. package/components/common/vm/actions/clone/lib/config/steps.ts +295 -295
  97. package/components/common/vm/actions/clone/new/New.vue +438 -438
  98. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/lib/config/options.ts +28 -28
  99. package/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/Memory.vue +283 -283
  100. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/Order.vue +156 -156
  101. package/components/common/vm/actions/common/select/compatibility/Old.vue +107 -107
  102. package/components/common/vm/actions/common/select/createType/lib/models/interfaces.ts +5 -5
  103. package/components/common/vm/actions/common/select/options/New.vue +264 -264
  104. package/components/common/vm/actions/common/select/options/Options.vue +58 -58
  105. package/components/common/vm/actions/common/select/storage/Old.vue +125 -125
  106. package/components/common/vm/actions/common/select/storage/new/lib/models/interfaces.ts +5 -5
  107. package/components/common/vm/actions/common/select/storage/new/lib/utils/utils.ts +21 -21
  108. package/components/common/vm/actions/common/select/template/old/Old.vue +50 -50
  109. package/components/common/vm/actions/editSettings/new/Skeleton.vue +88 -88
  110. package/components/common/wizards/common/compatibility/Compatibility.vue +35 -35
  111. package/components/common/wizards/common/steps/name/Name.vue +178 -178
  112. package/components/common/wizards/common/steps/name/New.vue +221 -221
  113. package/components/common/wizards/common/steps/name/Old.vue +121 -121
  114. package/components/common/wizards/common/steps/name/lib/models/interfaces.ts +4 -4
  115. package/components/common/wizards/common/steps/name/location/New.vue +40 -40
  116. package/components/common/wizards/datastore/add/Add.vue +227 -227
  117. package/components/common/wizards/datastore/add/lib/utils.ts +85 -85
  118. package/components/common/wizards/datastore/add/steps/typeMode/lib/config/typeOptions.ts +43 -43
  119. package/composables/useAppVersion.ts +21 -21
  120. package/composables/useBrowse.ts +24 -24
  121. package/composables/useLocal.ts +6 -6
  122. package/composables/useLocalCommon.ts +39 -39
  123. package/lib/models/types.ts +59 -59
  124. package/package.json +1 -1
  125. package/plugins/console.ts +21 -21
  126. package/plugins/mouse.ts +21 -21
  127. package/plugins/panelStates.ts +70 -70
  128. package/plugins/text.ts +59 -59
  129. package/public/spice-console/application/clientgui.js +854 -854
  130. package/public/spice-console/application/packetfactory.js +211 -211
  131. package/public/spice-console/application/virtualmouse.js +147 -147
  132. package/public/spice-console/lib/images/bitmap.js +203 -203
  133. package/public/spice-console/network/spicechannel.js +440 -440
  134. package/public/spice-console/process/cursorprocess.js +128 -128
  135. package/public/spice-console/process/inputprocess.js +227 -227
  136. package/public/spice-console/process/mainprocess.js +212 -212
  137. package/public/spice-console/run.js +210 -210
  138. package/store/inventory/modules/configure/advancedSystemSettings/actions.ts +122 -0
  139. package/store/inventory/modules/configure/advancedSystemSettings/getters.ts +9 -0
  140. package/store/inventory/modules/configure/advancedSystemSettings/lib/models/interfaces.ts +11 -0
  141. package/store/inventory/modules/configure/advancedSystemSettings/mutations.ts +12 -0
  142. package/store/inventory/modules/configure/advancedSystemSettings/state.ts +9 -0
  143. package/store/inventory/modules/configure/advancedSystemSettings/store.ts +12 -0
  144. package/store/inventory/modules/configure/securityProfile/actions.ts +58 -0
  145. package/store/inventory/modules/configure/securityProfile/getters.ts +10 -0
  146. package/store/inventory/modules/configure/securityProfile/lib/models/interfaces.ts +16 -0
  147. package/store/inventory/modules/configure/securityProfile/mutations.ts +13 -0
  148. package/store/inventory/modules/configure/securityProfile/state.ts +7 -0
  149. package/store/inventory/modules/configure/securityProfile/store.ts +12 -0
  150. package/store/main/mutations.ts +7 -7
  151. package/store/main/state.ts +7 -7
  152. package/store/tasks/mappers/recentTasks.ts +123 -123
  153. package/store/tasks/mutations.ts +82 -82
  154. /package/components/common/pages/scheduledTasks/table/{detailsList → expandDetails/historyRun}/lib/models/types.ts +0 -0
@@ -1,210 +1,210 @@
1
- const getURLParameter = (parameter) => {
2
- const regex = new RegExp(`${parameter}=([^&]+)`)
3
- const match = regex.exec(window.location.pathname)
4
- return match && match[1]
5
- }
6
-
7
- let vmHost = window.location.hostname
8
- if (vmHost === 'localhost') {
9
- vmHost = '10.10.101.107' // Для разработки
10
- }
11
- const vmId = getURLParameter('id')
12
- const vmPort = window.config.public.PORT
13
-
14
- window.app = new Application({
15
- supportHighDPI: false,
16
- })
17
-
18
- // Custom code
19
- let vmWidth = -1
20
- let vmHeight = -1
21
- window.addEventListener('resize', () => {
22
- if (vmWidth !== -1 && vmHeight !== -1) setVmPosition(vmWidth, vmHeight)
23
- })
24
- const setVmPosition = (width, height) => {
25
- // Делаем выравнивание по центру
26
- vmWidth = width
27
- vmHeight = height
28
- const left = Math.max((window.innerWidth - width) / 2, 0)
29
- const top = Math.max((window.innerHeight - height) / 2, 0)
30
- document.getElementById('canvas_0').style.left = left + 'px'
31
- document.getElementById('eventLayer').style.left = left + 'px'
32
- document.getElementById('canvas_0').style.top = top + 'px'
33
- document.getElementById('eventLayer').style.top = top + 'px'
34
- }
35
- // Custom code end
36
-
37
- function start() {
38
- wdi.graphicDebug = new wdi.GraphicDebug({ debugMode: false })
39
- let cancelReconnection = false
40
- let cancelFreezeTimer, cancelReconnectionTimer
41
-
42
- const handleWindowAction = function (action, params) {
43
- if (action === 'windowClosed') {
44
- $(params.canvas).remove()
45
- $(params.eventLayer).remove()
46
- } else if (action === 'windowMoved') {
47
- $(params.canvas).css({
48
- top: params.info.top + 'px',
49
- left: params.info.left + 'px',
50
- })
51
- $(params.eventLayer).css({
52
- top: params.info.top + 'px',
53
- left: params.info.left + 'px',
54
- })
55
- } else if (action === 'init' || action === 'windowCreated') {
56
- let item = null
57
- let canvas = null
58
- let eventlayer = null
59
- const body = $('body')
60
-
61
- for (let i in params) {
62
- item = params[i]
63
- const position = item.position * 2
64
- canvas = $(item.canvas).css({
65
- zIndex: 10000 - position - 1,
66
- position: 'absolute',
67
- top: item.info.top + 'px',
68
- left: item.info.left + 'px',
69
- })
70
- eventlayer = $(item.eventLayer).css({
71
- top: item.info.top + 'px',
72
- left: item.info.left + 'px',
73
- zIndex: 10000 - position,
74
- })
75
- body.append(canvas)
76
- body.append(eventlayer)
77
- }
78
- } else if (action === 'ready') {
79
- app.setReconnecting(false)
80
- if (cancelReconnectionTimer?.clearTimeout) {
81
- cancelReconnectionTimer()
82
- cancelReconnectionTimer = false
83
- }
84
- const width = $(window).width()
85
- const height = $(window).height()
86
-
87
- app.sendCommand(
88
- 'setResolution',
89
- app.toSpiceResolution({
90
- width: width,
91
- height: height,
92
- })
93
- )
94
- if (wdi.IntegrationBenchmarkEnabled) {
95
- $('#integrationBenchmark').css({ display: 'inline' })
96
- $('#launchWordButton').prop('disabled', false)
97
- }
98
- } else if (action === 'resolution') {
99
- // Делаем выравнивание по центру
100
- const { 0: width, 1: height } = params
101
- setVmPosition(width, height)
102
- } else if (action === 'windowResized') {
103
- // Делаем выравнивание по центру
104
- const { 0: width } = params
105
- const left = (window.innerWidth - width) / 2
106
- if (left >= 0) {
107
- document.getElementById('canvas_0').style.left = left + 'px'
108
- document.getElementById('eventLayer').style.left = left + 'px'
109
- }
110
- } else if (action === 'windowMinimized') {
111
- $(params.canvas).css({ display: 'none' })
112
- $(params.eventLayer).css({ display: 'none' })
113
- } else if (action === 'windowMaximized') {
114
- $(params.canvas).css({
115
- top: params.info.top + 'px',
116
- left: params.info.left + 'px',
117
- })
118
- $(params.eventLayer).css({
119
- top: params.info.top + 'px',
120
- left: params.info.left + 'px',
121
- })
122
- } else if (action === 'windowRestored') {
123
- $(params.canvas).css({ display: 'block' })
124
- $(params.eventLayer).css({ display: 'block' })
125
- $(params.canvas).css({
126
- top: params.info.top + 'px',
127
- left: params.info.left + 'px',
128
- })
129
- $(params.eventLayer).css({
130
- top: params.info.top + 'px',
131
- left: params.info.left + 'px',
132
- })
133
- } else if (action === 'windowFocused') {
134
- //debugger; //eyeos should move the window to front!
135
- } else if (action === 'timeLapseDetected') {
136
- wdi.Debug.log('Detected time lapse of ', params, 'seconds')
137
- } else if (action === 'error') {
138
- if (!app.getReconnecting()) {
139
- if (!cancelFreezeTimer) {
140
- cancelFreezeTimer = setTimeout(function () {
141
- console.log('cancelFreeze')
142
- app.cancelFreeze()
143
- }, 10000)
144
- }
145
- if (!cancelReconnectionTimer) {
146
- cancelReconnectionTimer = setTimeout(function () {
147
- console.log('cancel reconnection')
148
- cancelReconnection = true
149
- }, 60000)
150
- }
151
- }
152
-
153
- setTimeout(function () {
154
- if (!cancelReconnection) {
155
- console.log('Trying reconnect ', Date.now())
156
- app.reconnect({
157
- freeze: true,
158
- })
159
- }
160
- }, 1000)
161
- }
162
- }
163
-
164
- $(window)['resize'](function () {
165
- app.sendCommand(
166
- 'setResolution',
167
- app.toSpiceResolution({
168
- width: $(window).width(),
169
- height: $(window).height(),
170
- })
171
- )
172
- })
173
-
174
- const runParams = {
175
- callback: handleWindowAction,
176
- context: this,
177
- host: vmHost,
178
- port: vmPort,
179
- protocol: 'wss',
180
- // 'vmToken': getURLParameter('vmtoken') || '',
181
- token: 'password',
182
- vmHost: vmHost,
183
- vmPort: vmPort,
184
- vmid: vmId,
185
- useBus: false,
186
- busHost: 'localhost',
187
- busPort: 61613,
188
- busSubscriptions: ['/topic/00000000-0000-0000-0000-000000000000'],
189
- busUser: '00000000-0000-0000-0000-000000000000',
190
- busPass: 'potato',
191
- layout: 'es',
192
- useWorkers: true,
193
- seamlessDesktopIntegration: false,
194
- connectionControl: false,
195
- heartbeatToken: 'heartbeat',
196
- heartbeatTimeout: 4000, //miliseconds
197
- externalClipboardHandling: false,
198
- disableClipboard: false,
199
- layer: document.getElementById('vmw'),
200
- // vmInfoToken: getURLParameter('vmInfoToken'),
201
- disableMessageBuffering: true,
202
- clientOffset: {
203
- x: 0,
204
- y: 0,
205
- },
206
- }
207
- app.run(runParams)
208
- }
209
-
210
- $(document).ready(start)
1
+ const getURLParameter = (parameter) => {
2
+ const regex = new RegExp(`${parameter}=([^&]+)`)
3
+ const match = regex.exec(window.location.pathname)
4
+ return match && match[1]
5
+ }
6
+
7
+ let vmHost = window.location.hostname
8
+ if (vmHost === 'localhost') {
9
+ vmHost = '10.10.101.107' // Для разработки
10
+ }
11
+ const vmId = getURLParameter('id')
12
+ const vmPort = window.config.public.PORT
13
+
14
+ window.app = new Application({
15
+ supportHighDPI: false,
16
+ })
17
+
18
+ // Custom code
19
+ let vmWidth = -1
20
+ let vmHeight = -1
21
+ window.addEventListener('resize', () => {
22
+ if (vmWidth !== -1 && vmHeight !== -1) setVmPosition(vmWidth, vmHeight)
23
+ })
24
+ const setVmPosition = (width, height) => {
25
+ // Делаем выравнивание по центру
26
+ vmWidth = width
27
+ vmHeight = height
28
+ const left = Math.max((window.innerWidth - width) / 2, 0)
29
+ const top = Math.max((window.innerHeight - height) / 2, 0)
30
+ document.getElementById('canvas_0').style.left = left + 'px'
31
+ document.getElementById('eventLayer').style.left = left + 'px'
32
+ document.getElementById('canvas_0').style.top = top + 'px'
33
+ document.getElementById('eventLayer').style.top = top + 'px'
34
+ }
35
+ // Custom code end
36
+
37
+ function start() {
38
+ wdi.graphicDebug = new wdi.GraphicDebug({ debugMode: false })
39
+ let cancelReconnection = false
40
+ let cancelFreezeTimer, cancelReconnectionTimer
41
+
42
+ const handleWindowAction = function (action, params) {
43
+ if (action === 'windowClosed') {
44
+ $(params.canvas).remove()
45
+ $(params.eventLayer).remove()
46
+ } else if (action === 'windowMoved') {
47
+ $(params.canvas).css({
48
+ top: params.info.top + 'px',
49
+ left: params.info.left + 'px',
50
+ })
51
+ $(params.eventLayer).css({
52
+ top: params.info.top + 'px',
53
+ left: params.info.left + 'px',
54
+ })
55
+ } else if (action === 'init' || action === 'windowCreated') {
56
+ let item = null
57
+ let canvas = null
58
+ let eventlayer = null
59
+ const body = $('body')
60
+
61
+ for (let i in params) {
62
+ item = params[i]
63
+ const position = item.position * 2
64
+ canvas = $(item.canvas).css({
65
+ zIndex: 10000 - position - 1,
66
+ position: 'absolute',
67
+ top: item.info.top + 'px',
68
+ left: item.info.left + 'px',
69
+ })
70
+ eventlayer = $(item.eventLayer).css({
71
+ top: item.info.top + 'px',
72
+ left: item.info.left + 'px',
73
+ zIndex: 10000 - position,
74
+ })
75
+ body.append(canvas)
76
+ body.append(eventlayer)
77
+ }
78
+ } else if (action === 'ready') {
79
+ app.setReconnecting(false)
80
+ if (cancelReconnectionTimer?.clearTimeout) {
81
+ cancelReconnectionTimer()
82
+ cancelReconnectionTimer = false
83
+ }
84
+ const width = $(window).width()
85
+ const height = $(window).height()
86
+
87
+ app.sendCommand(
88
+ 'setResolution',
89
+ app.toSpiceResolution({
90
+ width: width,
91
+ height: height,
92
+ })
93
+ )
94
+ if (wdi.IntegrationBenchmarkEnabled) {
95
+ $('#integrationBenchmark').css({ display: 'inline' })
96
+ $('#launchWordButton').prop('disabled', false)
97
+ }
98
+ } else if (action === 'resolution') {
99
+ // Делаем выравнивание по центру
100
+ const { 0: width, 1: height } = params
101
+ setVmPosition(width, height)
102
+ } else if (action === 'windowResized') {
103
+ // Делаем выравнивание по центру
104
+ const { 0: width } = params
105
+ const left = (window.innerWidth - width) / 2
106
+ if (left >= 0) {
107
+ document.getElementById('canvas_0').style.left = left + 'px'
108
+ document.getElementById('eventLayer').style.left = left + 'px'
109
+ }
110
+ } else if (action === 'windowMinimized') {
111
+ $(params.canvas).css({ display: 'none' })
112
+ $(params.eventLayer).css({ display: 'none' })
113
+ } else if (action === 'windowMaximized') {
114
+ $(params.canvas).css({
115
+ top: params.info.top + 'px',
116
+ left: params.info.left + 'px',
117
+ })
118
+ $(params.eventLayer).css({
119
+ top: params.info.top + 'px',
120
+ left: params.info.left + 'px',
121
+ })
122
+ } else if (action === 'windowRestored') {
123
+ $(params.canvas).css({ display: 'block' })
124
+ $(params.eventLayer).css({ display: 'block' })
125
+ $(params.canvas).css({
126
+ top: params.info.top + 'px',
127
+ left: params.info.left + 'px',
128
+ })
129
+ $(params.eventLayer).css({
130
+ top: params.info.top + 'px',
131
+ left: params.info.left + 'px',
132
+ })
133
+ } else if (action === 'windowFocused') {
134
+ //debugger; //eyeos should move the window to front!
135
+ } else if (action === 'timeLapseDetected') {
136
+ wdi.Debug.log('Detected time lapse of ', params, 'seconds')
137
+ } else if (action === 'error') {
138
+ if (!app.getReconnecting()) {
139
+ if (!cancelFreezeTimer) {
140
+ cancelFreezeTimer = setTimeout(function () {
141
+ console.log('cancelFreeze')
142
+ app.cancelFreeze()
143
+ }, 10000)
144
+ }
145
+ if (!cancelReconnectionTimer) {
146
+ cancelReconnectionTimer = setTimeout(function () {
147
+ console.log('cancel reconnection')
148
+ cancelReconnection = true
149
+ }, 60000)
150
+ }
151
+ }
152
+
153
+ setTimeout(function () {
154
+ if (!cancelReconnection) {
155
+ console.log('Trying reconnect ', Date.now())
156
+ app.reconnect({
157
+ freeze: true,
158
+ })
159
+ }
160
+ }, 1000)
161
+ }
162
+ }
163
+
164
+ $(window)['resize'](function () {
165
+ app.sendCommand(
166
+ 'setResolution',
167
+ app.toSpiceResolution({
168
+ width: $(window).width(),
169
+ height: $(window).height(),
170
+ })
171
+ )
172
+ })
173
+
174
+ const runParams = {
175
+ callback: handleWindowAction,
176
+ context: this,
177
+ host: vmHost,
178
+ port: vmPort,
179
+ protocol: 'wss',
180
+ // 'vmToken': getURLParameter('vmtoken') || '',
181
+ token: 'password',
182
+ vmHost: vmHost,
183
+ vmPort: vmPort,
184
+ vmid: vmId,
185
+ useBus: false,
186
+ busHost: 'localhost',
187
+ busPort: 61613,
188
+ busSubscriptions: ['/topic/00000000-0000-0000-0000-000000000000'],
189
+ busUser: '00000000-0000-0000-0000-000000000000',
190
+ busPass: 'potato',
191
+ layout: 'es',
192
+ useWorkers: true,
193
+ seamlessDesktopIntegration: false,
194
+ connectionControl: false,
195
+ heartbeatToken: 'heartbeat',
196
+ heartbeatTimeout: 4000, //miliseconds
197
+ externalClipboardHandling: false,
198
+ disableClipboard: false,
199
+ layer: document.getElementById('vmw'),
200
+ // vmInfoToken: getURLParameter('vmInfoToken'),
201
+ disableMessageBuffering: true,
202
+ clientOffset: {
203
+ x: 0,
204
+ y: 0,
205
+ },
206
+ }
207
+ app.run(runParams)
208
+ }
209
+
210
+ $(document).ready(start)
@@ -0,0 +1,122 @@
1
+ import type { UI_I_RefreshStack } from '~/store/main/lib/interfaces'
2
+ import type { UI_I_Options } from '~/lib/models/composables/useMyFetch/interfaces'
3
+ import type {
4
+ API_UI_I_Error,
5
+ API_UI_I_Response,
6
+ UI_I_CommitOptions,
7
+ } from '~/lib/models/store/interfaces'
8
+
9
+ export default {
10
+ async A_GET_SETTINGS(
11
+ context: {
12
+ commit: <T>(arg0: string, arg1: T) => void
13
+ dispatch: (
14
+ arg0: string,
15
+ arg1: UI_I_RefreshStack,
16
+ arg2: UI_I_CommitOptions
17
+ ) => void
18
+ },
19
+ payload: string
20
+ ): Promise<API_UI_I_Error | void> {
21
+ const url = `ui/hosts/${payload}/advancedSystemSettings`
22
+ const options: UI_I_Options = {
23
+ method: 'GET',
24
+ key: Date.now().toString(),
25
+ onResponse({ response }: API_UI_I_Response<any>) {
26
+ const data = response._data
27
+ context.commit<any>('M_SET_SETTINGS', data)
28
+ },
29
+ }
30
+
31
+ // TODO удалить после апи
32
+ const data: any = {
33
+ items: [
34
+ {
35
+ key: 'testInt',
36
+ value: 400,
37
+ summary: 'Summary text',
38
+ type: 'int',
39
+ validation: {
40
+ max: 32768,
41
+ min: 100,
42
+ valueIsReadonly: false,
43
+ },
44
+ },
45
+ {
46
+ key: 'testBoolean',
47
+ value: false,
48
+ summary: 'Summary text',
49
+ type: 'boolean',
50
+ validation: {
51
+ valueIsReadonly: false,
52
+ },
53
+ },
54
+ {
55
+ key: 'testString',
56
+ value: 'Value string',
57
+ summary: 'Summary text',
58
+ type: 'string',
59
+ validation: {
60
+ valueIsReadonly: false,
61
+ },
62
+ },
63
+ {
64
+ key: 'testSelect',
65
+ value: 'key1',
66
+ summary: 'Summary text',
67
+ type: 'select',
68
+ validation: {
69
+ valueIsReadonly: false,
70
+ },
71
+ options: [
72
+ { key: 'none', value: 'none' },
73
+ { key: 'key1', value: 'option 1' },
74
+ { key: 'key2', value: 'option 2' },
75
+ ],
76
+ },
77
+ ],
78
+ total_items: 1,
79
+ total_pages: 1,
80
+ }
81
+ context.commit<any>('M_SET_SETTINGS', data)
82
+
83
+ const { error } = await useMyFetch<never, API_UI_I_Error>(url, options)
84
+
85
+ if (error.value?.data?.error_code) {
86
+ Promise.reject(error.value.data.error_message)
87
+ }
88
+
89
+ context.dispatch(
90
+ 'main/A_ADD_IN_GLOBAL_REFRESH',
91
+ { key: 'hostAdvancedSystemSettings', url, options },
92
+ { root: true }
93
+ )
94
+ },
95
+ async A_UPDATE_SETTINGS(
96
+ context: {
97
+ commit: <T>(arg0: string, arg1: T) => void
98
+ },
99
+ payload: any
100
+ ): Promise<API_UI_I_Error | void> {
101
+ const {host, settings} = payload
102
+ const url = `ui/hosts/${host}/advancedSystemSettings`
103
+ const options: UI_I_Options = {
104
+ method: 'PUT',
105
+ key: Date.now().toString(),
106
+ body: settings,
107
+ onResponse({ response }: API_UI_I_Response<any>) {
108
+ const data = response._data
109
+ context.commit<any>('M_SET_SETTINGS', data)
110
+ },
111
+ }
112
+
113
+ const { error } = await useMyFetch<never, API_UI_I_Error>(url, options)
114
+
115
+ // TODO remove
116
+ context.commit<any>('M_SET_SETTINGS', settings)
117
+
118
+ if (error.value?.data?.error_code) {
119
+ Promise.reject(error.value.data.error_message)
120
+ }
121
+ },
122
+ }
@@ -0,0 +1,9 @@
1
+ import type {
2
+ UI_I_AdvancedSystemSettingsState
3
+ } from "~/store/inventory/modules/configure/advancedSystemSettings/lib/models/interfaces";
4
+
5
+ export default {
6
+ getSettings: (
7
+ state: UI_I_AdvancedSystemSettingsState
8
+ ): any | null => state.settings,
9
+ }
@@ -0,0 +1,11 @@
1
+
2
+ // export interface UI_API_I_SecurityProfileData {
3
+ // lockdownMode: UI_API_I_LockdownModeData
4
+ // }
5
+ //
6
+ // export interface UI_I_LockdownModeData extends UI_API_I_LockdownModeData {}
7
+
8
+
9
+ export interface UI_I_AdvancedSystemSettingsState {
10
+ settings: any
11
+ }
@@ -0,0 +1,12 @@
1
+ import type {
2
+ UI_I_AdvancedSystemSettingsState,
3
+ } from '~/store/inventory/modules/configure/advancedSystemSettings/lib/models/interfaces'
4
+
5
+ export default {
6
+ M_SET_SETTINGS(
7
+ state: UI_I_AdvancedSystemSettingsState,
8
+ payload: any
9
+ ): void {
10
+ state.settings = payload
11
+ },
12
+ }
@@ -0,0 +1,9 @@
1
+ import type {
2
+ UI_I_AdvancedSystemSettingsState
3
+ } from "~/store/inventory/modules/configure/advancedSystemSettings/lib/models/interfaces";
4
+
5
+ const state: UI_I_AdvancedSystemSettingsState = {
6
+ settings: null,
7
+ }
8
+
9
+ export default state
@@ -0,0 +1,12 @@
1
+ import state from './state'
2
+ import actions from './actions'
3
+ import mutations from './mutations'
4
+ import getters from './getters'
5
+
6
+ export default {
7
+ namespaced: true,
8
+ state,
9
+ getters,
10
+ mutations,
11
+ actions,
12
+ }
@@ -0,0 +1,58 @@
1
+ import type { UI_I_RefreshStack } from '~/store/main/lib/interfaces'
2
+ import type { UI_I_Options } from '~/lib/models/composables/useMyFetch/interfaces'
3
+ import type {
4
+ API_UI_I_Error,
5
+ API_UI_I_Response,
6
+ UI_I_CommitOptions,
7
+ } from '~/lib/models/store/interfaces'
8
+ import type {
9
+ UI_I_SecurityProfileData,
10
+ UI_API_I_SecurityProfileData,
11
+ } from '~/store/inventory/modules/configure/securityProfile/lib/models/interfaces'
12
+
13
+ export default {
14
+ async A_GET_SECURITY_PROFILE(
15
+ context: {
16
+ commit: <T>(arg0: string, arg1: T) => void
17
+ dispatch: (
18
+ arg0: string,
19
+ arg1: UI_I_RefreshStack,
20
+ arg2: UI_I_CommitOptions
21
+ ) => void
22
+ },
23
+ payload: string
24
+ ): Promise<API_UI_I_Error | void> {
25
+ const url = `ui/hosts/${payload}/securityProfile`
26
+ const options: UI_I_Options = {
27
+ method: 'GET',
28
+ key: Date.now().toString(),
29
+ onResponse({
30
+ response,
31
+ }: API_UI_I_Response<UI_API_I_SecurityProfileData>) {
32
+ const data = response._data
33
+ context.commit<UI_I_SecurityProfileData>('M_SET_SECURITY_PROFILE', data)
34
+ },
35
+ }
36
+
37
+ // TODO удалить после апи
38
+ const data: UI_API_I_SecurityProfileData = {
39
+ lockdownMode: {
40
+ lockdownMode: 'disabled',
41
+ exceptionUsers: ['user 1', 'user 2'],
42
+ },
43
+ }
44
+ context.commit<UI_I_SecurityProfileData>('M_SET_SECURITY_PROFILE', data)
45
+
46
+ const { error } = await useMyFetch<never, API_UI_I_Error>(url, options)
47
+
48
+ if (error.value?.data?.error_code) {
49
+ Promise.reject(error.value.data.error_message)
50
+ }
51
+
52
+ context.dispatch(
53
+ 'main/A_ADD_IN_GLOBAL_REFRESH',
54
+ { key: 'hostSystemSecurityProfile', url, options },
55
+ { root: true }
56
+ )
57
+ },
58
+ }
@@ -0,0 +1,10 @@
1
+ import type {
2
+ UI_I_SecurityProfileData,
3
+ UI_I_SecurityProfileState,
4
+ } from '~/store/inventory/modules/configure/securityProfile/lib/models/interfaces'
5
+
6
+ export default {
7
+ getSystemSecurityProfile: (
8
+ state: UI_I_SecurityProfileState
9
+ ): UI_I_SecurityProfileData | null => state.securityProfileData,
10
+ }