Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/phpmyadmin/phpmyadmin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJo Michael <me@mynetx.net>2012-04-21 04:13:48 +0400
committerJo Michael <me@mynetx.net>2012-04-21 04:13:48 +0400
commit62b2d09da18ef40cdd6008dba5f9f60027831070 (patch)
tree37ca355e2027a5056904fcaa347ef9dcf470160d
parentd49c63424ff18a5ae46590aa9161c36d17f3438f (diff)
Delete databases with Ajax
-rw-r--r--js/messages.php1
-rw-r--r--js/server_databases.js69
-rw-r--r--server_databases.php22
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)) {