danielebarchiesi@0: danielebarchiesi@0: /** danielebarchiesi@0: * @file danielebarchiesi@0: * Enhancements for select list configuration options. danielebarchiesi@0: */ danielebarchiesi@0: danielebarchiesi@0: (function ($) { danielebarchiesi@0: danielebarchiesi@0: Drupal.behaviors.webformSelectLoadOptions = {}; danielebarchiesi@0: Drupal.behaviors.webformSelectLoadOptions.attach = function(context) { danielebarchiesi@0: settings = Drupal.settings; danielebarchiesi@0: danielebarchiesi@0: $('#edit-extra-options-source', context).change(function() { danielebarchiesi@0: var url = settings.webform.selectOptionsUrl + '/' + this.value; danielebarchiesi@0: $.ajax({ danielebarchiesi@0: url: url, danielebarchiesi@0: success: Drupal.webform.selectOptionsLoad, danielebarchiesi@0: dataType: 'json' danielebarchiesi@0: }); danielebarchiesi@0: }); danielebarchiesi@0: } danielebarchiesi@0: danielebarchiesi@0: Drupal.webform = Drupal.webform || {}; danielebarchiesi@0: danielebarchiesi@0: Drupal.webform.selectOptionsOriginal = false; danielebarchiesi@0: Drupal.webform.selectOptionsLoad = function(result) { danielebarchiesi@0: if (Drupal.optionsElement) { danielebarchiesi@0: if (result.options) { danielebarchiesi@0: // Save the current select options the first time a new list is chosen. danielebarchiesi@0: if (Drupal.webform.selectOptionsOriginal === false) { danielebarchiesi@0: Drupal.webform.selectOptionsOriginal = $(Drupal.optionElements[result.elementId].manualOptionsElement).val(); danielebarchiesi@0: } danielebarchiesi@0: $(Drupal.optionElements[result.elementId].manualOptionsElement).val(result.options); danielebarchiesi@0: Drupal.optionElements[result.elementId].disable(); danielebarchiesi@0: Drupal.optionElements[result.elementId].updateWidgetElements(); danielebarchiesi@0: } danielebarchiesi@0: else { danielebarchiesi@0: Drupal.optionElements[result.elementId].enable(); danielebarchiesi@0: if (Drupal.webform.selectOptionsOriginal) { danielebarchiesi@0: $(Drupal.optionElements[result.elementId].manualOptionsElement).val(Drupal.webform.selectOptionsOriginal); danielebarchiesi@0: Drupal.optionElements[result.elementId].updateWidgetElements(); danielebarchiesi@0: Drupal.webform.selectOptionsOriginal = false; danielebarchiesi@0: } danielebarchiesi@0: } danielebarchiesi@0: } danielebarchiesi@0: else { danielebarchiesi@0: if (result.options) { danielebarchiesi@0: $('#' + result.elementId).val(result.options).attr('readonly', 'readonly'); danielebarchiesi@0: } danielebarchiesi@0: else { danielebarchiesi@0: $('#' + result.elementId).attr('readonly', ''); danielebarchiesi@0: } danielebarchiesi@0: } danielebarchiesi@0: } danielebarchiesi@0: danielebarchiesi@0: })(jQuery);