bfg-common 1.6.112 → 1.6.114

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 (30) hide show
  1. package/assets/localization/local_be.json +13 -2
  2. package/assets/localization/local_en.json +13 -2
  3. package/assets/localization/local_hy.json +13 -2
  4. package/assets/localization/local_kk.json +13 -2
  5. package/assets/localization/local_ru.json +13 -2
  6. package/assets/localization/local_zh.json +13 -2
  7. package/components/common/configure/advancedSystemSettings/AdvancedSystemSettings.vue +25 -17
  8. package/components/common/configure/advancedSystemSettings/New.vue +41 -0
  9. package/components/common/configure/advancedSystemSettings/Old.vue +36 -0
  10. package/components/common/configure/advancedSystemSettings/modals/edit/Edit.vue +4 -4
  11. package/components/common/configure/advancedSystemSettings/modals/edit/New.vue +42 -23
  12. package/components/common/configure/advancedSystemSettings/modals/edit/Old.vue +5 -3
  13. package/components/common/configure/advancedSystemSettings/tableView/TableView.vue +27 -2
  14. package/components/common/configure/advancedSystemSettings/tableView/{old/field → field}/Field.vue +20 -50
  15. package/components/common/configure/advancedSystemSettings/tableView/field/New.vue +88 -0
  16. package/components/common/configure/advancedSystemSettings/tableView/field/Old.vue +73 -0
  17. package/components/common/configure/advancedSystemSettings/tableView/field/lib/config/index.ts +10 -0
  18. package/components/common/configure/advancedSystemSettings/tableView/field/lib/models/enums.ts +14 -0
  19. package/components/common/configure/advancedSystemSettings/tableView/new/New.vue +60 -130
  20. package/components/common/configure/advancedSystemSettings/tableView/new/lib/config/index.ts +112 -0
  21. package/components/common/configure/advancedSystemSettings/tableView/old/Old.vue +14 -41
  22. package/components/common/configure/advancedSystemSettings/tools/New.vue +64 -3
  23. package/components/common/configure/advancedSystemSettings/tools/Old.vue +2 -2
  24. package/components/common/configure/advancedSystemSettings/tools/Tools.vue +2 -2
  25. package/components/common/configure/physicalAdapters/modals/edit/lib/config/config.ts +59 -59
  26. package/components/common/configure/physicalAdapters/tableView/TableViewNew.vue +353 -345
  27. package/components/common/diagramMain/modals/viewSettings/viewSettings/ViewSettingsNew.vue +327 -323
  28. package/package.json +1 -1
  29. package/components/common/configure/advancedSystemSettings/tableView/new/lib/config/hostTable.ts +0 -308
  30. package/components/common/configure/advancedSystemSettings/tableView/old/field/lib/models/enums.ts +0 -14
@@ -3959,7 +3959,17 @@
3959
3959
  "streamKeyValidation": "Праверка Stream Key",
3960
3960
  "hostSettingsSubtitle": "Імя хаста, пад якім метрыкі будуць адпраўляцца ў Monq",
3961
3961
  "hostNameLabel": "Імя хаста (як адлюстроўваецца ў Monq)",
3962
- "metricsWillAppearInMonqText": "Метрыкі будуць адлюстроўвацца ў Monq пад гэтым імем. Звычайна гэта IP гіпервізара або FQDN."
3962
+ "metricsWillAppearInMonqText": "Метрыкі будуць адлюстроўвацца ў Monq пад гэтым імем. Звычайна гэта IP гіпервізара або FQDN.",
3963
+ "monqSystemStatusDescription": "Сачыце за прадукцыйнасцю адаптара і правярайце падключэнні да Monq",
3964
+ "adapterIsRunning": "Адаптар працуе",
3965
+ "metricsAreBeingSent": "Метрыкі адпраўляюцца (адпраўлена: {0})",
3966
+ "monqIsNotAvailable": "Monq недаступны",
3967
+ "deleteMonqIntegrationConfiguration": "Вы ўпэўнены, што хочаце выдаліць канфігурацыю інтэграцыі Monq?",
3968
+ "configurationSavedAdapterStarted": "Канфігурацыя захавана, адаптар запушчаны",
3969
+ "monqAdapterLogs": "Логі адаптара Monq",
3970
+ "clearLogs": "Ачысціць логі",
3971
+ "noLogs": "Няма логаў",
3972
+ "noErrorLogs": "Няма логаў з памылкамі"
3963
3973
  },
