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/05/20 08:13:22 UTC

[incubator-apisix-dashboard] branch next updated: WIP: Feat refactor (#198)

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 129c775  WIP: Feat refactor (#198)
129c775 is described below

commit 129c77540f81f057d8bd52a68607de4bb607e87c
Author: 琚致远 <ju...@apache.org>
AuthorDate: Wed May 20 16:13:15 2020 +0800

    WIP: Feat refactor (#198)
    
    * feat: remove edit ssl
    
    * feat: update SSL icon
    
    * feat: remove Welcome
    
    * feat: refactor structure for SSL
    
    * feat: update service
    
    * feat: refactor SSL structure
    
    * feat: remove ssl model
---
 config/config.ts                                   |  20 +---
 src/locales/en-US.ts                               |   2 -
 src/locales/en-US/menu.ts                          |   1 -
 src/locales/zh-CN.ts                               |   2 -
 src/locales/zh-CN/menu.ts                          |   1 -
 src/models/connect.d.ts                            |   2 -
 src/models/ssl.ts                                  |  23 ----
 src/pages/SSLModule/detail/index.tsx               | 129 ---------------------
 src/pages/Welcome.less                             |   8 --
 src/pages/Welcome.tsx                              |  62 ----------
 .../create/style.less => ssl/Create.less}          |   0
 .../{SSLModule/create/index.tsx => ssl/Create.tsx} |   2 +-
 .../{SSLModule/list/index.tsx => ssl/List.tsx}     |   3 +-
 .../components/CertificateForm/index.tsx           |   2 +-
 .../components/CertificateUploader/index.tsx       |   4 +-
 .../create => ssl}/components/Step1/index.tsx      |   4 +-
 .../create => ssl}/components/Step2/index.tsx      |   2 +-
 .../create => ssl}/components/Step3/index.tsx      |   4 +-
 .../create => ssl}/components/Step4/index.tsx      |   2 +-
 src/{services/ssl.ts => pages/ssl/service.ts}      |   6 +-
 src/pages/ssl/typing.d.ts                          |   5 +
 21 files changed, 23 insertions(+), 261 deletions(-)

