/*********************************************************************************
** The contents of this file are subject to the vtiger CRM Public License Version 1.0
* ("License"); You may not use this file except in compliance with the License
* The Original Code is: vtiger CRM Open Source
* The Initial Developer of the Original Code is vtiger.
* Portions created by vtiger are Copyright (C) vtiger.
* All Rights Reserved.
*
********************************************************************************/
function trimfValues(value)
{
var string_array;
string_array = value.split(":");
return string_array[4];
}
function updatefOptions(sel, opSelName) {
var selObj = document.getElementById(opSelName);
var fieldtype = null ;
var currOption = selObj.options[selObj.selectedIndex];
var currField = sel.options[sel.selectedIndex];
var fld = currField.value.split(":");
var tod = fld[4];
if(fld[4] == 'D' || fld[4] == 'DT')
{
$("and"+sel.id).innerHTML = "";
if(sel.id != "fcol5")
$("and"+sel.id).innerHTML = "("+$("user_dateformat").value+") "+alert_arr.LBL_AND;
else
$("and"+sel.id).innerHTML = "("+$("user_dateformat").value+") ";
}
else if(fld[4] == 'T' && fld[1] != 'time_start' && fld[1] != 'time_end')
{
$("and"+sel.id).innerHTML = "";
if(sel.id != "fcol5")
$("and"+sel.id).innerHTML = "("+$("user_dateformat").value+" hh:mm:ss) "+alert_arr.LBL_AND;
else
$("and"+sel.id).innerHTML = "("+$("user_dateformat").value+" hh:mm:ss) ";
}
else if(fld[4] == 'I' && fld[1] == 'time_start' || fld[1] == 'time_end')
{
$("and"+sel.id).innerHTML = "";
if(sel.id != "fcol5")
$("and"+sel.id).innerHTML = "hh:mm "+alert_arr.LBL_AND;
else
$("and"+sel.id).innerHTML = "hh:mm";
}
else if(fld[4] == 'T' && fld[1] == 'time_start' || fld[1] == 'time_end')
{
$("and"+sel.id).innerHTML = "";
if(sel.id != "fcol5")
$("and"+sel.id).innerHTML = "hh:mm "+alert_arr.LBL_AND;
else
$("and"+sel.id).innerHTML = "hh:mm";
}
else if(fld[4] == 'C')
{
$("and"+sel.id).innerHTML = "";
if(sel.id != "fcol5")
$("and"+sel.id).innerHTML = "( Yes / No ) "+alert_arr.LBL_AND;
else
$("and"+sel.id).innerHTML = "( Yes / No ) ";
}
else {
$("and"+sel.id).innerHTML = "";
if(sel.id != "fcol5")
$("and"+sel.id).innerHTML = " "+alert_arr.LBL_AND;
else
$("and"+sel.id).innerHTML = " ";
}
if(currField.value != null && currField.value.length != 0)
{
fieldtype = trimfValues(currField.value);
ops = typeofdata[fieldtype];
var off = 0;
if(ops != null)
{
var nMaxVal = selObj.length;
for(nLoop = 0; nLoop < nMaxVal; nLoop++)
{
selObj.remove(0);
}
selObj.options[0] = new Option ('None', '');
if (currField.value == '') {
selObj.options[0].selected = true;
}
off = 1;
for (var i = 0; i < ops.length; i++)
{
var label = fLabels[ops[i]];
if (label == null) continue;
var option = new Option (fLabels[ops[i]], ops[i]);
selObj.options[i + off] = option;
if (currOption != null && currOption.value == option.value)
{
option.selected = true;
}
}
}
}else
{
if (currField.value == '') {
selObj.options[0].selected = true;
}
}
}
function verify_data() {
var isError = false;
var errorMessage = "";
if (trim(document.CustomView.viewName.value) == "") {
isError = true;
errorMessage += "\nView Name";
}
// Here we decide whether to submit the form.
if (isError == true) {
alert(alert_arr.MISSING_REQUIRED_FIELDS + errorMessage);
return false;
}
//return true;
}
function CancelForm()
{
var cvmodule = document.templatecreate.cvmodule.value;
var viewid = document.templatecreate.cvid.value;
document.location.href = "index.php?module="+cvmodule+"&action=index&viewname="+viewid;
}
function check4null(form)
{
var isError = false;
var errorMessage = "";
// Here we decide whether to submit the form.
if (trim(form.subject.value) =='') {
isError = true;
errorMessage += "\n subject";
form.subject.focus();
}
// Here we decide whether to submit the form.
if (isError == true) {
alert(alert_arr.MISSING_REQUIRED_FIELDS + errorMessage);
return false;
}
return true;
}
// Added for Custom View Advance Filter validation
function checkval()
{
var value,option,arr,dttime,sep;
for(var i=1;i<=5;i++)
{
value=trim(getObj("fval"+i).value);
option=getObj("fcol"+i).value;
fopvalue=trim(getObj("fop"+i).value);
if(option !="" && value !="")
{
if(getObj("fop"+i).selectedIndex == 0)
{
alert(alert_arr.LBL_SELECT_CRITERIA);
return false;
}
arr=option.split(":");
if(arr[4] == "N" || arr[4] == "I" || arr[4] == "NN")
{
sep=value.split(",");
for(var j=0;j 1)
{
if(!cv_patternValidate(dttime[1],"Time","TIMESECONDS"))
{
getObj("fval"+i).select();
return false;
}
}
}
}
if(arr[4] == "C")
{
if(value == "1")
{
getObj("fval"+i).value= "yes";
continue;
}
else if(value == "0")
{
getObj("fval"+i).value= "no";
continue;
}
if(value.toLowerCase() != "yes") if(value.toLowerCase() != "no")
{
alert(alert_arr.LBL_PROVIDE_YES_NO);
getObj("fval"+i).select();
return false;
}
}
}
else if (!(option =="" && fopvalue == "" && value == ""))
{
if(option =="")
{
alert(alert_arr.LBL_SELECT_COLUMN);
return false;
}
if(fopvalue == "")
{
alert(alert_arr.LBL_SELECT_CRITERIA);
return false;
}
}
}
return true;
}
//Added for Custom view validation
//Copied from general.js and altered some lines. becos we cant send vales to function present in general.js. it accept only field names.
function cv_dateValidate(fldval,fldLabel,type) {
if(cv_patternValidate(fldval,fldLabel,"DATE")==false)
return false;
dateval=fldval.replace(/^\s+/g, '').replace(/\s+$/g, '')
var dateelements=splitDateVal(dateval)
dd=dateelements[0]
mm=dateelements[1]
yyyy=dateelements[2]
if (dd<1 || dd>31 || mm<1 || mm>12 || yyyy<1 || yyyy<1000) {
alert(alert_arr.ENTER_VALID+fldLabel)
return false
}
if ((mm==2) && (dd>29)) {//checking of no. of days in february month
alert(alert_arr.ENTER_VALID+fldLabel)
return false
}
if ((mm==2) && (dd>28) && ((yyyy%4)!=0)) {//leap year checking
alert(alert_arr.ENTER_VALID+fldLabel)
return false
}
switch (parseInt(mm)) {
case 2 :
case 4 :
case 6 :
case 9 :
case 11 : if (dd>30) {
alert(alert_arr.ENTER_VALID+fldLabel)
return false
}
}
var currdate=new Date()
var chkdate=new Date()
chkdate.setYear(yyyy)
chkdate.setMonth(mm-1)
chkdate.setDate(dd)
if (type!="OTH") {
if (!compareDates(chkdate,fldLabel,currdate,"current date",type)) {
return false
} else return true;
} else return true;
}
//Added for Custom view validation
//Copied from general.js and altered some lines. becos we cant send vales to function present in general.js. it accept only field names.
function cv_patternValidate(fldval,fldLabel,type) {
if (type.toUpperCase()=="DATE") {//DATE validation
switch (userDateFormat) {
case "yyyy-mm-dd" :
var re = /^\d{4}(-)\d{1,2}\1\d{1,2}$/
break;
case "mm-dd-yyyy" :
case "dd-mm-yyyy" :
var re = /^\d{1,2}(-)\d{1,2}\1\d{4}$/
}
}
if (type.toUpperCase()=="TIMESECONDS")
{
//TIME validation.optional hour, min and seconds
//var re = new RegExp("^([0-1][0-9]|[2][0-3]):([0-5][0-9]):([0-5][0-9])$");
var re = new RegExp("^(([0-1]?[0-9])|([2][0-3]))(:([0-5]?[0-9]))?(:([0-5]?[0-9]))?$");
}
else if (type.toUpperCase()=="TIME")
{
//TIME validation. optional hours and minutes only. dont accept second. added for calendar start and end time field.
var re = new RegExp("^(([0-1]?[0-9])|([2][0-3]))(:([0-5]?[0-9]))$");
}
if (!re.test(fldval)) {
alert(alert_arr.ENTER_VALID + fldLabel)
return false
}
else return true
}
//added to hide date selection option, if a user doesn't have permission for not permitter standard filter column
//added to fix the ticket #5117
function standardFilterDisplay()
{
if(getObj("stdDateFilterField"))
{
if(document.CustomView.stdDateFilterField.selectedIndex > -1 && document.CustomView.stdDateFilterField.options[document.CustomView.stdDateFilterField.selectedIndex].value == "not_accessible")
{
getObj('stdDateFilter').disabled = true;
getObj('startdate').disabled = true; getObj('enddate').disabled = true;
getObj('jscal_trigger_date_start').style.visibility="hidden";
getObj('jscal_trigger_date_end').style.visibility="hidden";
}
else
{
getObj('stdDateFilter').disabled = false;
getObj('startdate').disabled = false;
getObj('enddate').disabled = false;
getObj('jscal_trigger_date_start').style.visibility="visible";
getObj('jscal_trigger_date_end').style.visibility="visible";
}
}
}