bfg-common 1.5.241 → 1.5.243

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 (172) 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/scss/common/icons/icons-1.scss +2 -2
  7. package/assets/scss/common/icons/icons-5.scss +5 -5
  8. package/assets/scss/common/icons/icons-6.scss +1 -1
  9. package/assets/scss/common/theme.scss +0 -6
  10. package/components/atoms/TheIcon3.vue +50 -50
  11. package/components/atoms/perPage/PerPage.vue +58 -58
  12. package/components/atoms/table/dataGrid/DataGrid.vue +1717 -1717
  13. package/components/atoms/table/dataGrid/lib/config/settingsTable.ts +94 -94
  14. package/components/atoms/table/dataGrid/lib/utils/export.ts +16 -16
  15. package/components/atoms/tabs/VerticalTabs.vue +105 -105
  16. package/components/common/backup/storage/actions/add/Add.vue +247 -247
  17. package/components/common/backup/storage/actions/add/New.vue +292 -281
  18. package/components/common/backup/storage/actions/add/Old.vue +114 -114
  19. package/components/common/backup/storage/actions/add/lib/config/steps.ts +168 -168
  20. package/components/common/backup/storage/actions/add/steps/nameAndConfigure/NameAndConfigure.vue +41 -41
  21. package/components/common/backup/storage/actions/add/steps/nameAndConfigure/NameAndConfigureNew.vue +314 -294
  22. package/components/common/backup/storage/actions/add/steps/readyComplete/ReadyComplete.vue +45 -45
  23. package/components/common/backup/storage/actions/add/steps/readyComplete/lib/config/propertiesDetails.ts +242 -242
  24. package/components/common/backup/storage/actions/add/steps/typeMode/TypeModeNew.vue +18 -3
  25. package/components/common/backup/storage/actions/delete/Delete.vue +65 -65
  26. package/components/common/browse/BrowseNew.vue +2 -8
  27. package/components/common/browse/blocks/contents/filesNew/Skeleton.vue +18 -18
  28. package/components/common/context/lib/models/interfaces.ts +31 -31
  29. package/components/common/diagramMain/DiagramMain.vue +897 -897
  30. package/components/common/diagramMain/Header.vue +214 -214
  31. package/components/common/layout/theHeader/feedback/new/additionalDetails/Headline.vue +76 -66
  32. package/components/common/layout/theHeader/feedback/new/subtitle/Subtitle.vue +80 -70
  33. package/components/common/layout/theHeader/helpMenu/About.vue +82 -82
  34. package/components/common/layout/theHeader/userMenu/modals/preferences/view/ViewOld.vue +112 -112
  35. package/components/common/monitor/overview/OverviewOld.vue +139 -139
  36. package/components/common/pages/home/headline/Headline.vue +45 -45
  37. package/components/common/pages/home/headline/HeadlineOld.vue +42 -42
  38. package/components/common/pages/home/lib/models/interfaces.ts +48 -48
  39. package/components/common/pages/home/widgets/Widgets.vue +49 -49
  40. package/components/common/pages/home/widgets/WidgetsNew.vue +86 -86
  41. package/components/common/pages/home/widgets/WidgetsOld.vue +34 -34
  42. package/components/common/pages/home/widgets/hosts/Hosts.vue +27 -27
  43. package/components/common/pages/home/widgets/hosts/lib/config/items.ts +23 -23
  44. package/components/common/pages/home/widgets/vms/Vms.vue +26 -26
  45. package/components/common/pages/home/widgets/vms/VmsOld.vue +35 -35
  46. package/components/common/pages/home/widgets/vms/lib/config/items.ts +19 -19
  47. package/components/common/pages/packages/Packages.vue +208 -208
  48. package/components/common/pages/shortcuts/block/BlockOld.vue +68 -68
  49. package/components/common/pages/tasks/table/Table.vue +25 -7
  50. package/components/common/pages/tasks/table/expandDetails/ExpandDetails.vue +27 -9
  51. package/components/common/readyToComplete/ReadyToComplete.vue +17 -17
  52. package/components/common/recursionTree/RecursionTree.vue +223 -223
  53. package/components/common/select/button/ButtonDropdown.vue +108 -108
  54. package/components/common/spiceConsole/Drawer.vue +377 -377
  55. package/components/common/spiceConsole/lib/models/interfaces.ts +5 -5
  56. package/components/common/tooltip/Help.vue +181 -0
  57. package/components/common/tooltip/lib/models/types.ts +1 -0
  58. package/components/common/vm/actions/add/folderTreeView/FolderTreeView.vue +72 -72
  59. package/components/common/vm/actions/add/folderTreeView/New.vue +40 -40
  60. package/components/common/vm/actions/add/folderTreeView/Old.vue +50 -50
  61. package/components/common/vm/actions/clone/lib/config/steps.ts +291 -291
  62. package/components/common/vm/actions/clone/toTemplate/lib/config/steps.ts +116 -116
  63. package/components/common/vm/actions/common/customizeHardware/CustomizeHardwareNew.vue +2 -5
  64. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardwareNew.vue +7 -7
  65. package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardwareOld.vue +319 -319
  66. package/components/common/vm/actions/common/customizeHardware/virtualHardware/browseView/BrowseView.vue +219 -219
  67. package/components/common/vm/actions/common/customizeHardware/virtualHardware/bus/Bus.vue +100 -100
  68. package/components/common/vm/actions/common/customizeHardware/virtualHardware/bus/BusNew.vue +104 -95
  69. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDrive.vue +232 -232
  70. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDriveNew.vue +0 -4
  71. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/CdDvdDriveOld.vue +168 -168
  72. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/Media.vue +25 -25
  73. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaNew.vue +78 -78
  74. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cdDvdDrive/media/MediaOld.vue +50 -50
  75. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/CpuNew.vue +59 -8
  76. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/model/ModelNew.vue +132 -109
  77. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/Shares.vue +140 -140
  78. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/SharesNew.vue +1 -6
  79. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/shares/lib/config/options.ts +28 -28
  80. package/components/common/vm/actions/common/customizeHardware/virtualHardware/cpu/tooltip/TooltipNew.vue +154 -154
  81. package/components/common/vm/actions/common/customizeHardware/virtualHardware/limit/Limit.vue +220 -220
  82. package/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/Memory.vue +307 -307
  83. package/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/MemoryNew.vue +1 -5
  84. package/components/common/vm/actions/common/customizeHardware/virtualHardware/memory/hotPlug/HotPlugNew.vue +2 -8
  85. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDisk.vue +382 -382
  86. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDiskNew.vue +0 -4
  87. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/file/FileNew.vue +3 -8
  88. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/Location.vue +151 -151
  89. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/LocationNew.vue +73 -73
  90. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/location/LocationOld.vue +83 -83
  91. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/maximumSize/MaximumSizeNew.vue +4 -8
  92. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/provisioning/ProvisioningNew.vue +1 -6
  93. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/sharing/SharingNew.vue +1 -6
  94. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/NewNetwork.vue +288 -288
  95. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/NewNetworkNew.vue +1 -1
  96. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/New.vue +3 -4
  97. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/table/Table.vue +0 -1
  98. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/location/new/table/lib/config/config.ts +94 -94
  99. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newNetwork/macAddress/MacAddress.vue +119 -119
  100. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/NewPciDevice.vue +205 -205
  101. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoNew.vue +66 -66
  102. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoOld.vue +62 -62
  103. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIo.vue +31 -31
  104. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIoOld.vue +76 -76
  105. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/Note.vue +15 -15
  106. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteNew.vue +42 -42
  107. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/note/NoteOld.vue +30 -30
  108. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGridOld.vue +84 -84
  109. package/components/common/vm/actions/common/customizeHardware/virtualHardware/newUsbController/NewUsbControllerNew.vue +0 -1
  110. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/Other.vue +16 -16
  111. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/OtherNew.vue +2 -8
  112. package/components/common/vm/actions/common/customizeHardware/virtualHardware/other/inputDevices/InputDevicesNew.vue +40 -40
  113. package/components/common/vm/actions/common/customizeHardware/virtualHardware/reservation/ReservationNew.vue +2 -5
  114. package/components/common/vm/actions/common/customizeHardware/virtualHardware/videoCard/VideoCardNew.vue +2 -5
  115. package/components/common/vm/actions/common/customizeHardware/vmoptions/Vmoptions.vue +145 -145
  116. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/BootOptionsNew.vue +1 -5
  117. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/delay/Delay.vue +32 -32
  118. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/firmware/Firmware.vue +60 -60
  119. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/Order.vue +174 -174
  120. package/components/common/vm/actions/common/customizeHardware/vmoptions/bootOptions/order/OrderNew.vue +0 -4
  121. package/components/common/vm/actions/common/customizeHardware/vmoptions/generalOptions/GeneralOptionsNew.vue +0 -1
  122. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/New.vue +2 -8
  123. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/copyPaste/CopyPasteNew.vue +31 -31
  124. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/fileTransfer/FileTransferNew.vue +31 -31
  125. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/keymap/Keymap.vue +32 -32
  126. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/Password.vue +103 -103
  127. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/password/PasswordNew.vue +128 -128
  128. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirection.vue +28 -28
  129. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionNew.vue +39 -39
  130. package/components/common/vm/actions/common/customizeHardware/vmoptions/remoteConsoleOptions/usbRedirection/UsbRedirectionOld.vue +44 -44
  131. package/components/common/vm/actions/common/customizeHardware/vmoptions/tools/ToolsNew.vue +1 -5
  132. package/components/common/vm/actions/common/lib/utils/capabilities.ts +52 -52
  133. package/components/common/vm/actions/common/select/compatibility/Old.vue +107 -107
  134. package/components/common/vm/actions/common/select/computeResource/treeView/New.vue +44 -44
  135. package/components/common/vm/actions/common/select/computeResource/treeView/TreeView.vue +118 -118
  136. package/components/common/vm/actions/common/select/createType/CreateType.vue +38 -38
  137. package/components/common/vm/actions/common/select/createType/lib/models/interfaces.ts +5 -5
  138. package/components/common/vm/actions/common/select/name/New.vue +52 -69
  139. package/components/common/vm/actions/common/select/os/Old.vue +152 -152
  140. package/components/common/vm/actions/common/select/os/Os.vue +139 -139
  141. package/components/common/vm/actions/common/select/storage/new/New.vue +1 -5
  142. package/components/common/vm/actions/common/select/storage/new/lib/config/table.ts +1 -2
  143. package/components/common/vm/actions/common/select/storage/new/lib/models/interfaces.ts +5 -5
  144. package/components/common/vm/actions/common/select/storage/new/lib/utils/utils.ts +21 -21
  145. package/components/common/vm/actions/editSettings/new/Skeleton.vue +88 -88
  146. package/components/common/wizards/datastore/add/New.vue +14 -3
  147. package/components/common/wizards/datastore/add/steps/nameAndConfigure/NameAndConfigureNew.vue +27 -6
  148. package/components/common/wizards/datastore/add/steps/nameAndDevice/NameAndDeviceNew.vue +15 -3
  149. package/components/common/wizards/datastore/add/steps/typeMode/TypeModeNew.vue +14 -3
  150. package/components/common/wizards/vm/migrate/lib/config/constructDataReady.ts +220 -220
  151. package/components/common/wizards/vm/migrate/lib/config/steps.ts +157 -157
  152. package/components/common/wizards/vm/migrate/lib/validations.ts +68 -68
  153. package/components/common/wizards/vm/migrate/select/computeResource/tableView/TableView.vue +137 -135
  154. package/components/common/wizards/vm/migrate/select/network/Network.vue +103 -103
  155. package/components/common/wizards/vm/migrate/select/network/table/network/lib/config/advancedTable.ts +91 -91
  156. package/composables/productNameLocal.ts +30 -30
  157. package/composables/useAppVersion.ts +21 -21
  158. package/package.json +2 -2
  159. package/plugins/date.ts +233 -233
  160. package/plugins/text.ts +48 -59
  161. package/public/spice-console/lib/images/bitmap.js +203 -203
  162. package/public/spice-console/network/spicechannel.js +387 -387
  163. package/store/main/mutations.ts +7 -7
  164. package/store/main/state.ts +7 -7
  165. package/store/tasks/mappers/recentTasks.ts +64 -64
  166. package/components/common/backup/actions/deleteBackup/DeleteBackup.vue +0 -38
  167. package/plugins/cron.ts +0 -75
  168. package/plugins/helpers.ts +0 -18
  169. package/plugins/number.ts +0 -18
  170. package/plugins/panelStates.ts +0 -70
  171. package/plugins/time.ts +0 -17
  172. /package/{lib/models/plugins/panelStates → components/common/split/horizontal/lib/models}/interfaces.ts +0 -0
