bfg-common 1.5.182 → 1.5.183

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.
@@ -4,13 +4,21 @@
4
4
  show
5
5
  :title="localization.common.selectStorage"
6
6
  :texts="texts"
7
+ :is-disabled-accept="isDisabledAccept"
7
8
  test-id="storage-modal-new"
8
9
  size="md"
10
+ width="720px"
9
11
  @hide="emits('hide')"
10
12
  @submit="emits('submit')"
11
13
  >
12
14
  <template #content>
13
- <div class="select-storage-modal-container">
15
+ <div
16
+ ref="selectStorageModalContainer"
17
+ :class="[
18
+ 'select-storage-modal-container',
19
+ { 'has-scroll': isHasScroll },
20
+ ]"
21
+ >
14
22
  <span class="description-text">{{
15
23
  localization.common
16
24
  .followingDatastoresAccessibleDestinationResourceThatSelected
@@ -22,7 +30,12 @@
22
30
  hide-compatibility
23
31
  hide-alert
24
32
  @submit="emits('change-storage', $event)"
33
+ @is-selected-row="isDisabledAccept = !$event"
25
34
  />
35
+ <span class="count-text"
36
+ >{{ props.datastore.length }}
37
+ {{ localization.common.datastores }}</span
38
+ >
26
39
  </div>
27
40
  </template>
28
41
  <template #footerLeftContent>
@@ -32,6 +45,7 @@
32
45
  </template>
33
46
 
34
47
  <script setup lang="ts">
48
+ import { useElementSize } from '@vueuse/core'
35
49
  import type { UI_I_ModalTexts } from '~/node_modules/bfg-uikit/components/ui/modal/models/interfaces'
36
50
  import type { UI_I_DatastoreTableItem } from '~/lib/models/store/storage/interfaces'
37
51
  import type { UI_I_Localization } from '~/lib/models/interfaces'
@@ -52,18 +66,43 @@ const emits = defineEmits<{
52
66
 
53
67
  const localization = computed<UI_I_Localization>(() => useLocal())
54
68
 
69
+ const isDisabledAccept = ref<boolean>(false)
70
+
55
71
  const texts = ref<UI_I_ModalTexts>({
72
+ button1: localization.value.common.cancel,
56
73
  button2: localization.value.common.select,
57
74
  })
75
+
76
+ const selectStorageModalContainer = ref<any>(null)
77
+ const { width, height } = useElementSize(selectStorageModalContainer)
78
+ const isHasScroll = ref<boolean>(false)
79
+ const isScrollVisible = (element: HTMLElement): boolean =>
80
+ element.scrollHeight > element.clientHeight
81
+
82
+ watch([width, height], () => {
83
+ if (!selectStorageModalContainer.value) return
84
+
85
+ isHasScroll.value = isScrollVisible(selectStorageModalContainer.value)
86
+ })
58
87
  </script>
59
88
 
60
89
  <style scoped lang="scss">
61
90
  .select-storage-modal-container {
91
+ height: calc(100vh - 300px);
92
+ overflow-y: auto;
62
93
  display: flex;
63
94
  flex-direction: column;
64
- grid-gap: 12px;
95
+ //grid-gap: 12px;
65
96
  padding-left: 32px;
66
- padding-bottom: 5px;
97
+ padding-top: 8px;
98
+ padding-bottom: 8px;
99
+
100
+ &:not(.has-scroll) {
101
+ padding-right: 32px;
102
+ }
103
+ &.has-scroll {
104
+ padding-right: 18px;
105
+ }
67
106
 
68
107
  .description-text {
69
108
  font-size: 12px;
@@ -71,5 +110,14 @@ const texts = ref<UI_I_ModalTexts>({
71
110
  line-height: 14.52px;
72
111
  color: #9da6ad;
73
112
  }
113
+ .count-text {
114
+ text-align: right;
115
+ font-size: 12px;
116
+ font-weight: 400;
117
+ color: #9da6ad;
118
+ margin-bottom: 8px;
119
+ margin-top: 8px;
120
+ text-transform: lowercase;
121
+ }
74
122
  }
75
123
  </style>
@@ -25,6 +25,9 @@
25
25
  @select="emits('select', $event)"
26
26
  />
27
27
  </div>
28
+ <p class="count-text">
29
+ {{ props.networksTable.length }} {{ localization.common.networks }}
30
+ </p>
28
31
  </template>
29
32
  <template #footerLeftContent>
30
33
  <span></span>
@@ -60,4 +63,14 @@ const modalTexts = ref<UI_I_ModalTexts>({
60
63
  })
61
64
  </script>
62
65
 
63
- <style scoped lang="scss"></style>
66
+ <style scoped lang="scss">
67
+ .count-text {
68
+ text-align: right;
69
+ font-size: 12px;
70
+ font-weight: 400;
71
+ color: #9da6ad;
72
+ margin-bottom: 8px;
73
+ margin-top: 8px;
74
+ text-transform: lowercase;
75
+ }
76
+ </style>
@@ -2,6 +2,7 @@
2
2
  <ui-data-table
3
3
  :data="data"
4
4
  :options="options"
5
+ size="sm"
5
6
  test-id="data-table-main"
6
7
  class="network-table"
7
8
  server-off
@@ -16,18 +16,15 @@
16
16
  {{ localization.common.toolsEnable }}
17
17
  </template>
18
18
  <template #stackBlockContent>
19
- <div :title="localization.common.inDevelopment" class="cursor-not-allowed">
20
- <input
21
- id="tools-2"
22
- v-model="tools"
23
- disabled
24
- data-id="tools-2-checkbox"
25
- type="checkbox"
26
- />
27
- <label for="tools-2" class="label-text-normal cursor-not-allowed" >{{
28
- localization.common.enable
29
- }}</label>
30
- </div>
19
+ <input
20
+ id="tools-2"
21
+ v-model="tools"
22
+ data-id="tools-2-checkbox"
23
+ type="checkbox"
24
+ />
25
+ <label for="tools-2" class="label-text-normal">{{
26
+ localization.common.enable
27
+ }}</label>
31
28
  </template>
32
29
  </atoms-stack-block>
33
30
  </template>
@@ -357,12 +357,6 @@ setTimeout(() => {
357
357
  capabilities.value.compatibility[0].text = newValue.common.compatibilityItem1
358
358
  capabilities.value.compatibility[1].text = newValue.common.compatibilityItem2
359
359
  capabilities.value.compatibility[2].text = newValue.common.compatibilityItem3
360
- capabilities.value.guestOsFamilies[2].text = newValue.common.other
361
- capabilities.value.guestOsVersions.linux[19].text = capabilities.value.guestOsVersions.linux[19].text.replace('Other', newValue.common.other)
362
- capabilities.value.guestOsVersions.linux[20].text = capabilities.value.guestOsVersions.linux[20].text.replace('Other', newValue.common.other)
363
- capabilities.value.guestOsVersions.other[4].text = capabilities.value.guestOsVersions.other[4].text.replace('Other', newValue.common.other)
364
- capabilities.value.guestOsVersions.other[5].text = capabilities.value.guestOsVersions.other[5].text.replace('Other', newValue.common.other)
365
-
366
360
  },
367
361
  { deep: true }
368
362
  )
@@ -42,6 +42,7 @@ const props = defineProps<{
42
42
  }>()
43
43
  const emits = defineEmits<{
44
44
  (event: 'submit', value: UI_I_DatastoreTableItem): void
45
+ (event: 'is-selected-row', value: boolean): void
45
46
  }>()
46
47
 
47
48
  const { $store }: any = useNuxtApp()
@@ -97,6 +98,13 @@ watch(
97
98
  },
98
99
  { immediate: true }
99
100
  )
101
+ watch(
102
+ selectedRow,
103
+ (newValue) => {
104
+ emits('is-selected-row', typeof newValue === 'number')
105
+ },
106
+ { immediate: true }
107
+ )
100
108
 
101
109
  watch(
102
110
  () => props.storageSubmit,
@@ -17,6 +17,7 @@
17
17
  :options="tableOptions"
18
18
  :loading="loading"
19
19
  :default-layout="false"
20
+ :texts="tableTexts"
20
21
  test-id="select-storage-data-table"
21
22
  server-off
22
23
  size="sm"
@@ -62,7 +63,10 @@
62
63
  </template>
63
64
 
64
65
  <script setup lang="ts">
65
- import type { UI_I_DataTable } from '~/node_modules/bfg-uikit/components/ui/dataTable/models/interfaces'
66
+ import type {
67
+ UI_I_DataTable,
68
+ UI_I_TableTexts,
69
+ } from '~/node_modules/bfg-uikit/components/ui/dataTable/models/interfaces'
66
70
  import type { UI_I_DatastoreTableItem } from '~/lib/models/store/storage/interfaces'
67
71
  import type { UI_I_Localization } from '~/lib/models/interfaces'
68
72
  import {
@@ -70,6 +74,7 @@ import {
70
74
  tableDataFunc,
71
75
  tableOptions,
72
76
  } from '~/components/common/vm/actions/common/select/storage/new/lib/config/table'
77
+ import { tableTextsFunc } from '~/lib/config/uiTable'
73
78
 
74
79
  const selectedRow = defineModel<number | null>('selectedRow')
75
80
 
@@ -87,6 +92,10 @@ const emits = defineEmits<{
87
92
 
88
93
  const localization = computed<UI_I_Localization>(() => useLocal())
89
94
 
95
+ const tableTexts = computed<UI_I_TableTexts>(() =>
96
+ tableTextsFunc(localization.value)
97
+ )
98
+
90
99
  const storageCount = computed<string>(() =>
91
100
  localization.value.vmWizard.storageCount.replace(
92
101
  '{0}',
@@ -238,8 +238,16 @@ export const tableBodyFunc = (
238
238
  text: localization.common.supported,
239
239
  }
240
240
 
241
- thinProvisioningData = getStatus(item.thin_provisioning)
242
- storage_io_control = getStatus(item.storage_io_control)
241
+ thinProvisioningData = getStatus(
242
+ item.thin_provisioning,
243
+ localization.common.yes,
244
+ localization.common.no
245
+ )
246
+ storage_io_control = getStatus(
247
+ item.storage_io_control,
248
+ localization.common.yes,
249
+ localization.common.no
250
+ )
243
251
 
244
252
  result.push({
245
253
  row: key,
@@ -257,7 +265,7 @@ export const tableBodyFunc = (
257
265
  key: 'state',
258
266
  col: 1,
259
267
  text: stateData.text,
260
- data: stateData
268
+ data: stateData,
261
269
  },
262
270
  { col: 2, text: $binary.round(item.capacity.capacity_mb) },
263
271
  {
@@ -282,7 +290,7 @@ export const tableBodyFunc = (
282
290
  text: item.thin_provisioning
283
291
  ? localization.common.yes
284
292
  : localization.common.no,
285
- data: thinProvisioningData
293
+ data: thinProvisioningData,
286
294
  },
287
295
  {
288
296
  col: 8,
@@ -292,7 +300,7 @@ export const tableBodyFunc = (
292
300
  key: 'state',
293
301
  col: 9,
294
302
  text: item.hardware_acceleration,
295
- data: hardwareAccelerationData
303
+ data: hardwareAccelerationData,
296
304
  },
297
305
  {
298
306
  col: 10,
@@ -306,7 +314,7 @@ export const tableBodyFunc = (
306
314
  key: 'state',
307
315
  col: 12,
308
316
  text: item.storage_io_control,
309
- data: storage_io_control
317
+ data: storage_io_control,
310
318
  },
311
319
  ],
312
320
  })
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "bfg-common",
3
3
  "private": false,
4
- "version": "1.5.182",
4
+ "version": "1.5.183",
5
5
  "scripts": {
6
6
  "build": "nuxt build",
7
7
  "dev": "nuxt dev --port=3002",
@@ -34,7 +34,7 @@
34
34
  "@nuxtjs/eslint-config-typescript": "^12.0.0",
35
35
  "@vueuse/components": "^10.1.2",
36
36
  "date-fns": "^2.29.3",
37
- "bfg-nuxt-3-graph": "1.0.24",
37
+ "bfg-nuxt-3-graph": "1.0.25",
38
38
  "bfg-uikit": "1.0.417",
39
39
  "html2canvas": "^1.4.1",
40
40
  "prettier-eslint": "^15.0.1"