Translated using Weblate (Slovenian)
[phpmyadmin.git] / js / shortcuts_handler.js
blob49db60f13cfa578022d9e1bc445906c0b011463e
1 /**
2  * @fileoverview    Handle shortcuts in various pages
3  * @name            Shortcuts handler
4  *
5  * @requires    jQuery
6  * @requires    jQueryUI
7  */
9 /* global Console */ // js/console.js
11 /**
12  * Register key events on load
13  */
14 $(function () {
15     var databaseOp = false;
16     var tableOp = false;
17     var keyD = 68;
18     var keyT = 84;
19     var keyK = 75;
20     var keyS = 83;
21     var keyF = 70;
22     var keyE = 69;
23     var keyH = 72;
24     var keyC = 67;
25     var keyBackSpace = 8;
26     $(document).on('keyup', function (e) {
27         // is a string but is also a boolean according to https://api.jquery.com/prop/
28         if ($(e.target).prop('contenteditable') === 'true' || $(e.target).prop('contenteditable') === true) {
29             return;
30         }
32         if (e.target.nodeName === 'INPUT' || e.target.nodeName === 'TEXTAREA' || e.target.nodeName === 'SELECT') {
33             return;
34         }
36         if (e.keyCode === keyD) {
37             setTimeout(function () {
38                 databaseOp = false;
39             }, 2000);
40         } else if (e.keyCode === keyT) {
41             setTimeout(function () {
42                 tableOp = false;
43             }, 2000);
44         }
45     });
46     $(document).on('keydown', function (e) {
47         // is a string but is also a boolean according to https://api.jquery.com/prop/
48         if ($(e.target).prop('contenteditable') === 'true' || $(e.target).prop('contenteditable') === true) {
49             return;
50         }
52         // disable the shortcuts when session has timed out.
53         if ($('#modalOverlay').length > 0) {
54             return;
55         }
56         if (e.ctrlKey && e.altKey && e.keyCode === keyC) {
57             Console.toggle();
58         }
60         if (e.ctrlKey && e.keyCode === keyK) {
61             e.preventDefault();
62             Console.toggle();
63         }
65         if (e.target.nodeName === 'INPUT' || e.target.nodeName === 'TEXTAREA' || e.target.nodeName === 'SELECT') {
66             return;
67         }
69         var isTable;
70         var isDb;
71         if (e.keyCode === keyD) {
72             databaseOp = true;
73         } else if (e.keyCode === keyK) {
74             e.preventDefault();
75             Console.toggle();
76         } else if (e.keyCode === keyS) {
77             if (databaseOp === true) {
78                 isTable = CommonParams.get('table');
79                 isDb = CommonParams.get('db');
80                 if (isDb && ! isTable) {
81                     $('.tab .ic_b_props').first().trigger('click');
82                 }
83             } else if (tableOp === true) {
84                 isTable = CommonParams.get('table');
85                 isDb = CommonParams.get('db');
86                 if (isDb && isTable) {
87                     $('.tab .ic_b_props').first().trigger('click');
88                 }
89             } else {
90                 $('#pma_navigation_settings_icon').trigger('click');
91             }
92         } else if (e.keyCode === keyF) {
93             if (databaseOp === true) {
94                 isTable = CommonParams.get('table');
95                 isDb = CommonParams.get('db');
96                 if (isDb && ! isTable) {
97                     $('.tab .ic_b_search').first().trigger('click');
98                 }
99             } else if (tableOp === true) {
100                 isTable = CommonParams.get('table');
101                 isDb = CommonParams.get('db');
102                 if (isDb && isTable) {
103                     $('.tab .ic_b_search').first().trigger('click');
104                 }
105             }
106         } else if (e.keyCode === keyT) {
107             tableOp = true;
108         } else if (e.keyCode === keyE) {
109             $('.ic_b_export').first().trigger('click');
110         } else if (e.keyCode === keyBackSpace) {
111             window.history.back();
112         } else if (e.keyCode === keyH) {
113             $('.ic_b_home').first().trigger('click');
114         }
115     });