diff --git a/frontend/src/pages/share-admin/libraries.js b/frontend/src/pages/share-admin/libraries.js index 8926667b93..073bae5036 100644 --- a/frontend/src/pages/share-admin/libraries.js +++ b/frontend/src/pages/share-admin/libraries.js @@ -8,8 +8,15 @@ import SharedRepoInfo from '../../models/shared-repo-info'; class Content extends Component { + sortByName = (e) => { + e.preventDefault(); + const sortBy = 'name'; + const sortOrder = this.props.sortOrder == 'asc' ? 'desc' : 'asc'; + this.props.sortItems(sortBy, sortOrder); + } + render() { - const {loading, errorMsg, items} = this.props; + const { loading, errorMsg, items, sortBy, sortOrder } = this.props; if (loading) { return ; @@ -23,12 +30,16 @@ class Content extends Component { ); + // sort + const sortByName = sortBy == 'name'; + const sortIcon = sortOrder == 'asc' ? : ; + const table = ( - + @@ -183,7 +194,9 @@ class ShareAdminLibraries extends Component { this.state = { loading: true, errorMsg: '', - items: [] + items: [], + sortBy: 'name', // 'name' or 'time' + sortOrder: 'asc' // 'asc' or 'desc' }; } @@ -195,7 +208,7 @@ class ShareAdminLibraries extends Component { }); this.setState({ loading: false, - items: items + items: Utils.sortRepos(items, this.state.sortBy, this.state.sortOrder) }); }).catch((error) => { if (error.response) { @@ -254,6 +267,14 @@ class ShareAdminLibraries extends Component { }); } + sortItems = (sortBy, sortOrder) => { + this.setState({ + sortBy: sortBy, + sortOrder: sortOrder, + items: Utils.sortRepos(this.state.items, sortBy, sortOrder) + }); + } + render() { return (
@@ -266,6 +287,9 @@ class ShareAdminLibraries extends Component { errorMsg={this.state.errorMsg} loading={this.state.loading} items={this.state.items} + sortBy={this.state.sortBy} + sortOrder={this.state.sortOrder} + sortItems={this.sortItems} unshareFolder={this.unshareFolder} />
{/*icon*/}{gettext("Name")} {/* TODO: sort by name */}{gettext('Name')} {sortByName && sortIcon} {gettext("Share To")} {gettext("Permission")}