// Copyright 2021 The Casdoor Authors. All Rights Reserved. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. import React from "react"; import {Button, Input, Result, Space} from "antd"; import {SearchOutlined} from "@ant-design/icons"; import Highlighter from "react-highlight-words"; import i18next from "i18next"; import * as Setting from "./Setting"; class BaseListPage extends React.Component { constructor(props) { super(props); this.state = { classes: props, data: [], pagination: { current: 1, pageSize: 10, }, loading: false, searchText: "", searchedColumn: "", isAuthorized: true, }; } handleOrganizationChange = () => { const {pagination} = this.state; this.fetch({pagination}); }; componentDidMount() { window.addEventListener("storageOrganizationChanged", this.handleOrganizationChange); if (!Setting.isAdminUser(this.props.account)) { Setting.setOrganization("All"); } } componentWillUnmount() { window.removeEventListener("storageOrganizationChanged", this.handleOrganizationChange); } UNSAFE_componentWillMount() { const {pagination} = this.state; this.fetch({pagination}); } getColumnSearchProps = dataIndex => ({ filterDropdown: ({setSelectedKeys, selectedKeys, confirm, clearFilters}) => (