From 04d6d5ca99ebfd1cebb8ce06618fb3811fc1a8aa Mon Sep 17 00:00:00 2001 From: Charles Date: Thu, 9 Jan 2020 10:55:03 +0100 Subject: phpmyadmin working --- srcs/phpmyadmin/js/shortcuts_handler.js | 107 ++++++++++++++++++++++++++++++++ 1 file changed, 107 insertions(+) create mode 100644 srcs/phpmyadmin/js/shortcuts_handler.js (limited to 'srcs/phpmyadmin/js/shortcuts_handler.js') diff --git a/srcs/phpmyadmin/js/shortcuts_handler.js b/srcs/phpmyadmin/js/shortcuts_handler.js new file mode 100644 index 0000000..c9e467c --- /dev/null +++ b/srcs/phpmyadmin/js/shortcuts_handler.js @@ -0,0 +1,107 @@ +/* vim: set expandtab sw=4 ts=4 sts=4: */ +/** + * @fileoverview Handle shortcuts in various pages + * @name Shortcuts handler + * + * @requires jQuery + * @requires jQueryUI + */ + +/* global Console */ // js/console.js + +/** + * Register key events on load + */ +$(function () { + var databaseOp = false; + var tableOp = false; + var keyD = 68; + var keyT = 84; + var keyK = 75; + var keyS = 83; + var keyF = 70; + var keyE = 69; + var keyH = 72; + var keyC = 67; + var keyBackSpace = 8; + $(document).on('keyup', function (e) { + if (e.target.nodeName === 'INPUT' || e.target.nodeName === 'TEXTAREA' || e.target.nodeName === 'SELECT') { + return; + } + + if (e.keyCode === keyD) { + setTimeout(function () { + databaseOp = false; + }, 2000); + } else if (e.keyCode === keyT) { + setTimeout(function () { + tableOp = false; + }, 2000); + } + }); + $(document).on('keydown', function (e) { + // disable the shortcuts when session has timed out. + if ($('#modalOverlay').length > 0) { + return; + } + if (e.ctrlKey && e.altKey && e.keyCode === keyC) { + Console.toggle(); + } + + if (e.ctrlKey && e.keyCode === keyK) { + e.preventDefault(); + Console.toggle(); + } + + if (e.target.nodeName === 'INPUT' || e.target.nodeName === 'TEXTAREA' || e.target.nodeName === 'SELECT') { + return; + } + + var isTable; + var isDb; + if (e.keyCode === keyD) { + databaseOp = true; + } else if (e.keyCode === keyK) { + e.preventDefault(); + Console.toggle(); + } else if (e.keyCode === keyS) { + if (databaseOp === true) { + isTable = CommonParams.get('table'); + isDb = CommonParams.get('db'); + if (isDb && ! isTable) { + $('.tab .ic_b_props').first().trigger('click'); + } + } else if (tableOp === true) { + isTable = CommonParams.get('table'); + isDb = CommonParams.get('db'); + if (isDb && isTable) { + $('.tab .ic_b_props').first().trigger('click'); + } + } else { + $('#pma_navigation_settings_icon').trigger('click'); + } + } else if (e.keyCode === keyF) { + if (databaseOp === true) { + isTable = CommonParams.get('table'); + isDb = CommonParams.get('db'); + if (isDb && ! isTable) { + $('.tab .ic_b_search').first().trigger('click'); + } + } else if (tableOp === true) { + isTable = CommonParams.get('table'); + isDb = CommonParams.get('db'); + if (isDb && isTable) { + $('.tab .ic_b_search').first().trigger('click'); + } + } + } else if (e.keyCode === keyT) { + tableOp = true; + } else if (e.keyCode === keyE) { + $('.ic_b_export').first().trigger('click'); + } else if (e.keyCode === keyBackSpace) { + window.history.back(); + } else if (e.keyCode === keyH) { + $('.ic_b_home').first().trigger('click'); + } + }); +}); -- cgit