|
|
@@ -0,0 +1,43 @@
|
|
|
+define([
|
|
|
+ 'angular',
|
|
|
+ 'app',
|
|
|
+ 'underscore'
|
|
|
+],
|
|
|
+function (angular, app, _) {
|
|
|
+ 'use strict';
|
|
|
+
|
|
|
+ var module = angular.module('kibana.controllers');
|
|
|
+
|
|
|
+ module.controller('ZoomCtrl', function($scope, filterSrv) {
|
|
|
+
|
|
|
+ // function $scope.zoom
|
|
|
+ // factor :: Zoom factor, so 0.5 = cuts timespan in half, 2 doubles timespan
|
|
|
+ $scope.zoom = function(factor) {
|
|
|
+ var _range = filterSrv.timeRange('last');
|
|
|
+ var _timespan = (_range.to.valueOf() - _range.from.valueOf());
|
|
|
+ var _center = _range.to.valueOf() - _timespan/2;
|
|
|
+
|
|
|
+ var _to = (_center + (_timespan*factor)/2);
|
|
|
+ var _from = (_center - (_timespan*factor)/2);
|
|
|
+
|
|
|
+ // If we're not already looking into the future, don't.
|
|
|
+ if(_to > Date.now() && _range.to < Date.now()) {
|
|
|
+ var _offset = _to - Date.now();
|
|
|
+ _from = _from - _offset;
|
|
|
+ _to = Date.now();
|
|
|
+ }
|
|
|
+
|
|
|
+ if(factor > 1) {
|
|
|
+ filterSrv.removeByType('time');
|
|
|
+ }
|
|
|
+ filterSrv.set({
|
|
|
+ type:'time',
|
|
|
+ from:moment.utc(_from).toDate(),
|
|
|
+ to:moment.utc(_to).toDate(),
|
|
|
+ field:"@timestamp"
|
|
|
+ });
|
|
|
+ };
|
|
|
+
|
|
|
+ });
|
|
|
+
|
|
|
+});
|