1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-09-03 07:55:36 +00:00

[add] add file chooser modes and fix share text page (#2947)

This commit is contained in:
Michael An
2019-02-19 15:14:50 +08:00
committed by Daniel Pan
parent 0db20b41a9
commit 89b23ed3fe
6 changed files with 62 additions and 23 deletions

View File

@@ -95,6 +95,7 @@ class AddRelatedFileDialog extends React.Component {
repoID={this.props.repoID}
onDirentItemClick={this.onDirentItemClick}
onRepoItemClick={this.onRepoItemClick}
mode="current_repo_and_other_repos"
/>
{this.state.errMessage && <Alert color="danger">{this.state.errMessage}</Alert>}
</ModalBody>

View File

@@ -164,6 +164,7 @@ class CopyDirent extends React.Component {
repoID={this.props.repoID}
onDirentItemClick={this.onDirentItemClick}
onRepoItemClick={this.onRepoItemClick}
mode="current_repo_and_other_repos"
/>
{this.state.errMessage && <Alert color="danger" style={{margin: '0.5rem'}}>{this.state.errMessage}</Alert>}
</ModalBody>

View File

@@ -164,6 +164,7 @@ class MoveDirent extends React.Component {
repoID={this.props.repoID}
onDirentItemClick={this.onDirentItemClick}
onRepoItemClick={this.onRepoItemClick}
mode="current_repo_and_other_repos"
/>
{this.state.errMessage && <Alert color="danger" style={{margin: '0.5rem'}}>{this.state.errMessage}</Alert>}
</ModalBody>

View File

@@ -6,7 +6,6 @@ import { seafileAPI } from '../../utils/seafile-api';
import FileChooser from '../file-chooser/file-chooser';
const propTypes = {
repoID: PropTypes.string.isRequired,
sharedToken: PropTypes.string.isRequired,
toggleCancel: PropTypes.func.isRequired,
handleSaveSharedFile: PropTypes.func.isRequired,
@@ -51,14 +50,23 @@ class SaveSharedFileDialog extends React.Component {
}
}
onRepoItemClick = (repo) => {
this.setState({
repo: repo,
selectedPath: '/',
});
}
render() {
return (
<Modal isOpen={true} className="sf-save-file">
<ModalHeader toggle={this.props.toggleCancel}>{gettext('Select Folder')}</ModalHeader>
<ModalHeader toggle={this.props.toggleCancel}>{gettext('Save to:')}</ModalHeader>
<ModalBody>
<FileChooser
isShowFile={false}
onDirentItemClick={this.onDirentItemClick}
onRepoItemClick={this.onRepoItemClick}
mode="only_all_repos"
/>
{this.state.errMessage && <Alert color="danger">{this.state.errMessage}</Alert>}
</ModalBody>

View File

@@ -13,6 +13,7 @@ const propTypes = {
repoID: PropTypes.string,
onDirentItemClick: PropTypes.func,
onRepoItemClick: PropTypes.func,
mode: PropTypes.oneOf(['current_repo_and_other_repos', 'only_all_repos', 'only_current_library']),
};
class FileChooser extends React.Component {
@@ -99,10 +100,11 @@ class FileChooser extends React.Component {
}
render() {
const mode = this.props.mode;
let libName = mode === 'current_repo_and_other_repos' ? gettext('Other Libraries') : gettext('Libraries');
return (
<div className="file-chooser-container">
{
this.props.repoID &&
{(mode === 'current_repo_and_other_repos' || mode === 'only_current_library') &&
<div className="list-view">
<div className="list-view-header">
<span className={`item-toggle fa ${this.state.isCurrentRepoShow ? 'fa-caret-down' : 'fa-caret-right'}`} onClick={this.onCurrentRepoToggle}></span>
@@ -122,24 +124,26 @@ class FileChooser extends React.Component {
}
</div>
}
<div className="list-view">
<div className="list-view-header">
<span className={`item-toggle fa ${this.state.isOtherRepoShow ? 'fa-caret-down' : 'fa-caret-right'}`} onClick={this.onOtherRepoToggle}></span>
<span className="library">{gettext('Other Libraries')}</span>
{mode !== 'only_current_library' &&
<div className="list-view">
<div className="list-view-header">
<span className={`item-toggle fa ${this.state.isOtherRepoShow ? 'fa-caret-down' : 'fa-caret-right'}`} onClick={this.onOtherRepoToggle}></span>
<span className="library">{libName}</span>
</div>
{
this.state.isOtherRepoShow &&
<RepoListView
initToShowChildren={false}
repoList={this.state.repoList}
selectedRepo={this.state.selectedRepo}
selectedPath={this.state.selectedPath}
onRepoItemClick={this.onRepoItemClick}
onDirentItemClick={this.onDirentItemClick}
isShowFile={this.props.isShowFile}
/>
}
</div>
{
this.state.isOtherRepoShow &&
<RepoListView
initToShowChildren={false}
repoList={this.state.repoList}
selectedRepo={this.state.selectedRepo}
selectedPath={this.state.selectedPath}
onRepoItemClick={this.onRepoItemClick}
onDirentItemClick={this.onDirentItemClick}
isShowFile={this.props.isShowFile}
/>
}
</div>
}
</div>
);
}