This is an automated email from the ASF dual-hosted git repository.

juzhiyuan pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/apisix-dashboard.git


The following commit(s) were added to refs/heads/master by this push:
     new 0b42332  feat: update system status (#1434)
0b42332 is described below

commit 0b4233214e27273be521b9d3c2c7a395eb601a46
Author: litesun <su...@apache.org>
AuthorDate: Sat Feb 6 06:02:27 2021 +0800

    feat: update system status (#1434)
---
 web/src/pages/ServerInfo/List.tsx         | 127 +++++++++++++++++++-----------
 web/src/pages/ServerInfo/locales/en-US.ts |  10 ++-
 web/src/pages/ServerInfo/locales/zh-CN.ts |  10 ++-
 web/src/pages/ServerInfo/service.ts       |   4 +
 web/src/pages/ServerInfo/style.less       |   1 -
 web/src/pages/ServerInfo/typing.d.ts      |   5 ++
 6 files changed, 101 insertions(+), 56 deletions(-)

diff --git a/web/src/pages/ServerInfo/List.tsx 
b/web/src/pages/ServerInfo/List.tsx
index 695c129..9823381 100644
--- a/web/src/pages/ServerInfo/List.tsx
+++ b/web/src/pages/ServerInfo/List.tsx
@@ -15,17 +15,19 @@
  * limitations under the License.
  */
 import React, { useEffect, useState } from 'react';
-import { Select, Empty, Form } from 'antd';
+import { Select, Empty, Form, Card } from 'antd';
 import { PageContainer } from '@ant-design/pro-layout';
 import { useIntl } from 'umi';
 import moment from 'moment';
 
-import { fetchInfoList } from './service';
+import { fetchInfoList, fetchVersion } from './service';
 import styles from './style.less';
 
 const ServerInfo: React.FC = () => {
   const [data, setData] = useState<ServerInfoModule.Node>();
   const [nodeList, setNodeList] = useState<ServerInfoModule.Node[]>([]);
+  const [commitHash, setCommitHash] = useState('');
+  const [dashboardVersion, setDashboardVersion] = useState('');
   const { formatMessage } = useIntl();
   const { Option } = Select;
 
@@ -51,58 +53,89 @@ const ServerInfo: React.FC = () => {
         setData(list[0]);
       }
     });
+
+    fetchVersion().then(({ commit_hash, version }) => {
+      setCommitHash(commit_hash);
+      setDashboardVersion(version);
+    });
   }, []);
 
   return (
-    <PageContainer title={formatMessage({ id: 
'page.serverinfo.pageContainer.title' })}>
-      <div className={styles.select}>
-        <Form form={form}>
-          <Form.Item wrapperCol={{ span: 5 }} style={{ marginBottom: 0 }} 
name="nodeId">
-            <Select
-              placeholder={formatMessage({ id: 
'page.serverinfo.select.placeholder' })}
-              onChange={(value) => {
-                setData(
-                  nodeList.find((item) => {
-                    return item.id === value;
-                  }),
-                );
-              }}
-            >
-              {nodeList.map((item) => (
-                <Option key={item.hostname} value={item.id}>
-                  {item.hostname}
-                </Option>
-              ))}
-              ;
-            </Select>
-          </Form.Item>
-          <Form.Item style={{ marginBottom: 0, fontSize: '12px', color: 
'#00000073' }}>
-            {formatMessage({ id: 'page.serverinfo.desc' })}&nbsp;
-            <a
-              
href="https://github.com/apache/apisix/blob/master/doc/plugins/server-info.md";
-              target="_blank"
-              rel="noreferrer"
-            >
-              {formatMessage({ id: 'page.serverinfo.link' })}
-            </a>
-          </Form.Item>
-        </Form>
-      </div>
-      <div className={styles.wrap}>
-        {nodeList.length === 0 && <Empty />}
-        {nodeList.length > 0 && (
+    <PageContainer title={formatMessage({ id: 
'page.systemStatus.pageContainer.title' })}>
+      <Card
+        title={formatMessage({ id: 'page.systemStatus.dashboardInfo' })}
+        bodyStyle={{ padding: 0 }}
+        style={{ marginBottom: 15 }}
+      >
+        <div className={styles.wrap}>
           <table className={styles.table}>
             <tbody>
-              {Object.entries(data || {}).map((item) => (
-                <tr>
-                  <td>{item[0]}</td>
-                  <td>{item[1]}</td>
-                </tr>
-              ))}
+              <tr>
+                <td>commit_hash</td>
+                <td>{commitHash}</td>
+              </tr>
+              <tr>
+                <td>dashboard_version</td>
+                <td>{dashboardVersion}</td>
+              </tr>
             </tbody>
           </table>
-        )}
-      </div>
+        </div>
+      </Card>
+      <Card
+        title={formatMessage({ id: 'page.systemStatus.nodeInfo' })}
+        bodyStyle={{ padding: 0 }}
+        bordered={false}
+      >
+        <div className={styles.select}>
+          <Form form={form}>
+            <Form.Item wrapperCol={{ span: 10 }} style={{ marginBottom: 0 }} 
name="nodeId">
+              <Select
+                placeholder={formatMessage({ id: 
'page.systemStatus.select.placeholder' })}
+                onChange={(value) => {
+                  setData(
+                    nodeList.find((item) => {
+                      return item.id === value;
+                    }),
+                  );
+                }}
+              >
+                {nodeList.map((item) => (
+                  <Option key={item.hostname} value={item.id}>
+                    {item.hostname}
+                  </Option>
+                ))}
+                ;
+              </Select>
+            </Form.Item>
+            <Form.Item style={{ marginBottom: 0, fontSize: '12px', color: 
'#00000073' }}>
+              {formatMessage({ id: 'page.systemStatus.desc' })}&nbsp;
+              <a
+                
href="https://github.com/apache/apisix/blob/master/doc/plugins/server-info.md";
+                target="_blank"
+                rel="noreferrer"
+              >
+                {formatMessage({ id: 'page.systemStatus.link' })}
+              </a>
+            </Form.Item>
+          </Form>
+        </div>
+        <div className={styles.wrap}>
+          {nodeList.length === 0 && <Empty />}
+          {nodeList.length > 0 && (
+            <table className={styles.table}>
+              <tbody>
+                {Object.entries(data || {}).map((item) => (
+                  <tr>
+                    <td>{item[0]}</td>
+                    <td>{item[1]}</td>
+                  </tr>
+                ))}
+              </tbody>
+            </table>
+          )}
+        </div>
+      </Card>
     </PageContainer>
   );
 };
