grafana/src/app/services/dashboard/dashboardKeyBindings.js

61 lines
1.7 KiB
JavaScript
Raw Normal View History

define([
'angular',
'jquery',
'services/all'
],
function(angular, $) {
"use strict";
2014-07-28 11:11:52 -05:00
var module = angular.module('grafana.services');
2014-06-12 06:37:40 -05:00
module.service('dashboardKeybindings', function($rootScope, keyboardManager) {
2014-06-08 07:40:44 -05:00
2014-06-12 06:37:40 -05:00
this.shortcuts = function(scope) {
2014-06-08 07:40:44 -05:00
2014-06-12 06:37:40 -05:00
scope.$on('$destroy', function() {
keyboardManager.unbind('ctrl+f');
keyboardManager.unbind('ctrl+h');
keyboardManager.unbind('ctrl+s');
keyboardManager.unbind('ctrl+r');
keyboardManager.unbind('ctrl+z');
});
keyboardManager.unbind('esc');
2014-06-12 06:37:40 -05:00
2014-06-06 23:38:33 -05:00
keyboardManager.bind('ctrl+f', function(evt) {
2014-06-12 06:37:40 -05:00
scope.emitAppEvent('open-search', evt);
2014-06-06 23:38:33 -05:00
}, { inputDisabled: true });
keyboardManager.bind('ctrl+h', function() {
2014-06-12 06:37:40 -05:00
var current = scope.dashboard.hideControls;
scope.dashboard.hideControls = !current;
2014-06-06 23:38:33 -05:00
}, { inputDisabled: true });
keyboardManager.bind('ctrl+s', function(evt) {
2014-06-12 06:37:40 -05:00
scope.emitAppEvent('save-dashboard', evt);
2014-06-06 23:38:33 -05:00
}, { inputDisabled: true });
keyboardManager.bind('ctrl+r', function() {
2014-06-12 06:37:40 -05:00
scope.dashboard.emit_refresh();
2014-06-06 23:38:33 -05:00
}, { inputDisabled: true });
keyboardManager.bind('ctrl+z', function(evt) {
2014-06-12 06:37:40 -05:00
scope.emitAppEvent('zoom-out', evt);
2014-06-06 23:38:33 -05:00
}, { inputDisabled: true });
keyboardManager.bind('esc', function() {
var popups = $('.popover.in');
if (popups.length > 0) {
return;
}
// close modals
var modalData = $(".modal").data();
if (modalData && modalData.$scope && modalData.$scope.dismiss) {
modalData.$scope.dismiss();
}
scope.exitFullscreen();
2014-06-06 23:38:33 -05:00
}, { inputDisabled: true });
};
});
});