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