1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-09-26 23:34:45 +00:00

sortable directory tree (#8069)

Co-authored-by: zhouwenxuan <aries@Mac.local>
This commit is contained in:
Aries
2025-07-22 13:46:29 +08:00
committed by GitHub
parent cf22d27d4a
commit 37a422d1ef
7 changed files with 65 additions and 15 deletions

View File

@@ -9,7 +9,7 @@ import { Modal } from 'reactstrap';
import { navigate } from '@gatsbyjs/reach-router';
import { DndProvider } from 'react-dnd';
import { HTML5Backend } from 'react-dnd-html5-backend';
import { gettext, siteRoot, username } from '../../utils/constants';
import { gettext, SF_DIRECTORY_TREE_SORT_BY_KEY, SF_DIRECTORY_TREE_SORT_ORDER_KEY, siteRoot, username } from '../../utils/constants';
import { seafileAPI } from '../../utils/seafile-api';
import { Utils } from '../../utils/utils';
import { Dirent, FileTag, RepoTag, RepoInfo } from '../../models';
@@ -2095,7 +2095,9 @@ class LibContentView extends React.Component {
let direntList = list.map(item => {
return new Dirent(item);
});
direntList = Utils.sortDirents(direntList, this.state.sortBy, this.state.sortOrder);
const sortBy = cookie.load(SF_DIRECTORY_TREE_SORT_BY_KEY) || 'name';
const sortOrder = cookie.load(SF_DIRECTORY_TREE_SORT_ORDER_KEY) || 'asc';
direntList = Utils.sortDirents(direntList, sortBy, sortOrder);
let nodeList = direntList.map(object => {
return new TreeNode({ object });
@@ -2186,11 +2188,18 @@ class LibContentView extends React.Component {
cookie.save('seafile-repo-dir-sort-order', sortOrder);
const sortedDirentList = Utils.sortDirents(this.state.direntList, sortBy, sortOrder);
const sortedTreeData = treeHelper.sortTreeNodes(this.state.treeData, sortBy, sortOrder);
this.setState({
sortBy: sortBy,
sortOrder: sortOrder,
direntList: sortedDirentList,
});
};
sortTreeNode = (sortBy, sortOrder) => {
cookie.save(SF_DIRECTORY_TREE_SORT_BY_KEY, sortBy);
cookie.save(SF_DIRECTORY_TREE_SORT_ORDER_KEY, sortOrder);
const sortedTreeData = treeHelper.sortTreeNodes(this.state.treeData, sortBy, sortOrder);
this.setState({
treeData: sortedTreeData,
});
};
@@ -2551,6 +2560,7 @@ class LibContentView extends React.Component {
updateCurrentPath={this.updatePath}
toggleShowDirentToolbar={this.toggleShowDirentToolbar}
updateTreeNode={this.updateTreeNode}
sortTreeNode={this.sortTreeNode}
/>
:
<div className="message err-tip">{gettext('Folder does not exist.')}</div>