bfg-common 1.5.421 → 1.5.423

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 (157) 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/assets/localization/local_be.json +7 -3
  7. package/assets/localization/local_en.json +12 -8
  8. package/assets/localization/local_hy.json +8 -4
  9. package/assets/localization/local_kk.json +7 -3
  10. package/assets/localization/local_ru.json +12 -8
  11. package/assets/localization/local_zh.json +7 -3
  12. package/assets/scss/common/theme.scss +0 -214
  13. package/components/atoms/TheIcon3.vue +50 -50
  14. package/components/atoms/collapse/CollapseNav.vue +170 -170
  15. package/components/atoms/perPage/PerPage.vue +58 -58
  16. package/components/atoms/table/dataGrid/lib/config/settingsTable.ts +94 -94
  17. package/components/atoms/table/dataGrid/lib/utils/export.ts +16 -16
  18. package/components/common/browse/blocks/contents/filesNew/Skeleton.vue +18 -18
  19. package/components/common/context/lib/models/interfaces.ts +33 -33
  20. package/components/common/diagramMain/modals/lib/config/networkModal.ts +398 -398
  21. package/components/common/layout/theHeader/helpMenu/About.vue +82 -82
  22. package/components/common/pages/backups/Backups.vue +102 -102
  23. package/components/common/pages/backups/DetailView.vue +52 -52
  24. package/components/common/pages/backups/lib/models/interfaces.ts +36 -36
  25. package/components/common/pages/backups/modals/Modals.vue +231 -226
  26. package/components/common/pages/backups/modals/createBackup/CreateBackup.vue +376 -353
  27. package/components/common/pages/backups/modals/createBackup/configuration/Configuration.vue +29 -29
  28. package/components/common/pages/backups/modals/createBackup/configuration/backupWindow/BackupWindow.vue +26 -26
  29. package/components/common/pages/backups/modals/createBackup/configuration/maxBandwidth/MaxBandwidth.vue +66 -66
  30. package/components/common/pages/backups/modals/createBackup/configuration/maxBandwidth/lib/config/options.ts +6 -6
  31. package/components/common/pages/backups/modals/createBackup/configuration/strategy/Strategy.vue +35 -35
  32. package/components/common/pages/backups/modals/createBackup/datastores/Datastores.vue +59 -59
  33. package/components/common/pages/backups/modals/createBackup/datastores/tableView/TableView.vue +95 -95
  34. package/components/common/pages/backups/modals/createBackup/datastores/tableView/lib/config/table.ts +119 -119
  35. package/components/common/pages/backups/modals/createBackup/disks/Disks.vue +2 -2
  36. package/components/common/pages/backups/modals/createBackup/disks/tableView/TableView.vue +7 -4
  37. package/components/common/pages/backups/modals/createBackup/disks/tableView/lib/config/table.ts +117 -117
  38. package/components/common/pages/backups/modals/createBackup/general/General.vue +135 -48
  39. package/components/common/pages/backups/modals/createBackup/lib/config/steps.ts +117 -117
  40. package/components/common/pages/backups/modals/createBackup/lib/config/strategyOptions.ts +12 -12
  41. package/components/common/pages/backups/modals/lib/config/restore.ts +115 -115
  42. package/components/common/pages/backups/modals/lib/models/interfaces.ts +186 -185
  43. package/components/common/pages/backups/modals/restore/Restore.vue +417 -417
  44. package/components/common/pages/backups/modals/restore/disks/Disks.vue +27 -27
  45. package/components/common/pages/backups/modals/restore/disks/tableView/TableView.vue +102 -102
  46. package/components/common/pages/backups/modals/restore/disks/tableView/lib/config/table.ts +117 -117
  47. package/components/common/pages/backups/modals/restore/lib/config/steps.ts +108 -108
  48. package/components/common/pages/backups/modals/restore/name/Name.vue +160 -160
  49. package/components/common/pages/backups/modals/restore/name/lib/models/interfaces.ts +6 -6
  50. package/components/common/pages/backups/modals/restore/networks/Networks.vue +67 -67
  51. package/components/common/pages/backups/modals/restore/networks/table/Table.vue +214 -214
  52. package/components/common/pages/backups/modals/restore/types/lib/config/typeOptions.ts +25 -25
  53. package/components/common/pages/backups/tools/Tools.vue +75 -75
  54. package/components/common/pages/backups/tools/lib/config/tabs.ts +36 -36
  55. package/components/common/pages/home/headline/HeadlineOld.vue +42 -42
  56. package/components/common/pages/home/lib/models/interfaces.ts +48 -48
  57. package/components/common/pages/home/widgets/hosts/Hosts.vue +27 -27
  58. package/components/common/pages/home/widgets/hosts/lib/config/items.ts +23 -23
  59. package/components/common/pages/home/widgets/vms/VmsOld.vue +35 -35
  60. package/components/common/pages/home/widgets/vms/lib/config/items.ts +19 -19
  61. package/components/common/pages/scheduledTasks/lib/utils/utils.ts +84 -84
  62. package/components/common/readyToComplete/ReadyToComplete.vue +17 -17
  63. package/components/common/select/radio/RadioGroup.vue +137 -137
  64. package/components/common/spiceConsole/Drawer.vue +381 -381
  65. package/components/common/spiceConsole/SpiceConsole.vue +127 -127
  66. package/components/common/spiceConsole/lib/models/interfaces.ts +5 -5
  67. package/components/common/split/horizontal/HorizontalNew.vue +22 -5
  68. package/components/common/split/horizontal/HorizontalOld.vue +8 -1
  69. package/components/common/split/vertical/VerticalNew.vue +13 -2
  70. package/components/common/summary/notification/NotificationNew.vue +20 -4
  71. package/components/common/titleBar/titleBarNew/notification/Notification.vue +31 -0
  72. package/components/common/tools/Actions.vue +207 -207
  73. package/components/common/tooltip/Help.vue +14 -1
  74. package/components/common/treeView/TreeView.vue +52 -52
  75. package/components/common/vm/actions/add/New.vue +10 -0
  76. package/components/common/vm/actions/add/folderTreeView/FolderTreeView.vue +72 -72
  77. package/components/common/vm/actions/add/folderTreeView/New.vue +40 -40
  78. package/components/common/vm/actions/clone/Clone.vue +11 -0
  79. package/components/common/vm/actions/clone/lib/config/steps.ts +291 -291
  80. package/components/common/vm/actions/clone/toTemplate/ToTemplate.vue +11 -0
  81. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardwareNew.vue +26 -0
  82. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/Media.vue +25 -25
  83. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaNew.vue +78 -70
  84. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaOld.vue +50 -50
  85. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/CpuNew.vue +8 -0
  86. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/Shares.vue +140 -140
  87. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/lib/config/options.ts +28 -28
  88. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/tooltip/TooltipNew.vue +2 -0
  89. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDiskNew.vue +15 -0
  90. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/file/FileNew.vue +8 -0
  91. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/Location.vue +154 -154
  92. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/LocationOld.vue +85 -85
  93. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/maximumSize/MaximumSize.vue +23 -23
  94. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/maximumSize/MaximumSizeNew.vue +8 -0
  95. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddress.vue +119 -119
  96. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoNew.vue +66 -66
  97. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoOld.vue +62 -62
  98. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIo.vue +31 -31
  99. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIoOld.vue +76 -76
  100. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/Note.vue +15 -15
  101. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteNew.vue +42 -42
  102. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteOld.vue +30 -30
  103. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGridOld.vue +84 -84
  104. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/Other.vue +16 -16
  105. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/inputDevices/InputDevicesNew.vue +10 -0
  106. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/numberDisplays/NumberDisplays.vue +53 -53
  107. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/delay/Delay.vue +32 -32
  108. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/Firmware.vue +60 -60
  109. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/Order.vue +174 -174
  110. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/Keymap.vue +32 -32
  111. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/KeymapOld.vue +44 -44
  112. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/Password.vue +103 -103
  113. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirection.vue +28 -28
  114. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionOld.vue +44 -44
  115. package/components/common/vm/actions/common/select/compatibility/New.vue +18 -0
  116. package/components/common/vm/actions/common/select/compatibility/Old.vue +107 -107
  117. package/components/common/vm/actions/common/select/computeResource/ComputeResource.vue +143 -143
  118. package/components/common/vm/actions/common/select/computeResource/New.vue +184 -168
  119. package/components/common/vm/actions/common/select/computeResource/treeView/TreeView.vue +131 -131
  120. package/components/common/vm/actions/common/select/createType/CreateType.vue +38 -38
  121. package/components/common/vm/actions/common/select/createType/New.vue +16 -0
  122. package/components/common/vm/actions/common/select/createType/Old.vue +9 -0
  123. package/components/common/vm/actions/common/select/createType/lib/config/items.ts +48 -48
  124. package/components/common/vm/actions/common/select/createType/lib/models/interfaces.ts +5 -5
  125. package/components/common/vm/actions/common/select/name/New.vue +20 -0
  126. package/components/common/vm/actions/common/select/os/New.vue +10 -0
  127. package/components/common/vm/actions/common/select/os/Old.vue +152 -152
  128. package/components/common/vm/actions/common/select/os/Os.vue +139 -139
  129. package/components/common/vm/actions/common/select/storage/new/New.vue +32 -0
  130. package/components/common/vm/actions/common/select/storage/new/lib/models/interfaces.ts +5 -5
  131. package/components/common/vm/actions/common/select/storage/new/lib/utils/utils.ts +21 -21
  132. package/components/common/vm/actions/common/select/template/old/Old.vue +50 -50
  133. package/components/common/vm/actions/common/select/template/treeView/New.vue +10 -0
  134. package/components/common/vm/actions/editSettings/new/Skeleton.vue +88 -88
  135. package/components/common/vmt/actions/add/Old.vue +10 -0
  136. package/components/common/vmt/actions/add/lib/models/interfaces.ts +23 -23
  137. package/components/common/wizards/datastore/add/steps/nameAndConfigure/_serversList/DeletePopover.vue +8 -0
  138. package/components/common/wizards/datastore/add/steps/nameAndDevice/table/new/New.vue +11 -0
  139. package/components/common/wizards/datastore/add/steps/typeMode/lib/config/typeOptions.ts +43 -43
  140. package/components/common/wizards/network/add/modals/SelectStandardSwitch.vue +17 -6
  141. package/components/common/wizards/network/add/modals/SelectSwitch.vue +17 -6
  142. package/components/common/wizards/vm/migrate/lib/config/steps.ts +157 -157
  143. package/components/common/wizards/vm/migrate/lib/validations.ts +68 -68
  144. package/components/common/wizards/vm/migrate/select/network/Network.vue +103 -103
  145. package/components/common/wizards/vm/migrate/select/type/lib/config/typeOptions.ts +45 -45
  146. package/composables/productNameLocal.ts +30 -30
  147. package/composables/useAppVersion.ts +21 -21
  148. package/package.json +1 -1
  149. package/plugins/date.ts +233 -233
  150. package/plugins/panelStates.ts +70 -70
  151. package/plugins/text.ts +59 -59
  152. package/public/spice-console/lib/images/bitmap.js +203 -203
  153. package/public/spice-console/network/spicechannel.js +390 -390
  154. package/store/main/mutations.ts +7 -7
  155. package/store/main/state.ts +7 -7
  156. package/components/common/pages/backups/modals/createBackup/disks/tableView/lib/models/interfaces.ts +0 -4
  157. package/components/common/wizards/network/add/modals/lib/models/interfaces.ts +0 -21
