Ignore:
Timestamp:
Dec 9, 2010, 4:12:30 AM (13 years ago)
Author:
LucMorizur
Message:

Improve Smart Fieldsets, next step is presentation

File:
1 edited

Legend:

Unmodified
Added
Removed
  • extensions/event_cats/admin/template/ec_smart_fieldset.inc.tpl

    r8018 r8047  
    44{literal}
    55  <script type="text/javascript">
     6    var sf_animate_fast      = false;
    67    var sf_plus_bullet_path  = '';
    78    var sf_minus_bullet_path = '';
    89   
    9     function sf_reduce(fieldset_id) {
    10       var f_m = jQuery('#' + fieldset_id);
    11       if (!f_m.is(':hidden')) {
    12         f_m.toggle();
    13         jQuery('#' + fieldset_id + '_reduced').toggle();
    14       }
     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');
    1517    }
    1618   
    17     function sf_maximize(fieldset_id) {
    18       var f_m = jQuery('#' + fieldset_id);
    19       if (f_m.is(':hidden')) {
    20         f_m.toggle();
    21         jQuery('#' + fieldset_id + '_reduced').toggle();
    22       }
     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');
    2326    }
    2427   
     
    2831      if (locked) {
    2932        l_r.css('cursor', 'auto');
    30         l_r.removeClass('click_ok');
     33        l_r.removeClass('sf_click_ok');
    3134        l_m.css('cursor', 'auto');
    32         l_m.removeClass('click_ok');
     35        l_m.removeClass('sf_click_ok');
    3336      }
    3437      else {
    3538        l_r.css('cursor', 'pointer');
    36         l_r.addClass('click_ok');
     39        if (!l_r.is('.sf_click_ok')) l_r.addClass('sf_click_ok');
    3740        l_m.css('cursor', 'pointer');
    38         l_m.addClass('click_ok');
     41        if (!l_m.is('.sf_click_ok')) l_m.addClass('sf_click_ok');
    3942      }
    4043    }
     
    7376        l_r.addClass('sf_click_ok');
    7477        l_r.css({
    75           'font-weight'    : l_m.css('font-weight'),
    76           'letter-spacing' : l_m.css('letter-spacing'),
    77           'padding-left'   : f_m.css('border-left-width'),
    78           'text-align'     : l_m.css('text-align'),
    79           'outline'        : l_m.css('outline'),
    80           'color'          : l_m.css('color'),
    81           'font-family'    : l_m.css('font-family'),
    82           'font-size'      : l_m.css('font-size'),
     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'),
    8399        });
    84100        if (sf_plus_bullet_path == '') l_r.append(
     
    94110        l_r.next().attr('id', cache_id);
    95111        jQuery('.sf_legends').css('cursor', 'pointer');
    96         l_m.click(function(){
    97           if (l_m.hasClass('sf_click_ok')) { f_m.toggle(); f_r.toggle(); }
     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          }
    98130        });
    99         l_r.click(function(){
    100           if (l_r.hasClass('sf_click_ok')) { f_m.toggle(); f_r.toggle(); }
     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);
    101154        });
    102155      });
Note: See TracChangeset for help on using the changeset viewer.