Translated using Weblate (Slovenian)
[phpmyadmin.git] / js / shortcuts_handler.js
blob968c4e4b6ea7b22a9bd9c3d05cb2f781813dad57
1 /* vim: set expandtab sw=4 ts=4 sts=4: */
2 /**
3  * @fileoverview    Handle shortcuts in various pages
4  * @name            Shortcuts handler
5  *
6  * @requires    jQuery
7  * @requires    jQueryUI
8  */
10 /**
11  * Register key events on load
12  */
13 $(document).ready(function () {
14     var databaseOp = false;
15     var tableOp = false;
16     var keyD = 68;
17     var keyT = 84;
18     var keyK = 75;
19     var keyS = 83;
20     var keyF = 70;
21     var keyE = 69;
22     var keyH = 72;
23     var keyC = 67;
24     var keyBackSpace = 8;
25     $(document).on('keyup', function (e) {
26         if (e.target.nodeName === 'INPUT' || e.target.nodeName === 'TEXTAREA' || e.target.nodeName === 'SELECT') {
27             return;
28         }
30         if (e.keyCode === keyD) {
31             setTimeout(function () {
32                 databaseOp = false;
33             }, 2000);
34         } else if (e.keyCode === keyT) {
35             setTimeout(function () {
36                 tableOp = false;
37             }, 2000);
38         }
39     });
40     $(document).on('keydown', function (e) {
41         // disable the shortcuts when session has timed out.
42         if ($('#modalOverlay').length > 0) {
43             return;
44         }
45         if (e.ctrlKey && e.altKey && e.keyCode === keyC) {
46             PMA_console.toggle();
47         }
49         if (e.ctrlKey && e.keyCode === keyK) {
50             e.preventDefault();
51             PMA_console.toggle();
52         }
54         if (e.target.nodeName === 'INPUT' || e.target.nodeName === 'TEXTAREA' || e.target.nodeName === 'SELECT') {
55             return;
56         }
58         var isTable;
59         var isDb;
60         if (e.keyCode === keyD) {
61             databaseOp = true;
62         } else if (e.keyCode === keyK) {
63             e.preventDefault();
64             PMA_console.toggle();
65         } else if (e.keyCode === keyS) {
66             if (databaseOp === true) {
67                 isTable = PMA_commonParams.get('table');
68                 isDb = PMA_commonParams.get('db');
69                 if (isDb && ! isTable) {
70                     $('.tab .ic_b_props').first().trigger('click');
71                 }
72             } else if (tableOp === true) {
73                 isTable = PMA_commonParams.get('table');
74                 isDb = PMA_commonParams.get('db');
75                 if (isDb && isTable) {
76                     $('.tab .ic_b_props').first().trigger('click');
77                 }
78             } else {
79                 $('#pma_navigation_settings_icon').trigger('click');
80             }
81         } else if (e.keyCode === keyF) {
82             if (databaseOp === true) {
83                 isTable = PMA_commonParams.get('table');
84                 isDb = PMA_commonParams.get('db');
85                 if (isDb && ! isTable) {
86                     $('.tab .ic_b_search').first().trigger('click');
87                 }
88             } else if (tableOp === true) {
89                 isTable = PMA_commonParams.get('table');
90                 isDb = PMA_commonParams.get('db');
91                 if (isDb && isTable) {
92                     $('.tab .ic_b_search').first().trigger('click');
93                 }
94             }
95         } else if (e.keyCode === keyT) {
96             tableOp = true;
97         } else if (e.keyCode === keyE) {
98             $('.ic_b_export').first().trigger('click');
99         } else if (e.keyCode === keyBackSpace) {
100             window.history.back();
101         } else if (e.keyCode === keyH) {
102             $('.ic_b_home').first().trigger('click');
103         }
104     });