|
|
@ -1,12 +1,14 @@ |
|
|
|
import { PanelChrome } from '@grafana/ui'; |
|
|
|
import { PanelChrome } from '@grafana/ui'; |
|
|
|
import { PanelRenderer } from 'app/features/panel/components/PanelRenderer'; |
|
|
|
import { PanelRenderer } from 'app/features/panel/components/PanelRenderer'; |
|
|
|
import React, { useEffect, useState } from 'react'; |
|
|
|
import React, { useEffect, useState } from 'react'; |
|
|
|
import { PanelModel, DashboardModel } from '../../state'; |
|
|
|
import { DashboardModel, PanelModel } from '../../state'; |
|
|
|
import { usePanelLatestData } from './usePanelLatestData'; |
|
|
|
import { usePanelLatestData } from './usePanelLatestData'; |
|
|
|
import { PanelOptions } from 'app/plugins/panel/table/models.gen'; |
|
|
|
import { PanelOptions } from 'app/plugins/panel/table/models.gen'; |
|
|
|
import { RefreshEvent } from '@grafana/runtime'; |
|
|
|
import { RefreshEvent } from '@grafana/runtime'; |
|
|
|
import { applyPanelTimeOverrides } from 'app/features/dashboard/utils/panel'; |
|
|
|
import { applyPanelTimeOverrides } from 'app/features/dashboard/utils/panel'; |
|
|
|
import { getTimeSrv, TimeSrv } from '../../services/TimeSrv'; |
|
|
|
import { getTimeSrv } from '../../services/TimeSrv'; |
|
|
|
|
|
|
|
import PanelHeaderCorner from '../../dashgrid/PanelHeader/PanelHeaderCorner'; |
|
|
|
|
|
|
|
|
|
|
|
interface Props { |
|
|
|
interface Props { |
|
|
|
width: number; |
|
|
|
width: number; |
|
|
|
height: number; |
|
|
|
height: number; |
|
|
@ -24,7 +26,7 @@ export function PanelEditorTableView({ width, height, panel, dashboard }: Props) |
|
|
|
|
|
|
|
|
|
|
|
// Subscribe to panel event
|
|
|
|
// Subscribe to panel event
|
|
|
|
useEffect(() => { |
|
|
|
useEffect(() => { |
|
|
|
const timeSrv: TimeSrv = getTimeSrv(); |
|
|
|
const timeSrv = getTimeSrv(); |
|
|
|
const timeData = applyPanelTimeOverrides(panel, timeSrv.timeRange()); |
|
|
|
const timeData = applyPanelTimeOverrides(panel, timeSrv.timeRange()); |
|
|
|
|
|
|
|
|
|
|
|
const sub = panel.events.subscribe(RefreshEvent, () => { |
|
|
|
const sub = panel.events.subscribe(RefreshEvent, () => { |
|
|
@ -42,15 +44,18 @@ export function PanelEditorTableView({ width, height, panel, dashboard }: Props) |
|
|
|
return ( |
|
|
|
return ( |
|
|
|
<PanelChrome width={width} height={height} padding="none"> |
|
|
|
<PanelChrome width={width} height={height} padding="none"> |
|
|
|
{(innerWidth, innerHeight) => ( |
|
|
|
{(innerWidth, innerHeight) => ( |
|
|
|
<PanelRenderer |
|
|
|
<> |
|
|
|
title="Raw data" |
|
|
|
<PanelHeaderCorner panel={panel} error={data?.error?.message} /> |
|
|
|
pluginId="table" |
|
|
|
<PanelRenderer |
|
|
|
width={innerWidth} |
|
|
|
title="Raw data" |
|
|
|
height={innerHeight} |
|
|
|
pluginId="table" |
|
|
|
data={data} |
|
|
|
width={innerWidth} |
|
|
|
options={options} |
|
|
|
height={innerHeight} |
|
|
|
onOptionsChange={setOptions} |
|
|
|
data={data} |
|
|
|
/> |
|
|
|
options={options} |
|
|
|
|
|
|
|
onOptionsChange={setOptions} |
|
|
|
|
|
|
|
/> |
|
|
|
|
|
|
|
</> |
|
|
|
)} |
|
|
|
)} |
|
|
|
</PanelChrome> |
|
|
|
</PanelChrome> |
|
|
|
); |
|
|
|
); |
|
|
|