You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@apisix.apache.org by ju...@apache.org on 2020/04/19 11:41:06 UTC

[incubator-apisix-dashboard] branch next updated: feature: add new setting items with i18n content (#177)

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

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


The following commit(s) were added to refs/heads/next by this push:
     new 2b2fda3  feature: add new setting items with i18n content (#177)
2b2fda3 is described below

commit 2b2fda3152bcf5aeada9b4abcab2444948662cd8
Author: bzp2010 <bz...@gmail.com>
AuthorDate: Sun Apr 19 06:40:58 2020 -0500

    feature: add new setting items with i18n content (#177)
    
    * feature: add new setting items with i18n content
    
    * fix: missing i18n files
    
    * fix: change AdminAPIConfig define
    
    * feature: new setting util file
    
    * fix: change to new AdminAPIConfig define
    
    * fix: add item's name i18n
---
 src/locales/en-US/settings.ts |  8 ++++++-
 src/locales/zh-CN/settings.ts |  8 ++++++-
 src/pages/Settings.tsx        | 52 ++++++++++++++++++++++++++++++++++---------
 src/typings.d.ts              |  8 +++----
 src/utils/request.ts          | 10 ++++-----
 src/utils/setting.ts          |  8 +++++++
 src/utils/utils.ts            |  9 --------
 7 files changed, 72 insertions(+), 31 deletions(-)

diff --git a/src/locales/en-US/settings.ts b/src/locales/en-US/settings.ts
index b08e385..fe2cff7 100644
--- a/src/locales/en-US/settings.ts
+++ b/src/locales/en-US/settings.ts
@@ -1,3 +1,9 @@
 export default {
-  'app.settings.description.invalid-admin-api': 'Invalid Admin API'
+  'app.settings.item.admin-api-schema': 'Admin API Schema',
+  'app.settings.item.admin-api-host': 'Admin API Host',
+  'app.settings.item.admin-api-path': 'Admin API Path',
+  'app.settings.item.admin-api-key': 'Admin API Key',
+  'app.settings.description.invalid-admin-api-schema': 'Invalid Admin API Schema',
+  'app.settings.description.invalid-admin-api-host': 'Invalid Admin API Host',
+  'app.settings.description.invalid-admin-api-path': 'Invalid Admin API Path',
 };
diff --git a/src/locales/zh-CN/settings.ts b/src/locales/zh-CN/settings.ts
index 8889804..03bc5f8 100644
--- a/src/locales/zh-CN/settings.ts
+++ b/src/locales/zh-CN/settings.ts
@@ -1,3 +1,9 @@
 export default {
-  'app.settings.description.invalid-admin-api': '非法的管理API'
+  'app.settings.item.admin-api-schema': '管理 API 协议',
+  'app.settings.item.admin-api-host': '管理 API 地址',
+  'app.settings.item.admin-api-path': '管理 API 路径',
+  'app.settings.item.admin-api-key': '管理 API 密钥',
+  'app.settings.description.invalid-admin-api-schema': '非法的管理 API 协议',
+  'app.settings.description.invalid-admin-api-host': '非法的管理 API 地址',
+  'app.settings.description.invalid-admin-api-path': '非法的管理 API 路径',
 };
diff --git a/src/pages/Settings.tsx b/src/pages/Settings.tsx
index a05caf4..402ce2d 100644
--- a/src/pages/Settings.tsx
+++ b/src/pages/Settings.tsx
@@ -1,14 +1,16 @@
 import React, {useEffect} from "react";
 import {useForm} from "antd/es/form/util";
-import {Button, Card, Form, Input, notification} from "antd";
+import {Button, Card, Form, Input, notification, Select} from "antd";
 import {formatMessage, FormattedMessage} from "umi-plugin-react/locale";
 import {router} from "umi";
 import {PageHeaderWrapper} from "@ant-design/pro-layout";
-import {getAdminAPI, getAdminAPIKey} from "@/utils/utils";
+import {getAdminAPIConfig} from "@/utils/setting";
+
+const { Option } = Select;
 
 const layout = {
   labelCol: {
-    span: 2,
+    span: 4,
   },
   wrapperCol: {
     span: 8,
@@ -17,7 +19,7 @@ const layout = {
 
 const tailLayout = {
   wrapperCol: {
-    offset: 2,
+    offset: 4,
   },
 };
 
@@ -25,14 +27,19 @@ const Settings: React.FC = () => {
   const [form] = useForm();
 
   useEffect(() => {
+    let adminAPIConfig = getAdminAPIConfig();
     form.setFieldsValue({
-      adminAPI: getAdminAPI(),
-      adminAPIKey: getAdminAPIKey()
+      adminAPISchema: adminAPIConfig.schema,
+      adminAPIHost: adminAPIConfig.host,
+      adminAPIPath: adminAPIConfig.path,
+      adminAPIKey: adminAPIConfig.key
     })
   });
 
   const onFinish = (values: any) => {
-    localStorage.setItem('GLOBAL_ADMIN_API', values.adminAPI);
+    localStorage.setItem('GLOBAL_ADMIN_API_SCHEMA', values.adminAPISchema);
+    localStorage.setItem('GLOBAL_ADMIN_API_HOST', values.adminAPIHost);
+    localStorage.setItem('GLOBAL_ADMIN_API_PATH', values.adminAPIPath);
     localStorage.setItem('GLOBAL_ADMIN_API_KEY', values.adminAPIKey);
 
     notification.success({
@@ -47,17 +54,40 @@ const Settings: React.FC = () => {
       <Card>
         <Form {...layout} form={form} onFinish={onFinish}>
           <Form.Item
-            label="Admin API"
-            name="adminAPI"
+            label={formatMessage({ id: 'app.settings.item.admin-api-schema' })}
+            name="adminAPISchema"
+            rules={[
+              {required: true, message: formatMessage({id: 'app.settings.description.invalid-admin-api-schema'})},
+            ]}
+          >
+            <Select defaultValue="http">
+              <Option value="http">HTTP</Option>
+              <Option value="https">HTTPS</Option>
+            </Select>
+          </Form.Item>
+
+          <Form.Item
+            label={formatMessage({ id: 'app.settings.item.admin-api-host' })}
+            name="adminAPIHost"
+            rules={[
+              {required: true, message: formatMessage({id: 'app.settings.description.invalid-admin-api-host'})},
+            ]}
+          >
+            <Input />
+          </Form.Item>
+
+          <Form.Item
+            label={formatMessage({ id: 'app.settings.item.admin-api-path' })}
+            name="adminAPIPath"
             rules={[
-              {required: true, message: formatMessage({id: 'app.settings.description.invalid-admin-api'})},
+              {required: true, message: formatMessage({id: 'app.settings.description.invalid-admin-api-path'})},
             ]}
           >
             <Input />
           </Form.Item>
 
           <Form.Item
-            label="X-API-KEY"
+            label={formatMessage({ id: 'app.settings.item.admin-api-key' })}
             name="adminAPIKey"
           >
             <Input />
diff --git a/src/typings.d.ts b/src/typings.d.ts
index e3bf05d..e7e385f 100644
--- a/src/typings.d.ts
+++ b/src/typings.d.ts
@@ -39,10 +39,10 @@ declare const REACT_APP_ENV: 'test' | 'dev' | 'pre' | false;
 
 declare let ADMIN_API_SCHEMA, ADMIN_API_HOST, ADMIN_API_PATH, API_KEY: '';
 declare interface AdminAPIConfig {
-  adminAPISchema: string;
-  adminAPIHost: string;
-  adminAPIPath: string;
-  adminAPIKey: string;
+  schema: string;
+  host: string;
+  path: string;
+  key: string;
 }
 
 type PageMode = 'CREATE' | 'EDIT' | 'VIEW';
diff --git a/src/utils/request.ts b/src/utils/request.ts
index 4bf02d6..75cac05 100644
--- a/src/utils/request.ts
+++ b/src/utils/request.ts
@@ -4,7 +4,7 @@
  */
 import { extend } from 'umi-request';
 import { notification } from 'antd';
-import { getAdminAPIConfig } from "@/utils/utils";
+import { getAdminAPIConfig } from "@/utils/setting";
 
 const codeMessage = {
   200: '服务器成功返回请求的数据。',
@@ -54,10 +54,10 @@ const request = extend({
   errorHandler, // 默认错误处理
   credentials: 'same-origin', // 默认请求是否带上cookie
   headers: {
-    'X-ADMIN-API-SCHEMA': adminAPIConfig.adminAPISchema,
-    'X-ADMIN-API-HOST': adminAPIConfig.adminAPIHost,
-    'X-ADMIN-API-PATH': adminAPIConfig.adminAPIPath,
-    'X-API-KEY': adminAPIConfig.adminAPIKey,
+    'X-ADMIN-API-SCHEMA': adminAPIConfig.schema,
+    'X-ADMIN-API-HOST': adminAPIConfig.host,
+    'X-ADMIN-API-PATH': adminAPIConfig.path,
+    'X-API-KEY': adminAPIConfig.key,
   },
 });
 
diff --git a/src/utils/setting.ts b/src/utils/setting.ts
new file mode 100644
index 0000000..86c4f37
--- /dev/null
+++ b/src/utils/setting.ts
@@ -0,0 +1,8 @@
+export const getAdminAPIConfig = (): AdminAPIConfig => {
+  return {
+    schema: localStorage.getItem('GLOBAL_ADMIN_API_SCHEMA') || ADMIN_API_SCHEMA,
+    host: localStorage.getItem('GLOBAL_ADMIN_API_HOST') || ADMIN_API_HOST,
+    path: localStorage.getItem('GLOBAL_ADMIN_API_PATH') || ADMIN_API_PATH,
+    key: localStorage.getItem('GLOBAL_ADMIN_API_KEY') || API_KEY
+  };
+}
diff --git a/src/utils/utils.ts b/src/utils/utils.ts
index dbd4dc5..9a5c445 100644
--- a/src/utils/utils.ts
+++ b/src/utils/utils.ts
@@ -76,12 +76,3 @@ export const getPageMode = (): PageMode => {
 
   return 'VIEW';
 };
-
-export const getAdminAPIConfig = (): AdminAPIConfig => {
-  return {
-    adminAPISchema: localStorage.getItem('GLOBAL_ADMIN_API_SCHEMA') || ADMIN_API_SCHEMA,
-    adminAPIHost: localStorage.getItem('GLOBAL_ADMIN_API_HOST') || ADMIN_API_HOST,
-    adminAPIPath: localStorage.getItem('GLOBAL_ADMIN_API_PATH') || ADMIN_API_PATH,
-    adminAPIKey: localStorage.getItem('GLOBAL_ADMIN_API_KEY') || API_KEY
-  };
-}