source: extensions/event_cats/admin/template/expandable_fieldsets.inc.tpl

Last change on this file was 8113, checked in by LucMorizur, 13 years ago

Change 'Smart Fieldsets' to 'Expandable Fieldsets' ; small improvements

  • Property svn:eol-style set to LF
File size: 6.6 KB
Line 
1
2{* <!-- Expandable Fieldsets by LucMorizur December 2010 --> *}
3{* <!-- Part of Piwigo project, http://piwigo.org        --> *}
4{* <!-- Creates "disappearing" <fieldset>'s              --> *}
5
6{known_script id="jquery" src=$ROOT_URL|@cat:"themes/default/js/jquery.packed.js"}
7
8{literal}
9  <script type="text/javascript">
10    var ef_animate_fast      = false;
11    var ef_plus_bullet_path  = '';
12    var ef_minus_bullet_path = '';
13    var ef_separator         = '&nbsp;: ';
14   
15    function ef_reduce(fieldset_id, fast) {
16      var l_m = jQuery('#' + fieldset_id + ' legend');
17      if (ef_reduce.arguments.length < 2) fast = ef_animate_fast;
18      if (!l_m.is('.ef_command')) l_m.addClass('ef_command');
19      if (!jQuery('#' + fieldset_id).is(':hidden'))
20       l_m.trigger('ef_reduce_private', fast);
21      l_m.removeClass('ef_command');
22    }
23   
24    function ef_maximize(fieldset_id, fast) {
25      var l_r = jQuery('#' + fieldset_id + '_reduced_legend');
26      if (ef_maximize.arguments.length < 2) fast = ef_animate_fast;
27      if (!l_r.is('.ef_command')) l_r.addClass('ef_command');
28      if (jQuery('#' + fieldset_id).is(':hidden'))
29       l_r.trigger('ef_maximize_private', fast);
30      l_r.removeClass('ef_command');
31    }
32   
33    function ef_lock(fieldset_id, locked) {
34      var l_m = jQuery('#' + fieldset_id + ' legend');
35      var l_r = jQuery('#' + fieldset_id + '_reduced_legend');
36      if (locked) {
37        l_r.css('cursor', 'auto');
38        l_r.removeClass('ef_click_ok');
39        l_m.css('cursor', 'auto');
40        l_m.removeClass('ef_click_ok');
41      }
42      else {
43        l_r.css('cursor', 'pointer');
44        if (!l_r.is('.ef_click_ok')) l_r.addClass('ef_click_ok');
45        l_m.css('cursor', 'pointer');
46        if (!l_m.is('.ef_click_ok')) l_m.addClass('ef_click_ok');
47      }
48    }
49   
50    function ef_init(fieldset_id, cache_id) {
51      jQuery(document).ready(function(){
52        var f_m   = jQuery('#' + fieldset_id);
53        var l_m   = jQuery('#' + fieldset_id + ' legend');
54        var l_txt = l_m.text();
55        var f_r   = f_m;
56        var l_r   = l_m;
57        if (ef_minus_bullet_path != '') l_m.prepend(
58          '<img alt = "" title = ""' +
59          'src = "' + ef_minus_bullet_path + '"' + '>&nbsp;'
60        );
61        l_m.addClass('ef_legends');
62        l_m.addClass('ef_click_ok');
63        f_m.after(document.createElement('div'));
64        f_r = f_m.next();
65        f_r.css({
66          'display'        : 'none',
67          'padding-left'   : f_m.css('padding-left'),
68          'padding-right'  : f_m.css('padding-right'),
69          'margin-left'    : f_m.css('margin-left'),
70          'margin-top'     : f_m.css('margin-top'),
71          'margin-right'   : f_m.css('margin-right'),
72          'margin-bottom'  : f_m.css('margin-bottom'),
73          'line-height'    : f_m.css('line-height'),
74          'vertical-align' : f_m.css('vertical-align'),
75          'opacity'        : 0
76        });
77        f_r.attr('id', fieldset_id + '_reduced');
78        f_r.append(document.createElement('span'));
79        l_r = f_r.children('span');
80        l_r.attr('id', fieldset_id + '_reduced_legend');
81        l_r.addClass('ef_legends');
82        l_r.addClass('ef_click_ok');
83        l_r.css({
84          'font-weight'         : l_m.css('font-weight'),
85          'font-style'          : l_m.css('font-style'),
86          'letter-spacing'      : l_m.css('letter-spacing'),
87          'padding-left'        : f_m.css('border-left-width'),
88          'padding-right'       : f_m.css('border-right-width'),
89          'text-align'          : l_m.css('text-align'),
90          'color'               : l_m.css('color'),
91          'font-family'         : l_m.css('font-family'),
92          'font-size'           : l_m.css('font-size'),
93          'border-top-width'    : l_m.css('border-top-width'),
94          'border-bottom-width' : l_m.css('border-bottom-width'),
95          'border-left-width'   : l_m.css('border-left-width'),
96          'border-right-width'  : l_m.css('border-right-width'),
97          'border-top-color'    : l_m.css('border-top-color'),
98          'border-bottom-color' : l_m.css('border-bottom-color'),
99          'border-left-color'   : l_m.css('border-left-color'),
100          'border-right-color'  : l_m.css('border-right-color'),
101          'border-top-style'    : l_m.css('border-top-style'),
102          'border-bottom-style' : l_m.css('border-bottom-style'),
103          'border-left-style'   : l_m.css('border-left-style'),
104          'border-right-style'  : l_m.css('border-right-style')
105        });
106          // 'outline'             : l_m.css('outline'), // NOK with IE8
107        if (ef_plus_bullet_path == '') l_r.append(
108          '<span style = "padding-left:' + l_m.css('padding-left') + ';">' +
109          l_txt + '</' + 'span>' + ef_separator
110         );
111        else l_r.append(
112          '<img alt = "" title = "" src = "' + ef_plus_bullet_path + '" ' +
113          'style = "padding-left:' + l_m.css('padding-left') + ';"' +
114          '>&nbsp;' + l_txt + ef_separator
115         );
116        l_r.after(document.createElement('span'));
117        l_r.next().attr('id', cache_id);
118        jQuery('.ef_legends').css('cursor', 'pointer');
119        l_m.bind('ef_reduce_private', function(event, fast){ // Reduce
120          if (l_m.is('.ef_command, .ef_click_ok')) {
121            if (fast) {
122              f_m.hide();
123              f_r.show();
124              f_r.css('opacity', 1);
125              f_m.find('*').not('.ef_legends, img').css('opacity', 0);
126            }
127            else {
128              f_m.find('*').not('.ef_legends, img').animate(
129                { 'opacity' : 0 },
130                200,
131                function(){
132                  f_m.slideUp(400);
133                  f_r.slideDown(400, function(){
134                    f_r.css('opacity', 1);
135                  });
136                }
137              );
138            }
139          }
140        });
141        l_r.bind('ef_maximize_private', function(event, fast){ // Maximize
142          if (l_r.is('.ef_command, .ef_click_ok')) {
143            if (fast) {
144              f_r.hide();
145              f_m.show();
146              f_m.find('*').not('.ef_legends, img').css('opacity', 1);
147            }
148            else {
149              f_r.css('opacity', 0);
150              f_r.slideUp(400);
151              f_m.slideDown(400, function(){
152                f_m.find('*').not('.ef_legends, img').animate(
153                  { 'opacity' : 1 },
154                  200
155                );
156              });
157            }
158          }
159        });
160        l_m.click(function(){ // Reduce
161          l_m.trigger('ef_reduce_private', ef_animate_fast);
162        });
163        l_r.click(function(){ // Maximize
164          l_r.trigger('ef_maximize_private', ef_animate_fast);
165        });
166      });
167    }
168  </script>
169{/literal}
Note: See TracBrowser for help on using the repository browser.