From aac6a9e5bd652d9eb27077490b2d47c932efa3d4 Mon Sep 17 00:00:00 2001 From: Rouslan Placella Date: Fri, 15 Jun 2012 19:46:43 +0100 Subject: [PATCH 1/4] Don't refresh the whole list when dropping databases in server_databases.php (Avoids pointless AJAX request) --- js/server_databases.js | 13 +++++++++++-- server_databases.php | 4 ++-- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/js/server_databases.js b/js/server_databases.js index 14684279f0..9443ca01a4 100644 --- a/js/server_databases.js +++ b/js/server_databases.js @@ -31,6 +31,7 @@ $(function() { */ var selected_dbs = []; $form.find('input:checkbox:checked').each(function () { + $(this).closest('tr').addClass('removeMe'); selected_dbs[selected_dbs.length] = 'DROP DATABASE `' + escapeHtml($(this).val()) + '`;'; }); if (! selected_dbs.length) { @@ -55,12 +56,20 @@ $(function() { $.post(url, function(data) { if(data.success == true) { PMA_ajaxShowMessage(data.message); + + var $rowsToRemove = $form.find('tr.removeMe'); + var $databasesCount = $('#databases_count'); + var newCount = parseInt($databasesCount.text()) - $rowsToRemove.length; + $databasesCount.text(newCount); + + $rowsToRemove.remove(); + $form.find('tbody').PMA_sort_table('.name'); if (window.parent && window.parent.frame_navigation) { window.parent.frame_navigation.location.reload(); } - $('#tableslistcontainer').load('server_databases.php form#dbStatsForm'); } else { - PMA_ajaxShowMessage(PMA_messages.strErrorProcessingRequest + ": " + data.error, false); + $form.find('tr.removeMe').removeClass('removeMe'); + PMA_ajaxShowMessage(data.error, false); } }); // end $.post() }); // end $.PMA_confirm() diff --git a/server_databases.php b/server_databases.php index a15e2cd178..5c30955b65 100644 --- a/server_databases.php +++ b/server_databases.php @@ -246,7 +246,7 @@ if ($databases_count > 0) { } // end foreach ($databases as $key => $current) unset($current, $odd_row); - echo '' . "\n"; + echo '' . "\n"; if ($is_superuser || $cfg['AllowUserDropDatabase']) { echo ' ' . "\n"; } @@ -285,7 +285,7 @@ if ($databases_count > 0) { echo ' ' . "\n"; } echo '' . "\n"; - echo '' . "\n" + echo '' . "\n" .'' . "\n"; unset($column_order, $stat_name, $stat, $databases, $table_columns); From ee5ffd8df6d88599a2d8729efaa91ad5cd6fee19 Mon Sep 17 00:00:00 2001 From: Rouslan Placella Date: Fri, 15 Jun 2012 19:52:21 +0100 Subject: [PATCH 2/4] Moved 'create database' ajax handler back to server_databases.js, since it's no longer required on main.php --- js/functions.js | 43 ------------------------------------------ js/server_databases.js | 39 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+), 43 deletions(-) diff --git a/js/functions.js b/js/functions.js index c907328c1e..570b93c808 100644 --- a/js/functions.js +++ b/js/functions.js @@ -2494,49 +2494,6 @@ $(function() { }); //end of Drop Database Ajax action }); // end of $() for Drop Database -/** - * Attach Ajax event handlers for 'Create Database'. Used wherever libraries/ - * display_create_database.lib.php is used, ie main.php and server_databases.php - * - * @see $cfg['AjaxEnable'] - */ -$(function() { - - $('#create_database_form.ajax').live('submit', function(event) { - event.preventDefault(); - - $form = $(this); - - PMA_ajaxShowMessage(PMA_messages['strProcessingRequest']); - PMA_prepareForAjaxRequest($form); - - $.post($form.attr('action'), $form.serialize(), function(data) { - if (data.success == true) { - PMA_ajaxShowMessage(data.message); - - //Append database's row to table - $("#tabledatabases") - .find('tbody') - .append(data.new_db_string) - .PMA_sort_table('.name') - .find('#db_summary_row') - .appendTo('#tabledatabases tbody') - .removeClass('odd even'); - - var $databases_count_object = $('#databases_count'); - var databases_count = parseInt($databases_count_object.text()) + 1; - $databases_count_object.text(databases_count); - //Refresh navigation frame as a new database has been added - if (window.parent && window.parent.frame_navigation) { - window.parent.frame_navigation.location.reload(); - } - } else { - PMA_ajaxShowMessage(data.error, false); - } - }); // end $.post() - }); // end $().live() -}); // end $() for Create Database - /** * Validates the password field in a form * diff --git a/js/server_databases.js b/js/server_databases.js index 9443ca01a4..aefb603a06 100644 --- a/js/server_databases.js +++ b/js/server_databases.js @@ -74,4 +74,43 @@ $(function() { }); // end $.post() }); // end $.PMA_confirm() }) ; //end of Drop Database action + + /** + * Attach Ajax event handlers for 'Create Database'. + * + * @see $cfg['AjaxEnable'] + */ + $('#create_database_form.ajax').live('submit', function(event) { + event.preventDefault(); + + $form = $(this); + + PMA_ajaxShowMessage(PMA_messages['strProcessingRequest']); + PMA_prepareForAjaxRequest($form); + + $.post($form.attr('action'), $form.serialize(), function(data) { + if (data.success == true) { + PMA_ajaxShowMessage(data.message); + + //Append database's row to table + $("#tabledatabases") + .find('tbody') + .append(data.new_db_string) + .PMA_sort_table('.name') + .find('#db_summary_row') + .appendTo('#tabledatabases tbody') + .removeClass('odd even'); + + var $databases_count_object = $('#databases_count'); + var databases_count = parseInt($databases_count_object.text()) + 1; + $databases_count_object.text(databases_count); + //Refresh navigation frame as a new database has been added + if (window.parent && window.parent.frame_navigation) { + window.parent.frame_navigation.location.reload(); + } + } else { + PMA_ajaxShowMessage(data.error, false); + } + }); // end $.post() + }); // end $().live() }); // end $() From 11a5cd8194cbedd111b6f435fc579ef6b874d094 Mon Sep 17 00:00:00 2001 From: Rouslan Placella Date: Fri, 15 Jun 2012 19:53:45 +0100 Subject: [PATCH 3/4] Validate database name on client side when creating one --- js/server_databases.js | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/js/server_databases.js b/js/server_databases.js index aefb603a06..89c575e9f5 100644 --- a/js/server_databases.js +++ b/js/server_databases.js @@ -85,6 +85,13 @@ $(function() { $form = $(this); + var newDbNameInput = $form.find('input[name=new_db]'); + if (newDbNameInput.val() === '') { + newDbNameInput.focus(); + alert(PMA_messages['strFormEmpty']); + return; + } + PMA_ajaxShowMessage(PMA_messages['strProcessingRequest']); PMA_prepareForAjaxRequest($form); From 8e51382fcdf7a49b242f4316ac7fb1fa0e30e1f3 Mon Sep 17 00:00:00 2001 From: Rouslan Placella Date: Fri, 15 Jun 2012 20:27:44 +0100 Subject: [PATCH 4/4] Drop dead code --- js/server_databases.js | 5 +---- server_databases.php | 2 +- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/js/server_databases.js b/js/server_databases.js index 89c575e9f5..abf31b2caf 100644 --- a/js/server_databases.js +++ b/js/server_databases.js @@ -103,10 +103,7 @@ $(function() { $("#tabledatabases") .find('tbody') .append(data.new_db_string) - .PMA_sort_table('.name') - .find('#db_summary_row') - .appendTo('#tabledatabases tbody') - .removeClass('odd even'); + .PMA_sort_table('.name'); var $databases_count_object = $('#databases_count'); var databases_count = parseInt($databases_count_object.text()) + 1; diff --git a/server_databases.php b/server_databases.php index 5c30955b65..9389a6eb59 100644 --- a/server_databases.php +++ b/server_databases.php @@ -246,7 +246,7 @@ if ($databases_count > 0) { } // end foreach ($databases as $key => $current) unset($current, $odd_row); - echo '' . "\n"; + echo '' . "\n"; if ($is_superuser || $cfg['AllowUserDropDatabase']) { echo ' ' . "\n"; }