| Server IP : 209.209.40.120 / Your IP : 216.73.217.112 Web Server : Microsoft-IIS/10.0 System : Windows NT NEWWWW 10.0 build 17763 (Windows Server 2019) i586 User : NEWWWW$ ( 0) PHP Version : 8.3.30 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : C:/Program Files (x86)/Mail Enable/Bin/NETWebMail/Mondo/lang/sys/Forms/TSK/ |
Upload File : |
<%@ Page Language="vb" AutoEventWireup="false" Inherits="MailEnable.Clients.WebMail.Mondo.ListTasks" CodeBehind="list.aspx.vb" %>
<%@ Register TagPrefix="uc1" TagName="uscStyleHeader" Src="../../../Controls/uscStyleHeader.ascx" %>
<%@ Register TagPrefix="uc2" TagName="TaskDetails" Src="TaskDetails.ascx" %>
<%@ Register TagPrefix="uc1" TagName="ScriptsInclude" Src="../../../Controls/ScriptsInclude.ascx" %>
<%@ Register TagPrefix="uc2" TagName="uscLanguageTokenMondo" Src="../../../Controls/uscLanguageToken.ascx" %>
<uc2:uscLanguageTokenMondo id="uscToken" runat="server"></uc2:uscLanguageTokenMondo>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" <%=GetThemeStyle()%>>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<uc1:uscStyleHeader id="UscStyleHeader1" runat="server"></uc1:uscStyleHeader>
<uc1:ScriptsInclude id="ScriptsInclude" runat="server"></uc1:ScriptsInclude>
<bgsound id="BGSOUND_ID" loop="0"> <!-- used for the reconnect mechanism -->
<script type="text/javascript" src="LIBTaskList.js"></script>
<script type="text/javascript">
<!--
var TaskTabControl = null;
var bHideRecurrence = false;
function initDetails() {
TaskTabControl = new TabStrip(document.getElementById('TaskTabControl'));
TaskTabControl.AddTab(t_('[ME_TXT-General]'), document.getElementById('TaskGeneralTabBody'), 'tab_panel_shell');
if (!bHideRecurrence) {
TaskTabControl.AddTab(t_('[ME_TXT-Recurrence]'), document.getElementById('TaskRecurrenceTabBody'), 'tab_panel_shell');
TaskTabControl.AddTab(t_('[ME_TXT-Notes]'), document.getElementById('TaskNotesTabBody'), 'tab_panel_shell');
$("#TaskNotesTabBody").show();
}
TaskTabControl.ActivateTab(0); // make 1st tab (General) visiable
$('#TaskRecurrenceTabBody').load('../../dialogs/recurrence.htm?v=' + GetScriptVersion(), null, function () {
recurrence.Localize();
$("#TaskRecurrenceTabBody").show();
InitApptRecurFields();
RecurrenceControlOptions['StartTimeDatePicker'] = 'startDatePicker';
RecurrenceControlOptions['EndTimeDatePicker'] = 'dueDatePicker';
InitRecurData(RecurrenceControlOptions['StartTimeDatePicker']);
SetRecurrenceType(RECURRENCE_TYPE_NONE);
});
}
getTopAppWindow().ShowPageLoad();
var LIST_ID = 'METaskList';
var LIST_CONTAINER = 'msgList_shell_js';
var LIST_CONTAINER_INNER = 'msgList_container_js';
var BTTN_PADDING = 3;
var MAX_DELETE_ITEMS = 20;
// SCROLLBAR_ID --> SCROLLBAR_DIV
// 'ME_ScrollControl' --> 'ME_ScrollControlDiv'
// 'PanelMessageList' --> LIST_CONTAINER
var SCROLLBAR_TD = 'ME_ScrollControlTD';
var SCROLLBAR_DIV = 'ME_ScrollControlDiv';
var SCROLLBAR_CANVAS = 'ME_ScrollControlCanvas';
var DIV_SCROLL_TOOLTIP = 'divScrollTooltip';
var DIV_SCROLL_TOOLTIP_TEXT = 'divScrollTooltipText';
var TASK_VIEW_SIMPLE = 0;
var TASK_VIEW_DETAILED = 1;
var TASK_FILTER_ALL = 0;
var TASK_FILTER_ACTIVE = 1;
var TASK_FILTER_OVERDUE = 2;
var TASK_FILTER_COMPLETED = 3;
var gCurMessageID = ""; // the ID of the task currently viewed;
var DROPDOWN_VIEW_OPTIONS = "dropDown_viewOptions";
var DROPDOWN_VIEW_FILTER = "dropDown_filter";
var gBrowserType = GetBrowserType();
var gItemsPerPage = 10; // Number of rows to draw (including partial rows) in the list. This value is recaculated before the list rows are drawn.
var gUnitScrollLength = 28; // Height of each row in the list
var oConfirmation_Task = null;
var oAlertDialog = null;
var boolPreviewLaunchEmbedded =true;
var SortColumn = 'Received';
var SortOrder = 'Desc';
var SelectedFolder;
var tmrNotification=null;
var SkinRoot='<%=Session("skin")%>';
var sID = '<%=ParseRequestArgument("ID")%>';
var gSortOrder = 'Asc';
var gSearchStr = '';
var gSortColumn = "DueDate";
var gTasksFilter = 0;
var gMode = '';
var gGetTaskDelayTimeout = null;
var gAllowTaskGet = true;
var bSetPage = true; // variable to denote whether we should set the page value after loading the message list
var SelectedMessage;
var PreviewDelayTimer=null;
var DoubleClickDelayTimer=null;
var ClickedMessageID=null;
var MessagesPerPage = 20;
var arrMessageList = {};
var mCurrentKey;
var HorizSeparatorTop;
var VertSeparatorLeft;
var cMouseDown = false; // True or false to represent current mouse button state; up or down.
var lMouseDown = false; // Represents the previous mouse button state.
var MODE_ADD = 0;
var MODE_EDIT = 1;
var gTaskID = '';
var gPopupItemID; // Item ID of the selected item in the list (via context/popup menu)
var arrTableColumns={};
var NumColumns=0;
var LABEL_MESSAGE_COUNT = 'lblMessageCount';
var ACCESS_MODE_READ = 0;
var ACCESS_MODE_FULL = 1;
var gAccessMode = ACCESS_MODE_FULL; // this will be set everytime a new list of messages comes back from the server
var gKeepShowingWait = false;
var bIsTouchScreen = (GetBrowserScrollMode() == 2);
var gDetailsPaneMinWidth = bIsTouchScreen ? 470 : 460;
var layoutMain = null;
var layoutSettings = {
useStateCookie: !bIsTouchScreen // use cookies to remember widths of pane if it's in a normal browser (i.e. not touchscreen user agent)
, defaults: {
name: "layoutTasks"
, size: "auto"
//, minSize: 300
, paneClass: "pane" // default = 'ui-layout-pane'
, resizerClass: "resizer" // default = 'ui-layout-resizer'
, togglerClass: "toggler" // default = 'ui-layout-toggler'
, buttonClass: "button" // default = 'ui-layout-button'
, slidable: false
, contentSelector: ".content" // inner div to auto-size so only it scrolls, not the entire pane!
, contentIgnoreSelector: "span" // 'paneSelector' for content to 'ignore' when measuring room for content
, togglerLength_open: 21 // WIDTH of toggler on north/south edges - HEIGHT on east/west edges
, togglerLength_closed: 15 // "100%" OR -1 = full height
, hideTogglerOnSlide: true // hide the toggler when pane is 'slid open'
, togglerTip_open: t_("[ME_TXT-CollapseThisPane]")
, togglerTip_closed: t_("[ME_TXT-OpenThisPane]")
, resizerTip: t_("[ME_TXT-Resize]")
// effect defaults - overridden on some panes
, fxName: "slide" // none, slide, drop, scale
, fxSpeed_open: 400
, fxSpeed_close: 400
//, fxSettings_open: { easing: "easeInQuint" }
//, fxSettings_close: { easing: "easeOutQuint" }
, resizerDragOpacity: 0.5
}
, center: {
// Task List pane
size: "auto"
, spacing_closed: 21 // wider space when closed
, initClosed: false // start with the pane open
//, onresize: function() { ResizeToolbarIcons('toolbar_primary_table_left_js'); }
}
, east: {
// Task Details pane
size: gDetailsPaneMinWidth
, minSize: gDetailsPaneMinWidth
, spacing_closed: 21 // wider space when closed
, initClosed: false // start with the pane open
, togglerLength_closed: 15
, togglerAlign_closed: "middle" // align toggle button (when pane is collapsed) to the middle of resizer bar
, togglerTip_open: t_("[ME_TXT-CollapseDetailsPane]")
, togglerTip_closed: t_("[ME_TXT-OpenDetailsPane]")
//, resizerTip_open: "Resize Tasks List"
, slideTrigger_open: "click" // collapsed pane is re-opened on click
//, slideTrigger_open: "mouseover" // collapsed pane is re-opened on click
, sliderTip: t_("[ME_TXT-ViewDetailsPane]") // slider tooltip
// add 'bounce' option to default 'slide' effect
//, fxSettings_open: { easing: "easeOutBounce" }
//, fxName: "drop" // slider effect (when clicked on slider bar)
}
};
function BrowserResize()
{
InitLayout();
DataItemList_RewriteTableRows(LIST_ID, gDataListTopOfPageOrdinal - 1, arrTableColumns,"resize");
}
function SetListHeight()
{
try {
var toolbar_primary_height; // height of the actions toolbar
var msgListPane_height; // height of the message list pane (including toolbar)
var bodyCol_shell_height; // height of the message list shell (not including the toolbar)
var toolbar_foot_height; // height of the footer toolbar
var paneiframe_padding = 0;
toolbar_primary_height = document.getElementById("toolbar_primary_js").clientHeight;
toolbar_foot_height = document.getElementById("tasks_foot_shell_js").clientHeight;
if ($('.pane-iframe').css('padding-top')) {
paneiframe_padding = $('.pane-iframe').css('padding-top').replace('px', '');
}
msgListPane_height = $('html').height();
bodyCol_shell_height = msgListPane_height - toolbar_primary_height - toolbar_foot_height - paneiframe_padding;
// set list shell height
document.getElementById(LIST_CONTAINER).style.height = bodyCol_shell_height + "px";
document.getElementById(LIST_CONTAINER_INNER).style.height = bodyCol_shell_height + "px";
// set the scrollbar height (via the scroll canvas)
var scrollCanvas_height = (bodyCol_shell_height - HEADER_ROW_HEIGHT);
document.getElementById(SCROLLBAR_DIV).style.height = scrollCanvas_height + "px";
// set gMsgListHeight variable so the message list knows how many rows to draw
gMsgListHeight = bodyCol_shell_height - HEADER_ROW_HEIGHT;
DataItemList_SetScrollRange();
} catch (ex) { }
}
function SetDetailsPaneHeight() {
var mainPaneHeight = $('html').height();
var paneiframe_padding = 0;
if ($('.pane-iframe').css('padding-top')) {
paneiframe_padding = $('.pane-iframe').css('padding-top').replace('px', '');
}
document.getElementById("contactsDetails_shell_js").style.height = mainPaneHeight - paneiframe_padding + "px";
}
function InitLayout()
{
var html_height = $('html').height();
if (html_height > 0)
{
$('body div.level0_shell').height(html_height);
if (layoutMain == null)
{
// init the layout manager for the panes (task list & details)
layoutMain = $('body div.level0_shell').layout(layoutSettings);
}
}
// set the height of the center panel (Task List)
SetListHeight();
// set the height of the east panel (Task Details)
SetDetailsPaneHeight();
// set the width of the toolbar dropdown buttons
var toolbar_td_width_viewOptions = $("#bttn_dropDown_viewOptions").outerWidth();
var toolbar_td_width_filterTasks = $("#bttn_dropDown_filterTasks").outerWidth();
$("#toolbar_primary_bttn_viewOptions_js").width(toolbar_td_width_viewOptions + BTTN_PADDING);
$("#toolbar_primary_bttn_filterTasks_js").width(toolbar_td_width_filterTasks + 3);
//set x position of Filter Task Dropdown menu (FF bug)
var viewOptions_bttn = $('#bttn_dropDown_viewOptions').outerWidth() + 1;
$('#dropDown_filt').css('right', viewOptions_bttn);
}
function ShowAlert(Title, Message, IsWarning)
{
if (oAlertDialog != null) {
oAlertDialog.Alert(Title, Message, IsWarning);
}
else {
alert(Message);
}
}
function HideTaskDetails(instanceName) {
if (getItemInstance('divTaskDetails', instanceName)) {
getItemInstance('divTaskDetails', instanceName).style.display = "none";
DataItemList_ToggleKeyNavigation(true);
}
}
function ServerRequest(sCommand, sData, bUseCallback, sFrameName) {
var sURI = "";
if (gSourceURI && gSourceURI.length > 0) {
sURI = '&URI=' + encodeURIComponent(gSourceURI);
}
if (sURI && sURI.length > 0) {
sData = sData + sURI + '&Sensitivity=0';
}
return LIBAjax_ServerRequest(sCommand, sData, bUseCallback, sFrameName);
}
function ServerPost(sCommand, sData, bUseCallback, sFrameName) {
return LIBAjax_ServerPost(sCommand, sData, bUseCallback, sFrameName);
}
function SetSelectAllCheckbox(IsSelected)
{
var oChkSelectAll = document.getElementById(LIST_ID + '_SelectAll');
if (oChkSelectAll) {
oChkSelectAll.checked = IsSelected;
}
if (IsSelected)
{
HideTaskDetails(null);
}
// now return focus back onto the list; so that key events can be fired on the list
SetFieldFocus(LIST_ID);
}
function RefreshList() {
gListFirstLoad = false;
InitCols(GetSelectedView());
GetListData(); // refresh list
}
function GetAllServerSelectedIDs() {
GetListData("&Mode=SELECT-ALL");
}
function SelectAllItemIDs()
{
gExtData = "&Mode=SELECT-ALL"; // used on sort function
// let's pop up a wait dialog (busy) before we go off to the server to get the list of messages
getTopAppWindow().ShowWait(t_("[ME_TXT-Pleasewait]") + "...");
window.setTimeout('GetAllServerSelectedIDs()', 200); // wait for a bit; we have to do this in order for the dialog to show up
}
function DataItemList_CheckboxCallback(UID, CheckStatus) {
// at this stage the checkbox checked status
// would have already been changed, so
// we need to do any other post cleanup stuff here...
HideTaskDetails(null); // always hide the details panel when the checkbox is toggled.
if (gSelectedIM.GetSize() == gTotalItems) {
SetSelectAllCheckbox(true);
}
else {
SetSelectAllCheckbox(false);
}
SetActionButtonsStatus();
window.status = gSelectedIM.GetSize() + " " + t_("[ME_TXT-Selected]");
}
function GetSelectedView() {
// returns the selected View value based on the selection in the
// 'View Options' dropdown menu
var oDropDown = document.getElementById(DROPDOWN_VIEW_OPTIONS);
var oListItem;
var oItems;
if (oDropDown) {
oItems = oDropDown.getElementsByTagName("div");
// loop through our divs
for (var i = 0; i < oItems.length; i++) {
// set class to be un-ticked
oListItem = oItems[i].firstChild;
if (oListItem.className.indexOf(DROPDOWN_TICK_CLASS) != -1) {
if (oListItem.id.indexOf("_simple") != -1) {
return TASK_VIEW_SIMPLE;
}
}
}
}
return TASK_VIEW_DETAILED; // default it
}
function GetSelectedFilter() {
var oDropDown = document.getElementById(DROPDOWN_VIEW_FILTER);
var oListItem;
var oItems;
if (oDropDown) {
oItems = oDropDown.getElementsByTagName("div");
// loop through our divs
for (var i = 0; i < oItems.length; i++) {
// set class to be un-ticked
oListItem = oItems[i].firstChild;
if (oListItem.className.indexOf(DROPDOWN_TICK_CLASS) != -1) {
if (oListItem.id.indexOf("_all") != -1) {
return TASK_FILTER_ALL;
}
else if (oListItem.id.indexOf("_active") != -1) {
return TASK_FILTER_ACTIVE;
}
else if (oListItem.id.indexOf("_overdue") != -1) {
return TASK_FILTER_OVERDUE;
}
else if (oListItem.id.indexOf("_completed") != -1) {
return TASK_FILTER_COMPLETED;
}
}
}
}
return TASK_FILTER_OVERDUE;
}
function DataItemList_SelectAllCheckboxCallback(UID)
{
var oChkSelectAll = document.getElementById(UID);
if (oChkSelectAll) {
if (oChkSelectAll.checked)
{
HideTaskDetails(null);
SelectAllItemIDs();
}
else
{
gExtData = "";
DataItemList_UnselectAllRows(LIST_ID);
SetActionButtonsStatus();
window.status = gSelectedIM.GetSize() + " " + t_("[ME_TXT-Selected]");
}
}
}
function SetColumnStyles(View, arrTableColumns)
{
var NumColumns = 0;
if (View == TASK_VIEW_SIMPLE)
{
//note: for table to span correctly, at least one field must be noWidth
DataItemList_AddTableColumn(0, arrTableColumns, '', 'SelectAll', 'left', 'dataTable_tickbox', 'dataTable_tickbox', '', t_('[ME_TXT-Select/DeselectAll]'), 'SelectAll');
DataItemList_AddTableColumn(1, arrTableColumns, 'Importance', 'Importance', 'center', 'dataTable_icon_importance', 'dataTable_icon_importance', 'Importance', t_('[ME_TXT-SortByImportance]'), 'Importance');
DataItemList_AddTableColumn(2, arrTableColumns, 'Subject', 'Subject', 'left', 'dataTable_noWidth', 'dataTable_noWidth', t_('[ME_TXT-Subject]'), t_('[ME_TXT-SortBySubject]'), 'Label');
DataItemList_AddTableColumn(3, arrTableColumns, 'Status', 'Status', 'left', 'dataTable_status', 'dataTable_status', t_('[ME_TXT-Status]'), t_('[ME_TXT-SortByStatus]'), 'Label');
DataItemList_AddTableColumn(4, arrTableColumns, 'DueDate', 'DueDate', 'left', 'dataTable_date', 'dataTable_date', t_('[ME_TXT-DueDate]'), t_('[ME_TXT-SortByDueDate]'), 'Label');
DataItemList_AddTableColumn(5, arrTableColumns, 'PercentComplete', 'PercentComplete', 'center', 'dataTable_complete', 'dataTable_complete', t_('[ME_TXT-%Complete]'), t_('[ME_TXT-SortByPercentComplete]'), 'Percent');
NumColumns = 6;
}
else if (View == TASK_VIEW_DETAILED)
{
DataItemList_AddTableColumn(0, arrTableColumns, '', 'SelectAll', 'left', 'dataTable_tickbox', 'dataTable_tickbox', 'X', t_('[ME_TXT-Select/DeselectAll]'), 'SelectAll');
DataItemList_AddTableColumn(1, arrTableColumns, 'Importance', 'Importance', 'center', 'dataTable_icon_importance', 'dataTable_icon_importance', '', t_('[ME_TXT-SortByImportance]'), 'Importance');
DataItemList_AddTableColumn(2, arrTableColumns, 'Subject', 'Subject', 'left', 'dataTable_name', 'dataTable_name', t_('[ME_TXT-Subject]'), t_('[ME_TXT-SortBySubject]'), 'Label');
DataItemList_AddTableColumn(3, arrTableColumns, 'Status', 'Status', 'left', 'dataTable_status', 'dataTable_status', t_('[ME_TXT-Status]'), t_('[ME_TXT-SortByStatus]'), 'Label');
DataItemList_AddTableColumn(4, arrTableColumns, 'StartDate', 'StartDate', 'left', 'dataTable_date', 'dataTable_date', t_('[ME_TXT-StartDate]'), t_('[ME_TXT-SortByStartDate]'), 'Label');
DataItemList_AddTableColumn(5, arrTableColumns, 'DueDate', 'DueDate', 'left', 'dataTable_date', 'dataTable_date', t_('[ME_TXT-DueDate]'), t_('[ME_TXT-SortByDueDate]'), 'Label');
DataItemList_AddTableColumn(6, arrTableColumns, 'PercentComplete', 'PercentComplete', 'center', 'dataTable_complete', 'dataTable_complete', t_('[ME_TXT-%Complete]'), t_('[ME_TXT-SortByPercentComplete]'), 'Percent');
DataItemList_AddTableColumn(7, arrTableColumns, 'Sensitivity', 'Sensitivity', 'left', 'dataTable_sensitivity', 'dataTable_sensitivity', t_('[ME_TXT-Sensitivity]'), t_('[ME_TXT-SortBySensitivity]'), 'Label');
NumColumns = 8;
}
return NumColumns;
}
function ProcessXMLResult(responseXML)
{
var BaseNode = responseXML.getElementsByTagName("BASEELEMENT")[0];
if (BaseNode ==null)
{
alert(t_('[ME_TXT-Serverfailure]'));
return true;
}
var sResult = GetXMLValue(BaseNode.getElementsByTagName("RETURNVALUE")[0]);
if (sResult == "5")
{
// not licensed error: show it and abort
var errNodeList = BaseNode.getElementsByTagName('ERROR_DESCRIPTION');
if (errNodeList.length > 0)
{
ShowAlert(t_("[ME_TXT-Error]"), GetXMLValue(errNodeList[0]), true);
}
getTopAppWindow().Async_UnlockUI();
return false;
}
var oSchema = BaseNode.attributes.getNamedItem('SCHEMA');
var oMethod = BaseNode.attributes.getNamedItem('METHOD');
var sSchema;
var sMethod;
if (oSchema)
{
sSchema = GetXMLValue(oSchema);
}
if (oMethod)
{
sMethod = GetXMLValue(oMethod);
}
if (sSchema == 'RESULT') {
if (sMethod == 'LIST-CONNECTIONS') {
ProcessSharesList(BaseNode);
}
}
if (sSchema == 'TASKS')
{
if (!gKeepShowingWait)
{
getTopAppWindow().Async_UnlockUI();
}
if (sMethod == 'ADD-TASK')
{
ProcessAddResult(BaseNode);
}
else if (sMethod == 'EDIT-TASK')
{
ProcessEditResult(BaseNode);
}
else if (sMethod == 'LIST-TASKS')
{
ProcessMessageList(BaseNode, arrTableColumns);
ProcessSelectedIDs(BaseNode);
if (!gListFirstLoad) {
// need to redraw the list because the data may have been updated from the server
DataItemList_RewriteTableRows(LIST_ID, gDataListTopOfPageOrdinal - 1, arrTableColumns, "result");
}
else {
gListFirstLoad = false; // because now we've just redrawn (cleared) the list
}
var wholeRowsPP = CalculateWholeRowsPerPage(gMsgListHeight, gUnitScrollLength);
if (gTotalItems <= wholeRowsPP)
{
ScrollBar_Hide(SCROLLBAR_DIV, SCROLLBAR_TD);
}
else
{
DataItemList_SetScrollRange();
}
SetFieldFocus(LIST_ID); // so that key events fire on the selection
SetActionButtonsStatus();
getTopAppWindow().SetStatusBarValues(getTopAppWindow().VIEW_TASKS, gTotalItems);
window.status = gSelectedIM.GetSize() + " " + t_("[ME_TXT-Selected]");
// resize the toolbar buttons to make it fit into the available screen real estate
//ResizeToolbarIcons('toolbar_primary_table_left_js');
}
else if ( sMethod == 'GET-TASK' )
{
getTopAppWindow().Async_UnlockUI();
var instanceName = null;
ProcessTask(BaseNode, null);
var isRecurring = GetXMLValue(BaseNode.getElementsByTagName('ISRECURRING')[0]);
if (isRecurring != '0') {
LoadRecurrenceData(BaseNode, instanceName);
}
else {
InitRecurData(RecurrenceControlOptions['StartTimeDatePicker']);
SetRecurrenceType(RECURRENCE_TYPE_NONE);
}
gMode = MODE_EDIT;
MakeEditable(true);
UpdateButtonSetText(t_("[ME_TXT-Save]"));
}
else if ( sMethod == 'DELETE-TASK' )
{
ProcessDeleteResult(BaseNode);
}
}
return true;
}
function ClearSharesList()
{
// remove all dropdown values that are not "Mine"
$('#ddlSharedTasks option[value="Mine"] ~ option').remove();
}
function RemoveSharedListItem(URI)
{
RemoveListItemByValue('ddlSharedTasks', URI);
}
function ProcessSharesList(BaseNode) {
var ddlSharedTasks = document.getElementById('ddlSharedTasks');
if (!ddlSharedTasks) return false;
ClearSharesList();
if (BaseNode.childNodes.length > 0) {
for (var i = 0; i < BaseNode.childNodes.length; i++) {
var ShareNode = BaseNode.childNodes[i];
var sURI = GetXMLValue(ShareNode.getElementsByTagName("URI")[0]);
var sMailbox = GetXMLValue(ShareNode.getElementsByTagName("MAILBOX")[0]);
var sResourceName = GetXMLValue(ShareNode.getElementsByTagName("RESOURCE_NAME")[0]);
if (sResourceName == 'Tasks' || sResourceName == '/')
{
var sSharesURI = sURI;
if (sResourceName == '/')
{
sSharesURI += 'Tasks';
}
AddItemToList(ddlSharedTasks, sSharesURI, sMailbox);
}
}
}
}
function ProcessAddResult(BaseNode)
{
var sResult = GetXMLValue(BaseNode.getElementsByTagName("RETURNVALUE")[0]);
if ( sResult == "0" ) // Error
{
var err = t_("[ME_TXT-Taskcreationfailed]");
var errNodes = BaseNode.getElementsByTagName("ERROR_DESCRIPTION");
if (errNodes != null && errNodes.length > 0)
{
err = GetXMLValue(errNodes[0]);
}
ShowAlert(t_("[ME_TXT-Error]"), err, true);
}
else if ( sResult == "1" ) // Success
{
var sNotification = t_("[ME_TXT-TaskAddedSuccessfully]");
if (getTopAppWindow().ShowNotification)
{
getTopAppWindow().ShowNotification(sNotification);
}
HideTaskDetails(null);
RefreshList();
}
}
function ProcessEditResult(BaseNode)
{
var sResult = GetXMLValue(BaseNode.getElementsByTagName("RETURNVALUE")[0]);
if ( sResult == "0" ) // Error
{
var err = t_("[ME_TXT-Taskmodificationfailed]");
var errNodes = BaseNode.getElementsByTagName("ERROR_DESCRIPTION");
if (errNodes != null && errNodes.length > 0)
{
err = GetXMLValue(errNodes[0]);
}
ShowAlert(t_("[ME_TXT-Error]"), err, true);
}
else if ( sResult == "1" ) // Success
{
var sNotification = t_("[ME_TXT-Detailsupdatedsuccessfully.]");
if (getTopAppWindow().ShowNotification)
{
getTopAppWindow().ShowNotification(sNotification);
}
RefreshList();
}
}
function ProcessDeleteResult(BaseNode)
{
var TaskResultNodes = BaseNode.getElementsByTagName("TASK");
var failMsgs = {};
for (var i = 0; i < TaskResultNodes.length; i++)
{
var TaskResultNode = TaskResultNodes[i];
var TaskID = TaskResultNode.attributes.getNamedItem('ID').nodeValue;
var sResult = GetXMLValue(TaskResultNode.getElementsByTagName("RETURNVALUE")[0]);
if ( sResult == '1' ) // Successfully deleted task on the server side
{
RemoveTaskFromList(TaskID);
}
else // Failure to delete item on the server side
{
// Display some error message
var errDescNodes = TaskResultNode.getElementsByTagName("ERROR_DESCRIPTION");
var sErrorDesc = t_('[ME_TXT-Noerrorgiven]');
if (errDescNodes && errDescNodes.length > 0)
{
sErrorDesc = GetXMLValue(errDescNodes[0]);
}
if (failMsgs[sErrorDesc])
{
failMsgs[sErrorDesc]++;
}
else
{
failMsgs[sErrorDesc] = 1;
}
}
}
if (gDataListTopOfPageOrdinal > gTotalItems) {
gDataListTopOfPageOrdinal = 1;
}
DataItemList_RewriteTableRows(LIST_ID, gDataListTopOfPageOrdinal - 1, arrTableColumns,"result");
ResizeScrollbar(); // fix up the scrollbar bar
SetActionButtonsStatus();
if (gSelectedIM.GetSize() == 0) // we have to clear the 'Select All' check box if it was checked;
{
getTopAppWindow().Async_UnlockUI(); // only unlock once all selected items are deleted
gKeepShowingWait = false;
gSelectedIM.SetCallback(null);
SetSelectAllCheckbox(false)
SetActionButtonsStatus();
gListItemSelected = false;
gDataListTopOfPageOrdinal = 1; // set to the top
DataItemList_RewriteTableRows(LIST_ID, 0, arrTableColumns,"result");
getTopAppWindow().SetStatusBarValues(getTopAppWindow().VIEW_TASKS, gTotalItems);
window.status = t_("[ME_TXT-Done]");
}
else {
// if we're excuting a batch delete then we need to continue
// until our SelectedItems list is empty!
if (gSelectedIM.CallbackExists()) {
// we need the delay below in order for the list to be redrawn
window.setTimeout("gSelectedIM.ExecuteCallback()", 200); // execute it!
}
}
var msg = t_('[ME_TXT-Taskdeletionfailures]') + ':\n\n';
var errCount = 0;
for (var failMsg in failMsgs)
{
msg += '[' + failMsgs[failMsg] + 'x] ' + failMsg + '\n';
errCount++;
// limit the number of fail msgs to show in the msg
if (errCount > 5)
{
msg += '...';
break;
}
}
if (errCount > 0)
{
ShowAlert("", msg, true);
}
else
{
// hide the preview details
HideTaskDetails(null);
}
}
function RemoveTaskFromList(TaskID)
{
// Delete the item from our global array
var iResult = ItemsArray_DeleteFromArray(TaskID);
// Set the scrollbar range to correspond to the number of pages required for this list of messages
ScrollBar_InitializeListRange(SCROLLBAR_DIV, SCROLLBAR_TD, gTotalItems);
gItemsDeleted++;
gSelectedIM.RemoveItem(TaskID);
DataItemList_DecrementItemCount(LIST_ID, 1);
if ( gTotalItems == 0 )
{
// Get rid of the scrollbar
ScrollBar_Hide(SCROLLBAR_DIV, SCROLLBAR_TD);
}
return true;
}
function UpdateButtonSetText(Text)
{
if ( document.getElementById("btnUpdate") )
{
SetElementText(document.getElementById("btnUpdate"), Text);
}
}
function MakeEditable(Editable)
{
var bReadOnly = !Editable;
SetFieldsReadOnly(bReadOnly);
if (Editable == true)
{
document.getElementById('btnUpdate').style.visibility = "visible";
document.getElementById('btnCancel').style.visibility = "visible";
}
}
function SetFieldsReadOnly(bReadOnly)
{
arrDatePickers['startDatePicker'].setDisabled(bReadOnly);
arrDatePickers['dueDatePicker'].setDisabled(bReadOnly);
document.getElementById("txtSubject").readOnly = bReadOnly;
document.getElementById("ddlPriority").readOnly = bReadOnly;
document.getElementById("ddlStatus").readOnly = bReadOnly;
document.getElementById("ddlTaskSensitivity").readOnly = bReadOnly;
document.getElementById("txtPercentComplete").readOnly = bReadOnly;
}
function AddTask()
{
DataItemList_UnselectAllRows(LIST_ID);
SetSelectAllCheckbox(false);
SetActionButtonsStatus();
ShowTaskDetails(null);
gMode = MODE_ADD;
TaskTabControl.ActivateTab(0); // select the first tab (since it is the most likely to be used)
ClearTaskDetails(arrDatePickers['startDatePicker'], arrDatePickers['dueDatePicker'],null);
SetRecurrenceType(RECURRENCE_TYPE_NONE);
MakeEditable(true);
SelectListItemByIndex('ddlTaskSensitivity', 0)
UpdateButtonSetText(t_("[ME_TXT-Add]"));
document.getElementById('txtSubject').focus();
}
function CopySelectedMessages(ListID, Folder)
{
// Empty implementation function needed by the KeyNavigation library...we don't actually support
// copy action on Tasks.
}
function PasteMessages(Folder)
{
// Empty implementation function needed by the KeyNavigation library...we don't actually support
// copy/paste action on Tasks.
}
function GetSelectedFolderPath()
{
// Empty implementation function needed by the KeyNavigation library
return '/Tasks';
}
function ProcessDoubleClick(CurrentFolder, ItemID)
{
// Empty implementation function needed when handling list row selection (click)
}
function LoadPreviewMessage(CurrentFolder, ItemID)
{
// Empty implementation function needed when handling list row selection (click)
}
function NavigationPreview(CurrentFolder, ItemID)
{
// Empty implementation function needed when handling list row selection (click)
}
function DeleteListItem(ItemID)
{
// This function is required by the KeyNavigation library to handle the DELETE keypress event.
ProcessSelectionDelete();
return true;
}
function DeleteSelectedListItems()
{
// This function is required by the KeyNavigation library to handle the DELETE keypress event.
ProcessSelectionDelete();
return true;
}
function ViewListItem(ItemID)
{
// This function is required by the KeyNavigation library to handle the ENTER keypress event.
return false;
}
function doup(ev)
{
ev = ev || event;
var mouseY = ev.clientY ? ev.clientY : ev.offsetY;
var mouseX = ev.clientX ? ev.clientX : ev.offsetX;
getTopAppWindow().dodoup(mouseX, mouseY, true);
var oTarget = ev.target || ev.srcElement;
if (!permitTextSelection(oTarget))
{
if (ev != null)
{
if (ev.preventDefault)
{
ev.preventDefault();
}
else
{
ev.returnValue = false;
}
}
}
return permitTextSelection(oTarget);
}
function dodown(ev)
{
ev = ev || event;
var mouseY = ev.clientY ? ev.clientY : ev.offsetY;
var mouseX = ev.clientX ? ev.clientX : ev.offsetX;
var oTarget = ev.target || ev.srcElement;
var StaticVScrollerBar = document.getElementById('StaticVScrollerBar');
var StaticHScrollerBar = document.getElementById('StaticHScrollerBar');
var vertHorz = 0;
if (IsElementAAncestorOfElementB(StaticVScrollerBar, oTarget))
{
vertHorz = 1;
}
else if (IsElementAAncestorOfElementB(StaticHScrollerBar, oTarget))
{
vertHorz = 2;
}
getTopAppWindow().dododown(vertHorz, mouseX, mouseY, true);
return permitTextSelection(oTarget);
}
function domove(ev)
{
ev = ev || event;
var mouseY = ev.clientY ? ev.clientY : ev.offsetY;
var mouseX = ev.clientX ? ev.clientX : ev.offsetX;
getTopAppWindow().dodomove(mouseX, mouseY, true);
return true;
}
function ListShares(URI) {
var sOptions = "";
if (URI && URI.length > 0) {
sOptions = "URI=" + URI;
}
if (getTopAppWindow().g_opt['SharingEnabled']) {
ServerRequest('LIST-CONNECTIONS', sOptions, false);
}
}
function SelectShare(URI)
{
SelectListItemByValue('ddlSharedTasks', URI);
gSourceURI = URI;
InitLoadList();
}
function IsDefaultTaskFolder(sRelativeFolderPath) {
return (!sRelativeFolderPath) || (sRelativeFolderPath == '') || (sRelativeFolderPath == 'Mine') || (sRelativeFolderPath == '/Tasks');
}
function SelectMyTasks(sRelativeFolderPath) {
if (sRelativeFolderPath)
{
gSourceURI = sRelativeFolderPath;
}
if (IsDefaultTaskFolder(sRelativeFolderPath))
{
SelectListItemByValue('ddlSharedTasks', 'Mine');
}
else
{
SelectListItemByValue('ddlSharedTasks', sRelativeFolderPath);
}
InitLoadList();
}
var TOOLBAR_HEIGHT = 28;
function ResizeToolbarIcons(ToolbarCellID)
{
var tdToobar = document.getElementById(ToolbarCellID);
if (tdToobar && (tdToobar.style.display == 'none'))
{
return 0;
}
var bResize = false;
if (GetBrowserScrollMode() == 2)
{
// resize the toolbar buttons for iPhone/iPad
bResize = true;
}
else
{
// show all .bttn_toolbar_primary_text, reset padding on .bttn_toolbar_primary_left
$('#' + ToolbarCellID + ' .bttn_toolbar_primary_text').css('display', '');
$('#' + ToolbarCellID + ' .bttn_toolbar_primary_divider').css('display', '');
$('#' + ToolbarCellID + ' .bttn_toolbar_primary_left').css('padding-left', '3px');
// when scrollHeight of the td is over 21px it means buttons have overflowed
var toolbar_scrollheight = $('#' + ToolbarCellID + ' .toolbar_primary_bttns_td_shell').attr('scrollHeight');
if (toolbar_scrollheight > TOOLBAR_HEIGHT)
{
bResize = true;
}
}
if (bResize)
{
// hide all .bttn_toolbar_primary_text, reduce padding on .bttn_toolbar_primary_left
$('#' + ToolbarCellID + ' .bttn_toolbar_primary_text').css('display', 'none');
$('#' + ToolbarCellID + ' .bttn_toolbar_primary_divider').css('display', 'none');
$('#' + ToolbarCellID + ' .bttn_toolbar_primary_left').css('padding-left', '1px');
return 1;
}
return 0;
}
function PageLoad()
{
DataItemList_Create(document.getElementById('msgList_shell_js'), "TaskList");
InitLayout();
// Now we disable the select options that have the disabled property for IE6 & IE7
OldIEDisabledOptionsFix();
gSelectedIM = new SelectedItemsManager();
InitCols(GetSelectedView());
var instanceName = null;
BindDatePicker(getItemInstanceName('startDatePickerLocation', instanceName), getItemInstanceName('startDatePicker', instanceName));
BindDatePicker(getItemInstanceName('dueDatePickerLocation', instanceName), getItemInstanceName('dueDatePicker', instanceName));
initDetails();
SetActionButtonsStatus();
ClearTaskDetails(arrDatePickers['startDatePicker'], arrDatePickers['dueDatePicker'],null);
arrDatePickers['startDatePicker'].enableSelectNoneButton();
arrDatePickers['dueDatePicker'].enableSelectNoneButton();
// add popup rows
if (gAccessMode == ACCESS_MODE_FULL)
{
PopUp_AddItem('menuItemsdiv', '0', 'Delete', t_('[ME_TXT-Delete]'), 'dropDown_icon_delete');
}
gTasksFilter = GetSelectedFilter();
// N.B. The task details preview is NO LONGER at the bottom (is now on side)
// hence we don't need to get the 'WebMail-TasksListHeight' option setting.
//var tasksListHeight = getTopAppWindow().GetOption('WebMail-TasksListHeight');
//if (tasksListHeight > 0) gMsgListHeight = tasksListHeight;
//DataItemList_Init(LIST_ID);
var taw = getTopAppWindow();
var sURI = '';
if (taw.getParameterByName)
{
sURI = taw.getParameterByName('URI', window.location.href);
}
if (getTopAppWindow().g_opt['SharingEnabled'])
{
ListShares();
if (IsDefaultTaskFolder(sURI))
{
SelectListItemByValue('ddlSharedTasks', 'Mine');
}
else
{
SelectListItemByValue('ddlSharedTasks', sURI);
gSourceURI = sURI;
}
}
else
{
$('#ddlSharedTasks').hide();
}
// Get the tasks...
InitLoadList();
if (sID != '')
{
// we want to select the item being asked for
MsgListRowSelect(sID, false, false);
}
ConfigureMouseWheelEvent(1);
ConfigureKeyEvents(1);
//disableSelection(document.body);
addEvent(window, 'resize', BrowserResize, true);
getTopAppWindow().HidePageLoad();
$('.level0_shell').css({ visibility: 'visible' });
}
function SetView(View)
{
InitCols(View);
InitLoadList();
}
function SetFilter(Filter)
{
gTasksFilter = Filter;
InitLoadList();
}
function InitCols(View)
{
gNumDataColumns = SetColumnStyles(View, arrTableColumns);
DataItemList_RenderColumnHeaders(LIST_ID, gNumDataColumns, arrTableColumns);
}
function GetListData(ExtraData) {
if (!ExtraData || (ExtraData == undefined))
ExtraData = "";
var page = (gSecondPageNum)? gSecondPageNum: 1;
var sData = "Folder=\\Tasks&IPP=" + gDataPageSize + "&Page=" + page + "&SortField=" + gSortColumn + "&SortOrder=" + gSortOrder + "&Filter=" + gTasksFilter + ExtraData;
getTopAppWindow().Async_LockUI(t_("[ME_TXT-LoadingTasks]") + "...");
window.setTimeout(function()
{
var ajaxResult = ServerRequest('LIST-TASKS', sData, false);
if (!ajaxResult) getTopAppWindow().HandleAjaxError();
}, 200);
}
function InitLoadList()
{
// Loads the list for the first time
gListFirstLoad = true;
HideTaskDetails(null);
SetSelectAllCheckbox(false);
GetListData();
var shareDropDownURI = gSourceURI;
if (!shareDropDownURI || shareDropDownURI == '')
{
shareDropDownURI = 'Mine';
}
// TODO we need to implement the shares list for Shared Tasks
//getTopAppWindow().SetSelectedTasksShare(shareDropDownURI);
// NB. we call the following lines to make sure the scrollbar is drawn (for cases where it
// wasn't drawn previously; i.e. when the list grows beyond initial size and a scrollbar
// is required)
ScrollBar_InitializeListRange(SCROLLBAR_DIV, SCROLLBAR_TD, gTotalItems);
ScrollBar_SetUnitScrollTop(SCROLLBAR_DIV, SCROLLBAR_TD, 0, gUnitScrollLength);
}
function ShareChanged() {
var ddlSharedTasks = document.getElementById('ddlSharedTasks');
if (!ddlSharedTasks) return false;
var sURI = ddlSharedTasks.value;
if (sURI != "Mine") {
if (!getTopAppWindow().HasAccessToShare(sURI)) {
ShowAlert(t_("[ME_TXT-Error]"), t_("[ME_TXT-Youarenotpermittedtoaccessthisshare!Tryreconnectingtotheshare.]"));
}
else {
gSourceURI = sURI;
}
}
else gSourceURI = "";
InitLoadList();
}
function SaveDetails()
{
if (ValidateTaskData(arrDatePickers['startDatePicker'], arrDatePickers['dueDatePicker']))
{
var sData = GetTaskDataString(gMode, arrDatePickers['startDatePicker'], arrDatePickers['dueDatePicker'], gTaskID);
// Recurrence details...
sData += '&' + GetRecurrenceDataParamList();
if ( gMode == MODE_ADD )
{
ServerRequest('ADD-TASK', sData, false);
}
else if ( gMode == MODE_EDIT )
{
ServerRequest('EDIT-TASK', sData, false);
}
}
}
function Cancel()
{
HideTaskDetails(null);
}
function DeleteNextSelectedBatch(MaxItems) {
// we need to build a seperate list for wach of the object type supported
var itemIDs = "";
var items = gSelectedIM.GetItems();
var sb = new StringBuffer();
var count = 0;
for (var id in items) {
if (count > 0) {
sb.append(",");
}
sb.append(id);
count++;
if (count == MaxItems)
{
break; // get out; we've done enough damage
}
}
itemIDs = sb.toString();
window.setTimeout(function() { ServerRequest('DELETE-TASK', 'ID=' + itemIDs, false); }, 200);
}
function ProcessDelete()
{
var numSelected = gSelectedIM.GetSize();
if (numSelected > 0) {
if (numSelected > MAX_DELETE_ITEMS) {
// we need to split up the list into batches and perform deletes on those batches
gSelectedIM.SetCallback(function() { DeleteNextSelectedBatch(MAX_DELETE_ITEMS) });
getTopAppWindow().Async_LockUI(t_("[ME_TXT-Pleasewaitwhiletheitemsaredeleted]") + "...");
gKeepShowingWait = true;
window.setTimeout(function() { DeleteNextSelectedBatch(MAX_DELETE_ITEMS); }, 200); // delete the first batch
}
else {
var itemIDs = "";
var items = gSelectedIM.GetItems();
var sb = new StringBuffer();
var count = 0;
for (var id in items) {
if (count > 0) {
sb.append(",");
}
sb.append(id);
count++;
}
itemIDs = sb.toString();
// number selected is less than MAX_DELETE_ITEMS
getTopAppWindow().Async_LockUI(t_("[ME_TXT-Pleasewaitwhiletheitemsaredeleted]") + "...");
window.setTimeout(function() { ServerRequest('DELETE-TASK', 'ID=' + itemIDs, false); }, 200);
}
}
else { // none selected in the list
// we'll just the delete the item acted on by the right-click popup menu
getTopAppWindow().Async_LockUI(t_("[ME_TXT-Pleasewaitwhiletheitemsaredeleted]") + "...");
window.setTimeout(function() { ServerRequest('DELETE-TASK', 'ID=' + gPopupItemID, false); }, 200);
return true;
}
}
function ProcessSelectionDelete()
{
if (gAccessMode == ACCESS_MODE_FULL)
{
oConfirmation_Task.Confirm(t_("[ME_TXT-ConfirmDelete]"), t_("[ME_TXT-Deletetheselected(highlighted)tasks?]"), function() { ProcessDelete(); }, true, function() { SetFieldFocus(LIST_ID); });
}
else
{
ShowAlert(t_("[ME_TXT-Error]"), t_("[ME_TXT-Youarenotpermittedtodeletethistask]"), true);
}
}
function IsPopupMenuActive(oSourceElement)
{
return IsElementAAncestorOfElementB(document.getElementById(LIST_ID), oSourceElement);
}
function IsPopupMenuCommandActive(MessageID, i)
{
return MessageID.toUpperCase() != 'TREMPTY';
}
function ProcessPopUp(Action)
{
gSelectedIM.AddItem(gPopupItemID);
switch (Action)
{
case 'Delete':
ProcessSelectionDelete();
break;
default:
break;
}
PopUp_HideMenu('menudiv');
}
function SetActionButtonsStatus()
{
if (gAccessMode == ACCESS_MODE_READ) // read only
{
DisableToolbarButton('bttn_newTask');
DisableToolbarButton('bttn_delete');
}
else {
EnableToolbarButton('bttn_newTask', function() { AddTask(); });
var selectedCount = gSelectedIM.GetNumSelectedItems();
if (selectedCount > 0)
{
EnableToolbarButton('bttn_delete', function() { ProcessSelectionDelete(); });
}
else
{
DisableToolbarButton('bttn_delete');
}
}
}
function MsgListRowSelect(MessageID, ctrlKeyDown, shiftKeyDown)
{
if ((MessageID == undefined) || (MessageID.length <= 0))
{
return false;
}
var iSelectedIndex = -1;
if ( ctrlKeyDown ) // Control key is down
{
if ( document.getElementById(MessageID).className == LIST_ROW_STYLE_SELECTED )
{
// Item already previously selected; hence we unselect it
DataItemList_UnselectRow(LIST_ID, MessageID);
}
else
{
DataItemList_SelectRow(LIST_ID, MessageID);
}
HideTaskDetails(null);
}
else if ( shiftKeyDown ) // Shift key is down
{
iSelectedIndex = DataItemList_GetRowIndexByID(LIST_ID, MessageID);
DataItemList_UnselectAllRows(LIST_ID);
//if (iSelectedIndex < 0) iSelectedIndex = 0;
//if (gFirstSelectedIndex < 0) gFirstSelectedIndex = 0;
if ( iSelectedIndex > gFirstSelectedIndex )
{
DataItemList_SelectRows(LIST_ID, gFirstSelectedIndex, iSelectedIndex);
}
else
{
DataItemList_SelectRows(LIST_ID, iSelectedIndex, gFirstSelectedIndex);
}
HideTaskDetails(null);
}
else {
// Unselect all the tasks in the list
DataItemList_UnselectAllRows(LIST_ID);
// Now just select the 1 specified
DataItemList_SelectRow(LIST_ID, MessageID);
iSelectedIndex = DataItemList_GetRowIndexByID(LIST_ID, MessageID);
}
if (gBrowserType == BROWSER_TYPE_SAFARI && !shiftKeyDown && !ctrlKeyDown) {
iSelectedIndex = DataItemList_GetRowIndexByID(LIST_ID, MessageID);
gFirstSelectedIndex = iSelectedIndex;
}
// get task details
clearTimeout(gGetTaskDelayTimeout);
if (!ctrlKeyDown && !shiftKeyDown) {
gCurMessageID = MessageID;
if (gAllowTaskGet) {
getTopAppWindow().Async_LockUI(t_("[ME_TXT-Loading]") + "...");
window.setTimeout(function() { ServerRequest('GET-TASK', 'ID=' + MessageID, false); }, 100);
gGetTaskDelayTimeout = window.setTimeout(function() {
gAllowTaskGet = true;
}, 1000);
}
else {
gGetTaskDelayTimeout = window.setTimeout(function() {
getTopAppWindow().Async_LockUI(t_("[ME_TXT-Loading]") + "...");
window.setTimeout(function() { ServerRequest('GET-TASK', 'ID=' + MessageID, false); }, 100);
gAllowTaskGet = true;
}, 1000);
}
}
// disallow further task gets for a time
gAllowTaskGet = false;
gItemsArrayCurrIndex = ItemsArray_GetCurrIndex(MessageID);
SetActionButtonsStatus();
if (gSelectedIM.GetSize() == gTotalItems) {
SetSelectAllCheckbox(true);
}
else {
SetSelectAllCheckbox(false);
}
window.status = gSelectedIM.GetSize() + " " + t_("[ME_TXT-Selected]");
gListItemSelected = true;
}
function ResizeScrollbar() {
ScrollBar_InitializeListRange(SCROLLBAR_DIV, SCROLLBAR_TD, gTotalItems); // show the scrollbar if needed
//ScrollBar_UpdateScrollState(SCROLLBAR_DIV, SCROLLBAR_TD, LIST_CONTAINER, gTotalItems, HEADER_ROW_HEIGHT); // set scrollbar height
}
function LogOff()
{
getTopAppWindow().SetOption('WebMail-TasksListHeight', gMsgListHeight, false);
}
-->
</script>
<!--[if lte IE 7]>
<style type="text/css">
.bttn_toolbar_primary_left {float:left;}
.bttn_toolbar_primary_right {float:left;}
.bttn_dropDown_right {float:left;}
.bttn_right {float:left;}
#toolbar_primary_bttn_filterTasks_js {width:130px;}
#toolbar_primary_bttn_viewOptions_js {width:120px;position:relative;}
#dropDown_filter {right:63px;}
.toolbar_primary_table {position:relative;z-index:10000;}
.dataTable_table thead td {margin:0;padding-top:3px;padding-bottom:3px;}
.dataTable_table {margin:0;padding-top:0px;padding-bottom:0px;}
.dataTable_listTable {margin:0;padding-top:0px;padding-bottom:0px;}
.dataTable_listTable_bordered {margin:0;padding-top:0px;padding-bottom:0px;}
.dataTable_listTable input {margin:0;padding:0;height:14px;}
.dataTable_listTable_bordered input {margin:0;padding-top:0px;padding-bottom:0px;height:14px;}
.dataTable_tickbox {width:16px !important;text-align:left !important;}
</style>
<![endif]-->
</head>
<body onload="PageLoad();" style="background-color:Transparent;">
<div class="level0_shell pane-iframe tasks" style="visibility:hidden;"> <!-- level0_shell -->
<div class="ui-layout-center layout-primary" style="overflow:hidden;"> <!-- West Pane -->
<table class="body_shell_table" border="0" cellspacing="0" cellpadding="0">
<tr>
<td class="bodyCol_contactsList">
<div class="toolbar_primary" id="toolbar_primary_js" onselectstart="return false;">
<table class="toolbar_primary_table" border="0" cellspacing="0" cellpadding="0">
<tr>
<td id="toolbar_primary_table_left_js" class="toolbar_primary_table_left">
<div class="toolbar_primary_bttns_td_shell">
<!-- Bttn Email Selected -->
<div id="bttn_newTask" title="<%=uscToken.GetText("[ME_TXT-NewTask]")%>" class="bttn_toolbar_primary_shell" onselectstart="return false;" onclick="AddTask()">
<div class="bttn_toolbar_primary_left">
<div class="toolbar_icon_newTask"></div>
<div class="bttn_toolbar_primary_text"><%=uscToken.GetText("[ME_TXT-NewTask]")%></div>
</div>
<div class="bttn_toolbar_primary_right"></div>
</div>
<div class="bttn_toolbar_primary_divider"></div>
<!-- Bttn Delete Selected -->
<div id="bttn_delete" title="<%=uscToken.GetText("[ME_TXT-Delete]")%>" class="bttn_toolbar_primary_shell" onselectstart="return false;" onclick="ProcessSelectionDelete()">
<div class="bttn_toolbar_primary_left">
<div class="toolbar_icon_delete"></div>
<div class="bttn_toolbar_primary_text"><%=uscToken.GetText("[ME_TXT-Delete]")%></div>
</div>
<div class="bttn_toolbar_primary_right"></div>
</div>
<div class="bttn_toolbar_primary_divider"></div>
</div><!-- toolbar_primary_bttns_td_shell -->
</td>
<td class="toolbar_primary_table_bttn single">
<!-- Bttn Refresh -->
<div class="bttn_toolbar_primary_shell_right refresh_right" onselectstart="return false;" onclick="RefreshList()" title="<%=uscToken.GetText("[ME_TXT-RefreshList]")%>">
<div class="bttn_toolbar_primary_left">
<div class="toolbar_icon_refresh"></div>
</div>
<div class="bttn_toolbar_primary_right"></div>
</div>
</td>
<td class="toolbar_primary_table_left_bttn" id="toolbar_primary_bttn_filterTasks_js">
<!-- Filter Tasks -->
<div class="bttn_dropDown_float_right" id="bttn_dropDown_filterTasks" onclick="dropDown_toggleDisplay('dropDown_filt')" <%= MailEnable.Clients.WebMail.Mondo.Request.CheckForRTL(Session("lang"))%>>
<div class="bttn_dropDown_left" onselectstart="return false;"><%=uscToken.GetText("[ME_TXT-FilterTasks]")%></div>
<div class="bttn_dropDown_right"></div>
</div>
<div class="bttn_toolbar_primary_divider" style="float:right;"></div>
<div class="clear_div"></div>
<!-- Drop down menu: Filter Tasks -->
<div class="dropDown_shell_right checklist" id="dropDown_filt" onmouseover="dropDown_over('dropDown_filt')" onmouseout="dropDown_out(event, 'dropDown_filt')" <%= MailEnable.Clients.WebMail.Mondo.Request.CheckForRTL(Session("lang"))%>>
<div id="dropDown_filter">
<ul>
<div class="dropDown_item" onclick="dropDown_ToggleSelection(this, 'dropDown_filter');SetFilter(TASK_FILTER_ALL);dropDown_hide('dropDown_filt');"><li class="dropDown_icon_tick" id="li_all"><%=uscToken.GetText("[ME_TXT-AllTasks]")%></li></div>
<div class="dropDown_item" onclick="dropDown_ToggleSelection(this, 'dropDown_filter');SetFilter(TASK_FILTER_ACTIVE);dropDown_hide('dropDown_filt');"><li class="dropDown_icon_blank" id="li_active"><%=uscToken.GetText("[ME_TXT-ActiveTasks]")%></li></div>
<div class="dropDown_item" onclick="dropDown_ToggleSelection(this, 'dropDown_filter');SetFilter(TASK_FILTER_OVERDUE);dropDown_hide('dropDown_filt');"><li class="dropDown_icon_blank" id="li_overdue"><%=uscToken.GetText("[ME_TXT-OverdueTasks]")%></li></div>
<div class="dropDown_item" onclick="dropDown_ToggleSelection(this, 'dropDown_filter');SetFilter(TASK_FILTER_COMPLETED);dropDown_hide('dropDown_filt');"><li class="dropDown_icon_blank" id="li_completed"><%=uscToken.GetText("[ME_TXT-CompletedTasks]")%></li></div>
</ul>
</div>
<div class="dropDown_shell_pointer"></div>
</div>
</td>
<td class="toolbar_primary_table_left_bttn" id="toolbar_primary_bttn_viewOptions_js">
<!-- View Options -->
<div class="bttn_dropDown_float_right" id="bttn_dropDown_viewOptions" onselectstart="return false;" onclick="dropDown_toggleDisplay('dropDown_viewOpt')" <%= MailEnable.Clients.WebMail.Mondo.Request.CheckForRTL(Session("lang"))%>>
<div class="bttn_dropDown_left"><%=uscToken.GetText("[ME_TXT-View]")%></div>
<div class="bttn_dropDown_right"></div>
</div>
<div class="bttn_toolbar_primary_divider" style="float:right;"></div>
<div class="clear_div"></div>
<!-- Drop down menu: View Options -->
<div class="dropDown_shell_right checklist" id="dropDown_viewOpt" onmouseover="dropDown_over('dropDown_viewOpt')" onmouseout="dropDown_out(event, 'dropDown_viewOpt')" <%= MailEnable.Clients.WebMail.Mondo.Request.CheckForRTL(Session("lang"))%>>
<div id="dropDown_viewOptions">
<ul>
<div class="dropDown_item" onclick="dropDown_ToggleSelection(this, 'dropDown_viewOptions');SetView(TASK_VIEW_SIMPLE);dropDown_hide('dropDown_viewOpt');"><li class="dropDown_icon_blank" id="li_simple"><%=uscToken.GetText("[ME_TXT-SimpleList]")%></li></div>
<div class="dropDown_item" onclick="dropDown_ToggleSelection(this, 'dropDown_viewOptions');SetView(TASK_VIEW_DETAILED);dropDown_hide('dropDown_viewOpt');"><li class="dropDown_icon_tick" id="li_detailed"><%=uscToken.GetText("[ME_TXT-DetailedList]")%></li></div>
</ul>
</div>
<div class="dropDown_shell_pointer"></div>
</div>
</td>
</tr>
</table><!--toolbar_primary_table -->
</div><!-- toolbar_primary -->
<div id="msgList_shell_js" class="dataTable_shell">
</div>
<div class="contacts_foot_shell" id="tasks_foot_shell_js">
<table class="contacts_foot_table" border="0" cellspacing="0" cellpadding="0">
<tr>
<td>
<div class="contacts_foot_form_div">
<select id="ddlSharedTasks" onchange="if (!DisabledOptionSelected(this)) ShareChanged()">
<option disabled><%=uscToken.GetText("[ME_TXT-SharedTasks]")%>...</option>
<option disabled>- - - - - - - - - - - - - - - - - - -</option>
<option value="Mine"><%=uscToken.GetText("[ME_TXT-MyTasks]")%></option>
</select>
</div>
</td>
</tr>
</table>
</div><!-- contacts_foot_shell -->
</td>
</tr>
</table>
</div> <!-- West Pane -->
<div class="ui-layout-east layout-primary"> <!-- East Pane -->
<table class="body_shell_table" border="0" cellspacing="0" cellpadding="0">
<tr>
<td class="bodyCol_contactsDetails">
<div class="contactsDetails_shell" id="contactsDetails_shell_js">
<div class="contactsDetails_shell_inner"> <!-- -->
<div id="divTaskDetails" class="contactsDetails_content" style="display:none;">
<uc2:TaskDetails id="TaskDetails" runat="server"></uc2:TaskDetails>
<!-- OK / Cancel Bttns -->
<div class="optionsPanel_foot_bttns" onselectstart="return false;">
<div class="bttn_float_right" onclick="HideTaskDetails(null)" onselectstart="return false;">
<div class="bttn_left"><div id="btnCancel" class="compose_bttn_okCancel"><%=uscToken.GetText("[ME_TXT-Cancel]")%></div></div>
<div class="bttn_right"></div>
</div>
<div class="bttn_float_right" onclick="SaveDetails()" onselectstart="return false;">
<div class="bttn_left"><div id="btnUpdate" class="compose_bttn_okCancel"><%=uscToken.GetText("[ME_TXT-Save]")%></div></div>
<div class="bttn_right"></div>
</div>
<div class="clear_div"></div>
</div>
</div><!-- optionsPanel_shell -->
</div><!-- contactsDetails_shell_inner -->
</div><!-- contactsDetails_shell -->
</td><!-- bodyCol_contactsDetails -->
</tr>
</table>
</div> <!-- East Pane -->
<!-- Message List - PopUp List Control -->
<div id="menudiv" style="position:absolute;display:none;top:0px;left:0px;z-index:10100;" onmouseover="PopUp_MenuSetState(2);" onmouseout="PopUp_MenuOutOfScope(event, 'menudiv');">
<table>
<tr>
<td>
<table id="menuItemsdiv" class="rightClickMenu_shell" border="0" cellpadding="0" cellspacing="0" onmouseover="PopUp_MenuSetState(1);">
<tbody>
<tr>
<td class="rightClickMenu_shell_topleft"><div class="rightClickMenu_shell_topleft_div"></div></td>
<td class="rightClickMenu_shell_top"></td>
<td class="rightClickMenu_shell_topRight"></td>
</tr>
<tr>
<td class="rightClickMenu_shell_left"></td>
<td class="rightClickMenu_shell_mid">
<div class="rightClickMenu_body_shell">
<ul>
<!-- Popup row items get added here -->
</ul>
</div>
</td>
<td class="rightClickMenu_shell_right"></td>
</tr>
<tr>
<td class="rightClickMenu_shell_botLeft"><div class="rightClickMenu_shell_botLeft_div"></div></td>
<td class="rightClickMenu_shell_bot"></td>
<td class="rightClickMenu_shell_botRight"></td>
</tr>
</tbody>
</table>
</td>
</tr>
</table>
</div>
</div> <!-- level0_shell -->
<script type="text/javascript">
<!--
oConfirmation_Task = new MessageDialog("ConfirmDialog");
oAlertDialog = new MessageDialog("AlertDialog");
-->
</script>
</body>
</html>