mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
46 lines
1.2 KiB
TypeScript
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);
|