| 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 : /Program Files (x86)/Mail Enable/Bin/NETWebMail/Mondo/lang/sys/Forms/NOTE/ |
Upload File : |
<%@ Page Language="vb" AutoEventWireup="false" Inherits="MailEnable.Clients.WebMail.Mondo.ListNotes" CodeBehind="list.aspx.vb" %>
<%@ Register TagPrefix="uc1" TagName="uscStyleHeader" Src="../../../Controls/uscStyleHeader.ascx" %>
<%@ Register TagPrefix="uc1" TagName="ScriptsInclude" Src="../../../Controls/ScriptsInclude.ascx" %>
<%@ Register TagPrefix="uc3" TagName="NoteDetails" Src="NoteDetails.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">
<script type="text/javascript" src="LIBNoteList.js"></script>
<script type="text/javascript">
<!--
getTopAppWindow().ShowPageLoad();
var LIST_ID = 'MENoteList';
var LIST_CONTAINER = 'msgList_shell_js';
var LIST_CONTAINER_INNER = 'msgList_container_js';
var BTTN_PADDING = 3;
var mItemType = 'ITEM';
var mDefaultFolder = '\\Notes'
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 NOTE_VIEW_SIMPLE = 0;
var NOTE_VIEW_DETAILED = 1;
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_Note = 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 = 'RECEIVED';
var gNotesFilter = 0;
var gMode = '';
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 gNoteID = '';
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 : 450;
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: "layoutNotes"
, 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: {
// Note 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: {
// Note 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 Notes 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;
var paneiframe_padding = 0;
toolbar_primary_height = document.getElementById("toolbar_primary_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 - 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();
var paneiframe_padding = 0;
if ($('.pane-iframe').css('padding-top')) {
paneiframe_padding = $('.pane-iframe').css('padding-top').replace('px', '');
}
if (html_height > 0)
{
$('body div.level0_shell').height(html_height - paneiframe_padding);
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 (Note List)
SetListHeight();
// set the height of the east panel (Note Details)
SetDetailsPaneHeight();
}
function ShowAlert(Title, Message, IsWarning)
{
if (oAlertDialog != null) {
oAlertDialog.Alert(Title, Message, IsWarning);
}
else {
alert(Message);
}
}
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)
{
HideNoteDetails();
}
// 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...
HideNoteDetails(); // 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 NOTE_VIEW_SIMPLE;
}
}
}
}
return NOTE_VIEW_DETAILED; // default it
}
function DataItemList_SelectAllCheckboxCallback(UID)
{
var oChkSelectAll = document.getElementById(UID);
if (oChkSelectAll) {
if (oChkSelectAll.checked)
{
HideNoteDetails();
SelectAllItemIDs();
}
else
{
gExtData = "";
DataItemList_UnselectAllRows(LIST_ID);
SetActionButtonsStatus();
window.status = gSelectedIM.GetSize() + " " + t_("[ME_TXT-Selected]");
}
}
}
function SetColumnStyles(View, arrTableColumns)
{
var NumColumns = 0;
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(1, arrTableColumns, 'Subject', 'Subject', 'left', 'dataTable_name', 'dataTable_name', t_('[ME_TXT-Subject]'), t_('[ME_TXT-SortBySubject]'), 'Label');
DataItemList_AddTableColumn(2, arrTableColumns, 'RECEIVED', 'RecvDate', 'left', 'dataTable_date', 'dataTable_date', t_('[ME_TXT-Date]'), t_('[ME_TXT-SortByReceivedDate]'), 'Label');
DataItemList_AddTableColumn(3, arrTableColumns, 'SIZE', 'Size', 'left', 'dataTable_size_right', 'dataTable_size_right', t_('[ME_TXT-Size]'), t_('[ME_TXT-SortBySize]'), 'Label');
NumColumns = 4;
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 == mItemType) || (sSchema == mItemType + 'S'))
{
if (!gKeepShowingWait)
{
getTopAppWindow().Async_UnlockUI();
}
if (sMethod == 'ADD-' + mItemType)
{
ProcessAddResult(BaseNode);
}
else if (sMethod == 'EDIT-' + mItemType)
{
ProcessEditResult(BaseNode);
}
else if (sMethod == 'LIST-' + mItemType + 'S')
{
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_NOTES, 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-' + mItemType)
{
getTopAppWindow().Async_UnlockUI();
ProcessNote(BaseNode);
gMode = MODE_EDIT;
MakeEditable(true);
UpdateButtonSetText(t_("[ME_TXT-Save]"));
}
else if (sMethod == 'DELETE-' + mItemType)
{
ProcessDeleteResult(BaseNode);
}
}
return true;
}
function ClearSharesList()
{
// remove all dropdown values that are not "Mine"
$('#ddlSharedNotes option[value="Mine"] ~ option').remove();
}
function RemoveSharedListItem(URI)
{
RemoveListItemByValue('ddlSharedNotes', URI);
}
function ProcessSharesList(BaseNode) {
var ddlSharedNotes = document.getElementById('ddlSharedNotes');
if (!ddlSharedNotes) 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 == 'Notes' || sResourceName == '/')
{
var sSharesURI = sURI;
if (sResourceName == '/')
{
sSharesURI += 'Notes';
}
AddItemToList(ddlSharedNotes, sSharesURI, sMailbox);
}
}
}
}
function ProcessAddResult(BaseNode)
{
var sResult = GetXMLValue(BaseNode.getElementsByTagName("RETURNVALUE")[0]);
if ( sResult == "0" ) // Error
{
var err = t_("[ME_TXT-Notecreationfailed]");
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-NoteAddedSuccessfully]");
if (getTopAppWindow().ShowNotification)
{
getTopAppWindow().ShowNotification(sNotification);
}
HideNoteDetails();
RefreshList();
}
}
function ProcessEditResult(BaseNode)
{
var sResult = GetXMLValue(BaseNode.getElementsByTagName("RETURNVALUE")[0]);
if ( sResult == "0" ) // Error
{
var err = t_("[ME_TXT-Notemodificationfailed]");
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 NoteResultNodes = BaseNode.getElementsByTagName(mItemType);
var failMsgs = {};
for (var i = 0; i < NoteResultNodes.length; i++)
{
var NoteResultNode = NoteResultNodes[i];
var NoteID = NoteResultNode.attributes.getNamedItem('ID').nodeValue;
var sResult = GetXMLValue(NoteResultNode.getElementsByTagName("RETURNVALUE")[0]);
if ( sResult == '1' ) // Successfully deleted task on the server side
{
RemoveNoteFromList(NoteID);
}
else // Failure to delete item on the server side
{
// Display some error message
var errDescNodes = NoteResultNode.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_NOTES, 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-Notedeletionfailures]') + ':\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
HideNoteDetails();
}
}
function RemoveNoteFromList(NoteID)
{
// Delete the item from our global array
var iResult = ItemsArray_DeleteFromArray(NoteID);
// 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(NoteID);
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 AddNote()
{
DataItemList_UnselectAllRows(LIST_ID);
SetSelectAllCheckbox(false);
SetActionButtonsStatus();
ShowNoteDetails();
gMode = MODE_ADD;
ClearNoteDetails();
MakeEditable(true);
UpdateButtonSetText(t_("[ME_TXT-Add]"));
document.getElementById('txtNoteSubject').focus();
}
function CopySelectedMessages(ListID, Folder)
{
// Empty implementation function needed by the KeyNavigation library...we don't actually support
// copy action on Notes.
}
function PasteMessages(Folder)
{
// Empty implementation function needed by the KeyNavigation library...we don't actually support
// copy/paste action on Notes.
}
function GetSelectedFolderPath()
{
// Empty implementation function needed by the KeyNavigation library
return '/Notes';
}
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('ddlSharedNotes', URI);
gSourceURI = URI;
InitLoadList();
}
function SelectMyNotes()
{
if (document.getElementById('ddlSharedNotes').value != 'Mine')
{
SelectListItemByValue('ddlSharedNotes', 'Mine');
gSourceURI = '';
InitLoadList();
}
}
function PageLoad()
{
gSelectedIM = new SelectedItemsManager();
DataItemList_Create(document.getElementById('msgList_shell_js'), "NoteList");
InitLayout();
// Now we disable the select options that have the disabled property for IE6 & IE7
OldIEDisabledOptionsFix();
InitCols(GetSelectedView());
SetActionButtonsStatus();
// add popup rows
if (gAccessMode == ACCESS_MODE_FULL)
{
PopUp_AddItem('menuItemsdiv', '0', 'Delete', t_('[ME_TXT-Delete]'), 'dropDown_icon_delete');
}
gNotesFilter = '';
// 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-NotesListHeight' option setting.
//var tasksListHeight = getTopAppWindow().GetOption('WebMail-NotesListHeight');
//if (tasksListHeight > 0) gMsgListHeight = tasksListHeight;
//DataItemList_Init(LIST_ID);
if (getTopAppWindow().g_opt['SharingEnabled'])
{
SelectListItemByValue('ddlSharedNotes', 'Mine');
ListShares();
}
else
{
$('#ddlSharedNotes').hide();
}
// Get the Items...
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);
$('.level0_shell').css({ visibility: 'visible' });
getTopAppWindow().HidePageLoad();
}
function SetView(View)
{
InitCols(View);
InitLoadList();
}
function SetFilter(Filter)
{
gNotesFilter = 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=" + mDefaultFolder + "&IPP=" + gDataPageSize + "&Page=" + page + "&SortField=" + gSortColumn + "&SortOrder=" + gSortOrder + "&Filter=" + gNotesFilter + ExtraData;
getTopAppWindow().Async_LockUI(t_("[ME_TXT-Loading]") + "...");
window.setTimeout(function()
{
var ajaxResult = ServerRequest('LIST-' + mItemType + 'S', sData, false);
if (!ajaxResult) getTopAppWindow().HandleAjaxError();
}, 200);
}
function InitLoadList()
{
// Loads the list for the first time
gListFirstLoad = true;
HideNoteDetails();
SetSelectAllCheckbox(false);
GetListData();
var shareDropDownURI = gSourceURI;
if (!shareDropDownURI || shareDropDownURI == '')
{
shareDropDownURI = 'Mine';
}
// TODO we need to implement the shares list for Shared Notes
//getTopAppWindow().SetSelectedNotesShare(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 ddlSharedNotes = document.getElementById('ddlSharedNotes');
if (!ddlSharedNotes) return false;
var sURI = ddlSharedNotes.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 (ValidateNoteData())
{
var sData = GetNoteDataString(gMode, gNoteID);
if ( gMode == MODE_ADD )
{
ServerRequest('ADD-' + mItemType, sData, false);
}
else if ( gMode == MODE_EDIT )
{
ServerRequest('EDIT-' + mItemType, sData, false);
}
}
}
function Cancel()
{
HideNoteDetails();
}
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-' + mItemType, 'ID=' + itemIDs + '&Folder=\\Notes', 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-' + mItemType, 'ID=' + itemIDs +'&Folder=\\Notes', 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-' + mItemType, 'ID=' + gPopupItemID + '&Folder=\\Notes', false); }, 200);
return true;
}
}
function ProcessSelectionDelete()
{
if (gAccessMode == ACCESS_MODE_FULL)
{
oConfirmation_Note.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-PermissionDenied]"), true);
}
}
function IsPopupMenuActive(oSourceElement)
{
return IsElementAAncestorOfElementB(document.getElementById(LIST_ID), oSourceElement);
}
function IsPopupMenuCommandActive(MessageID, i)
{
return MessageID.toUpperCase() != 'TREMPTY';
}
function ProcessPopUp(Action)
{
switch (Action)
{
case 'Delete':
ProcessSelectionDelete();
break;
default:
break;
}
PopUp_HideMenu('menudiv');
}
function SetActionButtonsStatus()
{
if (gAccessMode == ACCESS_MODE_READ) // read only
{
DisableToolbarButton('bttn_newNote');
DisableToolbarButton('bttn_delete');
}
else {
EnableToolbarButton('bttn_newNote', function() { AddNote(); });
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);
}
HideNoteDetails();
}
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);
}
HideNoteDetails();
}
else {
// Unselect all the Items 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 Item details
if (!ctrlKeyDown && !shiftKeyDown) {
gCurMessageID = MessageID;
getTopAppWindow().Async_LockUI(t_("[ME_TXT-Loading]") + "...");
ServerRequest('GET-' + mItemType, 'Folder=' + mDefaultFolder + '&ID=' + MessageID, false);
}
gItemsArrayCurrIndex = ItemsArray_GetCurrIndex(MessageID);
SetActionButtonsStatus();
if ((gTotalItems > 1) && (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-NotesListHeight', gMsgListHeight, false);
}
window.onresize = BrowserResize;
-->
</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_filterNotes_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;}
</style>
<![endif]-->
<!--[if IE 9]>
<style type="text/css">
.notes_shell_textarea_inner {background:url(../../../../Skins/Mondo/notes_bg_lines_ie9.gif) 0px 14px;}
</style>
<![endif]-->
</head>
<body onload="PageLoad();" style="background-color:Transparent;">
<div class="level0_shell pane-iframe" style="visibility:hidden;">
<div class="ui-layout-center" 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 iframe noWidth" 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_newNote" title="<%=uscToken.GetText("[ME_TXT-New]")%>" class="bttn_toolbar_primary_shell" onselectstart="return false;" onclick="AddNote()">
<div class="bttn_toolbar_primary_left">
<div class="toolbar_icon_newNote"></div>
<div class="bttn_toolbar_primary_text"><%=uscToken.GetText("[ME_TXT-New]")%></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">
<!-- Bttn Refresh -->
<div class="bttn_toolbar_primary_shell_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_dummy_td read"></td>
</tr>
</table><!--toolbar_primary_table -->
</div><!-- toolbar_primary -->
<div id="msgList_shell_js" class="dataTable_shell">
</div>
</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">
<!-- Notes Shell -->
<div id="divNoteDetails" class="notes_shell" style="display:none;">
<div class="notes_shell_mid">
<div class="notes_shell_inner">
<uc3:NoteDetails id="NoteDetails" runat="server"></uc3:NoteDetails>
<!-- OK / Cancel Bttns -->
<div class="optionsPanel_foot_bttns" onselectstart="return false;">
<div class="bttn_float_left" 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="bttn_float_left" onclick="HideNoteDetails()" 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="clear_div"></div>
</div>
<div class="clear_div"></div>
</div>
</div>
</div>
</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:0;left:0;z-index:10099;" 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_Note = new MessageDialog("ConfirmDialog");
oAlertDialog = new MessageDialog("AlertDialog");
-->
</script>
</body>
</html>