Files
grafana/public/app/features/dashboard/components/ExportDataModal/ExportDataModalCtrl.ts

46 lines
1.2 KiB
TypeScript

import angular from 'angular';
import * as fileExport from 'app/core/utils/file_export';
import appEvents from 'app/core/app_events';
export class ExportDataModalCtrl {
private data: any[];
private panel: string;
asRows = true;
dateTimeFormat = 'YYYY-MM-DDTHH:mm:ssZ';
excel = false;
export() {
if (this.panel === 'table') {
fileExport.exportTableDataToCsv(this.data, this.excel);
} else {
if (this.asRows) {
fileExport.exportSeriesListToCsv(this.data, this.dateTimeFormat, this.excel);
} else {
fileExport.exportSeriesListToCsvColumns(this.data, this.dateTimeFormat, this.excel);
}
}
this.dismiss();
}
dismiss() {
appEvents.emit('hide-modal');
}
}
export function exportDataModal() {
return {
restrict: 'E',
templateUrl: 'public/app/features/dashboard/components/ExportDataModal/template.html',
controller: ExportDataModalCtrl,
controllerAs: 'ctrl',
scope: {
panel: '<',
data: '<', // The difference to '=' is that the bound properties are not watched
},
bindToController: true,
};
}
angular.module('grafana.directives').directive('exportDataModal', exportDataModal);