<html>
<head>
<link rel="stylesheet" href="/jsp/applications/include/stylesheets/tab.blue292.css" type="text/css">
<link rel="stylesheet" href="/jsp/applications/include/stylesheets/app.css" type="text/css">
<script language="javascript" src="/jsp/applications/include/scripts/printPreview.js"></script>
<script language="javascript" src="/jsp/applications/include/scripts/downloadFile.js"></script>
<script language="javascript" src="/jsp/applications/include/scripts/calendar.js"></script>
<script language="javascript" src="/jsp/applications/xmlWizard/scripts/formCheck.js"></script>
<script language="javascript" src="/jsp/applications/include/scripts/selectbox.js"></script>
<script language="javascript" src="/jsp/applications/include/scripts/browser_detect.js"></script>
<script language="javascript" src="/jsp/applications/include/scripts/dhtml_base.js"></script>
<script language="javascript" src="/jsp/applications/wizard/scripts/wizard.js"></script>
<script language="javascript" src="/jsp/applications/include/scripts/tabpane.js"></script>
<script language="javascript">
<% if (request.getParameter("postback")!=null) { %>
<% if (refreshOnClose) {%>
window.opener.document.location.reload();
<% } %>
window.close();
<% } %>
var cal = new CalendarPopup();
var customFieldData = new Array();
function CCustomField(id,type, name, description, regExp, required)
{
this.id = id;
this.type = type;
this.name = name;
this.description = description;
this.regExp = regExp;
this.required = required;
this.selections = new Array();
}
function CCustomFieldSelection (id, name)
{
this.id = id;
this.name = name;
}
// Refresh the opener's opener if attributes of the task are changed
function refreshOpener()
{
top.window.opener.document.location.reload();
}
var winForm = null;
function popViewForm(_formId, _workgroupId)
{
// Refresh the opener because they are filling out a form
window.onunload=refreshOpener;
winForm = printPreview("/jsp/applications/managementsystem/forms/editor/PublishedForm.jsp","formId=" + _formId + "&id=" + _workgroupId + "&objectTypeId=7" + "&taskId=<%=id%>");
}
function displayTaskUsers(_id) {
popWindow("/jsp/applications/managementsystem/calendar/taskUsers.jsp?id=" + _id, 'task_users', 500, 500, false);
}
function popViewFormHistory(formId, workgroupId, rowId)
{
winForm = printPreview("/jsp/applications/managementsystem/forms/editor/PublishedForm.jsp","formId=" + formId + "&id="+ workgroupId + "&objectTypeId=7" + "&rowId="+ rowId + "&taskId=<%=id%>");
}
function popFileWizard()
{
popWizard("/jsp/applications/managementsystem/wizards/inlineFile", <%=id%>, "fileObjectId=<%=id%>&fileTypeId=<%=ITask.OBJECT_TYPE_TASK%>");
}
function deleteFile(_fileId)
{
if (confirm("Are you sure you want to remove this file from this task?"))
{
document.location.href="taskEditor.jsp?workgroupId=<%=workgroup.getId()%>&id=<%=id%>&action=deleteFile&actionId=" + _fileId;
}
}
function downloadFile(_fileId)
{
popDownloadFile(<%=ITask.OBJECT_TYPE_TASK%>, <%=id%>, _fileId);
}
function popWindow(_url, _name, _width, _height, _scrolling)
{
var screenW = screen.availWidth;
var screenH = screen.availHeight;
var features =
'width=' + _width +
',height=' + _height +
',top=' + ((screenH-_height)*.5) +
',left=' + ((screenW-_width)*.5) +
',location=' + 'no' +
',menubar=' + 'no' +
',scrollbars=' + (_scrolling==true?'yes':'no') +
',status=' + 'no' +
',toolbar=' + 'no' +
',resizable=' + 'yes';
window.open(_url, _name, features);
}
// Validate for the form fields and submit the form if there aren't any problems
function submitForm()
{
if (isWhitespace(document.frm.taskname.value)) {
alert("Please specify a name for this task.");
return false;
}
if (!isDateReg(document.frm.end_date.value) || isWhitespace(document.frm.task_end_time_hr.value)||isWhitespace(document.frm.task_end_time_min.value)) {
alert("Please specify a valid date and time for the due date.");
return false;
}
// only check start date if start time was specified
if (!(isWhitespace(document.frm.task_start_time_hr.value)||isWhitespace(document.frm.task_start_time_min.value))) {
if (!isDateReg(document.frm.start_date.value)) {
alert("Please specify a valid date for the start date.");
return false;
}
// If both start and end date were specified, ensure that start comes before end
var startTime = new Date(document.frm.start_date.value + ' ' + document.frm.task_start_time_hr.value + ':' + document.frm.task_start_time_min.value);
var endTime = new Date(document.frm.end_date.value + ' ' + document.frm.task_end_time_hr.value + ':' + document.frm.task_end_time_min.value);
if (startTime > endTime) {
alert("The Start Date/Time should be before the End Date/Time");
return false;
}
}
// check for any required custom fields
for (var i=0; i<customFieldData.length; i++)
{
var fieldData = eval('document.frm.customFieldData_' + customFieldData
.id + '.value');
if(customFieldData.required == "true")
{
if(customFieldData.type != 4 /*checkbox*/ && isWhitespace(fieldData)) {
alert(customFieldData.name + " is a required Custom Field");
return false;
}
if(customFieldData.type == 2 /*checkbox*/ && fieldData == -1) {
alert(customFieldData.name + " is a required Custom Field");
return false;
}
}
// validate custom fields
if (customFieldData.type == 1 && !isEmail(fieldData, true))
{
alert(customFieldData.name + " is not a valid email address.");
return false;
}
if (customFieldData.type == 6 && !isDateReg(fieldData, true))
{
alert(customFieldData.name + " must be a valid date in mm/dd/yyyy format.");
return false;
}
if (customFieldData.type == 7 && !isFloat(fieldData, true))
{
alert(customFieldData.name + " must be a valid number.");
return false;
}
if (customFieldData.type == 8 && !isTimeReg(fieldData, true))
{
alert(customFieldData.name + " must be a valid time in 24 hour format (e.g. 23:45).");
return false;
}
if (customFieldData.type == 9) {
var urlRegex = new RegExp("^https?://(\\-|\\w)+(\\.(\\-|\\w)+)+
[0-9]+)?($|/.*$)");
var isvalid = false;
if (customFieldData.required == "true") {
isvalid = urlRegex.test(fieldData);
}
else {
isvalid = fieldData == "" || urlRegex.test(fieldData);
}
if (!isvalid)
{
alert(customFieldData.name + " must be a valid URL.");
return false;
}
}
}
// if reminder is exact, make sure a date was put in
if (document.frm.REMINDERTYPE.value == "EXACT")
{
if (isWhiteSpace(document.frm.REMINDERDATE.value))
{
alert("Please enter a date for this reminder");
return false;
}
}
<% if (!isPersonalDesktop) { %>
// unroll the selectlists
var userIdString = "";
var userAddRemoveString ="";
var notSelectedUsers = document.frm.avail_users.options
var selectedUsers = document.frm.selected_users.options;
for (var i=0; i < notSelectedUsers.length; i++)
{
userIdString += notSelectedUsers.value + "__";
userAddRemoveString += "0__";
}
for (var i=0; i < selectedUsers.length; i++)
{
userIdString += selectedUsers.value + "__";
userAddRemoveString += "1__";
}
document.frm.user_id.value = userIdString;
document.frm.add_remove_id.value = userAddRemoveString;
var roleIdString = "";
var roleAddRemoveString ="";
var notSelectedRoles = document.frm.avail_roles.options
var selectedRoles = document.frm.selected_roles.options;
for (var i=0; i < notSelectedRoles.length; i++)
{
roleIdString += notSelectedRoles.value + "__";
roleAddRemoveString += "0__";
}
for (var i=0; i < selectedRoles.length; i++)
{
roleIdString += selectedRoles.value + "__";
roleAddRemoveString += "1__";
}
document.frm.role_id.value = roleIdString;
document.frm.role_add_remove_id.value = roleAddRemoveString;
var formIdString = "";
var formAddRemoveString ="";
var notSelectedForms = document.frm.avail_forms.options
var selectedForms = document.frm.selected_forms.options;
for (var i=0; i < notSelectedForms.length; i++)
{
formIdString += notSelectedForms.value + "__";
formAddRemoveString += "0__";
}
for (var i=0; i < selectedForms.length; i++)
{
formIdString += selectedForms.value + "__";
formAddRemoveString += "1__";
}
document.frm.form_id.value = formIdString;
document.frm.form_add_remove_id.value = formAddRemoveString;
var emailString = "";
var emails = document.frm.selected_emails;
for (var i=0; i<emails.length; i++)
{
emailString += emails.value + ";";
}
document.frm.email_addresses.value = emailString;
<% } // personal Desktop portal %>
document.frm.submit()
}
function addEmail()
{
var selectedEmail = document.frm.email_address;
//Trim spaces and lowercase all
var space = / /g;
var emailAddress = selectedEmail.value;
emailAddress = emailAddress.toLowerCase();
emailAddress = emailAddress.replace(space,"");
if(emailAddress == "") {
selectedEmail.value = "";
return;
}
//Valid email address?
var at = /.+@.+\..+/g;
if(emailAddress.search(at) == -1)
{
alert("'" + emailAddress + "' does not seem to be a valid email address");
return;
}
var emailList = document.frm.selected_emails;
emailList[emailList.length] = new Option(emailAddress, emailAddress);
selectedEmail.value = "";
sortSelect(emailList);
}
function removeEmail()
{
var emails = document.frm.selected_emails;
for (var i=(emails.options.length-1); i>=0; i--) {
var o = emails.options;
if (o.selected) {
emails.options = null;
}
}
sortSelect(emails);
}
function init()
{
<% if (!isPersonalDesktop) { %>
sortSelect(document.frm.avail_users);
sortSelect(document.frm.selected_users);
sortSelect(document.frm.avail_roles);
sortSelect(document.frm.selected_roles);
sortSelect(document.frm.selected_emails);
sortSelect(document.frm.selected_forms);
<% } %>
initRecurrence();
initReminders();
}
function initRecurrence()
{
for (var i=0; i<document.frm.FREQ.length; i++)
{
if (document.frm.FREQ.value=="<%=FREQ%>")
{
document.frm.FREQ.checked = true;
}
}
changeRecurrence("<%=FREQ%>");
// Select the until values and radio buttons
<%if (UNTIL != "") { %>
document.frm.__END_OPTION__[1].checked = true;
document.frm.UNTIL.value="<%=UNTIL%>";
<% } else { %>
document.frm.__END_OPTION__[0].checked = true;
<% } %>
}
function changeCheckedDays(day)
{
// If the day is selected in the list, remove it
if (isSelectedDay(day))
{
var str = "";
var dayStr = document.frm.__BYDAY.value;
var dayList = dayStr.split(",");
for (var i=0; i<dayList.length; i++)
{
if (dayList!=day)
{
if (str.length>0)
str += ",";
str += dayList;
}
}
document.frm.__BYDAY.value = str;
}
// Else, add the day to the list
else
{
var dayStr = document.frm.__BYDAY.value;
if (dayStr.length>0)
document.frm.__BYDAY.value += ",";
document.frm.__BYDAY.value += day;
}
}
function isSelectedDay(day)
{
var dayList = document.frm.__BYDAY.value.split(",");
for (var j=0; j<dayList.length; j++)
{
if (dayList[j]==day) return true;
}
return false;
}
function monthDays()
{
var s= "";
for(i = 1; i <= 31; i++)
{
s += "<option " + (<%=BYMONTHDAY%>==i?"SELECTED":"") + " value=\""+i+"\">"+i+"</option>";
}
s += "<option " + (<%=BYMONTHDAY%>==-1?"SELECTED":"") + " value=\"-1\">Last</option>";
return s;
}
function months()
{
var s="";
var monthList = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");
for (var i=0; i<monthList.length; i++)
{
s += "<option " + (<%=BYMONTH%>==(i+1)?"SELECTED":"") + " value=\"" + (i+1) + "\">" + monthList + "</option>";
}
return s;
}
function changeRecurrence(_recId)
{
var divString = "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">";
switch (_recId)
{
case ("DAILY"):
divString += "<tr><td class=\"copy\">Every <input type=\"text\" name=\"INTERVAL\" size=\"2\" value=\"" + <%=INTERVAL%> + "\"> day(s)</td></tr>";
break;
case ("WEEKLY"):
divString += "<tr><td colspan=\"2\" class=\"copy\">Recurs every <input type=\"text\" name=\"INTERVAL\" size=\"2\" value=\"" + <%=INTERVAL%> + "\"> week(s) on</td></tr>";
divString += "<tr><td><input " + (isSelectedDay("SU")?"CHECKED":"") + " type=\"checkbox\" name=\"BYDAY\" value=\"SU\" onClick=\"changeCheckedDays(this.value);\"></td><td> Sunday</td></tr>";
divString += "<tr><td><input " + (isSelectedDay("MO")?"CHECKED":"") + " type=\"checkbox\" name=\"BYDAY\" value=\"MO\" onClick=\"changeCheckedDays(this.value);\"></td><td> Monday</td></tr>";
divString += "<tr><td><input " + (isSelectedDay("TU")?"CHECKED":"") + " type=\"checkbox\" name=\"BYDAY\" value=\"TU\" onClick=\"changeCheckedDays(this.value);\"></td><td> Tuesday</td></tr>";
divString += "<tr><td><input " + (isSelectedDay("WE")?"CHECKED":"") + " type=\"checkbox\" name=\"BYDAY\" value=\"WE\" onClick=\"changeCheckedDays(this.value);\"></td><td> Wednesday</td></tr>";
divString += "<tr><td><input " + (isSelectedDay("TH")?"CHECKED":"") + " type=\"checkbox\" name=\"BYDAY\" value=\"TH\" onClick=\"changeCheckedDays(this.value);\"></td><td> Thursday</td></tr>";
divString += "<tr><td><input " + (isSelectedDay("FR")?"CHECKED":"") + " type=\"checkbox\" name=\"BYDAY\" value=\"FR\" onClick=\"changeCheckedDays(this.value);\"></td><td> Friday</td></tr>";
divString += "<tr><td><input " + (isSelectedDay("SA")?"CHECKED":"") + " type=\"checkbox\" name=\"BYDAY\" value=\"SA\" onClick=\"changeCheckedDays(this.value);\"></td><td> Saturday</td></tr>";
break;
case ("MONTHLY"):
divString += "<tr><td class=\"copy\">Day <select name=\"BYMONTHDAY\">"+monthDays()+"</select> of every <input type=\"text\" name=\"INTERVAL\" size=\"2\" value=\"" + <%=INTERVAL%> + "\"> month(s)</td></tr>";
break;
case ("YEARLY"):
divString += "<tr><td class=\"copy\">Every <input type=\"text\" name=\"INTERVAL\" size=\"2\" value=\"" + <%=INTERVAL%> + "\"> year(s) on the ";
divString += "<select name=\"BYMONTHDAY\">"+monthDays()+"</select>";
divString += " day of <select name=\"BYMONTH\">" + months() + "</select></td></tr>";
break;
}
divString += "</table>";
writeLayer("this", "divRec", divString);
}
function setUntil() {
if (document.frm.__END_OPTION__[0].checked == true) {
document.frm.UNTIL.value = '';
}
}
function initReminders()
{
// Select the correct frequency value
for (var i=0; i<document.frm.REMINDERTYPE.length; i++)
{
if (document.frm.REMINDERTYPE.value=="<%=REMINDERTYPE%>")
{
document.frm.REMINDERTYPE.checked = true;
}
}
changeReminder("<%=REMINDERTYPE%>");
}
function isSelectedPeriod(_period) {
return (_period=="<%=RELATIVE_INTERVAL%>");
}
function isSelectedTime(_period) {
return (_period=="<%=REMINDERTIME%>");
}
function changeReminder(_remId)
{
var divString = "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\">";
switch (_remId)
{
case ("RELATIVE"):
divString += "<tr><td class=\"copy\">";
divString += "<select name=\"RELATIVE_INTERVAL\" >";
divString += "<option value=\"0\"" + (isSelectedPeriod("0") ? " selected" : "") + ">0 min.</option>";
divString += "<option value=\"5\"" + (isSelectedPeriod("5") ? " selected" : "") + ">5 min.</option>";
divString += "<option value=\"10\"" + (isSelectedPeriod("10") ? " selected" : "") + ">10 min.</option>";
divString += "<option value=\"15\"" + (isSelectedPeriod("15") ? " selected" : "") + ">15 min.</option>";
divString += "<option value=\"30\"" + (isSelectedPeriod("30") ? " selected" : "") + ">30 min.</option>";
divString += "<option value=\"60\"" + (isSelectedPeriod("60") ? " selected" : "") + ">1 hr.</option>";
divString += "<option value=\"120\"" + (isSelectedPeriod("120") ? " selected" : "") + ">2 hr.</option>";
divString += "<option value=\"300\"" + (isSelectedPeriod("300") ? " selected" : "") + ">5 hr.</option>";
divString += "<option value=\"1440\"" + (isSelectedPeriod("1440") ? " selected" : "") + ">1 day</option>";
divString += "<option value=\"7200\"" + (isSelectedPeriod("7200") ? " selected" : "") + ">5 days</option>";
divString += "<option value=\"14400\"" + (isSelectedPeriod("14400") ? " selected" : "") + ">10 days</option>";
divString += "<option value=\"43200\"" + (isSelectedPeriod("43200") ? " selected" : "") + ">30 days</option>";
divString += "<option value=\"86400\"" + (isSelectedPeriod("86400") ? " selected" : "") + ">60 days</option>";
divString += "<option value=\"129600\"" + (isSelectedPeriod("129600") ? " selected" : "") + ">90 days</option>";
divString += "<option value=\"172800\"" + (isSelectedPeriod("172800") ? " selected" : "") + ">120 days</option>";
divString += "<option value=\"259200\"" + (isSelectedPeriod("259200") ? " selected" : "") + ">180 days</option>";
divString += "</select>";
divString += " before the task is due";
divString += "</td></tr>";
break;
case ("EXACT"):
divString += "<tr><td class=\"copy\">";
divString += "<input type=\"text\" name=\"REMINDERDATE\" size=\"7\" value=\"<%=getToday(sess)%>\">";
divString += "<a id=\"REMINDERDATE__POSITION__\" style=\"cursor: hand;\" onclick=\"javascript:cal.showCalendar('REMINDERDATE__POSITION__', 'document.frm.REMINDERDATE');\">";
divString += "<img src=\"/jsp/applications/images/buttons/calendar.gif\" border=\"0\"></a></td>";
divString += "<td><%=writeTime2(sess, task, "REMINDERTIME")%>";
divString += "</td></tr>";
break;
}
divString += "</table>";
writeLayer("this", "divRem", divString);
}
</script>
<title><%= (id > -1 ? "Edit " + task.getName(): "New Task") %></title>
</head>
<body onload="init();">
<table width="100%"><tr><td class="header">
<%= (id > -1 ? "Edit " + task.getName(): "New Task") %>
</td></tr></table>
<form name="frm" action="taskEditor.jsp" onsubmit="return false;" method="POST">
<input type="hidden" name="id" value="<%=id%>">
<input type="hidden" name="workgroupId" value="<%=workgroup.getId()%>">
<input type="hidden" name="parentId" value="<%=parentId%>">
<input type="hidden" name="postback" value="true">
<% if(!refreshOnClose) { %>
<input type="hidden" name="norefresh" value="true">
<% } %>
<div class="tab-pane" id="tabstrip">
<script type="text/javascript">
tabPane = new WebFXTabPane( document.getElementById( "tabstrip" ), false );
</script>
<div id="main-tab" class="tab-page">
<h2 class="tab">Task</h2>
<script type="text/javascript">
tabPane.addTabPage(document.getElementById("main-tab"));
</script>
<table style="width:400px;" class="portal">
<tr>
<th width="20%" class="required">Task Name:</th>
<td style="border: solid #999999 1px; ">
<input name="taskname" size="50" type="text" value="<%=taskName%>"></td>
</tr>
<% if (id > -1) { %>
<tr>
<th width="20%">Creator:</th>
<td style="border: solid #999999 1px; ">
<%=task.getCreator().getFirstName() + " " + task.getCreator().getLastName() +" - "+
((task.getCreator().getUserRole()==null)? " ":task.getCreator().getUserRole().getName())%></td>
<% } %>
</tr>
<tr>
<th width="20%">Description:</th>
<td style="border: solid #999999 1px; ">
<textarea name="taskdescription" cols="55" rows="4"><%=taskDescription%></textarea>
</td>
</tr>
<tr>
<th width="20%">Comments:</th>
<td style="border: solid #999999 1px; ">
<textarea name="taskcomments" cols="55" rows="4"><%=taskComments%></textarea>
</td>
</tr>
<tr>
<th width="20%">Start Date/Time:</th>
<td style="border: solid #999999 1px; ">
<% writeDate(sess, out, task, "start"); %>
<% writeTime(sess, out, task, "start"); %>
</td>
</tr>
<tr>
<th width="20%" class="required">Due Date/Time:</th>
<td style="border: solid #999999 1px; ">
<% writeDate(sess, out, task, "end"); %>
<% writeTime(sess, out, task, "end"); %>
</td>
</tr>
<tr>
<th width="20%">Reminder Time:</th>
<td style="border: solid #999999 1px; ">
<table border="0" cellpadding="0" cellspacing="0">
<tr>
<td>
<input type="radio" name="REMINDERTYPE" value="RELATIVE" onClick="changeReminder(this.value);">
Relative
<br>
<input type="radio" name="REMINDERTYPE" value="EXACT" onClick="changeReminder(this.value);">
Exact Date
</td>
<td><div id="divRem"></div></td>
</tr>
</table>
</td>
</tr>
<tr>
<th width="20%">Percent Complete:</th>
<td style="border: solid #999999 1px; ">
<% writePercentComplete(sess, out, task); %>
</td>
</tr>
<% if (!isPersonalDesktop) { %>
<tr>
<th width="20%">Assignees:</th>
<td style="border: solid #999999 1px; ">
<table>
<tr>
<td valign="top">
Available Users:
<input type="hidden" name="user_id" value="">
<input type="hidden" name="add_remove_id" value="">
<select name="avail_users" size="4" multiple style="width:165px;">
<% writeAssignees(out, task, workgroup, true); %>
</select>
<div style="font-weight: bold;">* [currently online]</div>
</td>
<td valign="middle">
<input type="button" value=">>" onclick="moveSelectedOptions(document.frm.avail_users, document.frm.selected_users, true);">
<br>
<input type="button" value="<<" onclick="moveSelectedOptions(document.frm.selected_users, document.frm.avail_users, true);">
</td>
<td valign="top">
Selected Users:
<select name="selected_users" size="4" multiple style="width:165px;">
<% writeAssignees(out, task, workgroup, false); %>
</select>
</td>
</tr>
</table>
</td>
<tr>
<th width="20%">Roles:</th>
<td style="border: solid #999999 1px; ">
<table>
<tr>
<td valign="top">
Available Roles:
<input type="hidden" name="role_id" value="">
<input type="hidden" name="role_add_remove_id" value="">
<select name="avail_roles" size="4" multiple style="width:165px;">
<% writeRoles(out, task, app, workgroup, true); %>
</select>
</td>
<td valign="middle">
<input type="button" value=">>" onclick="moveSelectedOptions(document.frm.avail_roles, document.frm.selected_roles, true);">
<br>
<input type="button" value="<<" onclick="moveSelectedOptions(document.frm.selected_roles, document.frm.avail_roles, true);">
</td>
<td valign="top">
Selected Roles:
<select name="selected_roles" size="4" multiple style="width:165px;">
<% writeRoles(out, task, app, workgroup, false); %>
</select>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<th width="20%">Email Addresses:</th>
<td style="border: solid #999999 1px; ">
<table>
<tr>
<td>new email address:</td>
<td>
<input type="hidden" name="email_addresses" value="">
<input type="text" name="email_address" size="20">
<input type="button" value="Add" onclick="addEmail();">
</td>
<tr>
<td>selected email addresses:</td>
<td rowspan="2">
<select name="selected_emails" size="3" multiple style="width:200px;">
<% writeEmails(out, task); %>
</select>
</td>
</tr>
<tr>
<td style="text-align:right">
<input type="button" value="Remove" onclick="removeEmail();">
</td>
</tr>
</table>
</td>
</tr>
<% } // for tasks in a Workgroup, not your personal portal %>
</table>
</div>
<% if (taskCustomFieldList.size() > 0) { %>
<div id="customField-tab" class="tab-page">
<h2 class="tab">Custom</h2>
<script type="text/javascript">
tabPane.addTabPage(document.getElementById("customField-tab"));
</script>
<p class="subheader">Custom Fields </p>
<table style="width:400px;" class="portal">
<% writeCustomFields(sess, out, task, app); %>
</table>
</div>
<% } // check for taskCustomFieldList.size() > 0 %>
<div id="recur-tab" class="tab-page">
<h2 class="tab">Recurrence</h2>
<script type="text/javascript">
tabPane.addTabPage(document.getElementById("recur-tab"));
</script>
<input type="hidden" name="__BYDAY" value="<%=BYDAY%>">
<p class="subheader">What kind of recurrence?</p>
<table class="blank">
<tr>
<td valign="top">
<table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><input type="radio" name="FREQ" value="NONE" onClick="changeRecurrence(this.value); "></td>
<td class="copy"> No Recurrence</td>
</tr>
<tr>
<td><input type="radio" name="FREQ" value="DAILY" onClick="changeRecurrence(this.value); "></td>
<td class="copy"> Daily</td>
</tr>
<tr>
<td><input type="radio" name="FREQ" value="WEEKLY" onClick="changeRecurrence(this.value); "></td>
<td class="copy"> Weekly</td>
</tr>
<tr>
<td><input type="radio" name="FREQ" value="MONTHLY" onClick="changeRecurrence(this.value); "></td>
<td class="copy"> Monthly</td>
</tr>
<tr>
<td><input type="radio" name="FREQ" value="YEARLY" onClick="changeRecurrence(this.value); "></td>
<td class="copy"> Yearly</td>
</tr>
</table>
</td>
<td style="width: 30px;"> </td>
<td valign="top">
<div id="divRec">
</div>
</td>
</tr>
</table>
<p class="instructions">Continue until:</p>
<div id="divRange" style="width: 300px;">
<table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><input type="radio" name="__END_OPTION__" value="NO_END_DATE"></td>
<td class="copy"> No end date</td>
</tr>
<tr>
<td><input type="radio" name="__END_OPTION__" value="END_UNTIL"></td>
<td class="copy"> <input type="text" name="UNTIL" size="7"><a id="endDate__POSITION__" style="cursor: hand;" onclick="javascript:cal.showCalendar('endDate__POSITION__', 'document.frm.UNTIL');"><img src="/jsp/applications/images/buttons/calendar.gif" border="0"></a></td>
<tr>
</table>
</div>
</div>
<% if (!isPersonalDesktop) { %>
<div id="options-tab" class="tab-page">
<h2 class="tab">Options</h2>
<script type="text/javascript">
tabPane.addTabPage(document.getElementById("options-tab"));
</script>
<p class="subheader">Options</p>
<table class="clear">
<tr>
<td>
<div style="font-weight:bold">When should the task be marked as complete?</div>
<input type="radio" name="taskcompletion" value="0" <%= taskCompletion==0? "CHECKED":""%> > When any assigned user has marked it as complete
<br>
<input type="radio" name="taskcompletion" value="1" <%= taskCompletion==1? "CHECKED":""%>> When each individual assigned user has marked it as complete
</td>
</tr>
<tr>
<td>
<div style="font-weight:bold">Who should be able to modify or delete this task?</div>
<input type="radio" name="taskeditprivate" value="0" <%= taskEditPrivate==0? "CHECKED":""%> > All users assigned to the task
<br>
<input type="radio" name="taskeditprivate" value="1" <%= taskEditPrivate==1? "CHECKED":""%>> Only the task creator
</td>
</td>
</tr>
</table>
</div>
<div id="forms-tab" class="tab-page">
<h2 class="tab">Forms</h2>
<script type="text/javascript">
tabPane.addTabPage(document.getElementById("forms-tab"));
</script>
<div class="subheader">Mapped forms</div>
<table style="width: 350px;">
<tr>
<td valign="top">
Available Forms:
<input type="hidden" name="form_id" value="">
<input type="hidden" name="form_add_remove_id" value="">
<select name="avail_forms" size="8" multiple style="width:150px;">
<% writeForms(out, task, workgroup, true); %>
</select>
</td>
<td valign="middle">
<input type="button" value=">>" onclick="moveSelectedOptions(document.frm.avail_forms, document.frm.selected_forms, true);">
<br>
<input type="button" value="<<" onclick="moveSelectedOptions(document.frm.selected_forms, document.frm.avail_forms, true);">
</td>
<td valign="top">
Selected Forms:
<select name="selected_forms" size="8" multiple style="width:150px;">
<% writeForms(out, task, workgroup, false); %>
</select>
</td>
</tr>
</table>
<% if (id > -1) { %>
<p class="subheader">Form History</p>
<table style="width: 400px;" class="portal">
<tr>
<th>Name</th>
<th>History</th>
</tr>
<% showForms(out, task); %>
</table>
<% } %>
</div>
<% } // don't Options or forms show on desktop %>
<% if (id > -1) { %>
<div id="files-tab" class="tab-page">
<h2 class="tab">Files</h2>
<script type="text/javascript">
tabPane.addTabPage(document.getElementById("files-tab"));
</script>
<table width=400px>
<tr>
<td><p class="subHeader">Files:</p></td>
<td style="text-align: right;" width="1%"><%= (task.canUserEdit(u) ? PageFormatter.generateButton("Add ", "javascript
opFileWizard();") : "")%></td>
</tr>
</table>
<table style="width:400px" class="portal">
<tr>
<th>Name</th>
<th>Description</th>
<th>Size</th>
<th style="text-align: right;" width="1%">Action</th>
</tr>
<% writeFiles(out, task, u); %>
</table>
</div>
<% } %>
<br>
<table>
<tr>
<td>
<%=PageFormatter.generateButton(id > -1 ? "Update" : "Save", "javascript:submitForm();")%>
</td>
<td>
<%=PageFormatter.generateButton("Cancel", "javascript:window.close();")%>
</td>
</tr>
</table>
</form>
</body>
</html>