import React, { Fragment } from 'react'; import PropTypes from 'prop-types'; import { Utils } from '../../utils/utils'; import { gettext, siteRoot } from '../../utils/constants'; import { seafileAPI } from '../../utils/seafile-api'; import CommonToolbar from '../../components/toolbar/common-toolbar'; import ViewModeToolbar from '../../components/toolbar/view-mode-toolbar'; import DirOperationToolBar from '../../components/toolbar/dir-operation-toolbar'; import MutipleDirOperationToolbar from '../../components/toolbar/mutilple-dir-operation-toolbar'; const propTypes = { isViewFile: PropTypes.bool.isRequired, filePermission: PropTypes.bool.isRequired, // ture = 'rw' isDraft: PropTypes.bool.isRequired, hasDraft: PropTypes.bool.isRequired, // side-panel onSideNavMenuClick: PropTypes.func.isRequired, // mutiple-dir isDirentSelected: PropTypes.bool.isRequired, repoID: PropTypes.string.isRequired, path: PropTypes.string.isRequired, selectedDirentList: PropTypes.array.isRequired, onItemsMove: PropTypes.func.isRequired, onItemsCopy: PropTypes.func.isRequired, onItemsDelete: PropTypes.func.isRequired, // dir direntList: PropTypes.array.isRequired, repoName: PropTypes.string.isRequired, repoEncrypted: PropTypes.bool.isRequired, isAdmin: PropTypes.bool.isRequired, isGroupOwnedRepo: PropTypes.bool.isRequired, userPerm: PropTypes.string.isRequired, showShareBtn: PropTypes.bool.isRequired, enableDirPrivateShare: PropTypes.bool.isRequired, onAddFile: PropTypes.func.isRequired, onAddFolder: PropTypes.func.isRequired, onUploadFile: PropTypes.func.isRequired, onUploadFolder: PropTypes.func.isRequired, // view-mode currentMode: PropTypes.string.isRequired, switchViewMode: PropTypes.func.isRequired, // search onSearchedClick: PropTypes.func.isRequired, }; class LibContentToolbar extends React.Component { onEditClick = (e) => { e.preventDefault(); let { path, repoID } = this.props; let url = siteRoot + 'lib/' + repoID + '/file' + Utils.encodePath(path) + '?mode=edit'; window.open(url); } onNewDraft = (e) => { e.preventDefault(); let { path, repoID } = this.props; seafileAPI.createDraft(repoID, path).then(res => { window.location.href = siteRoot + 'lib/' + res.data.origin_repo_id + '/file' + res.data.draft_file_path + '?mode=edit'; }); } render() { if (this.props.isViewFile) { return (
{(this.props.filePermission && !this.props.hasDraft) && ( )} {/* default have read priv */} {(!this.props.isDraft && !this.props.hasDraft) && ( )}
); } return (
{this.props.isDirentSelected ? : }
); } } LibContentToolbar.propTypes = propTypes; export default LibContentToolbar;