44 lines
1.6 KiB
JavaScript
44 lines
1.6 KiB
JavaScript
jQuery(document).ready(function(){
|
|
geocoder_admin_field_selected();
|
|
geocoder_admin_handler_selected();
|
|
});
|
|
|
|
function geocoder_admin_field_selected() {
|
|
var field = jQuery('#edit-instance-widget-settings-geocoder-field').val();
|
|
var field_type = Drupal.settings.geocoder_widget_settings.types[field];
|
|
var valid_handlers = Drupal.settings.geocoder_widget_settings.handlers[field_type];
|
|
|
|
// Filter the options list to ones that are valid for this field
|
|
jQuery('#edit-instance-widget-settings-geocoder-handler option').each(function() {
|
|
handler_type = jQuery(this).val();
|
|
if (geocoder_admin_handler_in_array(handler_type,valid_handlers)) {
|
|
jQuery(this).attr('disabled',false);
|
|
jQuery(this).show();
|
|
}
|
|
else {
|
|
jQuery(this).attr('disabled','disabled');
|
|
jQuery(this).hide();
|
|
}
|
|
});
|
|
|
|
// If the currently selected handler is not valid, set it to the first valid handler
|
|
if (!geocoder_admin_handler_in_array(jQuery('#edit-instance-widget-settings-geocoder-handler').val(),valid_handlers)) {
|
|
jQuery('#edit-instance-widget-settings-geocoder-handler').val(valid_handlers[0]);
|
|
}
|
|
|
|
geocoder_admin_handler_selected();
|
|
}
|
|
|
|
function geocoder_admin_handler_in_array(needle, haystack) {
|
|
var length = haystack.length;
|
|
for(var i = 0; i < length; i++) {
|
|
if(haystack[i] == needle) return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
function geocoder_admin_handler_selected() {
|
|
var handler = jQuery('#edit-instance-widget-settings-geocoder-handler').val();
|
|
jQuery('.geocoder-handler-setting').hide();
|
|
jQuery('.geocoder-handler-setting-' + handler).show();
|
|
} |