[ Index ] |
|
Code source de vtiger CRM 5.0.2 |
1 /********************************************************************************* 2 ** The contents of this file are subject to the vtiger CRM Public License Version 1.0 3 * ("License"); You may not use this file except in compliance with the License 4 * The Original Code is: vtiger CRM Open Source 5 * The Initial Developer of the Original Code is vtiger. 6 * Portions created by vtiger are Copyright (C) vtiger. 7 * All Rights Reserved. 8 * 9 ********************************************************************************/ 10 11 function splitValues() { 12 var picklistObj=getObj("fldPickList") 13 var pickListContent=picklistObj.value 14 var pickListAry=new Array() 15 var i=0; 16 17 //Splitting up of Values 18 if (pickListContent.indexOf("\n")!=-1) { 19 while(pickListContent.length>0) { 20 if(pickListContent.indexOf("\n")!=-1) { 21 if (pickListContent.replace(/^\s+/g, '').replace(/\s+$/g, '').length>0) { 22 pickListAry[i]=pickListContent.substr(0,pickListContent.indexOf("\n")).replace(/^\s+/g, '').replace(/\s+$/g, '') 23 pickListContent=pickListContent.substr(pickListContent.indexOf("\n")+1,pickListContent.length) 24 i++ 25 } else break; 26 } else { 27 pickListAry[i]=pickListContent.substr(0,pickListContent.length) 28 break; 29 } 30 } 31 } else if (pickListContent.replace(/^\s+/g, '').replace(/\s+$/g, '').length>0) { 32 pickListAry[0]=pickListContent.replace(/^\s+/g, '').replace(/\s+$/g, '') 33 } 34 35 return pickListAry; 36 } 37 38 39 function validate() { 40 var nummaxlength = 255; 41 var fieldtype = document.getElementById('selectedfieldtype').value; 42 var mode = document.getElementById('cfedit_mode').value; 43 if(fieldtype == "" && mode != 'edit') 44 { 45 alert("Field Type is not selected"); 46 return false; 47 } 48 lengthLayer=getObj("lengthdetails") 49 decimalLayer=getObj("decimaldetails") 50 pickListLayer=getObj("picklist") 51 var str = getObj("fldLabel").value; 52 if (!emptyCheck("fldLabel","Label")) 53 return false 54 55 var re1=/^[a-z\d\_ ]+$/i 56 if (!re1.test(str)) 57 { 58 alert("Special characters are not allowed in Label field") 59 return false; 60 } 61 62 if (lengthLayer.style.visibility=="visible") { 63 if (!emptyCheck("fldLength","Length")) 64 return false 65 66 if (!intValidate("fldLength","Length")) 67 return false 68 69 if (!numConstComp("fldLength","Length","GT",0)) 70 return false 71 72 } 73 74 if (decimalLayer.style.visibility=="visible") { 75 if (getObj("fldDecimal").value.replace(/^\s+/g, '').replace(/\s+$/g, '').length>0) 76 if (!intValidate("fldDecimal","Decimal")) 77 return false 78 if (!numConstComp("fldDecimal","Decimal","GE",0)) 79 return false 80 81 if (!numConstComp("fldDecimal","Decimal","LE",30)) 82 return false 83 } 84 var decimallength = document.addtodb.fldDecimal.value; 85 if(fieldtype == 'Percent' || fieldtype == 'Currency' || fieldtype == 'Number') 86 { 87 if(decimallength == '') 88 decimallength = 0; 89 nummaxlength = 65 - (eval(decimallength) + 1); 90 } 91 if (!numConstComp("fldLength","Length","LE",nummaxlength)) 92 return false 93 var picklistObj=getObj("fldPickList") 94 if (pickListLayer.style.visibility=="visible") { 95 if (emptyCheck("fldPickList","Picklist values")) { 96 var pickListAry=new Array() 97 pickListAry=splitValues() 98 99 //Empty Check validation 100 for (i=0;i<pickListAry.length;i++) { 101 if (pickListAry[i]=="") { 102 alert("Picklist value cannot be empty") 103 picklistObj.focus() 104 return false 105 } 106 } 107 108 //Duplicate Values' Validation 109 for (i=0;i<pickListAry.length;i++) { 110 for (j=i+1;j<pickListAry.length;j++) { 111 if (pickListAry[i]==pickListAry[j]) { 112 alert("Duplicate Values found") 113 picklistObj.focus() 114 return false 115 } 116 } 117 } 118 119 return true 120 } else return false 121 } 122 } 123 var fieldValueArr=new Array('Text','Number','Percent','Currency','Date','Email','Phone','Picklist','URL','Checkbox','TextArea','MultiSelectCombo','Skype'); 124 var fieldTypeArr=new Array('text','number','percent','currency','date','email','phone','picklist','url','checkbox','textarea','multiselectcombo','skype'); 125 var currFieldIdx=0,totFieldType; 126 var focusFieldType; 127 128 function init() { 129 lengthLayer=getObj("lengthdetails") 130 decimalLayer=getObj("decimaldetails") 131 pickListLayer=getObj("picklist") 132 totFieldType=fieldTypeArr.length-1 133 } 134 135 136 function setVisible() { 137 if (focusFieldType==true) { 138 var selFieldType=fieldLayer.getObj("field"+currFieldIdx) 139 var height=findPosY(selFieldType)+selFieldType.offsetHeight 140 141 if (currFieldIdx==0) { 142 fieldLayer.document.body.scrollTop=0 143 } else if (height>220) { 144 fieldLayer.document.body.scrollTop+=height-220 145 } else { 146 fieldLayer.document.body.scrollTop-=220-height 147 } 148 149 if (window.navigator.appName.toUpperCase()=="OPERA") { 150 var newDiv=fieldLayer.document.createElement("DIV") 151 newDiv.style.zIndex="-1" 152 newDiv.style.position="absolute" 153 newDiv.style.top=findPosY(selFieldType)+"px" 154 newDiv.style.left="25px" 155 156 var newObj=fieldLayer.document.createElement("INPUT") 157 newObj.type="text" 158 159 fieldLayer.document.body.appendChild(newDiv) 160 newDiv.appendChild(newObj) 161 newObj.focus() 162 163 fieldLayer.document.body.removeChild(newDiv) 164 } 165 } 166 } 167 168 function selFieldType(id,scrollLayer,bool) { 169 currFieldIdx=id 170 var type=fieldTypeArr[id] 171 var lengthLayer=getObj("lengthdetails"); 172 var decimalLayer=getObj("decimaldetails"); 173 var pickListLayer=getObj("picklist"); 174 if (type=='text') { 175 lengthLayer.style.visibility="visible" 176 decimalLayer.style.visibility="hidden" 177 pickListLayer.style.visibility="hidden" 178 } else if (type=='date' || type=='email' || type=='phone' || type=='url' || type=='checkbox' || type=='textarea' || type=='skype') { 179 getObj("lengthdetails").style.visibility="hidden" 180 decimalLayer.style.visibility="hidden" 181 pickListLayer.style.visibility="hidden" 182 } else if (type=='number' || type=='percent' || type=='currency') { 183 lengthLayer.style.visibility="visible" 184 decimalLayer.style.visibility="visible" 185 pickListLayer.style.visibility="hidden" 186 } else if (type=='picklist' || type=='multiselectcombo') { 187 lengthLayer.style.visibility="hidden" 188 decimalLayer.style.visibility="hidden" 189 pickListLayer.style.visibility="visible" 190 } 191 192 193 parent.getObj("fieldType").value = fieldValueArr[id]; 194 } 195 196 function srchFieldType(ev) { 197 if (browser_ie) { 198 var keyCode=window.fieldLayer.event.keyCode 199 var currElement=window.fieldLayer.event.srcElement 200 if (currElement.id.indexOf("field")>=0) var doSearch=true 201 else var doSearch=false 202 window.fieldLayer.event.cancelBubble=true 203 } else if (browser_nn4 || browser_nn6) { 204 var keyCode=ev.which 205 var currElement=ev.target 206 if (currElement.type) doSearch=false 207 else doSearch=true 208 } 209 210 if (doSearch==true) { 211 switch (keyCode) { 212 case 9 : //Reset Field Type 213 resetFieldTypeHilite();break; 214 case 33 : //Page Up 215 case 36 : //Home 216 selFieldType(0);break; 217 case 34 : //Page Down 218 case 35 : //End 219 selFieldType(totFieldType);break; 220 case 38 : //Up 221 if (currFieldIdx!=0) 222 selFieldType(currFieldIdx-1); 223 else 224 selFieldType(totFieldType,"yes"); 225 break; 226 case 40 : //Down 227 if (currFieldIdx!=totFieldType) 228 selFieldType(currFieldIdx+1); 229 else 230 selFieldType(0,"yes"); 231 default : //Character Search 232 if (keyCode>=65 && keyCode<=90) { 233 var srchChar=String.fromCharCode(keyCode) 234 if (currFieldIdx==totFieldType) var startIdx=0 235 else var startIdx=currFieldIdx+1 236 237 var loop=1 238 for (i=startIdx;i<=totFieldType;) { 239 currFieldStr=fieldLayer.getObj("field"+i).innerHTML 240 currFieldStr=currFieldStr.replace(/^\s+/g, '').replace(/\s+$/g, '').substr(0,1) 241 if (currFieldStr==srchChar) { 242 selFieldType(i,"yes") 243 i++ 244 } else if (i==totFieldType && loop<=2) { 245 i=0 246 loop++ 247 } else i++ 248 } 249 } 250 } 251 } 252 } 253 function resetFieldTypeHilite() { 254 fieldLayer.getObj("field"+currFieldIdx).className="fieldType sel" 255 } 256 function validateCustomFieldAccounts() 257 { 258 var obj=document.getElementsByTagName("SELECT"); 259 var i,j=0,k=0,l=0; 260 var n=obj.length; 261 account = new Array; 262 contact = new Array; 263 potential = new Array; 264 for( i = 0; i < n; i++) 265 { 266 if(obj[i].name.indexOf("_account")>0) 267 { 268 account[j]=obj[i].value; 269 j++; 270 } 271 if(obj[i].name.indexOf("_contact")>0) 272 { 273 contact[k]=obj[i].value; 274 k++; 275 } 276 if(obj[i].name.indexOf("_potential")>0) 277 { 278 potential[l]=obj[i].value; 279 l++; 280 } 281 } 282 for( i = 0; i < account.length; i++) 283 { 284 for(j=i+1; j<account.length; j++) 285 { 286 if( account[i] == account[j] && account[i]!="None" && account[j] !="None") 287 { 288 alert("Duplicate mapping for accounts!!"); 289 return false; 290 } 291 } 292 } 293 for( i = 0; i < contact.length; i++) 294 { 295 for(k=i+1; k< contact.length; k++) 296 { 297 if( contact[i] == contact[k] && contact[i]!="None" && contact[k]!="None") 298 { 299 alert("Duplicate mapping for Contacts!!"); 300 return false; 301 } 302 } 303 } 304 for( i = 0; i < potential.length; i++) 305 { 306 for(l=i+1; l<potential.length; l++) 307 { 308 if( potential[i] == potential[l] && potential[i]!="None" && potential[l]!="None") 309 { 310 alert("Duplicate mapping for Potential!!"); 311 return false; 312 } 313 } 314 315 } 316 } 317 318 319 function gotourl(url) 320 { 321 document.location.href=url; 322 } 323 324 function validateTypeforCFMapping(leadtype,leadtypeofdata,field_name,cf_form) 325 { 326 var combo_val = cf_form.options[cf_form.selectedIndex].value; 327 if(combo_val != 'None') 328 { 329 var type = document.getElementById(combo_val+"_type").value; 330 var typeofdata = document.getElementById(combo_val+"_typeofdata").value; 331 if(leadtype == type) 332 { 333 if(leadtypeofdata == typeofdata) 334 { 335 return true; 336 } 337 else 338 { 339 var lead_tod = leadtypeofdata.split("~"); 340 var tod = typeofdata.split("~"); 341 switch (lead_tod[0]) { 342 case "V" : 343 if(lead_tod[3] <= tod[3]) 344 return true; 345 else 346 { 347 alert(alertmessage[3]); 348 document.getElementById(field_name).value = 'None'; 349 return false; 350 } 351 break; 352 case "N" : 353 if(lead_tod[2].indexOf(",")>0) 354 { 355 var lead_dec = lead_tod[2].split(","); 356 var dec = tod[2].split(","); 357 358 } 359 else 360 { 361 var lead_dec = lead_tod[2].split("~"); 362 var dec = tod[2].split("~"); 363 } 364 if(lead_dec[0] <= dec[0]) 365 { 366 if(lead_dec[1] <= dec[1]) 367 return true; 368 else 369 { 370 alert(alertmessage[4]); 371 document.getElementById(field_name).value = 'None'; 372 return false; 373 } 374 } 375 else 376 { 377 alert(alertmessage[3]); 378 document.getElementById(field_name).value = 'None'; 379 return false; 380 } 381 break; 382 } 383 } 384 } 385 else 386 { 387 alert(alertmessage[0]+" "+leadtype+" "+alertmessage[1]+" "+type+" "+alertmessage[2]); 388 document.getElementById(field_name).value = 'None'; 389 return false; 390 } 391 } 392 }
titre
Description
Corps
titre
Description
Corps
titre
Description
Corps
titre
Corps
Généré le : Sun Feb 25 10:22:19 2007 | par Balluche grâce à PHPXref 0.7 |