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:
@@ -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>
|
||||
|
@@ -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],
|
||||
|
@@ -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;
|
||||
|
@@ -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
|
||||
});
|
||||
}
|
||||
|
||||
|
@@ -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;
|
||||
},
|
||||
|
Reference in New Issue
Block a user