fixes to view mode for panels, can now go back as before

This commit is contained in:
Torkel Ödegaard 2018-11-20 16:00:19 +01:00
parent 5402a0e00d
commit 5ea34844ba
6 changed files with 35 additions and 33 deletions

View File

@ -176,10 +176,9 @@ export class DashboardGrid extends React.Component<DashboardGridProps, any> {
renderPanels() {
const panelElements = [];
console.log('render panels');
for (const panel of this.props.dashboard.panels) {
const panelClasses = classNames({ panel: true, 'panel--fullscreen': panel.fullscreen });
const panelClasses = classNames({ 'react-grid-item--fullscreen': panel.fullscreen });
panelElements.push(
<div key={panel.id.toString()} className={panelClasses} id={`panel-${panel.id}`}>
<DashboardPanel

View File

@ -1,5 +1,6 @@
import React, { PureComponent } from 'react';
import config from 'app/core/config';
import classNames from 'classnames';
import { getAngularLoader, AngularComponent } from 'app/core/services/AngularLoader';
import { importPluginModule } from 'app/features/plugins/plugin_loader';
@ -136,7 +137,7 @@ export class DashboardPanel extends PureComponent<Props, State> {
}
render() {
const { panel, dashboard } = this.props;
const { panel, dashboard, isFullscreen, isEditing } = this.props;
const { plugin, angularPanel } = this.state;
if (this.isSpecial()) {
@ -148,8 +149,12 @@ export class DashboardPanel extends PureComponent<Props, State> {
return null;
}
const containerClass = this.props.isEditing ? 'panel-editor-container' : 'panel-height-helper';
const panelWrapperClass = this.props.isEditing ? 'panel-editor-container__panel' : 'panel-height-helper';
const containerClass = classNames({ 'panel-editor-container': isEditing, 'panel-height-helper': !isEditing });
const panelWrapperClass = classNames({
'panel-wrapper': true,
'panel-wrapper--edit': isEditing,
'panel-wrapper--view': isFullscreen && !isEditing,
});
return (
<div className={containerClass}>

View File

@ -50,15 +50,6 @@ export class PanelEditor extends PureComponent<PanelEditorProps> {
this.forceUpdate();
};
onClose = () => {
store.dispatch(
updateLocation({
query: { tab: null, fullscreen: null, edit: null },
partial: true,
})
);
};
render() {
const { panel, dashboard, onTypeChanged, plugin, angularPanel } = this.props;
const { location } = store.getState();
@ -78,10 +69,6 @@ export class PanelEditor extends PureComponent<PanelEditorProps> {
return <TabItem tab={tab} activeTab={activeTab} onClick={this.onChangeTab} key={tab.id} />;
})}
</ul>
<button className="panel-editor-tabs__close" onClick={this.onClose}>
<i className="fa fa-reply" />
</button>
</div>
{activeTab === 'general' && <GeneralTab panel={panel} />}

View File

@ -9,18 +9,14 @@
.react-grid-item {
display: none !important;
transition-property: none !important;
}
.panel--fullscreen {
display: block !important;
position: unset !important;
width: 100% !important;
height: 100% !important;
transform: translate(0px, 0px) !important;
}
.panel {
margin: 0 !important;
&--fullscreen {
display: block !important;
position: unset !important;
width: 100% !important;
height: 100% !important;
transform: translate(0px, 0px) !important;
}
}
// Disable grid interaction indicators in fullscreen panels
@ -83,10 +79,10 @@
}
// Disable animation on initial rendering and enable it when component has been mounted.
.react-grid-item.cssTransforms.panel {
.react-grid-item.cssTransforms {
transition-property: none;
}
.animated .react-grid-item.cssTransforms.panel {
.animated .react-grid-item.cssTransforms {
transition-property: transform;
}

View File

@ -50,6 +50,10 @@
.navbar-page-btn .fa-caret-down {
display: none;
}
.navbar-buttons--close {
display: flex;
}
}
.navbar-page-btn {

View File

@ -4,8 +4,19 @@
height: 100%;
}
.panel-editor-container__panel {
flex: 1 1 0;
.panel-wrapper {
height: 100%;
&--edit {
flex: 1 1 0;
height: unset;
}
&--view {
flex: 1 1 0;
height: 80%;
padding: $dashboard-padding;
}
}
.panel-editor-container__editor {