| 1234 |
- /*! kibana - v3.0.0m3pre - 2013-09-13
- * Copyright (c) 2013 Rashid Khan; Licensed Apache License */
- define("panels/pie/module",["angular","app","underscore","jquery","kbn","config"],function(a,b,c,d,e,f){var g=a.module("kibana.panels.pie",[]);b.useModule(g),g.controller("pie",["$scope","$rootScope","querySrv","dashboard","filterSrv",function(b,d,e,g,h){b.panelMeta={status:"Deprecated",description:"Uses an Elasticsearch terms facet to create a pie chart. You should really only point this at not_analyzed fields for that reason. This panel is going away soon, it has <strong>been replaced by the terms panel</strong>. Please use that one instead."};var i={editorTabs:[{title:"Queries",src:"app/partials/querySelect.html"}],query:{field:"_type",goal:100},queries:{mode:"all",ids:[]},size:10,exclude:[],donut:!1,tilt:!1,legend:"above",labels:!0,mode:"terms",default_field:"DEFAULT",spyable:!0};c.defaults(b.panel,i),b.init=function(){b.$on("refresh",function(){b.get_data()}),b.get_data()},b.set_mode=function(a){switch(a){case"terms":b.panel.query={field:"_all"};break;case"goal":b.panel.query={goal:100}}},b.set_refresh=function(a){b.refresh=a},b.close_edit=function(){b.refresh&&b.get_data(),b.refresh=!1,b.$emit("render")},b.get_data=function(){if(0!==g.indices.length){b.panelMeta.loading=!0;var a=b.ejs.Request().indices(g.indices);b.panel.queries.ids=e.idsByMode(b.panel.queries);var d=b.ejs.BoolQuery();c.each(b.panel.queries.ids,function(a){d=d.should(e.getEjsObj(a))});var f;"terms"===b.panel.mode?(a=a.facet(b.ejs.TermsFacet("pie").field(b.panel.query.field||b.panel.default_field).size(b.panel.size).exclude(b.panel.exclude).facetFilter(b.ejs.QueryFilter(b.ejs.FilteredQuery(d,h.getBoolFilter(h.ids))))).size(0),b.populate_modal(a),f=a.doSearch(),f.then(function(a){b.panelMeta.loading=!1,b.hits=a.hits.total,b.data=[];var d=0;c.each(a.facets.pie.terms,function(a){var c={label:a.term,data:a.count};b.data.push(),b.data.push(c),d+=1}),b.$emit("render")})):(a=a.query(d).filter(h.getBoolFilter(h.ids)).size(0),b.populate_modal(a),f=a.doSearch(),f.then(function(a){b.panelMeta.loading=!1;var c=a.hits.total,d=b.panel.query.goal-c;b.data=[{label:"Complete",data:c,color:"#BF6730"},{data:d,color:"#e2d0c4"}],b.$emit("render")}))}},b.populate_modal=function(c){b.modal={title:"Inspector",body:"<h5>Last Elasticsearch Query</h5><pre>curl -XGET "+f.elasticsearch+"/"+g.indices+"/_search?pretty -d'\n"+a.toJson(JSON.parse(c.toString()),!0)+"'</pre>"}}}]),g.directive("pie",["querySrv","filterSrv","dashboard",function(b,f,g){return{restrict:"A",link:function(h,i){function j(){i.css({height:h.panel.height||h.row.height});var a;a="goal"===h.panel.mode?{show:h.panel.labels,radius:0,formatter:function(a,b){var d=parseInt(h.row.height.replace("px",""),10)/8+String("px");return c.isUndefined(a)?"":'<div style="font-size:'+d+';font-weight:bold;text-align:center;padding:2px;color:#fff;">'+Math.round(b.percent)+"%</div>"}}:{show:h.panel.labels,radius:2/3,formatter:function(a,b){return'<div "style="font-size:8pt;text-align:center;padding:2px;color:white;">'+a+"<br/>"+Math.round(b.percent)+"%</div>"},threshold:.1};var e={series:{pie:{innerRadius:h.panel.donut?.45:0,tilt:h.panel.tilt?.45:1,radius:1,show:!0,combine:{color:"#999",label:"The Rest"},label:a,stroke:{width:0}}},grid:{backgroundColor:null,hoverable:!0,clickable:!0},legend:{show:!1},colors:b.colors};i.is(":visible")&&require(["vendor/jquery/jquery.flot.pie.js"],function(){h.legend=d.plot(i,h.data,e).getData(),h.$$phase||h.$apply()})}i.html('<center><img src="img/load_big.gif"></center>'),h.$on("render",function(){j()}),a.element(window).bind("resize",function(){j()}),i.bind("plotclick",function(a,b,c){c&&"terms"===h.panel.mode&&(f.set({type:"terms",field:h.panel.query.field,value:c.series.label}),g.refresh())});var k=d("<div>");i.bind("plothover",function(a,b,c){c?k.html([e.query_color_dot(c.series.color,15),c.series.label||"",parseFloat(c.series.percent).toFixed(1)+"%"].join(" ")).place_tt(b.pageX,b.pageY,{offset:10}):k.remove()})}}}])});
|