Merge pull request #380 from rashidkpc/master
New panel tabs, upgraded momentjs, added _mapping to proxy samples
This commit is contained in:
commit
736a1aea08
31 files changed
+97
-65
No files matched your search
@@ -1,6 +1,6 @@
|
||||
// moment.js
|
||||
// version : 2.0.0
|
||||
// version : 2.1.0
|
||||
// author : Tim Wood
|
||||
// license : MIT
|
||||
// momentjs.com
|
||||
(function(e){function O(e,t){return function(n){return j(e.call(this,n),t)}}function M(e){return function(t){return this.lang().ordinal(e.call(this,t))}}function _(){}function D(e){H(this,e)}function P(e){var t=this._data={},n=e.years||e.year||e.y||0,r=e.months||e.month||e.M||0,i=e.weeks||e.week||e.w||0,s=e.days||e.day||e.d||0,o=e.hours||e.hour||e.h||0,u=e.minutes||e.minute||e.m||0,a=e.seconds||e.second||e.s||0,f=e.milliseconds||e.millisecond||e.ms||0;this._milliseconds=f+a*1e3+u*6e4+o*36e5,this._days=s+i*7,this._months=r+n*12,t.milliseconds=f%1e3,a+=B(f/1e3),t.seconds=a%60,u+=B(a/60),t.minutes=u%60,o+=B(u/60),t.hours=o%24,s+=B(o/24),s+=i*7,t.days=s%30,r+=B(s/30),t.months=r%12,n+=B(r/12),t.years=n}function H(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);return e}function B(e){return e<0?Math.ceil(e):Math.floor(e)}function j(e,t){var n=e+"";while(n.length<t)n="0"+n;return n}function F(e,t,n){var r=t._milliseconds,i=t._days,s=t._months,o;r&&e._d.setTime(+e+r*n),i&&e.date(e.date()+i*n),s&&(o=e.date(),e.date(1).month(e.month()+s*n).date(Math.min(o,e.daysInMonth())))}function I(e){return Object.prototype.toString.call(e)==="[object Array]"}function q(e,t){var n=Math.min(e.length,t.length),r=Math.abs(e.length-t.length),i=0,s;for(s=0;s<n;s++)~~e[s]!==~~t[s]&&i++;return i+r}function R(e,t){return t.abbr=e,s[e]||(s[e]=new _),s[e].set(t),s[e]}function U(e){return e?(!s[e]&&o&&require("./lang/"+e),s[e]):t.fn._lang}function z(e){return e.match(/\[.*\]/)?e.replace(/^\[|\]$/g,""):e.replace(/\\/g,"")}function W(e){var t=e.match(a),n,r;for(n=0,r=t.length;n<r;n++)A[t[n]]?t[n]=A[t[n]]:t[n]=z(t[n]);return function(i){var s="";for(n=0;n<r;n++)s+=typeof t[n].call=="function"?t[n].call(i,e):t[n];return s}}function X(e,t){function r(t){return e.lang().longDateFormat(t)||t}var n=5;while(n--&&f.test(t))t=t.replace(f,r);return C[t]||(C[t]=W(t)),C[t](e)}function V(e){switch(e){case"DDDD":return p;case"YYYY":return d;case"YYYYY":return v;case"S":case"SS":case"SSS":case"DDD":return h;case"MMM":case"MMMM":case"dd":case"ddd":case"dddd":case"a":case"A":return m;case"X":return b;case"Z":case"ZZ":return g;case"T":return y;case"MM":case"DD":case"YY":case"HH":case"hh":case"mm":case"ss":case"M":case"D":case"d":case"H":case"h":case"m":case"s":return c;default:return new RegExp(e.replace("\\",""))}}function $(e,t,n){var r,i,s=n._a;switch(e){case"M":case"MM":s[1]=t==null?0:~~t-1;break;case"MMM":case"MMMM":r=U(n._l).monthsParse(t),r!=null?s[1]=r:n._isValid=!1;break;case"D":case"DD":case"DDD":case"DDDD":t!=null&&(s[2]=~~t);break;case"YY":s[0]=~~t+(~~t>68?1900:2e3);break;case"YYYY":case"YYYYY":s[0]=~~t;break;case"a":case"A":n._isPm=(t+"").toLowerCase()==="pm";break;case"H":case"HH":case"h":case"hh":s[3]=~~t;break;case"m":case"mm":s[4]=~~t;break;case"s":case"ss":s[5]=~~t;break;case"S":case"SS":case"SSS":s[6]=~~(("0."+t)*1e3);break;case"X":n._d=new Date(parseFloat(t)*1e3);break;case"Z":case"ZZ":n._useUTC=!0,r=(t+"").match(x),r&&r[1]&&(n._tzh=~~r[1]),r&&r[2]&&(n._tzm=~~r[2]),r&&r[0]==="+"&&(n._tzh=-n._tzh,n._tzm=-n._tzm)}t==null&&(n._isValid=!1)}function J(e){var t,n,r=[];if(e._d)return;for(t=0;t<7;t++)e._a[t]=r[t]=e._a[t]==null?t===2?1:0:e._a[t];r[3]+=e._tzh||0,r[4]+=e._tzm||0,n=new Date(0),e._useUTC?(n.setUTCFullYear(r[0],r[1],r[2]),n.setUTCHours(r[3],r[4],r[5],r[6])):(n.setFullYear(r[0],r[1],r[2]),n.setHours(r[3],r[4],r[5],r[6])),e._d=n}function K(e){var t=e._f.match(a),n=e._i,r,i;e._a=[];for(r=0;r<t.length;r++)i=(V(t[r]).exec(n)||[])[0],i&&(n=n.slice(n.indexOf(i)+i.length)),A[t[r]]&&$(t[r],i,e);e._isPm&&e._a[3]<12&&(e._a[3]+=12),e._isPm===!1&&e._a[3]===12&&(e._a[3]=0),J(e)}function Q(e){var t,n,r,i=99,s,o,u;while(e._f.length){t=H({},e),t._f=e._f.pop(),K(t),n=new D(t);if(n.isValid()){r=n;break}u=q(t._a,n.toArray()),u<i&&(i=u,r=n)}H(e,r)}function G(e){var t,n=e._i;if(w.exec(n)){e._f="YYYY-MM-DDT";for(t=0;t<4;t++)if(S[t][1].exec(n)){e._f+=S[t][0];break}g.exec(n)&&(e._f+=" Z"),K(e)}else e._d=new Date(n)}function Y(t){var n=t._i,r=u.exec(n);n===e?t._d=new Date:r?t._d=new Date(+r[1]):typeof n=="string"?G(t):I(n)?(t._a=n.slice(0),J(t)):t._d=n instanceof Date?new Date(+n):new Date(n)}function Z(e,t,n,r,i){return i.relativeTime(t||1,!!n,e,r)}function et(e,t,n){var i=r(Math.abs(e)/1e3),s=r(i/60),o=r(s/60),u=r(o/24),a=r(u/365),f=i<45&&["s",i]||s===1&&["m"]||s<45&&["mm",s]||o===1&&["h"]||o<22&&["hh",o]||u===1&&["d"]||u<=25&&["dd",u]||u<=45&&["M"]||u<345&&["MM",r(u/30)]||a===1&&["y"]||["yy",a];return f[2]=t,f[3]=e>0,f[4]=n,Z.apply({},f)}function tt(e,n,r){var i=r-n,s=r-e.day();return s>i&&(s-=7),s<i-7&&(s+=7),Math.ceil(t(e).add("d",s).dayOfYear()/7)}function nt(e){var n=e._i,r=e._f;return n===null||n===""?null:(typeof n=="string"&&(e._i=n=U().preparse(n)),t.isMoment(n)?(e=H({},n),e._d=new Date(+n._d)):r?I(r)?Q(e):K(e):Y(e),new D(e))}function rt(e,n){t.fn[e]=t.fn[e+"s"]=function(e){var t=this._isUTC?"UTC":"";return e!=null?(this._d["set"+t+n](e),this):this._d["get"+t+n]()}}function it(e){t.duration.fn[e]=function(){return this._data[e]}}function st(e,n){Line truncated
|
||||
!function(t){function e(t,e){return function(n){return u(t.call(this,n),e)}}function n(t,e){return function(n){return this.lang().ordinal(t.call(this,n),e)}}function s(){}function i(t){a(this,t)}function r(t){var e=t.years||t.year||t.y||0,n=t.months||t.month||t.M||0,s=t.weeks||t.week||t.w||0,i=t.days||t.day||t.d||0,r=t.hours||t.hour||t.h||0,a=t.minutes||t.minute||t.m||0,o=t.seconds||t.second||t.s||0,u=t.milliseconds||t.millisecond||t.ms||0;this._input=t,this._milliseconds=u+1e3*o+6e4*a+36e5*r,this._days=i+7*s,this._months=n+12*e,this._data={},this._bubble()}function a(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);return t}function o(t){return 0>t?Math.ceil(t):Math.floor(t)}function u(t,e){for(var n=t+"";n.length<e;)n="0"+n;return n}function h(t,e,n,s){var i,r,a=e._milliseconds,o=e._days,u=e._months;a&&t._d.setTime(+t._d+a*n),(o||u)&&(i=t.minute(),r=t.hour()),o&&t.date(t.date()+o*n),u&&t.month(t.month()+u*n),a&&!s&&H.updateOffset(t),(o||u)&&(t.minute(i),t.hour(r))}function d(t){return"[object Array]"===Object.prototype.toString.call(t)}function c(t,e){var n,s=Math.min(t.length,e.length),i=Math.abs(t.length-e.length),r=0;for(n=0;s>n;n++)~~t[n]!==~~e[n]&&r++;return r+i}function f(t){return t?ie[t]||t.toLowerCase().replace(/(.)s$/,"$1"):t}function l(t,e){return e.abbr=t,x[t]||(x[t]=new s),x[t].set(e),x[t]}function _(t){if(!t)return H.fn._lang;if(!x[t]&&A)try{require("./lang/"+t)}catch(e){return H.fn._lang}return x[t]}function m(t){return t.match(/\[.*\]/)?t.replace(/^\[|\]$/g,""):t.replace(/\\/g,"")}function y(t){var e,n,s=t.match(E);for(e=0,n=s.length;n>e;e++)s[e]=ue[s[e]]?ue[s[e]]:m(s[e]);return function(i){var r="";for(e=0;n>e;e++)r+=s[e]instanceof Function?s[e].call(i,t):s[e];return r}}function M(t,e){function n(e){return t.lang().longDateFormat(e)||e}for(var s=5;s--&&N.test(e);)e=e.replace(N,n);return re[e]||(re[e]=y(e)),re[e](t)}function g(t,e){switch(t){case"DDDD":return V;case"YYYY":return X;case"YYYYY":return $;case"S":case"SS":case"SSS":case"DDD":return I;case"MMM":case"MMMM":case"dd":case"ddd":case"dddd":return R;case"a":case"A":return _(e._l)._meridiemParse;case"X":return B;case"Z":case"ZZ":return j;case"T":return q;case"MM":case"DD":case"YY":case"HH":case"hh":case"mm":case"ss":case"M":case"D":case"d":case"H":case"h":case"m":case"s":return J;default:return new RegExp(t.replace("\\",""))}}function p(t){var e=(j.exec(t)||[])[0],n=(e+"").match(ee)||["-",0,0],s=+(60*n[1])+~~n[2];return"+"===n[0]?-s:s}function D(t,e,n){var s,i=n._a;switch(t){case"M":case"MM":i[1]=null==e?0:~~e-1;break;case"MMM":case"MMMM":s=_(n._l).monthsParse(e),null!=s?i[1]=s:n._isValid=!1;break;case"D":case"DD":case"DDD":case"DDDD":null!=e&&(i[2]=~~e);break;case"YY":i[0]=~~e+(~~e>68?1900:2e3);break;case"YYYY":case"YYYYY":i[0]=~~e;break;case"a":case"A":n._isPm=_(n._l).isPM(e);break;case"H":case"HH":case"h":case"hh":i[3]=~~e;break;case"m":case"mm":i[4]=~~e;break;case"s":case"ss":i[5]=~~e;break;case"S":case"SS":case"SSS":i[6]=~~(1e3*("0."+e));break;case"X":n._d=new Date(1e3*parseFloat(e));break;case"Z":case"ZZ":n._useUTC=!0,n._tzm=p(e)}null==e&&(n._isValid=!1)}function Y(t){var e,n,s=[];if(!t._d){for(e=0;7>e;e++)t._a[e]=s[e]=null==t._a[e]?2===e?1:0:t._a[e];s[3]+=~~((t._tzm||0)/60),s[4]+=~~((t._tzm||0)%60),n=new Date(0),t._useUTC?(n.setUTCFullYear(s[0],s[1],s[2]),n.setUTCHours(s[3],s[4],s[5],s[6])):(n.setFullYear(s[0],s[1],s[2]),n.setHours(s[3],s[4],s[5],s[6])),t._d=n}}function w(t){var e,n,s=t._f.match(E),i=t._i;for(t._a=[],e=0;e<s.length;e++)n=(g(s[e],t).exec(i)||[])[0],n&&(i=i.slice(i.indexOf(n)+n.length)),ue[s[e]]&&D(s[e],n,t);i&&(t._il=i),t._isPm&&t._a[3]<12&&(t._a[3]+=12),t._isPm===!1&&12===t._a[3]&&(t._a[3]=0),Y(t)}function k(t){var e,n,s,r,o,u=99;for(r=0;r<t._f.length;r++)e=a({},t),e._f=t._f[r],w(e),n=new i(e),o=c(e._a,n.toArray()),n._il&&(o+=n._il.length),u>o&&(u=o,s=n);a(t,s)}function v(t){var e,n=t._i,s=K.exec(n);if(s){for(t._f="YYYY-MM-DD"+(s[2]||" "),e=0;4>e;e++)if(te[e][1].exec(n)){t._f+=te[e][0];break}j.exec(n)&&(t._f+=" Z"),w(t)}else t._d=new Date(n)}function T(e){var n=e._i,s=G.exec(n);n===t?e._d=new Date:s?e._d=new Date(+s[1]):"string"==typeof n?v(e):d(n)?(e._a=n.slice(0),Y(e)):e._d=n instanceof Date?new Date(+n):new Date(n)}function b(t,e,n,s,i){return i.relativeTime(e||1,!!n,t,s)}function S(t,e,n){var s=W(Math.abs(t)/1e3),i=W(s/60),r=W(i/60),a=W(r/24),o=W(a/365),u=45>s&&["s",s]||1===i&&["m"]||45>i&&["mm",i]||1===r&&["h"]||22>r&&["hh",r]||1===a&&["d"]||25>=a&&["dd",a]||45>=a&&["M"]||345>a&&["MM",W(a/30)]||1===o&&["y"]||["yy",o];return u[2]=e,u[3]=t>0,u[4]=n,b.apply({},u)}function F(t,e,n){var s,i=n-e,r=n-t.day();return r>i&&(r-=7),i-7>r&&(r+=7),s=H(t).add("d",r),{week:Math.ceil(s.dayOfYear()/7),year:s.year()}}function O(t){var e=t._i,n=t._f;return null===e||""===e?null:("string"==typeof e&&(t._i=e=_().preparse(e)),H.isMoment(e)?(t=a({},e),t._d=new Date(+e._d)):n?d(n)?k(t):w(t):T(t),new i(t))}function z(t,e){H.fn[t]=H.fn[t+"s"]=function(t){var n=this._isUTC?"UTC":"";return null!=t?(this._d["set"+n+e](t),H.updateOLine truncated
|
||||
+9
-2
@@ -71,6 +71,14 @@ angular.module('kibana.controllers', [])
|
||||
}
|
||||
};
|
||||
|
||||
$scope.setEditorTabs = function(panelMeta) {
|
||||
$scope.editorTabs = ['General','Panel'];
|
||||
if(!_.isUndefined(panelMeta.editorTabs)) {
|
||||
$scope.editorTabs = _.union($scope.editorTabs,_.pluck(panelMeta.editorTabs,'title'));
|
||||
}
|
||||
return $scope.editorTabs;
|
||||
};
|
||||
|
||||
// This is whoafully incomplete, but will do for now
|
||||
$scope.parse_error = function(data) {
|
||||
var _error = data.match("nested: (.*?);");
|
||||
@@ -125,8 +133,7 @@ angular.module('kibana.controllers', [])
|
||||
$scope.panel = {
|
||||
error : false,
|
||||
span : 3,
|
||||
editable: true,
|
||||
group : ['default']
|
||||
editable: true
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
+3
-4
@@ -26,10 +26,9 @@ angular.module('kibana.directives', [])
|
||||
link: function(scope, elem, attrs) {
|
||||
scope.$watch('panel.type', function(n,o) {
|
||||
if(!_.isUndefined(scope.panel.type)) {
|
||||
var template = '<div>'+
|
||||
'<div ng-controller="'+scope.panel.type+'" ng-include src="\'partials/panelgeneral.html\'"></div>'+
|
||||
'<div ng-controller="'+scope.panel.type+'" ng-include src="\''+scope.edit_path(scope.panel.type)+'\'">'+
|
||||
'</div>';
|
||||
var template = '<div ng-controller="'+scope.panel.type+'">'+
|
||||
'<span ng-include src="\'partials/paneladd.html\'"></span>'+
|
||||
'</div>';
|
||||
elem.html($compile(angular.element(template))(scope));
|
||||
}
|
||||
});
|
||||
|
||||
+1
-2
@@ -166,7 +166,6 @@ angular.module('kibana.services', [])
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
.service('timer', function($timeout) {
|
||||
// This service really just tracks a list of $timeout promises to give us a
|
||||
// method for cancelling them all when we need to
|
||||
@@ -451,7 +450,7 @@ angular.module('kibana.services', [])
|
||||
|
||||
// TOFIX: Error handling when there is more than one field
|
||||
this.timeField = function() {
|
||||
return self.getByType('time')[0].field;
|
||||
return _.pluck(self.getByType('time'),'field');
|
||||
};
|
||||
|
||||
// This special function looks for all time filters, and returns a time range according to the mode
|
||||
|
||||
@@ -15,7 +15,6 @@
|
||||
<input type="number" class="input-small" ng-model="panel.size">
|
||||
</div>
|
||||
</div>
|
||||
<div class="row-fluid" ng-include="'partials/querySelect.html'"></div>
|
||||
<h5>Panel Spy</h5>
|
||||
<div class="row-fluid">
|
||||
<div class="span2">
|
||||
|
||||
@@ -18,6 +18,9 @@ angular.module('kibana.bettermap', [])
|
||||
.controller('bettermap', function($scope, querySrv, dashboard, filterSrv) {
|
||||
|
||||
$scope.panelMeta = {
|
||||
editorTabs : [
|
||||
{title:'Queries', src:'partials/querySelect.html'}
|
||||
],
|
||||
status : "Experimental",
|
||||
description : "Displays geo points in clustered groups on a map. The cavaet for this panel is"+
|
||||
" that, for better or worse, it does NOT use the terms facet and it <b>does</b> query "+
|
||||
|
||||
@@ -55,7 +55,6 @@ angular.module('kibana.column', [])
|
||||
span: 12,
|
||||
height: "150px",
|
||||
editable: true,
|
||||
group: ['default'],
|
||||
type: type,
|
||||
};
|
||||
};
|
||||
|
||||
@@ -21,7 +21,6 @@ angular.module('kibana.fields', [])
|
||||
|
||||
// Set and populate defaults
|
||||
var _d = {
|
||||
group : "default",
|
||||
style : {},
|
||||
arrange : 'vertical',
|
||||
micropanel_position : 'right',
|
||||
|
||||
@@ -60,7 +60,6 @@
|
||||
<label class="small">Use Elasticsearch date math format (eg 1m, 5m, 1d, 2w, 1y)</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row-fluid" ng-include="'partials/querySelect.html'"></div>
|
||||
<h5>Panel Spy</h5>
|
||||
<div class="row-fluid">
|
||||
<div class="span2">
|
||||
|
||||
@@ -37,6 +37,9 @@ angular.module('kibana.histogram', [])
|
||||
.controller('histogram', function($scope, querySrv, dashboard, filterSrv) {
|
||||
|
||||
$scope.panelMeta = {
|
||||
editorTabs : [
|
||||
{title:'Queries', src:'partials/querySelect.html'}
|
||||
],
|
||||
status : "Stable",
|
||||
description : "A bucketed time series chart of the current query or queries. Uses the "+
|
||||
"Elasticsearch date_histogram facet. If using time stamped indices this panel will query"+
|
||||
|
||||
@@ -26,7 +26,6 @@
|
||||
<label class="small">Labels</label><input type="checkbox" ng-model="panel.labels" ng-checked="panel.labels">
|
||||
</div>
|
||||
</div>
|
||||
<div class="row-fluid" ng-include="'partials/querySelect.html'"></div>
|
||||
<h5>Panel Spy</h5>
|
||||
<div class="row-fluid">
|
||||
<div class="span2">
|
||||
|
||||
@@ -21,6 +21,9 @@ angular.module('kibana.hits', [])
|
||||
.controller('hits', function($scope, querySrv, dashboard, filterSrv) {
|
||||
|
||||
$scope.panelMeta = {
|
||||
editorTabs : [
|
||||
{title:'Queries', src:'partials/querySelect.html'}
|
||||
],
|
||||
status : "Stable",
|
||||
description : "The total hits for a query or set of queries. Can be a pie chart, bar chart, "+
|
||||
"list, or absolute total of all queries combined"
|
||||
|
||||
@@ -1,9 +1,3 @@
|
||||
<div class="row-fluid">
|
||||
<div class="span11">
|
||||
The map panel uses 2 letter country or US state codes to plot concentrations on a map. Darker terroritories mean more records matched that area. If multiple queries are sent from a single panel the <strong>first query will be displayed</strong>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row-fluid">
|
||||
<div class="span3">
|
||||
<form>
|
||||
@@ -15,7 +9,6 @@
|
||||
<select ng-change="$emit('render')" class="input-small" ng-model="panel.map" ng-options="f for f in ['world','europe','usa']"></select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row-fluid" ng-include="'partials/querySelect.html'"></div>
|
||||
<h5>Panel Spy</h5>
|
||||
<div class="row-fluid">
|
||||
<div class="span2">
|
||||
|
||||
@@ -23,6 +23,9 @@ angular.module('kibana.map', [])
|
||||
.controller('map', function($scope, $rootScope, querySrv, dashboard, filterSrv) {
|
||||
|
||||
$scope.panelMeta = {
|
||||
editorTabs : [
|
||||
{title:'Queries', src:'partials/querySelect.html'}
|
||||
],
|
||||
status : "Stable",
|
||||
description : "Displays a map of shaded regions using a field containing a 2 letter country "+
|
||||
", or US state, code. Regions with more hit are shaded darker. Node that this does use the"+
|
||||
|
||||
@@ -48,7 +48,6 @@
|
||||
<select class="input-small" ng-model="panel.legend" ng-options="f for f in ['above','below','none']"></select></span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row-fluid" ng-include="'partials/querySelect.html'"></div>
|
||||
<h5>Panel Spy</h5>
|
||||
<div class="row-fluid">
|
||||
<div class="span2">
|
||||
|
||||
@@ -33,6 +33,9 @@ angular.module('kibana.pie', [])
|
||||
|
||||
// Set and populate defaults
|
||||
var _d = {
|
||||
editorTabs : [
|
||||
{title:'Queries', src:'partials/querySelect.html'}
|
||||
],
|
||||
query : { field:"_type", goal: 100},
|
||||
queries : {
|
||||
mode : 'all',
|
||||
|
||||
@@ -60,4 +60,6 @@ angular.module('kibana.query', [])
|
||||
}
|
||||
};
|
||||
|
||||
$scope.init();
|
||||
|
||||
});
|
||||
@@ -71,8 +71,7 @@
|
||||
<h6>Page Overflow</h6>
|
||||
<select class="input-small" ng-model="panel.overflow" ng-options="f.value as f.key for f in [{key:'scroll',value:'height'},{key:'expand',value:'min-height'}]"></select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row-fluid" ng-include="'partials/querySelect.html'"></div>
|
||||
</div>
|
||||
<h5>Panel Spy</h5>
|
||||
<div class="row-fluid">
|
||||
<div class="span2">
|
||||
@@ -84,4 +83,3 @@
|
||||
of the panel.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -26,6 +26,9 @@ angular.module('kibana.table', [])
|
||||
.controller('table', function($rootScope, $scope, fields, querySrv, dashboard, filterSrv) {
|
||||
|
||||
$scope.panelMeta = {
|
||||
editorTabs : [
|
||||
{title:'Queries', src:'partials/querySelect.html'}
|
||||
],
|
||||
status: "Stable",
|
||||
description: "A paginated table of records matching your query or queries. Click on a row to "+
|
||||
"expand it and review all of the fields associated with that document. <p>"
|
||||
@@ -221,7 +224,7 @@ angular.module('kibana.table', [])
|
||||
// size*pages results
|
||||
// Otherwise, only get size*pages results then stop querying
|
||||
if (($scope.data.length < $scope.panel.size*$scope.panel.pages ||
|
||||
!(($scope.panel.sort[0] === filterSrv.timeField()) && $scope.panel.sort[1] === 'desc')) &&
|
||||
!((_.contains(filterSrv.timeField(),$scope.panel.sort[0])) && $scope.panel.sort[1] === 'desc')) &&
|
||||
_segment+1 < dashboard.indices.length) {
|
||||
$scope.get_data(_segment+1,$scope.query_id);
|
||||
}
|
||||
|
||||
@@ -50,7 +50,6 @@
|
||||
<label class="small">Labels</label><input type="checkbox" ng-model="panel.labels" ng-checked="panel.labels">
|
||||
</div>
|
||||
</div>
|
||||
<div class="row-fluid" ng-include="'partials/querySelect.html'"></div>
|
||||
<h5>Panel Spy</h5>
|
||||
<div class="row-fluid">
|
||||
<div class="span2">
|
||||
|
||||
@@ -22,6 +22,9 @@ angular.module('kibana.terms', [])
|
||||
.controller('terms', function($scope, querySrv, dashboard, filterSrv) {
|
||||
|
||||
$scope.panelMeta = {
|
||||
editorTabs : [
|
||||
{title:'Queries', src:'partials/querySelect.html'}
|
||||
],
|
||||
status : "Beta",
|
||||
description : "Displays the results of an elasticsearch facet as a pie chart, bar chart, or a "+
|
||||
"table"
|
||||
|
||||
@@ -43,9 +43,6 @@ angular.module('kibana.timepicker', [])
|
||||
};
|
||||
_.defaults($scope.panel,_d);
|
||||
|
||||
var _groups = _.isArray($scope.panel.group) ?
|
||||
$scope.panel.group : [$scope.panel.group];
|
||||
|
||||
$scope.init = function() {
|
||||
// Private refresh interval that we can use for view display without causing
|
||||
// unnecessary refreshes during changes
|
||||
|
||||
@@ -26,5 +26,4 @@
|
||||
<select class="input-small" ng-model="panel.arrangement" ng-options="f for f in ['horizontal','vertical']"></select></span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row-fluid" ng-include="'partials/querySelect.html'"></div>
|
||||
</div>
|
||||
@@ -17,6 +17,9 @@ angular.module('kibana.trends', [])
|
||||
.controller('trends', function($scope, kbnIndex, querySrv, dashboard, filterSrv) {
|
||||
|
||||
$scope.panelMeta = {
|
||||
editorTabs : [
|
||||
{title:'Queries', src:'partials/querySelect.html'}
|
||||
],
|
||||
status : "Beta",
|
||||
description : "A stock-ticker style representation of how queries are moving over time. "+
|
||||
"For example, if the time is 1:10pm, your time picker was set to \"Last 10m\", and the \"Time "+
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<div class="pull-right editor-title">Dashboard settings</div>
|
||||
|
||||
<div ng-model="editor.index" bs-tabs>
|
||||
<div ng-repeat="tab in ['General','Index','Rows']" data-title="{{tab}}">
|
||||
<div ng-repeat="tab in ['General','Index','Rows','Date/Time']" data-title="{{tab}}">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -86,11 +86,11 @@
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="row-fluid" ng-show="editor.index == 3">
|
||||
</div>
|
||||
<!--<div class="row-fluid" ng-show="editor.index == 3">
|
||||
<h6>Region</h6><select class="input-small" ng-model="dashboard.current.time.region" ng-options='f for f in ["africa","america","asia","atlantic","australia","europe","indian","pacific"]'></select>
|
||||
</div>-->
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button ng-click="add_row(dashboard.current,row); reset_row();" class="btn btn-success" ng-show="editor.index == 2">Create Row</button>
|
||||
|
||||
<button type="button" class="btn btn-danger" ng-click="editor.index=0;dismiss();reset_panel();dashboard.refresh()">Close</button>
|
||||
</div>
|
||||
@@ -1,11 +1,10 @@
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
|
||||
<h3>Inspector</h3>
|
||||
<h3>Last Elasticsearch Query</h3>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
|
||||
<div>
|
||||
<h5>Last Elasticsearch Query</h5>
|
||||
<pre>curl -XGET '{{config.elasticsearch}}/{{dashboard.indices|stringify}}/_search?pretty' -d '{{inspector}}'
|
||||
</pre>
|
||||
</div>
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
<div>
|
||||
<div ng-include src="'partials/panelgeneral.html'"></div>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<div ng-include src="edit_path(panel.type)"></div>
|
||||
</div>
|
||||
|
||||
<div ng-repeat="tab in panelMeta.editorTabs" ng-show="addTab == tab.title">
|
||||
<h4>{{tab.title}}</h4>
|
||||
<div ng-include src="tab.src"></div>
|
||||
</div>
|
||||
@@ -1,19 +1,22 @@
|
||||
<div class="modal-body" >
|
||||
<div class="modal-body">
|
||||
<div class="pull-right editor-title">{{panel.type}} settings</div>
|
||||
|
||||
<div ng-model="editor.index" bs-tabs>
|
||||
<div ng-repeat="tab in ['General','Panel']" data-title="{{tab}}">
|
||||
<div ng-repeat="tab in setEditorTabs(panelMeta)" data-title="{{tab}}">
|
||||
</div>
|
||||
</div>
|
||||
<div ng-show="editor.index == 0">
|
||||
<div ng-show="editorTabs[editor.index] == 'General'">
|
||||
<div ng-include src="'partials/panelgeneral.html'"></div>
|
||||
</div>
|
||||
|
||||
<div ng-show="editor.index == 1">
|
||||
<div ng-include src="edit_path(panel.type)">No additional settings are available for this type of panel.</div>
|
||||
<div ng-show="editorTabs[editor.index] == 'Panel'">
|
||||
<div ng-include src="edit_path(panel.type)"></div>
|
||||
</div>
|
||||
|
||||
<div ng-repeat="tab in panelMeta.editorTabs" ng-show="editorTabs[editor.index] == tab.title">
|
||||
<div ng-include src="tab.src"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="modal-footer">
|
||||
<!-- close_edit() is provided here to allow for a scope to perform action on dismiss -->
|
||||
<button type="button" class="btn btn-danger" ng-click="editor.index=0;close_edit();dismiss()">Close</button>
|
||||
|
||||
+23
-20
@@ -1,21 +1,24 @@
|
||||
<style>
|
||||
.querySelect .query {
|
||||
margin-right: 5px;
|
||||
}
|
||||
.querySelect .selected {
|
||||
border: 3px solid;
|
||||
}
|
||||
.querySelect .unselected {
|
||||
border: 0px solid;
|
||||
}
|
||||
</style>
|
||||
<h4>Queries</h4>
|
||||
<div class="span2" style="margin-left:0px">
|
||||
<select class="input-small" ng-change="set_refresh(true);" ng-model="panel.queries.mode" ng-options="f for f in ['all','pinned','unpinned','selected']"></select>
|
||||
</div>
|
||||
<div class="span9 querySelect" ng-show="panel.queries.mode == 'selected'">
|
||||
<span ng-style="{'border-color': querySrv.list[id].color}" ng-class="{selected:_.contains(panel.queries.ids,id),unselected:!_.contains(panel.queries.ids,id)}" ng-repeat="id in querySrv.ids" ng-click="panel.queries.ids = _.toggleInOut(panel.queries.ids,id);set_refresh(true);" class="query pointer badge">
|
||||
<i class="icon-circle" ng-style="{color: querySrv.list[id].color}"></i>
|
||||
<span> {{querySrv.list[id].alias || querySrv.list[id].query}}</span>
|
||||
</span>
|
||||
<div class="row-fluid">
|
||||
<style>
|
||||
.querySelect .query {
|
||||
margin-right: 5px;
|
||||
}
|
||||
.querySelect .selected {
|
||||
border: 3px solid;
|
||||
}
|
||||
.querySelect .unselected {
|
||||
border: 0px solid;
|
||||
}
|
||||
</style>
|
||||
<div class="span2" style="margin-left:0px">
|
||||
<label class="small">Queries</label>
|
||||
<select class="input-small" ng-change="set_refresh(true);" ng-model="panel.queries.mode" ng-options="f for f in ['all','pinned','unpinned','selected']"></select>
|
||||
</div>
|
||||
<div class="span9 querySelect" ng-show="panel.queries.mode == 'selected'">
|
||||
<label class="small">Selected Queries</label>
|
||||
<span ng-style="{'border-color': querySrv.list[id].color}" ng-class="{selected:_.contains(panel.queries.ids,id),unselected:!_.contains(panel.queries.ids,id)}" ng-repeat="id in querySrv.ids" ng-click="panel.queries.ids = _.toggleInOut(panel.queries.ids,id);set_refresh(true);" class="query pointer badge">
|
||||
<i class="icon-circle" ng-style="{color: querySrv.list[id].color}"></i>
|
||||
<span> {{querySrv.list[id].alias || querySrv.list[id].query}}</span>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
@@ -31,7 +31,7 @@
|
||||
</Proxy>
|
||||
|
||||
# Proxy for _aliases and .*/_search
|
||||
<LocationMatch "^(/_aliases|.*/_search)$">
|
||||
<LocationMatch "^(/_aliases|.*/_search|.*/_mapping)$">
|
||||
ProxyPassMatch http://127.0.0.1:9200
|
||||
ProxyPassReverse http://127.0.0.1:9200
|
||||
</LocationMatch>
|
||||
|
||||
@@ -29,6 +29,10 @@ server {
|
||||
proxy_pass http://127.0.0.1:9200;
|
||||
proxy_read_timeout 90;
|
||||
}
|
||||
location ~ ^/.*/_mapping$ {
|
||||
proxy_pass http://127.0.0.1:9200;
|
||||
proxy_read_timeout 90;
|
||||
}
|
||||
|
||||
# Password protected end points
|
||||
location ~ ^/kibana-int/dashboard/.*$ {
|
||||
|
||||
Reference in new issue
Block a user