|
|
|
@ -18,7 +18,7 @@
|
|
|
|
|
|
|
|
|
|
import React from "react";
|
|
|
|
|
import axios from "axios";
|
|
|
|
|
import {Tag, message, notification, Table, Typography, Tooltip, Icon, Divider, Button, Modal, Select} from "antd";
|
|
|
|
|
import {Tag, message, notification, Table, Typography, Tooltip, Icon, Modal, Select} from "antd";
|
|
|
|
|
import TimeAgo from 'javascript-time-ago'
|
|
|
|
|
|
|
|
|
|
// Load locale-specific relative date/time formatting rules.
|
|
|
|
@ -133,18 +133,11 @@ class DeviceTable extends React.Component {
|
|
|
|
|
selectedRows: [],
|
|
|
|
|
deviceGroups: [],
|
|
|
|
|
groupModalVisible: false,
|
|
|
|
|
selectedGroupId: []
|
|
|
|
|
selectedGroupId: [],
|
|
|
|
|
selectedRowKeys:[]
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
rowSelection = {
|
|
|
|
|
onChange: (selectedRowKeys, selectedRows) => {
|
|
|
|
|
this.setState({
|
|
|
|
|
selectedRows: selectedRows
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
componentDidMount() {
|
|
|
|
|
this.fetch();
|
|
|
|
|
}
|
|
|
|
@ -249,6 +242,9 @@ class DeviceTable extends React.Component {
|
|
|
|
|
).then(res => {
|
|
|
|
|
if (res.status === 200) {
|
|
|
|
|
this.fetch();
|
|
|
|
|
this.setState({
|
|
|
|
|
selectedRowKeys:[]
|
|
|
|
|
})
|
|
|
|
|
notification["success"]({
|
|
|
|
|
message: "Done",
|
|
|
|
|
duration: 4,
|
|
|
|
@ -409,11 +405,30 @@ class DeviceTable extends React.Component {
|
|
|
|
|
});
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
render() {
|
|
|
|
|
const {data, pagination, loading, selectedRows} = this.state;
|
|
|
|
|
onSelectChange = (selectedRowKeys, selectedRows) => {
|
|
|
|
|
this.setState({
|
|
|
|
|
selectedRowKeys,
|
|
|
|
|
selectedRows: selectedRows
|
|
|
|
|
});
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
render() {
|
|
|
|
|
const {data, pagination, loading, selectedRows, selectedRowKeys} = this.state;
|
|
|
|
|
const isSelectedSingle = this.state.selectedRows.length == 1;
|
|
|
|
|
|
|
|
|
|
let selectedText;
|
|
|
|
|
if(isSelectedSingle){
|
|
|
|
|
selectedText = "You have selected 1 device"
|
|
|
|
|
}else{
|
|
|
|
|
selectedText = "You have selected " + this.state.selectedRows.length + " devices"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const rowSelection = {
|
|
|
|
|
selectedRowKeys,
|
|
|
|
|
selectedRows,
|
|
|
|
|
onChange: this.onSelectChange,
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
let item = this.state.deviceGroups.map((data) =>
|
|
|
|
|
<Select.Option
|
|
|
|
|
value={data.id}
|
|
|
|
@ -441,8 +456,7 @@ class DeviceTable extends React.Component {
|
|
|
|
|
}}
|
|
|
|
|
loading={loading}
|
|
|
|
|
onChange={this.handleTableChange}
|
|
|
|
|
rowSelection={this.rowSelection}
|
|
|
|
|
scroll={{x: 1000}}
|
|
|
|
|
rowSelection={rowSelection}
|
|
|
|
|
/>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
@ -453,10 +467,11 @@ class DeviceTable extends React.Component {
|
|
|
|
|
onOk={this.handleOk}
|
|
|
|
|
onCancel={this.handleCancel}
|
|
|
|
|
>
|
|
|
|
|
<p>{selectedText}</p>
|
|
|
|
|
<Select
|
|
|
|
|
mode={isSelectedSingle ? "multiple" : "default"}
|
|
|
|
|
showSearch
|
|
|
|
|
style={{width: 200}}
|
|
|
|
|
style={{display:"block"}}
|
|
|
|
|
placeholder="Select Group"
|
|
|
|
|
optionFilterProp="children"
|
|
|
|
|
onChange={this.onGroupSelectChange}
|
|
|
|
|