[ Index ] |
|
Code source de eGroupWare 1.2.106-2 |
1 /**************************************************************************\ 2 * eGroupWare - EditableTemplates - javascript support functions * 3 * http://www.egroupware.org * 4 * Written by Ralf Becker <RalfBecker@outdoor-training.de> * 5 * -------------------------------------------- * 6 * This program is free software; you can redistribute it and/or modify it * 7 * under the terms of the GNU General Public License as published by the * 8 * Free Software Foundation; either version 2 of the License, or (at your * 9 * option) any later version. * 10 \**************************************************************************/ 11 12 /* $Id: etemplate.js 20333 2006-02-28 17:04:27Z ralfbecker $ */ 13 14 function submitit(form,name) 15 { 16 //alert(name+' pressed'); 17 form.submit_button.value = name; 18 form.submit(); 19 return false; 20 } 21 22 function set_element(form,name,value) 23 { 24 //alert('set_element: '+name+'='+value); 25 for (i = 0; i < form.length; i++) 26 { 27 if (form.elements[i].name == name) 28 { 29 //alert('set_element: '+name+'='+value); 30 form.elements[i].value = value; 31 //alert(name+'='+form.elements[i].value); 32 } 33 } 34 } 35 36 function set_element2(form,name,vname) 37 { 38 //alert('set_element2: '+name+'='+vname); 39 for (i = 0; i < form.length; i++) 40 { 41 if (form.elements[i].name == vname) 42 { 43 value = form.elements[i].value; 44 } 45 } 46 //alert('set_element2: '+name+'='+value); 47 for (i = 0; i < form.length; i++) 48 { 49 if (form.elements[i].name == name) 50 { 51 form.elements[i].value = value; 52 } 53 } 54 } 55 56 function activate_tab(tab,all_tabs,name) 57 { 58 var tabs = all_tabs.split('|'); 59 var parts = tab.split('.'); 60 var last_part = parts.length-1; 61 62 for (n = 0; n < tabs.length; n++) 63 { 64 var t = tabs[n]; 65 66 if (t.indexOf('.') < 0 && parts.length > 1) 67 { 68 parts[last_part] = t; 69 t = parts.join('.'); 70 } 71 document.getElementById(t).style.display = t == tab ? 'inline' : 'none'; 72 document.getElementById(t+'-tab').className = 'etemplate_tab'+(t == tab ? '_active th' : ' row_on'); 73 } 74 if (name) { 75 set_element(document.eTemplate,name,tab); 76 } 77 } 78 79 /* proxy to to add options to a selectbox, needed by IE, but works everywhere */ 80 function selectbox_add_option(id,label,value,do_onchange) 81 { 82 selectBox = document.getElementById(id); 83 /*alert('selectbox_add_option('+id+','+label+','+value+') '+selectBox);*/ 84 var search_val = value.split(':'); 85 for (i=0; i < selectBox.length; i++) { 86 var selectvalue = selectBox.options[i].value.split(':'); 87 if (selectvalue[0] == search_val[0]) { 88 selectBox.options[i] = null; 89 selectBox.options[selectBox.length] = new Option(label,value,false,true); 90 break; 91 } 92 } 93 if (i >= selectBox.length) { 94 selectBox.options[selectBox.length] = new Option(label,value,false,true); 95 } 96 if (selectBox.onchange && do_onchange) selectBox.onchange(); 97 } 98 99 /* toggles all checkboxes named name in form form, to be used as custom javascript in onclick of a button/image */ 100 function toggle_all(form,name) 101 { 102 var all_set = true; 103 104 /* this is for use with a sub-grid. To use it pass "true" as third parameter */ 105 if(toggle_all.arguments.length > 2 && toggle_all.arguments[2] == true) 106 { 107 el = form.getElementsByTagName("input"); 108 for (var i = 0; i < el.length; i++) 109 { 110 if(el[i].name.substr(el[i].name.length-12,el[i].name.length) == '[checkbox][]' && el[i].checked) 111 { 112 all_set = false; 113 break; 114 } 115 } 116 for (var i = 0; i < el.length; i++) 117 { 118 if(el[i].name.substr(el[i].name.length-12,el[i].name.length) == '[checkbox][]') 119 { 120 el[i].checked = all_set; 121 } 122 } 123 } 124 else 125 { 126 for (var i = 0; i < form.elements[name].length; i++) 127 { 128 if (!form.elements[name][i].checked) 129 { 130 all_set = false; 131 break; 132 } 133 } 134 for (var i = 0; i < form.elements[name].length; i++) 135 { 136 form.elements[name][i].checked = !all_set; 137 } 138 } 139 } 140 141 /* gets the values of the named widgets (use the etemplate-name, not the form-name) and creates an url from it */ 142 function values2url(form,names) 143 { 144 url = ''; 145 names = names.split(','); 146 for(i=0; i < names.length; i++) 147 { 148 form_name = names[i]; 149 b = form_name.indexOf('['); 150 if (b < 0) { 151 form_name = 'exec['+form_name+']'; 152 } else { 153 form_name = 'exec['+form_name.slice(0,b-1)+']'+form_name.slice(b,99); 154 } 155 //alert('Searching for '+form_name); 156 for (f=0; f < form.elements.length; f++) { 157 element = form.elements[f]; 158 //alert('checking '+element.name); 159 if (element.name.slice(0,form_name.length) == form_name) { 160 //alert('found '+element.name+', value='+element.value); 161 if (element.type == 'checkbox' || element.type == 'radio') { // checkbox or radio 162 if (element.checked) url += '&'+element.name+'='+element.value; 163 } else if (element.options) { // selectbox 164 for(opt=0; opt < element.options.length; opt++) { 165 //alert('found '+element.name+' option['+opt+'] = '+element.options[opt].value+ ' = '.element.options[opt].text+': '+element.options[opt].selected); 166 if (element.options[opt].selected) url += '&'+element.name+(element.name.indexOf('[]') >= 0 || !element.multiple ? '=' : '[]=')+element.options[opt].value; 167 } 168 } else if (element.value != null) { 169 url += '&'+element.name+'='+element.value; 170 } 171 } 172 } 173 } 174 //alert('url='+url); 175 return url+'&etemplate_exec_id='+form['etemplate_exec_id'].value; 176 } 177 178 // sets value (v) of style property (p) for all given elements of type (t) and class (c) 179 // eg. set_style_by_class('td','hide','visibility','visible') 180 function set_style_by_class(t,c,p,v) 181 { 182 //alert('set_style_by_class('+t+','+c+','+p+','+v+')'); 183 var elements; 184 if(t == '*') { 185 // '*' not supported by IE/Win 5.5 and below 186 elements = (document.all) ? document.all : document.getElementsByTagName('*'); 187 } else { 188 elements = document.getElementsByTagName(t); 189 } 190 for(var i = 0; i < elements.length; i++){ 191 var node = elements.item(i); 192 for(var j = 0; j < node.attributes.length; j++) { 193 if(node.attributes.item(j).nodeName == 'class') { 194 if(node.attributes.item(j).nodeValue == c) { 195 eval('node.style.' + p + " = '" +v + "'"); 196 } 197 } 198 } 199 } 200 }
titre
Description
Corps
titre
Description
Corps
titre
Description
Corps
titre
Corps
Généré le : Sun Feb 25 17:20:01 2007 | par Balluche grâce à PHPXref 0.7 |