1/** 2 * script.js for Plugin twcheckliste 3 * 4 * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) 5 * @author web@agentur-triebwerk.de 6 * 7 */ 8 9jQuery.fn.toggleCheckbox = function() { 10 if (this.prop('checked') == true){ 11 this.prop('checked', false); 12 } else { 13 this.prop('checked', true); 14 } 15 // this.prop('checked', !this.prop('checked')); 16}; 17 18jQuery(function() { 19 generateForm(); 20 jQuery(".checkliste ol").addClass("hideit"); 21}); 22 23function generateForm() { 24 25 var x = 0; 26 var y = 0; 27 var h3level = 0; 28 var h4level = 0; 29 var z = 0; 30 var lplevel = 0; 31 var scripte = ''; 32 33 jQuery(".checkliste h2").each(function(indexh2, value) { 34 var tmpElement = jQuery(document.createElement("input")).prop({ 35 id : 'GRUPPE' + indexh2, 36 class : '', 37 name : 'checklist_data[' + indexh2 + '][HL]', 38 value : jQuery(this).html(), 39 type : 'checkbox', 40 checked : true 41 }); 42 43 jQuery(this).prepend(tmpElement); 44 45 jQuery("#GRUPPE" + indexh2).click(function() { 46 if (jQuery(this).prop("checked") == true) { 47 jQuery("." + jQuery(this).prop("id")).prop("checked", "true"); 48 } else { 49 jQuery("." + jQuery(this).prop("id")).removeAttr("checked"); 50 51 } 52 53 }); 54 55 jQuery(this).nextUntil("h2").each(function() { 56 if (jQuery(this).hasClass("level2")) { 57 lplevel = 0; 58 jQuery(this).find("li").each(function() { 59 lplevel++; 60 var tmpElement = jQuery(document.createElement("input")).prop({ 61 id : '', 62 class : 'GRUPPE' + indexh2, 63 name : 'checklist_data[' + indexh2 + '][LP][' + lplevel + ']', 64 value : jQuery(this).find("div").html(), 65 type : 'checkbox', 66 checked : true 67 }); 68 69 jQuery(this).prepend(tmpElement); 70 71 }); 72 } else if (jQuery(this).get(0).tagName == "H3") { 73 h3level++; 74 var tmpElement = jQuery(document.createElement("input")).prop({ 75 id : 'LEVEL2_' + h3level, 76 class : 'GRUPPE' + indexh2, 77 name : 'checklist_data[' + indexh2 + '][H3][' + h3level + '][HL]', 78 value : jQuery(this).html(), 79 type : 'checkbox', 80 checked : true 81 }); 82 83 jQuery(this).prepend(tmpElement); 84 85 } else if (jQuery(this).hasClass("level3")) { 86 lplevel = 0; 87 jQuery(this).find("li").each(function() { 88 lplevel++; 89 var tmpElement = jQuery(document.createElement("input")).prop({ 90 id : '', 91 class : 'GRUPPE' + indexh2 + ' LEVEL2_' + h3level, 92 name : 'checklist_data[' + indexh2 + '][H3][' + h3level + '][LP][' + lplevel + ']', 93 value : jQuery(this).find("div").html(), 94 type : 'checkbox', 95 checked : true 96 }); 97 98 jQuery(this).prepend(tmpElement); 99 100 }); 101 102 } else if (jQuery(this).get(0).tagName == "H4") { 103 h4level++; 104 var tmpElement = jQuery(document.createElement("input")).prop({ 105 id : 'LEVEL3_' + h4level, 106 class : 'GRUPPE' + indexh2 + ' LEVEL2_' + h3level, 107 name : 'checklist_data[' + indexh2 + '][H3][' + h3level + '][H4][' + h4level + '][HL]', 108 value : jQuery(this).html(), 109 type : 'checkbox', 110 checked : true 111 }); 112 jQuery(this).prepend(tmpElement); 113 } else if (jQuery(this).hasClass("level4")) { 114 lplevel = 0; 115 jQuery(this).find("li").each(function() { 116 lplevel++; 117 var tmpElement = jQuery(document.createElement("input")).prop({ 118 id : '', 119 class : 'GRUPPE' + indexh2 + ' LEVEL2_' + h3level + ' LEVEL3_' + h4level, 120 name : 'checklist_data[' + indexh2 + '][H3][' + h3level + '][H4][' + h4level + '][LP][' + lplevel + ']', 121 value : jQuery(this).find("div").html(), 122 type : 'checkbox', 123 checked : true 124 }); 125 126 jQuery(this).prepend(tmpElement); 127 128 }); 129 130 } 131 132 }); 133 134 }); 135 136 for (var i = 0; i <= h3level; i++) { 137 jQuery("#LEVEL2_" + i).click(function() { 138 if (jQuery(this).prop("checked") == true) { 139 jQuery("." + jQuery(this).prop("id")).prop("checked", "true"); 140 } else { 141 jQuery("." + jQuery(this).prop("id")).removeAttr("checked"); 142 } 143 }); 144 } 145 146 for (var i = 0; i <= h4level; i++) { 147 jQuery("#LEVEL3_" + i).click(function() { 148 if (jQuery(this).prop("checked") == true) { 149 jQuery("." + jQuery(this).prop("id")).prop("checked", "true"); 150 } else { 151 jQuery("." + jQuery(this).prop("id")).removeAttr("checked"); 152 } 153 154 }); 155 } 156 157 158 jQuery("span.unchecked").each(function(indexh2, value) { 159 jQuery(this).parent().find("input").click(); 160 }); 161 162 163} 164/* 165function generateForm2() { 166 167 var x = 0; 168 var y = 0; 169 170 jQuery.each(jQuery(".checkliste h1"), function(index, value) { 171 172 var tmpElement = jQuery(document.createElement("input")).prop({ 173 id : 'input-' + x, 174 class : 'single-input', 175 name : 'checklist_data[]', 176 value : 'h1_' + jQuery.trim(jQuery(this).html()), 177 type : 'hidden' 178 }); 179 180 jQuery(this).prepend(tmpElement); 181 }); 182 183 jQuery.each(jQuery(".checkliste h2"), function(index, value) { 184 185 x++; 186 var item = jQuery(this).prop("class"); 187 var groupId = item.replace(/\D/g, ''); 188 189 var tmpElement = jQuery(document.createElement("input")).prop({ 190 id : 'group-' + groupId, 191 class : 'group-input', 192 name : 'checklist_data[]', 193 value : 'h2_' + jQuery(this).find("a").html(), 194 type : 'checkbox', 195 checked : false 196 }); 197 198 jQuery(this).prepend(tmpElement); 199 200 jQuery('#group-' + groupId).click(function() { 201 if (!jQuery(this).prop('checked')) { 202 jQuery(this).parent().next().find(':checkbox').prop('checked', false); 203 } else { 204 jQuery(this).parent().next().find(':checkbox').prop('checked', true); 205 } 206 }); 207 208 // BEARBEITUNG VON P ELEMENTE 209 jQuery.each(jQuery(this).next().find("p"), function(index, value) { 210 211 y++; 212 var tmpElement = jQuery(document.createElement("input")).prop({ 213 id : 'input-' + y + groupId, 214 class : 'single-input single-input-p' + y + groupId, 215 name : 'checklist_data[]', 216 value : 'p_' + jQuery.trim(getEingabefeld(jQuery(this).html())), 217 type : 'checkbox', 218 checked : false 219 }); 220 221 jQuery(this).html(getEingabefeld(jQuery(this).html())); 222 jQuery(this).prepend(tmpElement); 223 224 jQuery('.single-input-p' + y + groupId).change(function() { 225 if (!jQuery(this).prop('checked')) { 226 jQuery(this).parent().next().find(':checkbox').prop('checked', false); 227 jQuery(this).parent().next().find(':checkbox').removeAttr('checked'); 228 } else { 229 jQuery(this).parent().next().find(':checkbox').prop('checked', true); 230 } 231 }); 232 233 // BEARBEITUNG VON LISTENELEMENTE 234 jQuery.each(jQuery(this).next().find("li"), function(index, value) { 235 236 var tmpElement = jQuery(document.createElement("input")).prop({ 237 id : 'input-' + y + groupId, 238 class : 'single-input single-input' + y, 239 name : 'checklist_data[]', 240 value : 'li_' + jQuery.trim(jQuery(this).find("div").html()), 241 type : 'checkbox', 242 checked : false 243 }); 244 jQuery(this).html(getEingabefeld(jQuery(this).html())); 245 jQuery(this).prepend(tmpElement); 246 }); 247 }); 248 249 }); 250} 251*/ 252function getEingabefeld(tmpHtml) { 253 return tmpHtml.replace('EINGABEFELD', '...................................'); 254} 255