zoom.js 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. define([
  2. 'angular',
  3. 'app',
  4. 'underscore'
  5. ],
  6. function (angular, app, _) {
  7. 'use strict';
  8. var module = angular.module('kibana.controllers');
  9. module.controller('ZoomCtrl', function($scope, filterSrv) {
  10. // function $scope.zoom
  11. // factor :: Zoom factor, so 0.5 = cuts timespan in half, 2 doubles timespan
  12. $scope.zoom = function(factor) {
  13. var _range = filterSrv.timeRange('last');
  14. var _timespan = (_range.to.valueOf() - _range.from.valueOf());
  15. var _center = _range.to.valueOf() - _timespan/2;
  16. var _to = (_center + (_timespan*factor)/2);
  17. var _from = (_center - (_timespan*factor)/2);
  18. // If we're not already looking into the future, don't.
  19. if(_to > Date.now() && _range.to < Date.now()) {
  20. var _offset = _to - Date.now();
  21. _from = _from - _offset;
  22. _to = Date.now();
  23. }
  24. if(factor > 1) {
  25. filterSrv.removeByType('time');
  26. }
  27. filterSrv.set({
  28. type:'time',
  29. from:moment.utc(_from).toDate(),
  30. to:moment.utc(_to).toDate(),
  31. field:"@timestamp"
  32. });
  33. };
  34. });
  35. });