mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
Merge pull request #11119 from bergquist/no_row_setting_viewer
hide row actions for viewers
This commit is contained in:
commit
4acc8f8ad7
@ -4,6 +4,7 @@ import { PanelModel } from '../panel_model';
|
|||||||
import { PanelContainer } from './PanelContainer';
|
import { PanelContainer } from './PanelContainer';
|
||||||
import templateSrv from 'app/features/templating/template_srv';
|
import templateSrv from 'app/features/templating/template_srv';
|
||||||
import appEvents from 'app/core/app_events';
|
import appEvents from 'app/core/app_events';
|
||||||
|
import config from 'app/core/config';
|
||||||
|
|
||||||
export interface DashboardRowProps {
|
export interface DashboardRowProps {
|
||||||
panel: PanelModel;
|
panel: PanelModel;
|
||||||
@ -94,6 +95,7 @@ export class DashboardRow extends React.Component<DashboardRowProps, any> {
|
|||||||
{title}
|
{title}
|
||||||
<span className="dashboard-row__panel_count">({hiddenPanels} hidden panels)</span>
|
<span className="dashboard-row__panel_count">({hiddenPanels} hidden panels)</span>
|
||||||
</a>
|
</a>
|
||||||
|
{config.bootData.user.orgRole !== 'Viewer' && (
|
||||||
<div className="dashboard-row__actions">
|
<div className="dashboard-row__actions">
|
||||||
<a className="pointer" onClick={this.openSettings}>
|
<a className="pointer" onClick={this.openSettings}>
|
||||||
<i className="fa fa-cog" />
|
<i className="fa fa-cog" />
|
||||||
@ -102,6 +104,7 @@ export class DashboardRow extends React.Component<DashboardRowProps, any> {
|
|||||||
<i className="fa fa-trash" />
|
<i className="fa fa-trash" />
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
)}
|
||||||
<div className="dashboard-row__drag grid-drag-handle" />
|
<div className="dashboard-row__drag grid-drag-handle" />
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
|
@ -2,19 +2,26 @@ import React from 'react';
|
|||||||
import { shallow } from 'enzyme';
|
import { shallow } from 'enzyme';
|
||||||
import { DashboardRow } from '../dashgrid/DashboardRow';
|
import { DashboardRow } from '../dashgrid/DashboardRow';
|
||||||
import { PanelModel } from '../panel_model';
|
import { PanelModel } from '../panel_model';
|
||||||
|
import config from '../../../core/config';
|
||||||
|
|
||||||
describe('DashboardRow', () => {
|
describe('DashboardRow', () => {
|
||||||
let wrapper, panel, getPanelContainer, dashboardMock;
|
let wrapper, panel, getPanelContainer, dashboardMock;
|
||||||
|
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
dashboardMock = {toggleRow: jest.fn()};
|
dashboardMock = { toggleRow: jest.fn() };
|
||||||
|
|
||||||
|
config.bootData = {
|
||||||
|
user: {
|
||||||
|
orgRole: 'Admin',
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
getPanelContainer = jest.fn().mockReturnValue({
|
getPanelContainer = jest.fn().mockReturnValue({
|
||||||
getDashboard: jest.fn().mockReturnValue(dashboardMock),
|
getDashboard: jest.fn().mockReturnValue(dashboardMock),
|
||||||
getPanelLoader: jest.fn()
|
getPanelLoader: jest.fn(),
|
||||||
});
|
});
|
||||||
|
|
||||||
panel = new PanelModel({collapsed: false});
|
panel = new PanelModel({ collapsed: false });
|
||||||
wrapper = shallow(<DashboardRow panel={panel} getPanelContainer={getPanelContainer} />);
|
wrapper = shallow(<DashboardRow panel={panel} getPanelContainer={getPanelContainer} />);
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -30,4 +37,14 @@ describe('DashboardRow', () => {
|
|||||||
expect(dashboardMock.toggleRow.mock.calls).toHaveLength(1);
|
expect(dashboardMock.toggleRow.mock.calls).toHaveLength(1);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('should have two actions as admin', () => {
|
||||||
|
expect(wrapper.find('.dashboard-row__actions .pointer')).toHaveLength(2);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should have zero actions as viewer', () => {
|
||||||
|
config.bootData.user.orgRole = 'Viewer';
|
||||||
|
panel = new PanelModel({ collapsed: false });
|
||||||
|
wrapper = shallow(<DashboardRow panel={panel} getPanelContainer={getPanelContainer} />);
|
||||||
|
expect(wrapper.find('.dashboard-row__actions .pointer')).toHaveLength(0);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
Loading…
Reference in New Issue
Block a user