updated after pr feedback

This commit is contained in:
Peter Holmberg 2018-10-03 10:54:15 +02:00
parent afdec3d1b0
commit 45113e6c8b
9 changed files with 17 additions and 17 deletions

View File

@ -4,14 +4,14 @@ import LayoutSelector, { LayoutMode } from '../LayoutSelector/LayoutSelector';
export interface Props {
searchQuery: string;
layoutMode?: LayoutMode;
setLayoutMode?: (mode: LayoutMode) => {};
onSetLayoutMode?: (mode: LayoutMode) => {};
setSearchQuery: (value: string) => {};
linkButton: { href: string; title: string };
}
export default class OrgActionBar extends PureComponent<Props> {
render() {
const { searchQuery, layoutMode, setLayoutMode, linkButton, setSearchQuery } = this.props;
const { searchQuery, layoutMode, onSetLayoutMode, linkButton, setSearchQuery } = this.props;
return (
<div className="page-action-bar">
@ -26,7 +26,7 @@ export default class OrgActionBar extends PureComponent<Props> {
/>
<i className="gf-form-input-icon fa fa-search" />
</label>
<LayoutSelector mode={layoutMode} onLayoutModeChanged={(mode: LayoutMode) => setLayoutMode(mode)} />
<LayoutSelector mode={layoutMode} onLayoutModeChanged={(mode: LayoutMode) => onSetLayoutMode(mode)} />
</div>
<div className="page-action-bar__spacer" />
<a className="btn btn-success" href={linkButton.href} target="_blank">

View File

@ -74,7 +74,7 @@ export class DataSourcesListPage extends PureComponent<Props> {
<OrgActionBar
layoutMode={layoutMode}
searchQuery={searchQuery}
setLayoutMode={mode => setDataSourcesLayoutMode(mode)}
onSetLayoutMode={mode => setDataSourcesLayoutMode(mode)}
setSearchQuery={query => setDataSourcesSearchQuery(query)}
linkButton={linkButton}
key="action-bar"

View File

@ -43,7 +43,7 @@ export class PluginListPage extends PureComponent<Props> {
<OrgActionBar
searchQuery={searchQuery}
layoutMode={layoutMode}
setLayoutMode={mode => setPluginsLayoutMode(mode)}
onSetLayoutMode={mode => setPluginsLayoutMode(mode)}
setSearchQuery={query => setPluginsSearchQuery(query)}
linkButton={linkButton}
/>

View File

@ -7,7 +7,7 @@ import { getMockInvitees } from './__mocks__/userMocks';
const setup = (propOverrides?: object) => {
const props: Props = {
invitees: [] as Invitee[],
revokeInvite: jest.fn(),
onRevokeInvite: jest.fn(),
};
Object.assign(props, propOverrides);

View File

@ -3,7 +3,7 @@ import { Invitee } from 'app/types';
export interface Props {
invitees: Invitee[];
revokeInvite: (code: string) => void;
onRevokeInvite: (code: string) => void;
}
export default class InviteesTable extends PureComponent<Props> {
@ -19,7 +19,7 @@ export default class InviteesTable extends PureComponent<Props> {
};
render() {
const { invitees, revokeInvite } = this.props;
const { invitees, onRevokeInvite } = this.props;
return (
<table className="filter-table form-inline">
@ -50,7 +50,7 @@ export default class InviteesTable extends PureComponent<Props> {
&nbsp;
</td>
<td>
<button className="btn btn-danger btn-mini" onClick={() => revokeInvite(invitee.code)}>
<button className="btn btn-danger btn-mini" onClick={() => onRevokeInvite(invitee.code)}>
<i className="fa fa-remove" />
</button>
</td>

View File

@ -6,7 +6,7 @@ const setup = (propOverrides?: object) => {
const props: Props = {
searchQuery: '',
setUsersSearchQuery: jest.fn(),
showInvites: jest.fn(),
onShowInvites: jest.fn(),
pendingInvitesCount: 0,
canInvite: false,
externalUserMngLinkUrl: '',

View File

@ -6,7 +6,7 @@ import { getInviteesCount, getUsersSearchQuery } from './state/selectors';
export interface Props {
searchQuery: string;
setUsersSearchQuery: typeof setUsersSearchQuery;
showInvites: () => void;
onShowInvites: () => void;
pendingInvitesCount: number;
canInvite: boolean;
externalUserMngLinkUrl: string;
@ -22,7 +22,7 @@ export class UsersActionBar extends PureComponent<Props> {
searchQuery,
pendingInvitesCount,
setUsersSearchQuery,
showInvites,
onShowInvites,
} = this.props;
return (
@ -41,7 +41,7 @@ export class UsersActionBar extends PureComponent<Props> {
<div className="page-action-bar__spacer" />
{pendingInvitesCount > 0 && (
<button className="btn btn-inverse" onClick={showInvites}>
<button className="btn btn-inverse" onClick={onShowInvites}>
Pending Invites ({pendingInvitesCount})
</button>
)}

View File

@ -69,7 +69,7 @@ export class UsersListPage extends PureComponent<Props, State> {
this.props.revokeInvite(code);
};
showInvites = () => {
onShowInvites = () => {
this.setState(prevState => ({
showInvites: !prevState.showInvites,
}));
@ -82,14 +82,14 @@ export class UsersListPage extends PureComponent<Props, State> {
<div>
<PageHeader model={navModel} />
<div className="page-container page-body">
<UsersActionBar showInvites={this.showInvites} />
<UsersActionBar onShowInvites={this.onShowInvites} />
{externalUserMngInfo && (
<div className="grafana-info-box">
<span>{externalUserMngInfo}</span>
</div>
)}
{this.state.showInvites ? (
<InviteesTable invitees={invitees} revokeInvite={code => this.onRevokeInvite(code)} />
<InviteesTable invitees={invitees} onRevokeInvite={code => this.onRevokeInvite(code)} />
) : (
<UsersTable
users={users}

View File

@ -59,7 +59,7 @@ export function loadInvitees(): ThunkResult<void> {
export function updateUser(user: OrgUser): ThunkResult<void> {
return async dispatch => {
await getBackendSrv().patch(`/api/org/users/${user.userId}`, user);
await getBackendSrv().patch(`/api/org/users/${user.userId}`, { role: user.role });
dispatch(loadUsers());
};
}