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

adjust code structure

This commit is contained in:
shanshuirenjia
2018-12-12 17:09:15 +08:00
parent f714185ce7
commit 7c91ae88e4
7 changed files with 62 additions and 63 deletions

View File

@@ -1,21 +1,14 @@
import React, { Component } from 'react'; import React, { Component } from 'react';
import { Modal, ModalHeader, ModalBody, ModalFooter, Button } from 'reactstrap'; import { Modal, ModalHeader, ModalBody, ModalFooter, Button } from 'reactstrap';
import { gettext } from '../../../utils/constants'; import { gettext } from '../../utils/constants';
class DeleteItemPopup extends Component { class DeleteRepoDialog extends Component {
constructor(props) { toggle = () => {
super(props);
this.toggle = this.toggle.bind(this);
this.clickYes = this.clickYes.bind(this);
}
toggle() {
this.props.toggle(); this.props.toggle();
} }
clickYes() { clickYes = () => {
this.toggle(); this.toggle();
const data = this.props.data; const data = this.props.data;
@@ -27,18 +20,18 @@ class DeleteItemPopup extends Component {
render() { render() {
const data = this.props.data; const data = this.props.data;
// TODO: const repoName = data ? '<span class="sf-font">' + data.repoName + '</span>' : null;
//const repoName = <span class="op-target ellipsis ellipsis-op-target">{data ? data.repoName : null}</span>; let message = gettext("Are you sure you want to delete %s ?");
const repoName = data ? data.repoName : null; message = message.replace('%s', repoName);
const popup = ( const popup = (
<Modal isOpen={this.props.isOpen} toggle={this.toggle} centered={true}> <Modal isOpen={this.props.isOpen} toggle={this.toggle} centered={true}>
<ModalHeader toggle={this.toggle}>{gettext("Delete Library")}</ModalHeader> <ModalHeader toggle={this.toggle}>{gettext("Delete Library")}</ModalHeader>
<ModalBody> <ModalBody>
<p>{gettext("Are you sure you want to delete %s ?").replace('%s', repoName)}</p> <p dangerouslySetInnerHTML={{__html: message}}></p>
</ModalBody> </ModalBody>
<ModalFooter> <ModalFooter>
<Button color="primary" onClick={this.clickYes}>{gettext("Yes")}</Button> <Button color="primary" onClick={this.clickYes}>{gettext("Confirm")}</Button>
<Button color="secondary" onClick={this.toggle}>{gettext("No")}</Button> <Button color="secondary" onClick={this.toggle}>{gettext("Cancel")}</Button>
</ModalFooter> </ModalFooter>
</Modal> </Modal>
); );
@@ -47,4 +40,4 @@ class DeleteItemPopup extends Component {
} }
} }
export default DeleteItemPopup; export default DeleteRepoDialog;

View File

@@ -51,9 +51,9 @@ class RepoViewToolbar extends React.Component {
{gettext('More')} {gettext('More')}
</DropdownToggle> </DropdownToggle>
<DropdownMenu> <DropdownMenu>
<DropdownItem> <DropdownItem>
<Link to={siteRoot + 'my-libs/deleted/'}>{gettext('Deleted Libraries')}</Link> <Link to={siteRoot + 'my-libs/deleted/'}>{gettext('Deleted Libraries')}</Link>
</DropdownItem> </DropdownItem>
</DropdownMenu> </DropdownMenu>
</Dropdown> </Dropdown>
)} )}

View File

@@ -1,11 +1,11 @@
import React, { Component, Fragment } from 'react'; import React, { Component, Fragment } from 'react';
import PropTypes from 'prop-types'; import PropTypes from 'prop-types';
import { gettext, storages} from '../../utils/constants'; import { gettext, storages} from '../../utils/constants';
import TransferDialog from '../dialog/transfer-dialog'; import TransferDialog from '../../components/dialog/transfer-dialog';
import LibHistorySetting from '../dialog/lib-history-setting-dialog'; import LibHistorySetting from '../../components/dialog/lib-history-setting-dialog';
import Loading from '../loading'; import Loading from '../../components/loading';
import ModalPortal from '../modal-portal'; import ModalPortal from '../../components/modal-portal';
import DeleteItemPopup from './popups/delete-item'; import DeleteRepoDialog from '../../components/dialog/delete-repo-dialog';
import TableBody from './table-body'; import TableBody from './table-body';
const propTypes = { const propTypes = {
@@ -126,7 +126,7 @@ class Content extends Component {
const nonEmpty = ( const nonEmpty = (
<Fragment> <Fragment>
{table} {table}
<DeleteItemPopup <DeleteRepoDialog
isOpen={this.state.deleteItemPopupOpen} isOpen={this.state.deleteItemPopupOpen}
toggle={this.toggleDeleteItemPopup} toggle={this.toggleDeleteItemPopup}
data={this.state.deleteItemPopupData} data={this.state.deleteItemPopupData}

View File

@@ -1,10 +1,12 @@
import React, { Component, Fragment } from 'react'; import React, { Component, Fragment } from 'react';
import { Link } from '@reach/router'; import { Link } from '@reach/router';
import moment from 'moment';
import { gettext, siteRoot, lang } from '../../utils/constants'; import { gettext, siteRoot, lang } from '../../utils/constants';
import { seafileAPI } from '../../utils/seafile-api'; import { seafileAPI } from '../../utils/seafile-api';
import toaster from '../../components/toast'; import toaster from '../../components/toast';
import CommonToolbar from '../../components/toolbar/common-toolbar'; import CommonToolbar from '../../components/toolbar/common-toolbar';
import moment from 'moment'; import Loading from '../../components/loading';
moment.locale(lang); moment.locale(lang);
class MyLibsDeleted extends Component { class MyLibsDeleted extends Component {
@@ -13,57 +15,61 @@ class MyLibsDeleted extends Component {
super(props); super(props);
this.state = { this.state = {
deletedRepoList: [], deletedRepoList: [],
isLoading: false, isLoading: true,
}; };
} }
componentDidMount() { componentDidMount() {
seafileAPI.listDeletedRepo().then(res => { seafileAPI.listDeletedRepo().then(res => {
this.setState({ this.setState({
deletedRepoList: res.data deletedRepoList: res.data,
isLoading: false,
}); });
}); });
} }
refreshDeletedRepoList = (repoID) => { refreshDeletedRepoList = (repoID) => {
this.setState({ let deletedRepoList = this.state.deletedRepoList.filter(item => {
deletedRepoList: this.state.deletedRepoList.filter(item => item.repo_id !== repoID) return item.repo_id !== repoID;
}); });
this.setState({deletedRepoList: deletedRepoList});
} }
render() { render() {
return ( return (
<Fragment> <Fragment>
<div className="main-panel-north"> <div className="main-panel-north">
<CommonToolbar onSearchedClick={this.props.onSearchedClick} /> <CommonToolbar onSearchedClick={this.props.onSearchedClick} />
</div> </div>
<div className="main-panel-center"> <div className="main-panel-center">
<div className="cur-view-container"> <div className="cur-view-container">
<div className="cur-view-path"> <div className="cur-view-path">
<div className="path-container"> <div className="path-container">
<Link to={ siteRoot + 'my-libs/' }>{gettext("My Libraries")}</Link> <Link to={ siteRoot + 'my-libs/' }>{gettext("My Libraries")}</Link>
<span className="path-split">/</span> <span className="path-split">/</span>
<span>{gettext('Deleted Libraries')}</span> <span>{gettext('Deleted Libraries')}</span>
</div> </div>
</div> </div>
<div className="cur-view-content"> <div className="cur-view-content">
{(!this.state.isLoading && this.state.deletedRepoList.length === 0) && {this.state.isLoading && <Loading />}
{(!this.state.isLoading && this.state.deletedRepoList.length === 0) &&
<div className="message empty-tip"> <div className="message empty-tip">
<h2>{gettext('No deleted libraries.')}</h2> <h2>{gettext('No deleted libraries.')}</h2>
</div> </div>
} }
{ this.state.deletedRepoList.length !== 0 && {this.state.deletedRepoList.length !== 0 &&
<div> <div>
<p className="tip">{gettext('Tip: libraries deleted 30 days ago will be cleaned automatically.')}</p> <p className="tip">{gettext('Tip: libraries deleted 30 days ago will be cleaned automatically.')}</p>
<DeletedRepoTable deletedRepoList={this.state.deletedRepoList} <DeletedRepoTable
refreshDeletedRepoList={this.refreshDeletedRepoList} deletedRepoList={this.state.deletedRepoList}
/> refreshDeletedRepoList={this.refreshDeletedRepoList}
</div> />
} </div>
</div> }
</div> </div>
</div> </div>
</Fragment> </div>
</Fragment>
); );
} }
} }

View File

@@ -3,8 +3,8 @@ import { seafileAPI } from '../../utils/seafile-api';
import { gettext, loginUrl} from '../../utils/constants'; import { gettext, loginUrl} from '../../utils/constants';
import CommonToolbar from '../../components/toolbar/common-toolbar'; import CommonToolbar from '../../components/toolbar/common-toolbar';
import RepoViewToolbar from '../../components/toolbar/repo-view-toobar'; import RepoViewToolbar from '../../components/toolbar/repo-view-toobar';
import Content from '../../components/mylib-repo-list-view/content';
import LibDetail from '../../components/dirent-detail/lib-details'; import LibDetail from '../../components/dirent-detail/lib-details';
import Content from './content';
class MyLibraries extends Component { class MyLibraries extends Component {
constructor(props) { constructor(props) {