bfg-common 1.5.446 → 1.5.448

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 (129) 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 +1694 -1694
  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/browse/blocks/Container.vue +235 -235
  14. package/components/common/browse/blocks/contents/filesNew/Skeleton.vue +18 -18
  15. package/components/common/context/lib/models/interfaces.ts +33 -33
  16. package/components/common/diagramMain/modals/lib/config/networkModal.ts +398 -398
  17. package/components/common/diagramMain/modals/lib/config/portModal.ts +251 -251
  18. package/components/common/diagramMain/modals/lib/config/vCenterModal.ts +48 -48
  19. package/components/common/diagramMain/port/Port.vue +580 -580
  20. package/components/common/feedback/Buttons.vue +2 -1
  21. package/components/common/layout/theHeader/helpMenu/About.vue +82 -82
  22. package/components/common/layout/theHeader/modals/reconnect/Reconnect.vue +2 -4
  23. package/components/common/layout/theHeader/modals/reconnect/ReconnectNew.vue +1 -2
  24. package/components/common/layout/theHeader/modals/reconnect/ReconnectOld.vue +1 -2
  25. package/components/common/layout/theHeader/userMenu/UserMenu.vue +1 -1
  26. package/components/common/layout/theHeader/userMenu/modals/preferences/Preferences.vue +1 -1
  27. package/components/common/layout/theHeader/userMenu/modals/preferences/PreferencesOld.vue +1 -0
  28. package/components/common/layout/theHeader/userMenu/modals/preferences/changeLanguage/ChangeLanguage.vue +4 -2
  29. package/components/common/layout/theHeader/userMenu/modals/preferences/changeLanguage/ChangeLanguageOld.vue +5 -4
  30. package/components/common/pages/backups/Backups.vue +102 -102
  31. package/components/common/pages/backups/DetailView.vue +52 -52
  32. package/components/common/pages/backups/lib/models/interfaces.ts +36 -36
  33. package/components/common/pages/backups/modals/createBackup/configuration/Configuration.vue +29 -29
  34. package/components/common/pages/backups/modals/createBackup/configuration/backupWindow/BackupWindow.vue +26 -26
  35. package/components/common/pages/backups/modals/createBackup/configuration/maxBandwidth/MaxBandwidth.vue +66 -66
  36. package/components/common/pages/backups/modals/createBackup/configuration/maxBandwidth/lib/config/options.ts +6 -6
  37. package/components/common/pages/backups/modals/createBackup/configuration/strategy/Strategy.vue +35 -35
  38. package/components/common/pages/backups/modals/createBackup/datastores/Datastores.vue +59 -59
  39. package/components/common/pages/backups/modals/createBackup/datastores/tableView/TableView.vue +95 -95
  40. package/components/common/pages/backups/modals/createBackup/disks/tableView/lib/config/table.ts +117 -117
  41. package/components/common/pages/backups/modals/createBackup/general/General.vue +135 -135
  42. package/components/common/pages/backups/modals/createBackup/lib/config/strategyOptions.ts +12 -12
  43. package/components/common/pages/backups/modals/lib/config/restore.ts +115 -115
  44. package/components/common/pages/backups/modals/lib/models/interfaces.ts +186 -186
  45. package/components/common/pages/backups/modals/restore/disks/Disks.vue +27 -27
  46. package/components/common/pages/backups/modals/restore/disks/tableView/TableView.vue +102 -102
  47. package/components/common/pages/backups/modals/restore/disks/tableView/lib/config/table.ts +117 -117
  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/Headline.vue +9 -4
  56. package/components/common/pages/home/headline/HeadlineNew.vue +9 -4
  57. package/components/common/pages/home/headline/HeadlineOld.vue +47 -42
  58. package/components/common/pages/home/lib/models/interfaces.ts +48 -48
  59. package/components/common/pages/home/widgets/Widgets.vue +1 -0
  60. package/components/common/pages/home/widgets/WidgetsOld.vue +7 -1
  61. package/components/common/pages/home/widgets/hosts/Hosts.vue +27 -27
  62. package/components/common/pages/home/widgets/hosts/lib/config/items.ts +23 -23
  63. package/components/common/pages/home/widgets/vms/VmsOld.vue +35 -35
  64. package/components/common/pages/home/widgets/vms/lib/config/items.ts +19 -19
  65. package/components/common/pages/scheduledTasks/lib/utils/utils.ts +84 -84
  66. package/components/common/readyToComplete/ReadyToComplete.vue +17 -17
  67. package/components/common/select/radio/RadioGroup.vue +137 -137
  68. package/components/common/spiceConsole/Drawer.vue +381 -381
  69. package/components/common/spiceConsole/SpiceConsole.vue +127 -127
  70. package/components/common/spiceConsole/lib/models/interfaces.ts +5 -5
  71. package/components/common/split/vertical/VerticalOld.vue +6 -4
  72. package/components/common/tools/Actions.vue +207 -207
  73. package/components/common/treeView/TreeView.vue +52 -52
  74. package/components/common/vm/actions/add/folderTreeView/FolderTreeView.vue +72 -72
  75. package/components/common/vm/actions/add/folderTreeView/New.vue +40 -40
  76. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/Media.vue +25 -25
  77. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaNew.vue +78 -78
  78. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaOld.vue +50 -50
  79. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/Shares.vue +140 -140
  80. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/lib/config/options.ts +28 -28
  81. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/Location.vue +154 -154
  82. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/LocationOld.vue +85 -85
  83. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/maximumSize/MaximumSize.vue +23 -23
  84. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/table/Table.vue +99 -99
  85. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddress.vue +119 -119
  86. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoNew.vue +66 -66
  87. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoOld.vue +62 -62
  88. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIo.vue +31 -31
  89. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIoOld.vue +76 -76
  90. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/Note.vue +15 -15
  91. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteNew.vue +42 -42
  92. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteOld.vue +30 -30
  93. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGridOld.vue +84 -84
  94. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/Other.vue +16 -16
  95. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/numberDisplays/NumberDisplays.vue +53 -53
  96. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/delay/Delay.vue +32 -32
  97. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/Firmware.vue +60 -60
  98. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/Order.vue +174 -174
  99. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/Keymap.vue +32 -32
  100. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/KeymapOld.vue +44 -44
  101. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/Password.vue +103 -103
  102. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirection.vue +28 -28
  103. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionOld.vue +44 -44
  104. package/components/common/vm/actions/common/select/compatibility/Old.vue +107 -107
  105. package/components/common/vm/actions/common/select/computeResource/ComputeResource.vue +143 -143
  106. package/components/common/vm/actions/common/select/computeResource/New.vue +184 -184
  107. package/components/common/vm/actions/common/select/computeResource/treeView/TreeView.vue +131 -131
  108. package/components/common/vm/actions/common/select/createType/CreateType.vue +38 -38
  109. package/components/common/vm/actions/common/select/createType/lib/models/interfaces.ts +5 -5
  110. package/components/common/vm/actions/common/select/os/Old.vue +152 -152
  111. package/components/common/vm/actions/common/select/os/Os.vue +139 -139
  112. package/components/common/vm/actions/common/select/storage/new/New.vue +320 -320
  113. package/components/common/vm/actions/common/select/storage/new/lib/models/interfaces.ts +5 -5
  114. package/components/common/vm/actions/common/select/storage/new/lib/utils/utils.ts +21 -21
  115. package/components/common/vm/actions/common/select/template/old/Old.vue +50 -50
  116. package/components/common/vm/actions/editSettings/new/Skeleton.vue +88 -88
  117. package/components/common/wizards/datastore/add/steps/typeMode/lib/config/typeOptions.ts +43 -43
  118. package/components/common/wizards/vm/migrate/select/network/Network.vue +103 -103
  119. package/components/common/wizards/vm/migrate/select/type/lib/config/typeOptions.ts +45 -45
  120. package/composables/productNameLocal.ts +30 -30
  121. package/composables/useAppVersion.ts +21 -21
  122. package/package.json +2 -2
  123. package/plugins/date.ts +233 -233
  124. package/plugins/panelStates.ts +70 -70
  125. package/plugins/text.ts +59 -59
  126. package/public/spice-console/lib/images/bitmap.js +203 -203
  127. package/public/spice-console/network/spicechannel.js +390 -390
  128. package/store/main/mutations.ts +7 -7
  129. package/store/main/state.ts +7 -7
