Translated using Weblate (Catalan)
[phpmyadmin.git] / js / db_operations.js
blobe2dc02043090758a67caf6eb8ad4b2ed9c3c8478
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  * Drop Database
20  */
22 /**
23  * Unbind all event handlers before tearing down a page
24  */
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');
30 });
32 AJAX.registerOnload('db_operations.js', function () {
33     /**
34      * Ajax event handlers for 'Rename Database'
35      */
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');
44             return false;
45         }
47         var $form = $(this);
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
67                                     // in navigation
68                                     $thisAnchor.trigger('click');
69                                 }
70                             });
71                     });
72                 } else {
73                     PMA_ajaxShowMessage(data.error, false);
74                 }
75             }); // end $.post()
76         });
77     }); // end Rename Database
79     /**
80      * Ajax Event Handler for 'Copy Database'
81      */
82     $(document).on('submit', '#copy_db_form.ajax', function (event) {
83         event.preventDefault();
84         PMA_ajaxShowMessage(PMA_messages.strCopyingDatabase, false);
85         var $form = $(this);
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);
95                     });
96                 } else {
97                     PMA_commonParams.set('db', data.db);
98                     PMA_ajaxShowMessage(data.message);
99                 }
100                 PMA_reloadNavigation();
101             } else {
102                 PMA_ajaxShowMessage(data.error, false);
103             }
104         }); // end $.post()
105     }); // end copy database
107     /**
108      * Change tables columns visible only if change tables is checked
109      */
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();
113     });
115     /**
116      * Ajax Event handler for 'Change Charset' of the database
117      */
118     $(document).on('submit', '#change_db_charset_form.ajax', function (event) {
119         event.preventDefault();
120         var $form = $(this);
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);
126             } else {
127                 PMA_ajaxShowMessage(data.error, false);
128             }
129         }); // end $.post()
130     }); // end change charset
132     /**
133      * Ajax event handlers for Drop Database
134      */
135     $(document).on('click', '#drop_db_anchor.ajax', function (event) {
136         event.preventDefault();
137         /**
138          * @var question    String containing the question to be asked for confirmation
139          */
140         var question = PMA_messages.strDropDatabaseStrongWarning + ' ';
141         question += PMA_sprintf(
142             PMA_messages.strDoYouReally,
143             'DROP DATABASE `' + escapeHtml(PMA_commonParams.get('db') + '`')
144         );
145         var params = {
146             'is_js_confirmed': '1',
147             'ajax_request': true
148         };
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',
158                         function () {
159                             PMA_ajaxShowMessage(data.message);
160                         }
161                     );
162                 } else {
163                     PMA_ajaxShowMessage(data.error, false);
164                 }
165             });
166         });
167     });