You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
435 lines
15 KiB
435 lines
15 KiB
<!--*********************************************************************************
|
|
** 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.
|
|
*
|
|
********************************************************************************/
|
|
-->
|
|
<!-- BEGIN: main -->
|
|
<link rel="stylesheet" type="text/css" media="all" href="jscalendar/calendar-win2k-cold-1.css">
|
|
<script type="text/javascript" src="jscalendar/calendar.js"></script>
|
|
<script type="text/javascript" src="jscalendar/lang/calendar-en.js"></script>
|
|
<script type="text/javascript" src="jscalendar/calendar-setup.js"></script>
|
|
<script language="JavaScript" type="text/javascript" src="include/calc.js"></script>
|
|
<form enctype="multipart/form-data" name="CustomView" method="POST" action="index.php" onsubmit="return mandatoryCheck();">
|
|
<input type="hidden" name="module" value="CustomView">
|
|
<input type="hidden" name="action" value="Save">
|
|
<input type="hidden" name="cvmodule" value="{CVMODULE}">
|
|
<input type="hidden" name="return_module" value="{RETURN_MODULE}">
|
|
<input type="hidden" name="record" value="{CUSTOMVIEWID}">
|
|
<input type="hidden" name="return_action" value="{RETURN_ACTION}">
|
|
<script language="javascript" type="text/javascript">
|
|
var typeofdata = new Array();
|
|
typeofdata['V'] = ['e','n','s','c','k'];
|
|
typeofdata['N'] = ['e','n','l','g','m','h'];
|
|
typeofdata['T'] = ['e','n','l','g','m','h'];
|
|
typeofdata['I'] = ['e','n','l','g','m','h'];
|
|
typeofdata['C'] = ['e','n'];
|
|
typeofdata['DT'] = ['e','n'];
|
|
typeofdata['D'] = ['e','n'];
|
|
var fLabels = new Array();
|
|
fLabels['e'] = 'equals';
|
|
fLabels['n'] = 'not equal to';
|
|
fLabels['s'] = 'starts with';
|
|
fLabels['c'] = 'contains';
|
|
fLabels['k'] = 'does not contain';
|
|
fLabels['l'] = 'less than';
|
|
fLabels['g'] = 'greater than';
|
|
fLabels['m'] = 'less or equal';
|
|
fLabels['h'] = 'greater or equal';
|
|
var noneLabel;
|
|
|
|
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];
|
|
|
|
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
|
|
{
|
|
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;
|
|
}
|
|
}
|
|
|
|
}
|
|
function mandatoryCheck()
|
|
{
|
|
//return verify_data();
|
|
|
|
var mandatorycheck = false;
|
|
var i,j;
|
|
var manCheck = new Array({MANDATORYCHECK});
|
|
var showvalues = "{SHOWVALUES}";
|
|
//var columnvalue = document.getElementById("column"+1).value;
|
|
if(manCheck)
|
|
{
|
|
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("Missing required fields:" + errorMessage);
|
|
return false;
|
|
}
|
|
|
|
for(i=1;i<=9;i++)
|
|
{
|
|
var columnvalue = document.getElementById("column"+i).value;
|
|
if(columnvalue != null)
|
|
{
|
|
for(j=0;j<manCheck.length;j++)
|
|
{
|
|
if(columnvalue == manCheck[j])
|
|
{
|
|
mandatorycheck = true;
|
|
}
|
|
}
|
|
if(mandatorycheck == true)
|
|
{
|
|
return true;
|
|
}else
|
|
{
|
|
mandatorycheck = false;
|
|
}
|
|
}
|
|
//alert(columnvalue);
|
|
}
|
|
}
|
|
if(mandatorycheck == false)
|
|
{
|
|
alert("Must have one Required field to be selected\n"+showvalues);
|
|
}
|
|
|
|
return false;
|
|
}
|
|
function trim(s) {
|
|
while (s.substring(0,1) == " ") {
|
|
s = s.substring(1, s.length);
|
|
}
|
|
while (s.substring(s.length-1, s.length) == ' ') {
|
|
s = s.substring(0,s.length-1);
|
|
}
|
|
|
|
return s;
|
|
}
|
|
|
|
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("Missing required fields:" + errorMessage);
|
|
return false;
|
|
}
|
|
//return true;
|
|
}
|
|
|
|
function goto_CustomAction(module)
|
|
{
|
|
document.location.href = "index.php?module="+module+"&action=CustomAction&record={CUSTOMVIEWID}";
|
|
}
|
|
|
|
</script>
|
|
<table width="100%" cellpadding="2" cellspacing="0" border="0">
|
|
<tr>
|
|
<td vAlign="middle" align="left"><IMG src="{IMAGE_PATH}{MODULE}.gif" border="0"></td>
|
|
<td class="moduleTitle" vAlign="middle" align="left" noWrap width="100%" height="20">{MODULE}: {MOD.LBL_MODULE_NAME}</td>
|
|
<!--<td nowrap class='bodySmall' align='right'>[ <A href='http://www.vtiger.com/products/crm/document.html' target='_blank'>{APP.LNK_HELP}</A>
|
|
]</td>-->
|
|
</tr>
|
|
<tr>
|
|
<td colspan="3" class="hline"><img height='1' src='include/images/blank.gif'></td>
|
|
</tr>
|
|
</table>
|
|
<br>
|
|
<table width="100%" border="0" cellpadding="0" cellspacing="0">
|
|
<tr>
|
|
<td><div align="center">
|
|
<input type="submit" class="button" name="save" value="{APP.LBL_SAVE_BUTTON_LABEL}" tabindex="2">
|
|
<input name="cancel" class="button" type="button" value="{APP.LBL_CANCEL_BUTTON_LABEL}" onclick='window.history.back()'>
|
|
{CUSTOMACTIONBUTTON}
|
|
</div></td>
|
|
</tr>
|
|
</table>
|
|
<!-- BEGIN: error -->
|
|
<font color="red">{ERROR}</font>
|
|
<!-- END: error -->
|
|
<br>
|
|
|
|
<table width="100%" border=0 cellPadding="0" cellSpacing="0">
|
|
<tr>
|
|
<td><div align='right'><font class="required">{APP.LBL_REQUIRED_SYMBOL}</font> {APP.NTC_REQUIRED}</div></td>
|
|
</tr>
|
|
</table>
|
|
|
|
<table width="100%" border=0 cellPadding="0" cellSpacing="1" class="formOuterBorder">
|
|
<tr>
|
|
<td class="formSecHeader" colspan="3">{MOD.LBL_STEP_1_TITLE}</td>
|
|
</tr>
|
|
<tr>
|
|
<td class='dataLabel'><font class="required">{APP.LBL_REQUIRED_SYMBOL}</font>{MOD.LBL_VIEW_NAME}</td>
|
|
<td>
|
|
<input class='textField' type='text' name='viewName' value="{VIEWNAME}" size="40">
|
|
</td>
|
|
<td></td>
|
|
</tr>
|
|
<tr width="50%">
|
|
<td class='dataLabel'></td>
|
|
<td>
|
|
<input class='textField' {CHECKED} type='checkbox' name='setDefault' value="">{MOD.LBL_SETDEFAULT}
|
|
</td>
|
|
<td width="50%">
|
|
<input class='textField' {MCHECKED} type='checkbox' name='setMetrics' value="">{MOD.LBL_LIST_IN_METRICS}
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<p></p>
|
|
|
|
<table width="100%" border=0 cellPadding="0" cellSpacing="1" class="formOuterBorder">
|
|
<tr>
|
|
<td class="formSecHeader" colspan="3"><font class="required">*</font>{MOD.LBL_STEP_2_TITLE}</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td>1 <select name="column1" id="column1">
|
|
<option value="">None</option>
|
|
{CHOOSECOLUMN1}
|
|
</select><br></td>
|
|
<td>2 <select name="column2" id="column2">
|
|
<option value="">None</option>
|
|
{CHOOSECOLUMN2}
|
|
</select><br></td>
|
|
<td>3 <select name="column3" id="column3">
|
|
<option value="">None</option>
|
|
{CHOOSECOLUMN3}
|
|
</select><br></td>
|
|
</tr>
|
|
<tr>
|
|
<td>4 <select name="column4" id="column4">
|
|
<option value="">None</option>
|
|
{CHOOSECOLUMN4}
|
|
</select><br></td>
|
|
<td>5 <select name="column5" id="column5">
|
|
<option value="">None</option>
|
|
{CHOOSECOLUMN5}
|
|
</select><br></td>
|
|
<td>6 <select name="column6" id="column6">
|
|
<option value="">None</option>
|
|
{CHOOSECOLUMN6}
|
|
</select><br></td>
|
|
</tr>
|
|
<tr>
|
|
<td>7 <select name="column7" id="column7">
|
|
<option value="">None</option>
|
|
{CHOOSECOLUMN7}
|
|
</select><br></td>
|
|
<td>8 <select name="column8" id="column8">
|
|
<option value="">None</option>
|
|
{CHOOSECOLUMN8}
|
|
</select><br></td>
|
|
<td>9 <select name="column9" id="column9">
|
|
<option value="">None</option>
|
|
{CHOOSECOLUMN9}
|
|
</select><br></td>
|
|
</tr>
|
|
</table>
|
|
<p></p>
|
|
{STDFILTER_JAVASCRIPT}
|
|
<table width="100%" border=0 cellPadding="0" cellSpacing="1" class="formOuterBorder">
|
|
<tr>
|
|
<td class="formSecHeader" colspan="2">{MOD.LBL_STEP_3_TITLE}</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
<table border="0" cellspacing="2" cellpadding="2" style="margin:10 0 10 5">
|
|
<tr>
|
|
<td>{MOD.LBL_SF_COLUMNS}:</td>
|
|
<td> </td>
|
|
<td>{MOD.LBL_SF_STARTDATE}:</td>
|
|
<td>{MOD.LBL_SF_ENDDATE}:</td>
|
|
<td> </td>
|
|
</tr>
|
|
<tr>
|
|
<td><select name="stdDateFilterField" class="select">
|
|
{STDFILTERCOLUMNS}
|
|
</select></td>
|
|
|
|
<td><select name="stdDateFilter" class="select" onchange='showDateRange(this.options[this.selectedIndex].value )'>
|
|
{STDFILTERCRITERIA}
|
|
</select></td>
|
|
<td><input name="startdate" id="jscal_field_date_start" type="text" size="10" class="textField" value="{STARTDATE}">
|
|
<img src="{IMAGE_PATH}calendar.gif" id="jscal_trigger_date_start"></td><td nowrap>
|
|
<input name="enddate" id="jscal_field_date_end" type="text" size="10" class="textField" value="{ENDDATE}">
|
|
<img src="{IMAGE_PATH}calendar.gif" id="jscal_trigger_date_end"></td>
|
|
<td>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<script>
|
|
var filter = document.CustomView.stdDateFilter.options[document.CustomView.stdDateFilter.selectedIndex].value
|
|
if( filter != "custom" )
|
|
{
|
|
showDateRange( filter );
|
|
}
|
|
</script>
|
|
<p></p>
|
|
|
|
<table width="100%" border=0 cellPadding="0" cellSpacing="1" class="formOuterBorder">
|
|
<tr>
|
|
<td class="formSecHeader" colspan="2">{MOD.LBL_STEP_4_TITLE}</td>
|
|
</tr>
|
|
<tr>
|
|
<td>
|
|
<table width="100%" border="0" cellspacing="3" cellpadding="6" class="secContent">
|
|
<tr>
|
|
<td> <table width="100%" border=0 cellspacing=0 cellpadding=0>
|
|
<tr>
|
|
<td height="25">{MOD.LBL_AF_HDR1}</td>
|
|
</tr>
|
|
<tr>
|
|
<td> <ul>
|
|
<li>{MOD.LBL_AF_HDR2}</li>
|
|
<li>{MOD.LBL_AF_HDR3}</li>
|
|
<!--<li>Place quotation marks around data that includes commas. For
|
|
example, "200,000","1,000,000" searches for
|
|
200,000 or 1,000,000.</li>
|
|
<li>For fields that can be set on or off, use "0" for
|
|
no and "1" for yes, e.g., "Active equals 1"
|
|
or "Converted equals 0."</li>-->
|
|
</ul></td>
|
|
</tr>
|
|
<tr><td> </td></tr>
|
|
<tr>
|
|
<td><select name="fcol1" id="fcol1" onchange="updatefOptions(this, 'fop1');">
|
|
<option value="">None</option>
|
|
{BLOCK1}
|
|
</select> <select name="fop1" id="fop1">
|
|
<option value="">None</option>
|
|
{FOPTION1}
|
|
</select> <input name="fval1" id="fval1" type="text" size=30 maxlength=80 value="{VALUE1}">
|
|
and</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD><select name="fcol2" id="fcol2" onchange="updatefOptions(this, 'fop2');">
|
|
<option value="">None</option>
|
|
{BLOCK2}
|
|
</select>
|
|
<select name="fop2" id="fop2">
|
|
<option value="">None</option>
|
|
{FOPTION2}
|
|
</select> <input name="fval2" id="fval2" type="text" size=30 maxlength=80 value="{VALUE2}">
|
|
and</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD><select name="fcol3" id="fcol3" onchange="updatefOptions(this, 'fop3');">
|
|
<option value="">None</option>
|
|
{BLOCK3}
|
|
</select>
|
|
<select name="fop3" id="fop3">
|
|
<option value="">None</option>
|
|
{FOPTION3}
|
|
</select> <input name="fval3" id="fval3" type="text" size=30 maxlength=80 value="{VALUE3}">
|
|
and</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD> <select name="fcol4" id="fcol4" onchange="updatefOptions(this, 'fop4');">
|
|
<option value="">None</option>
|
|
{BLOCK4}
|
|
</select>
|
|
<select name="fop4" id="fop4">
|
|
<option value="">None</option>
|
|
{FOPTION4}
|
|
</select> <input name="fval4" id="fval4" type="text" size=30 maxlength=80 value="{VALUE4}">
|
|
and</TD>
|
|
</TR>
|
|
<TR>
|
|
<TD> <select name="fcol5" id="fcol5" onchange="updatefOptions(this, 'fop5');">
|
|
<option value="">None</option>
|
|
{BLOCK5}
|
|
</select>
|
|
<select name="fop5" id="fop5">
|
|
<option value="">None</option>
|
|
{FOPTION5}
|
|
</select> <input name="fval5" id="fval5" type="text" size=30 maxlength=80 value="{VALUE5}"></TD>
|
|
</TR>
|
|
</table></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<p></p>
|
|
<table width="100%" border="0" cellpadding="0" cellspacing="0">
|
|
<tr>
|
|
<td><div align="center">
|
|
<input type="submit" class="button" name="save" value="{APP.LBL_SAVE_BUTTON_LABEL}" tabindex="2">
|
|
<input name="cancel" class="button" type="button" value="{APP.LBL_CANCEL_BUTTON_LABEL}" onclick='window.history.back()'>
|
|
</div></td>
|
|
</tr>
|
|
</table>
|
|
<script type="text/javascript">
|
|
Calendar.setup ({inputField : "jscal_field_date_start", ifFormat : "%Y-%m-%d", showsTime : false, button : "jscal_trigger_date_start", singleClick : true, step : 1});
|
|
Calendar.setup ({inputField : "jscal_field_date_end", ifFormat : "%Y-%m-%d", showsTime : false, button : "jscal_trigger_date_end", singleClick : true, step : 1});
|
|
</script>
|
|
<br>
|
|
</form>
|
|
{JAVASCRIPT}
|
|
<!-- END: main -->
|
|
|