Translated using Weblate (Slovenian)
[phpmyadmin.git] / js / tbl_operations.js
bloba188a968bd96538e7f6469a175604617eeba6bb4
1 /**
2  * Unbind all event handlers before tearing down a page
3  */
4 AJAX.registerTeardown('tbl_operations.js', function () {
5     $(document).off('submit', "#copyTable.ajax");
6     $(document).off('submit', "#moveTableForm");
7     $(document).off('submit', "#tableOptionsForm");
8     $(document).off('submit', "#partitionsForm");
9     $(document).off('click', "#tbl_maintenance li a.maintain_action.ajax");
10     $(document).off('click', "#drop_tbl_anchor.ajax");
11     $(document).off('click', "#drop_view_anchor.ajax");
12     $(document).off('click', "#truncate_tbl_anchor.ajax");
13 });
15 /**
16  * jQuery coding for 'Table operations'.  Used on tbl_operations.php
17  * Attach Ajax Event handlers for Table operations
18  */
19 AJAX.registerOnload('tbl_operations.js', function () {
20     /**
21      *Ajax action for submitting the "Copy table"
22      **/
23     $(document).on('submit', "#copyTable.ajax", function (event) {
24         event.preventDefault();
25         var $form = $(this);
26         PMA_prepareForAjaxRequest($form);
27         $.post($form.attr('action'), $form.serialize() + "&submit_copy=Go", function (data) {
28             if (typeof data !== 'undefined' && data.success === true) {
29                 if ($form.find("input[name='switch_to_new']").prop('checked')) {
30                     PMA_commonParams.set(
31                         'db',
32                         $form.find("select[name='target_db']").val()
33                     );
34                     PMA_commonParams.set(
35                         'table',
36                         $form.find("input[name='new_name']").val()
37                     );
38                     PMA_commonActions.refreshMain(false, function () {
39                         PMA_ajaxShowMessage(data.message);
40                     });
41                 } else {
42                     PMA_ajaxShowMessage(data.message);
43                 }
44                 // Refresh navigation when the table is copied
45                 PMA_reloadNavigation();
46             } else {
47                 PMA_ajaxShowMessage(data.error, false);
48             }
49         }); // end $.post()
50     });//end of copyTable ajax submit
52     /**
53      *Ajax action for submitting the "Move table"
54      */
55     $(document).on('submit', "#moveTableForm", function (event) {
56         event.preventDefault();
57         var $form = $(this);
58         var db = $form.find('select[name=target_db]').val();
59         var tbl = $form.find('input[name=new_name]').val();
60         PMA_prepareForAjaxRequest($form);
61         $.post($form.attr('action'), $form.serialize() + "&submit_move=1", function (data) {
62             if (typeof data !== 'undefined' && data.success === true) {
63                 PMA_commonParams.set('db', db);
64                 PMA_commonParams.set('table', tbl);
65                 PMA_commonActions.refreshMain(false, function () {
66                     PMA_ajaxShowMessage(data.message);
67                 });
68                 // Refresh navigation when the table is copied
69                 PMA_reloadNavigation();
70             } else {
71                 PMA_ajaxShowMessage(data.error, false);
72             }
73         }); // end $.post()
74     });
76     /**
77      * Ajax action for submitting the "Table options"
78      */
79     $(document).on('submit', "#tableOptionsForm", function (event) {
80         event.preventDefault();
81         event.stopPropagation();
82         var $form = $(this);
83         var $tblNameField = $form.find('input[name=new_name]');
84         var $tblCollationField = $form.find('select[name=tbl_collation]');
85         var collationOrigValue = $('select[name="tbl_collation"] option[selected]').val();
86         var $changeAllColumnCollationsCheckBox = $('#checkbox_change_all_collations');
87         var question = PMA_messages.strChangeAllColumnCollationsWarning;
89         if ($tblNameField.val() !== $tblNameField[0].defaultValue) {
90             // reload page and navigation if the table has been renamed
91             PMA_prepareForAjaxRequest($form);
93             if ($tblCollationField.val() !== collationOrigValue && $changeAllColumnCollationsCheckBox.is(':checked')) {
94                 $form.PMA_confirm(question, $form.attr('action'), function (url) {
95                     submitOptionsForm();
96                 });
97             } else {
98                 submitOptionsForm();
99             }
100         } else {
102             if ($tblCollationField.val() !== collationOrigValue && $changeAllColumnCollationsCheckBox.is(':checked')) {
103                 $form.PMA_confirm(question, $form.attr('action'), function (url) {
104                     $form.removeClass('ajax').submit().addClass('ajax');
105                 });
106             } else {
107                 $form.removeClass('ajax').submit().addClass('ajax');
108             }
109         }
111         function submitOptionsForm() {
112             $.post($form.attr('action'), $form.serialize(), function (data) {
113                 if (typeof data !== 'undefined' && data.success === true) {
114                     PMA_commonParams.set('table', data._params.table);
115                     PMA_commonActions.refreshMain(false, function () {
116                         $('#page_content').html(data.message);
117                         PMA_highlightSQL($('#page_content'));
118                     });
119                     // Refresh navigation when the table is renamed
120                     PMA_reloadNavigation();
121                 } else {
122                     PMA_ajaxShowMessage(data.error, false);
123                 }
124             }); // end $.post()
125         }
126     });
128     /**
129      *Ajax events for actions in the "Table maintenance"
130     **/
131     $(document).on('click', "#tbl_maintenance li a.maintain_action.ajax", function (event) {
132         event.preventDefault();
133         if ($(".sqlqueryresults").length !== 0) {
134             $(".sqlqueryresults").remove();
135         }
136         if ($(".result_query").length !== 0) {
137             $(".result_query").remove();
138         }
139         //variables which stores the common attributes
140         $.post($(this).attr('href'), { ajax_request: 1 }, function (data) {
141             function scrollToTop() {
142                 $('html, body').animate({ scrollTop: 0 });
143             }
144             var $temp_div;
145             if (typeof data !== 'undefined' && data.success === true && data.sql_query !== undefined) {
146                 PMA_ajaxShowMessage(data.message);
147                 $("<div class='sqlqueryresults ajax'></div>").prependTo("#page_content");
148                 $(".sqlqueryresults").html(data.sql_query);
149                 PMA_highlightSQL($('#page_content'));
150                 scrollToTop();
151             } else if (typeof data !== 'undefined' && data.success === true) {
152                 var $temp_div = $("<div id='temp_div'></div>");
153                 $temp_div.html(data.message);
154                 var $success = $temp_div.find(".result_query .success");
155                 PMA_ajaxShowMessage($success);
156                 $("<div class='sqlqueryresults ajax'></div>").prependTo("#page_content");
157                 $(".sqlqueryresults").html(data.message);
158                 PMA_highlightSQL($('#page_content'));
159                 PMA_init_slider();
160                 $(".sqlqueryresults").children("fieldset,br").remove();
161                 scrollToTop();
162             } else {
163                 $temp_div = $("<div id='temp_div'></div>");
164                 $temp_div.html(data.error);
165                 var $error = $temp_div.find("code").addClass("error");
166                 PMA_ajaxShowMessage($error, false);
167             }
168         }); // end $.post()
169     });//end of table maintenance ajax click
171     /**
172      * Ajax action for submitting the "Partition Maintenance"
173      * Also, asks for confirmation when DROP partition is submitted
174      */
175     $(document).on('submit', "#partitionsForm", function (event) {
176         event.preventDefault();
177         var $form = $(this);
179         function submitPartitionMaintenance() {
180             var submitData = $form.serialize() + '&ajax_request=true&ajax_page_request=true';
181             PMA_ajaxShowMessage(PMA_messages.strProcessingRequest);
182             AJAX.source = $form;
183             $.post($form.attr('action'), submitData, AJAX.responseHandler);
184         }
186         if ($('#partition_operation_DROP').is(':checked')) {
187             var question = PMA_messages.strDropPartitionWarning;
188             $form.PMA_confirm(question, $form.attr('action'), function (url) {
189                 submitPartitionMaintenance();
190             });
191         } else if ($('#partition_operation_TRUNCATE').is(':checked')) {
192             var question = PMA_messages.strTruncatePartitionWarning;
193             $form.PMA_confirm(question, $form.attr('action'), function (url) {
194                 submitPartitionMaintenance();
195             });
196         } else {
197             submitPartitionMaintenance();
198         }
199     });
201     $(document).on('click', "#drop_tbl_anchor.ajax", function (event) {
202         event.preventDefault();
203         /**
204          * @var question    String containing the question to be asked for confirmation
205          */
206         var question = PMA_messages.strDropTableStrongWarning + ' ';
207         question += PMA_sprintf(
208             PMA_messages.strDoYouReally,
209             'DROP TABLE ' + escapeHtml(PMA_commonParams.get('table'))
210         ) + getForeignKeyCheckboxLoader();
212         $(this).PMA_confirm(question, $(this).attr('href'), function (url) {
214             var $msgbox = PMA_ajaxShowMessage(PMA_messages.strProcessingRequest);
216             var params = getJSConfirmCommonParam(this);
218             $.post(url, params, function (data) {
219                 if (typeof data !== 'undefined' && data.success === true) {
220                     PMA_ajaxRemoveMessage($msgbox);
221                     // Table deleted successfully, refresh both the frames
222                     PMA_reloadNavigation();
223                     PMA_commonParams.set('table', '');
224                     PMA_commonActions.refreshMain(
225                         PMA_commonParams.get('opendb_url'),
226                         function () {
227                             PMA_ajaxShowMessage(data.message);
228                         }
229                     );
230                 } else {
231                     PMA_ajaxShowMessage(data.error, false);
232                 }
233             }); // end $.post()
234         }, loadForeignKeyCheckbox); // end $.PMA_confirm()
235     }); //end of Drop Table Ajax action
237     $(document).on('click', "#drop_view_anchor.ajax", function (event) {
238         event.preventDefault();
239         /**
240          * @var question    String containing the question to be asked for confirmation
241          */
242         var question = PMA_messages.strDropTableStrongWarning + ' ';
243         question += PMA_sprintf(
244             PMA_messages.strDoYouReally,
245             'DROP VIEW ' + escapeHtml(PMA_commonParams.get('table'))
246         );
248         $(this).PMA_confirm(question, $(this).attr('href'), function (url) {
250             var $msgbox = PMA_ajaxShowMessage(PMA_messages.strProcessingRequest);
251             $.post(url, {'is_js_confirmed': '1', 'ajax_request': true}, function (data) {
252                 if (typeof data !== 'undefined' && data.success === true) {
253                     PMA_ajaxRemoveMessage($msgbox);
254                     // Table deleted successfully, refresh both the frames
255                     PMA_reloadNavigation();
256                     PMA_commonParams.set('table', '');
257                     PMA_commonActions.refreshMain(
258                         PMA_commonParams.get('opendb_url'),
259                         function () {
260                             PMA_ajaxShowMessage(data.message);
261                         }
262                     );
263                 } else {
264                     PMA_ajaxShowMessage(data.error, false);
265                 }
266             }); // end $.post()
267         }); // end $.PMA_confirm()
268     }); //end of Drop View Ajax action
270     $(document).on('click', "#truncate_tbl_anchor.ajax", function (event) {
271         event.preventDefault();
272         /**
273          * @var question    String containing the question to be asked for confirmation
274          */
275         var question = PMA_messages.strTruncateTableStrongWarning + ' ';
276         question += PMA_sprintf(
277             PMA_messages.strDoYouReally,
278             'TRUNCATE ' + escapeHtml(PMA_commonParams.get('table'))
279         ) + getForeignKeyCheckboxLoader();
280         $(this).PMA_confirm(question, $(this).attr('href'), function (url) {
281             PMA_ajaxShowMessage(PMA_messages.strProcessingRequest);
283             var params = getJSConfirmCommonParam(this);
285             $.post(url, params, function (data) {
286                 if ($(".sqlqueryresults").length !== 0) {
287                     $(".sqlqueryresults").remove();
288                 }
289                 if ($(".result_query").length !== 0) {
290                     $(".result_query").remove();
291                 }
292                 if (typeof data !== 'undefined' && data.success === true) {
293                     PMA_ajaxShowMessage(data.message);
294                     $("<div class='sqlqueryresults ajax'></div>").prependTo("#page_content");
295                     $(".sqlqueryresults").html(data.sql_query);
296                     PMA_highlightSQL($('#page_content'));
297                 } else {
298                     PMA_ajaxShowMessage(data.error, false);
299                 }
300             }); // end $.post()
301         }, loadForeignKeyCheckbox); // end $.PMA_confirm()
302     }); //end of Truncate Table Ajax action
304 }); //end $(document).ready for 'Table operations'