|
@@ -1,24 +1,19 @@
|
|
|
-import React, { Component } from 'react';
|
|
|
|
|
|
|
+import React, { Component } from 'react';
|
|
|
import { observer } from 'mobx-react';
|
|
import { observer } from 'mobx-react';
|
|
|
import { aclTypes } from 'app/stores/PermissionsStore/PermissionsStore';
|
|
import { aclTypes } from 'app/stores/PermissionsStore/PermissionsStore';
|
|
|
-import UserPicker, { User } from 'app/core/components/Picker/UserPicker';
|
|
|
|
|
-import TeamPicker, { Team } from 'app/core/components/Picker/TeamPicker';
|
|
|
|
|
|
|
+import { UserPicker, User } from 'app/core/components/Picker/UserPicker';
|
|
|
|
|
+import { TeamPicker, Team } from 'app/core/components/Picker/TeamPicker';
|
|
|
import DescriptionPicker, { OptionWithDescription } from 'app/core/components/Picker/DescriptionPicker';
|
|
import DescriptionPicker, { OptionWithDescription } from 'app/core/components/Picker/DescriptionPicker';
|
|
|
import { permissionOptions } from 'app/stores/PermissionsStore/PermissionsStore';
|
|
import { permissionOptions } from 'app/stores/PermissionsStore/PermissionsStore';
|
|
|
|
|
|
|
|
-export interface IProps {
|
|
|
|
|
|
|
+export interface Props {
|
|
|
permissions: any;
|
|
permissions: any;
|
|
|
- backendSrv: any;
|
|
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
@observer
|
|
@observer
|
|
|
-class AddPermissions extends Component<IProps, any> {
|
|
|
|
|
|
|
+class AddPermissions extends Component<Props, any> {
|
|
|
constructor(props) {
|
|
constructor(props) {
|
|
|
super(props);
|
|
super(props);
|
|
|
- this.userPicked = this.userPicked.bind(this);
|
|
|
|
|
- this.teamPicked = this.teamPicked.bind(this);
|
|
|
|
|
- this.permissionPicked = this.permissionPicked.bind(this);
|
|
|
|
|
- this.typeChanged = this.typeChanged.bind(this);
|
|
|
|
|
- this.handleSubmit = this.handleSubmit.bind(this);
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
componentWillMount() {
|
|
componentWillMount() {
|
|
@@ -26,49 +21,49 @@ class AddPermissions extends Component<IProps, any> {
|
|
|
permissions.resetNewType();
|
|
permissions.resetNewType();
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- typeChanged(evt) {
|
|
|
|
|
|
|
+ onTypeChanged = evt => {
|
|
|
const { value } = evt.target;
|
|
const { value } = evt.target;
|
|
|
const { permissions } = this.props;
|
|
const { permissions } = this.props;
|
|
|
|
|
|
|
|
permissions.setNewType(value);
|
|
permissions.setNewType(value);
|
|
|
- }
|
|
|
|
|
|
|
+ };
|
|
|
|
|
|
|
|
- userPicked(user: User) {
|
|
|
|
|
|
|
+ onUserSelected = (user: User) => {
|
|
|
const { permissions } = this.props;
|
|
const { permissions } = this.props;
|
|
|
if (!user) {
|
|
if (!user) {
|
|
|
permissions.newItem.setUser(null, null);
|
|
permissions.newItem.setUser(null, null);
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
|
return permissions.newItem.setUser(user.id, user.login, user.avatarUrl);
|
|
return permissions.newItem.setUser(user.id, user.login, user.avatarUrl);
|
|
|
- }
|
|
|
|
|
|
|
+ };
|
|
|
|
|
|
|
|
- teamPicked(team: Team) {
|
|
|
|
|
|
|
+ onTeamSelected = (team: Team) => {
|
|
|
const { permissions } = this.props;
|
|
const { permissions } = this.props;
|
|
|
if (!team) {
|
|
if (!team) {
|
|
|
permissions.newItem.setTeam(null, null);
|
|
permissions.newItem.setTeam(null, null);
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
|
return permissions.newItem.setTeam(team.id, team.name, team.avatarUrl);
|
|
return permissions.newItem.setTeam(team.id, team.name, team.avatarUrl);
|
|
|
- }
|
|
|
|
|
|
|
+ };
|
|
|
|
|
|
|
|
- permissionPicked(permission: OptionWithDescription) {
|
|
|
|
|
|
|
+ onPermissionChanged = (permission: OptionWithDescription) => {
|
|
|
const { permissions } = this.props;
|
|
const { permissions } = this.props;
|
|
|
return permissions.newItem.setPermission(permission.value);
|
|
return permissions.newItem.setPermission(permission.value);
|
|
|
- }
|
|
|
|
|
|
|
+ };
|
|
|
|
|
|
|
|
resetNewType() {
|
|
resetNewType() {
|
|
|
const { permissions } = this.props;
|
|
const { permissions } = this.props;
|
|
|
return permissions.resetNewType();
|
|
return permissions.resetNewType();
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- handleSubmit(evt) {
|
|
|
|
|
|
|
+ onSubmit = evt => {
|
|
|
evt.preventDefault();
|
|
evt.preventDefault();
|
|
|
const { permissions } = this.props;
|
|
const { permissions } = this.props;
|
|
|
permissions.addStoreItem();
|
|
permissions.addStoreItem();
|
|
|
- }
|
|
|
|
|
|
|
+ };
|
|
|
|
|
|
|
|
render() {
|
|
render() {
|
|
|
- const { permissions, backendSrv } = this.props;
|
|
|
|
|
|
|
+ const { permissions } = this.props;
|
|
|
const newItem = permissions.newItem;
|
|
const newItem = permissions.newItem;
|
|
|
const pickerClassName = 'width-20';
|
|
const pickerClassName = 'width-20';
|
|
|
|
|
|
|
@@ -79,12 +74,12 @@ class AddPermissions extends Component<IProps, any> {
|
|
|
<button className="cta-form__close btn btn-transparent" onClick={permissions.hideAddPermissions}>
|
|
<button className="cta-form__close btn btn-transparent" onClick={permissions.hideAddPermissions}>
|
|
|
<i className="fa fa-close" />
|
|
<i className="fa fa-close" />
|
|
|
</button>
|
|
</button>
|
|
|
- <form name="addPermission" onSubmit={this.handleSubmit}>
|
|
|
|
|
- <h6>Add Permission For</h6>
|
|
|
|
|
|
|
+ <form name="addPermission" onSubmit={this.onSubmit}>
|
|
|
|
|
+ <h5>Add Permission For</h5>
|
|
|
<div className="gf-form-inline">
|
|
<div className="gf-form-inline">
|
|
|
<div className="gf-form">
|
|
<div className="gf-form">
|
|
|
<div className="gf-form-select-wrapper">
|
|
<div className="gf-form-select-wrapper">
|
|
|
- <select className="gf-form-input gf-size-auto" value={newItem.type} onChange={this.typeChanged}>
|
|
|
|
|
|
|
+ <select className="gf-form-input gf-size-auto" value={newItem.type} onChange={this.onTypeChanged}>
|
|
|
{aclTypes.map((option, idx) => {
|
|
{aclTypes.map((option, idx) => {
|
|
|
return (
|
|
return (
|
|
|
<option key={idx} value={option.value}>
|
|
<option key={idx} value={option.value}>
|
|
@@ -98,30 +93,20 @@ class AddPermissions extends Component<IProps, any> {
|
|
|
|
|
|
|
|
{newItem.type === 'User' ? (
|
|
{newItem.type === 'User' ? (
|
|
|
<div className="gf-form">
|
|
<div className="gf-form">
|
|
|
- <UserPicker
|
|
|
|
|
- backendSrv={backendSrv}
|
|
|
|
|
- handlePicked={this.userPicked}
|
|
|
|
|
- value={newItem.userId}
|
|
|
|
|
- className={pickerClassName}
|
|
|
|
|
- />
|
|
|
|
|
|
|
+ <UserPicker onSelected={this.onUserSelected} value={newItem.userId} className={pickerClassName} />
|
|
|
</div>
|
|
</div>
|
|
|
) : null}
|
|
) : null}
|
|
|
|
|
|
|
|
{newItem.type === 'Group' ? (
|
|
{newItem.type === 'Group' ? (
|
|
|
<div className="gf-form">
|
|
<div className="gf-form">
|
|
|
- <TeamPicker
|
|
|
|
|
- backendSrv={backendSrv}
|
|
|
|
|
- handlePicked={this.teamPicked}
|
|
|
|
|
- value={newItem.teamId}
|
|
|
|
|
- className={pickerClassName}
|
|
|
|
|
- />
|
|
|
|
|
|
|
+ <TeamPicker onSelected={this.onTeamSelected} value={newItem.teamId} className={pickerClassName} />
|
|
|
</div>
|
|
</div>
|
|
|
) : null}
|
|
) : null}
|
|
|
|
|
|
|
|
<div className="gf-form">
|
|
<div className="gf-form">
|
|
|
<DescriptionPicker
|
|
<DescriptionPicker
|
|
|
optionsWithDesc={permissionOptions}
|
|
optionsWithDesc={permissionOptions}
|
|
|
- handlePicked={this.permissionPicked}
|
|
|
|
|
|
|
+ onSelected={this.onPermissionChanged}
|
|
|
value={newItem.permission}
|
|
value={newItem.permission}
|
|
|
disabled={false}
|
|
disabled={false}
|
|
|
className={'gf-form-input--form-dropdown-right'}
|
|
className={'gf-form-input--form-dropdown-right'}
|