From f53815baf9f825da6aafe392fcef5fe7394601ee Mon Sep 17 00:00:00 2001
From: Michael An <2331806369@qq.com>
Date: Mon, 26 Aug 2019 10:54:27 +0800
Subject: [PATCH 1/6] add title in published repo folder item (#4020)
---
frontend/src/components/index-viewer.js | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/frontend/src/components/index-viewer.js b/frontend/src/components/index-viewer.js
index 7549326bd3..a5e86abfd7 100644
--- a/frontend/src/components/index-viewer.js
+++ b/frontend/src/components/index-viewer.js
@@ -249,12 +249,12 @@ class FolderItem extends React.Component {
});
}
- renderLink = (node) => {
- const className = node.path === this.props.currentPath ? 'wiki-nav-content wiki-nav-content-highlight' : 'wiki-nav-content';
- if (node.href && node.name) {
- return
;
- } else if (node.name) {
- return {node.name}
;
+ renderLink = ({ href, name, path }) => {
+ const className = `wiki-nav-content ${path === this.props.currentPath ? 'wiki-nav-content-highlight' : ''}`;
+ if (href && name) {
+ return ;
+ } else if (name) {
+ return {name}
;
} else {
return null;
}
From 7aa426935f19ff5c4fb916041299c0e08dedb346 Mon Sep 17 00:00:00 2001
From: llj
Date: Tue, 27 Aug 2019 12:04:03 +0800
Subject: [PATCH 2/6] [share dialog] share link: improved 'permission' (#4018)
---
.../components/dialog/generate-share-link.js | 87 +++++++------------
1 file changed, 33 insertions(+), 54 deletions(-)
diff --git a/frontend/src/components/dialog/generate-share-link.js b/frontend/src/components/dialog/generate-share-link.js
index 1f6fc7de6b..741d75630b 100644
--- a/frontend/src/components/dialog/generate-share-link.js
+++ b/frontend/src/components/dialog/generate-share-link.js
@@ -24,6 +24,12 @@ class GenerateShareLink extends React.Component {
this.isExpireDaysNoLimit = (parseInt(shareLinkExpireDaysMin) === 0 && parseInt(shareLinkExpireDaysMax) === 0 && shareLinkExpireDaysDefault == 0);
this.defaultExpireDays = this.isExpireDaysNoLimit ? '' : shareLinkExpireDaysDefault;
+
+ if (isPro) {
+ this.editOption = 'edit_download';
+ this.permissionOptions = ['preview_download', 'preview_only'];
+ }
+
this.state = {
isValidate: false,
isShowPasswordInput: false,
@@ -36,14 +42,9 @@ class GenerateShareLink extends React.Component {
sharedLinkInfo: null,
isNoticeMessageShow: false,
isLoading: true,
- fileInfo: null,
+ currentPermission: isPro ? this.permissionOptions[0] : '',
isSendLinkShown: false
};
- this.permissions = {
- 'can_edit': false,
- 'can_download': true
- };
- this.isOfficeFile = Utils.isEditableOfficeFile(this.props.itemPath);
}
componentDidMount() {
@@ -63,10 +64,11 @@ class GenerateShareLink extends React.Component {
let errMessage = Utils.getErrorMsg(error);
toaster.danger(errMessage);
});
- if (this.isOfficeFile) {
+
+ if (isPro && Utils.isEditableOfficeFile(path)) {
seafileAPI.getFileInfo(repoID, path).then((res) => {
- if (res.data) {
- this.setState({fileInfo: res.data});
+ if (res.data.can_edit) {
+ this.permissionOptions.push(this.editOption);
}
}).catch(error => {
let errMessage = Utils.getErrorMsg(error);
@@ -108,23 +110,8 @@ class GenerateShareLink extends React.Component {
this.setState({passwdnew: passwd});
}
- setPermission = (permission) => {
- if (permission == 'previewAndDownload') {
- this.permissions = {
- 'can_edit': false,
- 'can_download': true
- };
- } else if (permission == 'preview') {
- this.permissions = {
- 'can_edit': false,
- 'can_download': false
- };
- } else if (permission == 'editOnCloudAndDownload'){
- this.permissions = {
- 'can_edit': true,
- 'can_download': true
- };
- }
+ setPermission = (e) => {
+ this.setState({currentPermission: e.target.value});
}
generateShareLink = () => {
@@ -133,7 +120,11 @@ class GenerateShareLink extends React.Component {
this.setState({errorInfo: ''});
let { itemPath, repoID } = this.props;
let { password, isExpireChecked, expireDays } = this.state;
- let permissions = isPro ? JSON.stringify(this.permissions) : '';
+ let permissions;
+ if (isPro) {
+ const permissionDetails = Utils.getShareLinkPermissionObject(this.state.currentPermission).permissionDetails;
+ permissions = JSON.stringify(permissionDetails);
+ }
const expireDaysSent = isExpireChecked ? expireDays : '';
seafileAPI.createShareLink(repoID, itemPath, password, expireDaysSent, permissions).then((res) => {
let sharedLinkInfo = new ShareLink(res.data);
@@ -172,10 +163,6 @@ class GenerateShareLink extends React.Component {
sharedLinkInfo: null,
isNoticeMessageShow: false,
});
- this.permissions = {
- 'can_edit': false,
- 'can_download': true
- };
}).catch((error) => {
let errMessage = Utils.getErrorMsg(error);
toaster.danger(errMessage);
@@ -340,7 +327,6 @@ class GenerateShareLink extends React.Component {
);
} else {
- let fileInfo = this.state.fileInfo;
return (