mirror of
https://github.com/haiwen/seahub.git
synced 2025-09-20 19:08:21 +00:00
custom share permission (#4967)
* custom share permission * remove path field * add permission manager ui * optimize custom permission manager style * add permission setting * add normalize_custom_permission_name * optimize repo custom permission * delete useless code * optimize code * optimize code * optimize markdown file page * fix a few bugs * add permission control * repair modify permission * optimize style * optimize copyright * add try-except * optimize code * move file&folder * batch operation item * repair batch move item * update copyright * optimize move permission control * optimize code * optimize code * optimize code & fix code wranning * optimize code * delete unsupport permission * optimize code * repair code bug * add pro limit * optimize code * add permission handle for permission editor * repair new file&folder bug * optimize file uploader code * custom permission user can not visit custom permission module * optimize code * forbid comment&detail module * optimize code * optimize modify/preview permission * optimize custom permission share perm * optimize view file module: file-toolbar * optimize custom drag move operation * repair column view bug * optimize drag operation code * repair code bug * optimize code Co-authored-by: shanshuirenjia <978987373@qq.com>
This commit is contained in:
@@ -0,0 +1,67 @@
|
||||
import React, { Fragment } from 'react';
|
||||
import PropTypes from 'prop-types';
|
||||
|
||||
const propTypes = {
|
||||
permission: PropTypes.object.isRequired,
|
||||
onEditCustomPermission: PropTypes.func.isRequired,
|
||||
onDeleteCustomPermission: PropTypes.func.isRequired,
|
||||
};
|
||||
|
||||
class CustomPermissionItem extends React.Component {
|
||||
|
||||
constructor(props) {
|
||||
super(props);
|
||||
this.state = {
|
||||
isShowOperations: false
|
||||
};
|
||||
}
|
||||
|
||||
onMouseEnter = () => {
|
||||
this.setState({isShowOperations: true});
|
||||
}
|
||||
|
||||
onMouseOver = () => {
|
||||
this.setState({isShowOperations: true});
|
||||
}
|
||||
|
||||
onMouseLeave = () => {
|
||||
this.setState({isShowOperations: false});
|
||||
}
|
||||
|
||||
onEditCustomPermission = () => {
|
||||
const { permission } = this.props;
|
||||
this.props.onEditCustomPermission(permission)
|
||||
}
|
||||
|
||||
onDeleteCustomPermission = () => {
|
||||
const { permission } = this.props;
|
||||
this.props.onDeleteCustomPermission(permission)
|
||||
}
|
||||
|
||||
render() {
|
||||
const { permission } = this.props;
|
||||
const { id, name, description } = permission;
|
||||
return (
|
||||
<tr key={id} onMouseEnter={this.onMouseEnter} onMouseLeave={this.onMouseLeave} onMouseOver={this.onMouseOver}>
|
||||
<td width='22%' className="text-truncate" title={name}>{name}</td>
|
||||
<td width='56%' className="text-truncate">{description}</td>
|
||||
<td width='22%'>
|
||||
{this.state.isShowOperations && (
|
||||
<Fragment>
|
||||
<span className="permission-operation-btn edit" onClick={this.onEditCustomPermission}>
|
||||
<i className="fa fa-pencil-alt attr-action-icon"></i>
|
||||
</span>
|
||||
<span className="permission-operation-btn delete" onClick={this.onDeleteCustomPermission}>
|
||||
<i className="fa fa-trash attr-action-icon"></i>
|
||||
</span>
|
||||
</Fragment>
|
||||
)}
|
||||
</td>
|
||||
</tr>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
CustomPermissionItem.propTypes = propTypes;
|
||||
|
||||
export default CustomPermissionItem;
|
Reference in New Issue
Block a user