[ Index ]

PHP Cross Reference of Drupal 6 (gatewave)

title

Body

[close]

/sites/all/modules/vertical_tabs/ -> vertical_tabs.js (source)

   1  // $Id: vertical_tabs.js,v 1.3.2.19 2010/02/03 18:24:42 davereid Exp $
   2  
   3  Drupal.verticalTabs = Drupal.verticalTabs || {};
   4  Drupal.settings.verticalTabs = Drupal.settings.verticalTabs || {};
   5  
   6  Drupal.behaviors.verticalTabs = function() {
   7    if (!$('.vertical-tabs-list').size() && Drupal.settings.verticalTabs) {
   8      var ul = $('<ul class="vertical-tabs-list"></ul>');
   9      var panes = $('<div class="vertical-tabs-panes"></div>');
  10      $.each(Drupal.settings.verticalTabs, function(k, v) {
  11        var summary = '', cssClass = 'vertical-tabs-list-' + k;
  12        if (v.callback && Drupal.verticalTabs[v.callback]) {
  13          summary = '<span class="summary">'+ Drupal.verticalTabs[v.callback].apply(this, v.args) +'</span>';
  14        }
  15        else {
  16          cssClass += ' vertical-tabs-nosummary';
  17        }
  18  
  19        // Add a list item to the vertical tabs list.
  20        $('<li class="vertical-tab-button"><a href="#' + k + '" class="' + cssClass + '"><strong>'+ v.name + '</strong>' + summary +'</a></li>').appendTo(ul)
  21          .find('a')
  22          .bind('click', function() {
  23            $(this).parent().addClass('selected').siblings().removeClass('selected');
  24            $('.vertical-tabs-' + k).show().siblings('.vertical-tabs-pane').hide();
  25            return false;
  26        });
  27  
  28        // Find the contents of the fieldset (depending on #collapsible property).
  29        var fieldset = $('<fieldset></fieldset>');
  30        var fieldsetContents = $('.vertical-tabs-' + k + ' > .fieldset-wrapper > *');
  31        if (fieldsetContents.size()) {
  32          fieldsetContents.appendTo(fieldset);
  33        }
  34        else {
  35          $('.vertical-tabs-' + k).children().appendTo(fieldset);
  36        }
  37  
  38        // Remove the legend from the fieldset.
  39        fieldset.children('legend').remove();
  40  
  41        // Add the fieldset contents to the toggled fieldsets.
  42        fieldset.appendTo(panes)
  43        .addClass('vertical-tabs-' + k)
  44        .addClass('vertical-tabs-pane')
  45        .find('input, select, textarea').bind('change', function() {
  46          if (v.callback && Drupal.verticalTabs[v.callback]) {
  47            $('a.vertical-tabs-list-' + k + ' span.summary').html(Drupal.verticalTabs[v.callback].apply(this, v.args));
  48          }
  49        });
  50        $('.vertical-tabs-' + k).remove();
  51      });
  52  
  53      $('div.vertical-tabs').html(ul).append(panes);
  54  
  55      // Add an error class to any fieldsets with errors in them.
  56      $('fieldset.vertical-tabs-pane').each(function(i){
  57        if ($(this).find('div.form-item .error').size()) {
  58          $('li.vertical-tab-button').eq(i).addClass('error');
  59        }
  60      })
  61  
  62      // Activate the first tab.
  63      $('fieldset.vertical-tabs-pane').hide();
  64      $('fieldset.vertical-tabs-pane:first').show();
  65      $('div.vertical-tabs ul li:first').addClass('first selected');
  66      $('div.vertical-tabs ul li:last').addClass('last');
  67      $('div.vertical-tabs').show();
  68    }
  69  }
  70  
  71  Drupal.behaviors.verticalTabsReload = function() {
  72    $.each(Drupal.settings.verticalTabs, function(k, v) {
  73      if (v.callback && Drupal.verticalTabs[v.callback]) {
  74        $('a.vertical-tabs-list-' + k + ' span.summary').html(Drupal.verticalTabs[v.callback].apply(this, v.args));
  75      }
  76    });
  77  }


Generated: Thu Mar 24 11:18:33 2011 Cross-referenced by PHPXref 0.7