From c10ccd8106171230e6e9c13701e8188fd7b503a2 Mon Sep 17 00:00:00 2001 From: Gucheng Wang Date: Sun, 28 Nov 2021 18:46:20 +0800 Subject: [PATCH] Improve provider table in app edit page. --- web/src/ProviderListPage.js | 19 ++----------------- web/src/ProviderTable.js | 21 +++++++++++++++++++++ web/src/auth/Provider.js | 25 +++++++++++++++++++++++++ 3 files changed, 48 insertions(+), 17 deletions(-) diff --git a/web/src/ProviderListPage.js b/web/src/ProviderListPage.js index d3330090..9ad38659 100644 --- a/web/src/ProviderListPage.js +++ b/web/src/ProviderListPage.js @@ -14,7 +14,7 @@ import React from "react"; import {Link} from "react-router-dom"; -import {Button, Popconfirm, Table, Tooltip} from 'antd'; +import {Button, Popconfirm, Table} from 'antd'; import moment from "moment"; import * as Setting from "./Setting"; import * as ProviderBackend from "./backend/ProviderBackend"; @@ -146,22 +146,7 @@ class ProviderListPage extends React.Component { align: 'center', sorter: (a, b) => a.type.localeCompare(b.type), render: (text, record, index) => { - const url = Provider.getProviderUrl(record); - if (url !== "") { - return ( - - - {record.displayName} - - - ) - } else { - return ( - - {record.displayName} - - ) - } + return Provider.getProviderLogoWidget(record); } }, { diff --git a/web/src/ProviderTable.js b/web/src/ProviderTable.js index 723ec0c4..4f23ed85 100644 --- a/web/src/ProviderTable.js +++ b/web/src/ProviderTable.js @@ -17,6 +17,7 @@ import {DownOutlined, DeleteOutlined, UpOutlined} from '@ant-design/icons'; import {Button, Col, Row, Select, Switch, Table, Tooltip} from 'antd'; import * as Setting from "./Setting"; import i18next from "i18next"; +import * as Provider from "./auth/Provider"; const { Option } = Select; @@ -83,6 +84,26 @@ class ProviderTable extends React.Component { ) } }, + { + title: i18next.t("provider:Category"), + dataIndex: 'category', + key: 'category', + width: '100px', + render: (text, record, index) => { + const provider = Setting.getArrayItem(this.props.providers, "name", record.name); + return provider?.category; + } + }, + { + title: i18next.t("provider:Type"), + dataIndex: 'type', + key: 'type', + width: '80px', + render: (text, record, index) => { + const provider = Setting.getArrayItem(this.props.providers, "name", record.name); + return Provider.getProviderLogoWidget(provider); + } + }, { title: i18next.t("provider:canSignUp"), dataIndex: 'canSignUp', diff --git a/web/src/auth/Provider.js b/web/src/auth/Provider.js index 8cf61295..fba26dd0 100644 --- a/web/src/auth/Provider.js +++ b/web/src/auth/Provider.js @@ -12,6 +12,8 @@ // See the License for the specific language governing permissions and // limitations under the License. +import React from "react"; +import {Tooltip} from "antd"; import * as Util from "./Util"; import {StaticBaseUrl} from "../Setting"; @@ -130,6 +132,29 @@ export function getProviderUrl(provider) { } } +export function getProviderLogoWidget(provider) { + if (provider === undefined) { + return null; + } + + const url = getProviderUrl(provider); + if (url !== "") { + return ( + + + {provider.displayName} + + + ) + } else { + return ( + + {provider.displayName} + + ) + } +} + export function getAuthUrl(application, provider, method) { if (application === null || provider === null) { return "";