source: extensions/event_cats/admin/template/ec_smart_fieldset.inc.tpl @ 8047

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

Improve Smart Fieldsets, next step is presentation

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