@@ -1,208 +1,208 @@
1
- <template>
2
- <div class="packages-page">
3
- <common-headline :headline="localization.common.softwarePackages" />
4
-
5
- <div class="grid-toolbar">
6
- <common-tools-actions
7
- test-id="packages-tools-panel"
8
- :actions="actions"
9
- @click="onClickAction"
10
- >
11
- <template #icon="{ data }">
12
- <span
13
- v-if="data.type === 'updates'"
14
- class="vx-icon-import icon"
15
- ></span>
16
- <span
17
- v-if="data.type === 'refresh'"
18
- class="vsphere-icon-reset icon"
19
- ></span>
20
- </template>
21
- </common-tools-actions>
22
- </div>
23
-
24
- <common-pages-packages-table-view
25
- v-model="selectedRow"
26
- :data-table="props.packagesData?.items || []"
27
- :total-items="props.packagesData?.total_items || 0"
28
- :total-pages="props.packagesData?.total_pages || 1"
29
- :pagination="pagination"
30
- :loading="props.loading"
31
- @pagination="onPagination"
32
- @sort="onSort"
33
- />
34
- </div>
35
- </template>
36
-
37
- <script lang="ts" setup>
38
- import type { UI_I_Localization } from '~/lib/models/interfaces'
39
- import type {
40
- UI_I_Pagination,
41
- } from '~/lib/models/table/interfaces'
42
- import type { UI_T_SelectedRow } from '~/components/atoms/table/dataGrid/lib/models/types'
43
- import type { UI_I_Button } from '~/components/common/tools/lib/models/interfaces'
44
- import type { UI_T_Action } from '~/components/common/pages/packages/lib/models/types'
45
- import { actionsFunc } from '~/components/common/pages/packages/lib/config/actions'
46
-
47
-
48
- const selectedRow = defineModel<UI_T_SelectedRow>('selectedRow')
49
- const pagination = defineModel<UI_I_Pagination>('pagination')
50
-
51
- const props = defineProps<{
52
- packagesData: any | null
53
- loading: boolean
54
- }>()
55
- const emits = defineEmits<{
56
- (event: 'sort', value: string): void
57
- (event: 'pagination', value: UI_I_Pagination): void
58
- (event: 'action', value: [UI_T_Action, FormData | null]): void
59
- (event: 'refresh'): void
60
- }>()
61
-
62
- const localization = computed<UI_I_Localization>(() => useLocal())
63
-
64
- const disabledActions = ref<string[]>([
65
- 'enable',
66
- 'disable',
67
- 'on',
68
- 'off',
69
- 'remove',
70
- ])
71
-
72
- const actions = computed<UI_I_Button[]>(() =>
73
- actionsFunc(localization.value, disabledActions.value)
74
- )
75
-
76
- const onPagination = (value: UI_I_Pagination): void => {
77
- emits('pagination', value)
78
- }
79
- const onSort = (value: string): void => {
80
- emits('sort', value)
81
- }
82
-
83
- const checkAllActions = (): void => {
84
- if (typeof selectedRow.value !== 'number') return
85
-
86
- const selectedPackage = props.packagesData?.items[selectedRow.value]
87
- if (!selectedPackage) return
88
-
89
- disabledActions.value = []
90
- if (window.location.hostname === 'dev-pn.aobfg.ru') return
91
-
92
- if (selectedPackage.not_runnable || selectedPackage.required) {
93
- disabledActions.value = ['enable', 'disable', 'on', 'off']
94
- }
95
-
96
- if (selectedPackage.required) {
97
- disabledActions.value = ['remove']
98
- }
99
- }
100
- watch(
101
- selectedRow,
102
- () => {
103
- checkAllActions()
104
- },
105
- { immediate: true }
106
- )
107
-
108
- const onAction = async (
109
- action: UI_T_Action,
110
- file: FormData | null = null
111
- ): Promise<void> => {
112
- emits('action', [action, file])
113
- }
114
- const onRefresh = (): void => {
115
- emits('refresh')
116
- }
117
- const onChangeFiles = (event: Event | undefined): void => {
118
- if (!event) return
119
-
120
- const target = event.target as HTMLInputElement
121
- if (!target.files) return
122
-
123
- const file = target.files[0]
124
-
125
- const formData = new FormData()
126
- formData.append('package', file)
127
- onAction('update', formData)
128
- }
129
-
130
- const onClickAction = (type: string, file?: Event): void => {
131
- switch (type) {
132
- case 'updates':
133
- onChangeFiles(file)
134
- break
135
- case 'refresh':
136
- onRefresh()
137
- break
138
- case 'enable':
139
- onAction('enable')
140
- break
141
- case 'disable':
142
- onAction('disable')
143
- break
144
- case 'on':
145
- onAction('on')
146
- break
147
- case 'off':
148
- onAction('off')
149
- break
150
- case 'remove':
151
- onAction('remove')
152
- break
153
- }
154
- }
155
- </script>
156
-
157
- <style>
158
- :root {
159
- --action-link-container-bg-color: #e9f6fd;
160
- --vui-action-label-color: #333;
161
- }
162
- :root.dark-theme {
163
- --action-link-container-bg-color: #29414e;
164
- --vui-action-label-color: #adbbc4;
165
- }
166
- </style>
167
-
168
- <style lang="scss" scoped>
169
- @import '~/assets/scss/common/mixins.scss';
170
-
171
- .packages-page {
172
- @include flex($dir: column);
173
- height: 100%;
174
-
175
- .grid-toolbar {
176
- .icon {
177
- display: block;
178
- width: 16px;
179
- height: 16px;
180
- min-width: 16px;
181
- min-height: 16px;
182
- background-size: 100% auto;
183
- margin-right: 5px;
184
- }
185
-
186
- :deep(.btn) {
187
- text-transform: none;
188
- font-size: 13px;
189
- font-weight: normal;
190
- color: var(--vui-action-label-color);
191
- min-width: unset;
192
- padding: 4px;
193
- line-height: normal;
194
- margin-right: 4px;
195
- display: flex;
196
- align-items: center;
197
- letter-spacing: normal;
198
-
199
- &:not(:disabled):hover {
200
- color: var(--vui-action-label-color);
201
- text-decoration: none;
202
- background-color: var(--action-link-container-bg-color);
203
- border: 1px solid #c7e9ff;
204
- }
205
- }
206
- }
207
- }
208
- </style>
1
+ <template>
2
+ <div class="packages-page">
3
+ <common-headline :headline="localization.common.softwarePackages" />
4
+
5
+ <div class="grid-toolbar">
6
+ <common-tools-actions
7
+ test-id="packages-tools-panel"
8
+ :actions="actions"
9
+ @click="onClickAction"
10
+ >
11
+ <template #icon="{ data }">
12
+ <span
13
+ v-if="data.type === 'updates'"
14
+ class="vx-icon-import icon"
15
+ ></span>
16
+ <span
17
+ v-if="data.type === 'refresh'"
18
+ class="vsphere-icon-reset icon"
19
+ ></span>
20
+ </template>
21
+ </common-tools-actions>
22
+ </div>
23
+
24
+ <common-pages-packages-table-view
25
+ v-model="selectedRow"
26
+ :data-table="props.packagesData?.items || []"
27
+ :total-items="props.packagesData?.total_items || 0"
28
+ :total-pages="props.packagesData?.total_pages || 1"
29
+ :pagination="pagination"
30
+ :loading="props.loading"
31
+ @pagination="onPagination"
32
+ @sort="onSort"
33
+ />
34
+ </div>
35
+ </template>
36
+
37
+ <script lang="ts" setup>
38
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
39
+ import type {
40
+ UI_I_Pagination,
41
+ } from '~/lib/models/table/interfaces'
42
+ import type { UI_T_SelectedRow } from '~/components/atoms/table/dataGrid/lib/models/types'
43
+ import type { UI_I_Button } from '~/components/common/tools/lib/models/interfaces'
44
+ import type { UI_T_Action } from '~/components/common/pages/packages/lib/models/types'
45
+ import { actionsFunc } from '~/components/common/pages/packages/lib/config/actions'
46
+
47
+
48
+ const selectedRow = defineModel<UI_T_SelectedRow>('selectedRow')
49
+ const pagination = defineModel<UI_I_Pagination>('pagination')
50
+
51
+ const props = defineProps<{
52
+ packagesData: any | null
53
+ loading: boolean
54
+ }>()
55
+ const emits = defineEmits<{
56
+ (event: 'sort', value: string): void
57
+ (event: 'pagination', value: UI_I_Pagination): void
58
+ (event: 'action', value: [UI_T_Action, FormData | null]): void
59
+ (event: 'refresh'): void
60
+ }>()
61
+
62
+ const localization = computed<UI_I_Localization>(() => useLocal())
63
+
64
+ const disabledActions = ref<string[]>([
65
+ 'enable',
66
+ 'disable',
67
+ 'on',
68
+ 'off',
69
+ 'remove',
70
+ ])
71
+
72
+ const actions = computed<UI_I_Button[]>(() =>
73
+ actionsFunc(localization.value, disabledActions.value)
74
+ )
75
+
76
+ const onPagination = (value: UI_I_Pagination): void => {
77
+ emits('pagination', value)
78
+ }
79
+ const onSort = (value: string): void => {
80
+ emits('sort', value)
81
+ }
82
+
83
+ const checkAllActions = (): void => {
84
+ if (typeof selectedRow.value !== 'number') return
85
+
86
+ const selectedPackage = props.packagesData?.items[selectedRow.value]
87
+ if (!selectedPackage) return
88
+
89
+ disabledActions.value = []
90
+ if (window.location.hostname === 'dev-pn.aobfg.ru') return
91
+
92
+ if (selectedPackage.not_runnable || selectedPackage.required) {
93
+ disabledActions.value = ['enable', 'disable', 'on', 'off']
94
+ }
95
+
96
+ if (selectedPackage.required) {
97
+ disabledActions.value = ['remove']
98
+ }
99
+ }
100
+ watch(
101
+ selectedRow,
102
+ () => {
103
+ checkAllActions()
104
+ },
105
+ { immediate: true }
106
+ )
107
+
108
+ const onAction = async (
109
+ action: UI_T_Action,
110
+ file: FormData | null = null
111
+ ): Promise<void> => {
112
+ emits('action', [action, file])
113
+ }
114
+ const onRefresh = (): void => {
115
+ emits('refresh')
116
+ }
117
+ const onChangeFiles = (event: Event | undefined): void => {
118
+ if (!event) return
119
+
120
+ const target = event.target as HTMLInputElement
121
+ if (!target.files) return
122
+
123
+ const file = target.files[0]
124
+
125
+ const formData = new FormData()
126
+ formData.append('package', file)
127
+ onAction('update', formData)
128
+ }
129
+
130
+ const onClickAction = (type: string, file?: Event): void => {
131
+ switch (type) {
132
+ case 'updates':
133
+ onChangeFiles(file)
134
+ break
135
+ case 'refresh':
136
+ onRefresh()
137
+ break
138
+ case 'enable':
139
+ onAction('enable')
140
+ break
141
+ case 'disable':
142
+ onAction('disable')
143
+ break
144
+ case 'on':
145
+ onAction('on')
146
+ break
147
+ case 'off':
148
+ onAction('off')
149
+ break
150
+ case 'remove':
151
+ onAction('remove')
152
+ break
153
+ }
154
+ }
155
+ </script>
156
+
157
+ <style>
158
+ :root {
159
+ --action-link-container-bg-color: #e9f6fd;
160
+ --vui-action-label-color: #333;
161
+ }
162
+ :root.dark-theme {
163
+ --action-link-container-bg-color: #29414e;
164
+ --vui-action-label-color: #adbbc4;
165
+ }
166
+ </style>
167
+
168
+ <style lang="scss" scoped>
169
+ @import '~/assets/scss/common/mixins.scss';
170
+
171
+ .packages-page {
172
+ @include flex($dir: column);
173
+ height: 100%;
174
+
175
+ .grid-toolbar {
176
+ .icon {
177
+ display: block;
178
+ width: 16px;
179
+ height: 16px;
180
+ min-width: 16px;
181
+ min-height: 16px;
182
+ background-size: 100% auto;
183
+ margin-right: 5px;
184
+ }
185
+
186
+ :deep(.btn) {
187
+ text-transform: none;
188
+ font-size: 13px;
189
+ font-weight: normal;
190
+ color: var(--vui-action-label-color);
191
+ min-width: unset;
192
+ padding: 4px;
193
+ line-height: normal;
194
+ margin-right: 4px;
195
+ display: flex;
196
+ align-items: center;
197
+ letter-spacing: normal;
198
+
199
+ &:not(:disabled):hover {
200
+ color: var(--vui-action-label-color);
201
+ text-decoration: none;
202
+ background-color: var(--action-link-container-bg-color);
203
+ border: 1px solid #c7e9ff;
204
+ }
205
+ }
206
+ }
207
+ }
208
+ </style>
@@ -1,68 +1,68 @@
1
- <template>
2
- <div>
3
- <nuxt-link
4
- :class="['unit', { disabled: props.item.disabled }]"
5
- :to="!props.item.disabled && navigate"
6
- :title="
7
- props.item.disabled
8
- ? localization.common.inDevelopment
9
- : props.item.navigateTo
10
- "
11
- :data-id="props.testId"
12
- @click="emits('change-navigation')"
13
- @contextmenu="emits('change-navigation')"
14
- >
15
- <span class="icon-2">
16
- <ui-icon :name="props.item.iconName" width="34" height="34"></ui-icon>
17
- </span>
18
- <div class="unit-text" :title="props.item.text">
19
- {{ props.item.text }}
20
- </div>
21
- </nuxt-link>
22
- </div>
23
- </template>
24
- <script setup lang="ts">
25
- import type { UI_I_Localization } from '~/lib/models/interfaces'
26
- import type { UI_I_BlockItem } from '~/components/common/pages/shortcuts/lib/models/interfaces'
27
-
28
- const props = defineProps<{
29
- item: UI_I_BlockItem
30
- testId?: string
31
- }>()
32
- const emits = defineEmits<{
33
- (event: 'change-navigation'): void
34
- }>()
35
-
36
- const localization = computed<UI_I_Localization>(() => useLocal())
37
-
38
- const navigate = computed<string>(() => '/' + props.item.navigateTo)
39
- </script>
40
- <style lang="scss" scoped>
41
- .unit {
42
- display: flex;
43
- flex-direction: column;
44
- justify-content: center;
45
- align-items: center;
46
- width: 95px;
47
- margin: 21px 10px;
48
- text-decoration-line: none;
49
-
50
- &.disabled {
51
- opacity: 0.6;
52
- cursor: not-allowed;
53
- }
54
-
55
- .icon-2 {
56
- margin: 0 10px 15px 10px;
57
- color: var(--global-font-color3);
58
- }
59
- &-text {
60
- color: var(--global-font-color3);
61
- font-size: 13px;
62
- line-height: 13px;
63
- font-weight: 400;
64
- padding-bottom: 2px;
65
- text-align: center;
66
- }
67
- }
68
- </style>
1
+ <template>
2
+ <div>
3
+ <nuxt-link
4
+ :class="['unit', { disabled: props.item.disabled }]"
5
+ :to="!props.item.disabled && navigate"
6
+ :title="
7
+ props.item.disabled
8
+ ? localization.common.inDevelopment
9
+ : props.item.navigateTo
10
+ "
11
+ :data-id="props.testId"
12
+ @click="emits('change-navigation')"
13
+ @contextmenu="emits('change-navigation')"
14
+ >
15
+ <span class="icon-2">
16
+ <ui-icon :name="props.item.iconName" width="34" height="34"></ui-icon>
17
+ </span>
18
+ <div class="unit-text" :title="props.item.text">
19
+ {{ props.item.text }}
20
+ </div>
21
+ </nuxt-link>
22
+ </div>
23
+ </template>
24
+ <script setup lang="ts">
25
+ import type { UI_I_Localization } from '~/lib/models/interfaces'
26
+ import type { UI_I_BlockItem } from '~/components/common/pages/shortcuts/lib/models/interfaces'
27
+
28
+ const props = defineProps<{
29
+ item: UI_I_BlockItem
30
+ testId?: string
31
+ }>()
32
+ const emits = defineEmits<{
33
+ (event: 'change-navigation'): void
34
+ }>()
35
+
36
+ const localization = computed<UI_I_Localization>(() => useLocal())
37
+
38
+ const navigate = computed<string>(() => '/' + props.item.navigateTo)
39
+ </script>
40
+ <style lang="scss" scoped>
41
+ .unit {
42
+ display: flex;
43
+ flex-direction: column;
44
+ justify-content: center;
45
+ align-items: center;
46
+ width: 95px;
47
+ margin: 21px 10px;
48
+ text-decoration-line: none;
49
+
50
+ &.disabled {
51
+ opacity: 0.6;
52
+ cursor: not-allowed;
53
+ }
54
+
55
+ .icon-2 {
56
+ margin: 0 10px 15px 10px;
57
+ color: var(--global-font-color3);
58
+ }
59
+ &-text {
60
+ color: var(--global-font-color3);
61
+ font-size: 13px;
62
+ line-height: 13px;
63
+ font-weight: 400;
64
+ padding-bottom: 2px;
65
+ text-align: center;
66
+ }
67
+ }
68
+ </style>
@@ -38,13 +38,28 @@
38
38
  {{ item.text }}