diff --git a/web/src/pages/ServerInfo/locales/en-US.ts 
b/web/src/pages/ServerInfo/locales/en-US.ts
index 90ec6f4..32df757 100644
--- a/web/src/pages/ServerInfo/locales/en-US.ts
+++ b/web/src/pages/ServerInfo/locales/en-US.ts
@@ -15,8 +15,10 @@
  * limitations under the License.
  */
 export default {
-  'page.serverinfo.pageContainer.title': 'Server Info',
-  'page.serverinfo.select.placeholder': 'Please select node',
-  'page.serverinfo.desc': 'The relevant plugin need to be enabled to report 
server info.',
-  'page.serverinfo.link': 'How to enable?',
+  'page.systemStatus.pageContainer.title': 'System Status',
+  'page.systemStatus.select.placeholder': 'Please select a apache apisix node',
+  'page.systemStatus.desc': 'The relevant plugin needs to be enabled to report 
server info.',
+  'page.systemStatus.link': 'How to enable?',
+  'page.systemStatus.dashboardInfo': 'Dashboard',
+  'page.systemStatus.nodeInfo': 'APISIX Nodes',
 };
diff --git a/web/src/pages/ServerInfo/locales/zh-CN.ts 
b/web/src/pages/ServerInfo/locales/zh-CN.ts
index 5fe09c7..11d9a78 100644
--- a/web/src/pages/ServerInfo/locales/zh-CN.ts
+++ b/web/src/pages/ServerInfo/locales/zh-CN.ts
@@ -15,8 +15,10 @@
  * limitations under the License.
  */
 export default {
-  'page.serverinfo.pageContainer.title': '服务端信息',
-  'page.serverinfo.select.placeholder': '请选择节点',
-  'page.serverinfo.desc': '需启用相关插件,才能获取信息。',
-  'page.serverinfo.link': '如何启用?',
+  'page.systemStatus.pageContainer.title': '系统信息',
+  'page.systemStatus.select.placeholder': '请选择节点',
+  'page.systemStatus.desc': '需启用相关插件,才能获取信息。',
+  'page.systemStatus.link': '如何启用?',
+  'page.systemStatus.dashboardInfo': 'Dashboard',
+  'page.systemStatus.nodeInfo': 'APISIX 节点',
 };
diff --git a/web/src/pages/ServerInfo/service.ts 
b/web/src/pages/ServerInfo/service.ts
index 60fab5b..e678bcf 100644
--- a/web/src/pages/ServerInfo/service.ts
+++ b/web/src/pages/ServerInfo/service.ts
@@ -21,3 +21,7 @@ export const fetchInfoList = () => {
     ({ data }) => data.rows,
   );
 };
+
+export const fetchVersion = () => {
+  return request<Res<ServerInfoModule.DashboardInfo>>('/tool/version').then(({ 
data }) => data)
+};
diff --git a/web/src/pages/ServerInfo/style.less 
b/web/src/pages/ServerInfo/style.less
index 2b4b01e..f87760d 100644
--- a/web/src/pages/ServerInfo/style.less
+++ b/web/src/pages/ServerInfo/style.less
@@ -16,7 +16,6 @@
  */
 
 .select {
-  margin-bottom: 15px;
   padding: 12px 24px;
   background-color: #fff;
 }
diff --git a/web/src/pages/ServerInfo/typing.d.ts 
b/web/src/pages/ServerInfo/typing.d.ts
index 8512601..fc65ad5 100644
--- a/web/src/pages/ServerInfo/typing.d.ts
+++ b/web/src/pages/ServerInfo/typing.d.ts
@@ -24,4 +24,9 @@ declare namespace ServerInfoModule {
     hostname: string;
     version: string;
   };
+  
+  type DashboardInfo = {
+    commit_hash: string,
+    version: string
+  }
 }

Reply via email to