editor.js 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. /*
  2. */
  3. define([
  4. 'angular',
  5. 'app',
  6. 'underscore'
  7. ],
  8. function (angular, app, _) {
  9. 'use strict';
  10. var module = angular.module('grafana.panels.annotations', []);
  11. app.useModule(module);
  12. module.controller('AnnotationsEditorCtrl', function($scope, datasourceSrv, $rootScope) {
  13. var annotationDefaults = {
  14. name: '',
  15. datasource: null,
  16. showLine: true,
  17. iconColor: '#C0C6BE',
  18. lineColor: 'rgba(255, 96, 96, 0.592157)',
  19. iconSize: 13,
  20. enable: true
  21. };
  22. $scope.init = function() {
  23. $scope.currentAnnotation = angular.copy(annotationDefaults);
  24. $scope.currentIsNew = true;
  25. $scope.datasources = datasourceSrv.getAnnotationSources();
  26. if ($scope.datasources.length > 0) {
  27. $scope.currentDatasource = $scope.datasources[0];
  28. }
  29. };
  30. $scope.setDatasource = function() {
  31. $scope.currentAnnotation.datasource = $scope.currentDatasource.name;
  32. };
  33. $scope.edit = function(annotation) {
  34. $scope.currentAnnotation = annotation;
  35. $scope.currentIsNew = false;
  36. $scope.currentDatasource = _.findWhere($scope.datasources, { name: annotation.datasource });
  37. if (!$scope.currentDatasource) {
  38. $scope.currentDatasource = $scope.datasources[0];
  39. }
  40. };
  41. $scope.update = function() {
  42. $scope.currentAnnotation = angular.copy(annotationDefaults);
  43. $scope.currentIsNew = true;
  44. };
  45. $scope.add = function() {
  46. $scope.currentAnnotation.datasource = $scope.currentDatasource.name;
  47. $scope.panel.annotations.push($scope.currentAnnotation);
  48. $scope.currentAnnotation = angular.copy(annotationDefaults);
  49. };
  50. });
  51. });