ExportDataModalCtrl.ts 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. import angular from 'angular';
  2. import * as fileExport from 'app/core/utils/file_export';
  3. import appEvents from 'app/core/app_events';
  4. export class ExportDataModalCtrl {
  5. private data: any[];
  6. private panel: string;
  7. asRows = true;
  8. dateTimeFormat = 'YYYY-MM-DDTHH:mm:ssZ';
  9. excel = false;
  10. export() {
  11. if (this.panel === 'table') {
  12. fileExport.exportTableDataToCsv(this.data, this.excel);
  13. } else {
  14. if (this.asRows) {
  15. fileExport.exportSeriesListToCsv(this.data, this.dateTimeFormat, this.excel);
  16. } else {
  17. fileExport.exportSeriesListToCsvColumns(this.data, this.dateTimeFormat, this.excel);
  18. }
  19. }
  20. this.dismiss();
  21. }
  22. dismiss() {
  23. appEvents.emit('hide-modal');
  24. }
  25. }
  26. export function exportDataModal() {
  27. return {
  28. restrict: 'E',
  29. templateUrl: 'public/app/features/dashboard/components/ExportDataModal/template.html',
  30. controller: ExportDataModalCtrl,
  31. controllerAs: 'ctrl',
  32. scope: {
  33. panel: '<',
  34. data: '<', // The difference to '=' is that the bound properties are not watched
  35. },
  36. bindToController: true,
  37. };
  38. }
  39. angular.module('grafana.directives').directive('exportDataModal', exportDataModal);