2024-05-06 11:04:37 +07:00

115 lines
3.4 KiB
JavaScript

const init_admin_button_preview = function () {
const $ = jQuery
const execute = () => {
// Init old type flags
let old_type_flags = $("#type_flags option:selected").data('value')
let destination_languages = []
destination_languages.push($(".country-selector label").data("code-language"));
$(".country-selector li").each((key, itm) => {
destination_languages.push($(itm).data("code-language"));
})
const weglot_desination_languages = weglot_languages.available.filter(itm => {
return destination_languages.indexOf(itm.external_code) >= 0;
})
$("#weglot-css-inline").text(weglot_css.inline);
// Change dropdown
$("#is_dropdown").on("change", function(){
$(".country-selector").toggleClass("weglot-inline");
$(".country-selector").toggleClass("weglot-dropdown");
})
// Change with flags
$("#with_flags").on("change", function() {
$(".country-selector label, .country-selector li").toggleClass("weglot-flags");
});
// Change type flags
$("#type_flags").on("change", function(e) {
$(".country-selector label, .country-selector li").removeClass(`flag-${old_type_flags}`);
const new_type_flags = $(':selected', this).data('value')
$(".country-selector label, .country-selector li").addClass(`flag-${new_type_flags}`);
old_type_flags = new_type_flags;
});
const set_languages = () => {
const label_language = weglot_desination_languages.find(
(itm) => itm.external_code === $(".country-selector label").data("code-language")
);
const is_fullname = $("#is_fullname").is(":checked");
const label = is_fullname ? label_language.local : label_language.internal_code.toUpperCase();
$(".country-selector label a, .country-selector label span").text(label);
$(".country-selector li").each((key, itm) => {
const li_language = weglot_desination_languages.find(
(lang) => lang.internal_code === $(itm).data("code-language")
);
const label = is_fullname ? li_language.local : li_language.internal_code.toUpperCase();
$(itm)
.find("a")
.text(label);
})
}
// Change with name
$("#with_name").on("change", function(e) {
if (e.target.checked) {
set_languages();
} else {
$(".country-selector label a, .country-selector label span").text("");
$(".country-selector li a, .country-selector li span").each(
(key, itm) => {
$(itm).text("");
}
);
}
});
$("#is_fullname").on("change", function(e){
if ( !$("#with_name").is(":checked") ) {
return
}
if (e.target.checked) {
set_languages();
}
else {
const label_language = weglot_desination_languages.find(itm => itm.internal_code === $(".country-selector label").data("code-language"));
$(".country-selector label a, .country-selector label span").text(label_language.internal_code.toUpperCase());
$(".country-selector li").each((key, itm) => {
const language = weglot_desination_languages.find(lang => lang.internal_code === $(itm).data("code-language"));
$(itm).find("a").text(language.internal_code.toUpperCase());
$(itm).find("span").text(language.internal_code.toUpperCase());
});
}
});
$("#override_css").on("keyup", function(e) {
$("#weglot-css-inline").text(e.target.value);
})
}
document.addEventListener('DOMContentLoaded', () => {
if ($(".weglot-preview").length === 0){
return
}
execute();
})
}
export default init_admin_button_preview;