Skip to content

Commit a42bf0a

Browse files
fixes
1 parent e7c30a8 commit a42bf0a

File tree

2 files changed

+87
-74
lines changed

2 files changed

+87
-74
lines changed

public/app/features/dashboard/containers/DashboardPage.tsx

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -158,9 +158,9 @@ export class UnthemedDashboardPage extends PureComponent<Props, State> {
158158

159159
componentDidMount() {
160160
this.initDashboard();
161-
const { FNDashboard, isCustomDashboard } = this.props;
161+
const { FNDashboard } = this.props;
162162

163-
if (!FNDashboard || isCustomDashboard) {
163+
if (!FNDashboard) {
164164
this.forceRouteReloadCounter = (this.props.history.location?.state as any)?.routeReloadCounter || 0;
165165
}
166166
}
@@ -198,13 +198,13 @@ export class UnthemedDashboardPage extends PureComponent<Props, State> {
198198
}
199199

200200
componentDidUpdate(prevProps: Props, prevState: State) {
201-
const { dashboard, match, templateVarsChangedInUrl, FNDashboard, isCustomDashboard } = this.props;
201+
const { dashboard, match, templateVarsChangedInUrl, FNDashboard } = this.props;
202202

203203
if (!dashboard) {
204204
return;
205205
}
206206

207-
if (!FNDashboard || isCustomDashboard) {
207+
if (!FNDashboard) {
208208
const routeReloadCounter = (this.props.history.location?.state as any)?.routeReloadCounter;
209209

210210
if (
@@ -407,6 +407,7 @@ export class UnthemedDashboardPage extends PureComponent<Props, State> {
407407
configToggle: config.featureToggles.vizAndWidgetSplit,
408408
});
409409

410+
410411
const pageClassName = cx({
411412
'panel-in-fullscreen': Boolean(viewPanel),
412413
'page-hidden': Boolean(queryParams.editview || editPanel),
@@ -440,6 +441,7 @@ export class UnthemedDashboardPage extends PureComponent<Props, State> {
440441
layout={PageLayoutType.Canvas}
441442
className={pageClassName}
442443
onSetScrollRef={this.setScrollRef}
444+
style={{ minHeight: 600 }}
443445
>
444446
{showToolbar && (
445447
<header data-testid={selectors.pages.Dashboard.DashNav.navV2}>
@@ -489,7 +491,7 @@ export class UnthemedDashboardPage extends PureComponent<Props, State> {
489491
)}
490492
</header>
491493
)}
492-
{!FNDashboard && <DashboardPrompt dashboard={dashboard} />}
494+
{!isFNDashboardEditable && <DashboardPrompt dashboard={dashboard} />}
493495
{initError && <DashboardFailed />}
494496
{showSubMenu && (
495497
<section aria-label={selectors.pages.Dashboard.SubMenu.submenu}>
@@ -503,7 +505,7 @@ export class UnthemedDashboardPage extends PureComponent<Props, State> {
503505
editPanel={editPanel}
504506
/>
505507

506-
{inspectPanel && !FNDashboard && <PanelInspector dashboard={dashboard} panel={inspectPanel} />}
508+
{inspectPanel && isFNDashboardEditable && <PanelInspector dashboard={dashboard} panel={inspectPanel} />}
507509
</Page>
508510
{editPanel && sectionNav && pageNav && isFNDashboardEditable && (
509511
<PanelEditor

public/app/features/dashboard/dashgrid/DashboardEmpty.tsx

Lines changed: 79 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,10 @@ export interface Props {
2626
const DashboardEmpty = ({ dashboard, canCreate }: Props) => {
2727
const styles = useStyles2(getStyles);
2828
const dispatch = useDispatch();
29-
const initialDatasource = useSelector((state) => state.dashboard.initialDatasource);
29+
const { initialDatasource, isFNDashboard } = useSelector((state) => ({
30+
initialDatasource: state.dashboard.initialDatasource,
31+
isFNDashboard: state.fnGlobalState.FNDashboard
32+
}));
3033

3134
const onAddVisualization = () => {
3235
let id;
@@ -63,14 +66,18 @@ const DashboardEmpty = ({ dashboard, canCreate }: Props) => {
6366
Start your new dashboard by adding a visualization
6467
</Trans>
6568
</Text>
66-
<Box marginBottom={2} paddingX={4}>
67-
<Text element="p" textAlignment="center" color="secondary">
68-
<Trans i18nKey="dashboard.empty.add-visualization-body">
69-
Select a data source and then query and visualize your data with charts, stats and tables or create
70-
lists, markdowns and other widgets.
71-
</Trans>
72-
</Text>
73-
</Box>
69+
70+
<Box marginBottom={2} paddingX={4}>
71+
<Text element="p" textAlignment="center" color="secondary">
72+
{
73+
!isFNDashboard ? <Trans i18nKey="dashboard.empty.add-visualization-body">
74+
Select a data source and then query and visualize your data with charts, stats and tables or create
75+
lists, markdowns and other widgets.
76+
</Trans>: `Visualize CodeRabbit Review metrics using charts, tables and other widgets.`
77+
}
78+
</Text>
79+
</Box>
80+
7481
<Button
7582
size="lg"
7683
icon="plus"
@@ -82,83 +89,87 @@ const DashboardEmpty = ({ dashboard, canCreate }: Props) => {
8289
</Button>
8390
</Stack>
8491
</Box>
85-
<Stack direction={{ xs: 'column', md: 'row' }} wrap="wrap" gap={4}>
86-
{config.featureToggles.vizAndWidgetSplit && (
92+
{
93+
!isFNDashboard && (
94+
<Stack direction={{ xs: 'column', md: 'row' }} wrap="wrap" gap={4}>
95+
{config.featureToggles.vizAndWidgetSplit && (
96+
<Box borderColor="strong" borderStyle="dashed" padding={3} flex={1}>
97+
<Stack direction="column" alignItems="center" gap={1}>
98+
<Text element="h3" textAlignment="center" weight="medium">
99+
<Trans i18nKey="dashboard.empty.add-widget-header">Add a widget</Trans>
100+
</Text>
101+
<Box marginBottom={2}>
102+
<Text element="p" textAlignment="center" color="secondary">
103+
<Trans i18nKey="dashboard.empty.add-widget-body">Create lists, markdowns and other widgets</Trans>
104+
</Text>
105+
</Box>
106+
<Button
107+
icon="plus"
108+
fill="outline"
109+
data-testid={selectors.pages.AddDashboard.itemButton('Create new widget button')}
110+
onClick={() => {
111+
DashboardInteractions.emptyDashboardButtonClicked({ item: 'add_widget' });
112+
locationService.partial({ addWidget: true });
113+
}}
114+
disabled={!canCreate}
115+
>
116+
<Trans i18nKey="dashboard.empty.add-widget-button">Add widget</Trans>
117+
</Button>
118+
</Stack>
119+
</Box>
120+
)}
87121
<Box borderColor="strong" borderStyle="dashed" padding={3} flex={1}>
88122
<Stack direction="column" alignItems="center" gap={1}>
89123
<Text element="h3" textAlignment="center" weight="medium">
90-
<Trans i18nKey="dashboard.empty.add-widget-header">Add a widget</Trans>
124+
<Trans i18nKey="dashboard.empty.add-library-panel-header">Import panel</Trans>
91125
</Text>
92126
<Box marginBottom={2}>
93127
<Text element="p" textAlignment="center" color="secondary">
94-
<Trans i18nKey="dashboard.empty.add-widget-body">Create lists, markdowns and other widgets</Trans>
128+
<Trans i18nKey="dashboard.empty.add-library-panel-body">
129+
Add visualizations that are shared with other dashboards.
130+
</Trans>
95131
</Text>
96132
</Box>
97133
<Button
98134
icon="plus"
99135
fill="outline"
100-
data-testid={selectors.pages.AddDashboard.itemButton('Create new widget button')}
136+
data-testid={selectors.pages.AddDashboard.itemButton('Add a panel from the panel library button')}
137+
onClick={onAddLibraryPanel}
138+
disabled={!canCreate}
139+
>
140+
<Trans i18nKey="dashboard.empty.add-library-panel-button">Add library panel</Trans>
141+
</Button>
142+
</Stack>
143+
</Box>
144+
<Box borderColor="strong" borderStyle="dashed" padding={3} flex={1}>
145+
<Stack direction="column" alignItems="center" gap={1}>
146+
<Text element="h3" textAlignment="center" weight="medium">
147+
<Trans i18nKey="dashboard.empty.import-a-dashboard-header">Import a dashboard</Trans>
148+
</Text>
149+
<Box marginBottom={2}>
150+
<Text element="p" textAlignment="center" color="secondary">
151+
<Trans i18nKey="dashboard.empty.import-a-dashboard-body">
152+
Import dashboards from files or <a href="https://grafana.com/grafana/dashboards/">grafana.com</a>.
153+
</Trans>
154+
</Text>
155+
</Box>
156+
<Button
157+
icon="upload"
158+
fill="outline"
159+
data-testid={selectors.pages.AddDashboard.itemButton('Import dashboard button')}
101160
onClick={() => {
102-
DashboardInteractions.emptyDashboardButtonClicked({ item: 'add_widget' });
103-
locationService.partial({ addWidget: true });
161+
DashboardInteractions.emptyDashboardButtonClicked({ item: 'import_dashboard' });
162+
onImportDashboard();
104163
}}
105164
disabled={!canCreate}
106165
>
107-
<Trans i18nKey="dashboard.empty.add-widget-button">Add widget</Trans>
166+
<Trans i18nKey="dashboard.empty.import-dashboard-button">Import dashboard</Trans>
108167
</Button>
109168
</Stack>
110169
</Box>
111-
)}
112-
<Box borderColor="strong" borderStyle="dashed" padding={3} flex={1}>
113-
<Stack direction="column" alignItems="center" gap={1}>
114-
<Text element="h3" textAlignment="center" weight="medium">
115-
<Trans i18nKey="dashboard.empty.add-library-panel-header">Import panel</Trans>
116-
</Text>
117-
<Box marginBottom={2}>
118-
<Text element="p" textAlignment="center" color="secondary">
119-
<Trans i18nKey="dashboard.empty.add-library-panel-body">
120-
Add visualizations that are shared with other dashboards.
121-
</Trans>
122-
</Text>
123-
</Box>
124-
<Button
125-
icon="plus"
126-
fill="outline"
127-
data-testid={selectors.pages.AddDashboard.itemButton('Add a panel from the panel library button')}
128-
onClick={onAddLibraryPanel}
129-
disabled={!canCreate}
130-
>
131-
<Trans i18nKey="dashboard.empty.add-library-panel-button">Add library panel</Trans>
132-
</Button>
133-
</Stack>
134-
</Box>
135-
<Box borderColor="strong" borderStyle="dashed" padding={3} flex={1}>
136-
<Stack direction="column" alignItems="center" gap={1}>
137-
<Text element="h3" textAlignment="center" weight="medium">
138-
<Trans i18nKey="dashboard.empty.import-a-dashboard-header">Import a dashboard</Trans>
139-
</Text>
140-
<Box marginBottom={2}>
141-
<Text element="p" textAlignment="center" color="secondary">
142-
<Trans i18nKey="dashboard.empty.import-a-dashboard-body">
143-
Import dashboards from files or <a href="https://grafana.com/grafana/dashboards/">grafana.com</a>.
144-
</Trans>
145-
</Text>
146-
</Box>
147-
<Button
148-
icon="upload"
149-
fill="outline"
150-
data-testid={selectors.pages.AddDashboard.itemButton('Import dashboard button')}
151-
onClick={() => {
152-
DashboardInteractions.emptyDashboardButtonClicked({ item: 'import_dashboard' });
153-
onImportDashboard();
154-
}}
155-
disabled={!canCreate}
156-
>
157-
<Trans i18nKey="dashboard.empty.import-dashboard-button">Import dashboard</Trans>
158-
</Button>
159-
</Stack>
160-
</Box>
161-
</Stack>
170+
</Stack>
171+
)
172+
}
162173
</Stack>
163174
</div>
164175
</Stack>

0 commit comments

Comments
 (0)