diff --git a/config/config.ts b/config/config.ts
index c045c1e..7524365 100644
--- a/config/config.ts
+++ b/config/config.ts
@@ -46,13 +46,7 @@ export default defineConfig({
           routes: [
             {
               path: '/',
-              redirect: '/welcome',
-            },
-            {
-              path: '/welcome',
-              name: 'welcome',
-              icon: 'smile',
-              component: './Welcome',
+              redirect: '/settings',
             },
             {
               name: 'settings',
@@ -63,7 +57,7 @@ export default defineConfig({
             {
               name: 'ssl',
               path: '/ssl',
-              icon: 'crown',
+              icon: 'BarsOutlined',
               routes: [
                 {
                   path: '/ssl',
@@ -72,19 +66,13 @@ export default defineConfig({
                 {
                   path: '/ssl/list',
                   name: 'list',
-                  component: './SSLModule/list',
-                  hideInMenu: true,
-                },
-                {
-                  path: '/ssl/:key/edit',
-                  name: 'edit',
-                  component: './SSLModule/detail',
+                  component: './ssl/List',
                   hideInMenu: true,
                 },
                 {
                   name: 'create',
                   path: '/ssl/create',
-                  component: './SSLModule/create',
+                  component: './ssl/Create',
                   hideInMenu: true,
                 },
               ],
diff --git a/src/locales/en-US.ts b/src/locales/en-US.ts
index 3d57988..4ff9776 100644
--- a/src/locales/en-US.ts
+++ b/src/locales/en-US.ts
@@ -11,8 +11,6 @@ export default {
   'layout.user.link.privacy': 'Privacy',
   'layout.user.link.terms': 'Terms',
   'app.preview.down.block': 'Download this page to your local project',
-  'app.welcome.link.fetch-blocks': 'Get all block',
-  'app.welcome.link.block-list': 'Quickly build standard, pages based on `block` development',
   ...globalHeader,
   ...menu,
   ...settingDrawer,
diff --git a/src/locales/en-US/menu.ts b/src/locales/en-US/menu.ts
index 5e605dd..914dc06 100644
--- a/src/locales/en-US/menu.ts
+++ b/src/locales/en-US/menu.ts
@@ -1,5 +1,4 @@
 export default {
-  'menu.welcome': 'Welcome',
   'menu.more-blocks': 'More Blocks',
   'menu.home': 'Home',
   'menu.admin': 'Admin',
diff --git a/src/locales/zh-CN.ts b/src/locales/zh-CN.ts
index 1822d7b..b37ec0f 100644
--- a/src/locales/zh-CN.ts
+++ b/src/locales/zh-CN.ts
@@ -11,8 +11,6 @@ export default {
   'layout.user.link.privacy': '隐私',
   'layout.user.link.terms': '条款',
   'app.preview.down.block': '下载此页面到本地项目',
-  'app.welcome.link.fetch-blocks': '获取全部区块',
-  'app.welcome.link.block-list': '基于 block 开发,快速构建标准页面',
   ...globalHeader,
   ...menu,
   ...settingDrawer,
diff --git a/src/locales/zh-CN/menu.ts b/src/locales/zh-CN/menu.ts
index 6f22688..11ea16f 100644
--- a/src/locales/zh-CN/menu.ts
+++ b/src/locales/zh-CN/menu.ts
@@ -1,5 +1,4 @@
 export default {
-  'menu.welcome': '欢迎',
   'menu.more-blocks': '更多区块',
   'menu.home': '首页',
   'menu.admin': '管理页',
diff --git a/src/models/connect.d.ts b/src/models/connect.d.ts
index 9e27465..a0696dc 100644
--- a/src/models/connect.d.ts
+++ b/src/models/connect.d.ts
@@ -3,7 +3,6 @@ import { GlobalModelState } from './global';
 import { DefaultSettings as SettingModelState } from '../../config/defaultSettings';
 import { UserModelState } from './user';
 import { StateType } from './login';
-import { ModelState as SSLModelState } from './ssl';
 
 export { GlobalModelState, SettingModelState, UserModelState };
 
@@ -25,7 +24,6 @@ export interface ConnectState {
   settings: SettingModelState;
   user: UserModelState;
   login: StateType;
-  ssl: SSLModelState;
 }
 
 export interface Route extends MenuDataItem {
diff --git a/src/models/ssl.ts b/src/models/ssl.ts
deleted file mode 100644
index 49edb08..0000000
--- a/src/models/ssl.ts
+++ /dev/null
@@ -1,23 +0,0 @@
-export interface SSL {
-  sni: string[];
-  cert: string;
-  key: string;
-}
-
-export interface ModelState {}
-
-export interface ModelType {
-  namespace: string;
-  state: ModelState;
-  effects: {};
-  reducers: {};
-}
-
-const model: ModelType = {
-  namespace: 'ssl',
-  state: {},
-  effects: {},
-  reducers: {},
-};
-
-export default model;
diff --git a/src/pages/SSLModule/detail/index.tsx b/src/pages/SSLModule/detail/index.tsx
deleted file mode 100644
index 2c0abef..0000000
--- a/src/pages/SSLModule/detail/index.tsx
+++ /dev/null
@@ -1,129 +0,0 @@
-import React, { useState, useEffect } from 'react';
-import { PageHeaderWrapper } from '@ant-design/pro-layout';
-import { Form, Input, Card, Button, notification, message } from 'antd';
-import { useIntl, history, useParams } from 'umi';
-import { useForm } from 'antd/es/form/util';
-
-import { getPageMode } from '@/utils/utils';
-import {
-  fetchItem as fetchSSLItem,
-  create as createSSL,
-  update as updateSSL,
-} from '@/services/ssl';
-
-const layout = {
-  labelCol: {
-    span: 2,
-  },
-  wrapperCol: {
-    span: 8,
-  },
-};
-
-const tailLayout = {
-  wrapperCol: {
-    offset: 2,
-  },
-};
-
-const Detail: React.FC = () => {
-  const [mode] = useState<PageMode>(getPageMode());
-  const { key } = useParams();
-  const [form] = useForm();
-  const { formatMessage } = useIntl();
-
-  useEffect(() => {
-    const hideLoading = message.loading(formatMessage({ id: 'component.global.loading' }), 0);
-    if (mode === 'EDIT' && key) {
-      fetchSSLItem(key).then((data) => {
-        form.setFieldsValue(data.value);
-        hideLoading();
-      });
-    } else {
-      hideLoading();
-    }
-  }, [mode]);
-
-  const onFinish = (values: any) => {
-    const hideLoading = message.loading(formatMessage({ id: 'component.global.loading' }), 0);
-    if (mode === 'EDIT' && key) {
-      hideLoading();
-      updateSSL(key, values).then(() => {
-        notification.success({
-          message: `${formatMessage({ id: 'component.global.update' })} SSL ${formatMessage({
-            id: 'component.status.success',
-          }).toLowerCase()}`,
-        });
-
-        history.goBack();
-      });
-    }
-
-    if (mode === 'CREATE') {
-      createSSL(values).then(() => {
-        hideLoading();
-        notification.success({
-          message: `${formatMessage({ id: 'component.global.create' })} SSL ${formatMessage({
-            id: 'component.status.success',
-          }).toLowerCase()}`,
-        });
-
-        history.goBack();
-      });
-    }
-  };
-
-  return (
-    <PageHeaderWrapper>
-      <Card>
-        <Form {...layout} form={form} onFinish={onFinish}>
-          <Form.Item
-            label="SNI"
-            name="sni"
-            rules={[
-              { required: true, message: formatMessage({ id: 'component.ssl.fieldSNIInvalid' }) },
-            ]}
-          >
-            <Input />
-          </Form.Item>
-
-          <Form.Item
-            label="Cert"
-            name="cert"
-            rules={[
-              { required: true, message: formatMessage({ id: 'component.ssl.fieldCertInvalid' }) },
-              { min: 128, message: formatMessage({ id: 'component.ssl.fieldCertTooShort' }) },
-            ]}
-          >
-            <Input.TextArea rows={6} />
-          </Form.Item>
-
-          <Form.Item
-            label="Key"
-            name="key"
-            rules={[
-              { required: true, message: formatMessage({ id: 'component.ssl.fieldKeyInvalid' }) },
-              { min: 128, message: formatMessage({ id: 'component.ssl.fieldKeyTooShort' }) },
-            ]}
-          >
-            <Input.TextArea rows={6} />
-          </Form.Item>
-
-          <Form.Item {...tailLayout}>
-            <Button style={{ marginRight: 10 }} onClick={() => history.goBack()}>
-              {formatMessage({ id: 'component.global.cancel' })}
-            </Button>
-
-            <Button htmlType="submit" type="primary">
-              {mode === 'CREATE'
-                ? formatMessage({ id: 'component.global.create' })
-                : formatMessage({ id: 'component.global.save' })}
-            </Button>
-          </Form.Item>
-        </Form>
-      </Card>
-    </PageHeaderWrapper>
-  );
-};
-
-export default Detail;
diff --git a/src/pages/Welcome.less b/src/pages/Welcome.less
deleted file mode 100644
index 914c40d..0000000
--- a/src/pages/Welcome.less
+++ /dev/null
@@ -1,8 +0,0 @@
-@import '~antd/lib/style/themes/default.less';
-
-.pre {
-  margin: 12px 0;
-  padding: 12px 20px;
-  background: @input-bg;
-  box-shadow: @card-shadow;
-}
diff --git a/src/pages/Welcome.tsx b/src/pages/Welcome.tsx
deleted file mode 100644
index 6d7c3ea..0000000
--- a/src/pages/Welcome.tsx
+++ /dev/null
@@ -1,62 +0,0 @@
-import React from 'react';
-import { PageHeaderWrapper } from '@ant-design/pro-layout';
-import { Card, Typography, Alert } from 'antd';
-import styles from './Welcome.less';
-
-const CodePreview: React.FC<{}> = ({ children }) => (
-  <pre className={styles.pre}>
-    <code>
-      <Typography.Text copyable>{children}</Typography.Text>
-    </code>
-  </pre>
-);
-
-export default (): React.ReactNode => (
-  <PageHeaderWrapper>
-    <Card>
-      <Alert
-        message="umi ui 现已发布,点击右下角 umi 图标即可使用"
-        type="success"
-        showIcon
-        banner
-        style={{
-          margin: -12,
-          marginBottom: 24,
-        }}
-      />
-      <Typography.Text strong>
-        <a target="_blank" rel="noopener noreferrer" href="https://pro.ant.design/docs/block">
-          基于 block 开发,快速构建标准页面
-        </a>
-      </Typography.Text>
-      <CodePreview> npm run ui</CodePreview>
-      <Typography.Text
-        strong
-        style={{
-          marginBottom: 12,
-        }}
-      >
-        <a
-          target="_blank"
-          rel="noopener noreferrer"
-          href="https://pro.ant.design/docs/available-script#npm-run-fetchblocks"
-        >
-          获取全部区块
-        </a>
-      </Typography.Text>
-      <CodePreview> npm run fetch:blocks</CodePreview>
-    </Card>
-    <p
-      style={{
-        textAlign: 'center',
-        marginTop: 24,
-      }}
-    >
-      Want to add more pages? Please refer to{' '}
-      <a href="https://pro.ant.design/docs/block-cn" target="_blank" rel="noopener noreferrer">
-        use block
-      </a>
-      。
-    </p>
-  </PageHeaderWrapper>
-);
diff --git a/src/pages/SSLModule/create/style.less b/src/pages/ssl/Create.less
similarity index 100%
rename from src/pages/SSLModule/create/style.less
rename to src/pages/ssl/Create.less
diff --git a/src/pages/SSLModule/create/index.tsx b/src/pages/ssl/Create.tsx
similarity index 98%
rename from src/pages/SSLModule/create/index.tsx
rename to src/pages/ssl/Create.tsx
index 2d2db9a..0ec6ff4 100644
--- a/src/pages/SSLModule/create/index.tsx
+++ b/src/pages/ssl/Create.tsx
@@ -6,7 +6,7 @@ import Step1 from './components/Step1';
 import Step2 from './components/Step2';
 import Step3 from './components/Step3';
 import Step4 from './components/Step4';
-import styles from './style.less';
+import styles from './Create.less';
 
 const { Step } = Steps;
 
diff --git a/src/pages/SSLModule/list/index.tsx b/src/pages/ssl/List.tsx
similarity index 98%
rename from src/pages/SSLModule/list/index.tsx
rename to src/pages/ssl/List.tsx
index 178c5fa..53adaef 100644
--- a/src/pages/SSLModule/list/index.tsx
+++ b/src/pages/ssl/List.tsx
@@ -4,8 +4,7 @@ import ProTable, { ProColumns, ActionType } from '@ant-design/pro-table';
 import { Button, Modal, notification, Switch } from 'antd';
 import { history, useIntl } from 'umi';
 import { PlusOutlined } from '@ant-design/icons';
-import { fetchList as fetchSSLList, remove as removeSSL } from '@/services/ssl';
-import { SSL } from '@/models/ssl';
+import { fetchList as fetchSSLList, remove as removeSSL } from '@/pages/ssl/service';
 import { ListItem } from '@/transforms/global';
 
 interface SearchParamsProps {
diff --git a/src/pages/SSLModule/create/components/CertificateForm/index.tsx b/src/pages/ssl/components/CertificateForm/index.tsx
similarity index 97%
rename from src/pages/SSLModule/create/components/CertificateForm/index.tsx
rename to src/pages/ssl/components/CertificateForm/index.tsx
index ef9ebbe..0cbd083 100644
--- a/src/pages/SSLModule/create/components/CertificateForm/index.tsx
+++ b/src/pages/ssl/components/CertificateForm/index.tsx
@@ -2,7 +2,7 @@ import React from 'react';
 import { Form, Input } from 'antd';
 import { useIntl } from 'umi';
 import { FormInstance } from 'antd/lib/form';
-import { FormData } from '../..';
+import { FormData } from '../../Create';
 
 interface CertificateFormProps {
   mode: 'EDIT' | 'VIEW';
diff --git a/src/pages/SSLModule/create/components/CertificateUploader/index.tsx b/src/pages/ssl/components/CertificateUploader/index.tsx
similarity index 97%
rename from src/pages/SSLModule/create/components/CertificateUploader/index.tsx
rename to src/pages/ssl/components/CertificateUploader/index.tsx
index 9408862..aaa35d6 100644
--- a/src/pages/SSLModule/create/components/CertificateUploader/index.tsx
+++ b/src/pages/ssl/components/CertificateUploader/index.tsx
@@ -4,8 +4,8 @@ import { UploadOutlined } from '@ant-design/icons';
 import { UploadFile } from 'antd/lib/upload/interface';
 import { useForm } from 'antd/es/form/util';
 import forge from 'node-forge';
-import { FormData } from '../..';
-import styles from '../../style.less';
+import { FormData } from '../../Create';
+import styles from '../../Create.less';
 
 export interface AltName {
   value: string;
diff --git a/src/pages/SSLModule/create/components/Step1/index.tsx b/src/pages/ssl/components/Step1/index.tsx
similarity index 94%
rename from src/pages/SSLModule/create/components/Step1/index.tsx
rename to src/pages/ssl/components/Step1/index.tsx
index bd702d4..c463d12 100644
--- a/src/pages/SSLModule/create/components/Step1/index.tsx
+++ b/src/pages/ssl/components/Step1/index.tsx
@@ -1,7 +1,7 @@
 import React from 'react';
 import { Form, Button, Select } from 'antd';
-import styles from '../../style.less';
-import { StepProps } from '../..';
+import styles from '../../Create.less';
+import { StepProps } from '../../Create';
 
 const { Option } = Select;
 
diff --git a/src/pages/SSLModule/create/components/Step2/index.tsx b/src/pages/ssl/components/Step2/index.tsx
similarity index 98%
rename from src/pages/SSLModule/create/components/Step2/index.tsx
rename to src/pages/ssl/components/Step2/index.tsx
index f6e80b9..51c320f 100644
--- a/src/pages/SSLModule/create/components/Step2/index.tsx
+++ b/src/pages/ssl/components/Step2/index.tsx
@@ -9,7 +9,7 @@ import {
   UploadType,
   AltName,
 } from '../CertificateUploader';
-import { StepProps } from '../..';
+import { StepProps } from '../../Create';
 
 const Step2: React.FC<StepProps> = ({ onStepChange, onFormChange, data }) => {
   const [form] = Form.useForm();
diff --git a/src/pages/SSLModule/create/components/Step3/index.tsx b/src/pages/ssl/components/Step3/index.tsx
similarity index 89%
rename from src/pages/SSLModule/create/components/Step3/index.tsx
rename to src/pages/ssl/components/Step3/index.tsx
index 8b8a3f1..e1a921c 100644
--- a/src/pages/SSLModule/create/components/Step3/index.tsx
+++ b/src/pages/ssl/components/Step3/index.tsx
@@ -1,8 +1,8 @@
 import React from 'react';
 import { Form, Button } from 'antd';
-import { create as createSSL } from '@/services/ssl';
+import { create as createSSL } from '@/pages/ssl/service';
 import CertificateForm from '../CertificateForm';
-import { StepProps } from '../..';
+import { StepProps } from '../../Create';
 
 const Step3: React.FC<StepProps> = ({ data, onStepChange }) => {
   const [form] = Form.useForm();
diff --git a/src/pages/SSLModule/create/components/Step4/index.tsx b/src/pages/ssl/components/Step4/index.tsx
similarity index 94%
rename from src/pages/SSLModule/create/components/Step4/index.tsx
rename to src/pages/ssl/components/Step4/index.tsx
index 1a503cc..de6ac17 100644
--- a/src/pages/SSLModule/create/components/Step4/index.tsx
+++ b/src/pages/ssl/components/Step4/index.tsx
@@ -1,7 +1,7 @@
 import React from 'react';
 import { Result, Button } from 'antd';
 import { history } from 'umi';
-import { StepProps } from '../..';
+import { StepProps } from '../../Create';
 
 const Step4: React.FC<StepProps> = ({ onStepChange, onFormChange }) => {
   return (
diff --git a/src/services/ssl.ts b/src/pages/ssl/service.ts
similarity index 66%
rename from src/services/ssl.ts
rename to src/pages/ssl/service.ts
index 4d96c6f..77e4162 100644
--- a/src/services/ssl.ts
+++ b/src/pages/ssl/service.ts
@@ -1,11 +1,11 @@
 import request from '@/utils/request';
 import { transformFetchListData, transformFetchItemData } from '@/transforms/global';
-import { SSL } from '@/models/ssl';
 
-export const fetchList = () => request('/api/ssl').then(data => transformFetchListData<SSL>(data));
+export const fetchList = () =>
+  request('/api/ssl').then((data) => transformFetchListData<SSL>(data));
 
 export const fetchItem = (key: string) =>
-  request(`/api/ssl/${key}`).then(data => transformFetchItemData<SSL>(data));
+  request(`/api/ssl/${key}`).then((data) => transformFetchItemData<SSL>(data));
 
 export const remove = (key: string) => request.delete(`/api/ssl/${key}`);
 
diff --git a/src/pages/ssl/typing.d.ts b/src/pages/ssl/typing.d.ts
new file mode 100644
index 0000000..0a66d55
--- /dev/null
+++ b/src/pages/ssl/typing.d.ts
@@ -0,0 +1,5 @@
+type SSL = {
+  sni: string[];
+  cert: string;
+  key: string;
+};