diff --git a/src/app/controllers/all.js b/src/app/controllers/all.js index cb976931982..9f6a70552ca 100644 --- a/src/app/controllers/all.js +++ b/src/app/controllers/all.js @@ -3,7 +3,6 @@ define([ './dashLoader', './row', './pulldown', - './zoom', './search', './metricKeys', './graphiteTarget' diff --git a/src/app/controllers/dash.js b/src/app/controllers/dash.js index c0aa4dc4079..df2e1fce101 100644 --- a/src/app/controllers/dash.js +++ b/src/app/controllers/dash.js @@ -91,6 +91,10 @@ function (angular, $, config, _) { dashboard.refresh(); }, { inputDisabled: true }); + keyboardManager.bind('ctrl+z', function(evt) { + $rootScope.$emit('zoom-out', evt); + }, { inputDisabled: true }); + keyboardManager.bind('esc', function() { var popups = $('.popover.in'); if (popups.length > 0) { diff --git a/src/app/controllers/dashLoader.js b/src/app/controllers/dashLoader.js index 15f12ea6b61..7e6d1b11012 100644 --- a/src/app/controllers/dashLoader.js +++ b/src/app/controllers/dashLoader.js @@ -7,7 +7,7 @@ function (angular, _) { var module = angular.module('kibana.controllers'); - module.controller('dashLoader', function($scope, $rootScope, $http, timer, dashboard, alertSrv, $location) { + module.controller('dashLoader', function($scope, $rootScope, $http, dashboard, alertSrv, $location, filterSrv) { $scope.loader = dashboard.current.loader; $scope.init = function() { @@ -18,6 +18,10 @@ function (angular, _) { $rootScope.$on('save-dashboard', function() { $scope.elasticsearch_save('dashboard', false); }); + + $rootScope.$on('zoom-out', function() { + $scope.zoom(2); + }); }; $scope.showDropdown = function(type) { @@ -131,6 +135,35 @@ function (angular, _) { }); }; + // 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" + }); + }; + }); }); diff --git a/src/app/controllers/zoom.js b/src/app/controllers/zoom.js deleted file mode 100644 index 21135f9f3aa..00000000000 --- a/src/app/controllers/zoom.js +++ /dev/null @@ -1,45 +0,0 @@ -define([ - 'angular', - 'app', - 'underscore', - 'moment', -], -function (angular, app, _, moment) { - '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" - }); - }; - - }); - -}); \ No newline at end of file diff --git a/src/app/directives/kibanaPanel.js b/src/app/directives/kibanaPanel.js index 679d641c5e3..6b51bb804b0 100644 --- a/src/app/directives/kibanaPanel.js +++ b/src/app/directives/kibanaPanel.js @@ -55,11 +55,11 @@ function (angular) { '{{panel.title}}' + '' + '
' + ''+ - '