| [ Index ] |
PHP Cross Reference of Drupal 6 (yi-drupal) |
[Summary view] [Print] [Text view]
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
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
| Generated: Mon Jul 9 18:01:44 2012 | Cross-referenced by PHPXref 0.7 |