1 /* vim: set expandtab sw=4 ts=4 sts=4: */
3 * Functions used in the export tab
8 * Disables the "Dump some row(s)" sub-options
10 function disable_dump_some_rows_sub_options () {
11 $('label[for=\'limit_to\']').fadeTo('fast', 0.4);
12 $('label[for=\'limit_from\']').fadeTo('fast', 0.4);
13 $('input[type=\'text\'][name=\'limit_to\']').prop('disabled', 'disabled');
14 $('input[type=\'text\'][name=\'limit_from\']').prop('disabled', 'disabled');
18 * Enables the "Dump some row(s)" sub-options
20 function enable_dump_some_rows_sub_options () {
21 $('label[for=\'limit_to\']').fadeTo('fast', 1);
22 $('label[for=\'limit_from\']').fadeTo('fast', 1);
23 $('input[type=\'text\'][name=\'limit_to\']').prop('disabled', '');
24 $('input[type=\'text\'][name=\'limit_from\']').prop('disabled', '');
28 * Return template data as a json object
30 * @returns template data
32 function getTemplateData () {
33 var $form = $('form[name="dump"]');
34 var blacklist = ['token', 'server', 'db', 'table', 'single_table',
35 'export_type', 'export_method', 'sql_query', 'template_id'];
37 var arr = $form.serializeArray();
38 $.each(arr, function () {
39 if ($.inArray(this.name, blacklist) < 0) {
40 if (obj[this.name] !== undefined) {
41 if (! obj[this.name].push) {
42 obj[this.name] = [obj[this.name]];
44 obj[this.name].push(this.value || '');
46 obj[this.name] = this.value || '';
50 // include unchecked checboxes (which are ignored by serializeArray()) with null
51 // to uncheck them when loading the template
52 $form.find('input[type="checkbox"]:not(:checked)').each(function () {
53 if (obj[this.name] === undefined) {
54 obj[this.name] = null;
57 // include empty multiselects
58 $form.find('select').each(function () {
59 if ($(this).find('option:selected').length === 0) {
67 * Create a template with selected options
69 * @param name name of the template
71 function createTemplate (name) {
72 var templateData = getTemplateData();
76 server : PMA_commonParams.get('server'),
77 db : PMA_commonParams.get('db'),
78 table : PMA_commonParams.get('table'),
79 exportType : $('input[name="export_type"]').val(),
80 templateAction : 'create',
82 templateData : JSON.stringify(templateData)
85 PMA_ajaxShowMessage();
86 $.post('tbl_export.php', params, function (response) {
87 if (response.success === true) {
88 $('#templateName').val('');
89 $('#template').html(response.data);
90 $('#template').find('option').each(function () {
91 if ($(this).text() === name) {
92 $(this).prop('selected', true);
95 PMA_ajaxShowMessage(PMA_messages.strTemplateCreated);
97 PMA_ajaxShowMessage(response.error, false);
105 * @param id ID of the template to load
107 function loadTemplate (id) {
110 server : PMA_commonParams.get('server'),
111 db : PMA_commonParams.get('db'),
112 table : PMA_commonParams.get('table'),
113 exportType : $('input[name="export_type"]').val(),
114 templateAction : 'load',
118 PMA_ajaxShowMessage();
119 $.post('tbl_export.php', params, function (response) {
120 if (response.success === true) {
121 var $form = $('form[name="dump"]');
122 var options = JSON.parse(response.data);
123 $.each(options, function (key, value) {
124 var $element = $form.find('[name="' + key + '"]');
125 if ($element.length) {
126 if (($element.is('input') && $element.attr('type') === 'checkbox') && value === null) {
127 $element.prop('checked', false);
129 if (($element.is('input') && $element.attr('type') === 'checkbox') ||
130 ($element.is('input') && $element.attr('type') === 'radio') ||
131 ($element.is('select') && $element.attr('multiple') === 'multiple')) {
138 $element.trigger('change');
141 $('input[name="template_id"]').val(id);
142 PMA_ajaxShowMessage(PMA_messages.strTemplateLoaded);
144 PMA_ajaxShowMessage(response.error, false);
150 * Updates an existing template with current options
152 * @param id ID of the template to update
154 function updateTemplate (id) {
155 var templateData = getTemplateData();
159 server : PMA_commonParams.get('server'),
160 db : PMA_commonParams.get('db'),
161 table : PMA_commonParams.get('table'),
162 exportType : $('input[name="export_type"]').val(),
163 templateAction : 'update',
165 templateData : JSON.stringify(templateData)
168 PMA_ajaxShowMessage();
169 $.post('tbl_export.php', params, function (response) {
170 if (response.success === true) {
171 PMA_ajaxShowMessage(PMA_messages.strTemplateUpdated);
173 PMA_ajaxShowMessage(response.error, false);
181 * @param id ID of the template to delete
183 function deleteTemplate (id) {
186 server : PMA_commonParams.get('server'),
187 db : PMA_commonParams.get('db'),
188 table : PMA_commonParams.get('table'),
189 exportType : $('input[name="export_type"]').val(),
190 templateAction : 'delete',
194 PMA_ajaxShowMessage();
195 $.post('tbl_export.php', params, function (response) {
196 if (response.success === true) {
197 $('#template').find('option[value="' + id + '"]').remove();
198 PMA_ajaxShowMessage(PMA_messages.strTemplateDeleted);
200 PMA_ajaxShowMessage(response.error, false);
206 * Unbind all event handlers before tearing down a page
208 AJAX.registerTeardown('export.js', function () {
209 $('#plugins').off('change');
210 $('input[type=\'radio\'][name=\'sql_structure_or_data\']').off('change');
211 $('input[type=\'radio\'][name$=\'_structure_or_data\']').off('change');
212 $('input[type=\'radio\'][name=\'output_format\']').off('change');
213 $('#checkbox_sql_include_comments').off('change');
214 $('input[type=\'radio\'][name=\'quick_or_custom\']').off('change');
215 $('input[type=\'radio\'][name=\'allrows\']').off('change');
216 $('#btn_alias_config').off('click');
217 $('.alias_remove').off('click');
218 $('#db_alias_button').off('click');
219 $('#table_alias_button').off('click');
220 $('#column_alias_button').off('click');
221 $('input[name="table_select[]"]').off('change');
222 $('input[name="table_structure[]"]').off('change');
223 $('input[name="table_data[]"]').off('change');
224 $('#table_structure_all').off('change');
225 $('#table_data_all').off('change');
226 $('input[name="createTemplate"]').off('click');
227 $('select[name="template"]').off('change');
228 $('input[name="updateTemplate"]').off('click');
229 $('input[name="deleteTemplate"]').off('click');
232 AJAX.registerOnload('export.js', function () {
234 * Export template handling code
236 // create a new template
237 $('input[name="createTemplate"]').on('click', function (e) {
239 var name = $('input[name="templateName"]').val();
241 createTemplate(name);
245 // load an existing template
246 $('select[name="template"]').on('change', function (e) {
248 var id = $(this).val();
254 // udpate an existing template with new criteria
255 $('input[name="updateTemplate"]').on('click', function (e) {
257 var id = $('select[name="template"]').val();
263 // delete an existing template
264 $('input[name="deleteTemplate"]').on('click', function (e) {
266 var id = $('select[name="template"]').val();
273 * Toggles the hiding and showing of each plugin's options
274 * according to the currently selected plugin from the dropdown list
276 $('#plugins').on('change', function () {
277 $('#format_specific_opts').find('div.format_specific_options').hide();
278 var selected_plugin_name = $('#plugins').find('option:selected').val();
279 $('#' + selected_plugin_name + '_options').show();
283 * Toggles the enabling and disabling of the SQL plugin's comment options that apply only when exporting structure
285 $('input[type=\'radio\'][name=\'sql_structure_or_data\']').on('change', function () {
286 var comments_are_present = $('#checkbox_sql_include_comments').prop('checked');
287 var show = $('input[type=\'radio\'][name=\'sql_structure_or_data\']:checked').val();
288 if (show === 'data') {
289 // disable the SQL comment options
290 if (comments_are_present) {
291 $('#checkbox_sql_dates').prop('disabled', true).parent().fadeTo('fast', 0.4);
293 $('#checkbox_sql_relation').prop('disabled', true).parent().fadeTo('fast', 0.4);
294 $('#checkbox_sql_mime').prop('disabled', true).parent().fadeTo('fast', 0.4);
296 // enable the SQL comment options
297 if (comments_are_present) {
298 $('#checkbox_sql_dates').prop('disabled', false).parent().fadeTo('fast', 1);
300 $('#checkbox_sql_relation').prop('disabled', false).parent().fadeTo('fast', 1);
301 $('#checkbox_sql_mime').prop('disabled', false).parent().fadeTo('fast', 1);
304 if (show === 'structure') {
305 $('#checkbox_sql_auto_increment').prop('disabled', true).parent().fadeTo('fast', 0.4);
307 $('#checkbox_sql_auto_increment').prop('disabled', false).parent().fadeTo('fast', 1);
311 // For separate-file exports only ZIP compression is allowed
312 $('input[type="checkbox"][name="as_separate_files"]').on('change', function () {
313 if ($(this).is(':checked')) {
314 $('#compression').val('zip');
318 $('#compression').on('change', function () {
319 if ($('option:selected').val() !== 'zip') {
320 $('input[type="checkbox"][name="as_separate_files"]').prop('checked', false);
325 function setup_table_structure_or_data () {
326 if ($('input[name=\'export_type\']').val() !== 'database') {
329 var pluginName = $('#plugins').find('option:selected').val();
330 var formElemName = pluginName + '_structure_or_data';
331 var force_structure_or_data = !($('input[name=\'' + formElemName + '_default\']').length);
333 if (force_structure_or_data === true) {
334 $('input[name="structure_or_data_forced"]').val(1);
335 $('.export_structure input[type="checkbox"], .export_data input[type="checkbox"]')
336 .prop('disabled', true);
337 $('.export_structure, .export_data').fadeTo('fast', 0.4);
339 $('input[name="structure_or_data_forced"]').val(0);
340 $('.export_structure input[type="checkbox"], .export_data input[type="checkbox"]')
341 .prop('disabled', false);
342 $('.export_structure, .export_data').fadeTo('fast', 1);
344 var structure_or_data = $('input[name="' + formElemName + '_default"]').val();
346 if (structure_or_data === 'structure') {
347 $('.export_data input[type="checkbox"]')
348 .prop('checked', false);
349 } else if (structure_or_data === 'data') {
350 $('.export_structure input[type="checkbox"]')
351 .prop('checked', false);
353 if (structure_or_data === 'structure' || structure_or_data === 'structure_and_data') {
354 if (!$('.export_structure input[type="checkbox"]:checked').length) {
355 $('input[name="table_select[]"]:checked')
357 .find('.export_structure input[type="checkbox"]')
358 .prop('checked', true);
361 if (structure_or_data === 'data' || structure_or_data === 'structure_and_data') {
362 if (!$('.export_data input[type="checkbox"]:checked').length) {
363 $('input[name="table_select[]"]:checked')
365 .find('.export_data input[type="checkbox"]')
366 .prop('checked', true);
370 check_selected_tables();
371 check_table_select_all();
372 check_table_select_struture_or_data();
377 * Toggles the hiding and showing of plugin structure-specific and data-specific
380 function toggle_structure_data_opts () {
381 var pluginName = $('select#plugins').val();
382 var radioFormName = pluginName + '_structure_or_data';
383 var dataDiv = '#' + pluginName + '_data';
384 var structureDiv = '#' + pluginName + '_structure';
385 var show = $('input[type=\'radio\'][name=\'' + radioFormName + '\']:checked').val();
386 if (show === 'data') {
387 $(dataDiv).slideDown('slow');
388 $(structureDiv).slideUp('slow');
390 $(structureDiv).slideDown('slow');
391 if (show === 'structure') {
392 $(dataDiv).slideUp('slow');
394 $(dataDiv).slideDown('slow');
400 * Toggles the disabling of the "save to file" options
402 function toggle_save_to_file () {
403 var $ulSaveAsfile = $('#ul_save_asfile');
404 if (!$('#radio_dump_asfile').prop('checked')) {
405 $ulSaveAsfile.find('> li').fadeTo('fast', 0.4);
406 $ulSaveAsfile.find('> li > input').prop('disabled', true);
407 $ulSaveAsfile.find('> li > select').prop('disabled', true);
409 $ulSaveAsfile.find('> li').fadeTo('fast', 1);
410 $ulSaveAsfile.find('> li > input').prop('disabled', false);
411 $ulSaveAsfile.find('> li > select').prop('disabled', false);
415 AJAX.registerOnload('export.js', function () {
416 toggle_save_to_file();
417 $('input[type=\'radio\'][name=\'output_format\']').on('change', toggle_save_to_file);
421 * For SQL plugin, toggles the disabling of the "display comments" options
423 function toggle_sql_include_comments () {
424 $('#checkbox_sql_include_comments').on('change', function () {
425 var $ulIncludeComments = $('#ul_include_comments');
426 if (!$('#checkbox_sql_include_comments').prop('checked')) {
427 $ulIncludeComments.find('> li').fadeTo('fast', 0.4);
428 $ulIncludeComments.find('> li > input').prop('disabled', true);
430 // If structure is not being exported, the comment options for structure should not be enabled
431 if ($('#radio_sql_structure_or_data_data').prop('checked')) {
432 $('#text_sql_header_comment').prop('disabled', false).parent('li').fadeTo('fast', 1);
434 $ulIncludeComments.find('> li').fadeTo('fast', 1);
435 $ulIncludeComments.find('> li > input').prop('disabled', false);
441 function check_table_select_all () {
442 var total = $('input[name="table_select[]"]').length;
443 var str_checked = $('input[name="table_structure[]"]:checked').length;
444 var data_checked = $('input[name="table_data[]"]:checked').length;
445 var str_all = $('#table_structure_all');
446 var data_all = $('#table_data_all');
448 if (str_checked === total) {
450 .prop('indeterminate', false)
451 .prop('checked', true);
452 } else if (str_checked === 0) {
454 .prop('indeterminate', false)
455 .prop('checked', false);
458 .prop('indeterminate', true)
459 .prop('checked', false);
462 if (data_checked === total) {
464 .prop('indeterminate', false)
465 .prop('checked', true);
466 } else if (data_checked === 0) {
468 .prop('indeterminate', false)
469 .prop('checked', false);
472 .prop('indeterminate', true)
473 .prop('checked', false);
477 function check_table_select_struture_or_data () {
478 var str_checked = $('input[name="table_structure[]"]:checked').length;
479 var data_checked = $('input[name="table_data[]"]:checked').length;
480 var auto_increment = $('#checkbox_sql_auto_increment');
482 var pluginName = $('select#plugins').val();
483 var dataDiv = '#' + pluginName + '_data';
484 var structureDiv = '#' + pluginName + '_structure';
486 if (str_checked === 0) {
487 $(structureDiv).slideUp('slow');
489 $(structureDiv).slideDown('slow');
492 if (data_checked === 0) {
493 $(dataDiv).slideUp('slow');
494 auto_increment.prop('disabled', true).parent().fadeTo('fast', 0.4);
496 $(dataDiv).slideDown('slow');
497 auto_increment.prop('disabled', false).parent().fadeTo('fast', 1);
501 function toggle_table_select_all_str () {
502 var str_all = $('#table_structure_all').is(':checked');
504 $('input[name="table_structure[]"]').prop('checked', true);
506 $('input[name="table_structure[]"]').prop('checked', false);
510 function toggle_table_select_all_data () {
511 var data_all = $('#table_data_all').is(':checked');
513 $('input[name="table_data[]"]').prop('checked', true);
515 $('input[name="table_data[]"]').prop('checked', false);
519 function check_selected_tables (argument) {
520 $('.export_table_select tbody tr').each(function () {
521 check_table_selected(this);
525 function check_table_selected (row) {
527 var table_select = $row.find('input[name="table_select[]"]');
528 var str_check = $row.find('input[name="table_structure[]"]');
529 var data_check = $row.find('input[name="table_data[]"]');
531 var data = data_check.is(':checked:not(:disabled)');
532 var structure = str_check.is(':checked:not(:disabled)');
534 if (data && structure) {
535 table_select.prop({ checked: true, indeterminate: false });
536 $row.addClass('marked');
537 } else if (data || structure) {
538 table_select.prop({ checked: true, indeterminate: true });
539 $row.removeClass('marked');
541 table_select.prop({ checked: false, indeterminate: false });
542 $row.removeClass('marked');
546 function toggle_table_select (row) {
548 var table_selected = $row.find('input[name="table_select[]"]').is(':checked');
550 if (table_selected) {
551 $row.find('input[type="checkbox"]:not(:disabled)').prop('checked', true);
552 $row.addClass('marked');
554 $row.find('input[type="checkbox"]:not(:disabled)').prop('checked', false);
555 $row.removeClass('marked');
559 function handleAddProcCheckbox () {
560 if ($('#table_structure_all').is(':checked') === true
561 && $('#table_data_all').is(':checked') === true
563 $('#checkbox_sql_procedure_function').prop('checked', true);
565 $('#checkbox_sql_procedure_function').prop('checked', false);
569 AJAX.registerOnload('export.js', function () {
571 * For SQL plugin, if "CREATE TABLE options" is checked/unchecked, check/uncheck each of its sub-options
573 var $create = $('#checkbox_sql_create_table_statements');
574 var $create_options = $('#ul_create_table_statements').find('input');
575 $create.on('change', function () {
576 $create_options.prop('checked', $(this).prop('checked'));
578 $create_options.on('change', function () {
579 if ($create_options.is(':checked')) {
580 $create.prop('checked', true);
585 * Disables the view output as text option if the output must be saved as a file
587 $('#plugins').on('change', function () {
588 var active_plugin = $('#plugins').find('option:selected').val();
589 var force_file = $('#force_file_' + active_plugin).val();
590 if (force_file === 'true') {
591 if ($('#radio_dump_asfile').prop('checked') !== true) {
592 $('#radio_dump_asfile').prop('checked', true);
593 toggle_save_to_file();
595 $('#radio_view_as_text').prop('disabled', true).parent().fadeTo('fast', 0.4);
597 $('#radio_view_as_text').prop('disabled', false).parent().fadeTo('fast', 1);
601 $('input[type=\'radio\'][name$=\'_structure_or_data\']').on('change', function () {
602 toggle_structure_data_opts();
605 $('input[name="table_select[]"]').on('change', function () {
606 toggle_table_select($(this).closest('tr'));
607 check_table_select_all();
608 handleAddProcCheckbox();
609 check_table_select_struture_or_data();
612 $('input[name="table_structure[]"]').on('change', function () {
613 check_table_selected($(this).closest('tr'));
614 check_table_select_all();
615 handleAddProcCheckbox();
616 check_table_select_struture_or_data();
619 $('input[name="table_data[]"]').on('change', function () {
620 check_table_selected($(this).closest('tr'));
621 check_table_select_all();
622 handleAddProcCheckbox();
623 check_table_select_struture_or_data();
626 $('#table_structure_all').on('change', function () {
627 toggle_table_select_all_str();
628 check_selected_tables();
629 handleAddProcCheckbox();
630 check_table_select_struture_or_data();
633 $('#table_data_all').on('change', function () {
634 toggle_table_select_all_data();
635 check_selected_tables();
636 handleAddProcCheckbox();
637 check_table_select_struture_or_data();
640 if ($('input[name=\'export_type\']').val() === 'database') {
641 // Hide structure or data radio buttons
642 $('input[type=\'radio\'][name$=\'_structure_or_data\']').each(function () {
644 var name = $this.prop('name');
645 var val = $('input[name="' + name + '"]:checked').val();
646 var name_default = name + '_default';
647 if (!$('input[name="' + name_default + '"]').length) {
650 $('<input type="hidden" name="' + name_default + '" value="' + val + '" disabled>')
653 $('<input type="hidden" name="' + name + '" value="structure_and_data">')
655 $this.parent().find('label').remove();
657 $this.parent().remove();
660 $('input[type=\'radio\'][name$=\'_structure_or_data\']').remove();
662 // Disable CREATE table checkbox for sql
663 var createTableCheckbox = $('#checkbox_sql_create_table');
664 createTableCheckbox.prop('checked', true);
665 var dummyCreateTable = $('#checkbox_sql_create_table')
668 .attr('type', 'hidden');
670 .prop('disabled', true)
671 .after(dummyCreateTable)
673 .fadeTo('fast', 0.4);
675 setup_table_structure_or_data();
679 * Handle force structure_or_data
681 $('#plugins').on('change', setup_table_structure_or_data);
685 * Toggles display of options when quick and custom export are selected
687 function toggle_quick_or_custom () {
688 if ($('input[name=\'quick_or_custom\']').length === 0 // custom_no_form option
689 || $('#radio_custom_export').prop('checked') // custom
691 $('#databases_and_tables').show();
694 $('#format_specific_opts').show();
695 $('#output_quick_export').hide();
696 var selected_plugin_name = $('#plugins').find('option:selected').val();
697 $('#' + selected_plugin_name + '_options').show();
699 $('#databases_and_tables').hide();
702 $('#format_specific_opts').hide();
703 $('#output_quick_export').show();
707 function check_time_out (time_limit) {
708 if (typeof time_limit === 'undefined' || time_limit === 0) {
711 // margin of one second to avoid race condition to set/access session variable
712 time_limit = time_limit + 1;
713 var href = 'export.php';
715 'ajax_request' : true,
716 'check_time_out' : true
718 clearTimeout(time_out);
719 time_out = setTimeout(function () {
720 $.get(href, params, function (data) {
721 if (data.message === 'timeout') {
723 '<div class="error">' +
724 PMA_messages.strTimeOutError +
730 }, time_limit * 1000);
734 * Handler for Database/table alias select
736 * @param event object the event object
740 function aliasSelectHandler (event) {
741 var sel = event.data.sel;
742 var type = event.data.type;
743 var inputId = $(this).val();
744 var $label = $(this).next('label');
745 $('input#' + $label.attr('for')).addClass('hide');
746 $('input#' + inputId).removeClass('hide');
747 $label.attr('for', inputId);
748 $('#alias_modal ' + sel + '[id$=' + type + ']:visible').addClass('hide');
749 var $inputWrapper = $('#alias_modal ' + sel + '#' + inputId + type);
750 $inputWrapper.removeClass('hide');
751 if (type === '_cols' && $inputWrapper.length > 0) {
752 var outer = $inputWrapper[0].outerHTML;
753 // Replace opening tags
754 var regex = /<dummy_inp/gi;
755 if (outer.match(regex)) {
756 var newTag = outer.replace(regex, '<input');
757 // Replace closing tags
758 regex = /<\/dummy_inp/gi;
759 newTag = newTag.replace(regex, '</input');
760 // Assign replacement
761 $inputWrapper.replaceWith(newTag);
763 } else if (type === '_tables') {
764 $('.table_alias_select:visible').trigger('change');
766 $('#alias_modal').dialog('option', 'position', 'center');
770 * Handler for Alias dialog box
772 * @param event object the event object
776 function createAliasModal (event) {
777 event.preventDefault();
779 dlgButtons[PMA_messages.strSaveAndClose] = function () {
780 $(this).dialog('close');
781 $('#alias_modal').parent().appendTo($('form[name="dump"]'));
783 $('#alias_modal').dialog({
784 width: Math.min($(window).width() - 100, 700),
785 maxHeight: $(window).height(),
787 dialogClass: 'alias-dialog',
789 create: function () {
790 $(this).css('maxHeight', $(window).height() - 150);
791 var db = PMA_commonParams.get('db');
793 var option = $('<option></option>');
795 option.attr('value', db);
796 $('#db_alias_select').append(option).val(db).trigger('change');
800 server : PMA_commonParams.get('server'),
801 type: 'list-databases'
803 $.post('ajax.php', params, function (response) {
804 if (response.success === true) {
805 $.each(response.databases, function (idx, value) {
806 var option = $('<option></option>');
808 option.attr('value', value);
809 $('#db_alias_select').append(option);
812 PMA_ajaxShowMessage(response.error, false);
819 $(this).find('input[type="text"]').each(function () {
820 // trim empty input fields on close
824 $(this).parents('tr').remove();
827 // Toggle checkbox based on aliases
828 $('input#btn_alias_config').prop('checked', !isEmpty);
830 position: { my: 'center top', at: 'center top', of: window }
834 function aliasToggleRow (elm) {
835 var inputs = elm.parents('tr').find('input,button');
837 inputs.attr('disabled', false);
839 inputs.attr('disabled', true);
843 function addAlias (type, name, field, value) {
848 var row = $('#alias_data tfoot tr').clone();
849 row.find('th').text(type);
850 row.find('td:first').text(name);
851 row.find('input').attr('name', field);
852 row.find('input').val(value);
853 row.find('.alias_remove').on('click', function () {
854 $(this).parents('tr').remove();
857 var matching = $('#alias_data [name="' + $.escapeSelector(field) + '"]');
858 if (matching.length > 0) {
859 matching.parents('tr').remove();
862 $('#alias_data tbody').append(row);
865 AJAX.registerOnload('export.js', function () {
866 $('input[type=\'radio\'][name=\'quick_or_custom\']').on('change', toggle_quick_or_custom);
868 $('#scroll_to_options_msg').hide();
869 $('#format_specific_opts').find('div.format_specific_options')
878 toggle_quick_or_custom();
879 toggle_structure_data_opts();
880 toggle_sql_include_comments();
881 check_table_select_all();
882 handleAddProcCheckbox();
885 * Initially disables the "Dump some row(s)" sub-options
887 disable_dump_some_rows_sub_options();
890 * Disables the "Dump some row(s)" sub-options when it is not selected
892 $('input[type=\'radio\'][name=\'allrows\']').on('change', function () {
893 if ($('input[type=\'radio\'][name=\'allrows\']').prop('checked')) {
894 enable_dump_some_rows_sub_options();
896 disable_dump_some_rows_sub_options();
900 // Open Alias Modal Dialog on click
901 $('#btn_alias_config').on('click', createAliasModal);
902 $('.alias_remove').on('click', function () {
903 $(this).parents('tr').remove();
905 $('#db_alias_select').on('change', function () {
906 aliasToggleRow($(this));
907 var db = $(this).val();
908 var table = PMA_commonParams.get('table');
910 var option = $('<option></option>');
912 option.attr('value', table);
913 $('#table_alias_select').append(option).val(table).trigger('change');
917 server : PMA_commonParams.get('server'),
921 $.post('ajax.php', params, function (response) {
922 if (response.success === true) {
923 $.each(response.tables, function (idx, value) {
924 var option = $('<option></option>');
926 option.attr('value', value);
927 $('#table_alias_select').append(option);
930 PMA_ajaxShowMessage(response.error, false);
935 $('#table_alias_select').on('change', function () {
936 aliasToggleRow($(this));
939 server : PMA_commonParams.get('server'),
940 db : $('#db_alias_select').val(),
941 table: $(this).val(),
944 $.post('ajax.php', params, function (response) {
945 if (response.success === true) {
946 $.each(response.columns, function (idx, value) {
947 var option = $('<option></option>');
949 option.attr('value', value);
950 $('#column_alias_select').append(option);
953 PMA_ajaxShowMessage(response.error, false);
957 $('#column_alias_select').on('change', function () {
958 aliasToggleRow($(this));
960 $('#db_alias_button').on('click', function (e) {
962 var db = $('#db_alias_select').val();
964 PMA_messages.strAliasDatabase,
966 'aliases[' + db + '][alias]',
967 $('#db_alias_name').val()
969 $('#db_alias_name').val('');
971 $('#table_alias_button').on('click', function (e) {
973 var db = $('#db_alias_select').val();
974 var table = $('#table_alias_select').val();
976 PMA_messages.strAliasTable,
978 'aliases[' + db + '][tables][' + table + '][alias]',
979 $('#table_alias_name').val()
981 $('#table_alias_name').val('');
983 $('#column_alias_button').on('click', function (e) {
985 var db = $('#db_alias_select').val();
986 var table = $('#table_alias_select').val();
987 var column = $('#column_alias_select').val();
989 PMA_messages.strAliasColumn,
990 db + '.' + table + '.' + column,
991 'aliases[' + db + '][tables][' + table + '][colums][' + column + ']',
992 $('#column_alias_name').val()
994 $('#column_alias_name').val('');