Translated using Weblate (Slovenian)
[phpmyadmin.git] / js / database / operations.js
blobf626356a777a3e126f5c0bc3435b7e86ff175c3d
1 /**
2  * @fileoverview    function used in server privilege pages
3  * @name            Database Operations
4  *
5  * @requires    jQuery
6  * @requires    jQueryUI
7  * @requires    js/functions.js
8  *
9  */
11 /**
12  * Ajax event handlers here for /database/operations
13  *
14  * Actions Ajaxified here:
15  * Rename Database
16  * Copy Database
17  * Change Charset
18  * Drop Database
19  */
21 /**
22  * Unbind all event handlers before tearing down a page
23  */
24 AJAX.registerTeardown('database/operations.js', function () {
25     $(document).off('submit', '#rename_db_form.ajax');
26     $(document).off('submit', '#copy_db_form.ajax');
27     $(document).off('submit', '#change_db_charset_form.ajax');
28     $(document).off('click', '#drop_db_anchor.ajax');
29 });
31 AJAX.registerOnload('database/operations.js', function () {
32     /**
33      * Ajax event handlers for 'Rename Database'
34      */
35     $(document).on('submit', '#rename_db_form.ajax', function (event) {
36         event.preventDefault();
38         if (Functions.emptyCheckTheField(this, 'newname')) {
39             Functions.ajaxShowMessage(Messages.strFormEmpty, false, 'error');
40             return false;
41         }
43         var oldDbName = CommonParams.get('db');
44         var newDbName = $('#new_db_name').val();
46         if (newDbName === oldDbName) {
47             Functions.ajaxShowMessage(Messages.strDatabaseRenameToSameName, false, 'error');
48             return false;
49         }
51         var $form = $(this);
53         var question = Functions.escapeHtml('CREATE DATABASE ' + newDbName + ' / DROP DATABASE ' + oldDbName);
55         Functions.prepareForAjaxRequest($form);
57         $form.confirm(question, $form.attr('action'), function (url) {
58             Functions.ajaxShowMessage(Messages.strRenamingDatabases, false);
59             $.post(url, $('#rename_db_form').serialize() + CommonParams.get('arg_separator') + 'is_js_confirmed=1', function (data) {
60                 if (typeof data !== 'undefined' && data.success === true) {
61                     Functions.ajaxShowMessage(data.message);
62                     CommonParams.set('db', data.newname);
64                     Navigation.reload(function () {
65                         $('#pma_navigation_tree')
66                             .find('a:not(\'.expander\')')
67                             .each(function () {
68                                 var $thisAnchor = $(this);
69                                 if ($thisAnchor.text() === data.newname) {
70                                     // simulate a click on the new db name
71                                     // in navigation
72                                     $thisAnchor.trigger('click');
73                                 }
74                             });
75                     });
76                 } else {
77                     Functions.ajaxShowMessage(data.error, false);
78                 }
79             }); // end $.post()
80         });
81     }); // end Rename Database
83     /**
84      * Ajax Event Handler for 'Copy Database'
85      */
86     $(document).on('submit', '#copy_db_form.ajax', function (event) {
87         event.preventDefault();
89         if (Functions.emptyCheckTheField(this, 'newname')) {
90             Functions.ajaxShowMessage(Messages.strFormEmpty, false, 'error');
91             return false;
92         }
94         Functions.ajaxShowMessage(Messages.strCopyingDatabase, false);
95         var $form = $(this);
96         Functions.prepareForAjaxRequest($form);
97         $.post($form.attr('action'), $form.serialize(), function (data) {
98             // use messages that stay on screen
99             $('.alert-success, .alert-danger').fadeOut();
100             if (typeof data !== 'undefined' && data.success === true) {
101                 if ($('#checkbox_switch').is(':checked')) {
102                     CommonParams.set('db', data.newname);
103                     CommonActions.refreshMain(false, function () {
104                         Functions.ajaxShowMessage(data.message);
105                     });
106                 } else {
107                     CommonParams.set('db', data.db);
108                     Functions.ajaxShowMessage(data.message);
109                 }
110                 Navigation.reload();
111             } else {
112                 Functions.ajaxShowMessage(data.error, false);
113             }
114         }); // end $.post()
115     }); // end copy database
117     /**
118      * Change tables columns visible only if change tables is checked
119      */
120     $('#span_change_all_tables_columns_collations').hide();
121     $('#checkbox_change_all_tables_collations').on('click', function () {
122         $('#span_change_all_tables_columns_collations').toggle();
123     });
125     /**
126      * Ajax Event handler for 'Change Charset' of the database
127      */
128     $(document).on('submit', '#change_db_charset_form.ajax', function (event) {
129         event.preventDefault();
130         var $form = $(this);
131         Functions.prepareForAjaxRequest($form);
132         Functions.ajaxShowMessage(Messages.strChangingCharset);
133         $.post($form.attr('action'), $form.serialize() + CommonParams.get('arg_separator') + 'submitcollation=1', function (data) {
134             if (typeof data !== 'undefined' && data.success === true) {
135                 Functions.ajaxShowMessage(data.message);
136             } else {
137                 Functions.ajaxShowMessage(data.error, false);
138             }
139         }); // end $.post()
140     }); // end change charset
142     /**
143      * Ajax event handlers for Drop Database
144      */
145     $(document).on('click', '#drop_db_anchor.ajax', function (event) {
146         event.preventDefault();
147         var $link = $(this);
148         /**
149          * @var question    String containing the question to be asked for confirmation
150          */
151         var question = Messages.strDropDatabaseStrongWarning + ' ';
152         question += Functions.sprintf(
153             Messages.strDoYouReally,
154             'DROP DATABASE `' + Functions.escapeHtml(CommonParams.get('db') + '`')
155         );
156         var params = Functions.getJsConfirmCommonParam(this, $link.getPostData());
158         $(this).confirm(question, $(this).attr('href'), function (url) {
159             Functions.ajaxShowMessage(Messages.strProcessingRequest);
160             $.post(url, params, function (data) {
161                 if (typeof data !== 'undefined' && data.success) {
162                     // Database deleted successfully, refresh both the frames
163                     Navigation.reload();
164                     CommonParams.set('db', '');
165                     CommonActions.refreshMain(
166                         'index.php?route=/server/databases',
167                         function () {
168                             Functions.ajaxShowMessage(data.message);
169                         }
170                     );
171                 } else {
172                     Functions.ajaxShowMessage(data.error, false);
173                 }
174             });
175         });
176     });