diff --git a/web/src/components/Overview/index.tsx b/web/src/components/Overview/index.tsx
index dfadd856..4e0b3b6e 100644
--- a/web/src/components/Overview/index.tsx
+++ b/web/src/components/Overview/index.tsx
@@ -103,7 +103,6 @@ export default forwardRef((props: IProps, ref: any) => {
const drawRef = useRef
(null);
const [searchField, setSearchField] = useState();
- const [infos, setInfos] = useState({});
const [selectedItem, setSelectedItem] = useState({});
const [dispalyTypeObj, setDispalyTypeObj] = useLocalStorage(
@@ -187,20 +186,6 @@ export default forwardRef((props: IProps, ref: any) => {
});
};
- const fetchListInfo = async () => {
- const ids = hits?.map((hit: { _id: string }) => listItemConfig.getId(hit));
- if (!ids || ids.length == 0) {
- return;
- }
- const res = await request(infoAction, {
- method: "POST",
- body: ids,
- });
- if (res) {
- setInfos(res);
- }
- };
-
const onFacetChange = (v: { value: string[]; field: string }) => {
const { filters = {}, ...restParams } = param;
if (!v.value || v.value.length === 0) {
@@ -286,9 +271,6 @@ export default forwardRef((props: IProps, ref: any) => {
{
setSelectedItem(item);
@@ -303,8 +285,8 @@ export default forwardRef((props: IProps, ref: any) => {
/>
) : (
({...item, id: listItemConfig.getId(item)}))}
total={result?.total?.value || 0}
from={queryParams.from}
pageSize={queryParams.size}
diff --git a/web/src/locales/en-US.js b/web/src/locales/en-US.js
index 1ff23e47..771ce4a3 100644
--- a/web/src/locales/en-US.js
+++ b/web/src/locales/en-US.js
@@ -16,6 +16,7 @@ import host from "./en-US/host";
import settings from "./en-US/settings";
import listview from "./en-US/listview";
import audit from "./en-US/audit";
+import error from "./en-US/error";
export default {
"navBar.lang": "Languages",
@@ -622,5 +623,6 @@ export default {
...host,
...settings,
...listview,
- ...audit
+ ...audit,
+ ...error
};
diff --git a/web/src/locales/en-US/error.js b/web/src/locales/en-US/error.js
new file mode 100644
index 00000000..edfb8f38
--- /dev/null
+++ b/web/src/locales/en-US/error.js
@@ -0,0 +1,5 @@
+export default {
+ "error.split": ", ",
+ "error.unknown": "unknown error, please try again later or contact the support team!",
+ "error.request_timeout_error": "request timeout, please try again later or contact the support team!",
+};
diff --git a/web/src/locales/zh-CN.js b/web/src/locales/zh-CN.js
index 5f7fd1d3..b3ad0a41 100644
--- a/web/src/locales/zh-CN.js
+++ b/web/src/locales/zh-CN.js
@@ -16,6 +16,7 @@ import host from "./zh-CN/host";
import settings from "./zh-CN/settings";
import listview from "./zh-CN/listview";
import audit from "./zh-CN/audit";
+import error from "./zh-CN/error";
export default {
"navBar.lang": "语言",
@@ -613,5 +614,6 @@ export default {
...host,
...settings,
...listview,
- ...audit
+ ...audit,
+ ...error
};
diff --git a/web/src/locales/zh-CN/error.js b/web/src/locales/zh-CN/error.js
new file mode 100644
index 00000000..2eac32f1
--- /dev/null
+++ b/web/src/locales/zh-CN/error.js
@@ -0,0 +1,5 @@
+export default {
+ "error.split": ",",
+ "error.unknown": "未知错误,请稍后重试或者联系支持团队!",
+ "error.request_timeout_error": "请求超时,请稍后重试或者联系支持团队!",
+}
diff --git a/web/src/pages/Platform/Overview/Cluster/Table/index.jsx b/web/src/pages/Platform/Overview/Cluster/Table/index.jsx
index 8bef5bbb..f13e8419 100644
--- a/web/src/pages/Platform/Overview/Cluster/Table/index.jsx
+++ b/web/src/pages/Platform/Overview/Cluster/Table/index.jsx
@@ -7,10 +7,11 @@ import { SearchEngineIcon } from "@/lib/search_engines";
import { HealthStatusView } from "@/components/infini/health_status_view";
import { StatusBlockGroup } from "@/components/infini/status_block";
import { Providers, ProviderIcon } from "@/lib/providers";
+import request from "@/utils/request";
+import styles from "./index.less"
export default (props) => {
const {
- infos,
dataSource,
total,
from,
@@ -19,8 +20,34 @@ export default (props) => {
onPageChange,
onPageSizeChange,
onRowClick,
+ infoAction
} = props;
+ const [infos, setInfos] = useState({});
+
+ const fetchListInfo = async (data) => {
+ const res = await Promise.all(data?.map((item) => request(infoAction, {
+ method: "POST",
+ body: [item.id],
+ }, false, false)));
+ if (res) {
+ let newInfos = {}
+ res.forEach((item) => {
+ if (item && !item.error) {
+ newInfos = {
+ ...newInfos,
+ ...item
+ }
+ }
+ })
+ setInfos(newInfos);
+ }
+ };
+
+ useEffect(() => {
+ fetchListInfo(dataSource);
+ }, [JSON.stringify(dataSource)])
+
const [tableData] = useMemo(() => {
let tableData = dataSource?.map((item) => {
const id = item?._id;
@@ -269,6 +296,7 @@ export default (props) => {
},
};
}}
+ rowClassName={() => styles.rowPointer}
/>
);
diff --git a/web/src/pages/Platform/Overview/Cluster/Table/index.less b/web/src/pages/Platform/Overview/Cluster/Table/index.less
new file mode 100644
index 00000000..cdb1794f
--- /dev/null
+++ b/web/src/pages/Platform/Overview/Cluster/Table/index.less
@@ -0,0 +1,3 @@
+.rowPointer {
+ cursor: pointer;
+}
\ No newline at end of file
diff --git a/web/src/pages/Platform/Overview/Indices/Monitor/overview.jsx b/web/src/pages/Platform/Overview/Indices/Monitor/overview.jsx
index 1637e2dc..345e38d7 100644
--- a/web/src/pages/Platform/Overview/Indices/Monitor/overview.jsx
+++ b/web/src/pages/Platform/Overview/Indices/Monitor/overview.jsx
@@ -29,12 +29,12 @@ export default ({
timeout={timeout}
refresh={refresh}
metrics={[
- "index_health",
+ isAgent && shardID ? 'shard_state' : "index_health",
"index_throughput",
"search_throughput",
"index_latency",
"search_latency",
- isAgent ? "shard_state" : undefined,
+ isAgent && !shardID ? "shard_state" : undefined,
].filter((item) => !!item)}
/>
);
diff --git a/web/src/pages/Platform/Overview/components/MetricChart.jsx b/web/src/pages/Platform/Overview/components/MetricChart.jsx
index 1603b7e3..a809fe96 100644
--- a/web/src/pages/Platform/Overview/components/MetricChart.jsx
+++ b/web/src/pages/Platform/Overview/components/MetricChart.jsx
@@ -1,4 +1,4 @@
-import request from "@/utils/request";
+import request, { formatResponse } from "@/utils/request";
import { cloneDeep } from "lodash";
import { useEffect, useRef, useState } from "react";
import { formatMessage } from "umi/locale";
@@ -71,8 +71,9 @@ export default (props) => {
},
ignoreTimeout: true
}, false, false)
- if (res?.error?.reason) {
- setError(res.error.reason)
+ if (res?.error) {
+ const error = formatResponse(res.error);
+ setError(error?.errorObject?.key ? formatMessage({ id: `${error?.errorObject?.key}` }) : res?.error?.reason)
} else if (res && !res.error) {
const { metrics = {} } = res || {};
const metric = metrics[metricKey]
diff --git a/web/src/pages/System/Audit/index.jsx b/web/src/pages/System/Audit/index.jsx
index c82a22e4..d79bed3b 100644
--- a/web/src/pages/System/Audit/index.jsx
+++ b/web/src/pages/System/Audit/index.jsx
@@ -56,13 +56,6 @@ export default (props) => {
searchable: true,
visible: false,
},
- {
- title: "TEAM",
- key: "metadata.labels.team",
- aggregable: true,
- searchable: true,
- visible: false,
- },
{
title: "OPERATION",
key: "metadata.labels.operation",
@@ -206,10 +199,6 @@ export default (props) => {
操作者
{selectedItem.metadata.operator || '-'}
-