@@ -1,70 +1,78 @@
1
- <template>
2
- <ui-stack-block :has-children="false">
3
- <template #stackBlockKey>
4
- {{ localization.common.cdDvdMedia }}
5
- </template>
6
- <template #stackBlockContent>
7
- <div class="media-content flex-align-center">
8
- <ui-input
9
- id="vm-wizard-dvd-media-input"
10
- v-model="cdDvdMedia"
11
- test-id="vm-wizard-dvd-media-input"
12
- type="text"
13
- size="sm"
14
- disabled
15
- />
16
- <ui-button
17
- id="vm-wizard-dvd-media-button"
18
- test-id="vm-wizard-dvd-media-button"
19
- size="sm"
20
- class="media-button"
21
- variant="text"
22
- @click="emits('browse')"
23
- >
24
- {{ localization.vmWizard.browse }}
25
- </ui-button>
26
- <div class="divider"></div>
27
- <ui-button
28
- id="vm-wizard-dvd-media-eject"
29
- data-id="vm-wizard-dvd-media-eject"
30
- size="sm"
31
- class="eject-button"
32
- variant="text"
33
- type="error"
34
- @click="cdDvdMedia = ''"
35
- >
36
- {{ localization.vmWizard.eject }}
37
- </ui-button>
38
- </div>
39
- </template>
40
- </ui-stack-block>
41
- </template>
42
-
43
- <script setup lang="ts">
44
- import type { UI_I_Localization } from '~/lib/models/interfaces'
45
-
46
- const cdDvdMedia = defineModel<string>('cdDvdMedia', { required: true })
47
-
48
- const emits = defineEmits<{
49
- (event: 'browse'): void
50
- }>()
51
-
52
- const localization = computed<UI_I_Localization>(() => useLocal())
53
- </script>
54
-
55
- <style lang="scss" scoped>
56
- .media-content {
57
- gap: 12px;
58
-
59
- .media-button,
60
- .eject-button {
61
- white-space: nowrap;
62
- padding: 0;
63
- }
64
- .divider {
65
- width: 1px;
66
- height: 20px;
67
- background-color: var(--media-content-border-color);
68
- }
69
- }
70
- </style>
1
+ <template>
2
+ <ui-stack-block :has-children="false">
3
+ <template #stackBlockKey>
4
+ {{ localization.common.cdDvdMedia }}
5
+ </template>
6
+ <template #stackBlockContent>
7
+ <div class="media-content flex-align-center">
8
+ <ui-input
9
+ id="vm-wizard-dvd-media-input"
10
+ v-model="cdDvdMedia"
11
+ test-id="vm-wizard-dvd-media-input"
12
+ type="text"
13
+ size="sm"
14
+ disabled
15
+ />
16
+ <ui-button
17
+ id="vm-wizard-dvd-media-button"
18
+ test-id="vm-wizard-dvd-media-button"
19
+ size="sm"
20
+ class="media-button"
21
+ variant="text"
22
+ @click="emits('browse')"
23
+ >
24
+ {{ localization.vmWizard.browse }}
25
+ </ui-button>
26
+ <div class="divider"></div>
27
+ <ui-button
28
+ id="vm-wizard-dvd-media-eject"
29
+ data-id="vm-wizard-dvd-media-eject"
30
+ size="sm"
31
+ class="eject-button"
32
+ variant="text"
33
+ type="error"
34
+ @click="cdDvdMedia = ''"
35
+ >
36
+ {{ localization.vmWizard.eject }}
37
+ </ui-button>
38
+ </div>
39
+ </template>
40
+ </ui-stack-block>
41
+ </template>
42
+
43
+ <script setup lang="ts">
44
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
45
+
46
+ const cdDvdMedia = defineModel<string>('cdDvdMedia', { required: true })
47
+
48
+ const emits = defineEmits<{
49
+ (event: 'browse'): void
50
+ }>()
51
+
52
+ const localization = computed<UI_I_Localization>(() => useLocal())
53
+ </script>
54
+
55
+ <style>
56
+ :root {
57
+ --media-content-border-color: #e9ebeda3;
58
+ }
59
+ :root.dark-theme {
60
+ --media-content-border-color: #e9ebed1f;
61
+ }
62
+ </style>
63
+ <style lang="scss" scoped>
64
+ .media-content {
65
+ gap: 12px;
66
+
67
+ .media-button,
68
+ .eject-button {
69
+ white-space: nowrap;
70
+ padding: 0;
71
+ }
72
+ .divider {
73
+ width: 1px;
74
+ height: 20px;
75
+ background-color: var(--media-content-border-color);
76
+ }
77
+ }
78
+ </style>
@@ -1,50 +1,50 @@
1
- <template>
2
- <div class="">
3
- <atoms-stack-block :has-children="false">
4
- <template #stackBlockKey>
5
- {{ localization.common.cdDvdMedia }}
6
- </template>
7
- <template #stackBlockContent>
8
- <div class="flex-align-center">
9
- <input
10
- id="vm-wizard-dvd-media-input"
11
- v-model="cdDvdMedia"
12
- data-id="vm-wizard-dvd-media-input"
13
- type="text"
14
- disabled
15
- />
16
- <button
17
- id="vm-wizard-dvd-media-browse"
18
- data-id="vm-wizard-dvd-media-browse"
19
- class="button btn btn-default btn-sm"
20
- @click="emits('browse')"
21
- >
22
- {{ localization.common.browse }}...
23
- </button>
24
- <button
25
- id="vm-wizard-dvd-media-eject"
26
- data-id="vm-wizard-dvd-media-eject"
27
- class="button btn btn-default btn-sm"
28
- @click="cdDvdMedia = ''"
29
- >
30
- {{ localization.vmWizard.eject }}
31
- </button>
32
- </div>
33
- </template>
34
- </atoms-stack-block>
35
- </div>
36
- </template>
37
-
38
- <script setup lang="ts">
39
- import type { UI_I_Localization } from '~/lib/models/interfaces'
40
-
41
- const cdDvdMedia = defineModel<string>('cdDvdMedia', { required: true })
42
-
43
- const emits = defineEmits<{
44
- (event: 'browse'): void
45
- }>()
46
-
47
- const localization = computed<UI_I_Localization>(() => useLocal())
48
- </script>
49
-
50
- <style scoped></style>
1
+ <template>
2
+ <div class="">
3
+ <atoms-stack-block :has-children="false">
4
+ <template #stackBlockKey>
5
+ {{ localization.common.cdDvdMedia }}
6
+ </template>
7
+ <template #stackBlockContent>
8
+ <div class="flex-align-center">
9
+ <input
10
+ id="vm-wizard-dvd-media-input"
11
+ v-model="cdDvdMedia"
12
+ data-id="vm-wizard-dvd-media-input"
13
+ type="text"
14
+ disabled
15
+ />
16
+ <button
17
+ id="vm-wizard-dvd-media-browse"
18
+ data-id="vm-wizard-dvd-media-browse"
19
+ class="button btn btn-default btn-sm"
20
+ @click="emits('browse')"
21
+ >
22
+ {{ localization.common.browse }}...
23
+ </button>
24
+ <button
25
+ id="vm-wizard-dvd-media-eject"
26
+ data-id="vm-wizard-dvd-media-eject"
27
+ class="button btn btn-default btn-sm"
28
+ @click="cdDvdMedia = ''"
29
+ >
30
+ {{ localization.vmWizard.eject }}
31
+ </button>
32
+ </div>
33
+ </template>
34
+ </atoms-stack-block>
35
+ </div>
36
+ </template>
37
+
38
+ <script setup lang="ts">
39
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
40
+
41
+ const cdDvdMedia = defineModel<string>('cdDvdMedia', { required: true })
42
+
43
+ const emits = defineEmits<{
44
+ (event: 'browse'): void
45
+ }>()
46
+
47
+ const localization = computed<UI_I_Localization>(() => useLocal())
48
+ </script>
49
+
50
+ <style scoped></style>
@@ -207,6 +207,14 @@ const emits = defineEmits<{
207
207
  const localization = computed<UI_I_Localization>(() => useLocal())
208
208
  </script>
209
209
 
210
+ <style>
211
+ :root {
212
+ --cpu-help-more-info-color: #008fd6;
213
+ }
214
+ :root.dark-theme {
215
+ --cpu-help-more-info-color: #2ba2de;
216
+ }
217
+ </style>
210
218
  <style scoped lang="scss">
211
219
  :deep(.ui-main-select-toggle) {
212
220
  display: flex;
@@ -1,140 +1,140 @@
1
- <template>
2
- <common-vm-actions-common-customize-hardware-virtual-hardware-cpu-shares-new
3
- v-if="isNewView"
4
- v-model:shares-type="sharesTypeLocal"
5
- v-model:shares="sharesLocal"
6
- :disabled="props.disabled"
7
- :shares-type-options="sharesTypeOptions"
8
- :shares-errors-texts="sharesLocalAndApiErrorsTexts"
9
- :shares-options="sharesOptions"
10
- :is-disabled-shares="isDisabledShares"
11
- @change-shares-type="onChangeSharesType"
12
- @remove-error="onRemoveValidationError"
13
- />
14
- <common-vm-actions-common-customize-hardware-virtual-hardware-cpu-shares-old
15
- v-else
16
- v-model:shares-type="sharesTypeLocal"
17
- v-model:shares="sharesLocal"
18
- :disabled="props.disabled"
19
- :shares-type-options="sharesTypeOptions"
20
- :shares-errors-texts="sharesLocalAndApiErrorsTexts"
21
- :shares-options="sharesOptions"
22
- :is-disabled-shares="isDisabledShares"
23
- @change-shares-type="onChangeSharesType"
24
- @remove-error="onRemoveValidationError"
25
- />
26
- </template>
27
-
28
- <script setup lang="ts">
29
- import type {
30
- UI_I_Localization,
31
- UI_I_HTMLSelectElement,
32
- } from '~/lib/models/interfaces'
33
- import type { UI_I_ErrorValidationField } from '~/lib/models/store/interfaces'
34
- import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
35
- import {
36
- sharesTypeOptionsFunc,
37
- sharesOptionsFunc,
38
- } from '~/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/lib/config/options'
39
-
40
- const props = defineProps<{
41
- shares: string
42
- sharesType: string
43
- disabled: boolean
44
- errorValidationFields: UI_I_ErrorValidationField<string>[]
45
- }>()
46
- const emits = defineEmits<{
47
- (event: 'update:shares', value: string): void
48
- (event: 'update:shares-type', value: string): void
49
- (event: 'invalid', value: boolean): void
50
- (event: 'remove-error-by-title', value: string): void
51
- }>()
52
-
53
- const { $store }: any = useNuxtApp()
54
- const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
55
-
56
- const localization = computed<UI_I_Localization>(() => useLocal())
57
-
58
- const apiErrorLocal = computed<string>(() => {
59
- return (
60
- props.errorValidationFields?.find(
61
- (message) => message.field === 'cpu.shares'
62
- )?.error_message || ''
63
- )
64
- })
65
-
66
- const maxShares = 262_144
67
- const sharesOptions = computed<UI_I_OptionItem[]>(() => {
68
- return sharesOptionsFunc(localization.value, maxShares)
69
- })
70
-
71
- const sharesTypeOptions = ref<UI_I_OptionItem[]>(
72
- sharesTypeOptionsFunc(localization.value)
73
- )
74
-
75
- const isDisabledShares = computed<boolean>(
76
- () => sharesTypeLocal.value !== '2' || props.disabled
77
- )
78
- const sharesLocal = computed<string>({
79
- get() {
80
- return props.shares
81
- },
82
- set(newValue) {
83
- emits('update:shares', newValue)
84
- },
85
- })
86
- const sharesTypeLocal = computed<string>({
87
- get() {
88
- return props.sharesType
89
- },
90
- set(newValue) {
91
- emits('update:shares-type', newValue)
92
- },
93
- })
94
- const onChangeSharesType = (event: UI_I_HTMLSelectElement): void => {
95
- const value = event.target.value
96
- if (value === '2') return
97
- sharesLocal.value = event.target.value
98
- }
99
-
100
- const sharesErrorLocalText = computed<string>(() => {
101
- if (+sharesLocal.value < 2 || +sharesLocal.value > maxShares) {
102
- return localization.value.common.sharesMustBe
103
- .replace('{0}', '2')
104
- .replace('{1}', maxShares + '')
105
- }
106
-
107
- const validValue = /^\d+(\.\d+)?$/.test(sharesLocal.value + '')
108
- if (!validValue) {
109
- return localization.value.common.inputContainsInvalidCharacters
110
- }
111
-
112
- return ''
113
- })
114
- const sharesInvalid = computed<boolean>(() => !!sharesErrorLocalText.value)
115
- watch(
116
- sharesInvalid,
117
- (newValue) => {
118
- emits('invalid', newValue)
119
- },
120
- { immediate: true }
121
- )
122
-
123
- const sharesLocalAndApiErrorsTexts = computed<string>(() => {
124
- const localError = sharesErrorLocalText.value
125
- const apiError = apiErrorLocal.value
126
-
127
- let result = ''
128
- if (localError && !apiError) result = localError
129
- if (localError && apiError) result = localError + ', ' + apiError
130
- if (!localError) result = apiError
131
-
132
- return result
133
- })
134
-
135
- const onRemoveValidationError = (): void => {
136
- emits('remove-error-by-title', 'cpu.shares')
137
- }
138
- </script>
139
-
140
- <style scoped></style>
1
+ <template>
2
+ <common-vm-actions-common-customize-hardware-virtual-hardware-cpu-shares-new
3
+ v-if="isNewView"
4
+ v-model:shares-type="sharesTypeLocal"
5
+ v-model:shares="sharesLocal"
6
+ :disabled="props.disabled"
7
+ :shares-type-options="sharesTypeOptions"
8
+ :shares-errors-texts="sharesLocalAndApiErrorsTexts"
9
+ :shares-options="sharesOptions"
10
+ :is-disabled-shares="isDisabledShares"
11
+ @change-shares-type="onChangeSharesType"
12
+ @remove-error="onRemoveValidationError"
13
+ />
14
+ <common-vm-actions-common-customize-hardware-virtual-hardware-cpu-shares-old
15
+ v-else
16
+ v-model:shares-type="sharesTypeLocal"
17
+ v-model:shares="sharesLocal"
18
+ :disabled="props.disabled"
19
+ :shares-type-options="sharesTypeOptions"
20
+ :shares-errors-texts="sharesLocalAndApiErrorsTexts"
21
+ :shares-options="sharesOptions"
22
+ :is-disabled-shares="isDisabledShares"
23
+ @change-shares-type="onChangeSharesType"
24
+ @remove-error="onRemoveValidationError"
25
+ />
26
+ </template>
27
+
28
+ <script setup lang="ts">
29
+ import type {
30
+ UI_I_Localization,
31
+ UI_I_HTMLSelectElement,
32
+ } from '~/lib/models/interfaces'
33
+ import type { UI_I_ErrorValidationField } from '~/lib/models/store/interfaces'
34
+ import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
35
+ import {
36
+ sharesTypeOptionsFunc,
37
+ sharesOptionsFunc,
38
+ } from '~/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/lib/config/options'
39
+
40
+ const props = defineProps<{
41
+ shares: string
42
+ sharesType: string
43
+ disabled: boolean
44
+ errorValidationFields: UI_I_ErrorValidationField<string>[]
45
+ }>()
46
+ const emits = defineEmits<{
47
+ (event: 'update:shares', value: string): void
48
+ (event: 'update:shares-type', value: string): void
49
+ (event: 'invalid', value: boolean): void
50
+ (event: 'remove-error-by-title', value: string): void
51
+ }>()
52
+
53
+ const { $store }: any = useNuxtApp()
54
+ const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
55
+
56
+ const localization = computed<UI_I_Localization>(() => useLocal())
57
+
58
+ const apiErrorLocal = computed<string>(() => {
59
+ return (
60
+ props.errorValidationFields?.find(
61
+ (message) => message.field === 'cpu.shares'
62
+ )?.error_message || ''
63
+ )
64
+ })
65
+
66
+ const maxShares = 262_144
67
+ const sharesOptions = computed<UI_I_OptionItem[]>(() => {
68
+ return sharesOptionsFunc(localization.value, maxShares)
69
+ })
70
+
71
+ const sharesTypeOptions = ref<UI_I_OptionItem[]>(
72
+ sharesTypeOptionsFunc(localization.value)
73
+ )
74
+
75
+ const isDisabledShares = computed<boolean>(
76
+ () => sharesTypeLocal.value !== '2' || props.disabled
77
+ )
78
+ const sharesLocal = computed<string>({
79
+ get() {
80
+ return props.shares
81
+ },
82
+ set(newValue) {
83
+ emits('update:shares', newValue)
84
+ },
85
+ })
86
+ const sharesTypeLocal = computed<string>({
87
+ get() {
88
+ return props.sharesType
89
+ },
90
+ set(newValue) {
91
+ emits('update:shares-type', newValue)
92
+ },
93
+ })
94
+ const onChangeSharesType = (event: UI_I_HTMLSelectElement): void => {
95
+ const value = event.target.value
96
+ if (value === '2') return
97
+ sharesLocal.value = event.target.value
98
+ }
99
+
100
+ const sharesErrorLocalText = computed<string>(() => {
101
+ if (+sharesLocal.value < 2 || +sharesLocal.value > maxShares) {
102
+ return localization.value.common.sharesMustBe
103
+ .replace('{0}', '2')
104
+ .replace('{1}', maxShares + '')
105
+ }
106
+
107
+ const validValue = /^\d+(\.\d+)?$/.test(sharesLocal.value + '')
108
+ if (!validValue) {
109
+ return localization.value.common.inputContainsInvalidCharacters
110
+ }
111
+
112
+ return ''
113
+ })
114
+ const sharesInvalid = computed<boolean>(() => !!sharesErrorLocalText.value)
115
+ watch(
116
+ sharesInvalid,
117
+ (newValue) => {
118
+ emits('invalid', newValue)
119
+ },
120
+ { immediate: true }
121
+ )
122
+
123
+ const sharesLocalAndApiErrorsTexts = computed<string>(() => {
124
+ const localError = sharesErrorLocalText.value
125
+ const apiError = apiErrorLocal.value
126
+
127
+ let result = ''
128
+ if (localError && !apiError) result = localError
129
+ if (localError && apiError) result = localError + ', ' + apiError
130
+ if (!localError) result = apiError
131
+
132
+ return result
133
+ })
134
+
135
+ const onRemoveValidationError = (): void => {
136
+ emits('remove-error-by-title', 'cpu.shares')
137
+ }
138
+ </script>
139
+
140
+ <style scoped></style>
@@ -1,28 +1,28 @@
1
- import type { UI_I_Localization } from '~/lib/models/interfaces'
2
- import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
3
-
4
- export const sharesOptionsFunc = (
5
- localization: UI_I_Localization,
6
- maxShares: number
7
- ): UI_I_OptionItem[] => {
8
- return [
9
- {
10
- text: `${localization.common.minimum} 2`,
11
- value: 2,
12
- },
13
- {
14
- text: `${localization.common.maximum} ${maxShares}`,
15
- value: maxShares,
16
- },
17
- ]
18
- }
19
- export const sharesTypeOptionsFunc = (
20
- localization: UI_I_Localization
21
- ): UI_I_OptionItem[] => {
22
- return [
23
- { text: localization.common.low, value: '1000' },
24
- { text: localization.common.normal, value: '2000' },
25
- { text: localization.common.high, value: '4000' },
26
- { text: localization.common.custom, value: '2' },
27
- ]
28
- }
1
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
2
+ import type { UI_I_OptionItem } from '~/components/atoms/lib/models/interfaces'
3
+
4
+ export const sharesOptionsFunc = (
5
+ localization: UI_I_Localization,
6
+ maxShares: number
7
+ ): UI_I_OptionItem[] => {
8
+ return [
9
+ {
10
+ text: `${localization.common.minimum} 2`,
11
+ value: 2,
12
+ },
13
+ {
14
+ text: `${localization.common.maximum} ${maxShares}`,
15
+ value: maxShares,
16
+ },
17
+ ]
18
+ }
19
+ export const sharesTypeOptionsFunc = (
20
+ localization: UI_I_Localization
21
+ ): UI_I_OptionItem[] => {
22
+ return [
23
+ { text: localization.common.low, value: '1000' },
24
+ { text: localization.common.normal, value: '2000' },
25
+ { text: localization.common.high, value: '4000' },
26
+ { text: localization.common.custom, value: '2' },
27
+ ]
28
+ }
@@ -82,12 +82,14 @@ const isShowCpuHelp = ref<boolean>(false)
82
82
  --cpu-help-icon-hover-color: #4d5d69;
83
83
  --cpu-help-icon-active-color: #008fd6;
84
84
  --cpu-help-close-icon-color: #182531;
85
+ --cpu-help-more-info-color: #008fd6;
85
86
  }
86
87
  :root.dark-theme {
87
88
  --cpu-help-color: #e9eaec;
88
89
  --cpu-help-icon-hover-color: #e9eaec;
89
90
  --cpu-help-icon-active-color: #2ba2de;
90
91
  --cpu-help-close-icon-color: #e9eaec;
92
+ --cpu-help-more-info-color: #2ba2de;
91
93
  }
92
94
 
93
95
  .light-theme {
@@ -234,8 +234,20 @@ const localization = computed<UI_I_Localization>(() => useLocal())
234
234
  </script>
235
235
 
236
236
  <style>
237
+ :root {
238
+ --device-will-removed-color: #9da6ad;
239
+ --device-will-removed-border-color: #e9ebeda3;
240
+ }
241
+ :root.dark-theme {
242
+ --device-will-removed-color: #9da6ad;
243
+ --device-will-removed-border-color: #e9ebed1f;
244
+ }
245
+
237
246
  .light-theme {
238
247
  .stack-block-expanded {
248
+ --device-will-removed-color: #9da6ad;
249
+ --device-will-removed-border-color: #e9ebed1f;
250
+
239
251
  .ui-custom-checkbox {
240
252
  background-color: transparent;
241
253
  }
@@ -243,6 +255,9 @@ const localization = computed<UI_I_Localization>(() => useLocal())
243
255
  }
244
256
  .dark-theme {
245
257
  .stack-block-expanded {
258
+ --device-will-removed-color: #9da6ad;
259
+ --device-will-removed-border-color: #d3d6da66;
260
+
246
261
  .ui-custom-checkbox {
247
262
  background-color: transparent;
248
263
  }
@@ -21,6 +21,14 @@ const props = defineProps<{
21
21
  }>()
22
22
  </script>
23
23
 
24
+ <style>
25
+ :root {
26
+ --vm-wizard-file-path-color: #182531;
27
+ }
28
+ :root.dark-theme {
29
+ --vm-wizard-file-path-color: #e9eaec;
30
+ }
31
+ </style>
24
32
  <style scoped>
25
33
  .limit-title {
26
34
  margin-right: 12px;