From 949f3fc7b3e9fe5d1e7b1ee0ca4d9eb4a6476bb0 Mon Sep 17 00:00:00 2001
From: Michael An <37589122+Michael18811380328@users.noreply.github.com>
Date: Mon, 25 Feb 2019 18:17:04 +0800
Subject: [PATCH] move share dialog (#2995)
---
.../src/components/dialog/share-dialog.js | 7 +-
frontend/src/markdown-editor.js | 76 ++++++++++---------
frontend/src/utils/constants.js | 2 +-
seahub/templates/view_file_markdown.html | 1 +
4 files changed, 47 insertions(+), 39 deletions(-)
diff --git a/frontend/src/components/dialog/share-dialog.js b/frontend/src/components/dialog/share-dialog.js
index efc1b1b831..6c4e286962 100644
--- a/frontend/src/components/dialog/share-dialog.js
+++ b/frontend/src/components/dialog/share-dialog.js
@@ -14,7 +14,10 @@ const propTypes = {
itemName: PropTypes.string.isRequired,
itemPath: PropTypes.string.isRequired,
toggleDialog: PropTypes.func.isRequired,
- repoID: PropTypes.string.isRequired
+ repoID: PropTypes.string.isRequired,
+ repoEncrypted: PropTypes.bool,
+ userPerm: PropTypes.string,
+ enableDirPrivateShare: PropTypes.bool,
};
class ShareDialog extends React.Component {
@@ -94,7 +97,7 @@ class ShareDialog extends React.Component {
itemPath={this.props.itemPath}
repoID={this.props.repoID}
closeShareDialog={this.props.toggleDialog}
- />
+ />
}
{enableUploadLink &&
diff --git a/frontend/src/markdown-editor.js b/frontend/src/markdown-editor.js
index b7510d6989..0f4806eb4d 100644
--- a/frontend/src/markdown-editor.js
+++ b/frontend/src/markdown-editor.js
@@ -3,35 +3,17 @@ import SeafileEditor from '@seafile/seafile-editor';
import 'whatwg-fetch';
import { seafileAPI } from './utils/seafile-api';
import { Utils } from './utils/utils';
-import cookie from 'react-cookies';
import ModalPortal from './components/modal-portal';
-import { Modal } from 'reactstrap';
import EditFileTagDialog from './components/dialog/edit-filetag-dialog';
import ListRelatedFileDialog from './components/dialog/list-related-file-dialog';
import AddRelatedFileDialog from './components/dialog/add-related-file-dialog';
-import Dirent from './models/dirent';
-let repoID = window.app.pageOptions.repoID;
-let repoName = window.app.pageOptions.repoName;
-let filePath = window.app.pageOptions.filePath;
-let fileName = window.app.pageOptions.fileName;
-let siteRoot = window.app.config.siteRoot;
-let domain = window.app.pageOptions.domain;
-let protocol = window.app.pageOptions.protocol;
-let mode = window.app.pageOptions.mode;
-let draftID = window.app.pageOptions.draftID;
-let reviewID = window.app.pageOptions.reviewID;
-let reviewStatus = window.app.pageOptions.reviewStatus;
-let isDraft = window.app.pageOptions.isDraft;
-let hasDraft = window.app.pageOptions.hasDraft;
-let draftFilePath = window.app.pageOptions.draftFilePath;
-let shareLinkExpireDaysMin = window.app.pageOptions.shareLinkExpireDaysMin;
-let shareLinkExpireDaysMax = window.app.pageOptions.shareLinkExpireDaysMax;
-let userName = window.app.userInfo.username;
-let dirPath = '/';
+import ShareDialog from './components/dialog/share-dialog';
-const serviceUrl = window.app.config.serviceUrl;
-const seafileCollabServer = window.app.config.seafileCollabServer;
+const { repoID, repoName, filePath, fileName, mode, draftID, reviewID, reviewStatus, draftFilePath, isDraft, hasDraft, shareLinkExpireDaysMin, shareLinkExpireDaysMax } = window.app.pageOptions;
+const { siteRoot, serviceUrl, seafileCollabServer } = window.app.config;
const userInfo = window.app.userInfo;
+const userName = userInfo.username;
+let dirPath = '/';
function getImageFileNameWithTimestamp() {
var d = Date.now();
@@ -301,6 +283,7 @@ class MarkdownEditor extends React.Component {
showEditFileTagDialog: false,
showAddRelatedFileDialog: false,
showMarkdownEditorDialog: false,
+ showShareLinkDialog: false,
};
}
@@ -310,6 +293,7 @@ class MarkdownEditor extends React.Component {
showEditFileTagDialog: false,
showAddRelatedFileDialog: false,
showMarkdownEditorDialog: false,
+ showShareLinkDialog: false,
});
}
@@ -342,6 +326,12 @@ class MarkdownEditor extends React.Component {
showMarkdownEditorDialog: true,
});
break;
+ case 'share_link':
+ this.setState({
+ showMarkdownEditorDialog: true,
+ showShareLinkDialog: true,
+ });
+ break;
default:
return;
}
@@ -438,10 +428,9 @@ class MarkdownEditor extends React.Component {
fileTagList={this.state.fileTagList}
/>
{this.state.showMarkdownEditorDialog && (
-
-
- {
- this.state.showRelatedFileDialog &&
+
+ {this.state.showRelatedFileDialog &&
+
- }
- {
- this.state.showEditFileTagDialog &&
+
+ }
+ {this.state.showEditFileTagDialog &&
+
- }
- {
- this.state.showAddRelatedFileDialog &&
+
+ }
+ {this.state.showAddRelatedFileDialog &&
+
- }
-
-
+
+ }
+ {this.state.showShareLinkDialog &&
+
+
+
+ }
+
)}
);
diff --git a/frontend/src/utils/constants.js b/frontend/src/utils/constants.js
index 0d257a00d8..bb33b2d693 100644
--- a/frontend/src/utils/constants.js
+++ b/frontend/src/utils/constants.js
@@ -23,7 +23,7 @@ export const contactEmail = window.app.pageOptions.contactEmail;
export const username = window.app.pageOptions.username;
export const canAddRepo = window.app.pageOptions.canAddRepo;
export const canGenerateShareLink = window.app.pageOptions.canGenerateShareLink;
-export const canGenerateUploadLink = window.app.pageOptions.canGenerateUploadLink;
+export const canGenerateUploadLink = window.app.pageOptions.canGenerateUploadLink ? true : false;
export const canViewOrg = window.app.pageOptions.canViewOrg === 'True';
export const fileAuditEnabled = window.app.pageOptions.fileAuditEnabled ? true : false;
export const enableFileComment = window.app.pageOptions.enableFileComment ? true : false;
diff --git a/seahub/templates/view_file_markdown.html b/seahub/templates/view_file_markdown.html
index 37cb05238b..8862b2556e 100644
--- a/seahub/templates/view_file_markdown.html
+++ b/seahub/templates/view_file_markdown.html
@@ -39,6 +39,7 @@
draftFilePath: '{{ draft_file_path }}',
shareLinkExpireDaysMin: '{{ share_link_expire_days_min }}',
shareLinkExpireDaysMax: '{{ share_link_expire_days_max }}',
+ canGenerateShareLink: {% if user.permissions.can_generate_share_link %} true {% else %} false {% endif %},
},
userInfo: {
username: '{{ user.username }}',