Projet

Général

Profil

Paste
Télécharger (2,08 ko) Statistiques
| Branche: | Révision:

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

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

    
6
(function ($) {
7

    
8
  "use strict";
9

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

    
13
    $('#edit-extra-options-source', context).change(function () {
14
      var url = Drupal.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
      var $element = $('#' + result.elementId);
48
      $element.webformProp('readonly', result.options);
49
      if (result.options) {
50
        $element.val(result.options);
51
      }
52
    }
53
  }
54

    
55
  /**
56
   * Make a prop shim for jQuery < 1.9.
57
   */
58
  $.fn.webformProp = $.fn.webformProp || function (name, value) {
59
    if (value) {
60
      return $.fn.prop ? this.prop(name, true) : this.attr(name, true);
61
    }
62
    else {
63
      return $.fn.prop ? this.prop(name, false) : this.removeAttr(name);
64
    }
65
  };
66

    
67
})(jQuery);