From 63187a2989b99f572306fea53aaf97d56a504f4c Mon Sep 17 00:00:00 2001 From: Marc Delisle Date: Thu, 31 Jan 2013 08:06:12 -0500 Subject: [PATCH 1/7] Attempt to fix bug #3787; works for table creation but not for editing a row --- js/keyhandler.js | 15 +++++++++++++++ libraries/tbl_columns_definition_form.inc.php | 7 ------- tbl_change.php | 6 +----- tbl_create.php | 9 +++++++++ 4 files changed, 25 insertions(+), 12 deletions(-) diff --git a/js/keyhandler.js b/js/keyhandler.js index 648ed3def1..8e84d2b3e9 100644 --- a/js/keyhandler.js +++ b/js/keyhandler.js @@ -4,6 +4,21 @@ * * @param object event data */ + +AJAX.registerTeardown('keyhandler.js', function() { + $('#table_columns').unbind('keydown'); + $('#insertRowTable').unbind('keydown'); +}); + +AJAX.registerOnload('keyhandler.js', function() { + $('#table_columns').bind('keydown', function(event) { + onKeyDownArrowsHandler(event); + }); + $('#insertRowTable').bind('keydown', function(event) { + onKeyDownArrowsHandler(event); + }); +}); + function onKeyDownArrowsHandler(e) { e = e||window.event; diff --git a/libraries/tbl_columns_definition_form.inc.php b/libraries/tbl_columns_definition_form.inc.php index 661eda6190..0f8adb201c 100644 --- a/libraries/tbl_columns_definition_form.inc.php +++ b/libraries/tbl_columns_definition_form.inc.php @@ -723,13 +723,6 @@ for ($i = 0; $i < $num_fields; $i++) { } } // end for -$html .= '' - . ''; - $html .= '
'; diff --git a/tbl_change.php b/tbl_change.php index 4962dd1fea..8e4ae0638c 100644 --- a/tbl_change.php +++ b/tbl_change.php @@ -114,6 +114,7 @@ $header = $response->getHeader(); $scripts = $header->getScripts(); $scripts->addFile('functions.js'); $scripts->addFile('tbl_change.js'); +$scripts->addFile('keyhandler.js'); $scripts->addFile('jquery/jquery-ui-timepicker-addon.js'); $scripts->addFile('gis_data_editor.js'); @@ -196,11 +197,6 @@ $chg_evt_handler = (PMA_USR_BROWSER_AGENT == 'IE' // some browsers send wrongly this form to the http server. $html_output = ''; -//Set on key handler for moving using by Ctrl+arrows -$html_output .= '' - . ''; // Set if we passed the first timestamp field $timestamp_seen = false; $columns_cnt = count($table_fields); diff --git a/tbl_create.php b/tbl_create.php index 490a49c13a..3de3608a61 100644 --- a/tbl_create.php +++ b/tbl_create.php @@ -13,6 +13,15 @@ $action = 'tbl_create.php'; $titles = PMA_Util::buildActionTitles(); +/** + * Load JavaScript files + */ +$response = PMA_Response::getInstance(); +$header = $response->getHeader(); +$scripts = $header->getScripts(); +$scripts->addFile('keyhandler.js'); + + // Check parameters PMA_Util::checkParameters(array('db')); From 70fcc15688740e20a32e272b7457ae7d28f1fd62 Mon Sep 17 00:00:00 2001 From: Atul Pratap Singh Date: Sat, 2 Feb 2013 01:27:42 +0530 Subject: [PATCH 2/7] Try fixing onkeydownarrowhandler while editing row, bug:3787 --- js/tbl_structure.js | 10 ++++++++-- tbl_addfield.php | 8 +++++++- tbl_structure.php | 4 +++- 3 files changed, 18 insertions(+), 4 deletions(-) diff --git a/js/tbl_structure.js b/js/tbl_structure.js index ebbd6291cd..b4da44b3ef 100644 --- a/js/tbl_structure.js +++ b/js/tbl_structure.js @@ -88,11 +88,14 @@ AJAX.registerOnload('tbl_structure.js', function() { $("a.change_column_anchor.ajax").live('click', function(event) { event.preventDefault(); $('#page_content').hide(); - $.get($(this).attr('href'), {'ajax_request': true}, function(data) { + $.get($(this).attr('href'), {'ajax_request': true, 'ajax_page_request': true}, function(data) { if (data.success) { $('
') .html(data.message) .insertBefore('#page_content'); + if (data._scripts) { + AJAX.scriptHandler.load(data._scripts); + } PMA_verifyColumnsProperties(); } else { PMA_ajaxShowMessage(PMA_messages['strErrorProcessingRequest'] + " : " + data.error, false); @@ -107,12 +110,15 @@ AJAX.registerOnload('tbl_structure.js', function() { event.preventDefault(); $('#page_content').hide(); var $form = $(this).closest('form'); - var params = $form.serialize() + "&ajax_request=true&submit_mult=change"; + var params = $form.serialize() + "&ajax_request=true&ajax_page_request=true&submit_mult=change"; $.post($form.prop("action"), params, function (data) { if (data.success) { $('
') .html(data.message) .insertBefore('#page_content'); + if (data._scripts) { + AJAX.scriptHandler.load(data._scripts); + } PMA_verifyColumnsProperties(); } else { PMA_ajaxShowMessage(PMA_messages['strErrorProcessingRequest'] + " : " + data.error, false); diff --git a/tbl_addfield.php b/tbl_addfield.php index 25f54c2681..622193aaeb 100644 --- a/tbl_addfield.php +++ b/tbl_addfield.php @@ -12,7 +12,13 @@ require_once 'libraries/common.inc.php'; // Check parameters PMA_Util::checkParameters(array('db', 'table')); - +/** + * Load JavaScript files + */ +$response = PMA_Response::getInstance(); +$header = $response->getHeader(); +$scripts = $header->getScripts(); +$scripts->addFile('keyhandler.js'); /** * Defines the url to return to in case of error in a sql statement diff --git a/tbl_structure.php b/tbl_structure.php index f7b9b31325..8dcab60e6b 100644 --- a/tbl_structure.php +++ b/tbl_structure.php @@ -39,6 +39,7 @@ if (isset($_REQUEST['move_columns']) * A click on Change has been made for one column */ if (isset($_REQUEST['change_column'])) { + $scripts->addFile('keyhandler.js'); PMA_displayHtmlForColumnChange($db, $table, null, 'tbl_structure.php'); exit; } @@ -62,7 +63,8 @@ if (isset($_REQUEST['do_save_data'])) { * * submit_mult_*_x comes from IE if is used */ -if (isset($_REQUEST['submit_mult_change_x'])) { +if (isset($_REQUEST['submit_mult']) && $_REQUEST['submit_mult'] == 'change') { + $scripts->addFile('keyhandler.js'); $submit_mult = 'change'; } elseif (isset($_REQUEST['submit_mult_drop_x'])) { $submit_mult = 'drop'; From a9703c023986a432d4fc3430d8862d7a2948bf44 Mon Sep 17 00:00:00 2001 From: Atul Pratap Singh Date: Sun, 3 Feb 2013 07:00:24 -0500 Subject: [PATCH 3/7] Was binding to the wrong element --- js/keyhandler.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/js/keyhandler.js b/js/keyhandler.js index 8e84d2b3e9..80943adacb 100644 --- a/js/keyhandler.js +++ b/js/keyhandler.js @@ -7,14 +7,14 @@ AJAX.registerTeardown('keyhandler.js', function() { $('#table_columns').unbind('keydown'); - $('#insertRowTable').unbind('keydown'); + $('table.insertRowTable').unbind('keydown'); }); AJAX.registerOnload('keyhandler.js', function() { $('#table_columns').bind('keydown', function(event) { onKeyDownArrowsHandler(event); }); - $('#insertRowTable').bind('keydown', function(event) { + $('table.insertRowTable').bind('keydown', function(event) { onKeyDownArrowsHandler(event); }); }); From 0138c1bb81628d1f3266b1c32e2d892b4d4ad521 Mon Sep 17 00:00:00 2001 From: Rouslan Placella Date: Sun, 3 Feb 2013 07:07:02 -0500 Subject: [PATCH 4/7] Better to pass a native DOM event --- js/keyhandler.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/js/keyhandler.js b/js/keyhandler.js index 80943adacb..4e30ddc2a5 100644 --- a/js/keyhandler.js +++ b/js/keyhandler.js @@ -12,10 +12,10 @@ AJAX.registerTeardown('keyhandler.js', function() { AJAX.registerOnload('keyhandler.js', function() { $('#table_columns').bind('keydown', function(event) { - onKeyDownArrowsHandler(event); + onKeyDownArrowsHandler(event.originalEvent); }); $('table.insertRowTable').bind('keydown', function(event) { - onKeyDownArrowsHandler(event); + onKeyDownArrowsHandler(event.originalEvent); }); }); From e48679885047efe938f143301e02209adbffee2b Mon Sep 17 00:00:00 2001 From: Rouslan Placella Date: Sun, 3 Feb 2013 08:38:11 -0500 Subject: [PATCH 5/7] Include keyhandler.js globally --- libraries/Header.class.php | 1 + tbl_change.php | 1 - tbl_create.php | 9 --------- 3 files changed, 1 insertion(+), 10 deletions(-) diff --git a/libraries/Header.class.php b/libraries/Header.class.php index b484718326..c295c47076 100644 --- a/libraries/Header.class.php +++ b/libraries/Header.class.php @@ -148,6 +148,7 @@ class PMA_Header { $this->_scripts->addFile('jquery/jquery-1.8.3.js'); $this->_scripts->addFile('ajax.js'); + $this->_scripts->addFile('keyhandler.js'); $this->_scripts->addFile('jquery/jquery-ui-1.9.2.custom.js'); $this->_scripts->addFile('jquery/jquery.sprintf.js'); $this->_scripts->addFile('jquery/jquery.cookie.js'); diff --git a/tbl_change.php b/tbl_change.php index 8e4ae0638c..2e6f542cd0 100644 --- a/tbl_change.php +++ b/tbl_change.php @@ -114,7 +114,6 @@ $header = $response->getHeader(); $scripts = $header->getScripts(); $scripts->addFile('functions.js'); $scripts->addFile('tbl_change.js'); -$scripts->addFile('keyhandler.js'); $scripts->addFile('jquery/jquery-ui-timepicker-addon.js'); $scripts->addFile('gis_data_editor.js'); diff --git a/tbl_create.php b/tbl_create.php index 3de3608a61..490a49c13a 100644 --- a/tbl_create.php +++ b/tbl_create.php @@ -13,15 +13,6 @@ $action = 'tbl_create.php'; $titles = PMA_Util::buildActionTitles(); -/** - * Load JavaScript files - */ -$response = PMA_Response::getInstance(); -$header = $response->getHeader(); -$scripts = $header->getScripts(); -$scripts->addFile('keyhandler.js'); - - // Check parameters PMA_Util::checkParameters(array('db')); From 4817037440b97448b367dd13035925b7f6673146 Mon Sep 17 00:00:00 2001 From: Marc Delisle Date: Sun, 3 Feb 2013 08:39:28 -0500 Subject: [PATCH 6/7] Revert "Try fixing onkeydownarrowhandler while editing row, bug:3787" This reverts commit 70fcc15688740e20a32e272b7457ae7d28f1fd62. No longer needed --- js/tbl_structure.js | 10 ++-------- tbl_addfield.php | 8 +------- tbl_structure.php | 4 +--- 3 files changed, 4 insertions(+), 18 deletions(-) diff --git a/js/tbl_structure.js b/js/tbl_structure.js index b4da44b3ef..ebbd6291cd 100644 --- a/js/tbl_structure.js +++ b/js/tbl_structure.js @@ -88,14 +88,11 @@ AJAX.registerOnload('tbl_structure.js', function() { $("a.change_column_anchor.ajax").live('click', function(event) { event.preventDefault(); $('#page_content').hide(); - $.get($(this).attr('href'), {'ajax_request': true, 'ajax_page_request': true}, function(data) { + $.get($(this).attr('href'), {'ajax_request': true}, function(data) { if (data.success) { $('
') .html(data.message) .insertBefore('#page_content'); - if (data._scripts) { - AJAX.scriptHandler.load(data._scripts); - } PMA_verifyColumnsProperties(); } else { PMA_ajaxShowMessage(PMA_messages['strErrorProcessingRequest'] + " : " + data.error, false); @@ -110,15 +107,12 @@ AJAX.registerOnload('tbl_structure.js', function() { event.preventDefault(); $('#page_content').hide(); var $form = $(this).closest('form'); - var params = $form.serialize() + "&ajax_request=true&ajax_page_request=true&submit_mult=change"; + var params = $form.serialize() + "&ajax_request=true&submit_mult=change"; $.post($form.prop("action"), params, function (data) { if (data.success) { $('
') .html(data.message) .insertBefore('#page_content'); - if (data._scripts) { - AJAX.scriptHandler.load(data._scripts); - } PMA_verifyColumnsProperties(); } else { PMA_ajaxShowMessage(PMA_messages['strErrorProcessingRequest'] + " : " + data.error, false); diff --git a/tbl_addfield.php b/tbl_addfield.php index 622193aaeb..25f54c2681 100644 --- a/tbl_addfield.php +++ b/tbl_addfield.php @@ -12,13 +12,7 @@ require_once 'libraries/common.inc.php'; // Check parameters PMA_Util::checkParameters(array('db', 'table')); -/** - * Load JavaScript files - */ -$response = PMA_Response::getInstance(); -$header = $response->getHeader(); -$scripts = $header->getScripts(); -$scripts->addFile('keyhandler.js'); + /** * Defines the url to return to in case of error in a sql statement diff --git a/tbl_structure.php b/tbl_structure.php index 8dcab60e6b..f7b9b31325 100644 --- a/tbl_structure.php +++ b/tbl_structure.php @@ -39,7 +39,6 @@ if (isset($_REQUEST['move_columns']) * A click on Change has been made for one column */ if (isset($_REQUEST['change_column'])) { - $scripts->addFile('keyhandler.js'); PMA_displayHtmlForColumnChange($db, $table, null, 'tbl_structure.php'); exit; } @@ -63,8 +62,7 @@ if (isset($_REQUEST['do_save_data'])) { * * submit_mult_*_x comes from IE if is used */ -if (isset($_REQUEST['submit_mult']) && $_REQUEST['submit_mult'] == 'change') { - $scripts->addFile('keyhandler.js'); +if (isset($_REQUEST['submit_mult_change_x'])) { $submit_mult = 'change'; } elseif (isset($_REQUEST['submit_mult_drop_x'])) { $submit_mult = 'drop'; From 00a6af227fb6c45e38bccd6db16422b54785ab5c Mon Sep 17 00:00:00 2001 From: Rouslan Placella Date: Sun, 3 Feb 2013 09:01:23 -0500 Subject: [PATCH 7/7] Needed for editing multiple data rows, changing one or multiple column structure --- js/keyhandler.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/js/keyhandler.js b/js/keyhandler.js index 4e30ddc2a5..b8f8137c37 100644 --- a/js/keyhandler.js +++ b/js/keyhandler.js @@ -6,15 +6,15 @@ */ AJAX.registerTeardown('keyhandler.js', function() { - $('#table_columns').unbind('keydown'); - $('table.insertRowTable').unbind('keydown'); + $('#table_columns').die('keydown'); + $('table.insertRowTable').die('keydown'); }); AJAX.registerOnload('keyhandler.js', function() { - $('#table_columns').bind('keydown', function(event) { + $('#table_columns').live('keydown', function(event) { onKeyDownArrowsHandler(event.originalEvent); }); - $('table.insertRowTable').bind('keydown', function(event) { + $('table.insertRowTable').live('keydown', function(event) { onKeyDownArrowsHandler(event.originalEvent); }); });