This commit is contained in:
Tom Moor
2019-08-25 15:20:49 -07:00
parent 347015cf86
commit ccfad1d800
6 changed files with 98 additions and 68 deletions

View File

@ -14,12 +14,14 @@ import importFile from 'utils/importFile';
import Collection from 'models/Collection';
import UiStore from 'stores/UiStore';
import DocumentsStore from 'stores/DocumentsStore';
import PoliciesStore from 'stores/PoliciesStore';
import { DropdownMenu, DropdownMenuItem } from 'components/DropdownMenu';
type Props = {
label?: React.Node,
position?: 'left' | 'right' | 'center',
ui: UiStore,
policies: PoliciesStore,
documents: DocumentsStore,
collection: Collection,
history: RouterHistory,
@ -89,7 +91,15 @@ class CollectionMenu extends React.Component<Props> {
};
render() {
const { collection, label, position, onOpen, onClose } = this.props;
const {
policies,
collection,
label,
position,
onOpen,
onClose,
} = this.props;
const can = policies.abilties(collection.id);
return (
<React.Fragment>
@ -100,7 +110,7 @@ class CollectionMenu extends React.Component<Props> {
accept="text/markdown, text/plain"
/>
<Modal
title="Collection permissions"
title="Collection members"
onRequestClose={this.handlePermissionsModalClose}
isOpen={this.permissionsModalOpen}
>
@ -124,16 +134,24 @@ class CollectionMenu extends React.Component<Props> {
Import document
</DropdownMenuItem>
<hr />
<DropdownMenuItem onClick={this.onEdit}>Edit</DropdownMenuItem>
<DropdownMenuItem onClick={this.onPermissions}>
Permissions
</DropdownMenuItem>
<DropdownMenuItem onClick={this.onExport}>
Export
</DropdownMenuItem>
{can.update && (
<DropdownMenuItem onClick={this.onEdit}>Edit</DropdownMenuItem>
)}
{can.update && (
<DropdownMenuItem onClick={this.onPermissions}>
Members
</DropdownMenuItem>
)}
{can.export && (
<DropdownMenuItem onClick={this.onExport}>
Export
</DropdownMenuItem>
)}
</React.Fragment>
)}
<DropdownMenuItem onClick={this.onDelete}>Delete</DropdownMenuItem>
{can.delete && (
<DropdownMenuItem onClick={this.onDelete}>Delete</DropdownMenuItem>
)}
</DropdownMenu>
</React.Fragment>
);
@ -147,4 +165,6 @@ const HiddenInput = styled.input`
visibility: hidden;
`;
export default inject('ui', 'documents')(withRouter(CollectionMenu));
export default inject('ui', 'documents', 'policies')(
withRouter(CollectionMenu)
);