1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-09-18 00:00:00 +00:00

Merge branch '7.0'

This commit is contained in:
lian
2019-12-04 10:02:06 +08:00
6 changed files with 184 additions and 112 deletions

View File

@@ -198,6 +198,10 @@ class ContextMenu extends React.Component {
this.props.onMenuItemClick(operation, currentObject, event);
}
onContextMenu = (event) => {
event.stopPropagation();
}
render() {
const inlineStyle = { position: 'fixed', opacity: 0, pointerEvents: 'none', display: 'block' };
return (
@@ -212,6 +216,7 @@ class ContextMenu extends React.Component {
className="seafile-contextmenu-item dropdown-item"
data-operation={menuItem.key}
onClick={this.onMenuItemClick}
onContextMenu={this.onContextMenu}
>
{menuItem.value}
</button>

View File

@@ -76,8 +76,9 @@ class GenerateShareLink extends React.Component {
getDirentInfoAPI = seafileAPI.getDirInfo(repoID, path);
}
getDirentInfoAPI.then((res) => {
let canEdit = res.data.can_edit;
let permission = res.data.permission;
let permissionOptions = Utils.getShareLinkPermissionList(this.props.itemType, permission, path);
let permissionOptions = Utils.getShareLinkPermissionList(this.props.itemType, permission, path, canEdit);
this.setState({
permissionOptions: permissionOptions,
currentPermission: permissionOptions[0],

View File

@@ -6,6 +6,8 @@ class ShareLink {
this.path = object.path;
this.obj_name = object.obj_name;
this.is_dir = object.is_dir;
this.can_edit = object.can_edit;
this.repo_folder_permission = object.repo_folder_permission;
this.permissions = object.permissions;
this.username = object.username;
this.is_expired = object.is_expired;

View File

@@ -109,28 +109,13 @@ class Item extends Component {
updatePermissionOptions = () => {
const item = this.props.item;
if (item.is_dir && item.path === '/') {
let permissionOptions = Utils.getShareLinkPermissionList('library', '', item.path);
this.setState({
permissionOptions: permissionOptions,
});
} else {
let { repo_id, path } = item;
let getDirentInfoAPI = item.is_dir ? seafileAPI.getDirInfo(repo_id, path) : seafileAPI.getFileInfo(repo_id, path);
getDirentInfoAPI.then((res) => {
let itemType = item.is_dir ? 'dir' : 'file';
let permission = res.data.permission;
let permissionOptions = Utils.getShareLinkPermissionList(itemType, permission, item.path);
this.setState({
permissionOptions: permissionOptions,
});
}).catch(error => {
let errMessage = Utils.getErrorMsg(error);
toaster.danger(errMessage);
});
}
let itemType = item.is_dir ? (item.path === '/' ? 'library' : 'dir') : 'file';
let permission = item.repo_folder_permission;
let permissionOptions = Utils.getShareLinkPermissionList(itemType, permission, item.path, item.can_edit);
let currentPermission = this.getCurrentPermission();
this.setState({
currentPermission: this.getCurrentPermission(),
permissionOptions: permissionOptions,
currentPermission: currentPermission
});
}

View File

@@ -116,7 +116,7 @@ export const Utils = {
}
},
getShareLinkPermissionList: function(itemType, permission, path) {
getShareLinkPermissionList: function(itemType, permission = null, path, canEdit = null) {
// itemType: library, dir, file
// permission: rw, r, admin, cloud-edit, preview
@@ -139,12 +139,15 @@ export const Utils = {
if (permission == 'rw' || permission == 'admin' || permission == 'r') {
permissionOptions.push(downloadOption);
}
if (this.isEditableOfficeFile(path) && (permission == 'rw' || permission == 'admin')) {
if (this.isEditableOfficeFile(path) && (permission == 'rw' || permission == 'admin') && canEdit) {
permissionOptions.push(editDownloadOption);
}
if (this.isEditableOfficeFile(path) && (permission == 'cloud-edit')) {
permissionOptions.push(editOnly);
}
// not support
// if (this.isEditableOfficeFile(path) && (permission == 'cloud-edit')) {
// permissionOptions.push(editOnly);
// }
}
return permissionOptions;
},