Merge remote branch 'origin/master'
[phpmyadmin/mlewandow.git] / js / db_operations.js
bloba1355328fdc85a5def699d255621eb07970fc730
1 /* vim: set expandtab sw=4 ts=4 sts=4: */
2 /**
3  * @fileoverview    function used in server privilege pages
4  * @name            Database Operations
5  *
6  * @requires    jQuery
7  * @requires    jQueryUI
8  * @requires    js/functions.js
9  *
10  */
12 /**
13  * Ajax event handlers here for db_operations.php
14  *
15  * Actions Ajaxified here:
16  * Rename Database
17  * Copy Database
18  * Change charset
19  */
21 $(document).ready(function() {
23     /**
24      * Ajax event handlers for 'Rename Database'
25      *
26      * @uses    $.PMA_confirm()
27      * @uses    PMA_ajaxShowUser()
28      */
29     $("#rename_db_form").live('submit', function(event) {
30         event.preventDefault();
32         var question = 'CREATE DATABASE ... and then DROP DATABASE ' + window.parent.db;
33         $(this).append('<input type="hidden" name="ajax_request" value="true" />');
35         /**
36          * @var button_options  Object containing options for jQueryUI dialog buttons
37          */
38         var button_options = {};
39         button_options[PMA_messages['strYes']] = function() {
40                                                     $(this).dialog("close").remove();
41                                                     window.parent.refreshMain();
42                                                     window.parent.refreshNavigation();
43                                                 };
44         button_options[PMA_messages['strNo']] = function() { $(this).dialog("close").remove(); }
46         $(this).PMA_confirm(question, $(this).attr('action'), function(url) {
47             PMA_ajaxShowMessage(PMA_messages['strRenamingDatabases']);
49             $.get(url, $("#rename_db_form").serialize() + '&is_js_confirmed=1', function(data) {
50                 if(data.success == true) {
51                     
52                     PMA_ajaxShowMessage(data.message);
54                     window.parent.db = data.newname;
56                     $("#topmenucontainer")
57                     .next('div')
58                     .remove()
59                     .end()
60                     .after(data.sql_query);
62                     //Remove the empty notice div generated due to a NULL query passed to PMA_showMessage()
63                     var notice_class = $("#topmenucontainer").next("div").find('.notice');
64                     if($(notice_class).text() == '') {
65                         $(notice_class).remove();
66                     }
68                     $("<span>" + PMA_messages['strReloadDatabase'] + "?</span>").dialog({
69                         buttons: button_options
70                     }) //end dialog options
71                 }
72                 else {
73                     PMA_ajaxShowMessage(data.error);
74                 }
75             }) // end $.get()
76         })
77     }); // end Rename Database
79     /**
80      * Ajax Event Handler for 'Copy Database'
81      *
82      * @uses    PMA_ajaxShowMessage()
83      */
84     $("#copy_db_form").live('submit', function(event) {
85         event.preventDefault();
87         PMA_ajaxShowMessage(PMA_messages['strCopyingDatabase']);
88         $(this).append('<input type="hidden" name="ajax_request" value="true" />');
90         $.get($(this).attr('action'), $(this).serialize(), function(data) {
91             if(data.success == true) {
92                 PMA_ajaxShowMessage(data.message);
93                 if( $("#checkbox_switch").is(":checked")) {
94                     window.parent.db = data.newname;
95                     window.parent.refreshMain();
96                 }
97             }
98             else {
99                 PMA_ajaxShowMessage(data.error);
100             }
101         }) // end $.get
102     }) // end copy database
104     /**
105      * Ajax Event handler for 'Change Charset' of the database
106      *
107      * @uses    PMA_ajaxShowMessage()
108      */
109     $("#change_db_charset_form").live('submit', function(event) {
110         event.preventDefault();
112         $(this).append('<input type="hidden" name="ajax_request" value="true" />');
114         PMA_ajaxShowMessage(PMA_messages['strChangingCharset']);
116         $.get($(this).attr('action'), $(this).serialize() + "&submitcollation=" + $(this).find("input[name=submitcollation]").attr('value'), function(data) {
117             if(data.success == true) {
118                 PMA_ajaxShowMessage(data.message);
119             }
120             else {
121                 PMA_ajaxShowMessage(data.error);
122             }
123         }) // end $.get()
124     }) // end change charset
125     
126 }, 'top.frame_content');