3964
3974
  "glpi": {
3965
3975
  "connectToGlpi": "Падключыцца да GLPI",
@@ -4648,7 +4658,8 @@
4648
4658
  "advancedSystemSettings": {
4649
4659
  "key": "Ключ",
4650
4660
  "value": "Значэнне",
4651
- "summary": "Зводка"
4661
+ "summary": "Зводка",
4662
+ "keysCountText": "ключ(ы)"
4652
4663
  },
4653
4664
  "tagsAndAttributes": {
4654
4665
  "attributeDeleteConfirmation": "Вы ўпэўненыя, што хочаце выдаліць карыстацкі атрыбут \"{attributeName}\"?",
@@ -3963,7 +3963,17 @@
3963
3963
  "streamKeyValidation": "Stream Key validation",
3964
3964
  "hostSettingsSubtitle": "The hostname under which metrics will be sent to Monq",
3965
3965
  "hostNameLabel": "Hostname (as shown in Monq)",
3966
- "metricsWillAppearInMonqText": "Metrics will appear in Monq under this name. Usually the hypervisor IP or FQDN."
3966
+ "metricsWillAppearInMonqText": "Metrics will appear in Monq under this name. Usually the hypervisor IP or FQDN.",
3967
+ "monqSystemStatusDescription": "Monitor adapter performance and verify connections to Monq",
3968
+ "adapterIsRunning": "Adapter is running",
3969
+ "metricsAreBeingSent": "Metrics are being sent (sent: {0})",
3970
+ "monqIsNotAvailable": "Monq is not available",
3971
+ "deleteMonqIntegrationConfiguration": "Are you sure you want to delete the Monq integration configuration?",
3972
+ "configurationSavedAdapterStarted": "Configuration saved, adapter started",
3973
+ "monqAdapterLogs": "Monq Adapter Logs",
3974
+ "clearLogs": "Clear Logs",
3975
+ "noLogs": "No logs",
3976
+ "noErrorLogs": "No Error logs"
3967
3977
  },
3968
3978
  "glpi": {
3969
3979
  "connectToGlpi": "Connect to GLPI",
@@ -4653,7 +4663,8 @@
4653
4663
  "advancedSystemSettings": {
4654
4664
  "key": "Key",
4655
4665
  "value": "Value",
4656
- "summary": "Summary"
4666
+ "summary": "Summary",
4667
+ "keysCountText": "key(s)"
4657
4668
  },
4658
4669
  "tagsAndAttributes": {
4659
4670
  "attributeDeleteConfirmation": "Are you sure you want to delete the custom attribute \"{attributeName}\"?",
@@ -3963,7 +3963,17 @@
3963
3963
  "streamKeyValidation": "Stream Key-ի ստուգում",
3964
3964
  "hostSettingsSubtitle": "Հոսթի անունը, որի ներքո մետրիկաները կուղարկվեն Monq",
3965
3965
  "hostNameLabel": "Հոսթի անունը (ինչպես ցուցադրվում է Monq-ում)",
3966
- "metricsWillAppearInMonqText": "Մետրիկաները կհայտնվեն Monq-ում այս անունով։ Սովորաբար դա հիպերվիզորի IP-ն կամ FQDN-ն է։"
3966
+ "metricsWillAppearInMonqText": "Մետրիկաները կհայտնվեն Monq-ում այս անունով։ Սովորաբար դա հիպերվիզորի IP-ն կամ FQDN-ն է։",
3967
+ "monqSystemStatusDescription": "Վերահսկեք ադապտերի աշխատանքը և ստուգեք Monq-ի հետ կապերը",
3968
+ "adapterIsRunning": "Ադապտերը աշխատում է",
3969
+ "metricsAreBeingSent": "Մետրիկաները ուղարկվում են (ուղարկված՝ {0})",
3970
+ "monqIsNotAvailable": "Monq-ը հասանելի չէ",
3971
+ "deleteMonqIntegrationConfiguration": "Վստա՞հ եք, որ ցանկանում եք ջնջել Monq ինտեգրման կոնֆիգուրացիան",
3972
+ "configurationSavedAdapterStarted": "Կոնֆիգուրացիան պահպանված է, ադապտերը գործարկված է",
3973
+ "monqAdapterLogs": "Monq ադապտերի լոգեր",
3974
+ "clearLogs": "Մաքրել լոգերը",
3975
+ "noLogs": "Լոգեր չկան",
3976
+ "noErrorLogs": "Սխալների լոգեր չկան"
3967
3977
  },
3968
3978
  "glpi": {
3969
3979
  "connectToGlpi": "Միացեք GLPI- ին",
@@ -4652,7 +4662,8 @@
4652
4662
  "advancedSystemSettings": {
4653
4663
  "key": "Բանալի",
4654
4664
  "value": "Արժեք",
4655
- "summary": "Ամփոփում"
4665
+ "summary": "Ամփոփում",
4666
+ "keysCountText": "բանալի(ներ)"
4656
4667
  },
4657
4668
  "tagsAndAttributes": {
4658
4669
  "attributeDeleteConfirmation": "Համոզվա՞ծ եք, որ ցանկանում եք հեռացնել \"{attributeName}\" հատուկ ատրիբուտը?",
@@ -3962,7 +3962,17 @@
3962
3962
  "streamKeyValidation": "Stream Key тексеруі",
3963
3963
  "hostSettingsSubtitle": "Метрикалар Monq-қа жіберілетін хост атауы",
3964
3964
  "hostNameLabel": "Хост атауы (Monq-та көрсетілгендей)",
3965
- "metricsWillAppearInMonqText": "Метрикалар Monq-та осы атаумен көрінеді. Әдетте бұл гипервизордың IP мекенжайы немесе FQDN."
3965
+ "metricsWillAppearInMonqText": "Метрикалар Monq-та осы атаумен көрінеді. Әдетте бұл гипервизордың IP мекенжайы немесе FQDN.",
3966
+ "monqSystemStatusDescription": "Адаптердің өнімділігін бақылаңыз және Monq-пен қосылымдарды тексеріңіз",
3967
+ "adapterIsRunning": "Адаптер жұмыс істеп тұр",
3968
+ "metricsAreBeingSent": "Метрикалар жіберілуде (жіберілгені: {0})",
3969
+ "monqIsNotAvailable": "Monq қолжетімсіз",
3970
+ "deleteMonqIntegrationConfiguration": "Monq интеграциясының конфигурациясын жойғыңыз келетініне сенімдісіз бе?",
3971
+ "configurationSavedAdapterStarted": "Конфигурация сақталды, адаптер іске қосылды",
3972
+ "monqAdapterLogs": "Monq адаптерінің логтары",
3973
+ "clearLogs": "Логтарды тазалау",
3974
+ "noLogs": "Логтар жоқ",
3975
+ "noErrorLogs": "Қате логтары жоқ"
3966
3976
  },
3967
3977
  "glpi": {
3968
3978
  "connectToGlpi": "GLPI-ге қосылыңыз",
@@ -4651,7 +4661,8 @@
4651
4661
  "advancedSystemSettings": {
4652
4662
  "key": "Кілт",
4653
4663
  "value": "Мән",
4654
- "summary": "Түйіндеме"
4664
+ "summary": "Түйіндеме",
4665
+ "keysCountText": "кілт(тер)"
4655
4666
  },
4656
4667
  "tagsAndAttributes": {
4657
4668
  "attributeDeleteConfirmation": "\"{attributeName}\" теңшелетін төлсипатын жойғыңыз келетініне сенімдісіз бе?",
@@ -3962,7 +3962,17 @@
3962
3962
  "streamKeyValidation": "Проверка Stream Key",
3963
3963
  "hostSettingsSubtitle": "Имя хоста, под которым метрики будут отправляться в Monq",
3964
3964
  "hostNameLabel": "Имя хоста (как отображается в Monq)",
3965
- "metricsWillAppearInMonqText": "Метрики будут отображаться в Monq под этим именем. Обычно это IP гипервизора или FQDN."
3965
+ "metricsWillAppearInMonqText": "Метрики будут отображаться в Monq под этим именем. Обычно это IP гипервизора или FQDN.",
3966
+ "monqSystemStatusDescription": "Отслеживайте производительность адаптера и проверяйте подключения к Monq",
3967
+ "adapterIsRunning": "Адаптер запущен",
3968
+ "metricsAreBeingSent": "Метрики отправляются (отправлено: {0})",
3969
+ "monqIsNotAvailable": "Monq недоступен",
3970
+ "deleteMonqIntegrationConfiguration": "Вы уверены, что хотите удалить конфигурацию интеграции Monq?",
3971
+ "configurationSavedAdapterStarted": "Конфигурация сохранена, адаптер запущен",
3972
+ "monqAdapterLogs": "Логи адаптера Monq",
3973
+ "clearLogs": "Очистить логи",
3974
+ "noLogs": "Нет логов",
3975
+ "noErrorLogs": "Нет логов с ошибками"
3966
3976
  },
3967
3977
  "glpi": {
3968
3978
  "connectToGlpi": "Подключитесь к GLPI",
@@ -4651,7 +4661,8 @@
4651
4661
  "advancedSystemSettings": {
4652
4662
  "key": "Ключ",
4653
4663
  "value": "Значение",
4654
- "summary": "Сводка"
4664
+ "summary": "Сводка",
4665
+ "keysCountText": "ключ(и)"
4655
4666
  },
4656
4667
  "tagsAndAttributes": {
4657
4668
  "attributeDeleteConfirmation": "Вы уверены, что хотите удалить пользовательский атрибут \"{attributeName}\"?",
@@ -3960,7 +3960,17 @@
3960
3960
  "streamKeyValidation": "Stream Key 验证",
3961
3961
  "hostSettingsSubtitle": "用于向 Monq 发送指标的主机名",
3962
3962
  "hostNameLabel": "主机名(在 Monq 中显示)",
3963
- "metricsWillAppearInMonqText": "指标将以此名称显示在 Monq 中。通常为虚拟化主机的 IP 或 FQDN。"
3963
+ "metricsWillAppearInMonqText": "指标将以此名称显示在 Monq 中。通常为虚拟化主机的 IP 或 FQDN。",
3964
+ "monqSystemStatusDescription": "监控适配器性能并检查与 Monq 的连接",
3965
+ "adapterIsRunning": "适配器正在运行",
3966
+ "metricsAreBeingSent": "指标正在发送(已发送:{0})",
3967
+ "monqIsNotAvailable": "Monq 不可用",
3968
+ "deleteMonqIntegrationConfiguration": "您确定要删除 Monq 集成配置吗?",
3969
+ "configurationSavedAdapterStarted": "配置已保存,适配器已启动",
3970
+ "monqAdapterLogs": "Monq 适配器日志",
3971
+ "clearLogs": "清除日志",
3972
+ "noLogs": "没有日志",
3973
+ "noErrorLogs": "没有错误日志"
3964
3974
  },
3965
3975
  "glpi": {
3966
3976
  "connectToGlpi": "连接到GLPI",
@@ -4649,7 +4659,8 @@
4649
4659
  "advancedSystemSettings": {
4650
4660
  "key": "键",
4651
4661
  "value": "值",
4652
- "summary": "摘要"
4662
+ "summary": "摘要",
4663
+ "keysCountText": "密钥"
4653
4664
  },
4654
4665
  "tagsAndAttributes": {
4655
4666
  "attributeDeleteConfirmation": "您确定要删除自定义属性\"{attributeName}\"吗?",
@@ -1,20 +1,17 @@
1
1
  <template>
2
- <atoms-loader v-show="loading" test-id="advanced-system-settings-spinner" />
3
- <div class="advanced-system-settings flex flex-col h-full">
4
- <common-configure-advanced-system-settings-tools
5
- class="mb-1"
6
- @show-edit="isShowEdit = true"
7
- />
8
-
9
- <common-configure-advanced-system-settings-table-view :data="settings" />
10
-
11
- <common-configure-advanced-system-settings-modals-edit
12
- v-if="isShowEdit"
13
- :host="props.host"
14
- :settings="settings"
15
- @hide="isShowEdit = false"
16
- />
17
- </div>
2
+ <component
3
+ :is="currentComponent"
4
+ :is-loading="isLoading"
5
+ :settings="settings"
6
+ @show-edit-modal="isShowEdit = true"
7
+ />
8
+
9
+ <common-configure-advanced-system-settings-modals-edit
10
+ v-if="isShowEdit"
11
+ :host="props.host"
12
+ :settings="settings"
13
+ @hide="isShowEdit = false"
14
+ />
18
15
  </template>
19
16
 
20
17
  <script lang="ts" setup>
@@ -27,11 +24,22 @@ const props = defineProps<{
27
24
 
28
25
  const { $store }: any = useNuxtApp()
29
26
 
30
- const loading = computed<boolean>(() => $store.getters['advancedSystemSettings/getLoading']('settings'))
27
+ const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
28
+
29
+ const currentComponent = computed(() =>
30
+ isNewView.value
31
+ ? defineAsyncComponent(() => import('./New.vue'))
32
+ : defineAsyncComponent(() => import('./Old.vue'))
33
+ )
34
+
35
+ const isLoading = computed<boolean>(() =>
36
+ $store.getters['advancedSystemSettings/getLoading']('settings')
37
+ )
31
38
 
32
39
  const settings = computed<API_UI_I_DataTable<UI_I_AdvancedSystemSetting[]>>(
33
40
  () => $store.getters['advancedSystemSettings/getSettings']
34
41
  )
42
+
35
43
  const getSettings = async (): Promise<void> => {
36
44
  await $store.dispatch('advancedSystemSettings/A_GET_SETTINGS', props.host)
37
45
  }
@@ -0,0 +1,41 @@
1
+ <template>
2
+ <div class="advanced-system-settings flex flex-col h-full">
3
+ <div v-if="props.isLoading" class="flex justify-between items-start mb-4">
4
+ <ui-skeleton-item width="160" height="22" />
5
+ <ui-skeleton-item width="34" height="34" border-radius="8" />
6
+ </div>
7
+ <common-configure-advanced-system-settings-tools
8
+ v-else
9
+ @show-edit-modal="emits('show-edit-modal')"
10
+ />
11
+ <common-configure-advanced-system-settings-table-view
12
+ :data="props.settings"
13
+ :is-loading="props.isLoading"
14
+ />
15
+ </div>
16
+ </template>
17
+
18
+ <script lang="ts" setup>
19
+ import type { API_UI_I_DataTable } from '~/lib/models/table/interfaces'
20
+ import type { UI_I_AdvancedSystemSetting } from '~/store/inventory/modules/configure/advancedSystemSettings/lib/models/interfaces'
21
+
22
+ const props = defineProps<{
23
+ isLoading: boolean
24
+ settings: API_UI_I_DataTable<UI_I_AdvancedSystemSetting[]>
25
+ }>()
26
+
27
+ const emits = defineEmits<{
28
+ (event: 'show-edit-modal'): void
29
+ }>()
30
+ </script>
31
+
32
+ <style lang="scss" scoped>
33
+ .advanced-system-settings {
34
+ margin-top: 6px;
35
+ margin-right: 14px;
36
+
37
+ :deep(.data-table-skeleton) {
38
+ height: inherit;
39
+ }
40
+ }
41
+ </style>
@@ -0,0 +1,36 @@
1
+ <template>
2
+ <atoms-loader
3
+ v-show="props.isLoading"
4
+ test-id="advanced-system-settings-spinner"
5
+ />
6
+ <div class="advanced-system-settings flex flex-col h-full">
7
+ <common-configure-advanced-system-settings-tools
8
+ class="mb-1"
9
+ @show-edit-modal="emits('show-edit-modal')"
10
+ />
11
+
12
+ <common-configure-advanced-system-settings-table-view
13
+ :data="props.settings"
14
+ />
15
+ </div>
16
+ </template>
17
+
18
+ <script lang="ts" setup>
19
+ import type { API_UI_I_DataTable } from '~/lib/models/table/interfaces'
20
+ import type { UI_I_AdvancedSystemSetting } from '~/store/inventory/modules/configure/advancedSystemSettings/lib/models/interfaces'
21
+
22
+ const props = defineProps<{
23
+ isLoading: boolean
24
+ settings: API_UI_I_DataTable<UI_I_AdvancedSystemSetting[]>
25
+ }>()
26
+
27
+ const emits = defineEmits<{
28
+ (event: 'show-edit-modal'): void
29
+ }>()
30
+ </script>
31
+
32
+ <style lang="scss" scoped>
33
+ .advanced-system-settings {
34
+ padding-left: 10px;
35
+ }
36
+ </style>
@@ -5,7 +5,7 @@
5
5
  v-model:invalid-fields="invalidFields"
6
6
  :host="props.host"
7
7
  :settings="props.settings"
8
- :loading="loading"
8
+ :is-loading="isLoading"
9
9
  :errors="errors"
10
10
  @hide="onHide"
11
11
  @submit="onSubmit"
@@ -39,7 +39,7 @@ const settingsLocal = ref<API_UI_I_DataTable<UI_I_AdvancedSystemSetting[]>>(
39
39
  useDeepCopy(props.settings)
40
40
  )
41
41
 
42
- const loading = ref<boolean>(false)
42
+ const isLoading = ref<boolean>(false)
43
43
 
44
44
  const errors = ref<string[]>([])
45
45
  const invalidFields = ref<string[]>([])
@@ -50,7 +50,7 @@ const onSubmit = async (): Promise<void> => {
50
50
  return
51
51
  }
52
52
 
53
- loading.value = true
53
+ isLoading.value = true
54
54
 
55
55
  const error = await $store.dispatch(
56
56
  'advancedSystemSettings/A_UPDATE_SETTINGS',
@@ -67,7 +67,7 @@ const onSubmit = async (): Promise<void> => {
67
67
  if (error) errors.value.push(error)
68
68
  else onHide()
69
69
 
70
- loading.value = false
70
+ isLoading.value = false
71
71
  }
72
72
 
73
73
  const onHide = (): void => {
@@ -1,42 +1,52 @@
1
1
  <template>
2
- <atoms-modal
3
- :title="localization.common.edit"
4
- :second-title="props.host"
5
- :loading="props.loading"
2
+ <ui-modal
3
+ :title="localization.common.editSettings"
4
+ :subtitle="props.host"
5
+ :texts="modalTextsLocal"
6
+ :is-loading="props.isLoading"
6
7
  test-id="advanced-system-settings-edit"
7
- class="advanced-system-settings"
8
+ width="720px"
8
9
  show
9
10
  @hide="onHide"
10
11
  >
11
- <template #modalBody>
12
- <atoms-alert
13
- v-show="props.errors.length"
14
- :items="props.errors"
15
- status="alert-danger"
16
- test-id="advanced-system-service-alert"
17
- class="mb-1"
18
- @remove="emits('remove-validation-errors')"
19
- />
20
-
21
- <common-configure-advanced-system-settings-table-view
22
- v-model:invalid-fields="invalidFields"
23
- :data="props.settings"
24
- />
12
+ <template #content>
13
+ <div class="advanced-system-settings-edit-modal-body grid gap-4 mx-8">
14
+ <ui-alert
15
+ v-if="props.errors.length"
16
+ :messages="props.errors"
17
+ test-id="advanced-system-settings-edit-alert"
18
+ type="error"
19
+ />
20
+
21
+ <common-configure-advanced-system-settings-table-view
22
+ v-model:settings="model"
23
+ v-model:invalid-fields="invalidFields"
24
+ :data="props.settings"
25
+ is-edit
26
+ />
27
+ </div>
25
28
  </template>
26
- </atoms-modal>
29
+ <template #footerLeftContent><span></span></template>
30
+ </ui-modal>
27
31
  </template>
28
32
 
29
33
  <script lang="ts" setup>
30
34
  import type { UI_I_Localization } from '~/lib/models/interfaces'
31
35
  import type { API_UI_I_DataTable } from '~/lib/models/table/interfaces'
32
36
  import type { UI_I_AdvancedSystemSetting } from '~/store/inventory/modules/configure/advancedSystemSettings/lib/models/interfaces'
37
+ import type { UI_I_ModalTexts } from 'bfg-uikit/components/ui/modal/models/interfaces'
33
38
 
34
- const invalidFields = defineModel<string[]>('invalid-fields', {required: true})
39
+ const model = defineModel<API_UI_I_DataTable<UI_I_AdvancedSystemSetting[]>>({
40
+ required: true,
41
+ })
42
+ const invalidFields = defineModel<string[]>('invalid-fields', {
43
+ required: true,
44
+ })
35
45
 
36
46
  const props = defineProps<{
37
47
  host: string
38
48
  settings: API_UI_I_DataTable<UI_I_AdvancedSystemSetting[]>
39
- loading: boolean
49
+ isLoading: boolean
40
50
  errors: string[]
41
51
  }>()
42
52
 
@@ -48,9 +58,18 @@ const emits = defineEmits<{
48
58
 
49
59
  const localization = computed<UI_I_Localization>(() => useLocal())
50
60
 
61
+ const modalTextsLocal = computed<UI_I_ModalTexts>(() => ({
62
+ button2: localization.value.common.save,
63
+ }))
64
+
51
65
  const onHide = (): void => {
52
66
  emits('hide')
53
67
  }
54
68
  </script>
55
69
 
56
- <style lang="scss" scoped></style>
70
+ <style lang="scss" scoped>
71
+ .advanced-system-settings-edit-modal-body {
72
+ height: 400px;
73
+ overflow: auto;
74
+ }
75
+ </style>
@@ -2,7 +2,7 @@
2
2
  <atoms-modal
3
3
  :title="localization.common.edit"
4
4
  :second-title="props.host"
5
- :loading="props.loading"
5
+ :loading="props.isLoading"
6
6
  test-id="advanced-system-settings-edit"
7
7
  class="advanced-system-settings"
8
8
  width="863px"
@@ -38,12 +38,14 @@ import type { UI_I_AdvancedSystemSetting } from '~/store/inventory/modules/confi
38
38
  const model = defineModel<API_UI_I_DataTable<UI_I_AdvancedSystemSetting[]>>({
39
39
  required: true,
40
40
  })
41
- const invalidFields = defineModel<string[]>('invalid-fields', {required: true})
41
+ const invalidFields = defineModel<string[]>('invalid-fields', {
42
+ required: true,
43
+ })
42
44
 
43
45
  const props = defineProps<{
44
46
  host: string
45
47
  settings: API_UI_I_DataTable<UI_I_AdvancedSystemSetting[]>
46
- loading: boolean
48
+ isLoading: boolean
47
49
  errors: string[]
48
50
  }>()
49
51
 
@@ -1,18 +1,21 @@
1
1
  <template>
2
2
  <component
3
3
  :is="currentComponent"
4
- v-model:settings="settings"
5
- v-model:invalid-fields="invalidFields"
6
4
  :data-table="props.data?.items || []"
7
5
  :total-items="props.data?.total_items || 0"
8
6
  :total-pages="props.data?.total_pages || 1"
9
7
  :is-edit="props.isEdit"
8
+ :is-loading="props.isLoading"
9
+ @change-setting="onChangeSetting"
10
+ @update-invalid-fields="onUpdateInvalidFields"
10
11
  />
11
12
  </template>
12
13
 
13
14
  <script lang="ts" setup>
14
15
  import type { API_UI_I_DataTable } from '~/lib/models/table/interfaces'
15
16
  import type { UI_I_AdvancedSystemSetting } from '~/store/inventory/modules/configure/advancedSystemSettings/lib/models/interfaces'
17
+ import type { UI_I_ArbitraryObject } from '~/lib/models/interfaces'
18
+ import type { UI_I_AdvancedSystemSettingsEditData } from '~/components/common/configure/advancedSystemSettings/tableView/old/lib/models/interfaces'
16
19
 
17
20
  const settings = defineModel<API_UI_I_DataTable<UI_I_AdvancedSystemSetting[]>>(
18
21
  'settings',
@@ -24,6 +27,7 @@ const invalidFields = defineModel<string[]>('invalid-fields', {
24
27
  const props = withDefaults(
25
28
  defineProps<{
26
29
  data: API_UI_I_DataTable<UI_I_AdvancedSystemSetting[]>
30
+ isLoading: boolean
27
31
  isEdit?: boolean
28
32
  }>(),
29
33
  { isEdit: false }
@@ -37,4 +41,25 @@ const currentComponent = computed(() =>
37
41
  ? defineAsyncComponent(() => import('./new/New.vue'))
38
42
  : defineAsyncComponent(() => import('./old/Old.vue'))
39
43
  )
44
+
45
+ const onChangeSetting = (
46
+ value: UI_I_AdvancedSystemSettingsEditData['value'],
47
+ key: string
48
+ ): void => {
49
+ settings.value.items = settings.value.items.map((item) => {
50
+ if (item.key === key) {
51
+ item.value = value
52
+ }
53
+ return item
54
+ })
55
+ }
56
+
57
+ const invalidFieldsLocal = ref<UI_I_ArbitraryObject<string>>({})
58
+ const onUpdateInvalidFields = (value: string, key: string): void => {
59
+ invalidFieldsLocal.value[key] = value
60
+ if (invalidFields.value)
61
+ invalidFields.value = Object.values(invalidFieldsLocal.value).filter(
62
+ (error) => error
63
+ )
64
+ }
40
65
  </script>
@@ -1,67 +1,37 @@
1
1
  <template>
2
- <atoms-tooltip-error :has-error="invalid">
3
- <template #elem>
4
- <div v-if="props.data.type === 'number'">
5
- <input
6
- v-model="valueLocal"
7
- type="number"
8
- :class="{ 'has-error': invalid }"
9
- @input="onChangeSetting($event)"
10
- />
11
- </div>
12
- <div v-if="props.data.type === 'string'">
13
- <input
14
- v-model="valueLocal"
15
- type="text"
16
- :class="{ 'has-error': invalid }"
17
- @input="onChangeSetting($event)"
18
- />
19
- </div>
20
- <div v-if="props.data.type === 'boolean'" class="select">
21
- <select
22
- v-model="valueLocal"
23
- @change="onChangeSetting($event)"
24
- :class="{ 'has-error': invalid }"
25
- >
26
- <option value="false">false</option>
27
- <option value="true">true</option>
28
- </select>
29
- </div>
30
- <!-- <div v-if="props.data.type === 'select'" class="select">-->
31
- <!-- <select-->
32
- <!-- v-model="valueLocal"-->
33
- <!-- @change="onChangeSetting($event)"-->
34
- <!-- :class="{ 'has-error': invalid }"-->
35
- <!-- >-->
36
- <!-- <option-->
37
- <!-- v-for="item2 in props.data.options"-->
38
- <!-- :key="item2.key"-->
39
- <!-- :value="item2.key"-->
40
- <!-- >-->
41
- <!-- {{ item2.value }}-->
42
- <!-- </option>-->
43
- <!-- </select>-->
44
- <!-- </div>-->
45
- </template>
46
- <template #content>
47
- {{ errorMessage }}
48
- </template>
49
- </atoms-tooltip-error>
2
+ <component
3
+ :is="currentComponent"
4
+ v-model:value="valueLocal"
5
+ :data="props.data"
6
+ :invalid="invalid"
7
+ :error-message="errorMessage"
8
+ @change="onChangeSetting"
9
+ />
50
10
  </template>
51
11
 
52
12
  <script setup lang="ts">
53
13
  import type { UI_I_AdvancedSystemSettingsEditData } from '~/components/common/configure/advancedSystemSettings/tableView/old/lib/models/interfaces'
54
- import { E_Format } from '~/components/common/configure/advancedSystemSettings/tableView/old/field/lib/models/enums'
14
+ import { UI_E_Format } from '~/components/common/configure/advancedSystemSettings/tableView/field/lib/models/enums'
55
15
  import { allRegExp } from '~/lib/config/regExp'
56
16
 
57
17
  const props = defineProps<{
58
18
  data: UI_I_AdvancedSystemSettingsEditData
59
19
  }>()
20
+
60
21
  const emits = defineEmits<{
61
22
  (event: 'change', value: UI_I_AdvancedSystemSettingsEditData['value']): void
62
23
  (event: 'error-message', value: string): void
63
24
  }>()
64
25
 
26
+ const { $store }: any = useNuxtApp()
27
+
28
+ const isNewView = computed<boolean>(() => $store.getters['main/getIsNewView'])
29
+ const currentComponent = computed(() =>
30
+ isNewView.value
31
+ ? defineAsyncComponent(() => import('./New.vue'))
32
+ : defineAsyncComponent(() => import('./Old.vue'))
33
+ )
34
+
65
35
  const valueLocal = ref<UI_I_AdvancedSystemSettingsEditData['value']>(
66
36
  props.data.value
67
37
  )
@@ -118,7 +88,7 @@ const onChangeSetting = (event: Event): void => {
118
88
  if (invalid.value) return
119
89
 
120
90
  if (validation.Format) {
121
- const format = E_Format[validation.Format]
91
+ const format = UI_E_Format[validation.Format]
122
92
  invalid.value = !allRegExp[format].test(value)
123
93
  errorMessage.value = invalid.value ? `Value must be ${format}` : ''
124
94
  }