11
2- // global var that holds: 0- if ctrl key is not pressed 1- if ctrl key is pressed
3- var ctrlKeyHistory = 0 ;
2+ // var that holds: 0- if ctrl key is not pressed 1- if ctrl key is pressed
3+ let ctrlKeyHistory = 0 ;
44
55/**
66 * Allows moving around inputs/select by Ctrl+arrows
77 *
88 * @param {object } event data
99 */
10- function onKeyDownArrowsHandler ( event ) {
10+ const onKeyDownArrowsHandler = function ( event ) {
1111 var e = event || window . event ;
1212
1313 var o = ( e . srcElement || e . target ) ;
@@ -76,13 +76,13 @@ function onKeyDownArrowsHandler (event) {
7676 var id = 'field_' + y + '_' + x ;
7777
7878 var nO = document . getElementById ( id ) ;
79- if ( ! nO ) {
79+ if ( ! nO ) {
8080 id = 'field_' + y + '_' + x + '_0' ;
8181 nO = document . getElementById ( id ) ;
8282 }
8383
8484 // skip non existent fields
85- if ( ! nO ) {
85+ if ( ! nO ) {
8686 return ;
8787 }
8888
@@ -95,7 +95,7 @@ function onKeyDownArrowsHandler (event) {
9595 if ( isFirefox ) {
9696 var ffcheck = 0 ;
9797 var ffversion ;
98- for ( ffversion = 3 ; ffversion < 25 ; ffversion ++ ) {
98+ for ( ffversion = 3 ; ffversion < 25 ; ffversion ++ ) {
9999 var isFirefoxV24 = navigator . userAgent . toLowerCase ( ) . indexOf ( 'firefox/' + ffversion ) > - 1 ;
100100 if ( isFirefoxV24 ) {
101101 ffcheck = 1 ;
@@ -123,18 +123,34 @@ function onKeyDownArrowsHandler (event) {
123123 nO . select ( ) ;
124124 }
125125 e . returnValue = false ;
126- }
127-
128- window . AJAX . registerTeardown ( 'keyhandler.js' , function ( ) {
129- $ ( document ) . off ( 'keydown keyup' , '#table_columns' ) ;
130- $ ( document ) . off ( 'keydown keyup' , 'table.insertRowTable' ) ;
131- } ) ;
132-
133- window . AJAX . registerOnload ( 'keyhandler.js' , function ( ) {
134- $ ( document ) . on ( 'keydown keyup' , '#table_columns' , function ( event ) {
135- onKeyDownArrowsHandler ( event . originalEvent ) ;
136- } ) ;
137- $ ( document ) . on ( 'keydown keyup' , 'table.insertRowTable' , function ( event ) {
138- onKeyDownArrowsHandler ( event . originalEvent ) ;
139- } ) ;
140- } ) ;
126+ } ;
127+
128+ const KeyHandlerEvents = {
129+ /**
130+ * @return {function }
131+ */
132+ off : function ( ) {
133+ return function ( ) {
134+ $ ( document ) . off ( 'keydown keyup' , '#table_columns' ) ;
135+ $ ( document ) . off ( 'keydown keyup' , 'table.insertRowTable' ) ;
136+ } ;
137+ } ,
138+ /**
139+ * @return {function }
140+ */
141+ on : function ( ) {
142+ return function ( ) {
143+ $ ( document ) . on ( 'keydown keyup' , '#table_columns' , function ( event ) {
144+ onKeyDownArrowsHandler ( event . originalEvent ) ;
145+ } ) ;
146+ $ ( document ) . on ( 'keydown keyup' , 'table.insertRowTable' , function ( event ) {
147+ onKeyDownArrowsHandler ( event . originalEvent ) ;
148+ } ) ;
149+ } ;
150+ }
151+ } ;
152+
153+ window . KeyHandlerEvents = KeyHandlerEvents ;
154+
155+ window . AJAX . registerTeardown ( 'keyhandler.js' , window . KeyHandlerEvents . off ( ) ) ;
156+ window . AJAX . registerOnload ( 'keyhandler.js' , window . KeyHandlerEvents . on ( ) ) ;
0 commit comments