/*! kibana - v3.0.0m3pre - 2013-09-16 * Copyright (c) 2013 Rashid Khan; Licensed Apache License */ define("panels/timepicker/module",["angular","app","underscore","moment","kbn"],function(a,b,c,d,e){var f=a.module("kibana.panels.timepicker",[]);b.useModule(f),f.controller("timepicker",["$scope","$rootScope","$timeout","timer","$http","dashboard","filterSrv",function(a,b,f,g,h,i,j){function k(b){return b.type="time",j.removeByType("time"),a.panel.filter_id=j.set(l(b)),a.panel.filter_id}function l(a){return a=c.clone(a),a.from=a.from.toDate(),a.to=a.to.toDate(),a}function m(b,c){a.timepicker={from:{time:b.format("HH:mm:ss"),date:b.format("MM/DD/YYYY")},to:{time:c.format("HH:mm:ss"),date:c.format("MM/DD/YYYY")}}}a.panelMeta={status:"Stable",description:"A panel for controlling the time range filters. If you have time based data, or if you're using time stamped indices, you need one of these"};var n={status:"Stable",mode:"relative",time_options:["5m","15m","1h","6h","12h","24h","2d","7d","30d"],timespan:"15m",timefield:"@timestamp",timeformat:"",refresh:{enable:!1,interval:30,min:3}};c.defaults(a.panel,n),a.init=function(){switch(a.refresh_interval=a.panel.refresh.interval,a.filterSrv=j,a.panel.mode){case"absolute":a.time={from:d(a.panel.time.from,"MM/DD/YYYY HH:mm:ss")||d(e.time_ago(a.panel.timespan)),to:d(a.panel.time.to,"MM/DD/YYYY HH:mm:ss")||d()};break;case"since":a.time={from:d(a.panel.time.from,"MM/DD/YYYY HH:mm:ss")||d(e.time_ago(a.panel.timespan)),to:d()};break;case"relative":a.time={from:d(e.time_ago(a.panel.timespan)),to:d()}}a.time.field=a.panel.timefield,m(a.time.from,a.time.to),o(),"absolute"!==a.panel.mode&&k(a.time),i.refresh(),a.panel.refresh.enable&&a.set_interval(a.panel.refresh.interval),a.$on("refresh",function(){if(j.idsByType("time").length>0){var b=j.timeRange("min");(0!==a.time.from.diff(d.utc(b.from),"seconds")||0!==a.time.to.diff(d.utc(b.to),"seconds"))&&(a.set_mode("absolute"),m(d(b.from),d(b.to)),a.time=a.time_calc(),o())}})},a.set_interval=function(b){if(a.panel.refresh.interval=b,c.isNumber(a.panel.refresh.interval)){if(a.panel.refresh.interval=g.valueOf()&&(b=d(g.valueOf()-1e3)),f(function(){m(b,g)}),{from:b,to:g}},a.time_apply=function(){a.panel.error="",j.removeByType("time"),a.time=a.time_calc(),a.time.field=a.panel.timefield,o(),k(a.time),i.refresh()},a.$watch("panel.mode",a.time_apply)}])});