From d1f509e8fd53f3abd6524204d056a8c22ec3d7b7 Mon Sep 17 00:00:00 2001 From: Michael An <2331806369@qq.com> Date: Wed, 10 Apr 2019 16:04:26 +0800 Subject: [PATCH] Detail panel (#3232) * update dirent detail btn * update icon * add animation * update --- .../dirent-detail/detail-list-view.js | 38 +++++++++++ .../dirent-detail/dirent-details.js | 67 +++++++++++++++++-- .../components/toolbar/view-mode-toolbar.js | 15 +++-- frontend/src/css/dirent-detail.css | 1 + frontend/src/css/layout.css | 27 +++++++- frontend/src/css/toolbar.css | 5 ++ .../lib-content-view/lib-content-container.js | 3 +- .../lib-content-view/lib-content-view.js | 8 +++ 8 files changed, 149 insertions(+), 15 deletions(-) diff --git a/frontend/src/components/dirent-detail/detail-list-view.js b/frontend/src/components/dirent-detail/detail-list-view.js index 701f7ddc6c..2353ddd658 100644 --- a/frontend/src/components/dirent-detail/detail-list-view.js +++ b/frontend/src/components/dirent-detail/detail-list-view.js @@ -6,6 +6,7 @@ import { Utils } from '../../utils/utils'; import EditFileTagDialog from '../dialog/edit-filetag-dialog'; import ModalPortal from '../modal-portal'; import RelatedFileDialogs from '../dialog/related-file-dialogs'; +import { seafileAPI } from '../../utils/seafile-api'; const propTypes = { repoInfo: PropTypes.object.isRequired, @@ -27,6 +28,7 @@ class DetailListView extends React.Component { this.state = { isEditFileTagShow: false, showRelatedFileDialog: false, + repo: {}, }; } @@ -69,6 +71,28 @@ class DetailListView extends React.Component { showRelatedFileDialog: false, }); } + + getRepoInfo = (repoID) => { + seafileAPI.listRepos({type: 'mine'}).then((res) => { + let repoList = res.data.repos; + for (let i = 0, length = repoList.length; i < length; i++) { + if (repoList[i].repo_id === repoID) { + this.setState({ repo: repoList[i] }); + break; + } + } + }); + } + + componentDidMount() { + this.getRepoInfo(this.props.repoID); + } + + componentWillReceiveProps(nextProps) { + if (nextProps.repoID !== this.props.repoID) { + this.getRepoInfo(nextProps.repoID); + } + } render() { let { direntType, direntDetail, fileTagList, relatedFiles } = this.props; @@ -86,6 +110,20 @@ class DetailListView extends React.Component { ); + } else if (direntType === 'repo') { + const repoInfo = this.props.repoInfo; + return ( +
{gettext('File Count')} | {repoInfo.file_count} |
---|---|
{gettext('Size')} | {repoInfo.size} |
{gettext('Last Update')} | {moment(this.state.repo.last_modified).format('YYYY-MM-DD')} |