pipeline_variables.ts 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. import coreModule from 'app/core/core_module';
  2. import _ from 'lodash';
  3. export function elasticPipelineVariables() {
  4. return {
  5. templateUrl: 'public/app/plugins/datasource/elasticsearch/partials/pipeline_variables.html',
  6. controller: 'ElasticPipelineVariablesCtrl',
  7. restrict: 'E',
  8. scope: {
  9. onChange: '&',
  10. variables: '=',
  11. options: '=',
  12. },
  13. };
  14. }
  15. const newVariable = index => {
  16. return {
  17. name: 'var' + index,
  18. pipelineAgg: 'select metric',
  19. };
  20. };
  21. export class ElasticPipelineVariablesCtrl {
  22. /** @ngInject */
  23. constructor($scope) {
  24. $scope.variables = $scope.variables || [newVariable(1)];
  25. $scope.onChangeInternal = () => {
  26. $scope.onChange();
  27. };
  28. $scope.add = () => {
  29. $scope.variables.push(newVariable($scope.variables.length + 1));
  30. $scope.onChange();
  31. };
  32. $scope.remove = index => {
  33. $scope.variables.splice(index, 1);
  34. $scope.onChange();
  35. };
  36. }
  37. }
  38. coreModule.directive('elasticPipelineVariables', elasticPipelineVariables);
  39. coreModule.controller('ElasticPipelineVariablesCtrl', ElasticPipelineVariablesCtrl);