feat(export): more progress on dashboard export

pull/5160/head
Torkel Ödegaard 9 years ago
parent db664c61a4
commit 79a8017fe9
  1. 14
      public/app/features/dashboard/exporter.ts
  2. 9
      public/app/features/dashboard/specs/exporter_specs.ts

@ -16,6 +16,7 @@ export class DashboardExporter {
dynSrv.process(dash, {cleanUpOnly: true});
var inputs = [];
var requires = {};
var datasources = {};
var promises = [];
@ -30,6 +31,13 @@ export class DashboardExporter {
pluginId: ds.meta.id,
};
panel.datasource = '${' + refName +'}';
requires['datasource' + ds.meta.id] = {
type: 'datasource',
id: ds.meta.id,
name: ds.meta.name,
version: ds.meta.info.version
};
}));
}
});
@ -40,7 +48,13 @@ export class DashboardExporter {
inputs.push(value);
});
requires = _.map(requires, req => {
return req;
});
dash["__inputs"] = inputs;
dash["__requires"] = requires;
return dash;
});
}

@ -2,7 +2,7 @@ import {describe, beforeEach, it, sinon, expect, angularMocks} from 'test/lib/co
import {DashboardExporter} from '../exporter';
describe('given dashboard with repeated panels', function() {
describe.only('given dashboard with repeated panels', function() {
var dash, exported;
beforeEach((done) => {
@ -39,6 +39,7 @@ describe('given dashboard with repeated panels', function() {
exporter.makeExportable(dash).then(clean => {
exported = clean;
done();
console.log('done');
});
});
@ -56,5 +57,11 @@ describe('given dashboard with repeated panels', function() {
expect(panel.datasource).to.be("${DS_GFDB}");
});
it('should add datasource as input', function() {
expect(exported.__inputs[0].name).to.be("DS_GFDB");
expect(exported.__inputs[0].pluginId).to.be("testdb");
expect(exported.__inputs[0].type).to.be("datasource");
});
});

Loading…
Cancel
Save