You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
123 lines
3.2 KiB
123 lines
3.2 KiB
/** |
|
* @fileoverview Handle shortcuts in various pages |
|
* @name Shortcuts handler |
|
* |
|
* @requires jQuery |
|
* @requires jQueryUI |
|
*/ |
|
|
|
/* global Console */ |
|
// js/console.js |
|
|
|
/** |
|
* Register key events on load |
|
*/ |
|
$(function () { |
|
var databaseOp = false; |
|
var tableOp = false; |
|
var keyD = 68; |
|
var keyT = 84; |
|
var keyK = 75; |
|
var keyS = 83; |
|
var keyF = 70; |
|
var keyE = 69; |
|
var keyH = 72; |
|
var keyC = 67; |
|
var keyBackSpace = 8; |
|
$(document).on('keyup', function (e) { |
|
// is a string but is also a boolean according to https://api.jquery.com/prop/ |
|
if ($(e.target).prop('contenteditable') === 'true' || $(e.target).prop('contenteditable') === true) { |
|
return; |
|
} |
|
|
|
if (e.target.nodeName === 'INPUT' || e.target.nodeName === 'TEXTAREA' || e.target.nodeName === 'SELECT') { |
|
return; |
|
} |
|
|
|
if (e.keyCode === keyD) { |
|
setTimeout(function () { |
|
databaseOp = false; |
|
}, 2000); |
|
} else if (e.keyCode === keyT) { |
|
setTimeout(function () { |
|
tableOp = false; |
|
}, 2000); |
|
} |
|
}); |
|
$(document).on('keydown', function (e) { |
|
// is a string but is also a boolean according to https://api.jquery.com/prop/ |
|
if ($(e.target).prop('contenteditable') === 'true' || $(e.target).prop('contenteditable') === true) { |
|
return; |
|
} // disable the shortcuts when session has timed out. |
|
|
|
|
|
if ($('#modalOverlay').length > 0) { |
|
return; |
|
} |
|
|
|
if (e.ctrlKey && e.altKey && e.keyCode === keyC) { |
|
Console.toggle(); |
|
} |
|
|
|
if (e.ctrlKey && e.keyCode === keyK) { |
|
e.preventDefault(); |
|
Console.toggle(); |
|
} |
|
|
|
if (e.target.nodeName === 'INPUT' || e.target.nodeName === 'TEXTAREA' || e.target.nodeName === 'SELECT') { |
|
return; |
|
} |
|
|
|
var isTable; |
|
var isDb; |
|
|
|
if (e.keyCode === keyD) { |
|
databaseOp = true; |
|
} else if (e.keyCode === keyK) { |
|
e.preventDefault(); |
|
Console.toggle(); |
|
} else if (e.keyCode === keyS) { |
|
if (databaseOp === true) { |
|
isTable = CommonParams.get('table'); |
|
isDb = CommonParams.get('db'); |
|
|
|
if (isDb && !isTable) { |
|
$('.nav-link .ic_b_props').first().trigger('click'); |
|
} |
|
} else if (tableOp === true) { |
|
isTable = CommonParams.get('table'); |
|
isDb = CommonParams.get('db'); |
|
|
|
if (isDb && isTable) { |
|
$('.nav-link .ic_b_props').first().trigger('click'); |
|
} |
|
} else { |
|
$('#pma_navigation_settings_icon').trigger('click'); |
|
} |
|
} else if (e.keyCode === keyF) { |
|
if (databaseOp === true) { |
|
isTable = CommonParams.get('table'); |
|
isDb = CommonParams.get('db'); |
|
|
|
if (isDb && !isTable) { |
|
$('.nav-link .ic_b_search').first().trigger('click'); |
|
} |
|
} else if (tableOp === true) { |
|
isTable = CommonParams.get('table'); |
|
isDb = CommonParams.get('db'); |
|
|
|
if (isDb && isTable) { |
|
$('.nav-link .ic_b_search').first().trigger('click'); |
|
} |
|
} |
|
} else if (e.keyCode === keyT) { |
|
tableOp = true; |
|
} else if (e.keyCode === keyE) { |
|
$('.ic_b_export').first().trigger('click'); |
|
} else if (e.keyCode === keyBackSpace) { |
|
window.history.back(); |
|
} else if (e.keyCode === keyH) { |
|
$('.ic_b_home').first().trigger('click'); |
|
} |
|
}); |
|
}); |