75 lines
3.0 KiB
JavaScript
Executable File
75 lines
3.0 KiB
JavaScript
Executable File
(function ($) {
|
|
Drupal.behaviors.lang_dropdown = {
|
|
attach: function (context, settings) {
|
|
var settings = settings || Drupal.settings;
|
|
|
|
if (settings.lang_dropdown) {
|
|
var flags, msddSettings;
|
|
for (key in settings.lang_dropdown) {
|
|
msddSettings = settings.lang_dropdown[key].jsWidget;
|
|
flags = msddSettings.languageicons;
|
|
if (flags) {
|
|
$.each(flags, function(index, value) {
|
|
if (msddSettings.widget == "msdropdown") {
|
|
$('select#lang-dropdown-select-' + key + ' option[value="' + index + '"]', context).attr('data-image', value);
|
|
}
|
|
else if (msddSettings.widget == "ddslick" && Boolean(msddSettings.showSelectedHTML)) {
|
|
$('select#lang-dropdown-select-' + key + ' option[value="' + index + '"]', context).attr('data-imagesrc', value);
|
|
}
|
|
});
|
|
}
|
|
|
|
if (msddSettings.widget == "msdropdown") {
|
|
try {
|
|
$('select#lang-dropdown-select-' + key, context).msDropDown({
|
|
visibleRows: msddSettings.visibleRows,
|
|
roundedCorner: Boolean(msddSettings.roundedCorner),
|
|
animStyle: msddSettings.animStyle,
|
|
event: msddSettings.event,
|
|
mainCSS: msddSettings.mainCSS
|
|
});
|
|
}
|
|
catch (e) {
|
|
if (console) { console.log(e); }
|
|
}
|
|
}
|
|
else if (msddSettings.widget == "chosen") {
|
|
$('select#lang-dropdown-select-' + key, context).chosen({
|
|
disable_search: msddSettings.disable_search,
|
|
no_results_text: msddSettings.no_results_text
|
|
});
|
|
}
|
|
else if (msddSettings.widget == "ddslick") {
|
|
$('select#lang-dropdown-select-' + key, context).ddslick({
|
|
width: (msddSettings.width == 0) ? null : msddSettings.width,
|
|
height: (msddSettings.height == 0) ? null : msddSettings.height,
|
|
showSelectedHTML: Boolean(msddSettings.showSelectedHTML),
|
|
imagePosition: msddSettings.imagePosition,
|
|
onSelected: function(data) {
|
|
// ddselect also fires this function on initialization, so we have
|
|
// to make sure this select has already been initialized.
|
|
if (!data.selectedItem.parent().data('ddslick-has-been-initialized')) {
|
|
data.selectedItem.parent().data('ddslick-has-been-initialized', true);
|
|
return;
|
|
}
|
|
|
|
var lang = data.selectedData.value;
|
|
var href = $('#lang-dropdown-select-'+key, context).parents('form').find('input[name="' + lang + '"]').val();
|
|
window.location.href = href;
|
|
}
|
|
});
|
|
}
|
|
}
|
|
}
|
|
|
|
$('select.lang-dropdown-select-element', context).change(function() {
|
|
var lang = this.options[this.selectedIndex].value;
|
|
var href = $(this).parents('form').find('input[name="' + lang + '"]').val();
|
|
window.location.href = href;
|
|
});
|
|
|
|
$('form.lang-dropdown-form', context).after('<div style="clear:both;"></div>');
|
|
}
|
|
};
|
|
})(jQuery);
|