Dotclear

source: tests/functional/js/plugins.js @ 1602:e9e1a76d7cbc

Revision 1602:e9e1a76d7cbc, 1.8 KB checked in by Nicolas <nikrou77@…>, 12 years ago (diff)

[Tests] Add some tests for updatePermissionsForm and toggleWithLegend jquery plugins

Line 
1var dotclear = {};
2dotclear.img_plus_src = '../../admin/images/expand.png';
3dotclear.img_plus_alt = 'uncover';
4dotclear.img_minus_src = '../../admin/images/hide.png';
5dotclear.img_minus_alt = 'hide';
6
7jQuery.fn.toggleWithLegend = function(target,s) {
8     var defaults = {
9          img_on_src: dotclear.img_plus_src,
10          img_on_alt: dotclear.img_plus_alt,
11          img_off_src: dotclear.img_minus_src,
12          img_off_alt: dotclear.img_minus_alt,
13          hide: true,
14          speed: 0,
15          legend_click: false,
16          fn: false, // A function called on first display,
17          cookie: false,
18          reverse_cookie: false // Reverse cookie behavior
19     };
20     var p = jQuery.extend(defaults,s);
21
22     if (!target) { return this; }
23
24     var set_cookie = p.hide ^ p.reverse_cookie;
25     if (p.cookie && jQuery.cookie(p.cookie)) {
26          p.hide = p.reverse_cookie;
27     }
28
29     var toggle = function(i,speed) {
30          speed = speed || 0;
31          if (p.hide) {
32               $(i).get(0).src = p.img_on_src;
33               $(i).get(0).alt = p.img_on_alt;
34               target.hide(speed);
35          } else {
36               $(i).get(0).src = p.img_off_src;
37               $(i).get(0).alt = p.img_off_alt;
38               target.show(speed);
39               if (p.fn) {
40                    p.fn.apply(target);
41                    p.fn = false;
42               }
43          }
44
45          if (p.cookie && set_cookie) {
46               if (p.hide ^ p.reverse_cookie) {
47                    jQuery.cookie(p.cookie,'',{expires: -1});
48               } else {
49                    jQuery.cookie(p.cookie,1,{expires: 30});
50               }
51          }
52
53          p.hide = !p.hide;
54     };
55
56     return this.each(function() {
57          var i = document.createElement('img');
58          i.src = p.img_off_src;
59          i.alt = p.img_off_alt;
60          var a = document.createElement('a');
61          a.href= '#';
62          $(a).append(i);
63          $(a).css({
64               border: 'none',
65               outline: 'none'
66          });
67
68          var ctarget = p.legend_click ? this : a;
69
70          $(ctarget).css('cursor','pointer');
71          if (p.legend_click) {
72               $(ctarget).find('label').css('cursor','pointer');
73          }
74          $(ctarget).click(function() {
75               toggle(i,p.speed);
76               return false;
77          });
78
79
80          toggle($(i).get(0));
81          $(this).prepend(' ').prepend(a);
82     });
83};
Note: See TracBrowser for help on using the repository browser.

Sites map