Projet

Général

Profil

Paste
Télécharger (14,5 ko) Statistiques
| Branche: | Révision:

root / drupal7 / sites / all / modules / ddblock / js / ddblock.admin.js @ 87dbc3bf

1
(function ($) {
2
/*
3
 *  @file
4
 *  Javascript functionality for the Dynamic display block module admin page
5
 */
6

    
7
/*
8
 * Show/hide advanced settings sections on the ddblock instance settings page.
9
 * don't change
10
 */
11
Drupal.behaviors.ddblockShowHideAdvancedOptions = {
12
  attach: function(context, settings) {
13
    // Show/hide slide advanced options depending on the checkbox.
14
    $('#edit-advanced:not(.ddblock-show-hide-advanced-options-processed)', context)
15
    .addClass('ddblock-show-hide-advanced-options-processed')
16
    .bind("click change", function() {
17
      if (this.checked) {
18
        $("#ddblock-advanced-settings-wrapper").show();
19
        $("#ddblock-pager-position-wrapper").show();
20
        $("#ddblock-pager-event-wrapper").show();
21
        $("#ddblock-pager-height-wrapper").hide();
22
        $("#ddblock-pager-width-wrapper").hide();
23
        $("#edit-content-container").hide();
24
        $("#ddblock-advanced-content-container-overflow-wrapper").hide();
25
        $("#ddblock-advanced-content-container-height-wrapper").hide();
26
        $("#ddblock-advanced-content-container-width-wrapper").hide();
27
        $("#ddblock-image-settings-wrapper").hide();
28
        $("#pager-dimensions-wrapper").hide();
29
        $("#ddblock-template-wrapper").show();
30
        $("#edit-image-style-toggle-wrapper").show();
31
        $("#ddblock-image-style-settings-wrapper").show();
32
        $("#edit-image-height-wrapper").hide();
33
        $("#edit-image-width-wrapper").hide();
34
        $("#edit-custom-template-wrapper").show();
35
        $('#edit-pager-settings option[value="custom-pager"]').show();
36
      }
37
      else {
38
        $("#ddblock-advanced-settings-wrapper").hide();
39
        $("#ddblock-pager-position-wrapper").hide();
40
        $("#ddblock-pager-event-wrapper").hide();
41
        $("#ddblock-pager-height-wrapper").show();
42
        $("#ddblock-pager-width-wrapper").show();
43
        $("#edit-content-container").show();
44
        $("#ddblock-advanced-content-container-overflow-wrapper").show();
45
        $("#ddblock-advanced-content-container-height-wrapper").show();
46
        $("#ddblock-advanced-content-container-width-wrapper").show();
47
        $("#ddblock-image-settings-wrapper").show();
48
        $("#pager-dimensions-wrapper").show();
49
        $("#ddblock-template-wrapper").hide();
50
        $("#edit-image-style-toggle-wrapper").hide();
51
        $("#ddblock-image-style-settings-wrapper").hide();
52
        $("#edit-image-height-wrapper").show();
53
        $("#edit-image-width-wrapper").show();
54
        $("#edit-custom-template-wrapper").hide();
55
        $('#edit-pager-settings option[value="custom-pager"]').hide();
56
        $('#edit-pager-settings #edit-pager').val('number-pager');
57
      }
58
      return true;
59
    }).trigger('change').trigger('change')
60
  }
61
};
62

    
63
/*
64
 * Show/hide imagefolder/contenttype settings sections on the ddblock settings page.
65
 * don't change
66
 */
67
Drupal.behaviors.ddblockShowHideContentOptions = {
68
  attach: function(context, settings) {
69
  // get the child elements of the pager dropdown when the DOM has loaded
70
  var pagerOptions = $("#edit-pager").children('option');
71
  // Show/hide imagefolder/contenttype options depending on the select.
72
  $('#edit-input-type:not(.ddblock-show-hide-content-options-processed)', context)
73
  .addClass('ddblock-show-hide-content-options-processed')
74
  .bind("click change", function() {
75
    if ($('#ddblock-content-settings #edit-input-type').val() == 'images') {
76
      $("#ddblock-image-folder-settings-wrapper").show();
77
      $("#ddblock-content-types-settings-wrapper").hide();
78
      $('.form-item-image-style-toggle').show();
79
      $('.form-item-image-style-toggle').val(0);
80
      $("#ddblock-image-style-settings-wrapper").show();
81
      var regexEnabled = /^(n|p|\i)/; // number, prev/next, image
82
    }
83
    else {
84
      $("#ddblock-image-folder-settings-wrapper").hide();
85
      $("#ddblock-content-types-settings-wrapper").show();
86
//      $('.form-item-image-style-toggle').hide();
87
      $('.form-item-image-style-toggle').val(0);
88
      $("#ddblock-image-style-settings-wrapper").hide();
89
      var regexEnabled = /^(p)/; // prev/next
90
    }
91
    // set the pager options depending on the input type chosen
92
    $("#edit-pager").html(
93
      $(pagerOptions)
94
      // filter the option elements to only those we want to include in the dropdown
95
      .filter( function() { return this.value.match(regexEnabled);})
96
    );
97
    return false;
98
  }).trigger('change').trigger('change')
99
}
100
};
101

    
102
/*
103
 * Show/hide image styles settings sections on the ddblock instance settings page.
104
 * don't change
105
 */
106
Drupal.behaviors.ddblockShowHideImageStyleOptions = {
107
  attach: function(context, settings) {
108
  // Show/hide image style options depending on the checkbox.
109
  $('#ddblock-instance-settings #edit-image-style-toggle:not(.ddblock-show-hide-image-style-options-processed)', context)
110
  .addClass('ddblock-show-hide-image-style-options-processed')
111
  .bind("click change", function() {
112
    if (this.checked) {
113
      $("#ddblock-image-style-settings-wrapper").show();
114
    }
115
    else {
116
      $("#ddblock-image-style-settings-wrapper").hide();
117
    }
118
    return true;
119
  }).trigger('change').trigger('change')
120
  // Show/hide image style options depending on the checkbox.
121
  $('#ddblock-block-settings #edit-image-style-toggle:not(.ddblock-show-hide-image-style-options-processed)', context)
122
  .addClass('ddblock-show-hide-image-style-options-processed')
123
  // click for IE
124
  .bind("click change", function() {
125
    if (this.checked) {
126
      $("#ddblock-image-style-settings-wrapper").show();
127
    }
128
    else {
129
      $("#ddblock-image-style-settings-wrapper").hide();
130
    }
131
    return true;
132
  }).trigger('change').trigger('change')
133
}
134
};
135

    
136
/*
137
 * Show/hide pager settings sections on the ddblock instance settings page.
138
 * don't change
139
 */
140
Drupal.behaviors.ddblockShowHidePagerOptions = {
141
  attach: function(context, settings) {
142
  // Show/hide pager options depending on the checkbox.
143
  $('#ddblock-instance-settings #edit-pager-toggle:not(.ddblock-show-hide-pager-options-processed)', context)
144
  .addClass('ddblock-show-hide-pager-options-processed')
145
  .bind("click change", function() {
146
    if (this.checked){
147
      $("#ddblock-pager-settings-wrapper").show();
148
    }
149
    else {
150
      $("#ddblock-pager-settings-wrapper").hide();
151
    }
152
    return true;
153
  }).trigger('change').trigger('change')
154
  // Show/hide pager options depending on the checkbox.
155
  $('#ddblock-block-settings #edit-pager-toggle:not(.ddblock-show-hide-pager-options-processed)', context)
156
  .addClass('ddblock-show-hide-pager-options-processed')
157
  .bind("click change", function(){
158
    if (this.checked) {
159
      $("#ddblock-pager-settings-wrapper").show();
160
    }
161
    else {
162
      $("#ddblock-pager-settings-wrapper").hide();
163
    }
164
    return true;
165
  }).trigger('change').trigger('change')
166
 }
167
};
168

    
169
/*
170
 * Show/hide prev/next pager settings sections on the ddblock instance settings page.
171
 * don't change
172
 */
173
Drupal.behaviors.ddblockShowHidePrevNextPagerOptions = {
174
  attach: function(context, settings) {
175
  // Show/hide pager options depending on the checkbox.
176
  $('#ddblock-instance-settings #edit-pager2:not(.ddblock-show-hide-prev-next-pager-options-processed)', context)
177
  .addClass('ddblock-show-hide-prev-next-pager-options-processed')
178
  .bind("click change", function() {
179
    if (this.checked){
180
      $("#ddblock-pager2-settings-wrapper").show();
181
    }
182
    else {
183
      $("#ddblock-pager2-settings-wrapper").hide();
184
    }
185
    return true;
186
  }).trigger('change').trigger('change')
187
  // Show/hide pager options depending on the checkbox.
188
  $('#ddblock-block-settings #edit-pager2:not(.ddblock-show-hide-prev-next-pager-options-processed)', context)
189
  .addClass('ddblock-show-hide-prev-next-pager-options-processed')
190
  .bind("click change", function(){
191
    if (this.checked) {
192
      $("#ddblock-pager2-settings-wrapper").show();
193
    }
194
    else {
195
      $("#ddblock-pager2-settings-wrapper").hide();
196
    }
197
    return true;
198
  }).trigger('change').trigger('change')
199
 }
200
};
201

    
202
/*
203
 * Show/hide slide text settings sections on the ddblock instance settings page.
204
 * don't change
205
 */
206
Drupal.behaviors.ddblockShowHideSlideTextOptions = {
207
  attach: function(context, settings) {
208
  // Show/hide slide text options depending on the checkbox.
209
  $('#ddblock-instance-settings #edit-slide-text:not(.ddblock-show-hide-text-options-processed)', context)
210
  .addClass('ddblock-show-hide-text-options-processed')
211
  .bind("click change", function() {
212
    if (this.checked) {
213
      $("#ddblock-slide-text-settings-wrapper").show();
214
    }
215
    else {
216
      $("#ddblock-slide-text-settings-wrapper").hide();
217
    }
218
    return true;
219
  }).trigger('change').trigger('change')
220
}
221
};
222

    
223
/*
224
 * Show/hide jquery slide text settings sections on the ddblock instance settings page.
225
 * don't change
226
 */
227
Drupal.behaviors.ddblockShowHideSlideJqueryTextOptions = {
228
  attach: function(context, settings) {
229
  // Show/hide slide text options depending on the checkbox.
230
  $('#ddblock-instance-settings #edit-slide-text-jquery:not(.ddblock-show-hide-text-jquery-options-processed)', context)
231
  .addClass('ddblock-show-hide-text-jquery-options-processed')
232
  .bind("click change", function() {
233
    if (this.checked) {
234
      $("#ddblock-slide-jquery-settings-wrapper").show();
235
    }
236
    else {
237
      $("#ddblock-slide-jquery-settings-wrapper").hide();
238
    }
239
    return true;
240
  }).trigger('change').trigger('change')
241
}
242
};
243

    
244
/*
245
 * Show/hide Disable Pager click
246
 * Show when pager event is mouseover
247
 * Hide when pager event is click
248
 */
249
Drupal.behaviors.ddblockShowHideDisablepagerClickOptions = {
250
  attach: function(context, settings) {
251
  $('#edit-pager-event:not(.ddblock-show-hide-disable-pager-click-options-processed)', context)
252
  .addClass('ddblock-show-hide-disable-pager-click-options-processed')
253
  .bind("click change", function() {
254
    val = $('#edit-pager-event').val();
255
    switch (val) {
256
      case "click" :
257
        $('#ddblock-pager-disable-click-wrapper').hide();
258
      break;
259
      case "mouseover" :
260
        $('#ddblock-pager-disable-click-wrapper').show();
261
      break;
262
    }
263
    return false;
264
  }).trigger('change').trigger('change')
265
}
266
};
267

    
268
/*
269
 * Change pager container depending on the pager.
270
 */
271
Drupal.behaviors.ddblockChangePagerContainerOptions = {
272
  attach: function(context, settings) {
273
  // Change pager container option depending on select.
274
  $('#edit-pager:not(.ddblock-change-pager-container-options-processed)', context)
275
  .addClass('ddblock-change-pager-container-options-processed')
276
  .bind("change", function() {
277
    val = $('#edit-pager').val();
278
    switch (val) {
279
      case "number-pager" :
280
      case "prev-next-pager" :
281
      case "custom-pager" :
282
        $('#edit-pager-container').val('.custom-pager-item');
283
      break;
284
      case "scrollable-pager" :
285
        $('#edit-pager-container').val('.scrollable-pager-item');
286
      break;
287
    }
288
    return false;
289
  }).trigger('change').trigger('change')
290
}
291
};
292

    
293
/*
294
 * Show/hide custom template settings sections on the ddblock instance settings page.
295
 * don't change
296
 */
297
Drupal.behaviors.ddblockShowHideCustomTemplateOptions = {
298
  attach: function(context, settings) {
299
    // get variables
300
    var ddblockSettings = settings.ddblockCustomTemplate;
301
    // get the child elements of the pager dropdown when the DOM has loaded
302
    var pagerOptions = $("#edit-pager").children('option');
303
    // get the child elements of the pager position dropdown when the DOM has loaded
304
    var pagerPositionOptions = $("#edit-pager-position").children('option');
305

    
306
    // Show/hide imagefolder/contenttype options depending on the select.
307
    $('#ddblock-instance-settings #edit-template:not(.ddblock-show-hide-custom-template-options-processed)', context)
308
    .addClass('ddblock-show-hide-custom-template-options-processed')
309
    .bind("change", function() {
310
      val = $('#ddblock-instance-settings #edit-template').val();
311
      var pagertype = val.substr(val.indexOf('0')-1,2);
312
      var slideshowOrientation = val.substr(val.indexOf('0')+1,1);
313
      var regexEnabled;
314
      var pager;
315
      switch (pagertype) {
316
        case "10" :
317
          regexEnabled = /^nu/; // start with nu (number pager)
318
          pager = 'number-pager';
319
          $('#edit-pager-container').val('.custom-pager-item');
320
          $("#ddblock-pager-prev-next-loop-wrapper").hide();
321
          $("#ddblock-nr-of-pager-items-wrapper").hide();
322
          $("#ddblock-pager-scrollable-loop-wrapper").hide();
323
        break;
324
        case "20" :
325
          regexEnabled = /^p/; // start with p (prev/next pager)
326
          pager = 'prev-next-pager';
327
          $('#edit-pager-container').val('.custom-pager-item');
328
          $("#ddblock-pager-prev-next-loop-wrapper").show();
329
          $("#ddblock-nr-of-pager-items-wrapper").hide();
330
          $("#ddblock-pager-scrollable-loop-wrapper").hide();
331
        break;
332
        case "30" :
333
        case "40" :
334
        case "50" :
335
          regexEnabled = /^c/; // start with c (custom pager)
336
          pager = 'custom-pager';
337
          $('#edit-pager-container').val('.custom-pager-item');
338
          $("#ddblock-pager-prev-next-loop-wrapper").hide();
339
          $("#ddblock-nr-of-pager-items-wrapper").show();
340
          $("#ddblock-pager-scrollable-loop-wrapper").hide();
341
        break;
342
        case "60" :
343
        case "70" :
344
        case "80" :
345
        case "90" :
346
          regexEnabled = /^s/; // start with s (scrollable pager)
347
          pager = 'scrollable-pager';
348
          $('#edit-pager-container').val('.scrollable-pager-item');
349
          $("#ddblock-pager-prev-next-loop-wrapper").hide();
350
          $("#ddblock-nr-of-pager-items-wrapper").show();
351
          $("#ddblock-pager-scrollable-loop-wrapper").show();
352
        break;
353
      }
354
      // set the pager options depending on the theme choosen
355
      $("#edit-pager").html(
356
        $(pagerOptions)
357
        // filter the option elements to only those we want to include in the dropdown
358
        .filter( function() { return this.value.match(regexEnabled);})
359
      );
360

    
361
      if (slideshowOrientation == 'p') {
362
        var regexEnabled = /^(t|b)/; // start with t or b
363
      }
364
      else {
365
        var regexEnabled = /^(r|l)/; // start with r or l
366
      }
367
      // set the pager position options depending on the theme choosen
368
      $("#edit-pager-position").html(
369
        $(pagerPositionOptions)
370
        // filter the option elements to only those we want to include in the dropdown
371
        .filter( function() { return this.value.match(regexEnabled);})
372
      );
373
      return false;
374
    }).trigger('change').trigger('change')
375
  }
376
};
377
})(jQuery);