define([ 'angular', 'lodash', 'jquery', ], function (angular, _, $) { 'use strict'; angular .module('grafana.directives') .directive('elasticQueryComponent', function($compile, uiSegmentSrv, $q) { //var linkTemplate = ''; /* jshint maxlen:false */ var template1 = ''; /* jshint maxlen:false */ var template2 = ''; return { restrict: 'E', scope: { model: "=", onChange: "&", getFields: "&", }, link: function postLink($scope, elem) { $scope.getBucketAggTypes = function() { return $q.when([ uiSegmentSrv.newSegment({value: 'terms'}), uiSegmentSrv.newSegment({value: 'date_histogram'}), ]); }; $scope.fieldChanged = function() { $scope.model.field = $scope.fieldSegment.value; $scope.onChange(); }; $scope.bucketAggTypeChanged = function() { $scope.model.type = $scope.typeSegment.value; $scope.onChange(); }; function addElementsAndCompile() { var $html = $(template1 + template2); $scope.fieldSegment = uiSegmentSrv.newSegment($scope.model.field); $scope.typeSegment = uiSegmentSrv.newSegment($scope.model.type); $html.appendTo(elem); $compile(elem.contents())($scope); } addElementsAndCompile(); } }; }); });