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