Extract functions in keyhandler.js file

Signed-off-by: Maurício Meneghini Fauth <mauricio@fauth.dev>
This commit is contained in:
Maurício Meneghini Fauth 2022-06-25 16:30:42 -03:00
parent 664811562a
commit 0c1859477d
No known key found for this signature in database
GPG Key ID: 6A16FD38AFC89CC8

View File

@ -1,13 +1,13 @@
// global var that holds: 0- if ctrl key is not pressed 1- if ctrl key is pressed
var ctrlKeyHistory = 0;
// var that holds: 0- if ctrl key is not pressed 1- if ctrl key is pressed
let ctrlKeyHistory = 0;
/**
* Allows moving around inputs/select by Ctrl+arrows
*
* @param {object} event data
*/
function onKeyDownArrowsHandler (event) {
const onKeyDownArrowsHandler = function (event) {
var e = event || window.event;
var o = (e.srcElement || e.target);
@ -76,13 +76,13 @@ function onKeyDownArrowsHandler (event) {
var id = 'field_' + y + '_' + x;
var nO = document.getElementById(id);
if (! nO) {
if (!nO) {
id = 'field_' + y + '_' + x + '_0';
nO = document.getElementById(id);
}
// skip non existent fields
if (! nO) {
if (!nO) {
return;
}
@ -95,7 +95,7 @@ function onKeyDownArrowsHandler (event) {
if (isFirefox) {
var ffcheck = 0;
var ffversion;
for (ffversion = 3 ; ffversion < 25 ; ffversion++) {
for (ffversion = 3; ffversion < 25; ffversion++) {
var isFirefoxV24 = navigator.userAgent.toLowerCase().indexOf('firefox/' + ffversion) > -1;
if (isFirefoxV24) {
ffcheck = 1;
@ -123,18 +123,34 @@ function onKeyDownArrowsHandler (event) {
nO.select();
}
e.returnValue = false;
}
};
window.AJAX.registerTeardown('keyhandler.js', function () {
$(document).off('keydown keyup', '#table_columns');
$(document).off('keydown keyup', 'table.insertRowTable');
});
const KeyHandlerEvents = {
/**
* @return {function}
*/
off: function () {
return function () {
$(document).off('keydown keyup', '#table_columns');
$(document).off('keydown keyup', 'table.insertRowTable');
};
},
/**
* @return {function}
*/
on: function () {
return function () {
$(document).on('keydown keyup', '#table_columns', function (event) {
onKeyDownArrowsHandler(event.originalEvent);
});
$(document).on('keydown keyup', 'table.insertRowTable', function (event) {
onKeyDownArrowsHandler(event.originalEvent);
});
};
}
};
window.AJAX.registerOnload('keyhandler.js', function () {
$(document).on('keydown keyup', '#table_columns', function (event) {
onKeyDownArrowsHandler(event.originalEvent);
});
$(document).on('keydown keyup', 'table.insertRowTable', function (event) {
onKeyDownArrowsHandler(event.originalEvent);
});
});
window.KeyHandlerEvents = KeyHandlerEvents;
window.AJAX.registerTeardown('keyhandler.js', window.KeyHandlerEvents.off());
window.AJAX.registerOnload('keyhandler.js', window.KeyHandlerEvents.on());