Projet

Général

Profil

Paste
Télécharger (3,95 ko) Statistiques
| Branche: | Révision:

root / drupal7 / sites / all / modules / ds / modules / ds_extras / js / ds_extras.admin.js @ 3dfa8105

1
/**
2
 * @file
3
 * Javascript functionality for the Display Suite Extras administration UI.
4
 */
5

    
6
(function ($) {
7

    
8
Drupal.behaviors.DSExtrasSummaries = {
9
  attach: function (context) {
10

    
11
    $('#edit-additional-settings-fs1', context).drupalSetSummary(function (context) {
12
      var fieldtemplates = $('#edit-additional-settings-fs1-ds-extras-field-template', context);
13

    
14
      if (fieldtemplates.is(':checked')) {
15
        var fieldtemplate = $('#edit-additional-settings-fs1-ft-default option:selected').text();
16
        return Drupal.t('Enabled') + ': ' + Drupal.t(fieldtemplate);
17
      }
18

    
19
      return Drupal.t('Disabled');
20
    });
21

    
22
    $('#edit-additional-settings-fs2', context).drupalSetSummary(function (context) {
23
      var extra_fields = $('#edit-additional-settings-fs2-ds-extras-fields-extra', context);
24

    
25
      if (extra_fields.is(':checked')) {
26
        return Drupal.t('Enabled');
27
      }
28

    
29
      return Drupal.t('Disabled');
30
    });
31

    
32
    $('#edit-additional-settings-fs4', context).drupalSetSummary(function (context) {
33
      var vals = [];
34

    
35
      $('input:checked', context).parent().each(function () {
36
        vals.push(Drupal.checkPlain($.trim($('.option', this).text())));
37
      });
38

    
39
      if (vals.length > 0) {
40
        return vals.join(', ');
41
      }
42
      return Drupal.t('Disabled');
43
    });
44
  }
45
};
46

    
47
/**
48
 * Field template.
49
 */
50
Drupal.behaviors.settingsToggle = {
51
  attach: function (context) {
52

    
53
    // Bind on click.
54
    $('.field-formatter-settings-edit-form', context).once('ds-ft', function() {
55

    
56
      var fieldTemplate = $(this);
57

    
58
      // Bind on field template select button.
59
      fieldTemplate.find('.ds-extras-field-template').change(function() {
60
        ds_show_expert_settings(fieldTemplate);
61
      });
62

    
63
      ds_show_expert_settings(fieldTemplate);
64

    
65
    });
66

    
67
    // Show / hide settings on field template form.
68
    function ds_show_expert_settings(element, open) {
69
      field = element;
70
      ft = $('.ds-extras-field-template', field).val();
71

    
72
      if (ft == 'theme_ds_field_expert') {
73
        // Show second, third, fourth, fifth and sixth label.
74
        if ($('.lb .form-item:nth-child(1)', field).is(':visible')) {
75
          $('.lb .form-item:nth-child(2), .lb .form-item:nth-child(3), .lb .form-item:nth-child(4), .lb .form-item:nth-child(5), .lb .form-item:nth-child(6)', field).show();
76
        }
77
        // Remove margin from update button.
78
        $('.ft-update', field).css({'margin-top': '-10px'});
79
        // Show wrappers.
80
        $('.lbw, .ow, .fis, .fi', field).show();
81
        // Show prefix and suffix
82
        $('.field-prefix', field).show();
83
        $('.field-suffix', field).show();
84
      }
85
      else {
86
        // Hide second, third, fourth, fifth and sixth  label.
87
        $('.lb .form-item:nth-child(2), .lb .form-item:nth-child(3), .lb .form-item:nth-child(4), .lb .form-item:nth-child(5), .lb .form-item:nth-child(6)', field).hide();
88
        // Add margin on update button.
89
        $('.ft-update', field).css({'margin-top': '10px'});
90
        // Hide wrappers.
91
        $('.lbw, .ow, .fis, .fi', field).hide();
92
        // Hide prefix and suffix
93
        $('.field-prefix', field).hide();
94
        $('.field-suffix', field).hide();
95
      }
96

    
97
      // Colon.
98
      if (ft == 'theme_field' || ft == 'theme_ds_field_reset') {
99
        $('.colon-checkbox', field).parent().hide();
100
      }
101
      else if ($('.lb .form-item:nth-child(1)', field).is(':visible')) {
102
        $('.colon-checkbox', field).parent().show();
103
      }
104

    
105
      // CSS classes.
106
      if (ft != 'theme_ds_field_expert' && ft != 'theme_ds_field_reset') {
107
        $('.field-classes', field).show();
108
      }
109
      else {
110
        $('.field-classes', field).hide();
111
      }
112
    }
113

    
114
    $('.label-change').change(function() {
115
      var field = $(this).parents('tr');
116
      if ($('.field-template', field).length > 0) {
117
        ft = $('.ds-extras-field-template', field).val();
118
        if (ft == 'theme_field' || ft == 'theme_ds_field_reset') {
119
          $('.colon-checkbox', field).parent().hide();
120
        }
121
      }
122
    });
123
  }
124
};
125

    
126
})(jQuery);