aboutsummaryrefslogtreecommitdiff
path: root/srcs/phpmyadmin/js/shortcuts_handler.js
diff options
context:
space:
mode:
authorCharles <sircharlesaze@gmail.com>2020-01-09 10:55:03 +0100
committerCharles <sircharlesaze@gmail.com>2020-01-09 13:09:38 +0100
commit04d6d5ca99ebfd1cebb8ce06618fb3811fc1a8aa (patch)
tree5c691241355c943a3c68ddb06b8cf8c60aa11319 /srcs/phpmyadmin/js/shortcuts_handler.js
parent7e0d85db834d6351ed85d01e5126ac31dc510b86 (diff)
downloadft_server-04d6d5ca99ebfd1cebb8ce06618fb3811fc1a8aa.tar.gz
ft_server-04d6d5ca99ebfd1cebb8ce06618fb3811fc1a8aa.tar.bz2
ft_server-04d6d5ca99ebfd1cebb8ce06618fb3811fc1a8aa.zip
phpmyadmin working
Diffstat (limited to 'srcs/phpmyadmin/js/shortcuts_handler.js')
-rw-r--r--srcs/phpmyadmin/js/shortcuts_handler.js107
1 files changed, 107 insertions, 0 deletions
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');
+ }
+ });
+});