39
39
  </ui-chip>
40
40
 
41
- <common-pages-tasks-table-error-info
42
- v-if="item.data.error"
43
- :id="item.data.testId"
44
- :error="item.data.error"
45
- :opened-error="openedError"
46
- @toggle-error="onToggleError"
47
- />
41
+ <div v-if="item.data.error" class="task-table__tooltip">
42
+ <common-tooltip-help
43
+ :test-id="item.data.testId"
44
+ :help-id="item.data.testId + 'icon'"
45
+ :title="localization.common.failureReason"
46
+ :help-text="item.data.error"
47
+ status="error"
48
+ dropdown-width="232px"
49
+ dropdown-left
50
+ dropdown-top
51
+ />
52
+ </div>
53
+
54
+ <!-- // TODO Удалить компонент если не используется? -->
55
+
56
+ <!-- <common-pages-tasks-table-error-info-->
57
+ <!-- v-if="item.data.error"-->
58
+ <!-- :id="item.data.testId"-->
59
+ <!-- :error="item.data.error"-->
60
+ <!-- :opened-error="openedError"-->
61
+ <!-- @toggle-error="onToggleError"-->
62
+ <!-- />-->
48
63
  </template>
49
64
 
50
65
  <template #default-actions="{ item }">
@@ -331,6 +346,9 @@ const onSelectNodeOfTree = (
331
346
  margin-left: 8px;
332
347
  }
