Projet

Général

Profil

Paste
Télécharger (1,72 ko) Statistiques
| Branche: | Révision:

root / drupal7 / sites / all / modules / webform / js / select-admin.js @ ca0757b9

1

    
2
/**
3
 * @file
4
 * Enhancements for select list configuration options.
5
 */
6

    
7
(function ($) {
8

    
9
Drupal.behaviors.webformSelectLoadOptions = {};
10
Drupal.behaviors.webformSelectLoadOptions.attach = function(context) {
11
  settings = Drupal.settings;
12

    
13
  $('#edit-extra-options-source', context).change(function() {
14
    var url = settings.webform.selectOptionsUrl + '/' + this.value;
15
    $.ajax({
16
      url: url,
17
      success: Drupal.webform.selectOptionsLoad,
18
      dataType: 'json'
19
    });
20
  });
21
}
22

    
23
Drupal.webform = Drupal.webform || {};
24

    
25
Drupal.webform.selectOptionsOriginal = false;
26
Drupal.webform.selectOptionsLoad = function(result) {
27
  if (Drupal.optionsElement) {
28
    if (result.options) {
29
      // Save the current select options the first time a new list is chosen.
30
      if (Drupal.webform.selectOptionsOriginal === false) {
31
        Drupal.webform.selectOptionsOriginal = $(Drupal.optionElements[result.elementId].manualOptionsElement).val();
32
      }
33
      $(Drupal.optionElements[result.elementId].manualOptionsElement).val(result.options);
34
      Drupal.optionElements[result.elementId].disable();
35
      Drupal.optionElements[result.elementId].updateWidgetElements();
36
    }
37
    else {
38
      Drupal.optionElements[result.elementId].enable();
39
      if (Drupal.webform.selectOptionsOriginal) {
40
        $(Drupal.optionElements[result.elementId].manualOptionsElement).val(Drupal.webform.selectOptionsOriginal);
41
        Drupal.optionElements[result.elementId].updateWidgetElements();
42
        Drupal.webform.selectOptionsOriginal = false;
43
      }
44
    }
45
  }
46
  else {
47
    if (result.options) {
48
      $('#' + result.elementId).val(result.options).attr('readonly', 'readonly');
49
    }
50
    else {
51
      $('#' + result.elementId).removeAttr('readonly');
52
    }
53
  }
54
}
55

    
56
})(jQuery);