mirror of
https://github.com/haiwen/seahub.git
synced 2025-09-16 15:19:06 +00:00
Merge pull request #3582 from haiwen/repaire_insert_img
Repaire insert img
This commit is contained in:
@@ -297,6 +297,9 @@ class FileChooser extends React.Component {
|
|||||||
}
|
}
|
||||||
|
|
||||||
onSearchedItemDoubleClick = (item) => {
|
onSearchedItemDoubleClick = (item) => {
|
||||||
|
if (item.type !== 'dir') {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
let selectedItemInfo = {
|
let selectedItemInfo = {
|
||||||
repoID: item.repo_id,
|
repoID: item.repo_id,
|
||||||
|
@@ -34,7 +34,13 @@ class RepoListItem extends React.Component {
|
|||||||
let repoID = this.props.repo.repo_id;
|
let repoID = this.props.repo.repo_id;
|
||||||
seafileAPI.listDir(repoID, '/').then(res => {
|
seafileAPI.listDir(repoID, '/').then(res => {
|
||||||
let tree = this.state.treeData.clone();
|
let tree = this.state.treeData.clone();
|
||||||
let direntList = res.data.dirent_list.filter(item => item.type === 'dir');
|
let direntList = [];
|
||||||
|
if (this.props.isShowFile === true) {
|
||||||
|
direntList = res.data.dirent_list;
|
||||||
|
} else {
|
||||||
|
direntList = res.data.dirent_list.filter(item => item.type === 'dir');
|
||||||
|
}
|
||||||
|
|
||||||
this.addResponseListToNode(direntList, tree.root);
|
this.addResponseListToNode(direntList, tree.root);
|
||||||
this.setState({treeData: tree});
|
this.setState({treeData: tree});
|
||||||
});
|
});
|
||||||
@@ -65,7 +71,12 @@ class RepoListItem extends React.Component {
|
|||||||
node = tree.getNodeByPath(node.path);
|
node = tree.getNodeByPath(node.path);
|
||||||
if (!node.isLoaded) {
|
if (!node.isLoaded) {
|
||||||
seafileAPI.listDir(repoID, node.path).then(res => {
|
seafileAPI.listDir(repoID, node.path).then(res => {
|
||||||
let direntList = res.data.dirent_list.filter(item => item.type === 'dir');
|
let direntList = [];
|
||||||
|
if (this.props.isShowFile === true) {
|
||||||
|
direntList = res.data.dirent_list;
|
||||||
|
} else {
|
||||||
|
direntList = res.data.dirent_list.filter(item => item.type === 'dir');
|
||||||
|
}
|
||||||
this.addResponseListToNode(direntList, node);
|
this.addResponseListToNode(direntList, node);
|
||||||
this.setState({treeData: tree});
|
this.setState({treeData: tree});
|
||||||
});
|
});
|
||||||
|
@@ -9,6 +9,8 @@ const propTypes = {
|
|||||||
node: PropTypes.object.isRequired,
|
node: PropTypes.object.isRequired,
|
||||||
onNodeCollapse: PropTypes.func.isRequired,
|
onNodeCollapse: PropTypes.func.isRequired,
|
||||||
onNodeExpanded: PropTypes.func.isRequired,
|
onNodeExpanded: PropTypes.func.isRequired,
|
||||||
|
filePath: PropTypes.string,
|
||||||
|
fileSuffixes: PropTypes.array,
|
||||||
};
|
};
|
||||||
|
|
||||||
class TreeViewItem extends React.Component {
|
class TreeViewItem extends React.Component {
|
||||||
@@ -78,13 +80,22 @@ class TreeViewItem extends React.Component {
|
|||||||
let isCurrentRepo = this.props.selectedRepo.repo_id === this.props.repo.repo_id;
|
let isCurrentRepo = this.props.selectedRepo.repo_id === this.props.repo.repo_id;
|
||||||
let isCurrentPath = this.props.selectedPath === this.state.filePath;
|
let isCurrentPath = this.props.selectedPath === this.state.filePath;
|
||||||
|
|
||||||
|
const fileName = node.object.name;
|
||||||
|
if (this.props.fileSuffixes && fileName && fileName.indexOf('.') !== -1) {
|
||||||
|
const suffix = fileName.slice(fileName.lastIndexOf('.') + 1).toLowerCase();
|
||||||
|
if (!this.props.fileSuffixes.includes(suffix)) return null;
|
||||||
|
}
|
||||||
|
|
||||||
return(
|
return(
|
||||||
<div className="file-chooser-item">
|
<div className="file-chooser-item">
|
||||||
<div className={`${node.path === '/'? 'hide': ''}`}>
|
<div className={`${node.path === '/'? 'hide': ''}`}>
|
||||||
<span className={`item-toggle fa ${node.isExpanded ? 'fa-caret-down' : 'fa-caret-right'}`} onClick={this.onToggleClick}></span>
|
{
|
||||||
|
node.object.type !== 'file' &&
|
||||||
|
<span className={`item-toggle fa ${node.isExpanded ? 'fa-caret-down' : 'fa-caret-right'}`} onClick={this.onToggleClick}></span>
|
||||||
|
}
|
||||||
<span className={`item-info ${(isCurrentRepo && isCurrentPath) ? 'item-active' : ''}`} onClick={this.onItemClick}>
|
<span className={`item-info ${(isCurrentRepo && isCurrentPath) ? 'item-active' : ''}`} onClick={this.onItemClick}>
|
||||||
<span className={`icon far ${node.object.type === 'dir' ? 'fa-folder' : 'fa-file'}`}></span>
|
<span className={`icon far ${node.object.type === 'dir' ? 'fa-folder' : 'fa-file'}`}></span>
|
||||||
<span className="name user-select-none ellipsis">{node.object.name}</span>
|
<span className="name user-select-none ellipsis">{node.object && node.object.name}</span>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
{node.isExpanded && this.renderChildren()}
|
{node.isExpanded && this.renderChildren()}
|
||||||
|
@@ -10,6 +10,7 @@ const propTypes = {
|
|||||||
treeData: PropTypes.object.isRequired,
|
treeData: PropTypes.object.isRequired,
|
||||||
onNodeCollapse: PropTypes.func.isRequired,
|
onNodeCollapse: PropTypes.func.isRequired,
|
||||||
onNodeExpanded: PropTypes.func.isRequired,
|
onNodeExpanded: PropTypes.func.isRequired,
|
||||||
|
fileSuffixes: PropTypes.array,
|
||||||
};
|
};
|
||||||
|
|
||||||
class TreeListView extends React.Component {
|
class TreeListView extends React.Component {
|
||||||
|
Reference in New Issue
Block a user