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/06/15 07:34:58 UTC

[incubator-apisix-dashboard] 01/01: feat: added SSL checked

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

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

commit 3324f8e45d1fd52efe382dc6c078f7f2392c312a
Author: juzhiyuan <jj...@gmail.com>
AuthorDate: Mon Jun 15 15:34:11 2020 +0800

    feat: added SSL checked
---
 src/pages/ssl/List.tsx   | 26 ++++++++++++++++++++++----
 src/pages/ssl/service.ts |  7 +++++++
 2 files changed, 29 insertions(+), 4 deletions(-)

diff --git a/src/pages/ssl/List.tsx b/src/pages/ssl/List.tsx
index e356f6f..3f1a656 100644
--- a/src/pages/ssl/List.tsx
+++ b/src/pages/ssl/List.tsx
@@ -5,12 +5,25 @@ import { Button, Switch, Popconfirm, notification } from 'antd';
 import { history, useIntl } from 'umi';
 import { PlusOutlined } from '@ant-design/icons';
 
-import { fetchList as fetchSSLList, remove as removeSSL } from './service';
+import { fetchList as fetchSSLList, remove as removeSSL, update as updateSSL } from './service';
 
 const List: React.FC = () => {
   const tableRef = useRef<ActionType>();
   const { formatMessage } = useIntl();
 
+  const onEnableChange = (id: string, checked: boolean) => {
+    console.log({ id, checked });
+    updateSSL(id, checked)
+      .then(() => {
+        notification.success({ message: '更新证书启用状态成功' });
+      })
+      .catch(() => {
+        notification.error({ message: '更新证书启用状态失败' });
+        /* eslint-disable no-unused-expressions */
+        tableRef.current?.reload();
+      });
+  };
+
   const columns: ProColumns<SSLModule.ResSSL>[] = [
     {
       title: 'SNI',
@@ -24,10 +37,15 @@ const List: React.FC = () => {
     },
     {
       title: '是否启用',
-      valueType: 'option',
-      render: () => (
+      dataIndex: 'status',
+      render: (text, record) => (
         <>
-          <Switch defaultChecked />
+          <Switch
+            defaultChecked={Number(text) === 1}
+            onChange={(checked: boolean) => {
+              onEnableChange(record.id, checked);
+            }}
+          />
         </>
       ),
     },
diff --git a/src/pages/ssl/service.ts b/src/pages/ssl/service.ts
index bb7d514..9de9971 100644
--- a/src/pages/ssl/service.ts
+++ b/src/pages/ssl/service.ts
@@ -56,3 +56,10 @@ export const verifyKeyPaire = (cert = '', key = ''): Promise<VerifyKeyPaireProps
     method: 'POST',
     data: { cert, key },
   });
+
+export const update = (id: string, checked: boolean) =>
+  request(`/ssls/${id}`, {
+    data: {
+      status: Number(checked),
+    },
+  });