From 55467e26a9fe6584f266b83894ad8e126d84d95d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torkel=20=C3=96degaard?= Date: Sun, 29 Dec 2013 13:17:04 +0100 Subject: [PATCH] added shortcut to zoom out (ctrl+z) --- src/app/controllers/all.js | 1 - src/app/controllers/dash.js | 4 +++ src/app/controllers/dashLoader.js | 35 +++++++++++++++++++++++- src/app/controllers/zoom.js | 45 ------------------------------- src/app/directives/kibanaPanel.js | 4 +-- src/app/panels/graphite/module.js | 13 +++------ src/app/partials/dashLoader.html | 2 +- 7 files changed, 45 insertions(+), 59 deletions(-) delete mode 100644 src/app/controllers/zoom.js 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}}' + '' + '' + ''+ - '' + + '' + '{{panel.title}}' + ''+ diff --git a/src/app/panels/graphite/module.js b/src/app/panels/graphite/module.js index 26cf9942ad2..77bba7d5646 100644 --- a/src/app/panels/graphite/module.js +++ b/src/app/panels/graphite/module.js @@ -56,9 +56,10 @@ function (angular, app, $, _, kbn, moment, timeSeries) { ], menuItems: [ - { text: 'View fullscreen', action: $scope.toggleFullscreen }, - { text: 'Edit', action: $scope.openConfigureModal }, - { text: 'Duplicate', action: $scope.duplicate } + { text: 'View fullscreen', action: function() { $scope.toggleFullscreen(); }}, + { text: 'Edit', action: function() { $scope.openConfigureModal(); }}, + { text: 'Duplicate', action: function() { $scope.duplicate(); }}, + { text: 'Remove', action: function() { $scope.remove_panel_from_row($scope.row, $scope.panel); }} ], status : "Unstable", @@ -212,12 +213,6 @@ function (angular, app, $, _, kbn, moment, timeSeries) { $scope.init = function() { - $scope.panelMenuItems = [ - { text: 'View fullscreen', action: $scope.toggleFullscreen }, - { text: 'Edit', action: $scope.openConfigureModal }, - { text: 'Duplicate', action: $scope.duplicate } - ]; - // Hide view options by default $scope.options = false; $scope.editor = {index: 1}; diff --git a/src/app/partials/dashLoader.html b/src/app/partials/dashLoader.html index 70768fc8e15..c0d0acbae12 100644 --- a/src/app/partials/dashLoader.html +++ b/src/app/partials/dashLoader.html @@ -5,7 +5,7 @@
  • - + Zoom Out