Please wait. This can take some minutes ...
Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance.
Project price only 1 $
You can buy this project and download/modify it how often you want.
static.console-fe.src.pages.ClusterManagement.ClusterNodeList.ClusterNodeList.js Maven / Gradle / Ivy
/*
* Copyright 1999-2018 Alibaba Group Holding Ltd.
*
* 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 PropTypes from 'prop-types';
import {
Button,
Field,
Tag,
Icon,
Collapse,
Form,
Grid,
Input,
Loading,
Pagination,
Table,
ConfigProvider,
} from '@alifd/next';
import { request } from '../../../globalLib';
import RegionGroup from '../../../components/RegionGroup';
import './ClusterNodeList.scss';
const FormItem = Form.Item;
const { Row, Col } = Grid;
const { Column } = Table;
const { Panel } = Collapse;
@ConfigProvider.config
class ClusterNodeList extends React.Component {
static displayName = 'ClusterNodeList';
static propTypes = {
locale: PropTypes.object,
};
constructor(props) {
super(props);
this.state = {
loading: false,
total: 0,
pageSize: 10,
currentPage: 1,
keyword: '',
dataSource: [],
};
this.field = new Field(this);
}
openLoading() {
this.setState({ loading: true });
}
closeLoading() {
this.setState({ loading: false });
}
openEditServiceDialog() {
try {
this.editServiceDialog.current.getInstance().show(this.state.service);
} catch (error) {}
}
queryClusterStateList() {
const { currentPage, pageSize, keyword, withInstances = false } = this.state;
const parameter = [
`withInstances=${withInstances}`,
`pageNo=${currentPage}`,
`pageSize=${pageSize}`,
`keyword=${keyword}`,
];
request({
url: `v1/core/cluster/nodes?${parameter.join('&')}`,
beforeSend: () => this.openLoading(),
success: ({ count = 0, data = [] } = {}) => {
this.setState({
dataSource: data,
total: count,
});
},
error: () =>
this.setState({
dataSource: [],
total: 0,
currentPage: 0,
}),
complete: () => this.closeLoading(),
});
}
getQueryLater = () => {
setTimeout(() => this.queryClusterStateList());
};
setNowNameSpace = (nowNamespaceName, nowNamespaceId) =>
this.setState({
nowNamespaceName,
nowNamespaceId,
});
rowColor = row => ({ className: !row.voteFor ? '' : '' });
render() {
const { locale = {} } = this.props;
const { pubNoData, clusterNodeList, nodeIp, nodeIpPlaceholder, query } = locale;
const { keyword, nowNamespaceName, nowNamespaceId } = this.state;
const { init, getValue } = this.field;
this.init = init;
this.getValue = getValue;
return (
{clusterNodeList}
|
{nowNamespaceName}
{nowNamespaceId}
this.rowColor(row)}
>
{value}
);
}
if (value === 'DOWN') {
return (
{value}
);
}
if (value === 'SUSPICIOUS') {
return (
{value}
);
}
return (
{value}
);
}}
/>
);
return collapse;
}
return showCollapse();
}}
/>
{this.state.total > this.state.pageSize && (
this.setState({ currentPage }, () => this.queryClusterStateList())
}
/>
)}
);
}
}
export default ClusterNodeList;