333
348
  }
349
+ &__tooltip {
350
+ margin-left: 8px;
351
+ }
334
352
  }
335
353
 
336
354
  .skeleton-header {
@@ -30,15 +30,30 @@
30
30
  {{ normalizedTaskDetails[2].text }}
31
31
  </ui-chip>
32
32
 
33
- <common-pages-tasks-table-error-info
34
- v-if="normalizedTaskDetails[2].data.error"
35
- :id="`${normalizedTaskDetails[2].data.testId}-expand-details`"
36
- :error="normalizedTaskDetails[2].data.error"
37
- :opened-error="openedError"
38
- in-collapse-content
39
- is-small
40
- @toggle-error="onToggleError"
41
- />
33
+ <div v-if="normalizedTaskDetails[2].data.error" class="expand-details__tooltip">
34
+ <common-tooltip-help
35
+ :test-id="normalizedTaskDetails[2].data.testId"
36
+ :help-id="`${normalizedTaskDetails[2].data.testId}-expand-icon`"
37
+ :title="localization.common.failureReason"
38
+ :help-text="normalizedTaskDetails[2].data.error"
39
+ status="error"
40
+ dropdown-width="232px"
41
+ dropdown-left
42
+ dropdown-top
43
+ />
44
+ </div>
45
+
46
+ <!-- // TODO Удалить компонент если не используется? -->
47
+
48
+ <!-- <common-pages-tasks-table-error-info-->
49
+ <!-- v-if="normalizedTaskDetails[2].data.error"-->
50
+ <!-- :id="`${normalizedTaskDetails[2].data.testId}-expand-details`"-->
51
+ <!-- :error="normalizedTaskDetails[2].data.error"-->
52
+ <!-- :opened-error="openedError"-->
53
+ <!-- in-collapse-content-->
54
+ <!-- is-small-->
55
+ <!-- @toggle-error="onToggleError"-->
56
+ <!-- />-->
42
57
  </span>
43
58
  </div>
44
59
 
@@ -182,5 +197,8 @@ const onSelectNodeOfTree = (data: any): void => {
182
197
  width: max-content;
183
198
  }
184
199
  }
200
+ &__tooltip {
201
+ margin-left: 6px;
202
+ }
185
203
  }
186
204
  </style>