1 /* vim: set expandtab sw=4 ts=4 sts=4: */
3 * @fileoverview function used in server privilege pages
4 * @name Database Operations
8 * @requires js/functions.js
13 * Ajax event handlers here for db_operations.php
15 * Actions Ajaxified here:
23 * Unbind all event handlers before tearing down a page
25 AJAX.registerTeardown('db_operations.js', function () {
26 $(document).off('submit', '#rename_db_form.ajax');
27 $(document).off('submit', '#copy_db_form.ajax');
28 $(document).off('submit', '#change_db_charset_form.ajax');
29 $(document).off('click', '#drop_db_anchor.ajax');
32 AJAX.registerOnload('db_operations.js', function () {
34 * Ajax event handlers for 'Rename Database'
36 $(document).on('submit', '#rename_db_form.ajax', function (event) {
37 event.preventDefault();
39 var old_db_name = PMA_commonParams.get('db');
40 var new_db_name = $('#new_db_name').val();
42 if (new_db_name === old_db_name) {
43 PMA_ajaxShowMessage(PMA_messages.strDatabaseRenameToSameName, false, 'error');
49 var question = escapeHtml('CREATE DATABASE ' + new_db_name + ' / DROP DATABASE ' + old_db_name);
51 PMA_prepareForAjaxRequest($form);
53 $form.PMA_confirm(question, $form.attr('action'), function (url) {
54 PMA_ajaxShowMessage(PMA_messages.strRenamingDatabases, false);
55 $.post(url, $('#rename_db_form').serialize() + '&is_js_confirmed=1', function (data) {
56 if (typeof data !== 'undefined' && data.success === true) {
57 PMA_ajaxShowMessage(data.message);
58 PMA_commonParams.set('db', data.newname);
60 PMA_reloadNavigation(function () {
61 $('#pma_navigation_tree')
62 .find('a:not(\'.expander\')')
63 .each(function (index) {
64 var $thisAnchor = $(this);
65 if ($thisAnchor.text() === data.newname) {
66 // simulate a click on the new db name
68 $thisAnchor.trigger('click');
73 PMA_ajaxShowMessage(data.error, false);
77 }); // end Rename Database
80 * Ajax Event Handler for 'Copy Database'
82 $(document).on('submit', '#copy_db_form.ajax', function (event) {
83 event.preventDefault();
84 PMA_ajaxShowMessage(PMA_messages.strCopyingDatabase, false);
86 PMA_prepareForAjaxRequest($form);
87 $.post($form.attr('action'), $form.serialize(), function (data) {
88 // use messages that stay on screen
89 $('div.success, div.error').fadeOut();
90 if (typeof data !== 'undefined' && data.success === true) {
91 if ($('#checkbox_switch').is(':checked')) {
92 PMA_commonParams.set('db', data.newname);
93 PMA_commonActions.refreshMain(false, function () {
94 PMA_ajaxShowMessage(data.message);
97 PMA_commonParams.set('db', data.db);
98 PMA_ajaxShowMessage(data.message);
100 PMA_reloadNavigation();
102 PMA_ajaxShowMessage(data.error, false);
105 }); // end copy database
108 * Change tables columns visible only if change tables is checked
110 $('#span_change_all_tables_columns_collations').hide();
111 $('#checkbox_change_all_tables_collations').on('click', function() {
112 $('#span_change_all_tables_columns_collations').toggle();
116 * Ajax Event handler for 'Change Charset' of the database
118 $(document).on('submit', '#change_db_charset_form.ajax', function (event) {
119 event.preventDefault();
121 PMA_prepareForAjaxRequest($form);
122 PMA_ajaxShowMessage(PMA_messages.strChangingCharset);
123 $.post($form.attr('action'), $form.serialize() + '&submitcollation=1', function (data) {
124 if (typeof data !== 'undefined' && data.success === true) {
125 PMA_ajaxShowMessage(data.message);
127 PMA_ajaxShowMessage(data.error, false);
130 }); // end change charset
133 * Ajax event handlers for Drop Database
135 $(document).on('click', '#drop_db_anchor.ajax', function (event) {
136 event.preventDefault();
138 * @var question String containing the question to be asked for confirmation
140 var question = PMA_messages.strDropDatabaseStrongWarning + ' ';
141 question += PMA_sprintf(
142 PMA_messages.strDoYouReally,
143 'DROP DATABASE `' + escapeHtml(PMA_commonParams.get('db') + '`')
146 'is_js_confirmed': '1',
149 $(this).PMA_confirm(question, $(this).attr('href'), function (url) {
150 PMA_ajaxShowMessage(PMA_messages.strProcessingRequest);
151 $.post(url, params, function (data) {
152 if (typeof data !== 'undefined' && data.success) {
153 // Database deleted successfully, refresh both the frames
154 PMA_reloadNavigation();
155 PMA_commonParams.set('db', '');
156 PMA_commonActions.refreshMain(
157 'server_databases.php',
159 PMA_ajaxShowMessage(data.message);
163 PMA_ajaxShowMessage(data.error, false);