@@ -1,40 +1,40 @@
1
- <template>
2
- <div class="tree-view">
3
- <ui-tree
4
- :nodes="props.nodes"
5
- :expand-all="false"
6
- :is-loading="props.loading"
7
- @toggle-node="onShowNodes"
8
- @select-node="emits('select-node', $event)"
9
- >
10
- <template #content="{ node }">
11
- <div class="flex-align-center">
12
- <span :class="['node-icon', node.iconClassName]"></span>
13
- <span class="node-name">{{ node.name }}</span>
14
- </div>
15
- </template>
16
- </ui-tree>
17
- </div>
18
- </template>
19
-
20
- <script setup lang="ts">
21
- import type { UI_I_TreeNode } from '~/components/common/recursionTree/lib/models/interfaces'
22
-
23
- const props = defineProps<{
24
- loading: boolean
25
- nodes: UI_I_TreeNode[]
26
- }>()
27
- const emits = defineEmits<{
28
- (event: 'select-node', value: UI_I_TreeNode): void
29
- (event: 'show-nodes', value: {
30
- node: UI_I_TreeNode
31
- cb: () => void
32
- }): void
33
- }>()
34
-
35
- const onShowNodes = (node: UI_I_TreeNode) => {
36
- emits('show-nodes', { node, cb: (): void => {} })
37
- }
38
- </script>
39
-
40
- <style scoped lang="scss"></style>
1
+ <template>
2
+ <div class="tree-view">
3
+ <ui-tree
4
+ :nodes="props.nodes"
5
+ :expand-all="false"
6
+ :is-loading="props.loading"
7
+ @toggle-node="onShowNodes"
8
+ @select-node="emits('select-node', $event)"
9
+ >
10
+ <template #content="{ node }">
11
+ <div class="flex-align-center">
12
+ <span :class="['node-icon', node.iconClassName]"></span>
13
+ <span class="node-name">{{ node.name }}</span>
14
+ </div>
15
+ </template>
16
+ </ui-tree>
17
+ </div>
18
+ </template>
19
+
20
+ <script setup lang="ts">
21
+ import type { UI_I_TreeNode } from '~/components/common/recursionTree/lib/models/interfaces'
22
+
23
+ const props = defineProps<{
24
+ loading: boolean
25
+ nodes: UI_I_TreeNode[]
26
+ }>()
27
+ const emits = defineEmits<{
28
+ (event: 'select-node', value: UI_I_TreeNode): void
29
+ (event: 'show-nodes', value: {
30
+ node: UI_I_TreeNode
31
+ cb: () => void
32
+ }): void
33
+ }>()
34
+
35
+ const onShowNodes = (node: UI_I_TreeNode) => {
36
+ emits('show-nodes', { node, cb: (): void => {} })
37
+ }
38
+ </script>
39
+
40
+ <style scoped lang="scss"></style>
@@ -1,25 +1,25 @@
1
- <template>
2
- <common-vm-actions-common-customize-hardware-virtual-hardware-cd-dvd-drive-media-new
3
- v-if="isNewView"
4
- v-model:cd-dvd-media="cdDvdMedia"
5
- @browse="emits('browse')"
6
- />
7
- <common-vm-actions-common-customize-hardware-virtual-hardware-cd-dvd-drive-media-old
8
- v-else
9
- v-model:cd-dvd-media="cdDvdMedia"
10
- @browse="emits('browse')"
11
- />
12
- </template>
13
-
14
- <script setup lang="ts">
15
- const cdDvdMedia = defineModel<string>('cdDvdMedia', { required: true })
16
-
17
- const emits = defineEmits<{
18
- (event: 'browse'): void
19
- }>()
20
-
21
- const { $store }: any = useNuxtApp()
22
- const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
23
- </script>
24
-
25
- <style scoped></style>
1
+ <template>
2
+ <common-vm-actions-common-customize-hardware-virtual-hardware-cd-dvd-drive-media-new
3
+ v-if="isNewView"
4
+ v-model:cd-dvd-media="cdDvdMedia"
5
+ @browse="emits('browse')"
6
+ />
7
+ <common-vm-actions-common-customize-hardware-virtual-hardware-cd-dvd-drive-media-old
8
+ v-else
9
+ v-model:cd-dvd-media="cdDvdMedia"
10
+ @browse="emits('browse')"
11
+ />
12
+ </template>
13
+
14
+ <script setup lang="ts">
15
+ const cdDvdMedia = defineModel<string>('cdDvdMedia', { required: true })
16
+
17
+ const emits = defineEmits<{
18
+ (event: 'browse'): void
19
+ }>()
20
+
21
+ const { $store }: any = useNuxtApp()
22
+ const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
23
+ </script>
24
+
25
+ <style scoped></style>
@@ -1,78 +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>
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
+ <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>
@@ -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>