[ Index ]
 

Code source de vtiger CRM 5.0.2

Accédez au Source d'autres logiciels libresSoutenez Angelica Josefina !

title

Body

[fermer]

/include/js/ -> customview.js (source)

   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  }


Généré le : Sun Feb 25 10:22:19 2007 par Balluche grâce à PHPXref 0.7