mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
render after leaving fullscreen
This commit is contained in:
@@ -102,27 +102,45 @@ export class DashboardPage extends PureComponent<Props, State> {
|
|||||||
|
|
||||||
// Sync url state with model
|
// Sync url state with model
|
||||||
if (urlFullscreen !== dashboard.meta.fullscreen || urlEdit !== dashboard.meta.isEditing) {
|
if (urlFullscreen !== dashboard.meta.fullscreen || urlEdit !== dashboard.meta.isEditing) {
|
||||||
// entering fullscreen/edit mode
|
|
||||||
if (urlPanelId) {
|
if (urlPanelId) {
|
||||||
|
this.onEnterFullscreen();
|
||||||
|
} else {
|
||||||
|
this.onLeaveFullscreen();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
onEnterFullscreen() {
|
||||||
|
const { dashboard, urlEdit, urlFullscreen, urlPanelId } = this.props;
|
||||||
|
|
||||||
const panel = dashboard.getPanelById(parseInt(urlPanelId, 10));
|
const panel = dashboard.getPanelById(parseInt(urlPanelId, 10));
|
||||||
|
|
||||||
if (panel) {
|
if (panel) {
|
||||||
dashboard.setViewMode(panel, urlFullscreen, urlEdit);
|
dashboard.setViewMode(panel, urlFullscreen, urlEdit);
|
||||||
this.setState({ isEditing: urlEdit, isFullscreen: urlFullscreen, fullscreenPanel: panel });
|
this.setState({
|
||||||
|
isEditing: urlEdit,
|
||||||
|
isFullscreen: urlFullscreen,
|
||||||
|
fullscreenPanel: panel,
|
||||||
|
});
|
||||||
this.setPanelFullscreenClass(urlFullscreen);
|
this.setPanelFullscreenClass(urlFullscreen);
|
||||||
} else {
|
} else {
|
||||||
this.handleFullscreenPanelNotFound(urlPanelId);
|
this.handleFullscreenPanelNotFound(urlPanelId);
|
||||||
}
|
}
|
||||||
} else {
|
}
|
||||||
// handle leaving fullscreen mode
|
|
||||||
|
onLeaveFullscreen() {
|
||||||
|
const { dashboard } = this.props;
|
||||||
|
|
||||||
if (this.state.fullscreenPanel) {
|
if (this.state.fullscreenPanel) {
|
||||||
dashboard.setViewMode(this.state.fullscreenPanel, urlFullscreen, urlEdit);
|
dashboard.setViewMode(this.state.fullscreenPanel, false, false);
|
||||||
}
|
}
|
||||||
this.setState({ isEditing: false, isFullscreen: false, fullscreenPanel: null });
|
|
||||||
|
this.setState({ isEditing: false, isFullscreen: false, fullscreenPanel: null }, () => {
|
||||||
|
dashboard.render();
|
||||||
|
});
|
||||||
|
|
||||||
this.setPanelFullscreenClass(false);
|
this.setPanelFullscreenClass(false);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
handleFullscreenPanelNotFound(urlPanelId: string) {
|
handleFullscreenPanelNotFound(urlPanelId: string) {
|
||||||
// Panel not found
|
// Panel not found
|
||||||
|
|||||||
Reference in New Issue
Block a user