bfg-common 1.4.799 → 1.4.801
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.
- package/assets/img/icons/icons-sprite-dark-1.svg +31 -14
- package/assets/img/icons/icons-sprite-dark-3.svg +227 -227
- package/assets/img/icons/icons-sprite-dark-4.svg +6 -1
- package/assets/img/icons/icons-sprite-dark-5.svg +488 -488
- package/assets/img/icons/icons-sprite-light-1.svg +30 -13
- package/assets/img/icons/icons-sprite-light-3.svg +227 -227
- package/assets/img/icons/icons-sprite-light-4.svg +6 -1
- package/assets/img/icons/icons-sprite-light-5.svg +488 -488
- package/assets/localization/local_be.json +33 -8
- package/assets/localization/local_en.json +33 -8
- package/assets/localization/local_hy.json +33 -8
- package/assets/localization/local_kk.json +34 -9
- package/assets/localization/local_ru.json +43 -18
- package/assets/localization/local_zh.json +33 -8
- package/assets/scss/clarity/local_ar.json +6 -3
- package/assets/scss/common/icons/icons-1.scss +4 -4
- package/components/atoms/autocomplete/Autocomplete.vue +68 -12
- package/components/atoms/select/TheSelect.vue +10 -1
- package/components/atoms/table/dataGrid/DataGrid.vue +12 -4
- package/components/atoms/table/dataGrid/lib/config/settingsTable.ts +4 -1
- package/components/atoms/table/dataGrid/lib/utils/export.ts +13 -13
- package/components/atoms/tabs/VerticalTabs.vue +11 -6
- package/components/common/browse/blocks/lib/models/types.ts +1 -1
- package/components/common/browse/lib/models/interfaces.ts +5 -5
- package/components/common/chartOptionsModal/counters/timespan/form/Form.vue +544 -544
- package/components/common/chartOptionsModal/counters/timespan/form/lib/config/dateForm.ts +116 -116
- package/components/common/context/Context.vue +16 -4
- package/components/common/context/recursion/Recursion.vue +2 -1
- package/components/common/context/recursion/RecursionNew.vue +57 -31
- package/components/common/context/recursion/RecursionOld.vue +33 -19
- package/components/common/diagramMain/Header.vue +211 -211
- package/components/common/diagramMain/adapter/AdapterItems.vue +61 -61
- package/components/common/diagramMain/lib/config/initial.ts +50 -50
- package/components/common/diagramMain/lib/models/types.ts +21 -21
- package/components/common/diagramMain/lib/utils/utils.ts +331 -331
- package/components/common/diagramMain/modals/ManagePhysicalAdaptersModal.vue +330 -330
- package/components/common/diagramMain/modals/editSettings/ConfirmTeamingSettingsModal.vue +40 -40
- package/components/common/diagramMain/modals/editSettings/EditSettings.vue +497 -497
- package/components/common/diagramMain/modals/editSettings/EditSettingsModal.vue +812 -812
- package/components/common/diagramMain/modals/editSettings/tabs/NetworkProperties.vue +214 -214
- package/components/common/diagramMain/modals/editSettings/tabs/Security.vue +189 -189
- package/components/common/diagramMain/modals/editSettings/tabs/SwitchProperties.vue +163 -163
- package/components/common/diagramMain/modals/editSettings/tabs/TeamingFailover.vue +175 -175
- package/components/common/diagramMain/modals/editSettings/tabs/TrafficShaping.vue +7 -7
- package/components/common/diagramMain/modals/editSettings/tabs/port/IpvFourSettings.vue +346 -346
- package/components/common/diagramMain/modals/editSettings/tabs/port/PortProperties.vue +205 -205
- package/components/common/diagramMain/modals/lib/config/diagramConfig.ts +23 -23
- package/components/common/diagramMain/modals/lib/config/initial.ts +180 -180
- package/components/common/diagramMain/modals/lib/config/vmKernelAdapter.ts +90 -90
- package/components/common/diagramMain/modals/lib/mappers/mappers.ts +87 -87
- package/components/common/diagramMain/modals/lib/utils/index.ts +24 -24
- package/components/common/diagramMain/modals/migrateVmkernelAdapter/lib/config/steps.ts +114 -114
- package/components/common/diagramMain/modals/migrateVmkernelAdapter/steps/ConnectionSettings.vue +169 -169
- package/components/common/diagramMain/modals/migrateVmkernelAdapter/steps/SelectVmkernelAdapter.vue +159 -159
- package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/common.ts +14 -14
- package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/connectionSettings.ts +137 -137
- package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/selectVmkernelAdapter.ts +52 -52
- package/components/common/diagramMain/modals/migrateVmkernelAdapter/validations/validations.ts +19 -19
- package/components/common/diagramMain/port/Ports.vue +47 -47
- package/components/common/feedback/Buttons.vue +2 -2
- package/components/common/feedback/Message.vue +1 -0
- package/components/common/feedback/VisitPortal.vue +5 -1
- package/components/common/graph/Graph.vue +5 -11
- package/components/common/graph/GraphNew.vue +71 -0
- package/components/common/graph/GraphOld.vue +31 -0
- package/components/common/layout/theHeader/feedback/new/New.vue +29 -14
- package/components/common/layout/theHeader/feedback/new/additionalDetails/AdditionalDetails.vue +34 -9
- package/components/common/layout/theHeader/feedback/new/additionalDetails/Headline.vue +17 -6
- package/components/common/layout/theHeader/feedback/new/description/Description.vue +1 -0
- package/components/common/layout/theHeader/feedback/new/email/Email.vue +1 -1
- package/components/common/layout/theHeader/feedback/new/subtitle/Subtitle.vue +22 -6
- package/components/common/layout/theHeader/feedback/new/tabs/Tabs.vue +17 -15
- package/components/common/layout/theHeader/userMenu/modals/changePassword/ChangePasswordNew.vue +1 -1
- package/components/common/mainNavigationPanel/MainNavigationPanel.vue +3 -2
- package/components/common/mainNavigationPanel/MainNavigationPanelNew.vue +1 -1
- package/components/common/mainNavigationPanel/MainNavigationPanelOld.vue +1 -1
- package/components/common/monitor/advanced/tools/chartOptionsModal/Notification.vue +7 -7
- package/components/common/monitor/advanced/tools/chartOptionsModal/counters/timespan/Timespan.vue +95 -95
- package/components/common/monitor/overview/Overview.vue +14 -28
- package/components/common/monitor/overview/OverviewNew.vue +138 -0
- package/components/common/monitor/overview/OverviewOld.vue +137 -0
- package/components/common/monitor/overview/filters/Filters.vue +35 -103
- package/components/common/monitor/overview/filters/FiltersNew.vue +122 -0
- package/components/common/monitor/overview/filters/FiltersOld.vue +151 -0
- package/components/common/monitor/overview/filters/customIntervalModal/CustomIntervalModal.vue +1 -1
- package/components/common/pages/hardwareHealth/historyTestimony/Graph.vue +463 -456
- package/components/common/pages/hardwareHealth/historyTestimony/tools/Tools.vue +389 -387
- package/components/common/pages/hardwareHealth/historyTestimony/tools/chartOptionsModal/ChartOptionsModal.vue +8 -0
- package/components/common/pages/hardwareHealth/historyTestimony/tools/chartOptionsModal/counters/Counters.vue +94 -94
- package/components/common/pages/hardwareHealth/historyTestimony/tools/chartOptionsModal/counters/timespan/Timespan.vue +66 -66
- package/components/common/pages/home/headline/Headline.vue +3 -2
- package/components/common/pages/home/headline/HeadlineNew.vue +1 -1
- package/components/common/pages/home/headline/HeadlineOld.vue +5 -0
- package/components/common/pages/home/widgets/vms/VmsNew.vue +1 -1
- package/components/common/pages/packages/Packages.vue +208 -0
- package/components/common/pages/packages/lib/config/actions.ts +59 -0
- package/components/common/pages/packages/lib/models/types.ts +8 -0
- package/components/common/pages/packages/tableView/TableView.vue +120 -0
- package/components/common/pages/packages/tableView/lib/config/configTable.ts +136 -0
- package/components/common/pages/packages/tableView/lib/config/tableKey.ts +14 -0
- package/components/common/pages/packages/tableView/lib/models/types.ts +12 -0
- package/components/common/pages/shortcuts/Shortcuts.vue +1 -1
- package/components/common/pages/tasks/Tasks.vue +23 -8
- package/components/common/pages/tasks/table/Table.vue +66 -16
- package/components/common/pages/tasks/table/errorInfo/ErrorInfo.vue +27 -10
- package/components/common/pages/tasks/table/expandDetails/ExpandDetails.vue +28 -12
- package/components/common/pages/tasks/table/lib/config/config.ts +11 -11
- package/components/common/portlets/customAttributes/Portlet.vue +4 -4
- package/components/common/portlets/tag/TagAddNew.vue +4 -4
- package/components/common/select/radio/RadioGroup.vue +3 -3
- package/components/common/selectLanguage/SelectLanguage.vue +29 -25
- package/components/common/selectLanguage/lib/config/config.ts +1 -0
- package/components/common/split/horizontal/HorizontalNew.vue +42 -24
- package/components/common/split/horizontal/HorizontalOld.vue +43 -13
- package/components/common/vm/actions/add/Add.vue +6 -1
- package/components/common/vm/actions/clone/Clone.vue +8 -3
- package/components/common/vm/actions/common/customizeHardware/CustomizeHardware.vue +4 -0
- package/components/common/vm/actions/common/customizeHardware/CustomizeHardwareNew.vue +6 -4
- package/components/common/vm/actions/common/customizeHardware/CustomizeHardwareOld.vue +26 -10
- package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardware.vue +12 -4
- package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardwareNew.vue +6 -3
- package/components/common/vm/actions/common/customizeHardware/virtualHardware/VirtualHardwareOld.vue +4 -2
- package/components/common/vm/actions/common/customizeHardware/virtualHardware/lib/config/dropdownItems.ts +6 -4
- package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDisk.vue +9 -3
- package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDiskNew.vue +3 -2
- package/components/common/vm/actions/common/customizeHardware/virtualHardware/newHardDisk/NewHardDiskOld.vue +3 -2
- package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/NewPciDevice.vue +87 -24
- package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/NewPciDeviceNew.vue +14 -8
- package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/NewPciDeviceOld.vue +9 -7
- package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIo.vue +0 -4
- package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoNew.vue +43 -12
- package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/directPathIo/DirectPathIoOld.vue +50 -25
- package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIo.vue +5 -7
- package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIoNew.vue +64 -28
- package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/dynamicDirectPathIo/DynamicDirectPathIoOld.vue +60 -19
- package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/lib/config/options.ts +11 -4
- package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGrid.vue +16 -1
- package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGridNew.vue +59 -8
- package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/nvidiaGrid/NvidiaGridOld.vue +60 -7
- package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/typeSelection/TypeSelectionNew.vue +1 -1
- package/components/common/vm/actions/common/customizeHardware/virtualHardware/newPciDevice/typeSelection/TypeSelectionOld.vue +1 -1
- package/components/common/vm/actions/common/lib/config/capabilities.ts +1 -1
- package/components/common/vm/actions/editSettings/EditSettings.vue +4 -0
- package/components/common/vm/actions/editSettings/EditSettingsOld.vue +2 -0
- package/components/common/vm/actions/editSettings/new/New.vue +2 -0
- package/components/common/wizards/datastore/add/Add.vue +4 -4
- package/components/common/wizards/datastore/add/lib/config/steps.ts +14 -14
- package/components/common/wizards/datastore/add/lib/validations.ts +9 -9
- package/components/common/wizards/datastore/add/nfs/Nfs.vue +6 -9
- package/components/common/wizards/vm/migrate/Migrate.vue +12 -12
- package/components/common/wizards/vm/migrate/select/computeResource/ComputeResource.vue +1 -1
- package/composables/useLocal.ts +3 -1
- package/composables/useLocalStorage.ts +1 -1
- package/lib/models/store/vm/interfaces.ts +11 -0
- package/lib/models/table/interfaces.ts +1 -0
- package/package.json +3 -3
- package/store/tasks/actions.ts +2 -1
|
@@ -322,7 +322,7 @@
|
|
|
322
322
|
"createStandardSwitch": "创建标准交换机",
|
|
323
323
|
"createTag": "创建标签",
|
|
324
324
|
"creationDate": "创建日期",
|
|
325
|
-
"currentDisplayLimited": "当前设置限制显示不超过
|
|
325
|
+
"currentDisplayLimited": "当前设置限制显示不超过 {0} 条记录。",
|
|
326
326
|
"currentEvcMode": "当前 EVC 模式",
|
|
327
327
|
"currentPassword": "当前密码",
|
|
328
328
|
"currentSettings": "当前设置",
|
|
@@ -1575,19 +1575,19 @@
|
|
|
1575
1575
|
"usedSpace": "可用空间",
|
|
1576
1576
|
"useExistingDisk": "使用现有磁盘",
|
|
1577
1577
|
"useExplicitFailoverOrder": "使用明确的故障转移顺序",
|
|
1578
|
-
"useGrayEraser": "
|
|
1578
|
+
"useGrayEraser": "灰色橡皮擦",
|
|
1579
1579
|
"useKerberosAuthenticationIntegrity": "使用 Kerberos 进行身份验证和数据完整性 (krb5i)",
|
|
1580
1580
|
"useKerberosAuthenticationKrb5": "仅使用 Kerberos 进行身份验证 (krb5)",
|
|
1581
1581
|
"useManualSettings": "使用手动设置",
|
|
1582
1582
|
"useNetworkLabelsToIdentifyMigrationCompatibleTwoHosts": "使用网络标签来标识两个或多个主机共有的迁移兼容连接。",
|
|
1583
1583
|
"useNetworkTimeProtocolFallbackWhenThePtpServiceDoesNotWork": "当 PTP 服务不工作时,启用使用网络时间协议作为回退。",
|
|
1584
1584
|
"useNetworkTimeProtocolNTPToSynchronizeTheSystemTime": "使用网络时间协议 (NTP) 来同步系统时间。",
|
|
1585
|
-
"useOurExternalIdeasPortal": "使用我們由
|
|
1585
|
+
"useOurExternalIdeasPortal": "使用我們由 {0}! 提供支持的外部創意門戶。您將能夠看到所有其他已提交的創意並對其進行投票,或創建一個新創意。",
|
|
1586
1586
|
"usePrecisionTimeProtocolPtpPrimaryServiceSynchronizeTheSystemTime": "使用精确时间协议 (PTP) 作为同步系统时间的主要服务。",
|
|
1587
1587
|
"user": "用户",
|
|
1588
1588
|
"userAndGroup": "用户和组",
|
|
1589
1589
|
"userDefinedPowerManagementPolicy": "用戶定義的電源管理策略",
|
|
1590
|
-
"useRedMarker": "
|
|
1590
|
+
"useRedMarker": "红色标记",
|
|
1591
1591
|
"userGroup": "用户/组",
|
|
1592
1592
|
"userName": "用户名",
|
|
1593
1593
|
"usernamePasswordRequired": "需要用户名和密码",
|
|
@@ -2291,7 +2291,27 @@
|
|
|
2291
2291
|
"searchHere": "在这里搜索。。。",
|
|
2292
2292
|
"columns": "列",
|
|
2293
2293
|
"exportSelected": "选择导出",
|
|
2294
|
-
"exportAll": "全部出口"
|
|
2294
|
+
"exportAll": "全部出口",
|
|
2295
|
+
"present": "现在",
|
|
2296
|
+
"notPresent": "不在场",
|
|
2297
|
+
"supported": "支持",
|
|
2298
|
+
"viewHost": "查看主机",
|
|
2299
|
+
"viewCluster": "视图集群",
|
|
2300
|
+
"viewDatacenter": "查看数据中心",
|
|
2301
|
+
"viewDatastore": "查看数据存储",
|
|
2302
|
+
"viewFolder": "查看文件夹",
|
|
2303
|
+
"viewDatastoreCluster": "查看数据存储集群",
|
|
2304
|
+
"viewHostProfile": "查看主机配置文件",
|
|
2305
|
+
"viewNetwork": "查看网络",
|
|
2306
|
+
"viewResourcePool": "查看资源池",
|
|
2307
|
+
"viewVApps": "查看Vapp",
|
|
2308
|
+
"viewVirtualMachine": "查看虚拟机",
|
|
2309
|
+
"viewVMTemplate": "查看VM模板",
|
|
2310
|
+
"viewBucket": "查看容器",
|
|
2311
|
+
"emailAddressOptional": "电子邮件地址(可选)",
|
|
2312
|
+
"permissionDeleteMsg": "您确定要删除\"{subject}\"的权限吗?",
|
|
2313
|
+
"editPermission": "编辑权限",
|
|
2314
|
+
"userGroupNameIsInvalid": "用户或组名无效!"
|
|
2295
2315
|
},
|
|
2296
2316
|
"auth": {
|
|
2297
2317
|
"welcomeTo": "欢迎来到",
|
|
@@ -2728,7 +2748,8 @@
|
|
|
2728
2748
|
"storageReservationDetails": "储存预约详情",
|
|
2729
2749
|
"totalCapacity": "总容量",
|
|
2730
2750
|
"usedReservation": "已使用的预订",
|
|
2731
|
-
"availableCapacity": "可用容量"
|
|
2751
|
+
"availableCapacity": "可用容量",
|
|
2752
|
+
"dateTimeIsoFormat": "日期和时间为ISO 8601格式"
|
|
2732
2753
|
},
|
|
2733
2754
|
"inventoryTabs": {
|
|
2734
2755
|
"summary": "概括",
|
|
@@ -2758,7 +2779,8 @@
|
|
|
2758
2779
|
},
|
|
2759
2780
|
"storageDevice": {
|
|
2760
2781
|
"repeatCount": "重复计数",
|
|
2761
|
-
"relativeThroughput": "相对吞吐量"
|
|
2782
|
+
"relativeThroughput": "相对吞吐量",
|
|
2783
|
+
"valueMustBeBetween": "值必须在{0}和{1}之间"
|
|
2762
2784
|
},
|
|
2763
2785
|
"scheduledTasks": {
|
|
2764
2786
|
"chooseFrequency": "选择频率",
|
|
@@ -2859,7 +2881,9 @@
|
|
|
2859
2881
|
"inactive": "不活跃",
|
|
2860
2882
|
"activateAll": "全部激活",
|
|
2861
2883
|
"confirmMetricsActivation": "确认指标激活",
|
|
2884
|
+
"confirmMetricsDeactivation": "确认指标停用",
|
|
2862
2885
|
"confirmMetricsActivationDescription": "您确定要激活 Zabbix 服务器“{0}”中的所有指标吗?",
|
|
2886
|
+
"confirmMetricsDeactivationDescription": "您确定要停用Zabbix服务器中的所有指标“{0}”?",
|
|
2863
2887
|
"cpuMetrics": "CPU指标",
|
|
2864
2888
|
"baseCount": "基础 ({0})",
|
|
2865
2889
|
"coreCount": "核心 ({0})",
|
|
@@ -2911,6 +2935,7 @@
|
|
|
2911
2935
|
"additionalDetailsTooltip": "有关更多详细信息,您可以截取屏幕截图或上传 .png 或 .jpeg 格式的图像。",
|
|
2912
2936
|
"annotate": "注释",
|
|
2913
2937
|
"annotateScreenshot": "注释屏幕截图",
|
|
2914
|
-
"annotateImage": "注释图像"
|
|
2938
|
+
"annotateImage": "注释图像",
|
|
2939
|
+
"selectType": "选择类型"
|
|
2915
2940
|
}
|
|
2916
2941
|
}
|
|
@@ -322,7 +322,7 @@
|
|
|
322
322
|
"createStandardSwitch": "إنشاء محول قياسي",
|
|
323
323
|
"createTag": "إنشاء علامة",
|
|
324
324
|
"creationDate": "تاريخ الإنشاء",
|
|
325
|
-
"currentDisplayLimited": "الإعدادات الحالية تحد من العرض إلى
|
|
325
|
+
"currentDisplayLimited": "الإعدادات الحالية تحد من العرض إلى {0} إدخال كحد أقصى.",
|
|
326
326
|
"currentEvcMode": "وضع EVC الحالي",
|
|
327
327
|
"currentPassword": "كلمة المرور الحالية",
|
|
328
328
|
"currentSettings": "الإعدادات الحالية",
|
|
@@ -1582,7 +1582,7 @@
|
|
|
1582
1582
|
"useNetworkLabelsToIdentifyMigrationCompatibleTwoHosts": "استخدم تسميات الشبكة لتحديد الاتصالات المتوافقة مع الترحيل والمشتركة بين مضيفين أو أكثر.",
|
|
1583
1583
|
"useNetworkTimeProtocolFallbackWhenThePtpServiceDoesNotWork": "تمكين استخدام بروتوكول وقت الشبكة كبديل عندما لا تعمل خدمة PTP.",
|
|
1584
1584
|
"useNetworkTimeProtocolNTPToSynchronizeTheSystemTime": "استخدام بروتوكول وقت الشبكة (NTP) لمزامنة وقت النظام.",
|
|
1585
|
-
"useOurExternalIdeasPortal": "استخدم بوابتنا الخارجية للأفكار المزوَّدة بواسطة
|
|
1585
|
+
"useOurExternalIdeasPortal": "استخدم بوابتنا الخارجية للأفكار المزوَّدة بواسطة {0}!. يمكنك الاطلاع على جميع الأفكار المقدمة مسبقًا والتصويت عليها أو إنشاء أفكار جديدة.",
|
|
1586
1586
|
"usePrecisionTimeProtocolPtpPrimaryServiceSynchronizeTheSystemTime": "استخدام بروتوكول الوقت الدقيق (PTP) كخدمة أساسية لمزامنة وقت النظام.",
|
|
1587
1587
|
"user": "المستخدم",
|
|
1588
1588
|
"userAndGroup": "المستخدمون والمجموعات",
|
|
@@ -2758,7 +2758,8 @@
|
|
|
2758
2758
|
},
|
|
2759
2759
|
"storageDevice": {
|
|
2760
2760
|
"repeatCount": "عدد التكرار",
|
|
2761
|
-
"relativeThroughput": "الإنتاجية النسبية"
|
|
2761
|
+
"relativeThroughput": "الإنتاجية النسبية",
|
|
2762
|
+
"valueMustBeBetween": "يجب أن تكون القيمة بين {0} و {1}"
|
|
2762
2763
|
},
|
|
2763
2764
|
"scheduledTasks": {
|
|
2764
2765
|
"chooseFrequency": "اختر تكرارًا",
|
|
@@ -2859,7 +2860,9 @@
|
|
|
2859
2860
|
"inactive": "غير نشط",
|
|
2860
2861
|
"activateAll": "تفعيل الكل",
|
|
2861
2862
|
"confirmMetricsActivation": "تأكيد تفعيل المقاييس",
|
|
2863
|
+
"confirmMetricsDeactivation": "تأكد من إلغاء تنشيط المقاييس",
|
|
2862
2864
|
"confirmMetricsActivationDescription": "هل تريد بالتأكيد تفعيل جميع المقاييس في خادم Zabbix \"{0}\"؟",
|
|
2865
|
+
"confirmMetricsDeactivationDescription": "هل أنت متأكد من أنك تريد إلغاء تنشيط جميع المقاييس في خادم Zabbix \"{0}\"؟",
|
|
2863
2866
|
"cpuMetrics": "مقاييس وحدة المعالجة المركزية",
|
|
2864
2867
|
"baseCount": "أساسي ({0})",
|
|
2865
2868
|
"coreCount": "نواة ({0})",
|
|
@@ -86,7 +86,7 @@
|
|
|
86
86
|
.vsphere-icon-datastore-cluster {
|
|
87
87
|
background-position: 0 83.5443037975%;
|
|
88
88
|
}
|
|
89
|
-
.storage-ui-icon-
|
|
89
|
+
.storage-ui-icon-datastore-disconnect {
|
|
90
90
|
background-position: 0 87.3417721519%;
|
|
91
91
|
}
|
|
92
92
|
.storage-ui-icon-register_vm {
|
|
@@ -121,7 +121,7 @@
|
|
|
121
121
|
.host-ui-icon-certificate,
|
|
122
122
|
.host-ui-icon-renewCertificate,
|
|
123
123
|
.vsphere-icon-datastore-cluster,
|
|
124
|
-
.storage-ui-icon-
|
|
124
|
+
.storage-ui-icon-datastore-disconnect,
|
|
125
125
|
.storage-ui-icon-register_vm,
|
|
126
126
|
.storage-ui-icon-increase_datastore,
|
|
127
127
|
.storage-ui-icon-datastore-unmount,
|
|
@@ -167,7 +167,7 @@
|
|
|
167
167
|
.active .host-ui-icon-certificate,
|
|
168
168
|
.active .host-ui-icon-renewCertificate,
|
|
169
169
|
.active .vsphere-icon-datastore-cluster,
|
|
170
|
-
.active .storage-ui-icon-
|
|
170
|
+
.active .storage-ui-icon-datastore-disconnect,
|
|
171
171
|
.active .storage-ui-icon-register_vm,
|
|
172
172
|
.active .storage-ui-icon-increase_datastore,
|
|
173
173
|
.active .storage-ui-icon-datastore-unmount,
|
|
@@ -218,7 +218,7 @@
|
|
|
218
218
|
.host-ui-icon-certificate,
|
|
219
219
|
.host-ui-icon-renewCertificate,
|
|
220
220
|
.vsphere-icon-datastore-cluster,
|
|
221
|
-
.storage-ui-icon-
|
|
221
|
+
.storage-ui-icon-datastore-disconnect,
|
|
222
222
|
.storage-ui-icon-register_vm,
|
|
223
223
|
.storage-ui-icon-increase_datastore,
|
|
224
224
|
.storage-ui-icon-datastore-unmount,
|
|
@@ -17,16 +17,32 @@
|
|
|
17
17
|
name="search"
|
|
18
18
|
/>
|
|
19
19
|
</div>
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
20
|
+
|
|
21
|
+
<div class="clr-error">
|
|
22
|
+
<div class="form-group__input">
|
|
23
|
+
<input
|
|
24
|
+
:id="`${props.testId}-search-input`"
|
|
25
|
+
v-model.trim="search"
|
|
26
|
+
:data-id="`${props.testId}-search-input`"
|
|
27
|
+
type="text"
|
|
28
|
+
class="search-input"
|
|
29
|
+
:class="fieldErrorText && 'clr-input'"
|
|
30
|
+
autocomplete="off"
|
|
31
|
+
:placeholder="props.placeholder"
|
|
32
|
+
@blur="onInitValidation"
|
|
33
|
+
@input="onSearch"
|
|
34
|
+
/>
|
|
35
|
+
<div v-show="fieldErrorText" class="form-validate">
|
|
36
|
+
<atoms-the-icon class="is-error tooltip-trigger" name="info" />
|
|
37
|
+
</div>
|
|
38
|
+
</div>
|
|
39
|
+
<div
|
|
40
|
+
v-show="fieldErrorText"
|
|
41
|
+
class="form-group__input-error clr-subtext"
|
|
42
|
+
>
|
|
43
|
+
{{ fieldErrorText }}
|
|
44
|
+
</div>
|
|
45
|
+
</div>
|
|
30
46
|
</div>
|
|
31
47
|
<div
|
|
32
48
|
v-show="isShow"
|
|
@@ -50,29 +66,36 @@
|
|
|
50
66
|
</template>
|
|
51
67
|
|
|
52
68
|
<script setup lang="ts">
|
|
69
|
+
import type { UI_I_Localization } from '~/lib/models/interfaces'
|
|
70
|
+
|
|
53
71
|
const props = withDefaults(
|
|
54
72
|
defineProps<{
|
|
55
73
|
placeholder: string
|
|
56
74
|
items: string[]
|
|
57
|
-
loading
|
|
75
|
+
loading?: boolean
|
|
58
76
|
testId?: string
|
|
59
77
|
ms?: number
|
|
78
|
+
showValidation?: boolean
|
|
60
79
|
}>(),
|
|
61
80
|
{
|
|
62
81
|
testId: 'ui-autocomplete',
|
|
63
82
|
ms: 500,
|
|
83
|
+
loading: false,
|
|
84
|
+
showValidation: false,
|
|
64
85
|
}
|
|
65
86
|
)
|
|
66
|
-
|
|
67
87
|
const emits = defineEmits<{
|
|
68
88
|
(event: 'search', value: string): void
|
|
69
89
|
(event: 'select', value: string): void
|
|
70
90
|
}>()
|
|
71
91
|
|
|
92
|
+
const localization = computed<UI_I_Localization>(() => useLocal())
|
|
93
|
+
|
|
72
94
|
const search = ref<string>('')
|
|
73
95
|
|
|
74
96
|
let timer: NodeJS.Timeout
|
|
75
97
|
const onSearch = (): void => {
|
|
98
|
+
onInitValidation()
|
|
76
99
|
clearTimeout(timer)
|
|
77
100
|
timer = setTimeout(
|
|
78
101
|
(value) => {
|
|
@@ -82,7 +105,16 @@ const onSearch = (): void => {
|
|
|
82
105
|
search.value
|
|
83
106
|
)
|
|
84
107
|
}
|
|
108
|
+
const isInitFieldValidation = ref<boolean>(false)
|
|
109
|
+
const onInitValidation = (): void => {
|
|
110
|
+
isInitFieldValidation.value = true
|
|
111
|
+
}
|
|
112
|
+
const fieldErrorText = computed<string>(() => {
|
|
113
|
+
if (!isInitFieldValidation.value) return ''
|
|
85
114
|
|
|
115
|
+
if (!search.value && props.showValidation)
|
|
116
|
+
return localization.value.common.fieldRequired
|
|
117
|
+
})
|
|
86
118
|
const items = computed<any[]>(() => {
|
|
87
119
|
return [...props.items].map((text) => {
|
|
88
120
|
const term = search.value.toLowerCase()
|
|
@@ -154,6 +186,13 @@ watch(isHide, (newValue) => {
|
|
|
154
186
|
window.removeEventListener('keydown', onKeyDown, true)
|
|
155
187
|
}
|
|
156
188
|
})
|
|
189
|
+
watch(
|
|
190
|
+
() => props.showValidation,
|
|
191
|
+
(newValue: boolean) => {
|
|
192
|
+
isInitFieldValidation.value = newValue
|
|
193
|
+
},
|
|
194
|
+
{ immediate: true }
|
|
195
|
+
)
|
|
157
196
|
</script>
|
|
158
197
|
|
|
159
198
|
<style scoped lang="scss">
|
|
@@ -238,5 +277,22 @@ watch(isHide, (newValue) => {
|
|
|
238
277
|
}
|
|
239
278
|
}
|
|
240
279
|
}
|
|
280
|
+
.form-group {
|
|
281
|
+
&__input {
|
|
282
|
+
display: flex;
|
|
283
|
+
.form-validate {
|
|
284
|
+
svg {
|
|
285
|
+
width: 24px;
|
|
286
|
+
height: 24px;
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
input {
|
|
290
|
+
width: 100%;
|
|
291
|
+
}
|
|
292
|
+
&-error {
|
|
293
|
+
margin-top: 0;
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
}
|
|
241
297
|
}
|
|
242
298
|
</style>
|
|
@@ -16,7 +16,13 @@
|
|
|
16
16
|
/>
|
|
17
17
|
</button>
|
|
18
18
|
<Teleport to="body">
|
|
19
|
-
<ul
|
|
19
|
+
<ul
|
|
20
|
+
v-show="open"
|
|
21
|
+
@mouseenter="hover = true"
|
|
22
|
+
@mouseleave="hover = false"
|
|
23
|
+
class="select-menu"
|
|
24
|
+
:style="selectMenuStyles"
|
|
25
|
+
>
|
|
20
26
|
<li
|
|
21
27
|
v-for="item in props.options"
|
|
22
28
|
:id="`${props.testId}-item`"
|
|
@@ -61,6 +67,7 @@ const select = (value: number | string): void => {
|
|
|
61
67
|
if (!selectedItem) return
|
|
62
68
|
|
|
63
69
|
emits('update:model-value', selectedItem.value)
|
|
70
|
+
hideMenu(true)
|
|
64
71
|
}
|
|
65
72
|
const showMenu = (): void => {
|
|
66
73
|
if (open.value) {
|
|
@@ -159,6 +166,8 @@ onUnmounted(() => {
|
|
|
159
166
|
margin-top: 2px;
|
|
160
167
|
background-color: var(--global-bg-color);
|
|
161
168
|
padding: 12px 0;
|
|
169
|
+
max-height: 200px;
|
|
170
|
+
overflow: auto;
|
|
162
171
|
|
|
163
172
|
.select-item {
|
|
164
173
|
color: var(--global-font-color3);
|
|
@@ -527,6 +527,7 @@
|
|
|
527
527
|
</template>
|
|
528
528
|
|
|
529
529
|
<script setup lang="ts">
|
|
530
|
+
import { isRtl } from 'bfg-uikit/lib/config/trl'
|
|
530
531
|
import type {
|
|
531
532
|
UI_I_HTMLSelectElement,
|
|
532
533
|
UI_I_Localization,
|
|
@@ -969,6 +970,9 @@ const setGrab = (key: number, e: MouseEvent): void => {
|
|
|
969
970
|
grabColumn.value = key
|
|
970
971
|
const currentWidth = parseInt(columnsWidth.value[grabColumn.value][0])
|
|
971
972
|
grabStartX.value = e.clientX - currentWidth
|
|
973
|
+
if (isRtl.value) {
|
|
974
|
+
grabStartX.value = e.clientX + currentWidth
|
|
975
|
+
}
|
|
972
976
|
}
|
|
973
977
|
}
|
|
974
978
|
|
|
@@ -992,7 +996,10 @@ let mousemove = (e: MouseEvent): void => {
|
|
|
992
996
|
resizeObserve.disconnect()
|
|
993
997
|
|
|
994
998
|
const minWidth = parseInt(columnsWidth.value[grabColumn.value][1])
|
|
995
|
-
|
|
999
|
+
let changeX = Math.max(e.clientX - grabStartX.value, minWidth)
|
|
1000
|
+
if (isRtl.value) {
|
|
1001
|
+
changeX = Math.max(grabStartX.value - e.clientX, minWidth)
|
|
1002
|
+
}
|
|
996
1003
|
|
|
997
1004
|
columnsWidth.value[grabColumn.value] = [`${changeX}px`, `${minWidth}px`]
|
|
998
1005
|
}
|
|
@@ -1034,11 +1041,12 @@ const setResizeObserveWithInfo = (): void => {
|
|
|
1034
1041
|
}
|
|
1035
1042
|
|
|
1036
1043
|
// Export
|
|
1037
|
-
const exportItems = computed<UI_I_DropdownButtonItem[]>(
|
|
1038
|
-
|
|
1044
|
+
const exportItems = computed<UI_I_DropdownButtonItem[]>(() =>
|
|
1045
|
+
exportItemsFunc(
|
|
1039
1046
|
localization.value,
|
|
1040
1047
|
bodyItemsPresent.value.length || 0,
|
|
1041
|
-
props.selectedRow?.length || 0
|
|
1048
|
+
props.selectedRow?.length || 0,
|
|
1049
|
+
props.testId || ''
|
|
1042
1050
|
)
|
|
1043
1051
|
)
|
|
1044
1052
|
const onExport = (type: '0' | '1'): void => {
|
|
@@ -71,13 +71,15 @@ export const defaultHeadItems = (
|
|
|
71
71
|
export const exportItemsFunc = (
|
|
72
72
|
localization: UI_I_Localization,
|
|
73
73
|
rows: number,
|
|
74
|
-
selectedRows: number
|
|
74
|
+
selectedRows: number,
|
|
75
|
+
testId: string
|
|
75
76
|
): UI_I_DropdownButtonItem[] => {
|
|
76
77
|
return [
|
|
77
78
|
{
|
|
78
79
|
text: localization.common.allRowsCount.replace('{0}', '' + rows),
|
|
79
80
|
type: '0',
|
|
80
81
|
disabled: false,
|
|
82
|
+
testId: `${testId}-export-all`,
|
|
81
83
|
},
|
|
82
84
|
{
|
|
83
85
|
text: localization.common.selectedRowsCount.replace(
|
|
@@ -86,6 +88,7 @@ export const exportItemsFunc = (
|
|
|
86
88
|
),
|
|
87
89
|
type: '1',
|
|
88
90
|
disabled: false,
|
|
91
|
+
testId: `${testId}-export-selected`,
|
|
89
92
|
},
|
|
90
93
|
]
|
|
91
94
|
}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
export const generateCsvAndDownload = (rows:
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
export const generateCsvAndDownload = (rows: HTMLElement[]): void => {
|
|
2
|
+
const content: string[] = []
|
|
3
|
+
rows.forEach((row: HTMLElement) => {
|
|
4
|
+
content.push(row.innerText.replaceAll(';', ',').replaceAll('\n', ';'))
|
|
5
|
+
})
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
const csvContent = 'data:text/csv;charset=utf-8, sep=;' + content.join('\n')
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
9
|
+
const encodedUri = encodeURI(csvContent)
|
|
10
|
+
const link = document.createElement('a')
|
|
11
|
+
link.setAttribute('href', encodedUri)
|
|
12
|
+
link.setAttribute('download', 'my_data.csv')
|
|
13
|
+
document.body.appendChild(link)
|
|
14
14
|
|
|
15
|
-
|
|
16
|
-
}
|
|
15
|
+
link.click()
|
|
16
|
+
}
|
|
@@ -49,23 +49,28 @@ const selectItem = (value: string): void => {
|
|
|
49
49
|
}
|
|
50
50
|
</script>
|
|
51
51
|
|
|
52
|
-
<style
|
|
52
|
+
<style>
|
|
53
|
+
:root {
|
|
54
|
+
--vertical-tabs-nav-link: --grey-100;
|
|
55
|
+
--vertical-tabs-bg-color: #fafafa;
|
|
56
|
+
}
|
|
53
57
|
:root.dark-theme {
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
}
|
|
58
|
+
--vertical-tabs-nav-link: #ffffff;
|
|
59
|
+
--vertical-tabs-bg-color: transparent;
|
|
57
60
|
}
|
|
61
|
+
</style>
|
|
62
|
+
<style lang="scss" scoped>
|
|
58
63
|
|
|
59
64
|
.vertical-groups-sidenav {
|
|
60
65
|
min-height: 94%;
|
|
61
|
-
background-color:
|
|
66
|
+
background-color: var(--vertical-tabs-bg-color);
|
|
62
67
|
|
|
63
68
|
.vertical-nav-link {
|
|
64
69
|
display: inline-block;
|
|
65
70
|
width: 100%;
|
|
66
71
|
margin-top: 5px;
|
|
67
72
|
padding-left: 12px;
|
|
68
|
-
color: var(--
|
|
73
|
+
color: var(--vertical-tabs-nav-link);
|
|
69
74
|
border-bottom: 1px solid transparent;
|
|
70
75
|
text-decoration: none;
|
|
71
76
|
font-size: 14px;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export type UI_T_BlocksWidth = [number, number, number]
|
|
1
|
+
export type UI_T_BlocksWidth = [number, number, number]
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export interface UI_I_FileInfo {
|
|
2
|
-
type: string
|
|
3
|
-
title: string
|
|
4
|
-
value: string | number
|
|
5
|
-
}
|
|
1
|
+
export interface UI_I_FileInfo {
|
|
2
|
+
type: string
|
|
3
|
+
title: string
|
|
4
|
+
value: string | number
|
|
5
|
+
}
|