Files
phpmyadmin/js/export.js

225 lines
8.4 KiB
JavaScript

/* vim: set expandtab sw=4 ts=4 sts=4: */
/**
* Functions used in the export tab
*
*/
/**
* Toggles the hiding and showing of each plugin's options
* according to the currently selected plugin from the dropdown list
*/
$(document).ready(function() {
$("#plugins").change(function() {
$(".format_specific_options").each(function() {
$(this).hide();
});
var selected_plugin_name = $("#plugins option:selected").attr("value");
$("#" + selected_plugin_name + "_options").show();
});
});
/**
* Toggles the enabling and disabling of the SQL plugin's comment options that apply only when exporting structure
*/
$(document).ready(function() {
$("input[type='radio'][name$='sql_structure_or_data']").change(function() {
var show = $("input[type='radio'][name$='sql_structure_or_data']:checked").attr("value");
if(show == 'data') {
// disable the SQL comment options
$("#checkbox_sql_dates").parent().fadeTo('fast', 0.4);
$("#checkbox_sql_dates").attr('disabled', 'disabled');
$("#checkbox_sql_relation").parent().fadeTo('fast', 0.4);
$("#checkbox_sql_relation").attr('disabled', 'disabled');
$("#checkbox_sql_mime").parent().fadeTo('fast', 0.4);
$("#checkbox_sql_mime").attr('disabled', 'disabled');
} else {
// enable the SQL comment options
$("#checkbox_sql_dates").parent().fadeTo('fast', 1);
$("#checkbox_sql_dates").removeAttr('disabled');
$("#checkbox_sql_relation").parent().fadeTo('fast', 1);
$("#checkbox_sql_relation").removeAttr('disabled');
$("#checkbox_sql_mime").parent().fadeTo('fast', 1);
$("#checkbox_sql_mime").removeAttr('disabled');
}
});
});
/**
* Toggles the hiding and showing of plugin structure-specific and data-specific
* options
*/
function toggle_structure_data_opts(pluginName) {
var radioFormName = pluginName + "_structure_or_data";
var dataDiv = "#" + pluginName + "_data";
var structureDiv = "#" + pluginName + "_structure";
var show = $("input[type='radio'][name='" + radioFormName + "']:checked").attr("value");
if(show == 'data') {
$(dataDiv).slideDown('slow');
$(structureDiv).slideUp('slow');
} else {
$(structureDiv).slideDown('slow');
if(show == 'structure') {
$(dataDiv).slideUp('slow');
} else {
$(dataDiv).slideDown('slow');
}
}
}
$(document).ready(function() {
$("input[type='radio'][name='latex_structure_or_data']").change(function() {
toggle_structure_data_opts("latex");
});
$("input[type='radio'][name='odt_structure_or_data']").change(function() {
toggle_structure_data_opts("odt");
});
$("input[type='radio'][name='texytext_structure_or_data']").change(function() {
toggle_structure_data_opts("texytext");
});
$("input[type='radio'][name='htmlword_structure_or_data']").change(function() {
toggle_structure_data_opts("htmlword");
});
$("input[type='radio'][name='sql_structure_or_data']").change(function() {
toggle_structure_data_opts("sql");
});
});
/**
* Toggles the disabling of the "save to file" options
*/
function toggle_save_to_file() {
if($("#radio_dump_asfile:checked").length == 0) {
$("#ul_save_asfile > li").fadeTo('fast', 0.4);
$("#ul_save_asfile > li > input").attr('disabled', 'disabled');
$("#ul_save_asfile > li> select").attr('disabled', 'disabled');
} else {
$("#ul_save_asfile > li").fadeTo('fast', 1);
$("#ul_save_asfile > li > input").removeAttr('disabled');
$("#ul_save_asfile > li> select").removeAttr('disabled');
}
}
$(document).ready(function() {
toggle_save_to_file();
$("input[type='radio'][name='output_format']").change(function() {
toggle_save_to_file();
});
});
/**
* For SQL plugin, toggles the disabling of the "display comments" options
*/
function toggle_sql_include_comments() {
$("#checkbox_sql_include_comments").change(function() {
if($("#checkbox_sql_include_comments:checked").length == 0) {
$("#ul_include_comments > li").fadeTo('fast', 0.4);
$("#ul_include_comments > li > input").attr('disabled', 'disabled');
} else {
// If structure is not being exported, the comment options for structure should not be enabled
if($("#radio_sql_structure_or_data_data:checked").length == 1) {
$("#text_sql_header_comment").parent("li").fadeTo('fast', 1);
$("#text_sql_header_comment").removeAttr('disabled');
} else {
$("#ul_include_comments > li").fadeTo('fast', 1);
$("#ul_include_comments > li > input").removeAttr('disabled');
}
}
});
}
/**
* For SQL plugin, if "CREATE TABLE options" is checked/unchecked, check/uncheck each of its sub-options
*/
$(document).ready(function() {
$("#checkbox_sql_create_table_statements").change(function() {
if($("#checkbox_sql_create_table_statements:checked").length == 0) {
$("#checkbox_sql_if_not_exists").removeAttr('checked');
$("#checkbox_sql_auto_increment").removeAttr('checked');
} else {
$("#checkbox_sql_if_not_exists").attr('checked', 'checked');
$("#checkbox_sql_auto_increment").attr('checked', 'checked');
}
});
});
/**
* Disables the view output as text option if the output must be saved as a file
*/
$(document).ready(function() {
$("#plugins").change(function() {
var active_plugin = $("#plugins option:selected").attr("value");
var force_file = $("#force_file_" + active_plugin).attr("value");
if(force_file == "true") {
$("#radio_view_as_text").attr('disabled', 'disabled');
$("#radio_view_as_text").parent().fadeTo('fast', 0.4);
} else {
$("#radio_view_as_text").removeAttr('disabled');
$("#radio_view_as_text").parent().fadeTo('fast', 1);
}
});
});
/**
* Toggles display of options when quick and custom export are selected
*/
function toggle_quick_or_custom() {
if($("$(this):checked").attr("value") == "custom") {
$("#databases_and_tables").show();
$("#rows").show();
$("#output").show();
$("#format_specific_opts").show();
$("#output_quick_export").hide();
var selected_plugin_name = $("#plugins option:selected").attr("value");
$("#" + selected_plugin_name + "_options").show();
} else {
$("#databases_and_tables").hide();
$("#rows").hide();
$("#output").hide();
$("#format_specific_opts").hide();
$("#output_quick_export").show();
}
}
$(document).ready(function() {
$("input[type='radio'][name='quick_or_custom']").change(function() {
toggle_quick_or_custom();
});
});
/**
* Sets up the interface for Javascript-enabled browsers since the default is for
* Javascript-disabled browsers
*/
$(document).ready(function() {
if($("input[type='hidden'][name='export_method']").attr("value") != "custom-no-form") {
$("#quick_or_custom").show();
}
$("#scroll_to_options_msg").hide();
$(".format_specific_options").hide();
$(".format_specific_options").css({ "border": 0, "margin": 0, "padding": 0});
$(".format_specific_options h3").remove();
toggle_quick_or_custom();
toggle_structure_data_opts($("select[id='plugins']").attr("value"));
toggle_sql_include_comments();
});
/**
* Disables the "Dump some row(s)" sub-options when it is not selected
*/
$(document).ready(function() {
$("input[type='radio'][name='allrows']").change(function() {
if($("input[type='radio'][name='allrows']:checked").attr("value") == "1") {
$("label[for='limit_to']").fadeTo('fast', 0.4);
$("label[for='limit_from']").fadeTo('fast', 0.4);
$("input[type='text'][name='limit_to']").attr('disabled', 'disabled');
$("input[type='text'][name='limit_from']").attr('disabled', 'disabled');
} else {
$("label[for='limit_to']").fadeTo('fast', 1);
$("label[for='limit_from']").fadeTo('fast', 1);
$("input[type='text'][name='limit_to']").removeAttr('disabled');
$("input[type='text'][name='limit_from']").removeAttr('disabled');
}
});
});