Hi,
I am trying to call calender.cgi script from WFT but in calender.cgi its giving me error.
"ReferenceError: iwwft_instantiator is not defined".
Earlier it was giving me Fatal error. Below is the code
WFT:
my $cCalendar = "<input type='text' size='15' value='$dateField' /> <a href='/iw-bin/calender_wft.cgi?iw_form_name=iwwft_instantiator&iw_callback_var=uDeployAtDate' target ='mywin' onclick='window.open(this.href, 'mywin',
'left=20,top=20,width=500,height=500,toolbar=no,resizable=yes');' >Calendar</a>";
Calender.cgi:
#!D:\INTERW~1\TeamSite/iw-perl/bin/iwperl
#
# Copyright 2002 Interwoven, Inc.
# All Rights Reserved
# modified, enhanced, integrated with TeamSite
# August 2001
#
use TeamSite::CGI_lite;
use CGI qw(:standard);
# begin the cgitask
$|=1;
$cgi = TeamSite::CGI_lite->new();
$cgi->parse_data();
my $form_name = $cgi->{'form'}{'iw_form_name'};
my $element_name = $cgi->{'form'}{'iw_callback_var'};
#my $form_name='iwwft_instantiator';
#my $element_name='uDeployAtDate';
print "Content-type: text/html \n\n";
print <<EOF;
<HTML>
<HEAD>
<TITLE>Calendar</TITLE>
<script language="JavaScript">
function handle_selection()
{
if (callback())
{
opener.top.datacapture.refreshForm();
self.close();
}
else
{
alert('Please make a selection.');
}
}
function callback()
{
var optionsArray = document.callout_form_2.dateField.value;
if (optionsArray != '')
{
if (!set_datacapture_item_value(optionsArray))
{
alert('Fatal callout error. Did you close the datacapture window?');
}
return true;
}
return false;
}
function set_datacapture_item_value( selectedValue )
{
if ((window.opener == null) ||
(window.opener.closed))
{ alert("in set data capture returning false");
return false;
}
var calloutForm = eval('$form_name');
alert(calloutForm);
if (!calloutForm)
{
return false;
}
var calloutElementFound = false;
for ( i = 0 ; i < calloutForm.elements.length ; i++ )
{
if (calloutForm.elements[i].name == '$element_name')
{
calloutForm.elements[i].value = selectedValue;
calloutElementFound = true;
break;
}
}
if (!calloutElementFound)
{
return false;
}
return true;
}
//Form button calendar
//author unknown
function setDate(str)
{
if (str == " ")
{
alert("invalid selection");
return;
}
mnth1 = document.forms[0].month.value;
mnth = mnth1;
mnth++;
if(mnth < 10) {}
year = document.forms[0].year.value;
dateStr = year+"-"+mnth+"-"+str;
if(mnth < 10) {dateStr = year+"-0"+mnth+"-"+str;}
dateStr = trim(dateStr);
document.forms[1].dateField.value = dateStr;
handle_selection(); //this function must be include in the html page (get it from teamsite)
}
/**
* The function removes spaces from the selected date.
*/
function trim(str)
{
res="";
for(var i=0; i< str.length; i++)
{
if (str.charAt(i) != " ") { res +=str.charAt(i);}
}
return res;
}
/**
* The method to get the Month name given the Month number of the year.
*/
function getMonthName(mnth)
{
if (mnth == 0) { name = "January";}
else if(mnth==1) { name = "February";}
else if(mnth==2) { name = "March";}
else if(mnth==3) { name = "April";}
else if(mnth==4) { name = "May";}
else if(mnth==5) { name = "June";}
else if(mnth==6) { name = "July";}
else if(mnth==7) { name = "August";}
else if(mnth==8) { name = "September";}
else if(mnth==9) { name = "October";}
else if(mnth==10) { name = "November";}
else if(mnth==11) { name = "December";}
return name;
}
/**
* Get the number of days in the month based on the year.
*/
function getNoOfDaysInMnth(mnth,yr)
{
rem = yr % 4;
if(rem ==0) { leap = 1;}
else { leap = 0;}
noDays=0;
if ( (mnth == 1) || (mnth == 3) || (mnth == 5) ||
(mnth == 7) || (mnth == 8) || (mnth == 10) ||
(mnth == 12))
{
noDays=31;
}
else if (mnth == 2)
{
noDays=28+leap;
}
else
{
noDays=30;
}
return noDays;
}
/**
* The function to reset the date values in the buttons of the
* slots.
*/
function fillDates(dayOfWeek1,noOfDaysInmnth,date_today)
{
for(var i=1; i<43; i++)
{
str = "s"+i;
document.forms[0].elements[str].value=" ";
}
startSlotIndx = dayOfWeek1;
slotIndx = startSlotIndx;
for(var i=1; i<(noOfDaysInmnth+1); i++)
{
slotName = "s"+slotIndx;
val="";
if (i<10) { val = " "+i+" ";}
else { val = i;}
document.forms[0].elements[slotName].value = val;
if(i == date_today){document.forms[0].elements[slotName].focus()}
slotIndx++;
}
}
/**
* The function that is called at the time of loading the page.
* This function displays Today's date and also displays the
* the calendar of the current month.
*/
function thisMonth()
{
dt = new Date();
mnth = dt.getMonth(); /* 0-11*/
dayOfMnth = dt.getDate(); /* 1-31*/
dayOfWeek = dt.getDay(); /*0-6*/
yr = dt.getFullYear(); /*4-digit year*/
mnthName = getMonthName(mnth)+ " ";
document.forms[0].month.value = mnth;
document.forms[0].year.value = yr;
document.forms[0].currMonth.value = mnth;
document.forms[0].currYear.value = yr;
document.forms[0].monthYear.value = mnthName+yr;
document.forms[1].dateField.value = yr+"-"+(mnth+1)+"-"+dayOfMnth;
if(mnth < 9) {document.forms[1].dateField.value = yr+"-0"+(mnth+1)+"-"+dayOfMnth;}
startStr = (mnth+1)+"/1/"+yr;
dt1 = new Date(startStr);
dayOfWeek1 = dt1.getDay(); /*0-6*/
noOfDaysInMnth = getNoOfDaysInMnth(mnth+1,yr);
date_today= dayOfMnth;
fillDates(dayOfWeek1+1,noOfDaysInMnth,date_today);
}
/**
* The function that will be used to display the calendar of the next month.
*/
function nextMonth()
{
var currMnth = document.forms[0].month.value;
currYr = document.forms[0].year.value;
if (currMnth == "11")
{
nextMnth = 0;
nextYr = currYr;
nextYr++;
}
else
{
nextMnth=currMnth;
nextMnth++;
nextYr = currYr;
}
mnthName = getMonthName(nextMnth);
document.forms[0].month.value=nextMnth;
document.forms[0].year.value=nextYr;
document.forms[0].monthYear.value= mnthName+" "+nextYr;
str = (nextMnth+1)+"/1/"+nextYr;
dt = new Date(str);
dayOfWeek = dt.getDay();
noOfDays = getNoOfDaysInMnth(nextMnth+1,nextYr);
date_today= 0;
fillDates(dayOfWeek+1,noOfDays,date_today);
}
/**
* The method to display the calendar of the previous month.
*/
function prevMonth()
{
var currMnth = document.forms[0].month.value;
currYr = document.forms[0].year.value;
if (currMnth == "0")
{
prevMnth = 11;
prevYr = currYr;
prevYr--;
}
else
{
prevMnth=currMnth;
prevMnth--;
prevYr = currYr;
}
str = (prevMnth+1)+"/1/"+prevYr;
dt = new Date(str);
dayOfWeek = dt.getDay();
mnthName = getMonthName(prevMnth);
document.forms[0].month.value=prevMnth;
document.forms[0].year.value=prevYr;
document.forms[0].monthYear.value= mnthName+" "+prevYr;
noOfDays = getNoOfDaysInMnth(prevMnth+1,prevYr);
date_today= 0;
fillDates(dayOfWeek+1,noOfDays,date_today);
}
</script>
</HEAD>
<body onload="thisMonth()">
<table border="0" bgcolor="#FFFFFF" align=center>
<tr>
<td>
<form name="callout_form">
<input type=hidden name=month value="">
<input type=hidden name=year value="">
<input type=hidden name=currMonth value="">
<input type=hidden name=currYear value="">
<table bgcolor="#FFFFFF" align=center border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td width="15%" align="left"><input type="button" name="prev" onclick="prevMonth()" value="<<" style="background:#FFFFFF"></td>
<td colspan="5" align="center"><input type="text" size="15" name="monthYear" value="" style="background:#FFFFFF; text-align:cente
r; border= none, none, none, none" READONLY></td>
<td width="15%" align="right"><input type="button" name="next" onclick="nextMonth()" value=">>" style="background:#FFFFFF"></td>
</tr>
</table>
</td>
</tr>
<tr>
<td>
<table bgcolor="#D4D4D4" align=center border="1" cellpadding="0" cellspacing="0" width="150">
<tr bgcolor="#ffffff">
<td width="15%" align="center"><font size="0"><strong>SUN</strong></font></td>
<td width="15%" align="center"><font size="0"><strong>MON</strong></font></td>
<td width="15%" align="center"><font size="0"><strong>TUE</strong></font></td>
<td width="15%" align="center"><font size="0"><strong>WED</strong></font></td>
<td width="15%" align="center"><font size="0"><strong>THU</strong></font></td>
<td width="15%" align="center"><font size="0"><strong>FRI</strong></font></td>
<td width="15%" align="center"><font size="0"><strong>SAT</strong></font></td>
</tr>
<tr>
<td align="center"><input type="button" onclick="setDate(this.value);" name="s1" value=" 1 "></td>
<td align="center"><input type="button" onclick="setDate(this.value);" name="s2" value=" 2 "></td>
<td align="center"><input type="button" onclick="setDate(this.value);" name="s3" value=" 3 "></td>
<td align="center"><input type="button" onclick="setDate(this.value);" name="s4" value=" 4 "></td>
<td align="center"><input type="button" onclick="setDate(this.value);" name="s5" value=" 5 "></td>
<td align="center"><input type="button" onclick="setDate(this.value);" name="s6" value=" 6 "></td>
<td align="center"><input type="button" onclick="setDate(this.value);" name="s7" value=" 7 "></td>
</tr>
<tr>
<td align="center"><input type="button" onclick="setDate(this.value);" name="s8" value=" 8 "></td>
<td align="center"><input type="button" onclick="setDate(this.value);" name="s9" value=" 9 "></td>
<td align="center"><input type="button" onclick="setDate(this.value);" name="s10" value="10"></td>
<td align="center"><input type="button" onclick="setDate(this.value);" name="s11" value="11"></td>
<td align="center"><input type="button" onclick="setDate(this.value);" name="s12" value="12"></td>
<td align="center"><input type="button" onclick="setDate(this.value);" name="s13" value="13"></td>
<td align="center"><input type="button" onclick="setDate(this.value);" name="s14" value="14"></td>
</tr>
<tr>
<td align="center"><input type="button" onclick="setDate(this.value);" name="s15" value="15"></td>
<td align="center"><input type="button" onclick="setDate(this.value);" name="s16" value="16"></td>
<td align="center"><input type="button" onclick="setDate(this.value);" name="s17" value="17"></td>
<td align="center"><input type="button" onclick="setDate(this.value);" name="s18" value="18"></td>
<td align="center"><input type="button" onclick="setDate(this.value);" name="s19" value="19"></td>
<td align="center"><input type="button" onclick="setDate(this.value);" name="s20" value="20"></td>
<td align="center"><input type="button" onclick="setDate(this.value);" name="s21" value="21"></td>
</tr>
<tr>
<td align="center"><input type="button" onclick="setDate(this.value);" name="s22" value="22"></td>
<td align="center"><input type="button" onclick="setDate(this.value);" name="s23" value="23"></td>
<td align="center"><input type="button" onclick="setDate(this.value);" name="s24" value="24"></td>
<td align="center"><input type="button" onclick="setDate(this.value);" name="s25" value="25"></td>
<td align="center"><input type="button" onclick="setDate(this.value);" name="s26" value="26"></td>
<td align="center"><input type="button" onclick="setDate(this.value);" name="s27" value="27"></td>
<td align="center"><input type="button" onclick="setDate(this.value);" name="s28" value="28"></td>
</tr>
<tr>
<td align="center"><input type="button" name="s29" onclick="setDate(this.value);" value="29"></td>
<td align="center"><input type="button" name="s30" onclick="setDate(this.value);" value="30"></td>
<td align="center"><input type="button" name="s31" onclick="setDate(this.value);" value=" "></td>
<td align="center"><input type="button" name="s32" onclick="setDate(this.value);" value=" "></td>
<td align="center"><input type="button" name="s33" onclick="setDate(this.value);" value=" "></td>
<td align="center"><input type="button" name="s34" onclick="setDate(this.value);" value=" "></td>
<td align="center"><input type="button" name="s35" onclick="setDate(this.value);" value=" "></td>
</tr>
<tr>
<td align="center"><input type="button" name="s36" onclick="setDate(this.value);" value=" "></td>
<td align="center"><input type="button" name="s37" onclick="setDate(this.value);" value=" "></td>
<td align="center"><input type="button" name="s38" onclick="setDate(this.value);" value=" "></td>
<td align="center"><input type="button" name="s39" onclick="setDate(this.value);" value=" "></td>
<td align="center"><input type="button" name="s40" onclick="setDate(this.value);" value=" "></td>
<td align="center"><input type="button" name="s41" onclick="setDate(this.value);" value=" "></td>
<td align="center"><input type="button" name="s42" onclick="setDate(this.value);" value=" "></td>
</tr>
</table>
</form>
<form name="callout_form_2">
<input type=hidden size="12" name=dateField>
</form>
</td>
</tr>
</table>
</BODY>
</HTML>
EOF