metron-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ceste...@apache.org
Subject [32/66] [abbrv] incubator-metron git commit: METRON-237 Remove metron-ui from the code base. (mmiklavcic via cestella) closes apache/incubator-metron#159
Date Fri, 24 Jun 2016 21:37:15 GMT
http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/e3697a69/metron-ui/lib/public/app/panels/query/editor.html
----------------------------------------------------------------------
diff --git a/metron-ui/lib/public/app/panels/query/editor.html b/metron-ui/lib/public/app/panels/query/editor.html
deleted file mode 100755
index 3100415..0000000
--- a/metron-ui/lib/public/app/panels/query/editor.html
+++ /dev/null
@@ -1,7 +0,0 @@
-<div>
-  <div class="row-fluid">    
-    <div class="span12">
-      No options here
-    </div>
-  </div>
-</div>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/e3697a69/metron-ui/lib/public/app/panels/query/editors/lucene.html
----------------------------------------------------------------------
diff --git a/metron-ui/lib/public/app/panels/query/editors/lucene.html b/metron-ui/lib/public/app/panels/query/editors/lucene.html
deleted file mode 100755
index e69de29..0000000

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/e3697a69/metron-ui/lib/public/app/panels/query/editors/regex.html
----------------------------------------------------------------------
diff --git a/metron-ui/lib/public/app/panels/query/editors/regex.html b/metron-ui/lib/public/app/panels/query/editors/regex.html
deleted file mode 100755
index e69de29..0000000

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/e3697a69/metron-ui/lib/public/app/panels/query/editors/topN.html
----------------------------------------------------------------------
diff --git a/metron-ui/lib/public/app/panels/query/editors/topN.html b/metron-ui/lib/public/app/panels/query/editors/topN.html
deleted file mode 100755
index 5fe4566..0000000
--- a/metron-ui/lib/public/app/panels/query/editors/topN.html
+++ /dev/null
@@ -1,12 +0,0 @@
-  <fieldset>
-    <label class="small">Field</label><br>
-    <input ng-model="dashboard.current.services.query.list[id].field" type="text" bs-typeahead="fields.list" placeholder="Field">
-    <p>
-    <label class="small">Count</label><br>
-    <input ng-model="dashboard.current.services.query.list[id].size" type="number">
-    <p>
-    <label class="small">Union</label><br>
-      <select class="input-small" ng-model="dashboard.current.services.query.list[id].union">
-      <option ng-repeat="mode in ['none','AND','OR']">{{mode}}</option>
-    </select>
-  </fieldset>

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/e3697a69/metron-ui/lib/public/app/panels/query/help/lucene.html
----------------------------------------------------------------------
diff --git a/metron-ui/lib/public/app/panels/query/help/lucene.html b/metron-ui/lib/public/app/panels/query/help/lucene.html
deleted file mode 100755
index 9e860e9..0000000
--- a/metron-ui/lib/public/app/panels/query/help/lucene.html
+++ /dev/null
@@ -1,30 +0,0 @@
-The lucene query type uses <a target="_blank" href='http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/query-dsl-query-string-query.html#query-string-syntax'>LUCENE query string syntax</a> to find matching documents or events within Elasticsearch.
-
-<h4>Examples</h4>
-<ul class="unstyled" type="disc">
-  <li class="listitem"><p class="simpara">
-  <code class="literal">status</code> field contains <code class="literal">active</code>
-  </p><pre class="literallayout">status:active</pre></li>
-  <li class="listitem"><p class="simpara">
-  <code class="literal">title</code> field contains <code class="literal">quick</code> or <code class="literal">brown</code>
-  </p><pre class="literallayout">title:(quick brown)</pre></li>
-  <li class="listitem"><p class="simpara">
-  <code class="literal">author</code> field contains the exact phrase <code class="literal">"john smith"</code>
-  </p><pre class="literallayout">author:"John Smith"</pre></li>
-</ul>
-
-<p>Wildcard searches can be run on individual terms, using <code class="literal">?</code> to replace
-a single character, and <code class="literal">*</code> to replace zero or more characters:</p>
-<pre class="literallayout">qu?ck bro*</pre>
-
-<ul class="unstyled" type="disc">
-  <li class="listitem"><p class="simpara">
-  Numbers 1..5
-  </p><pre class="literallayout">count:[1 TO 5]</pre></li>
-  <li class="listitem"><p class="simpara">
-  Tags between <code class="literal">alpha</code> and <code class="literal">omega</code>, excluding <code class="literal">alpha</code> and <code class="literal">omega</code>:
-  </p><pre class="literallayout">tag:{alpha TO omega}</pre></li>
-  <li class="listitem"><p class="simpara">
-  Numbers from 10 upwards
-  </p><pre class="literallayout">count:[10 TO *]</pre></li>
-</ul>

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/e3697a69/metron-ui/lib/public/app/panels/query/help/regex.html
----------------------------------------------------------------------
diff --git a/metron-ui/lib/public/app/panels/query/help/regex.html b/metron-ui/lib/public/app/panels/query/help/regex.html
deleted file mode 100755
index 8e38ab9..0000000
--- a/metron-ui/lib/public/app/panels/query/help/regex.html
+++ /dev/null
@@ -1,10 +0,0 @@
-The regex query allows you to use regular expressions to match terms in the <i>_all</i> field.
-
-A detailed overview of lucene's regex engine is available here: <a target="_blank" href="http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/query-dsl-regexp-query.html#regexp-syntax">Regular expressions in Elasticsearch</a>
-
-<h5>A note on anchoring</h5>
-Lucene’s patterns are always anchored. The pattern provided must match the entire string. For string "abcde":
-<p>
-<code>ab.*</code> will match<br>
-<code>abcd</code> will not match</br>
-

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/e3697a69/metron-ui/lib/public/app/panels/query/help/topN.html
----------------------------------------------------------------------
diff --git a/metron-ui/lib/public/app/panels/query/help/topN.html b/metron-ui/lib/public/app/panels/query/help/topN.html
deleted file mode 100755
index 9fc7c3a..0000000
--- a/metron-ui/lib/public/app/panels/query/help/topN.html
+++ /dev/null
@@ -1,14 +0,0 @@
-The topN query uses an <a target="_blank" href="http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/search-facets-terms-facet.html">Elasticsearch terms facet</a> to find the most common terms in a field and build queries from the result. The topN query uses <a target="_blank" href='http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/query-dsl-query-string-query.html#query-string-syntax'>LUCENE query string syntax</a>
-
-<h4>Parameters</h4>
-<ul>
-  <li>
-    <strong>Field</strong> / The field to facet on. Fields with a large number of unique terms will <a target="_blank" href="http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/search-facets-terms-facet.html#_memory_considerations_2">use more memory</a> to calculate.
-  </li>
-  <li>
-    <strong>Count</strong> / How many queries to generate. The resulting queries will use brightness variations on the original query's color for their own.
-  </li>
-  <li>
-    <strong>Union</strong> / The relation the generated queries have to the original. For example, if your field was set to 'extension', your original query was "user:B.Awesome" and your union was AND. Kibana might generate the following example query: <code>extension:"html" AND (user:B.Awesome)</code>
-  </li>
-</ul>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/e3697a69/metron-ui/lib/public/app/panels/query/helpModal.html
----------------------------------------------------------------------
diff --git a/metron-ui/lib/public/app/panels/query/helpModal.html b/metron-ui/lib/public/app/panels/query/helpModal.html
deleted file mode 100755
index 3cbbf8c..0000000
--- a/metron-ui/lib/public/app/panels/query/helpModal.html
+++ /dev/null
@@ -1,12 +0,0 @@
-<div class="modal-header">
-  <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
-  <h3>About the {{help.type}} query</h3>
-</div>
-<div class="modal-body">
-
-  <div ng-include="queryHelpPath(help.type)"></div>
-
-</div>
-<div class="modal-footer">
-  <button type="button" class="btn btn-danger" ng-click="dismiss()">Close</button>
-</div>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/e3697a69/metron-ui/lib/public/app/panels/query/meta.html
----------------------------------------------------------------------
diff --git a/metron-ui/lib/public/app/panels/query/meta.html b/metron-ui/lib/public/app/panels/query/meta.html
deleted file mode 100755
index 3adf2d1..0000000
--- a/metron-ui/lib/public/app/panels/query/meta.html
+++ /dev/null
@@ -1,34 +0,0 @@
-<div class="panel-query-meta row-fluid" style="width:260px">
-
-  <style>
-    .panel-query-meta fieldset label {
-      margin-top: 3px;
-    }
-  </style>
-
-  <fieldset>
-    <select class="input-small" ng-model="dashboard.current.services.query.list[id].type" ng-change="typeChange(dashboard.current.services.query.list[id])">
-      <option ng-repeat="type in queryTypes">{{type}}</option>
-    </select> &nbsp<a href="" class="small" ng-click="queryHelp(dashboard.current.services.query.list[id].type)"> About the {{dashboard.current.services.query.list[id].type}} query</a>
-
-    <hr class="small">
-
-    <label class="small">Legend value</label>
-    <input type="text" ng-model="dashboard.current.services.query.list[id].alias" placeholder="Alias...">
-  </fieldset>
-
-  <div ng-include src="queryConfig(dashboard.current.services.query.list[id].type)"></div>
-
-
-  <hr class="small">
-  <div>
-    <i ng-repeat="color in querySrv.colors" class="pointer" ng-class="{'icon-circle-blank':dashboard.current.services.query.list[id].color == color,'icon-circle':dashboard.current.services.query.list[id].color != color}" ng-style="{color:color}" ng-click="dashboard.current.services.query.list[id].color = color;render();"> </i>
-  </div>
-
-
-  <div class="pull-right">
-    <a class="btn btn-mini" ng-click="dashboard.current.services.query.list[id].enable=false;dashboard.refresh();dismiss();" class="pointer">Deactivate</a>
-    <a class="btn btn-mini" ng-class="{active:dashboard.current.services.query.list[id].pin}" ng-click="toggle_pin(id);dismiss();" class="pointer">Pin <i class="icon-pushpin"></i></a>
-    <input class="btn btn-mini" ng-click="dashboard.refresh();dismiss();" type="submit"/ value="Close">
-  </div>
-</div>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/e3697a69/metron-ui/lib/public/app/panels/query/module.html
----------------------------------------------------------------------
diff --git a/metron-ui/lib/public/app/panels/query/module.html b/metron-ui/lib/public/app/panels/query/module.html
deleted file mode 100755
index 196180d..0000000
--- a/metron-ui/lib/public/app/panels/query/module.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<div ng-controller='query' ng-init="init()" class="query-panel">
-  <div ng-repeat="id in (unPinnedQueries = (dashboard.current.services.query.ids|pinnedQuery:false))" ng-class="{'short-query': unPinnedQueries.length>1}">
-    <form class="form-search" style="position:relative;margin:5px 0;" ng-submit="refresh()">
-      <span class="begin-query">
-        <i class="pointer" ng-class="queryIcon(dashboard.current.services.query.list[id].type)" ng-show="dashboard.current.services.query.list[id].enable" data-unique="1" bs-popover="'app/panels/query/meta.html'" data-placement="bottomLeft" ng-style="{color: dashboard.current.services.query.list[id].color}"></i>
-        <i class="pointer icon-circle-blank" ng-click="dashboard.current.services.query.list[id].enable=true;dashboard.refresh();" ng-hide="dashboard.current.services.query.list[id].enable" bs-tooltip="'Activate query'" ng-style="{color: dashboard.current.services.query.list[id].color}"></i>
-        <i class="icon-remove-sign pointer remove-query" ng-show="dashboard.current.services.query.ids.length > 1" ng-click="querySrv.remove(id);refresh()"></i>
-      </span>
-      <span>
-        <input class="search-query panel-query" ng-disabled="!dashboard.current.services.query.list[id].enable" ng-class="{ 'input-block-level': unPinnedQueries.length==1, 'last-query': $last, 'has-remove': dashboard.current.services.query.ids.length > 1 }" bs-typeahead="panel.history" data-min-length=0 data-items=100 type="text" ng-model="dashboard.current.services.query.list[id].query" />
-      </span>
-      <span class="end-query">
-        <i class="icon-search pointer" ng-click="refresh()" ng-show="$last"></i>
-        <i class="icon-plus pointer" ng-click="querySrv.set({})" ng-show="$last"></i>
-      </span>
-    </form>
-  </div>
-  <div style="display:inline-block" ng-repeat="id in dashboard.current.services.query.ids|pinnedQuery:true">
-    <span class="pointer badge pins" ng-show="$first" ng-click="panel.pinned = !panel.pinned">Pinned <i ng-class="{'icon-caret-right':panel.pinned,'icon-caret-left':!panel.pinned}"></i></span>
-    <span ng-show="panel.pinned" class="badge pinned">
-      <i class="icon-circle pointer" ng-show="dashboard.current.services.query.list[id].enable" ng-style="{color: dashboard.current.services.query.list[id].color}" data-unique="1" bs-popover="'app/panels/query/meta.html'" data-placement="bottomLeft"></i>
-      <i class="pointer icon-circle-blank" bs-tooltip="'Activate query'" ng-click="dashboard.current.services.query.list[id].enable=true;dashboard.refresh();" ng-hide="dashboard.current.services.query.list[id].enable" ng-style="{color: dashboard.current.services.query.list[id].color}"></i>
-      <span bs-tooltip="dashboard.current.services.query.list[id].query | limitTo:45"> {{dashboard.current.services.query.list[id].alias || dashboard.current.services.query.list[id].query}}</span>
-    </span>
-  </div>
-  <span style="display:inline-block" ng-show="unPinnedQueries.length == 0">
-    <i class="icon-search pointer" ng-click="refresh()"></i>
-    <i class="icon-plus pointer" ng-click="querySrv.set({})"></i>
-  </span>
-</div>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/e3697a69/metron-ui/lib/public/app/panels/query/module.js
----------------------------------------------------------------------
diff --git a/metron-ui/lib/public/app/panels/query/module.js b/metron-ui/lib/public/app/panels/query/module.js
deleted file mode 100755
index 115aee5..0000000
--- a/metron-ui/lib/public/app/panels/query/module.js
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
-
-  ## query
-
-  ### Parameters
-  * query ::  A string or an array of querys. String if multi is off, array if it is on
-              This should be fixed, it should always be an array even if its only
-              one element
-*/
-define([
-  'angular',
-  'app',
-  'lodash',
-
-  'css!./query.css'
-], function (angular, app, _) {
-  'use strict';
-
-  var module = angular.module('kibana.panels.query', []);
-  app.useModule(module);
-
-  module.controller('query', function($scope, querySrv, $rootScope, dashboard, $q, $modal) {
-    $scope.panelMeta = {
-      status  : "Stable",
-      description : "Manage all of the queries on the dashboard. You almost certainly need one of "+
-        "these somewhere. This panel allows you to add, remove, label, pin and color queries"
-    };
-
-    // Set and populate defaults
-    var _d = {
-      query   : "*",
-      pinned  : true,
-      history : [],
-      remember: 10 // max: 100, angular strap can't take a variable for items param
-    };
-    _.defaults($scope.panel,_d);
-
-    $scope.querySrv = querySrv;
-    $scope.dashboard = dashboard;
-
-    // A list of query types for the query config popover
-    $scope.queryTypes = querySrv.types;
-
-    var queryHelpModal = $modal({
-      template: './app/panels/query/helpModal.html',
-      persist: true,
-      show: false,
-      scope: $scope,
-    });
-
-    $scope.init = function() {
-    };
-
-    $scope.refresh = function() {
-      update_history(_.pluck($scope.dashboard.current.services.query.list,'query'));
-      dashboard.refresh();
-    };
-
-    $scope.render = function() {
-      $rootScope.$broadcast('render');
-    };
-
-    $scope.toggle_pin = function(id) {
-      dashboard.current.services.query.list[id].pin = dashboard.current.services.query.list[id].pin ? false : true;
-    };
-
-    $scope.queryIcon = function(type) {
-      return querySrv.queryTypes[type].icon;
-    };
-
-    $scope.queryConfig = function(type) {
-      return "./app/panels/query/editors/"+(type||'lucene')+".html";
-    };
-
-    $scope.queryHelpPath = function(type) {
-      return "./app/panels/query/help/"+(type||'lucene')+".html";
-    };
-
-    $scope.queryHelp = function(type) {
-      $scope.help = {
-        type: type
-      };
-      $q.when(queryHelpModal).then(function(modalEl) {
-        modalEl.modal('show');
-      });
-    };
-
-    $scope.typeChange = function(q) {
-      var _nq = {
-        id   : q.id,
-        type : q.type,
-        query: q.query,
-        alias: q.alias,
-        color: q.color
-      };
-      dashboard.current.services.query.list[_nq.id] = querySrv.defaults(_nq);
-    };
-
-    var update_history = function(query) {
-      if($scope.panel.remember > 0) {
-        $scope.panel.history = _.union(query.reverse(),$scope.panel.history);
-        var _length = $scope.panel.history.length;
-        if(_length > $scope.panel.remember) {
-          $scope.panel.history = $scope.panel.history.slice(0,$scope.panel.remember);
-        }
-      }
-    };
-
-    $scope.init();
-
-  });
-
-});
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/e3697a69/metron-ui/lib/public/app/panels/query/query.css
----------------------------------------------------------------------
diff --git a/metron-ui/lib/public/app/panels/query/query.css b/metron-ui/lib/public/app/panels/query/query.css
deleted file mode 100755
index f0df742..0000000
--- a/metron-ui/lib/public/app/panels/query/query.css
+++ /dev/null
@@ -1,49 +0,0 @@
-.short-query {
-  display:inline-block;
-  margin-right: 10px;
-}
-.short-query input.search-query {
-    width: 280px;
-}
-.begin-query {
-  position:absolute;
-  left:10px;
-  top:5px;
-}
-.end-query {
-  position:absolute;
-  right:10px;
-  top:5px;
-}
-
-.end-query i, .begin-query i {
-  margin: 0px;
-}
-
-.panel-query {
-  padding-left: 25px !important;
-  height: 31px !important;
-  -webkit-box-sizing: border-box; /* Safari/Chrome, other WebKit */
-  -moz-box-sizing: border-box;    /* Firefox, other Gecko */
-  box-sizing: border-box;         /* Opera/IE 8+ */
-}
-
-.query-disabled {
-  opacity: 0.3;
-}
-
-.form-search:hover .has-remove {
-  padding-left: 40px !important;
-}
-.remove-query {
-  opacity: 0;
-}
-.last-query {
-  padding-right: 45px !important;
-}
-.form-search:hover .remove-query {
-  opacity: 1;
-}
-.query-panel .pinned {
-  margin-right: 5px;
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/e3697a69/metron-ui/lib/public/app/panels/sparklines/editor.html
----------------------------------------------------------------------
diff --git a/metron-ui/lib/public/app/panels/sparklines/editor.html b/metron-ui/lib/public/app/panels/sparklines/editor.html
deleted file mode 100755
index 65fc07e..0000000
--- a/metron-ui/lib/public/app/panels/sparklines/editor.html
+++ /dev/null
@@ -1,23 +0,0 @@
-<div class="editor-row">
-  <div class="section">
-    <h5>Values</h5>
-    <div class="editor-option">
-      <label class="small">Chart value</label>
-      <select ng-change="set_refresh(true)" class="input-small" ng-model="panel.mode" ng-options="f for f in ['count','min','mean','max','total']"></select>
-    </div>
-    <div class="editor-option">
-      <label class="small">Time Field</label>
-      <input ng-change="set_refresh(true)" placeholder="Start typing" bs-typeahead="fields.list" type="text" class="input-small" ng-model="panel.time_field">
-    </div>
-    <div class="editor-option" ng-show="panel.mode != 'count'">
-      <label class="small">Value Field <tip>This field must contain a numeric value</tip></label>
-        <input ng-change="set_refresh(true)" placeholder="Start typing" bs-typeahead="fields.list" type="text" class="input-large" ng-model="panel.value_field">
-    </div>
-  </div>
-  <div class="section">
-    <h5>Transform Series</h5>
-    <div class="editor-option">
-      <label class="small">Derivative <tip>Plot the change per interval in the series</tip></label><input type="checkbox" ng-model="panel.derivative" ng-checked="panel.derivative" ng-change="set_refresh(true)">
-    </div>
-  </div>
-</div>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/e3697a69/metron-ui/lib/public/app/panels/sparklines/interval.js
----------------------------------------------------------------------
diff --git a/metron-ui/lib/public/app/panels/sparklines/interval.js b/metron-ui/lib/public/app/panels/sparklines/interval.js
deleted file mode 100755
index ed5ae01..0000000
--- a/metron-ui/lib/public/app/panels/sparklines/interval.js
+++ /dev/null
@@ -1,57 +0,0 @@
-define([
-  'kbn'
-],
-function (kbn) {
-  'use strict';
-
-  /**
-   * manages the interval logic
-   * @param {[type]} interval_string  An interval string in the format '1m', '1y', etc
-   */
-  function Interval(interval_string) {
-    this.string = interval_string;
-
-    var info = kbn.describe_interval(interval_string);
-    this.type = info.type;
-    this.ms = Math.ceil(info.sec * 1000 * info.count);
-
-    // does the length of the interval change based on the current time?
-    if (this.type === 'y' || this.type === 'M') {
-      // we will just modify this time object rather that create a new one constantly
-      this.get = this.get_complex;
-      this.date = new Date(0);
-    } else {
-      this.get = this.get_simple;
-    }
-  }
-
-  Interval.prototype = {
-    toString: function () {
-      return this.string;
-    },
-    after: function(current_ms) {
-      return this.get(current_ms, 1);
-    },
-    before: function (current_ms) {
-      return this.get(current_ms, -1);
-    },
-    get_complex: function (current, delta) {
-      this.date.setTime(current);
-      switch(this.type) {
-      case 'M':
-        this.date.setUTCMonth(this.date.getUTCMonth() + delta);
-        break;
-      case 'y':
-        this.date.setUTCFullYear(this.date.getUTCFullYear() + delta);
-        break;
-      }
-      return this.date.getTime();
-    },
-    get_simple: function (current, delta) {
-      return current + (delta * this.ms);
-    }
-  };
-
-  return Interval;
-
-});
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/e3697a69/metron-ui/lib/public/app/panels/sparklines/module.html
----------------------------------------------------------------------
diff --git a/metron-ui/lib/public/app/panels/sparklines/module.html b/metron-ui/lib/public/app/panels/sparklines/module.html
deleted file mode 100755
index e34701c..0000000
--- a/metron-ui/lib/public/app/panels/sparklines/module.html
+++ /dev/null
@@ -1,10 +0,0 @@
-<div ng-controller='sparklines' ng-init="init()" style="min-height:{{panel.height || row.height}}">
-  <center><img ng-show='panel.loading && _.isUndefined(data)' src="img/load_big.gif"></center>
-
-
-  <div ng-repeat="series in data" style="margin-right:5px;text-align:center;display:inline-block">
-    <small class="strong"><i class="icon-circle" ng-style="{color: series.info.color}"></i> {{series.info.alias}}</small><br>
-    <div style="display:inline-block" sparklines-chart series="series" panel="panel"></div>
-  </div>
-
-</div>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/e3697a69/metron-ui/lib/public/app/panels/sparklines/module.js
----------------------------------------------------------------------
diff --git a/metron-ui/lib/public/app/panels/sparklines/module.js b/metron-ui/lib/public/app/panels/sparklines/module.js
deleted file mode 100755
index 41720f4..0000000
--- a/metron-ui/lib/public/app/panels/sparklines/module.js
+++ /dev/null
@@ -1,394 +0,0 @@
-/** @scratch /panels/5
- *
- * include::panels/sparklines.asciidoc[]
- */
-
-/** @scratch /panels/sparklines/0
- *
- * == Sparklines
- * Status: *Experimental*
- *
- * The sparklines panel shows tiny time charts. The purpose of these is not to give an exact value,
- * but rather to show the shape of the time series in a compact manner
- *
- */
-define([
-  'angular',
-  'app',
-  'jquery',
-  'lodash',
-  'kbn',
-  'moment',
-  './timeSeries',
-
-  'jquery.flot',
-  'jquery.flot.time'
-],
-function (angular, app, $, _, kbn, moment, timeSeries) {
-
-  'use strict';
-
-  var module = angular.module('kibana.panels.sparklines', []);
-  app.useModule(module);
-
-  module.controller('sparklines', function($scope, querySrv, dashboard, filterSrv) {
-    $scope.panelMeta = {
-      modals : [
-        {
-          description: "Inspect",
-          icon: "icon-info-sign",
-          partial: "app/partials/inspector.html",
-          show: $scope.panel.spyable
-        }
-      ],
-      editorTabs : [
-        {
-          title:'Queries',
-          src:'app/partials/querySelect.html'
-        }
-      ],
-      status  : "Experimental",
-      description : "Sparklines are tiny, simple, time series charts, shown separately. Because "+
-        "sparklines are uncluttered by grids, axis markers and colors, they are perfect for spotting"+
-        " change in a series"
-    };
-
-    // Set and populate defaults
-    var _d = {
-      /** @scratch /panels/sparklines/3
-       *
-       * === Parameters
-       * mode:: Value to use for the y-axis. For all modes other than count, +value_field+ must be
-       * defined. Possible values: count, mean, max, min, total.
-       */
-      mode          : 'count',
-      /** @scratch /panels/sparklines/3
-       * time_field:: x-axis field. This must be defined as a date type in Elasticsearch.
-       */
-      time_field    : '@timestamp',
-      /** @scratch /panels/sparklines/3
-       * value_field:: y-axis field if +mode+ is set to mean, max, min or total. Must be numeric.
-       */
-      value_field   : null,
-      /** @scratch /panels/sparklines/3
-       * interval:: Sparkline intervals are computed automatically as long as there is a time filter
-       * present. In the absence of a time filter, use this interval.
-       */
-      interval      : '5m',
-      /** @scratch /panels/sparklines/3
-       * spyable:: Show inspect icon
-       */
-      spyable       : true,
-      /** @scratch /panels/sparklines/5
-       *
-       * ==== Queries
-       * queries object:: This object describes the queries to use on this panel.
-       * queries.mode::: Of the queries available, which to use. Options: +all, pinned, unpinned, selected+
-       * queries.ids::: In +selected+ mode, which query ids are selected.
-       */
-      queries     : {
-        mode        : 'all',
-        ids         : []
-      },
-      /*
-       * locked:: whether to lock the query, preventing it from being affected by filters
-       */
-      locked: false
-    };
-
-    _.defaults($scope.panel,_d);
-
-    $scope.init = function() {
-
-      $scope.$on('refresh',function(){
-        $scope.get_data();
-      });
-
-      $scope.get_data();
-
-    };
-
-    $scope.interval_label = function(interval) {
-      return $scope.panel.auto_int && interval === $scope.panel.interval ? interval+" (auto)" : interval;
-    };
-
-    /**
-     * The time range effecting the panel
-     * @return {[type]} [description]
-     */
-    $scope.get_time_range = function () {
-      var range = $scope.range = filterSrv.timeRange('last');
-      return range;
-    };
-
-    $scope.get_interval = function () {
-      var interval = $scope.panel.interval,
-                      range;
-      range = $scope.get_time_range();
-      if (range) {
-        interval = kbn.secondsToHms(
-          kbn.calculate_interval(range.from, range.to, 10, 0) / 1000
-        );
-      }
-      $scope.panel.interval = interval || '10m';
-      return $scope.panel.interval;
-    };
-
-    /**
-     * Fetch the data for a chunk of a queries results. Multiple segments occur when several indicies
-     * need to be consulted (like timestamped logstash indicies)
-     *
-     * The results of this function are stored on the scope's data property. This property will be an
-     * array of objects with the properties info, time_series, and hits. These objects are used in the
-     * render_panel function to create the historgram.
-     *
-     * @param {number} segment   The segment count, (0 based)
-     * @param {number} query_id  The id of the query, generated on the first run and passed back when
-     *                            this call is made recursively for more segments
-     */
-    $scope.get_data = function(segment, query_id) {
-      var
-        _range,
-        _interval,
-        request,
-        queries,
-        results;
-
-      if (_.isUndefined(segment)) {
-        segment = 0;
-      }
-      delete $scope.panel.error;
-
-      // Make sure we have everything for the request to complete
-      if(dashboard.indices.length === 0) {
-        return;
-      }
-      _range = $scope.get_time_range();
-      _interval = $scope.get_interval(_range);
-
-      $scope.panelMeta.loading = true;
-      request = $scope.ejs.Request().indices(dashboard.indices[segment]);
-
-      $scope.panel.queries.ids = querySrv.idsByMode($scope.panel.queries);
-
-      queries = querySrv.getQueryObjs($scope.panel.queries.ids);
-
-      // Build the query
-      _.each(queries, function(q) {
-        var query = $scope.ejs.FilteredQuery(
-          querySrv.toEjsObj(q),
-          $scope.panel.locked ? null : filterSrv.getBoolFilter(filterSrv.ids())
-        );
-
-        var facet = $scope.ejs.DateHistogramFacet(q.id);
-
-        if($scope.panel.mode === 'count') {
-          facet = facet.field($scope.panel.time_field).global(true);
-        } else {
-          if(_.isNull($scope.panel.value_field)) {
-            $scope.panel.error = "In " + $scope.panel.mode + " mode a field must be specified";
-            return;
-          }
-          facet = facet.keyField($scope.panel.time_field).valueField($scope.panel.value_field);
-        }
-        facet = facet.interval(_interval).facetFilter($scope.ejs.QueryFilter(query));
-        request = request.facet(facet)
-          .size(0);
-      });
-
-      // Populate the inspector panel
-      $scope.populate_modal(request);
-
-      // Then run it
-      results = request.doSearch();
-
-      // Populate scope when we have results
-      results.then(function(results) {
-
-        $scope.panelMeta.loading = false;
-        if(segment === 0) {
-          $scope.hits = 0;
-          $scope.data = [];
-          query_id = $scope.query_id = new Date().getTime();
-        }
-
-        // Check for error and abort if found
-        if(!(_.isUndefined(results.error))) {
-          $scope.panel.error = $scope.parse_error(results.error);
-          return;
-        }
-
-        // Make sure we're still on the same query/queries
-        if($scope.query_id === query_id) {
-
-          var i = 0,
-            time_series,
-            hits;
-
-          _.each(queries, function(q) {
-            var query_results = results.facets[q.id];
-            // we need to initialize the data variable on the first run,
-            // and when we are working on the first segment of the data.
-            if(_.isUndefined($scope.data[i]) || segment === 0) {
-              var tsOpts = {
-                interval: _interval,
-                start_date: _range && _range.from,
-                end_date: _range && _range.to,
-                fill_style: 'minimal'
-              };
-              time_series = new timeSeries.ZeroFilled(tsOpts);
-              hits = 0;
-            } else {
-              time_series = $scope.data[i].time_series;
-              hits = $scope.data[i].hits;
-            }
-
-            // push each entry into the time series, while incrementing counters
-            _.each(query_results.entries, function(entry) {
-              time_series.addValue(entry.time, entry[$scope.panel.mode]);
-              hits += entry.count; // The series level hits counter
-              $scope.hits += entry.count; // Entire dataset level hits counter
-            });
-            $scope.data[i] = {
-              info: q,
-              range: $scope.range,
-              time_series: time_series,
-              hits: hits
-            };
-
-            i++;
-          });
-
-          // If we still have segments left, get them
-          if(segment < dashboard.indices.length-1) {
-            $scope.get_data(segment+1,query_id);
-          }
-        }
-      });
-    };
-
-    // I really don't like this function, too much dom manip. Break out into directive?
-    $scope.populate_modal = function(request) {
-      $scope.inspector = angular.toJson(JSON.parse(request.toString()),true);
-    };
-
-    $scope.set_refresh = function (state) {
-      $scope.refresh = state;
-    };
-
-    $scope.close_edit = function() {
-      if($scope.refresh) {
-        $scope.get_data();
-      }
-      $scope.refresh =  false;
-    };
-
-  });
-
-  module.directive('sparklinesChart', function() {
-    return {
-      restrict: 'A',
-      scope: {
-        series: '=',
-        panel: '='
-      },
-      template: '<div></div>',
-      link: function(scope, elem) {
-
-        // Receive render events
-        scope.$watch('series',function(){
-          render_panel();
-        });
-
-        // Re-render if the window is resized
-        angular.element(window).bind('resize', function(){
-          render_panel();
-        });
-
-        var derivative = function(series) {
-          return _.map(series, function(p,i) {
-            var _v;
-            if(i === 0 || p[1] === null) {
-              _v = [p[0],null];
-            } else {
-              _v = series[i-1][1] === null ? [p[0],null] : [p[0],p[1]-(series[i-1][1])];
-            }
-            return _v;
-          });
-        };
-
-        // Function for rendering panel
-        function render_panel() {
-          // IE doesn't work without this
-          elem.css({height:"30px",width:"100px"});
-
-          // Populate element
-          //try {
-          var options = {
-            legend: { show: false },
-            series: {
-              lines:  {
-                show: true,
-                // Silly, but fixes bug in stacked percentages
-                fill: 0,
-                lineWidth: 2,
-                steps: false
-              },
-              points: { radius:2 },
-              shadowSize: 1
-            },
-            yaxis: {
-              show: false
-            },
-            xaxis: {
-              show: false,
-              mode: "time",
-              min: _.isUndefined(scope.series.range.from) ? null : scope.series.range.from.getTime(),
-              max: _.isUndefined(scope.series.range.to) ? null : scope.series.range.to.getTime()
-            },
-            grid: {
-              hoverable: false,
-              show: false
-            }
-          };
-          // when rendering stacked bars, we need to ensure each point that has data is zero-filled
-          // so that the stacking happens in the proper order
-          var required_times = [];
-          required_times = scope.series.time_series.getOrderedTimes();
-          required_times = _.uniq(required_times.sort(function (a, b) {
-            // decending numeric sort
-            return a-b;
-          }), true);
-
-          var _d = {
-            data  : scope.panel.derivative ?
-             derivative(scope.series.time_series.getFlotPairs(required_times)) :
-             scope.series.time_series.getFlotPairs(required_times),
-            label : scope.series.info.alias,
-            color : elem.css('color'),
-          };
-
-          $.plot(elem, [_d], options);
-
-          //} catch(e) {
-          //  console.log(e);
-          //}
-        }
-
-        var $tooltip = $('<div>');
-        elem.bind("plothover", function (event, pos, item) {
-          if (item) {
-            $tooltip
-              .html(
-                item.datapoint[1] + " @ " + moment(item.datapoint[0]).format('YYYY-MM-DD HH:mm:ss')
-              )
-              .place_tt(pos.pageX, pos.pageY);
-          } else {
-            $tooltip.detach();
-          }
-        });
-      }
-    };
-  });
-
-});

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/e3697a69/metron-ui/lib/public/app/panels/sparklines/timeSeries.js
----------------------------------------------------------------------
diff --git a/metron-ui/lib/public/app/panels/sparklines/timeSeries.js b/metron-ui/lib/public/app/panels/sparklines/timeSeries.js
deleted file mode 100755
index ce9d191..0000000
--- a/metron-ui/lib/public/app/panels/sparklines/timeSeries.js
+++ /dev/null
@@ -1,216 +0,0 @@
-define([
-  './interval',
-  'lodash'
-],
-function (Interval, _) {
-  'use strict';
-
-  var ts = {};
-
-  // map compatable parseInt
-  function base10Int(val) {
-    return parseInt(val, 10);
-  }
-
-  // trim the ms off of a time, but return it with empty ms.
-  function getDatesTime(date) {
-    return Math.floor(date.getTime() / 1000)*1000;
-  }
-
-  /**
-   * Certain graphs require 0 entries to be specified for them to render
-   * properly (like the line graph). So with this we will caluclate all of
-   * the expected time measurements, and fill the missing ones in with 0
-   * @param {object} opts  An object specifying some/all of the options
-   *
-   * OPTIONS:
-   * @opt   {string}   interval    The interval notion describing the expected spacing between
-   *                                each data point.
-   * @opt   {date}     start_date  (optional) The start point for the time series, setting this and the
-   *                                end_date will ensure that the series streches to resemble the entire
-   *                                expected result
-   * @opt   {date}     end_date    (optional) The end point for the time series, see start_date
-   * @opt   {string}   fill_style  Either "minimal", or "all" describing the strategy used to zero-fill
-   *                                the series.
-   */
-  ts.ZeroFilled = function (opts) {
-    opts = _.defaults(opts, {
-      interval: '10m',
-      start_date: null,
-      end_date: null,
-      fill_style: 'minimal'
-    });
-
-    // the expected differenece between readings.
-    this.interval = new Interval(opts.interval);
-
-    // will keep all values here, keyed by their time
-    this._data = {};
-    this.start_time = opts.start_date && getDatesTime(opts.start_date);
-    this.end_time = opts.end_date && getDatesTime(opts.end_date);
-    this.opts = opts;
-  };
-
-  /**
-   * Add a row
-   * @param {int}  time  The time for the value, in
-   * @param {any}  value The value at this time
-   */
-  ts.ZeroFilled.prototype.addValue = function (time, value) {
-    if (time instanceof Date) {
-      time = getDatesTime(time);
-    } else {
-      time = base10Int(time);
-    }
-    if (!isNaN(time)) {
-      this._data[time] = (_.isUndefined(value) ? 0 : value);
-    }
-    this._cached_times = null;
-  };
-
-  /**
-   * Get an array of the times that have been explicitly set in the series
-   * @param  {array} include (optional) list of timestamps to include in the response
-   * @return {array} An array of integer times.
-   */
-  ts.ZeroFilled.prototype.getOrderedTimes = function (include) {
-    var times = _.map(_.keys(this._data), base10Int);
-    if (_.isArray(include)) {
-      times = times.concat(include);
-    }
-    return _.uniq(times.sort(function (a, b) {
-      // decending numeric sort
-      return a - b;
-    }), true);
-  };
-
-  /**
-   * return the rows in the format:
-   * [ [time, value], [time, value], ... ]
-   *
-   * Heavy lifting is done by _get(Min|Default|All)FlotPairs()
-   * @param  {array} required_times  An array of timestamps that must be in the resulting pairs
-   * @return {array}
-   */
-  ts.ZeroFilled.prototype.getFlotPairs = function (required_times) {
-    var times = this.getOrderedTimes(required_times),
-      strategy,
-      pairs;
-
-    if(this.opts.fill_style === 'all') {
-      strategy = this._getAllFlotPairs;
-    } else if(this.opts.fill_style === 'null') {
-      strategy = this._getNullFlotPairs;
-    } else {
-      strategy = this._getMinFlotPairs;
-    }
-
-    pairs = _.reduce(
-      times,    // what
-      strategy, // how
-      [],       // where
-      this      // context
-    );
-
-    // if the first or last pair is inside either the start or end time,
-    // add those times to the series with null values so the graph will stretch to contain them.
-    // Removing, flot 0.8.1's max/min params satisfy this
-    /*
-    if (this.start_time && (pairs.length === 0 || pairs[0][0] > this.start_time)) {
-      pairs.unshift([this.start_time, null]);
-    }
-    if (this.end_time && (pairs.length === 0 || pairs[pairs.length - 1][0] < this.end_time)) {
-      pairs.push([this.end_time, null]);
-    }
-    */
-
-    return pairs;
-  };
-
-  /**
-   * ** called as a reduce stragegy in getFlotPairs() **
-   * Fill zero's on either side of the current time, unless there is already a measurement there or
-   * we are looking at an edge.
-   * @return {array} An array of points to plot with flot
-   */
-  ts.ZeroFilled.prototype._getMinFlotPairs = function (result, time, i, times) {
-    var next, expected_next, prev, expected_prev;
-
-    // check for previous measurement
-    if (i > 0) {
-      prev = times[i - 1];
-      expected_prev = this.interval.before(time);
-      if (prev < expected_prev) {
-        result.push([expected_prev, 0]);
-      }
-    }
-
-    // add the current time
-    result.push([ time, this._data[time] || 0]);
-
-    // check for next measurement
-    if (times.length > i) {
-      next = times[i + 1];
-      expected_next = this.interval.after(time);
-      if (next > expected_next) {
-        result.push([expected_next, 0]);
-      }
-    }
-
-    return result;
-  };
-
-  /**
-   * ** called as a reduce stragegy in getFlotPairs() **
-   * Fill zero's to the right of each time, until the next measurement is reached or we are at the
-   * last measurement
-   * @return {array}  An array of points to plot with flot
-   */
-  ts.ZeroFilled.prototype._getAllFlotPairs = function (result, time, i, times) {
-    var next, expected_next;
-
-    result.push([ times[i], this._data[times[i]] || 0 ]);
-    next = times[i + 1];
-    expected_next = this.interval.after(time);
-    for(; times.length > i && next > expected_next; expected_next = this.interval.after(expected_next)) {
-      result.push([expected_next, 0]);
-    }
-
-    return result;
-  };
-
-  /**
-   * ** called as a reduce stragegy in getFlotPairs() **
-   * Same as min, but fills with nulls
-   * @return {array}  An array of points to plot with flot
-   */
-  ts.ZeroFilled.prototype._getNullFlotPairs = function (result, time, i, times) {
-    var next, expected_next, prev, expected_prev;
-
-    // check for previous measurement
-    if (i > 0) {
-      prev = times[i - 1];
-      expected_prev = this.interval.before(time);
-      if (prev < expected_prev) {
-        result.push([expected_prev, null]);
-      }
-    }
-
-    // add the current time
-    result.push([ time, this._data[time] || null]);
-
-    // check for next measurement
-    if (times.length > i) {
-      next = times[i + 1];
-      expected_next = this.interval.after(time);
-      if (next > expected_next) {
-        result.push([expected_next, null]);
-      }
-    }
-
-    return result;
-  };
-
-
-  return ts;
-});
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/e3697a69/metron-ui/lib/public/app/panels/stats/editor.html
----------------------------------------------------------------------
diff --git a/metron-ui/lib/public/app/panels/stats/editor.html b/metron-ui/lib/public/app/panels/stats/editor.html
deleted file mode 100755
index 6769b5e..0000000
--- a/metron-ui/lib/public/app/panels/stats/editor.html
+++ /dev/null
@@ -1,53 +0,0 @@
-<!--
-   Licensed to the Apache Software Foundation (ASF) under one
-   or more contributor license agreements.  See the NOTICE file
-   distributed with this work for additional information
-   regarding copyright ownership.  The ASF licenses this file
-   to you under the Apache License, Version 2.0 (the
-   "License"); you may not use this file except in compliance
-   with the License.  You may obtain a copy of the License at
-     http://www.apache.org/licenses/LICENSE-2.0
-   Unless required by applicable law or agreed to in writing,
-   software distributed under the License is distributed on an
-   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-   KIND, either express or implied.  See the License for the
-   specific language governing permissions and limitations
-   under the License.
--->
-
-<div class="row-fluid">
-    <h5>Details</h5>
-    <div class="editor-option">
-      <label class="small">Function</label>
-      <select ng-change="set_refresh(true)" class="input-small" ng-model="panel.mode" ng-options="f for f in ['count','min','mean','max','total']"></select>
-    </div>
-    <div class="editor-option">
-      <label class="small">Field <tip>This field must contain a numeric value</tip></label>
-        <input ng-change="set_refresh(true)" placeholder="Start typing" bs-typeahead="fields.list" type="text" class="input-large" ng-model="panel.field">
-    </div>
-    <div class="editor-option">
-      <label class="small">Unit</label>
-        <input type="text" class="input-large" ng-model="panel.unit">
-    </div>
-    <h5>Formating</h5>
-    <div class="editor-option">
-      <label class="small">Format</label>
-      <select ng-change="set_refresh(true)" class="input-small" ng-model="panel.format" ng-options="f for f in ['number','float','money','bytes']"></select>
-    </div>
-    <div class="editor-option">
-      <label class="small">Font Size</label>
-      <select class="input-mini" ng-model="panel.style['font-size']" ng-options="f for f in ['7pt','8pt','9pt','10pt','12pt','14pt','16pt','18pt','20pt','24pt','28pt','32pt','36pt','42pt','48pt','52pt','60pt','72pt']"></select></span>
-    </div>
-    <div class="editor-option">
-      <label class="small">Display Breakdowns</label>
-      <select class="input-mini" ng-model="panel.display_breakdown" ng-options="f for f in ['yes', 'no']"></select></span>
-    </div>
-    <div class="editor-option">
-      <label class="small">Label column name</label>
-        <input type="text" class="input-large" ng-model="panel.label_name">
-    </div>
-    <div class="editor-option">
-      <label class="small">Value column name</label>
-        <input type="text" class="input-large" ng-model="panel.value_name">
-    </div>
-</div>

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/e3697a69/metron-ui/lib/public/app/panels/stats/module.html
----------------------------------------------------------------------
diff --git a/metron-ui/lib/public/app/panels/stats/module.html b/metron-ui/lib/public/app/panels/stats/module.html
deleted file mode 100755
index 9c6e46e..0000000
--- a/metron-ui/lib/public/app/panels/stats/module.html
+++ /dev/null
@@ -1,32 +0,0 @@
-<!--
-   Licensed to the Apache Software Foundation (ASF) under one
-   or more contributor license agreements.  See the NOTICE file
-   distributed with this work for additional information
-   regarding copyright ownership.  The ASF licenses this file
-   to you under the Apache License, Version 2.0 (the
-   "License"); you may not use this file except in compliance
-   with the License.  You may obtain a copy of the License at
-     http://www.apache.org/licenses/LICENSE-2.0
-   Unless required by applicable law or agreed to in writing,
-   software distributed under the License is distributed on an
-   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-   KIND, either express or implied.  See the License for the
-   specific language governing permissions and limitations
-   under the License.
--->
-
-<div ng-controller="stats" ng-init="init()">
-  <h1 ng-style="panel.style" style="text-align: center; line-height: .6em">{{data.value|formatstats:panel.format}} <small style="font-size: .5em; line-height: 0;">{{panel.unit}}</small></h1>
-  <table ng-show="panel.display_breakdown == 'yes'" cellspacing="0" class="table-hover table table-condensed" style="margin-top: 38px;">
-    <tbody>
-      <tr>
-       <th><a href="" ng-click="set_sort('label')" ng-class="{'icon-chevron-down': panel.sort_field == 'label' && panel.sort_reverse == true, 'icon-chevron-up': panel.sort_field == 'label' && panel.sort_reverse == false}"> {{panel.label_name}} </a></th>
-       <th style="text-align: right;"><a href="" ng-click="set_sort('value')" ng-class="{'icon-chevron-down': panel.sort_field == 'value' && panel.sort_reverse == true, 'icon-chevron-up': panel.sort_field == 'value' && panel.sort_reverse == false}"> {{panel.value_name}} </a></th>
-      </tr>
-      <tr ng-repeat="item in data.rows | orderBy:panel.sort_field:panel.sort_reverse">
-        <td><i class="icon-circle" ng-style="{color:item.color}"></i> {{item.label}}</td>
-        <td style="text-align: right;">{{item.value|formatstats:panel.format}} {{panel.unit}}</td>
-      </tr>
-    </tbody>
-  </table>
-</div>

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/e3697a69/metron-ui/lib/public/app/panels/stats/module.js
----------------------------------------------------------------------
diff --git a/metron-ui/lib/public/app/panels/stats/module.js b/metron-ui/lib/public/app/panels/stats/module.js
deleted file mode 100755
index 6977e40..0000000
--- a/metron-ui/lib/public/app/panels/stats/module.js
+++ /dev/null
@@ -1,203 +0,0 @@
-/*
-
-  ## Stats Module
-
-  ### Parameters
-  * format :: The format of the value returned. (Default: number)
-  * style :: The font size of the main number to be displayed.
-  * mode :: The aggergate value to use for display
-  * spyable ::  Dislay the 'eye' icon that show the last elasticsearch query
-
-*/
-define([
-  'angular',
-  'app',
-  'lodash',
-  'jquery',
-  'kbn',
-  'numeral'
-], function (
-  angular,
-  app,
-  _,
-  $,
-  kbn,
-  numeral
-) {
-
-  'use strict';
-
-  var module = angular.module('kibana.panels.stats', []);
-  app.useModule(module);
-
-  module.controller('stats', function ($scope, querySrv, dashboard, filterSrv) {
-
-    $scope.panelMeta = {
-      modals : [
-        {
-          description: "Inspect",
-          icon: "icon-info-sign",
-          partial: "app/partials/inspector.html",
-          show: $scope.panel.spyable
-        }
-      ],
-      editorTabs : [
-        {title:'Queries', src:'app/partials/querySelect.html'}
-      ],
-      status: 'Beta',
-      description: 'A statistical panel for displaying aggregations using the Elastic Search statistical facet query.'
-    };
-
-
-    var defaults = {
-      queries     : {
-        mode        : 'all',
-        ids         : []
-      },
-      style   : { "font-size": '24pt'},
-      format: 'number',
-      mode: 'count',
-      display_breakdown: 'yes',
-      sort_field: '',
-      sort_reverse: false,
-      label_name: 'Query',
-      value_name: 'Value',
-      spyable     : true,
-      /*
-       * locked:: whether to lock the query, preventing it from being affected by filters
-       */
-      locked: false,
-    };
-
-    _.defaults($scope.panel, defaults);
-
-    $scope.init = function () {
-      $scope.ready = false;
-      $scope.$on('refresh', function () {
-        $scope.get_data();
-      });
-      $scope.get_data();
-    };
-
-    $scope.set_sort = function(field) {
-      if($scope.panel.sort_field === field && $scope.panel.sort_reverse === false) {
-        $scope.panel.sort_reverse = true;
-      } else if($scope.panel.sort_field === field && $scope.panel.sort_reverse === true) {
-        $scope.panel.sort_field = '';
-        $scope.panel.sort_reverse = false;
-      } else {
-        $scope.panel.sort_field = field;
-        $scope.panel.sort_reverse = false;
-      }
-    };
-
-    $scope.get_data = function () {
-      if(dashboard.indices.length === 0) {
-        return;
-      }
-
-      $scope.panelMeta.loading = true;
-
-      var request,
-        results,
-        boolQuery,
-        queries;
-
-      request = $scope.ejs.Request().indices(dashboard.indices);
-
-      $scope.panel.queries.ids = querySrv.idsByMode($scope.panel.queries);
-      queries = querySrv.getQueryObjs($scope.panel.queries.ids);
-
-
-      // This could probably be changed to a BoolFilter
-      boolQuery = $scope.ejs.BoolQuery();
-      _.each(queries,function(q) {
-        boolQuery = boolQuery.should(querySrv.toEjsObj(q));
-      });
-
-      request = request
-        .facet($scope.ejs.StatisticalFacet('stats')
-          .field($scope.panel.field)
-          .facetFilter($scope.ejs.QueryFilter(
-            $scope.ejs.FilteredQuery(
-              boolQuery,
-              $scope.panel.locked ? null : filterSrv.getBoolFilter(filterSrv.ids())
-              )))).size(0);
-
-      _.each(queries, function (q) {
-        var alias = q.alias || q.query;
-        var query = $scope.ejs.BoolQuery();
-        query.should(querySrv.toEjsObj(q));
-        request.facet($scope.ejs.StatisticalFacet('stats_'+alias)
-          .field($scope.panel.field)
-          .facetFilter($scope.ejs.QueryFilter(
-            $scope.ejs.FilteredQuery(
-              query,
-              $scope.panel.locked ? null : filterSrv.getBoolFilter(filterSrv.ids())
-            )
-          ))
-        );
-      });
-
-      // Populate the inspector panel
-      $scope.inspector = angular.toJson(JSON.parse(request.toString()),true);
-
-      results = request.doSearch();
-
-      results.then(function(results) {
-        $scope.panelMeta.loading = false;
-        var value = results.facets.stats[$scope.panel.mode];
-
-        var rows = queries.map(function (q) {
-          var alias = q.alias || q.query;
-          var obj = _.clone(q);
-          obj.label = alias;
-          obj.Label = alias.toLowerCase(); //sort field
-          obj.value = results.facets['stats_'+alias][$scope.panel.mode];
-          obj.Value = results.facets['stats_'+alias][$scope.panel.mode]; //sort field
-          return obj;
-        });
-
-        $scope.data = {
-          value: value,
-          rows: rows
-        };
-
-        $scope.$emit('render');
-      });
-    };
-
-    $scope.set_refresh = function (state) {
-      $scope.refresh = state;
-    };
-
-    $scope.close_edit = function() {
-      if($scope.refresh) {
-        $scope.get_data();
-      }
-      $scope.refresh =  false;
-      $scope.$emit('render');
-    };
-
-  });
-
-  module.filter('formatstats', function(){
-    return function (value,format) {
-      switch (format) {
-      case 'money':
-        value = numeral(value).format('$0,0.00');
-        break;
-      case 'bytes':
-        value = numeral(value).format('0.00b');
-        break;
-      case 'float':
-        value = numeral(value).format('0.000');
-        break;
-      default:
-        value = numeral(value).format('0,0');
-      }
-      return value;
-    };
-  });
-
-});

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/e3697a69/metron-ui/lib/public/app/panels/table/editor.html
----------------------------------------------------------------------
diff --git a/metron-ui/lib/public/app/panels/table/editor.html b/metron-ui/lib/public/app/panels/table/editor.html
deleted file mode 100755
index 8988a9a..0000000
--- a/metron-ui/lib/public/app/panels/table/editor.html
+++ /dev/null
@@ -1,45 +0,0 @@
-  <div class="row-fluid">
-    <div class="span6 section">
-      <h5>Options</h5>
-      <div class="editor-option">
-        <label class="small">Header</label><input type="checkbox" ng-model="panel.header" ng-checked="panel.header">
-      </div>
-      <div class="editor-option">
-        <label class="small">Sorting</label><input type="checkbox" ng-model="panel.sortable" ng-checked="panel.sortable">
-      </div>
-      <div class="editor-option" style="white-space:nowrap" ng-show='panel.sortable'>
-        <label class="small">Sort</label>
-        <input class="input-small" bs-typeahead="fields.list" ng-model="panel.sort[0]" type="text"></input>
-        <i ng-click="set_sort(panel.sort[0])" ng-class="{'icon-chevron-up': panel.sort[1] == 'asc','icon-chevron-down': panel.sort[1] == 'desc'}"></i>
-      </div>
-      <div class="editor-option"><label class="small">Font Size</label>
-        <select class="input-small" ng-model="panel.style['font-size']" ng-options="f for f in ['7pt','8pt','9pt','10pt','12pt','14pt','16pt','18pt','20pt','24pt','28pt','32pt','36pt','42pt','48pt','52pt','60pt','72pt']"></select></span>
-      </div>
-      <div class="editor-option">
-        <label class="small">Trim Factor <tip>Trim fields to this long divided by # of rows. Requires data refresh.</tip></label>
-        <input type="number" class="input-small" ng-model="panel.trimFactor" ng-change="set_refresh(true)">
-      </div>
-      <br>
-      <div class="editor-option">
-        <label class="small">Local Time <tip>Adjust time field to browser's local time</tip></label><input type="checkbox" ng-change="set_refresh(true)" ng-model="panel.localTime" ng-checked="panel.localTime">
-      </div>
-      <div class="editor-option" ng-show="panel.localTime">
-        <label class="small">Time Field</label>
-        <input type="text" class="input-small" ng-model="panel.timeField" ng-change="set_refresh(true)" bs-typeahead="fields.list">
-      </div>
-    </div>
-    <div class="section span6">
-      <h5>Columns</h5>
-      <form class="input-append editor-option">
-        <input bs-typeahead="fields.list" type="text" class="input-small" ng-model='newfield'>
-        <button class="btn" ng-click="panel.fields = _.toggleInOut(panel.fields,newfield);newfield=''"><i class="icon-plus"></i></button>
-      </form><br>
-      <span style="margin-left:3px" ng-repeat="field in panel.fields" class="label">{{field}} <i class="pointer icon-remove-sign" ng-click="panel.fields = _.toggleInOut(panel.fields,field)"></i></span>
-      <h5>Highlighted Fields</h5>
-      <form class="input-append editor-option">
-        <input bs-typeahead="fields.list" type="text" class="input-small" ng-model='newhighlight' ng-change="set_refresh(true)">
-        <button class="btn" ng-click="panel.highlight = _.toggleInOut(panel.highlight,newhighlight);newhighlight=''"><i class="icon-plus"></i></button>
-      </form><br>
-      <span style="margin-left:3px" ng-repeat="field in panel.highlight" class="label">{{field}} <i class="pointer icon-remove-sign" ng-click="panel.highlight = _.toggleInOut(panel.highlight,field);set_refresh(true)" ></i></span>
-    </div>
-  </div>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/e3697a69/metron-ui/lib/public/app/panels/table/micropanel.html
----------------------------------------------------------------------
diff --git a/metron-ui/lib/public/app/panels/table/micropanel.html b/metron-ui/lib/public/app/panels/table/micropanel.html
deleted file mode 100755
index d398303..0000000
--- a/metron-ui/lib/public/app/panels/table/micropanel.html
+++ /dev/null
@@ -1,64 +0,0 @@
-<a class="close" ng-click="dismiss()" href="">×</a>
-<style>
-
-</style>
-<span>
-  <i class="pointer icon-search" ng-click="fieldExists(micropanel.field,'must');dismiss();" bs-tooltip="'Find events with this field'"></i>
-  <i class="pointer icon-ban-circle" ng-click="fieldExists(micropanel.field,'mustNot');dismiss();" bs-tooltip="'Find events without this field'"></i>
-  <strong>Micro Analysis of {{micropanel.field}}</strong>
-  <span ng-show="micropanel.hasArrays">
-    as
-    <a class="link" ng-class="{'strong':micropanel.grouped}" ng-click="toggle_micropanel(micropanel.field,true)">Groups</a> /
-    <a class="link" ng-class="{'strong':!micropanel.grouped}" ng-click="toggle_micropanel(micropanel.field,false)">Singles</a>
-  </span>
-</span>
-<table style="width:100%;table-layout:fixed" class='table table-striped table-unpadded'>
-  <thead>
-    <th style="width:15px"></th>
-    <th style="width:260px">Value</th>
-    <th style="width:40px">Action</th>
-    <th style="width:100px;text-align:right">Count / {{micropanel.count}} events</th>
-  </thead>
-  <tbody>
-    <tr ng-repeat='field in micropanel.values'>
-      <td>{{$index+1}}.</td>
-      <td style="word-wrap:break-word">{{{true: "__blank__", false:field[0] }[(field[0] == '' || field[0] == undefined) && field[0] != 0]|tableTruncate:panel.trimFactor:3}}</td>
-      <td>
-        <i class="pointer icon-search" ng-click="build_search(micropanel.field,field[0]);dismiss();"></i>
-        <i class="pointer icon-ban-circle" ng-click="build_search(micropanel.field,field[0],true);dismiss();"></i>
-      </td>
-      <td class="progress" style="position:relative">
-        <style scoped>
-          .progress {
-            overflow: visible;
-          }
-        </style>
-        <div bs-tooltip="percent(field[1],data.length)" class="bar" ng-class="micropanelColor($index)" ng-style="{width: (field[1]/data.length) > 1 ? '100%' : percent(field[1],data.length)}"></div>
-        <span style="position:absolute;right:20px;">{{field[1]}}</span>
-      </td>
-    </tr>
-  </tbody>
-</table>
-<div class="progress nomargin" ng-show="micropanel.grouped">
-  <div ng-repeat='field in micropanel.values' bs-tooltip="$index+1+'. ('+percent(field[1],data.length)+')'" class="bar {{micropanelColor($index)}}" ng-style="{width: percent(field[1],data.length)};"></div>
-</div>
-<div>
-  <span ng-repeat="field in micropanel.related|orderBy:'count':true|limitTo:micropanel.limit track by $index"><a ng-click="toggle_field(field.name)" bs-tooltip="'Toggle {{field.name}} column'">{{field.name}}</a> ({{Math.round((field.count / micropanel.count) * 100)}}%), </span>
-  <a class="link" ng-show="micropanel.related.length > micropanel.limit" ng-click="micropanel.limit = micropanel.limit + 10">More <i class="icon-caret-right"></i></a>
-</div>
-<div class="row-fluid">
-  <div class="span12">
-    <div class="btn-group">
-      <a class="btn dropdown-toggle pointer" data-toggle="dropdown">
-        <i class="icon-list-ol"></i> Terms
-        <span class="caret"></span>
-      </a>
-      <ul class="dropdown-menu">
-        <li><a ng-click="termsModal(field,'bar');dismiss();">Bar</a></li>
-        <li><a ng-click="termsModal(field,'pie');dismiss();">Pie</a></li>
-        <li><a ng-click="termsModal(field,'table');dismiss();">Table</a></li>
-      </ul>
-    </div>
-
-  </div>
-</div>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/e3697a69/metron-ui/lib/public/app/panels/table/modal.html
----------------------------------------------------------------------
diff --git a/metron-ui/lib/public/app/panels/table/modal.html b/metron-ui/lib/public/app/panels/table/modal.html
deleted file mode 100755
index 9d097dc..0000000
--- a/metron-ui/lib/public/app/panels/table/modal.html
+++ /dev/null
@@ -1,43 +0,0 @@
-  <div class="modal-body">
-    <style>
-      .timepicker-to-column {
-        margin-top: 10px;
-      }
-
-      .timepicker-input input {
-        outline: 0 !important;
-        border: 0px !important;
-        -webkit-box-shadow: 0;
-        -moz-box-shadow: 0;
-        box-shadow: 0;
-        position: relative;
-      }
-
-      .timepicker-input input::-webkit-outer-spin-button,
-      .timepicker-input input::-webkit-inner-spin-button {
-          -webkit-appearance: none;
-          margin: 0;
-      }
-
-      input.timepicker-date {
-        width: 90px;
-      }
-      input.timepicker-hms {
-        width: 20px;
-      }
-      input.timepicker-ms {
-        width: 25px;
-      }
-      div.timepicker-now {
-        float: right;
-      }
-    </style>
-    <h4>Top 10 terms in field {{modalField}}</h4>
-    <kibana-simple-panel ng-click="dismiss();" type="'{{facetType}}'" panel='{{facetPanel}}' ng-cloak></kibana-simple-panel>
-  </div>
-
-  <div class="modal-footer">
-    <form name="input" style="margin-bottom:0">
-    <button ng-click="dismiss();" class="btn btn-danger">Close</button>
-    </form>
-  </div>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/e3697a69/metron-ui/lib/public/app/panels/table/module.html
----------------------------------------------------------------------
diff --git a/metron-ui/lib/public/app/panels/table/module.html b/metron-ui/lib/public/app/panels/table/module.html
deleted file mode 100755
index 233bb2d..0000000
--- a/metron-ui/lib/public/app/panels/table/module.html
+++ /dev/null
@@ -1,184 +0,0 @@
-<div ng-controller='table' ng-init='init()'>
-  <style>
-    .table-doc-table {
-      margin-left: 0px !important;
-      overflow-y: auto;
-    }
-    .table-sidebar {
-      width: 200px;
-      display: table-cell;
-      padding-right: 10px;
-    }
-    .table-main {
-      width: 100%;
-      display: table-cell;
-    }
-    .table-container {
-      display: table;
-      height: 100px;
-      width: 100%;
-      table-layout: fixed;
-    }
-    .table-fieldname {
-      white-space: nowrap;
-    }
-
-    .table-fieldname a {
-      word-wrap:break-word;
-      white-space: normal;
-    }
-
-    .table-details {
-      table-layout: fixed;
-    }
-
-    .table-details-field {
-      width: 200px;
-    }
-
-    .table-details-action {
-      width: 60px;
-      text-align: center;
-    }
-
-    .table-details-value {
-    }
-
-    .table-field-value {
-      white-space: pre-wrap;
-    }
-  </style>
-
-  <div class="table-container">
-
-    <div bindonce ng-class="{'table-sidebar':panel.field_list}" ng-if="panel.field_list">
-      <div class="sidebar-nav">
-
-        <strong>Fields <i class=" icon-chevron-sign-left pointer " ng-click="panel.field_list = !panel.field_list" bs-tooltip="'Hide field list'"></i></strong><p>
-
-        <div class="small">
-          <span class="link small" ng-click="panel.all_fields = true;" ng-if="fields.list.length" ng-class="{strong:panel.all_fields}">
-            All ({{fields.list.length}})</span> /
-          <span class="link small" ng-click="panel.all_fields = false;" ng-class="{strong:!panel.all_fields}">
-            Current ({{current_fields.length || 0}})</span>
-        </div>
-
-        <div><input type="text" class="input-medium" placeholder="Type to filter..." ng-model="fieldFilter">
-        </div>
-
-        <div ng-show="panel.all_fields" class="small muted" style="margin-bottom:10px">
-          <strong>Note</strong> These fields have been<br>
-          extracted from your mapping.<br>
-          Not all fields may be available<br>
-          in your source document.
-        </div>
-
-        <ul class="unstyled" style="{{panel.overflow}}:{{panel.height || row.height}};overflow-y:auto;overflow-x:hidden;" ng-if="panel.all_fields">
-          <li class="table-fieldname" ng-style="panel.style" ng-repeat="field in fields.list|filter:fieldFilter|orderBy:identity">
-            <i class="pointer" ng-class="{'icon-check': columns[field],'icon-check-empty': _.isUndefined(columns[field])}" ng-click="toggle_field(field)"></i>
-            <a class="pointer" data-unique="1" bs-popover="'app/panels/table/micropanel.html'" data-placement="rightTop" ng-click="toggle_micropanel(field,true)" ng-class="{label: columns[field]}" bo-text="field"></a>
-          </li>
-        </ul>
-
-        <ul class="unstyled" style="{{panel.overflow}}:{{panel.height || row.height}};overflow-y:auto;overflow-x:hidden;" ng-if="!panel.all_fields">
-          <li class="table-fieldname"  ng-style="panel.style" ng-repeat="field in current_fields|filter:fieldFilter|orderBy:identity">
-            <i class="pointer" ng-class="{'icon-check': columns[field],'icon-check-empty': _.isUndefined(columns[field])}" ng-click="toggle_field(field)"></i>
-            <a class="pointer" data-unique="1" bs-popover="'app/panels/table/micropanel.html'" data-placement="rightTop" ng-click="toggle_micropanel(field,true)" ng-class="{label: columns[field]}" bo-text="field"></a>
-          </li>
-        </ul>
-
-      </div>
-    </div>
-
-    <div style="{{panel.overflow}}:{{panel.height || row.height}};" ng-class="{'table-main':panel.field_list}" class="table-doc-table">
-
-      <div class="table-facet" ng-if="modalField">
-        <h4><button class="btn btn-mini btn-danger" ng-click="closeFacet();">close</button> Top 10 terms in field {{modalField}}</h4>
-        <kibana-simple-panel type="'{{facetType}}'" panel='{{facetPanel}}' ng-cloak></kibana-simple-panel>
-      </div>
-
-      <i class="pull-left icon-chevron-sign-right pointer" ng-click="panel.field_list = !panel.field_list" bs-tooltip="'Show field list'" ng-show="!panel.field_list"></i>
-      <div class="row-fluid" ng-show="panel.paging">
-        <div class="span1 offset1" style="text-align:right">
-          <i ng-click="panel.offset = 0" ng-show="panel.offset > 0" class='icon-circle-arrow-left pointer'></i>
-          <i ng-click="panel.offset = (panel.offset - panel.size)" ng-show="panel.offset > 0" class='icon-arrow-left pointer'></i>
-        </div>
-        <div class="span8" style="text-align:center">
-          <strong>{{panel.offset}}</strong> to <strong>{{panel.offset + data.slice(panel.offset,panel.offset+panel.size).length}}</strong>
-          <small> of {{data.length}} available for paging</small>
-        </div>
-        <div class="span1" style="text-align:left">
-          <i ng-click="panel.offset = (panel.offset + panel.size)" ng-show="data.length > panel.offset+panel.size" class='icon-arrow-right pointer'></i>
-        </div>
-      </div>
-      <table class="table-hover table table-condensed" ng-style="panel.style">
-        <thead ng-show="panel.header">
-          <th ng-show="panel.fields.length<1">_source (select columns from the list to the left)</th>
-          <th style="white-space:nowrap" ng-repeat="field in panel.fields">
-            <i ng-show="!$first" class="pointer link icon-caret-left" ng-click="_.move(panel.fields,$index,$index-1)"></i>
-
-            <span  class="pointer" ng-click="set_sort(field)" ng-show='panel.sortable'>
-              {{field}}
-              <i ng-show='field == panel.sort[0]' class="pointer link" ng-class="{'icon-chevron-up': panel.sort[1] == 'asc','icon-chevron-down': panel.sort[1] == 'desc'}"></i>
-            </span>
-            <span ng-show='!panel.sortable'>{{field}}</span>
-            <i ng-show="!$last" class="pointer link icon-caret-right" ng-click="_.move(panel.fields,$index,$index+1)"></i>
-          </th>
-
-        </thead>
-        <tbody bindonce ng-repeat="event in data| slice:panel.offset:panel.offset+panel.size" ng-class-odd="'odd'">
-          <tr ng-click="toggle_details(event)" class="pointer">
-            <td ng-if="panel.fields.length<1" bo-text="event._source|stringify|tableTruncate:panel.trimFactor:1"></td>
-            <td ng-show="panel.fields.length>0" ng-repeat="field in panel.fields">
-              <span ng-if="!panel.localTime || panel.timeField != field" bo-html="(event.kibana.highlight[field]||event.kibana._source[field]) |tableHighlight | tableTruncate:panel.trimFactor:panel.fields.length" class="table-field-value"></span>
-              <span ng-if="panel.localTime && panel.timeField == field" bo-html="event.sort[1]|tableLocalTime:event" class="table-field-value"></span>
-            </td>
-          </tr>
-          <tr ng-if="event.kibana.details">
-            <td colspan={{panel.fields.length}} ng-switch="event.kibana.view">
-              <span>
-                View:
-                <a class="link" ng-class="{'strong':event.kibana.view == 'table'}" ng-click="event.kibana.view = 'table'">Table</a> /
-                <a class="link" ng-class="{'strong':event.kibana.view == 'json'}" ng-click="event.kibana.view = 'json'">JSON</a> /
-                <a class="link" ng-class="{'strong':event.kibana.view == 'raw'}" ng-click="event.kibana.view = 'raw'">Raw</a>
-                <i class="link pull-right icon-chevron-up" ng-click="toggle_details(event)"></i>
-              </span>
-              <table class='table table-bordered table-condensed table-details' ng-switch-when="table">
-                <thead>
-                  <th class="table-details-field">Field</th>
-                  <th class="table-details-action">Action</th>
-                  <th class="table-details-value">Value</th>
-                </thead>
-                <tr ng-repeat="(key,value) in event.kibana._source track by $index" ng-class-odd="'odd'">
-                  <td style="word-wrap:break-word" bo-text="key"></td>
-                  <td style="white-space:nowrap">
-                    <i class='icon-search pointer' ng-click="build_search(key,value)" bs-tooltip="'Add filter to match this value'"></i>
-                    <i class='icon-ban-circle pointer' ng-click="build_search(key,value,true)" bs-tooltip="'Add filter to NOT match this value'"></i>
-                    <i class="pointer icon-th" ng-click="toggle_field(key)" bs-tooltip="'Toggle table column'"></i>
-                  </td>
-                  <!-- At some point we need to create a more efficient way of applying the filter pipeline -->
-                  <td style="white-space:pre-wrap;word-wrap:break-word" bo-html="value|noXml|urlLink|stringify"></td>
-                </tr>
-              </table>
-              <pre style="white-space:pre-wrap;word-wrap:break-word"  bo-html="without_kibana(event)|tableJson:2" ng-switch-when="json"></pre>
-              <pre bo-html="without_kibana(event)|tableJson:1" ng-switch-when="raw"></pre>
-            </td>
-          </tr>
-        </tbody>
-      </table>
-      <div class="row-fluid" ng-show="panel.paging">
-        <div class="span1 offset3" style="text-align:right">
-          <i ng-click="panel.offset = 0" ng-show="panel.offset > 0" class='icon-circle-arrow-left pointer'></i>
-          <i ng-click="panel.offset = (panel.offset - panel.size)" ng-show="panel.offset > 0" class='icon-arrow-left pointer'></i>
-        </div>
-        <div class="span4" style="text-align:center">
-          <strong>{{panel.offset}}</strong> to <strong>{{panel.offset + data.slice(panel.offset,panel.offset+panel.size).length}}</strong>
-          <small> of {{data.length}} available for paging</small>
-        </div>
-        <div class="span1" style="text-align:left">
-          <i ng-click="panel.offset = (panel.offset + panel.size)" ng-show="data.length > panel.offset+panel.size" class='icon-arrow-right pointer'></i>
-        </div>
-      </div>
-    </div>
-  </div>
-</div>
\ No newline at end of file


Mime
View raw message