annotate sites/all/modules/webform/js/webform-admin.js @ 9:830c812b520f

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