[ Index ]

PHP Cross Reference of Drupal 6 (yi-drupal)

title

Body

[close]

/sites/all/modules/webform/js/ -> webform-admin.js (source)

   1  
   2  /**
   3   * Webform node form interface enhancments.
   4   */
   5  
   6  Drupal.behaviors.webformAdmin = function(context) {
   7    // Apply special behaviors to fields with default values.
   8    Drupal.webform.defaultValues(context);
   9    // On click or change, make a parent radio button selected.
  10    Drupal.webform.setActive(context);
  11    // Update the template select list upon changing a template.
  12    Drupal.webform.updateTemplate(context);
  13    // Select all link for file extensions.
  14    Drupal.webform.selectCheckboxesLink(context);
  15    // Enhance the normal tableselect.js file to support indentations.
  16    Drupal.webform.tableSelectIndentation(context);
  17  }
  18  
  19  Drupal.webform = Drupal.webform || {};
  20  
  21  Drupal.webform.defaultValues = function(context) {
  22    var $fields = $('.webform-default-value:not(.error)', context);
  23    var $forms = $fields.parents('form:first');
  24    $fields.each(function() {
  25      this.defaultValue = $(this).attr('rel');
  26      if (this.value != this.defaultValue) {
  27        $(this).removeClass('webform-default-value');
  28      }
  29      $(this).focus(function() {
  30        if (this.value == this.defaultValue) {
  31          this.value = '';
  32          $(this).removeClass('webform-default-value');
  33        }
  34      });
  35      $(this).blur(function() {
  36        if (this.value == '') {
  37          $(this).addClass('webform-default-value');
  38          this.value = this.defaultValue;
  39        }
  40      });
  41    });
  42  
  43    // Clear all the form elements before submission.
  44    $forms.submit(function() {
  45      $fields.focus();
  46    });
  47  };
  48  
  49  Drupal.webform.setActive = function(context) {
  50    var setActive = function(e) {
  51      $('.form-radio', $(this).parent().parent()).attr('checked', true);
  52      e.preventDefault();
  53    };
  54    $('.webform-set-active', context).click(setActive).change(setActive);
  55  };
  56  
  57  Drupal.webform.updateTemplate = function(context) {
  58    var defaultTemplate = $('#edit-templates-default').val();
  59    var $templateSelect = $('#webform-template-fieldset select#edit-template-option', context);
  60    var $templateTextarea = $('#webform-template-fieldset textarea:visible', context);
  61  
  62    var updateTemplateSelect = function() {
  63      if ($(this).val() == defaultTemplate) {
  64        $templateSelect.val('default');
  65      }
  66      else {
  67        $templateSelect.val('custom');
  68      }
  69    }
  70  
  71    var updateTemplateText = function() {
  72      if ($(this).val() == 'default' && $templateTextarea.val() != defaultTemplate) {
  73        if (confirm(Drupal.settings.webform.revertConfirm)) {
  74          $templateTextarea.val(defaultTemplate);
  75        }
  76        else {
  77          $(this).val('custom');
  78        }
  79      }
  80    }
  81  
  82    $templateTextarea.keyup(updateTemplateSelect);
  83    $templateSelect.change(updateTemplateText);
  84  }
  85  
  86  Drupal.webform.selectCheckboxesLink = function(context) {
  87    function selectCheckboxes() {
  88      var group = this.className.replace(/.*?webform-select-link-([^ ]*).*/, '$1');
  89      var $checkboxes = $('.webform-select-group-' + group + ' input[type=checkbox]');
  90      var reverseCheck = !$checkboxes[0].checked;
  91      $checkboxes.each(function() {
  92        this.checked = reverseCheck;
  93      });
  94      $checkboxes.trigger('change');
  95      return false;
  96    }
  97    $('a.webform-select-link', context).click(selectCheckboxes);
  98  }
  99  
 100  Drupal.webform.tableSelectIndentation = function(context) {
 101    var $tables = $('th.select-all', context).parents('table');
 102    $tables.find('input.form-checkbox').change(function() {
 103      var $rows = $(this).parents('table:first').find('tr');
 104      var row = $(this).parents('tr:first').get(0);
 105      var rowNumber = $rows.index(row);
 106      var rowTotal = $rows.size();
 107      var indentLevel = $(row).find('div.indentation').size();
 108      for (var n = rowNumber + 1; n < rowTotal; n++) {
 109        if ($rows.eq(n).find('div.indentation').size() <= indentLevel) {
 110          break;
 111        }
 112        $rows.eq(n).find('input.form-checkbox').attr('checked', this.checked);
 113      }
 114    });
 115  }
 116  


Generated: Mon Jul 9 18:01:44 2012 Cross-referenced by PHPXref 0.7