mirror of
https://github.com/haiwen/seahub.git
synced 2025-09-12 13:24:52 +00:00
[system admin] improved pagination for all (#4404)
* [system admin] improved pagination for all * [paginator] show 'current page' * redesigned paginator * [pagination] cleanup
This commit is contained in:
@@ -1,57 +1,82 @@
|
|||||||
import React, { Component, Fragment } from 'react';
|
import React, { Component } from 'react';
|
||||||
import PropTypes from 'prop-types';
|
import PropTypes from 'prop-types';
|
||||||
|
import { navigate } from '@reach/router';
|
||||||
import { gettext } from '../utils/constants';
|
import { gettext } from '../utils/constants';
|
||||||
|
|
||||||
|
import '../css/pagination.css';
|
||||||
|
|
||||||
const propTypes = {
|
const propTypes = {
|
||||||
|
currentPage: PropTypes.number.isRequired,
|
||||||
gotoPreviousPage: PropTypes.func.isRequired,
|
gotoPreviousPage: PropTypes.func.isRequired,
|
||||||
gotoNextPage: PropTypes.func.isRequired,
|
gotoNextPage: PropTypes.func.isRequired,
|
||||||
currentPage: PropTypes.number.isRequired,
|
|
||||||
hasNextPage: PropTypes.bool.isRequired,
|
hasNextPage: PropTypes.bool.isRequired,
|
||||||
canResetPerPage: PropTypes.bool.isRequired,
|
resetPerPage: PropTypes.func.isRequired,
|
||||||
resetPerPage: PropTypes.func,
|
curPerPage: PropTypes.number.isRequired
|
||||||
curPerPage: PropTypes.number,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
class Paginator extends Component {
|
class Paginator extends Component {
|
||||||
|
|
||||||
resetPerPage = (perPage) => {
|
resetPerPage = (e) => {
|
||||||
|
const perPage = e.target.value;
|
||||||
|
this.updateURL(1, perPage);
|
||||||
this.props.resetPerPage(perPage);
|
this.props.resetPerPage(perPage);
|
||||||
}
|
}
|
||||||
|
|
||||||
goToPrevious = (e) => {
|
goToPrevious = () => {
|
||||||
e.preventDefault();
|
const { currentPage, curPerPage } = this.props;
|
||||||
|
this.updateURL(currentPage - 1, curPerPage);
|
||||||
this.props.gotoPreviousPage();
|
this.props.gotoPreviousPage();
|
||||||
}
|
}
|
||||||
|
|
||||||
goToNext = (e) => {
|
goToNext = () => {
|
||||||
e.preventDefault();
|
const { currentPage, curPerPage } = this.props;
|
||||||
|
this.updateURL(currentPage + 1, curPerPage);
|
||||||
this.props.gotoNextPage();
|
this.props.gotoNextPage();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
updateURL = (page, perPage) => {
|
||||||
|
let url = new URL(location.href);
|
||||||
|
let searchParams = new URLSearchParams(url.search);
|
||||||
|
searchParams.set('page', page);
|
||||||
|
searchParams.set('per_page', perPage);
|
||||||
|
url.search = searchParams.toString();
|
||||||
|
navigate(url.toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
getPerPageText = (perPage) => {
|
||||||
|
return gettext('{number_placeholder} / Page').replace('{number_placeholder}', perPage);
|
||||||
|
}
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
let { curPerPage } = this.props;
|
const { curPerPage, currentPage } = this.props;
|
||||||
return (
|
return (
|
||||||
<Fragment>
|
<div className="my-6 paginator d-flex align-items-center justify-content-center">
|
||||||
<div className="my-6 text-center">
|
<button
|
||||||
{this.props.currentPage != 1 &&
|
className="btn btn-secondary"
|
||||||
<a href="#" onClick={this.goToPrevious}>{gettext('Previous')}</a>
|
disabled={currentPage == 1}
|
||||||
}
|
onClick={this.goToPrevious}
|
||||||
{this.props.hasNextPage &&
|
>
|
||||||
<a href="#" onClick={this.goToNext} className="ml-4">{gettext('Next')}</a>
|
<span className="fas fa-chevron-left"></span>
|
||||||
}
|
</button>
|
||||||
{(this.props.currentPage != 1 || this.props.hasNextPage) &&
|
<span className="btn btn-primary mx-4">{currentPage}</span>
|
||||||
<span className="d-inline-block mx-2">|</span>
|
<button
|
||||||
}
|
className="btn btn-secondary"
|
||||||
{this.props.canResetPerPage &&
|
disabled={!this.props.hasNextPage}
|
||||||
<Fragment>
|
onClick={this.goToNext}
|
||||||
{gettext('Per page:')}
|
>
|
||||||
<span className={`${curPerPage === 25 ? '' : 'a-simulate '} mx-1`} onClick={() => {return this.resetPerPage(25);}}>25</span>
|
<span className="fas fa-chevron-right"></span>
|
||||||
<span className={`${curPerPage === 50 ? '' : 'a-simulate '} mr-1`} onClick={() => {return this.resetPerPage(50);}}>50</span>
|
</button>
|
||||||
<span className={`${curPerPage === 100 ? '' : 'a-simulate '}`} onClick={() => {return this.resetPerPage(100);}}>100</span>
|
|
||||||
</Fragment>
|
<select
|
||||||
}
|
className="form-control d-inline-block w-auto ml-6"
|
||||||
|
value={curPerPage}
|
||||||
|
onChange={this.resetPerPage}
|
||||||
|
>
|
||||||
|
<option value="25">{this.getPerPageText(25)}</option>
|
||||||
|
<option value="50">{this.getPerPageText(50)}</option>
|
||||||
|
<option value="100">{this.getPerPageText(100)}</option>
|
||||||
|
</select>
|
||||||
</div>
|
</div>
|
||||||
</Fragment>
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
3
frontend/src/css/pagination.css
Normal file
3
frontend/src/css/pagination.css
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
.paginator .btn {
|
||||||
|
min-width: 2.375rem;
|
||||||
|
}
|
@@ -64,7 +64,6 @@ class Content extends Component {
|
|||||||
gotoNextPage={this.getNextPage}
|
gotoNextPage={this.getNextPage}
|
||||||
currentPage={currentPage}
|
currentPage={currentPage}
|
||||||
hasNextPage={hasNextPage}
|
hasNextPage={hasNextPage}
|
||||||
canResetPerPage={true}
|
|
||||||
curPerPage={perPage}
|
curPerPage={perPage}
|
||||||
resetPerPage={this.props.resetPerPage}
|
resetPerPage={this.props.resetPerPage}
|
||||||
/>
|
/>
|
||||||
@@ -102,7 +101,7 @@ class AdminLoginLogs extends Component {
|
|||||||
loading: true,
|
loading: true,
|
||||||
errorMsg: '',
|
errorMsg: '',
|
||||||
logList: [],
|
logList: [],
|
||||||
perPage: 100,
|
perPage: 25,
|
||||||
currentPage: 1,
|
currentPage: 1,
|
||||||
hasNextPage: false,
|
hasNextPage: false,
|
||||||
};
|
};
|
||||||
@@ -110,7 +109,14 @@ class AdminLoginLogs extends Component {
|
|||||||
}
|
}
|
||||||
|
|
||||||
componentDidMount () {
|
componentDidMount () {
|
||||||
this.getLogsByPage(this.initPage);
|
let urlParams = (new URL(window.location)).searchParams;
|
||||||
|
const { currentPage, perPage } = this.state;
|
||||||
|
this.setState({
|
||||||
|
perPage: parseInt(urlParams.get('per_page') || perPage),
|
||||||
|
currentPage: parseInt(urlParams.get('page') || currentPage)
|
||||||
|
}, () => {
|
||||||
|
this.getLogsByPage(this.state.currentPage);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
getLogsByPage = (page) => {
|
getLogsByPage = (page) => {
|
||||||
|
@@ -63,7 +63,6 @@ class Content extends Component {
|
|||||||
gotoNextPage={this.getNextPage}
|
gotoNextPage={this.getNextPage}
|
||||||
currentPage={currentPage}
|
currentPage={currentPage}
|
||||||
hasNextPage={hasNextPage}
|
hasNextPage={hasNextPage}
|
||||||
canResetPerPage={true}
|
|
||||||
curPerPage={perPage}
|
curPerPage={perPage}
|
||||||
resetPerPage={this.props.resetPerPage}
|
resetPerPage={this.props.resetPerPage}
|
||||||
/>
|
/>
|
||||||
@@ -199,7 +198,7 @@ class AdminOperationLogs extends Component {
|
|||||||
loading: true,
|
loading: true,
|
||||||
errorMsg: '',
|
errorMsg: '',
|
||||||
logList: [],
|
logList: [],
|
||||||
perPage: 100,
|
perPage: 25,
|
||||||
currentPage: 1,
|
currentPage: 1,
|
||||||
hasNextPage: false,
|
hasNextPage: false,
|
||||||
};
|
};
|
||||||
@@ -207,7 +206,14 @@ class AdminOperationLogs extends Component {
|
|||||||
}
|
}
|
||||||
|
|
||||||
componentDidMount () {
|
componentDidMount () {
|
||||||
this.getLogsByPage(this.initPage);
|
let urlParams = (new URL(window.location)).searchParams;
|
||||||
|
const { currentPage, perPage } = this.state;
|
||||||
|
this.setState({
|
||||||
|
perPage: parseInt(urlParams.get('per_page') || perPage),
|
||||||
|
currentPage: parseInt(urlParams.get('page') || currentPage)
|
||||||
|
}, () => {
|
||||||
|
this.getLogsByPage(this.state.currentPage);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
getLogsByPage = (page) => {
|
getLogsByPage = (page) => {
|
||||||
|
@@ -24,7 +24,7 @@ class Content extends Component {
|
|||||||
}
|
}
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
const { loading, errorMsg, items, pageInfo } = this.props;
|
const { loading, errorMsg, items, pageInfo, curPerPage } = this.props;
|
||||||
if (loading) {
|
if (loading) {
|
||||||
return <Loading />;
|
return <Loading />;
|
||||||
} else if (errorMsg) {
|
} else if (errorMsg) {
|
||||||
@@ -59,7 +59,8 @@ class Content extends Component {
|
|||||||
gotoNextPage={this.getNextPageDevicesList}
|
gotoNextPage={this.getNextPageDevicesList}
|
||||||
currentPage={pageInfo.current_page}
|
currentPage={pageInfo.current_page}
|
||||||
hasNextPage={pageInfo.has_next_page}
|
hasNextPage={pageInfo.has_next_page}
|
||||||
canResetPerPage={false}
|
curPerPage={curPerPage}
|
||||||
|
resetPerPage={this.props.resetPerPage}
|
||||||
/>
|
/>
|
||||||
</Fragment>
|
</Fragment>
|
||||||
);
|
);
|
||||||
@@ -155,12 +156,19 @@ class DevicesByPlatform extends Component {
|
|||||||
errorMsg: '',
|
errorMsg: '',
|
||||||
devicesData: {},
|
devicesData: {},
|
||||||
pageInfo: {},
|
pageInfo: {},
|
||||||
perPage: 50
|
perPage: 25
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
componentDidMount () {
|
componentDidMount () {
|
||||||
this.getDevicesListByPage(1);
|
let urlParams = (new URL(window.location)).searchParams;
|
||||||
|
const { currentPage = 1, perPage } = this.state;
|
||||||
|
this.setState({
|
||||||
|
perPage: parseInt(urlParams.get('per_page') || perPage),
|
||||||
|
currentPage: parseInt(urlParams.get('page') || currentPage)
|
||||||
|
}, () => {
|
||||||
|
this.getDevicesListByPage(this.state.currentPage);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
getDevicesListByPage = (page) => {
|
getDevicesListByPage = (page) => {
|
||||||
@@ -180,14 +188,24 @@ class DevicesByPlatform extends Component {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
resetPerPage = (perPage) => {
|
||||||
|
this.setState({
|
||||||
|
perPage: perPage
|
||||||
|
}, () => {
|
||||||
|
this.getDevicesListByPage(1);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
return (
|
return (
|
||||||
<div className="cur-view-content">
|
<div className="cur-view-content">
|
||||||
<Content
|
<Content
|
||||||
getDevicesListByPage={this.getDevicesListByPage}
|
|
||||||
loading={this.state.loading}
|
loading={this.state.loading}
|
||||||
errorMsg={this.state.errorMsg}
|
errorMsg={this.state.errorMsg}
|
||||||
items={this.state.devicesData}
|
items={this.state.devicesData}
|
||||||
|
getDevicesListByPage={this.getDevicesListByPage}
|
||||||
|
curPerPage={this.state.perPage}
|
||||||
|
resetPerPage={this.resetPerPage}
|
||||||
pageInfo={this.state.pageInfo}
|
pageInfo={this.state.pageInfo}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
@@ -37,7 +37,7 @@ class Content extends Component {
|
|||||||
}
|
}
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
const { loading, errorMsg, items, pageInfo } = this.props;
|
const { loading, errorMsg, items, pageInfo, curPerPage } = this.props;
|
||||||
if (loading) {
|
if (loading) {
|
||||||
return <Loading />;
|
return <Loading />;
|
||||||
} else if (errorMsg) {
|
} else if (errorMsg) {
|
||||||
@@ -79,7 +79,8 @@ class Content extends Component {
|
|||||||
gotoNextPage={this.getNextPage}
|
gotoNextPage={this.getNextPage}
|
||||||
currentPage={pageInfo.current_page}
|
currentPage={pageInfo.current_page}
|
||||||
hasNextPage={pageInfo.has_next_page}
|
hasNextPage={pageInfo.has_next_page}
|
||||||
canResetPerPage={false}
|
curPerPage={curPerPage}
|
||||||
|
resetPerPage={this.props.resetPerPage}
|
||||||
/>
|
/>
|
||||||
}
|
}
|
||||||
</Fragment>
|
</Fragment>
|
||||||
|
@@ -19,13 +19,20 @@ class Groups extends Component {
|
|||||||
errorMsg: '',
|
errorMsg: '',
|
||||||
groupList: [],
|
groupList: [],
|
||||||
pageInfo: {},
|
pageInfo: {},
|
||||||
perPage: 100,
|
perPage: 25,
|
||||||
isCreateGroupDialogOpen: false
|
isCreateGroupDialogOpen: false
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
componentDidMount () {
|
componentDidMount () {
|
||||||
this.getGroupListByPage(1);
|
let urlParams = (new URL(window.location)).searchParams;
|
||||||
|
const { currentPage = 1, perPage } = this.state;
|
||||||
|
this.setState({
|
||||||
|
perPage: parseInt(urlParams.get('per_page') || perPage),
|
||||||
|
currentPage: parseInt(urlParams.get('page') || currentPage)
|
||||||
|
}, () => {
|
||||||
|
this.getGroupListByPage(this.state.currentPage);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
toggleCreateGroupDialog = () => {
|
toggleCreateGroupDialog = () => {
|
||||||
@@ -47,6 +54,14 @@ class Groups extends Component {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
resetPerPage = (perPage) => {
|
||||||
|
this.setState({
|
||||||
|
perPage: perPage
|
||||||
|
}, () => {
|
||||||
|
this.getGroupListByPage(1);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
createGroup = (groupName, OnwerEmail) => {
|
createGroup = (groupName, OnwerEmail) => {
|
||||||
seafileAPI.sysAdminCreateNewGroup(groupName, OnwerEmail).then(res => {
|
seafileAPI.sysAdminCreateNewGroup(groupName, OnwerEmail).then(res => {
|
||||||
let newGroupList = this.state.groupList;
|
let newGroupList = this.state.groupList;
|
||||||
@@ -130,6 +145,8 @@ class Groups extends Component {
|
|||||||
deleteGroup={this.deleteGroup}
|
deleteGroup={this.deleteGroup}
|
||||||
transferGroup={this.transferGroup}
|
transferGroup={this.transferGroup}
|
||||||
getListByPage={this.getGroupListByPage}
|
getListByPage={this.getGroupListByPage}
|
||||||
|
resetPerPage={this.resetPerPage}
|
||||||
|
curPerPage={this.state.perPage}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@@ -83,7 +83,6 @@ class Content extends Component {
|
|||||||
gotoNextPage={this.getNextPage}
|
gotoNextPage={this.getNextPage}
|
||||||
currentPage={currentPage}
|
currentPage={currentPage}
|
||||||
hasNextPage={hasNextPage}
|
hasNextPage={hasNextPage}
|
||||||
canResetPerPage={true}
|
|
||||||
curPerPage={perPage}
|
curPerPage={perPage}
|
||||||
resetPerPage={this.props.resetPerPage}
|
resetPerPage={this.props.resetPerPage}
|
||||||
/>
|
/>
|
||||||
@@ -231,7 +230,7 @@ class InstitutionUsers extends Component {
|
|||||||
errorMsg: '',
|
errorMsg: '',
|
||||||
institutionName: '',
|
institutionName: '',
|
||||||
userList: [],
|
userList: [],
|
||||||
perPage: 100,
|
perPage: 25,
|
||||||
currentPage: 1,
|
currentPage: 1,
|
||||||
hasNextPage: false,
|
hasNextPage: false,
|
||||||
isAddUserDialogOpen: false
|
isAddUserDialogOpen: false
|
||||||
@@ -245,7 +244,15 @@ class InstitutionUsers extends Component {
|
|||||||
institutionName: res.data.name
|
institutionName: res.data.name
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
this.getInstitutionUsersByPage(this.initPage);
|
|
||||||
|
let urlParams = (new URL(window.location)).searchParams;
|
||||||
|
const { currentPage, perPage } = this.state;
|
||||||
|
this.setState({
|
||||||
|
perPage: parseInt(urlParams.get('per_page') || perPage),
|
||||||
|
currentPage: parseInt(urlParams.get('page') || currentPage)
|
||||||
|
}, () => {
|
||||||
|
this.getInstitutionUsersByPage(this.state.currentPage);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
getInstitutionUsersByPage = (page) => {
|
getInstitutionUsersByPage = (page) => {
|
||||||
|
@@ -64,7 +64,6 @@ class Content extends Component {
|
|||||||
gotoNextPage={this.getNextPage}
|
gotoNextPage={this.getNextPage}
|
||||||
currentPage={currentPage}
|
currentPage={currentPage}
|
||||||
hasNextPage={hasNextPage}
|
hasNextPage={hasNextPage}
|
||||||
canResetPerPage={true}
|
|
||||||
curPerPage={perPage}
|
curPerPage={perPage}
|
||||||
resetPerPage={this.props.resetPerPage}
|
resetPerPage={this.props.resetPerPage}
|
||||||
/>
|
/>
|
||||||
@@ -142,7 +141,7 @@ class Institutions extends Component {
|
|||||||
loading: true,
|
loading: true,
|
||||||
errorMsg: '',
|
errorMsg: '',
|
||||||
institutionList: [],
|
institutionList: [],
|
||||||
perPage: 100,
|
perPage: 25,
|
||||||
currentPage: 1,
|
currentPage: 1,
|
||||||
hasNextPage: false,
|
hasNextPage: false,
|
||||||
isAddInstitutionDialogOpen: false,
|
isAddInstitutionDialogOpen: false,
|
||||||
@@ -151,7 +150,14 @@ class Institutions extends Component {
|
|||||||
}
|
}
|
||||||
|
|
||||||
componentDidMount () {
|
componentDidMount () {
|
||||||
this.getInstitutionsByPage(this.initPage);
|
let urlParams = (new URL(window.location)).searchParams;
|
||||||
|
const { currentPage, perPage } = this.state;
|
||||||
|
this.setState({
|
||||||
|
perPage: parseInt(urlParams.get('per_page') || perPage),
|
||||||
|
currentPage: parseInt(urlParams.get('page') || currentPage)
|
||||||
|
}, () => {
|
||||||
|
this.getInstitutionsByPage(this.state.currentPage);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
getInstitutionsByPage = (page) => {
|
getInstitutionsByPage = (page) => {
|
||||||
|
@@ -82,7 +82,6 @@ class Content extends Component {
|
|||||||
gotoNextPage={this.getNextPage}
|
gotoNextPage={this.getNextPage}
|
||||||
currentPage={currentPage}
|
currentPage={currentPage}
|
||||||
hasNextPage={hasNextPage}
|
hasNextPage={hasNextPage}
|
||||||
canResetPerPage={true}
|
|
||||||
curPerPage={curPerPage}
|
curPerPage={curPerPage}
|
||||||
resetPerPage={this.props.resetPerPage}
|
resetPerPage={this.props.resetPerPage}
|
||||||
/>
|
/>
|
||||||
@@ -232,7 +231,14 @@ class Invitations extends Component {
|
|||||||
}
|
}
|
||||||
|
|
||||||
componentDidMount () {
|
componentDidMount () {
|
||||||
this.getItemsByPage(1);
|
let urlParams = (new URL(window.location)).searchParams;
|
||||||
|
const { currentPage, perPage } = this.state;
|
||||||
|
this.setState({
|
||||||
|
perPage: parseInt(urlParams.get('per_page') || perPage),
|
||||||
|
currentPage: parseInt(urlParams.get('page') || currentPage)
|
||||||
|
}, () => {
|
||||||
|
this.getItemsByPage(this.state.currentPage);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
getItemsByPage = (page) => {
|
getItemsByPage = (page) => {
|
||||||
|
@@ -67,7 +67,6 @@ class Content extends Component {
|
|||||||
gotoNextPage={this.getNextPage}
|
gotoNextPage={this.getNextPage}
|
||||||
currentPage={currentPage}
|
currentPage={currentPage}
|
||||||
hasNextPage={hasNextPage}
|
hasNextPage={hasNextPage}
|
||||||
canResetPerPage={true}
|
|
||||||
curPerPage={perPage}
|
curPerPage={perPage}
|
||||||
resetPerPage={this.props.resetPerPage}
|
resetPerPage={this.props.resetPerPage}
|
||||||
/>
|
/>
|
||||||
@@ -130,7 +129,7 @@ class ShareLinks extends Component {
|
|||||||
loading: true,
|
loading: true,
|
||||||
errorMsg: '',
|
errorMsg: '',
|
||||||
shareLinkList: [],
|
shareLinkList: [],
|
||||||
perPage: 100,
|
perPage: 25,
|
||||||
currentPage: 1,
|
currentPage: 1,
|
||||||
hasNextPage: false,
|
hasNextPage: false,
|
||||||
};
|
};
|
||||||
@@ -138,7 +137,14 @@ class ShareLinks extends Component {
|
|||||||
}
|
}
|
||||||
|
|
||||||
componentDidMount () {
|
componentDidMount () {
|
||||||
this.getShareLinksByPage(this.initPage);
|
let urlParams = (new URL(window.location)).searchParams;
|
||||||
|
const { currentPage, perPage } = this.state;
|
||||||
|
this.setState({
|
||||||
|
perPage: parseInt(urlParams.get('per_page') || perPage),
|
||||||
|
currentPage: parseInt(urlParams.get('page') || currentPage)
|
||||||
|
}, () => {
|
||||||
|
this.getShareLinksByPage(this.state.currentPage);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
getShareLinksByPage = (page) => {
|
getShareLinksByPage = (page) => {
|
||||||
|
@@ -68,7 +68,6 @@ class Content extends Component {
|
|||||||
gotoNextPage={this.getNextPage}
|
gotoNextPage={this.getNextPage}
|
||||||
currentPage={currentPage}
|
currentPage={currentPage}
|
||||||
hasNextPage={hasNextPage}
|
hasNextPage={hasNextPage}
|
||||||
canResetPerPage={true}
|
|
||||||
curPerPage={perPage}
|
curPerPage={perPage}
|
||||||
resetPerPage={this.props.resetPerPage}
|
resetPerPage={this.props.resetPerPage}
|
||||||
/>
|
/>
|
||||||
@@ -133,7 +132,7 @@ class UploadLinks extends Component {
|
|||||||
loading: true,
|
loading: true,
|
||||||
errorMsg: '',
|
errorMsg: '',
|
||||||
uploadLinkList: [],
|
uploadLinkList: [],
|
||||||
perPage: 100,
|
perPage: 25,
|
||||||
currentPage: 1,
|
currentPage: 1,
|
||||||
hasNextPage: false,
|
hasNextPage: false,
|
||||||
};
|
};
|
||||||
@@ -141,7 +140,14 @@ class UploadLinks extends Component {
|
|||||||
}
|
}
|
||||||
|
|
||||||
componentDidMount() {
|
componentDidMount() {
|
||||||
this.getUploadLinksByPage(this.initPage);
|
let urlParams = (new URL(window.location)).searchParams;
|
||||||
|
const { currentPage, perPage } = this.state;
|
||||||
|
this.setState({
|
||||||
|
perPage: parseInt(urlParams.get('per_page') || perPage),
|
||||||
|
currentPage: parseInt(urlParams.get('page') || currentPage)
|
||||||
|
}, () => {
|
||||||
|
this.getUploadLinksByPage(this.state.currentPage);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
getUploadLinksByPage = (page) => {
|
getUploadLinksByPage = (page) => {
|
||||||
|
@@ -69,7 +69,6 @@ class Content extends Component {
|
|||||||
gotoNextPage={this.getNextPage}
|
gotoNextPage={this.getNextPage}
|
||||||
currentPage={currentPage}
|
currentPage={currentPage}
|
||||||
hasNextPage={hasNextPage}
|
hasNextPage={hasNextPage}
|
||||||
canResetPerPage={true}
|
|
||||||
curPerPage={perPage}
|
curPerPage={perPage}
|
||||||
resetPerPage={this.props.resetPerPage}
|
resetPerPage={this.props.resetPerPage}
|
||||||
/>
|
/>
|
||||||
@@ -124,7 +123,7 @@ class FileAccessLogs extends Component {
|
|||||||
loading: true,
|
loading: true,
|
||||||
errorMsg: '',
|
errorMsg: '',
|
||||||
logList: [],
|
logList: [],
|
||||||
perPage: 100,
|
perPage: 25,
|
||||||
currentPage: 1,
|
currentPage: 1,
|
||||||
hasNextPage: false,
|
hasNextPage: false,
|
||||||
isExportExcelDialogOpen: false,
|
isExportExcelDialogOpen: false,
|
||||||
@@ -137,7 +136,14 @@ class FileAccessLogs extends Component {
|
|||||||
}
|
}
|
||||||
|
|
||||||
componentDidMount () {
|
componentDidMount () {
|
||||||
this.getLogsByPage(this.initPage);
|
let urlParams = (new URL(window.location)).searchParams;
|
||||||
|
const { currentPage, perPage } = this.state;
|
||||||
|
this.setState({
|
||||||
|
perPage: parseInt(urlParams.get('per_page') || perPage),
|
||||||
|
currentPage: parseInt(urlParams.get('page') || currentPage)
|
||||||
|
}, () => {
|
||||||
|
this.getLogsByPage(this.state.currentPage);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
getLogsByPage = (page) => {
|
getLogsByPage = (page) => {
|
||||||
|
@@ -67,7 +67,6 @@ class Content extends Component {
|
|||||||
gotoNextPage={this.getNextPage}
|
gotoNextPage={this.getNextPage}
|
||||||
currentPage={currentPage}
|
currentPage={currentPage}
|
||||||
hasNextPage={hasNextPage}
|
hasNextPage={hasNextPage}
|
||||||
canResetPerPage={true}
|
|
||||||
curPerPage={perPage}
|
curPerPage={perPage}
|
||||||
resetPerPage={this.props.resetPerPage}
|
resetPerPage={this.props.resetPerPage}
|
||||||
/>
|
/>
|
||||||
@@ -152,7 +151,7 @@ class FileUpdateLogs extends Component {
|
|||||||
loading: true,
|
loading: true,
|
||||||
errorMsg: '',
|
errorMsg: '',
|
||||||
logList: [],
|
logList: [],
|
||||||
perPage: 100,
|
perPage: 25,
|
||||||
currentPage: 1,
|
currentPage: 1,
|
||||||
hasNextPage: false,
|
hasNextPage: false,
|
||||||
isExportExcelDialogOpen: false,
|
isExportExcelDialogOpen: false,
|
||||||
@@ -165,7 +164,14 @@ class FileUpdateLogs extends Component {
|
|||||||
}
|
}
|
||||||
|
|
||||||
componentDidMount () {
|
componentDidMount () {
|
||||||
this.getLogsByPage(this.initPage);
|
let urlParams = (new URL(window.location)).searchParams;
|
||||||
|
const { currentPage, perPage } = this.state;
|
||||||
|
this.setState({
|
||||||
|
perPage: parseInt(urlParams.get('per_page') || perPage),
|
||||||
|
currentPage: parseInt(urlParams.get('page') || currentPage)
|
||||||
|
}, () => {
|
||||||
|
this.getLogsByPage(this.state.currentPage);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
getLogsByPage = (page) => {
|
getLogsByPage = (page) => {
|
||||||
|
@@ -67,7 +67,6 @@ class Content extends Component {
|
|||||||
gotoNextPage={this.getNextPage}
|
gotoNextPage={this.getNextPage}
|
||||||
currentPage={currentPage}
|
currentPage={currentPage}
|
||||||
hasNextPage={hasNextPage}
|
hasNextPage={hasNextPage}
|
||||||
canResetPerPage={true}
|
|
||||||
curPerPage={perPage}
|
curPerPage={perPage}
|
||||||
resetPerPage={this.props.resetPerPage}
|
resetPerPage={this.props.resetPerPage}
|
||||||
/>
|
/>
|
||||||
@@ -120,7 +119,7 @@ class LoginLogs extends Component {
|
|||||||
loading: true,
|
loading: true,
|
||||||
errorMsg: '',
|
errorMsg: '',
|
||||||
logList: [],
|
logList: [],
|
||||||
perPage: 100,
|
perPage: 25,
|
||||||
currentPage: 1,
|
currentPage: 1,
|
||||||
hasNextPage: false,
|
hasNextPage: false,
|
||||||
isExportExcelDialogOpen: false,
|
isExportExcelDialogOpen: false,
|
||||||
@@ -133,7 +132,14 @@ class LoginLogs extends Component {
|
|||||||
}
|
}
|
||||||
|
|
||||||
componentDidMount () {
|
componentDidMount () {
|
||||||
this.getLogsByPage(this.initPage);
|
let urlParams = (new URL(window.location)).searchParams;
|
||||||
|
const { currentPage, perPage } = this.state;
|
||||||
|
this.setState({
|
||||||
|
perPage: parseInt(urlParams.get('per_page') || perPage),
|
||||||
|
currentPage: parseInt(urlParams.get('page') || currentPage)
|
||||||
|
}, () => {
|
||||||
|
this.getLogsByPage(this.state.currentPage);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
getLogsByPage = (page) => {
|
getLogsByPage = (page) => {
|
||||||
|
@@ -47,9 +47,9 @@ class Content extends Component {
|
|||||||
<th width="10%">{gettext('Share From')}</th>
|
<th width="10%">{gettext('Share From')}</th>
|
||||||
<th width="10%">{gettext('Share To')}</th>
|
<th width="10%">{gettext('Share To')}</th>
|
||||||
<th width="20%">{gettext('Actions')}</th>
|
<th width="20%">{gettext('Actions')}</th>
|
||||||
<th width="10%">{gettext('Permission')}</th>
|
<th width="13%">{gettext('Permission')}</th>
|
||||||
<th width="20%">{gettext('Library')}</th>
|
<th width="20%">{gettext('Library')}</th>
|
||||||
<th width="15%">{gettext('Folder')}</th>
|
<th width="12%">{gettext('Folder')}</th>
|
||||||
<th width="15%">{gettext('Date')}</th>
|
<th width="15%">{gettext('Date')}</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
@@ -69,7 +69,6 @@ class Content extends Component {
|
|||||||
gotoNextPage={this.getNextPage}
|
gotoNextPage={this.getNextPage}
|
||||||
currentPage={currentPage}
|
currentPage={currentPage}
|
||||||
hasNextPage={hasNextPage}
|
hasNextPage={hasNextPage}
|
||||||
canResetPerPage={true}
|
|
||||||
curPerPage={perPage}
|
curPerPage={perPage}
|
||||||
resetPerPage={this.props.resetPerPage}
|
resetPerPage={this.props.resetPerPage}
|
||||||
/>
|
/>
|
||||||
@@ -137,7 +136,7 @@ class SharePermissionLogs extends Component {
|
|||||||
loading: true,
|
loading: true,
|
||||||
errorMsg: '',
|
errorMsg: '',
|
||||||
logList: [],
|
logList: [],
|
||||||
perPage: 100,
|
perPage: 25,
|
||||||
currentPage: 1,
|
currentPage: 1,
|
||||||
hasNextPage: false,
|
hasNextPage: false,
|
||||||
isExportExcelDialogOpen: false,
|
isExportExcelDialogOpen: false,
|
||||||
@@ -150,7 +149,14 @@ class SharePermissionLogs extends Component {
|
|||||||
}
|
}
|
||||||
|
|
||||||
componentDidMount () {
|
componentDidMount () {
|
||||||
this.getLogsByPage(this.initPage);
|
let urlParams = (new URL(window.location)).searchParams;
|
||||||
|
const { currentPage, perPage } = this.state;
|
||||||
|
this.setState({
|
||||||
|
perPage: parseInt(urlParams.get('per_page') || perPage),
|
||||||
|
currentPage: parseInt(urlParams.get('page') || currentPage)
|
||||||
|
}, () => {
|
||||||
|
this.getLogsByPage(this.state.currentPage);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
getLogsByPage = (page) => {
|
getLogsByPage = (page) => {
|
||||||
|
@@ -67,7 +67,6 @@ class Content extends Component {
|
|||||||
currentPage={this.props.currentPage}
|
currentPage={this.props.currentPage}
|
||||||
hasNextPage={this.props.hasNextPage}
|
hasNextPage={this.props.hasNextPage}
|
||||||
curPerPage={this.props.curPerPage}
|
curPerPage={this.props.curPerPage}
|
||||||
canResetPerPage={true}
|
|
||||||
resetPerPage={this.props.resetPerPage}
|
resetPerPage={this.props.resetPerPage}
|
||||||
gotoPreviousPage={this.getPreviousPage}
|
gotoPreviousPage={this.getPreviousPage}
|
||||||
gotoNextPage={this.getNextPage}
|
gotoNextPage={this.getNextPage}
|
||||||
|
@@ -27,7 +27,14 @@ class Orgs extends Component {
|
|||||||
}
|
}
|
||||||
|
|
||||||
componentDidMount() {
|
componentDidMount() {
|
||||||
this.getItemsByPage(1);
|
let urlParams = (new URL(window.location)).searchParams;
|
||||||
|
const { currentPage, perPage } = this.state;
|
||||||
|
this.setState({
|
||||||
|
perPage: parseInt(urlParams.get('per_page') || perPage),
|
||||||
|
currentPage: parseInt(urlParams.get('page') || currentPage)
|
||||||
|
}, () => {
|
||||||
|
this.getItemsByPage(this.state.currentPage);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
getItemsByPage = (page) => {
|
getItemsByPage = (page) => {
|
||||||
|
@@ -20,13 +20,20 @@ class AllRepos extends Component {
|
|||||||
errorMsg: '',
|
errorMsg: '',
|
||||||
repos: [],
|
repos: [],
|
||||||
pageInfo: {},
|
pageInfo: {},
|
||||||
perPage: 100,
|
perPage: 25,
|
||||||
isCreateRepoDialogOpen: false
|
isCreateRepoDialogOpen: false
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
componentDidMount () {
|
componentDidMount () {
|
||||||
this.getReposByPage(1);
|
let urlParams = (new URL(window.location)).searchParams;
|
||||||
|
const { currentPage = 1, perPage } = this.state;
|
||||||
|
this.setState({
|
||||||
|
perPage: parseInt(urlParams.get('per_page') || perPage),
|
||||||
|
currentPage: parseInt(urlParams.get('page') || currentPage)
|
||||||
|
}, () => {
|
||||||
|
this.getReposByPage(this.state.currentPage);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
toggleCreateRepoDialog = () => {
|
toggleCreateRepoDialog = () => {
|
||||||
|
@@ -87,7 +87,6 @@ class Content extends Component {
|
|||||||
gotoNextPage={this.getNextPageList}
|
gotoNextPage={this.getNextPageList}
|
||||||
currentPage={pageInfo.current_page}
|
currentPage={pageInfo.current_page}
|
||||||
hasNextPage={pageInfo.has_next_page}
|
hasNextPage={pageInfo.has_next_page}
|
||||||
canResetPerPage={true}
|
|
||||||
curPerPage={curPerPage}
|
curPerPage={curPerPage}
|
||||||
resetPerPage={this.props.resetPerPage}
|
resetPerPage={this.props.resetPerPage}
|
||||||
/>
|
/>
|
||||||
|
@@ -44,7 +44,7 @@ class Content extends Component {
|
|||||||
}
|
}
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
const { loading, errorMsg, items, pageInfo } = this.props;
|
const { loading, errorMsg, items, pageInfo, curPerPage } = this.props;
|
||||||
if (loading) {
|
if (loading) {
|
||||||
return <Loading />;
|
return <Loading />;
|
||||||
} else if (errorMsg) {
|
} else if (errorMsg) {
|
||||||
@@ -88,7 +88,8 @@ class Content extends Component {
|
|||||||
gotoNextPage={this.getNextPageList}
|
gotoNextPage={this.getNextPageList}
|
||||||
currentPage={pageInfo.current_page}
|
currentPage={pageInfo.current_page}
|
||||||
hasNextPage={pageInfo.has_next_page}
|
hasNextPage={pageInfo.has_next_page}
|
||||||
canResetPerPage={false}
|
curPerPage={curPerPage}
|
||||||
|
resetPerPage={this.props.resetPerPage}
|
||||||
/>
|
/>
|
||||||
}
|
}
|
||||||
</Fragment>
|
</Fragment>
|
||||||
@@ -270,13 +271,20 @@ class TrashRepos extends Component {
|
|||||||
errorMsg: '',
|
errorMsg: '',
|
||||||
repos: [],
|
repos: [],
|
||||||
pageInfo: {},
|
pageInfo: {},
|
||||||
perPage: 100,
|
perPage: 25,
|
||||||
isCleanTrashDialogOpen: false
|
isCleanTrashDialogOpen: false
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
componentDidMount () {
|
componentDidMount () {
|
||||||
this.getReposByPage(1);
|
let urlParams = (new URL(window.location)).searchParams;
|
||||||
|
const { currentPage = 1, perPage } = this.state;
|
||||||
|
this.setState({
|
||||||
|
perPage: parseInt(urlParams.get('per_page') || perPage),
|
||||||
|
currentPage: parseInt(urlParams.get('page') || currentPage)
|
||||||
|
}, () => {
|
||||||
|
this.getReposByPage(this.state.currentPage);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
toggleCleanTrashDialog = () => {
|
toggleCleanTrashDialog = () => {
|
||||||
@@ -299,6 +307,14 @@ class TrashRepos extends Component {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
resetPerPage = (perPage) => {
|
||||||
|
this.setState({
|
||||||
|
perPage: perPage
|
||||||
|
}, () => {
|
||||||
|
this.getReposByPage(1);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
onDeleteRepo = (targetRepo) => {
|
onDeleteRepo = (targetRepo) => {
|
||||||
let repos = this.state.repos.filter(repo => {
|
let repos = this.state.repos.filter(repo => {
|
||||||
return repo.id != targetRepo.id;
|
return repo.id != targetRepo.id;
|
||||||
@@ -374,6 +390,8 @@ class TrashRepos extends Component {
|
|||||||
onDeleteRepo={this.onDeleteRepo}
|
onDeleteRepo={this.onDeleteRepo}
|
||||||
onRestoreRepo={this.onRestoreRepo}
|
onRestoreRepo={this.onRestoreRepo}
|
||||||
getListByPage={this.getReposByPage}
|
getListByPage={this.getReposByPage}
|
||||||
|
resetPerPage={this.resetPerPage}
|
||||||
|
curPerPage={this.state.perPage}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@@ -16,7 +16,7 @@ class TrafficOrganizationsTable extends React.Component {
|
|||||||
super(props);
|
super(props);
|
||||||
this.state = {
|
this.state = {
|
||||||
userTrafficList: [],
|
userTrafficList: [],
|
||||||
perPage: 100,
|
perPage: 25,
|
||||||
currentPage: 1,
|
currentPage: 1,
|
||||||
hasNextPage: false,
|
hasNextPage: false,
|
||||||
month: moment().format('YYYYMM'),
|
month: moment().format('YYYYMM'),
|
||||||
@@ -29,15 +29,22 @@ class TrafficOrganizationsTable extends React.Component {
|
|||||||
}
|
}
|
||||||
|
|
||||||
componentDidMount() {
|
componentDidMount() {
|
||||||
this.onGenerateReports(this.initMonth, this.initPage);
|
let urlParams = (new URL(window.location)).searchParams;
|
||||||
|
const { currentPage, perPage } = this.state;
|
||||||
|
this.setState({
|
||||||
|
perPage: parseInt(urlParams.get('per_page') || perPage),
|
||||||
|
currentPage: parseInt(urlParams.get('page') || currentPage)
|
||||||
|
}, () => {
|
||||||
|
this.onGenerateReports(this.initMonth, this.state.currentPage);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
getPreviousPage = () => {
|
getPreviousPage = () => {
|
||||||
this.onGenerateReports(this.state.currentPage - 1);
|
this.onGenerateReports(this.state.month, this.state.currentPage - 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
getNextPage = () => {
|
getNextPage = () => {
|
||||||
this.onGenerateReports(this.state.currentPage + 1);
|
this.onGenerateReports(this.state.month, this.state.currentPage + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
handleChange = (e) => {
|
handleChange = (e) => {
|
||||||
@@ -128,7 +135,6 @@ class TrafficOrganizationsTable extends React.Component {
|
|||||||
gotoNextPage={this.getNextPage}
|
gotoNextPage={this.getNextPage}
|
||||||
currentPage={currentPage}
|
currentPage={currentPage}
|
||||||
hasNextPage={hasNextPage}
|
hasNextPage={hasNextPage}
|
||||||
canResetPerPage={true}
|
|
||||||
curPerPage={perPage}
|
curPerPage={perPage}
|
||||||
resetPerPage={this.resetPerPage}
|
resetPerPage={this.resetPerPage}
|
||||||
/>
|
/>
|
||||||
|
@@ -17,7 +17,7 @@ class TrafficOrganizationsTable extends React.Component {
|
|||||||
this.state = {
|
this.state = {
|
||||||
userTrafficList: [],
|
userTrafficList: [],
|
||||||
hasNextPage: false,
|
hasNextPage: false,
|
||||||
perPage: 100,
|
perPage: 25,
|
||||||
currentPage: 1,
|
currentPage: 1,
|
||||||
month: moment().format('YYYYMM'),
|
month: moment().format('YYYYMM'),
|
||||||
isLoading: false,
|
isLoading: false,
|
||||||
@@ -29,15 +29,22 @@ class TrafficOrganizationsTable extends React.Component {
|
|||||||
}
|
}
|
||||||
|
|
||||||
componentDidMount() {
|
componentDidMount() {
|
||||||
this.onGenerateReports(this.initMonth, this.initPage);
|
let urlParams = (new URL(window.location)).searchParams;
|
||||||
|
const { currentPage, perPage } = this.state;
|
||||||
|
this.setState({
|
||||||
|
perPage: parseInt(urlParams.get('per_page') || perPage),
|
||||||
|
currentPage: parseInt(urlParams.get('page') || currentPage)
|
||||||
|
}, () => {
|
||||||
|
this.onGenerateReports(this.initMonth, this.state.currentPage);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
getPreviousPage = () => {
|
getPreviousPage = () => {
|
||||||
this.onGenerateReports(this.state.currentPage - 1);
|
this.onGenerateReports(this.state.month, this.state.currentPage - 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
getNextPage = () => {
|
getNextPage = () => {
|
||||||
this.onGenerateReports(this.state.currentPage + 1);
|
this.onGenerateReports(this.state.month, this.state.currentPage + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
handleChange = (e) => {
|
handleChange = (e) => {
|
||||||
@@ -131,7 +138,6 @@ class TrafficOrganizationsTable extends React.Component {
|
|||||||
gotoNextPage={this.getNextPage}
|
gotoNextPage={this.getNextPage}
|
||||||
currentPage={currentPage}
|
currentPage={currentPage}
|
||||||
hasNextPage={hasNextPage}
|
hasNextPage={hasNextPage}
|
||||||
canResetPerPage={true}
|
|
||||||
curPerPage={perPage}
|
curPerPage={perPage}
|
||||||
resetPerPage={this.resetPerPage}
|
resetPerPage={this.resetPerPage}
|
||||||
/>
|
/>
|
||||||
|
@@ -60,7 +60,6 @@ class Content extends Component {
|
|||||||
gotoNextPage={this.getNextPage}
|
gotoNextPage={this.getNextPage}
|
||||||
currentPage={currentPage}
|
currentPage={currentPage}
|
||||||
hasNextPage={hasNextPage}
|
hasNextPage={hasNextPage}
|
||||||
canResetPerPage={true}
|
|
||||||
curPerPage={curPerPage}
|
curPerPage={curPerPage}
|
||||||
resetPerPage={this.props.resetPerPage}
|
resetPerPage={this.props.resetPerPage}
|
||||||
/>
|
/>
|
||||||
@@ -112,7 +111,14 @@ class Users extends Component {
|
|||||||
}
|
}
|
||||||
|
|
||||||
componentDidMount () {
|
componentDidMount () {
|
||||||
this.getUsersListByPage(1);
|
let urlParams = (new URL(window.location)).searchParams;
|
||||||
|
const { currentPage, perPage } = this.state;
|
||||||
|
this.setState({
|
||||||
|
perPage: parseInt(urlParams.get('per_page') || perPage),
|
||||||
|
currentPage: parseInt(urlParams.get('page') || currentPage)
|
||||||
|
}, () => {
|
||||||
|
this.getUsersListByPage(this.state.currentPage);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
getUsersListByPage = (page) => {
|
getUsersListByPage = (page) => {
|
||||||
|
@@ -125,7 +125,6 @@ class Content extends Component {
|
|||||||
gotoNextPage={this.getNextPage}
|
gotoNextPage={this.getNextPage}
|
||||||
currentPage={currentPage}
|
currentPage={currentPage}
|
||||||
hasNextPage={hasNextPage}
|
hasNextPage={hasNextPage}
|
||||||
canResetPerPage={true}
|
|
||||||
curPerPage={curPerPage}
|
curPerPage={curPerPage}
|
||||||
resetPerPage={this.props.resetPerPage}
|
resetPerPage={this.props.resetPerPage}
|
||||||
/>
|
/>
|
||||||
|
@@ -45,7 +45,14 @@ class Users extends Component {
|
|||||||
if (this.props.isAdmin) { // 'Admin' page
|
if (this.props.isAdmin) { // 'Admin' page
|
||||||
this.getUserList(); // no pagination
|
this.getUserList(); // no pagination
|
||||||
} else {
|
} else {
|
||||||
this.getUsersListByPage(1);
|
let urlParams = (new URL(window.location)).searchParams;
|
||||||
|
const { currentPage, perPage } = this.state;
|
||||||
|
this.setState({
|
||||||
|
perPage: parseInt(urlParams.get('per_page') || perPage),
|
||||||
|
currentPage: parseInt(urlParams.get('page') || currentPage)
|
||||||
|
}, () => {
|
||||||
|
this.getUsersListByPage(this.state.currentPage);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user