Commit 2fb721d3 by Torkel Ödegaard

various fixes to to queries tab (in react mode)

parent 8e85295b
import React from 'react';
// Libraries
import React, { PureComponent } from 'react';
// Services & utils
import { getAngularLoader, AngularComponent } from 'app/core/services/AngularLoader';
// Types
import { PanelModel } from '../panel_model';
import { DashboardModel } from '../dashboard_model';
import { getAngularLoader, AngularComponent } from 'app/core/services/AngularLoader';
interface Props {
panel: PanelModel;
dashboard: DashboardModel;
}
export class QueriesTab extends React.Component<Props, any> {
export class QueriesTab extends PureComponent<Props> {
element: any;
component: AngularComponent;
......@@ -29,10 +34,7 @@ export class QueriesTab extends React.Component<Props, any> {
ctrl: {
panel: panel,
dashboard: dashboard,
panelCtrl: {
panel: panel,
dashboard: dashboard,
},
refresh: () => panel.refresh(),
},
};
......
......@@ -16,6 +16,12 @@ const notPersistedProperties: { [str: string]: boolean } = {
hasRefreshed: true,
};
const defaults: any = {
gridPos: { x: 0, y: 0, h: 3, w: 6 },
datasource: null,
targets: [{}],
};
export class PanelModel {
id: number;
gridPos: GridPos;
......@@ -51,7 +57,7 @@ export class PanelModel {
}
// defaults
this.gridPos = this.gridPos || { x: 0, y: 0, h: 3, w: 6 };
_.defaultsDeep(this, _.cloneDeep(defaults));
}
getSaveModel() {
......@@ -61,6 +67,10 @@ export class PanelModel {
continue;
}
if (_.isEqual(this[property], defaults[property])) {
continue;
}
model[property] = _.cloneDeep(this[property]);
}
......
......@@ -240,5 +240,5 @@ stubs['-- Grafana --'] = {
};
function getStub(arg) {
return Promise.resolve(stubs[arg]);
return Promise.resolve(stubs[arg || 'gfdb']);
}
......@@ -12,7 +12,6 @@ import { metricsTabDirective } from './metrics_tab';
class MetricsPanelCtrl extends PanelCtrl {
scope: any;
datasource: any;
datasourceName: any;
$q: any;
$timeout: any;
contextSrv: any;
......@@ -287,27 +286,6 @@ class MetricsPanelCtrl extends PanelCtrl {
});
}
setDatasource(datasource) {
// switching to mixed
if (datasource.meta.mixed) {
_.each(this.panel.targets, target => {
target.datasource = this.panel.datasource;
if (!target.datasource) {
target.datasource = config.defaultDatasource;
}
});
} else if (this.datasource && this.datasource.meta.mixed) {
_.each(this.panel.targets, target => {
delete target.datasource;
});
}
this.panel.datasource = datasource.value;
this.datasourceName = datasource.name;
this.datasource = null;
this.refresh();
}
getAdditionalMenuItems() {
const items = [];
if (
......
import { DashboardModel } from '../dashboard/dashboard_model';
// Libraries
import _ from 'lodash';
import Remarkable from 'remarkable';
// Services & utils
import coreModule from 'app/core/core_module';
import config from 'app/core/config';
// Types
import { DashboardModel } from '../dashboard/dashboard_model';
export class MetricsTabCtrl {
dsName: string;
......@@ -70,10 +77,29 @@ export class MetricsTabCtrl {
}
this.datasourceInstance = option.datasource;
this.panelCtrl.setDatasource(option.datasource);
this.setDatasource(option.datasource);
this.updateDatasourceOptions();
}
setDatasource(datasource) {
// switching to mixed
if (datasource.meta.mixed) {
_.each(this.panel.targets, target => {
target.datasource = this.panel.datasource;
if (!target.datasource) {
target.datasource = config.defaultDatasource;
}
});
} else if (this.datasourceInstance && this.datasourceInstance.meta.mixed) {
_.each(this.panel.targets, target => {
delete target.datasource;
});
}
this.panel.datasource = datasource.value;
this.panel.refresh();
}
addMixedQuery(option) {
if (!option) {
return;
......
......@@ -179,7 +179,6 @@ class GraphCtrl extends MetricsPanelCtrl {
}
onDataReceived(dataList) {
console.log(dataList);
this.dataList = dataList;
this.seriesList = this.processor.getSeriesList({
dataList: dataList,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment