2 * angular-elastic-builder
4 * /src/directives/BuilderDirective.js
6 * Angular Directive for injecting a query builder form.
12 angular.module('angular-elastic-builder')
13 .directive('elasticBuilder', [
14 'elasticQueryService',
16 function EB(elasticQueryService) {
20 data: '=elasticBuilder',
23 templateUrl: 'angular-elastic-builder/BuilderDirective.html',
25 link: function(scope) {
26 var data = scope.data;
31 * Removes either Group or Rule
33 scope.removeChild = function(idx) {
34 scope.filters.splice(idx, 1);
40 scope.addRule = function() {
41 scope.filters.push({});
45 * Adds a Group of Rules
47 scope.addGroup = function() {
56 * Any time "outside forces" change the query, they should tell us so via
59 scope.$watch('data.needsUpdate', function(curr) {
64 scope.filters = elasticQueryService.toFilters(data.query, scope.data.fields);
65 scope.data.needsUpdate = false;
69 * Changes on the page update the Query
71 scope.$watch('filters', function(curr) {
76 data.query = elasticQueryService.toQuery(scope.filters, scope.data.fields);