diff --git a/frontend/src/components/dir-view-mode/dir-column-file.js b/frontend/src/components/dir-view-mode/dir-column-file.js
index a417ecfa56..c561c52aaa 100644
--- a/frontend/src/components/dir-view-mode/dir-column-file.js
+++ b/frontend/src/components/dir-view-mode/dir-column-file.js
@@ -14,7 +14,7 @@ const propTypes = {
goDraftPage: PropTypes.func.isRequired,
isFileLoading: PropTypes.bool.isRequired,
isFileLoadedErr: PropTypes.bool.isRequired,
- filePermission: PropTypes.bool,
+ filePermission: PropTypes.string,
content: PropTypes.string,
lastModified: PropTypes.string,
latestContributor: PropTypes.string,
diff --git a/frontend/src/components/dir-view-mode/dir-column-view.js b/frontend/src/components/dir-view-mode/dir-column-view.js
index 130d9ea6f4..21210f2854 100644
--- a/frontend/src/components/dir-view-mode/dir-column-view.js
+++ b/frontend/src/components/dir-view-mode/dir-column-view.js
@@ -32,7 +32,7 @@ const propTypes = {
isDraft: PropTypes.bool.isRequired,
hasDraft: PropTypes.bool.isRequired,
goDraftPage: PropTypes.func.isRequired,
- filePermission: PropTypes.bool.isRequired,
+ filePermission: PropTypes.string,
content: PropTypes.string,
lastModified: PropTypes.string,
latestContributor: PropTypes.string,
diff --git a/frontend/src/components/file-content-view.js b/frontend/src/components/file-content-view.js
deleted file mode 100644
index a93361bc3e..0000000000
--- a/frontend/src/components/file-content-view.js
+++ /dev/null
@@ -1,132 +0,0 @@
-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 './toolbar/common-toolbar';
-import CurDirPath from './cur-dir-path';
-import WikiMarkdownViewer from './wiki-markdown-viewer';
-
-const propTypes = {
- pathPrefix: PropTypes.array.isRequired,
- currentMode: PropTypes.string.isRequired,
- path: PropTypes.string.isRequired,
- hash: PropTypes.string,
- onTabNavClick: PropTypes.func.isRequired,
- onSideNavMenuClick: PropTypes.func.isRequired,
- onSearchedClick: PropTypes.func.isRequired,
- onMainNavBarClick: PropTypes.func.isRequired,
- repoID: PropTypes.string.isRequired,
- currentRepoInfo: PropTypes.object,
- repoPermission: PropTypes.bool,
- isDraft: PropTypes.bool,
- hasDraft: PropTypes.bool,
- goDraftPage: PropTypes.func.isRequired,
- isFileLoading: PropTypes.bool.isRequired,
- filePermission: PropTypes.bool,
- content: PropTypes.string,
- lastModified: PropTypes.string,
- latestContributor: PropTypes.string,
- onLinkClick: PropTypes.func.isRequired,
-};
-
-class FileContentView extends React.Component {
-
- componentDidMount() {
- if (this.props.hash) {
- let hash = this.props.hash;
- setTimeout(function() {
- window.location.hash = hash;
- }, 500);
- }
- }
-
- 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';
- });
- }
-
- goDraftPage = (e) => {
- e.preventDefault();
- this.props.goDraftPage();
- }
-
- render() {
- let repoID = this.props.repoID;
- return (
-
-
-
-
-
- {(this.props.filePermission && !this.props.hasDraft ) && (
-
-
-
- )}
- {/* default have read priv */}
- {(!this.props.isDraft && !this.props.hasDraft) && (
-
- )}
-
-
-
-
-
-
-
- {this.props.currentRepoInfo && (
-
- )}
-
-
-
-
- {(!this.props.isDraft && this.props.hasDraft) &&
-
-
- {gettext('This file is in draft stage.')}
- {gettext('View Draft')}
-
-
- }
-
-
-
-
-
-
- )
- }
-}
-
-FileContentView.propTypes = propTypes;
-
-export default FileContentView;
diff --git a/frontend/src/components/toolbar/view-file-toolbar.js b/frontend/src/components/toolbar/view-file-toolbar.js
index 8efad4b5e3..f636d6e557 100644
--- a/frontend/src/components/toolbar/view-file-toolbar.js
+++ b/frontend/src/components/toolbar/view-file-toolbar.js
@@ -16,7 +16,7 @@ const propTypes = {
repoEncrypted: PropTypes.bool.isRequired,
enableDirPrivateShare: PropTypes.bool.isRequired,
isGroupOwnedRepo: PropTypes.bool.isRequired,
- filePermission: PropTypes.bool.isRequired,
+ filePermission: PropTypes.string,
isDraft: PropTypes.bool.isRequired,
hasDraft: PropTypes.bool.isRequired,
fileTags: PropTypes.array.isRequired,
@@ -85,26 +85,25 @@ class ViewFileToolbar extends React.Component {
}
render() {
-
+ let { filePermission } = this.props;
let name = Utils.getFileName(this.props.path);
let dirent = { name: name };
return (
- {(this.props.filePermission && !this.props.hasDraft) && (
+ {((filePermission === 'rw' || filePermission === 'cloud-edit') && !this.props.hasDraft) && (
)}
- {/* default have read priv */}
- {(!this.props.isDraft && !this.props.hasDraft) && (
+ {(filePermission === 'rw' && !this.props.isDraft && !this.props.hasDraft) && (
{gettext('Create a draft from this file, instead of editing it directly.')}
)}
- {this.props.filePermission && (
+ {filePermission === 'rw' && (
{gettext('More')}
diff --git a/frontend/src/pages/lib-content-view/lib-content-container.js b/frontend/src/pages/lib-content-view/lib-content-container.js
index 9b8b835d64..0acb258977 100644
--- a/frontend/src/pages/lib-content-view/lib-content-container.js
+++ b/frontend/src/pages/lib-content-view/lib-content-container.js
@@ -34,7 +34,7 @@ const propTypes = {
fileTags: PropTypes.array.isRequired,
goDraftPage: PropTypes.func.isRequired,
isFileLoading: PropTypes.bool.isRequired,
- filePermission: PropTypes.bool.isRequired,
+ filePermission: PropTypes.string,
content: PropTypes.string,
lastModified: PropTypes.string,
latestContributor: PropTypes.string,
diff --git a/frontend/src/pages/lib-content-view/lib-content-toolbar.js b/frontend/src/pages/lib-content-view/lib-content-toolbar.js
index b5b69c0bd4..1bda24b038 100644
--- a/frontend/src/pages/lib-content-view/lib-content-toolbar.js
+++ b/frontend/src/pages/lib-content-view/lib-content-toolbar.js
@@ -9,7 +9,7 @@ import ViewFileToolbar from '../../components/toolbar/view-file-toolbar';
const propTypes = {
isViewFile: PropTypes.bool.isRequired,
- filePermission: PropTypes.bool.isRequired, // ture = 'rw'
+ filePermission: PropTypes.string,
isDraft: PropTypes.bool.isRequired,
hasDraft: PropTypes.bool.isRequired,
fileTags: PropTypes.array.isRequired,
diff --git a/frontend/src/pages/lib-content-view/lib-content-view.js b/frontend/src/pages/lib-content-view/lib-content-view.js
index f177c120e8..44b29754f0 100644
--- a/frontend/src/pages/lib-content-view/lib-content-view.js
+++ b/frontend/src/pages/lib-content-view/lib-content-view.js
@@ -57,7 +57,7 @@ class LibContentView extends React.Component {
currentNode: null,
isFileLoading: true,
isFileLoadedErr: false,
- filePermission: true,
+ filePermission: '',
content: '',
lastModified: '',
latestContributor: '',
@@ -352,7 +352,7 @@ class LibContentView extends React.Component {
seafileAPI.getFileContent(res.data).then((res) => {
this.setState({
content: res.data,
- filePermission: permission === 'rw' || permission === 'cloud-edit',
+ filePermission: permission,
latestContributor: last_modifier_name,
lastModified: moment.unix(mtime).fromNow(),
isFileLoading: false,