Added refId to missing queries on panel model init

This commit is contained in:
Torkel Ödegaard 2019-01-21 20:35:24 +01:00
parent db2a15daf0
commit 018fef0400
2 changed files with 23 additions and 3 deletions

View File

@ -62,7 +62,7 @@ const mustKeepProps: { [str: string]: boolean } = {
const defaults: any = {
gridPos: { x: 0, y: 0, h: 3, w: 6 },
datasource: null,
targets: [{}],
targets: [{ refId: 'A' }],
cachedPluginOptions: {},
transparent: false,
};
@ -83,7 +83,7 @@ export class PanelModel {
collapsed?: boolean;
panels?: any;
soloMode?: boolean;
targets: any[];
targets: DataQuery[];
datasource: string;
thresholds?: any;
@ -118,6 +118,18 @@ export class PanelModel {
// defaults
_.defaultsDeep(this, _.cloneDeep(defaults));
// queries must have refId
this.ensureQueryIds();
}
ensureQueryIds() {
if (this.targets) {
for (const query of this.targets) {
if (!query.refId) {
query.refId = this.getNextQueryLetter();
}
}
}
}
getOptions(panelDefaults) {
@ -243,7 +255,7 @@ export class PanelModel {
addQuery(query?: Partial<DataQuery>) {
query = query || { refId: 'A' };
query.refId = this.getNextQueryLetter();
this.targets.push(query);
this.targets.push(query as DataQuery);
}
getNextQueryLetter(): string {

View File

@ -9,6 +9,10 @@ describe('PanelModel', () => {
model = new PanelModel({
type: 'table',
showColumns: true,
targets: [
{refId: 'A'},
{noRefId: true}
]
});
});
@ -20,6 +24,10 @@ describe('PanelModel', () => {
expect(model.showColumns).toBe(true);
});
it('should add missing refIds', () => {
expect(model.targets[1].refId).toBe('B');
});
it('getSaveModel should remove defaults', () => {
const saveModel = model.getSaveModel();
expect(saveModel.gridPos).toBe(undefined);