Bug #3166356 Search result panel duplicates the elements in Chrome
[phpmyadmin/crack.git] / js / db_operations.js
blob12b17c16880250e4415c5ceefc0e2317f9421e87
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         $form = $(this);
89         if (! $form.find('input:hidden').is('#ajax_request_hidden')) {
90             $form.append('<input type="hidden" id="ajax_request_hidden" name="ajax_request" value="true" />');
91         }
93         $.get($form.attr('action'), $form.serialize(), function(data) {
94             // use messages that stay on screen
95             $('.success').fadeOut();
96             $('.error').fadeOut();
97             if(data.success == true) {
98                 $('#topmenucontainer').after(data.message);
99                 if( $("#checkbox_switch").is(":checked")) {
100                     window.parent.db = data.newname;
101                     window.parent.refreshMain();
102                     window.parent.refreshNavigation();
103                } else {
104                     // Here we force a refresh because the navigation
105                     // frame url is not changing so this function would
106                     // not refresh it
107                     window.parent.refreshNavigation(true);
108                }
109             }
110             else {
111                 $('#topmenucontainer').after(data.error);
112             }
113         }) // end $.get
114     }) // end copy database
116     /**
117      * Ajax Event handler for 'Change Charset' of the database
118      *
119      * @uses    PMA_ajaxShowMessage()
120      */
121     $("#change_db_charset_form").live('submit', function(event) {
122         event.preventDefault();
124         $(this).append('<input type="hidden" name="ajax_request" value="true" />');
126         PMA_ajaxShowMessage(PMA_messages['strChangingCharset']);
128         $.get($(this).attr('action'), $(this).serialize() + "&submitcollation=" + $(this).find("input[name=submitcollation]").attr('value'), function(data) {
129             if(data.success == true) {
130                 PMA_ajaxShowMessage(data.message);
131             }
132             else {
133                 PMA_ajaxShowMessage(data.error);
134             }
135         }) // end $.get()
136     }) // end change charset
137     
138 }, 'top.frame_content');