diff options
author | Jo Michael <me@mynetx.net> | 2012-04-21 04:13:48 +0400 |
---|---|---|
committer | Jo Michael <me@mynetx.net> | 2012-04-21 04:13:48 +0400 |
commit | 62b2d09da18ef40cdd6008dba5f9f60027831070 (patch) | |
tree | 37ca355e2027a5056904fcaa347ef9dcf470160d | |
parent | d49c63424ff18a5ae46590aa9161c36d17f3438f (diff) |
Delete databases with Ajax
-rw-r--r-- | js/messages.php | 1 | ||||
-rw-r--r-- | js/server_databases.js | 69 | ||||
-rw-r--r-- | server_databases.php | 22 |
3 files changed, 88 insertions, 4 deletions
diff --git a/js/messages.php b/js/messages.php index eab572caa6..96e3c01bbf 100644 --- a/js/messages.php +++ b/js/messages.php @@ -231,6 +231,7 @@ $js_messages['strCancel'] = __('Cancel'); $js_messages['strLoading'] = __('Loading'); $js_messages['strProcessingRequest'] = __('Processing Request'); $js_messages['strErrorProcessingRequest'] = __('Error in Processing Request'); +$js_messages['strNoDatabasesSelected'] = __('No databases selected.'); $js_messages['strDroppingColumn'] = __('Dropping Column'); $js_messages['strAddingPrimaryKey'] = __('Adding Primary Key'); $js_messages['strOK'] = __('OK'); diff --git a/js/server_databases.js b/js/server_databases.js new file mode 100644 index 0000000000..6436e9f5fb --- /dev/null +++ b/js/server_databases.js @@ -0,0 +1,69 @@ +/* vim: set expandtab sw=4 ts=4 sts=4: */ +/** + * @fileoverview functions used on the server databases list page + * @name Server Databases + * + * @requires jQuery + * @requires jQueryUI + * @required js/functions.js + */ + +/** + * AJAX scripts for server_databases.php + * + * Actions ajaxified here: + * Drop Databases + * + */ +$(document).ready(function() { + /** + * Attach Event Handler for 'Drop Databases' + * + * (see $GLOBALS['cfg']['AjaxEnable']) + */ + $("button[name=drop_selected_dbs].ajax").live('click', function(event) { + event.preventDefault(); + + var $form = $(this.form); + + /** + * @var selected_dbs Array containing the names of the checked databases + */ + var selected_dbs = []; + $form.find('input:checkbox:checked').each(function () { + selected_dbs[selected_dbs.length] = 'DROP DATABASE `' + escapeHtml($(this).val()) + '`;'; + }); + if (! selected_dbs.length) { + PMA_ajaxShowMessage(PMA_messages.strNoDatabasesSelected, 2000); + return; + } + /** + * @var question String containing the question to be asked for confirmation + */ + var question = + PMA_messages.strDropDatabaseStrongWarning + ' ' + + $.sprintf(PMA_messages.strDoYouReally, selected_dbs.join('<br />')); + + $(this).PMA_confirm( + question, + $form.prop('action') + + '?' + $(this.form).serialize() + + '&drop_selected_dbs=1&is_js_confirmed=1&ajax_request=true', + function(url) { + PMA_ajaxShowMessage(PMA_messages.strProcessingRequest, false); + + $.post(url, function(data) { + if(data.success == true) { + PMA_ajaxShowMessage(data.message); + 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); + } + }); // end $.post() + }); // end $.PMA_confirm() + }) ; //end of Drop Database action +}); // end $(document).ready() diff --git a/server_databases.php b/server_databases.php index 7ad910fcfb..b822e792e9 100644 --- a/server_databases.php +++ b/server_databases.php @@ -10,6 +10,9 @@ */ require_once 'libraries/common.inc.php'; +$GLOBALS['js_include'][] = 'server_databases.js'; +$GLOBALS['js_include'][] = 'functions.js'; + require 'libraries/server_common.inc.php'; if (! PMA_DRIZZLE) { include_once 'libraries/replication.inc.php'; @@ -85,11 +88,20 @@ if ((isset($_REQUEST['drop_selected_dbs']) || isset($_REQUEST['query_type'])) $message = PMA_Message::error(__('No databases selected.')); } else { $action = 'server_databases.php'; - $submit_mult = 'drop_db' ; + $submit_mult = 'drop_db'; $err_url = 'server_databases.php?' . PMA_generate_common_url(); - if (isset($_REQUEST['selected_dbs'])) { + if (isset($_REQUEST['selected_dbs']) + && !isset($_REQUEST['is_js_confirmed'])) { $selected_db = $_REQUEST['selected_dbs']; } + if (isset($_REQUEST['is_js_confirmed'])) { + $_REQUEST = array( + 'query_type' => $submit_mult, + 'selected' => $_REQUEST['selected_dbs'], + 'mult_btn' => __('Yes'), + 'db' => $GLOBALS['db'], + 'table' => $GLOBALS['table']); + } include 'libraries/mult_submits.inc.php'; unset($action, $submit_mult, $err_url, $selected_db, $GLOBALS['db']); if (empty($message)) { @@ -101,7 +113,9 @@ if ((isset($_REQUEST['drop_selected_dbs']) || isset($_REQUEST['query_type'])) $message = PMA_Message::success(_ngettext('%1$d database has been dropped successfully.', '%1$d databases have been dropped successfully.', $number_of_databases)); $message->addParam($number_of_databases); } - + } + if ($GLOBALS['is_ajax_request'] && $message instanceof PMA_Message) { + PMA_ajaxResponse($message, $message->isSuccess()); } } @@ -282,7 +296,7 @@ if ($databases_count > 0) { . '<a href="server_databases.php' . $common_url_query . '" onclick="if (unMarkAllRows(\'tabledatabases\')) return false;">' . "\n" . ' ' . __('Uncheck All') . '</a>' . "\n" . '<i>' . __('With selected:') . '</i>' . "\n"; - PMA_buttonOrImage('drop_selected_dbs', 'mult_submit', 'drop_selected_dbs', __('Drop'), 'b_deltbl.png'); + PMA_buttonOrImage('drop_selected_dbs', 'mult_submit' . ($cfg['AjaxEnable'] ? ' ajax' : ''), 'drop_selected_dbs', __('Drop'), 'b_deltbl.png'); } if (empty($dbstats)) { |