diff --git a/UI/WebServerResources/UIxMailEditor.js b/UI/WebServerResources/UIxMailEditor.js
index 2861d7bf9..4566190fb 100644
--- a/UI/WebServerResources/UIxMailEditor.js
+++ b/UI/WebServerResources/UIxMailEditor.js
@@ -3,612 +3,613 @@ var signatureLength = 0;
var attachmentCount = 0;
var MailEditor = {
- addressBook: null,
- currentField: null,
- selectedIndex: -1,
- delay: 500,
- delayedSearch: false
+ addressBook: null,
+ currentField: null,
+ selectedIndex: -1,
+ delay: 500,
+ delayedSearch: false
};
function onContactAdd() {
- var selector = null;
- var selectorURL = '?popup=YES&selectorId=mailer-contacts';
+ var selector = null;
+ var selectorURL = '?popup=YES&selectorId=mailer-contacts';
- if (MailEditor.addressBook && MailEditor.addressBook.open && !MailEditor.addressBook.closed)
- MailEditor.addressBook.focus();
- else {
- var urlstr = ApplicationBaseURL
- + "../Contacts/"
- + contactSelectorAction + selectorURL;
- MailEditor.addressBook = window.open(urlstr, "_blank",
- "width=640,height=400,resizable=1,scrollbars=0");
- MailEditor.addressBook.selector = selector;
- MailEditor.addressBook.opener = self;
- MailEditor.addressBook.focus();
- }
+ if (MailEditor.addressBook && MailEditor.addressBook.open && !MailEditor.addressBook.closed)
+ MailEditor.addressBook.focus();
+ else {
+ var urlstr = ApplicationBaseURL
+ + "../Contacts/"
+ + contactSelectorAction + selectorURL;
+ MailEditor.addressBook = window.open(urlstr, "_blank",
+ "width=640,height=400,resizable=1,scrollbars=0");
+ MailEditor.addressBook.selector = selector;
+ MailEditor.addressBook.opener = self;
+ MailEditor.addressBook.focus();
+ }
- return false;
+ return false;
}
function addContact(tag, fullContactName, contactId, contactName, contactEmail) {
- if (!mailIsRecipient(contactEmail)) {
- var neededOptionValue = 0;
- if (tag == "cc")
- neededOptionValue = 1;
- else if (tag == "bcc")
- neededOptionValue = 2;
+ if (!mailIsRecipient(contactEmail)) {
+ var neededOptionValue = 0;
+ if (tag == "cc")
+ neededOptionValue = 1;
+ else if (tag == "bcc")
+ neededOptionValue = 2;
- var stop = false;
- var counter = 0;
- var currentRow = $('row_' + counter);
- while (currentRow && !stop) {
- var currentValue = $(currentRow.childNodesWithTag("td")[1]).childNodesWithTag("input")[0].value;
- if (currentValue == neededOptionValue) {
- stop = true;
- insertContact($("addr_" + counter), contactName, contactEmail);
- }
- counter++;
- currentRow = $('row_' + counter);
- }
+ var stop = false;
+ var counter = 0;
+ var currentRow = $('row_' + counter);
+ while (currentRow && !stop) {
+ var currentValue = $(currentRow.childNodesWithTag("td")[1]).childNodesWithTag("input")[0].value;
+ if (currentValue == neededOptionValue) {
+ stop = true;
+ insertContact($("addr_" + counter), contactName, contactEmail);
+ }
+ counter++;
+ currentRow = $('row_' + counter);
+ }
- if (!stop) {
- fancyAddRow(false, "");
- $($("row_" + counter).childNodesWithTag("td")[0]).childNodesWithTag("select")[0].value
- = neededOptionValue;
- insertContact($("addr_" + counter), contactName, contactEmail);
- onWindowResize(null);
+ if (!stop) {
+ fancyAddRow(false, "");
+ $($("row_" + counter).childNodesWithTag("td")[0]).childNodesWithTag("select")[0].value
+ = neededOptionValue;
+ insertContact($("addr_" + counter), contactName, contactEmail);
+ onWindowResize(null);
+ }
}
- }
}
function mailIsRecipient(mailto) {
- var isRecipient = false;
+ var isRecipient = false;
- var counter = 0;
- var currentRow = $('row_' + counter);
+ var counter = 0;
+ var currentRow = $('row_' + counter);
- var email = extractEmailAddress(mailto).toUpperCase();
+ var email = extractEmailAddress(mailto).toUpperCase();
- while (currentRow && !isRecipient) {
- var currentValue = $("addr_"+counter).value.toUpperCase();
- if (currentValue.indexOf(email) > -1)
- isRecipient = true;
- else
- {
- counter++;
- currentRow = $('row_' + counter);
- }
- }
+ while (currentRow && !isRecipient) {
+ var currentValue = $("addr_"+counter).value.toUpperCase();
+ if (currentValue.indexOf(email) > -1)
+ isRecipient = true;
+ else
+ {
+ counter++;
+ currentRow = $('row_' + counter);
+ }
+ }
- return isRecipient;
+ return isRecipient;
}
function insertContact(inputNode, contactName, contactEmail) {
- var value = '' + inputNode.value;
+ var value = '' + inputNode.value;
- var newContact = contactName;
- if (newContact.length > 0)
- newContact += ' <' + contactEmail + '>';
- else
- newContact = contactEmail;
+ var newContact = contactName;
+ if (newContact.length > 0)
+ newContact += ' <' + contactEmail + '>';
+ else
+ newContact = contactEmail;
- if (value.length > 0)
- value += ", ";
- value += newContact;
+ if (value.length > 0)
+ value += ", ";
+ value += newContact;
- inputNode.value = value;
+ inputNode.value = value;
}
function toggleAttachments() {
- var div = $("attachmentsArea");
- var style = "" + div.getStyle("display");
- if (style.length)
- div.setStyle({ display: "" });
- else
- div.setStyle({ display: "block" });
+ var div = $("attachmentsArea");
+ var style = "" + div.getStyle("display");
+ if (style.length)
+ div.setStyle({ display: "" });
+ else
+ div.setStyle({ display: "block" });
- return false;
+ return false;
}
function updateInlineAttachmentList(sender, attachments) {
- var count = 0;
+ var count = 0;
- var div = $("attachmentsArea");
- if (attachments)
- count = attachments.length;
+ var div = $("attachmentsArea");
+ if (attachments)
+ count = attachments.length;
- if (count) {
- var text = "";
- for (var i = 0; i < count; i++) {
- text = text + attachments[i];
- text = text + '
';
+ if (count) {
+ var text = "";
+ for (var i = 0; i < count; i++) {
+ text = text + attachments[i];
+ text = text + '
';
+ }
+
+ var e = $('compose_attachments_list');
+ e.innerHTML = text;
+ var style = "" + div.getStyle("display");
+ if (!style.length)
+ div.setStyle({display: "block"});
}
-
- var e = $('compose_attachments_list');
- e.innerHTML = text;
- var style = "" + div.getStyle("display");
- if (!style.length)
- div.setStyle({display: "block"});
- }
- else
- div.setStyle({display: ""});
+ else
+ div.setStyle({display: ""});
}
/* mail editor */
function validateEditorInput(sender) {
- var errortext = "";
- var field;
+ var errortext = "";
+ var field;
- field = document.pageform.subject;
- if (field.value == "")
- errortext = errortext + labels["error_missingsubject"] + "\n";
+ field = document.pageform.subject;
+ if (field.value == "")
+ errortext = errortext + labels["error_missingsubject"] + "\n";
- if (!hasRecipients())
- errortext = errortext + labels["error_missingrecipients"] + "\n";
+ if (!hasRecipients())
+ errortext = errortext + labels["error_missingrecipients"] + "\n";
- if (errortext.length > 0) {
- alert(labels["error_validationfailed"] + ":\n" + errortext);
- return false;
- }
+ if (errortext.length > 0) {
+ alert(labels["error_validationfailed"] + ":\n" + errortext);
+ return false;
+ }
- return true;
+ return true;
}
function clickedEditorSend(sender) {
- if (!validateEditorInput(sender))
+ if (!validateEditorInput(sender))
+ return false;
+
+ var input = currentAttachmentInput();
+ if (input)
+ input.parentNode.removeChild(input);
+
+ var toolbar = document.getElementById("toolbar");
+ if (!document.busyAnim)
+ document.busyAnim = startAnimation(toolbar);
+
+ var lastRow = $("lastRow");
+ lastRow.down("select").name = "popup_last";
+
+ window.shouldPreserve = true;
+ document.pageform.action = "send";
+ document.pageform.submit();
+
return false;
-
- var input = currentAttachmentInput();
- if (input)
- input.parentNode.removeChild(input);
-
- var toolbar = document.getElementById("toolbar");
- if (!document.busyAnim)
- document.busyAnim = startAnimation(toolbar);
-
- var lastRow = $("lastRow");
- lastRow.down("select").name = "popup_last";
-
- window.shouldPreserve = true;
- document.pageform.action = "send";
- document.pageform.submit();
-
- return false;
}
function currentAttachmentInput() {
- var input = null;
+ var input = null;
- var inputs = $("attachmentsArea").getElementsByTagName("input");
- var i = 0;
- while (!input && i < inputs.length)
- if ($(inputs[i]).hasClassName("currentAttachment"))
- input = inputs[i];
- else
- i++;
+ var inputs = $("attachmentsArea").getElementsByTagName("input");
+ var i = 0;
+ while (!input && i < inputs.length)
+ if ($(inputs[i]).hasClassName("currentAttachment"))
+ input = inputs[i];
+ else
+ i++;
- return input;
+ return input;
}
function clickedEditorAttach(sender) {
- var input = currentAttachmentInput();
- if (!input) {
- var area = $("attachmentsArea");
+ var input = currentAttachmentInput();
+ if (!input) {
+ var area = $("attachmentsArea");
- if (!area.style.display) {
- area.setStyle({ display: "block" });
- onWindowResize(null);
+ if (!area.style.display) {
+ area.setStyle({ display: "block" });
+ onWindowResize(null);
+ }
+ var inputs = area.getElementsByTagName("input");
+ var attachmentName = "attachment" + attachmentCount;
+ var newAttachment = createElement("input", attachmentName,
+ "currentAttachment", null,
+ { type: "file",
+ name: attachmentName },
+ area);
+ attachmentCount++;
+ newAttachment.observe("change",
+ onAttachmentChange.bindAsEventListener(newAttachment));
}
- var inputs = area.getElementsByTagName("input");
- var attachmentName = "attachment" + attachmentCount;
- var newAttachment = createElement("input", attachmentName,
- "currentAttachment", null,
- { type: "file",
- name: attachmentName },
- area);
- attachmentCount++;
- newAttachment.observe("change",
- onAttachmentChange.bindAsEventListener(newAttachment));
- }
- return false;
+ return false;
}
function onAddAttachment() {
- return clickedEditorAttach(null);
+ return clickedEditorAttach(null);
}
function onAttachmentChange(event) {
- if (this.value == "")
- this.parentNode.removeChild(this);
- else {
- this.addClassName("attachment");
- this.removeClassName("currentAttachment");
- var list = $("attachments");
- createAttachment(this, list);
- clickedEditorAttach(null)
- }
+ if (this.value == "")
+ this.parentNode.removeChild(this);
+ else {
+ this.addClassName("attachment");
+ this.removeClassName("currentAttachment");
+ var list = $("attachments");
+ createAttachment(this, list);
+ clickedEditorAttach(null)
+ }
}
function createAttachment(node, list) {
- var attachment = createElement("li", null, null, { node: node }, null, list);
- createElement("img", null, null, { src: ResourcesURL + "/attachment.gif" },
- null, attachment);
- attachment.observe("click", onRowClick);
+ var attachment = createElement("li", null, null, { node: node }, null, list);
+ createElement("img", null, null, { src: ResourcesURL + "/attachment.gif" },
+ null, attachment);
+ attachment.observe("click", onRowClick);
- var filename = node.value;
- var separator;
- if (navigator.appVersion.indexOf("Windows") > -1)
- separator = "\\";
- else
- separator = "/";
- var fileArray = filename.split(separator);
- var attachmentName = document.createTextNode(fileArray[fileArray.length-1]);
- attachment.appendChild(attachmentName);
+ var filename = node.value;
+ var separator;
+ if (navigator.appVersion.indexOf("Windows") > -1)
+ separator = "\\";
+ else
+ separator = "/";
+ var fileArray = filename.split(separator);
+ var attachmentName = document.createTextNode(fileArray[fileArray.length-1]);
+ attachment.appendChild(attachmentName);
}
function clickedEditorSave(sender) {
- var input = currentAttachmentInput();
- if (input)
- input.parentNode.removeChild(input);
+ var input = currentAttachmentInput();
+ if (input)
+ input.parentNode.removeChild(input);
- var lastRow = $("lastRow");
- lastRow.down("select").name = "popup_last";
+ var lastRow = $("lastRow");
+ lastRow.down("select").name = "popup_last";
- window.shouldPreserve = true;
- document.pageform.action = "save";
- document.pageform.submit();
+ window.shouldPreserve = true;
+ document.pageform.action = "save";
+ document.pageform.submit();
- if (window.opener && window.open && !window.closed)
- window.opener.refreshFolderByType('draft');
- return false;
+ if (window.opener && window.open && !window.closed)
+ window.opener.refreshFolderByType('draft');
+ return false;
}
function onTextFocus() {
- var input = currentAttachmentInput();
- if (input)
- input.parentNode.removeChild(input);
+ var input = currentAttachmentInput();
+ if (input)
+ input.parentNode.removeChild(input);
}
function onTextFirstFocus() {
- var content = this.getValue();
- if (content.lastIndexOf("--") == 0) {
- this.insertBefore(document.createTextNode("\r"),
- this.lastChild);
- }
- if (signatureLength > 0) {
- var length = this.getValue().length - signatureLength - 2;
- this.setCaretTo(length);
- }
- Event.stopObserving(this, "focus", onTextFirstFocus);
+ var content = this.getValue();
+ if (content.lastIndexOf("--") == 0) {
+ this.insertBefore(document.createTextNode("\r"),
+ this.lastChild);
+ }
+ if (signatureLength > 0) {
+ var length = this.getValue().length - signatureLength - 2;
+ this.setCaretTo(length);
+ }
+ Event.stopObserving(this, "focus", onTextFirstFocus);
}
function onTextContextMenu(event) {
- event.returnValue = true;
- event.cancelBubble = true;
+ event.returnValue = true;
+ event.cancelBubble = true;
}
function onTextMouseDown(event) {
- if (event.button == 0) {
- event.returnValue = false;
- event.cancelBubble = false;
- }
+ if (event.button == 0) {
+ event.returnValue = false;
+ event.cancelBubble = false;
+ }
}
/* address completion */
function onContactKeydown(event) {
- if (event.ctrlKey || event.metaKey) {
- this.focussed = true;
- return;
- }
- if (event.keyCode == 9) { // Tab
- if (this.confirmedValue)
- this.value = this.confirmedValue;
- if (document.currentPopupMenu)
- hideMenu(document.currentPopupMenu);
- }
- else if (event.keyCode == 0
- || event.keyCode == 8 // Backspace
- || event.keyCode == 32 // Space
- || event.keyCode > 47) {
- this.confirmedValue = null;
- MailEditor.selectedIndex = -1;
- MailEditor.currentField = this;
- if (this.value.length > 0 && !MailEditor.delayedSearch) {
- MailEditor.delayedSearch = true;
- setTimeout("performSearch()", MailEditor.delay);
- }
- else if (this.value.length == 0) {
- if (document.currentPopupMenu)
- hideMenu(document.currentPopupMenu);
- }
- }
- else if (event.keyCode == 13) {
- preventDefault(event);
- if (this.confirmedValue)
- this.value = this.confirmedValue;
- $(this).selectText(0, this.value.length);
- if (document.currentPopupMenu)
- hideMenu(document.currentPopupMenu);
- MailEditor.selectedIndex = -1;
- }
- else if ($('contactsMenu').getStyle('visibility') == 'visible') {
- if (event.keyCode == 38) { // Up arrow
- if (MailEditor.selectedIndex > 0) {
- var contacts = $('contactsMenu').select("li");
- contacts[MailEditor.selectedIndex--].removeClassName("selected");
- this.value = contacts[MailEditor.selectedIndex].firstChild.nodeValue.trim();
- contacts[MailEditor.selectedIndex].addClassName("selected");
- }
+ if (event.ctrlKey || event.metaKey) {
+ this.focussed = true;
+ return;
}
- else if (event.keyCode == 40) { // Down arrow
- var contacts = $('contactsMenu').select("li");
- if (contacts.size() - 1 > MailEditor.selectedIndex) {
- if (MailEditor.selectedIndex >= 0)
- contacts[MailEditor.selectedIndex].removeClassName("selected");
- MailEditor.selectedIndex++;
- this.value = contacts[MailEditor.selectedIndex].firstChild.nodeValue.trim();
- contacts[MailEditor.selectedIndex].addClassName("selected");
- }
+ if (event.keyCode == 9) { // Tab
+ if (this.confirmedValue)
+ this.value = this.confirmedValue;
+ if (document.currentPopupMenu)
+ hideMenu(document.currentPopupMenu);
+ }
+ else if (event.keyCode == 0
+ || event.keyCode == 8 // Backspace
+ || event.keyCode == 32 // Space
+ || event.keyCode > 47) {
+ this.confirmedValue = null;
+ MailEditor.selectedIndex = -1;
+ MailEditor.currentField = this;
+ if (this.value.length > 0 && !MailEditor.delayedSearch) {
+ MailEditor.delayedSearch = true;
+ setTimeout("performSearch()", MailEditor.delay);
+ }
+ else if (this.value.length == 0) {
+ if (document.currentPopupMenu)
+ hideMenu(document.currentPopupMenu);
+ }
+ }
+ else if (event.keyCode == 13) {
+ preventDefault(event);
+ if (this.confirmedValue)
+ this.value = this.confirmedValue;
+ $(this).selectText(0, this.value.length);
+ if (document.currentPopupMenu)
+ hideMenu(document.currentPopupMenu);
+ MailEditor.selectedIndex = -1;
+ }
+ else if ($('contactsMenu').getStyle('visibility') == 'visible') {
+ if (event.keyCode == 38) { // Up arrow
+ if (MailEditor.selectedIndex > 0) {
+ var contacts = $('contactsMenu').select("li");
+ contacts[MailEditor.selectedIndex--].removeClassName("selected");
+ this.value = contacts[MailEditor.selectedIndex].firstChild.nodeValue.trim();
+ contacts[MailEditor.selectedIndex].addClassName("selected");
+ }
+ }
+ else if (event.keyCode == 40) { // Down arrow
+ var contacts = $('contactsMenu').select("li");
+ if (contacts.size() - 1 > MailEditor.selectedIndex) {
+ if (MailEditor.selectedIndex >= 0)
+ contacts[MailEditor.selectedIndex].removeClassName("selected");
+ MailEditor.selectedIndex++;
+ this.value = contacts[MailEditor.selectedIndex].firstChild.nodeValue.trim();
+ contacts[MailEditor.selectedIndex].addClassName("selected");
+ }
+ }
}
- }
}
function performSearch() {
- // Perform address completion
- if (MailEditor.currentField) {
- if (document.contactLookupAjaxRequest) {
- // Abort any pending request
- document.contactLookupAjaxRequest.aborted = true;
- document.contactLookupAjaxRequest.abort();
+ // Perform address completion
+ if (MailEditor.currentField) {
+ if (document.contactLookupAjaxRequest) {
+ // Abort any pending request
+ document.contactLookupAjaxRequest.aborted = true;
+ document.contactLookupAjaxRequest.abort();
+ }
+ if (MailEditor.currentField.value.trim().length > 0) {
+ var urlstr = ( UserFolderURL + "Contacts/allContactSearch?search="
+ + MailEditor.currentField.value );
+ document.contactLookupAjaxRequest =
+ triggerAjaxRequest(urlstr, performSearchCallback, MailEditor.currentField);
+ }
}
- if (MailEditor.currentField.value.trim().length > 0) {
- var urlstr = ( UserFolderURL + "Contacts/allContactSearch?search="
- + MailEditor.currentField.value );
- document.contactLookupAjaxRequest =
- triggerAjaxRequest(urlstr, performSearchCallback, MailEditor.currentField);
- }
- }
- MailEditor.delayedSearch = false;
+ MailEditor.delayedSearch = false;
}
function performSearchCallback(http) {
- if (http.readyState == 4) {
- var menu = $('contactsMenu');
- var list = menu.down("ul");
+ if (http.readyState == 4) {
+ var menu = $('contactsMenu');
+ var list = menu.down("ul");
- var input = http.callbackData;
+ var input = http.callbackData;
- if (http.status == 200) {
- var start = input.value.length;
- var data = http.responseText.evalJSON(true);
+ if (http.status == 200) {
+ var start = input.value.length;
+ var data = http.responseText.evalJSON(true);
- if (data.length > 1) {
- list.select("li").each(function(item) {
- item.remove();
- });
+ if (data.length > 1) {
+ list.select("li").each(function(item) {
+ item.remove();
+ });
- // Populate popup menu
- for (var i = 0; i < data.length; i++) {
- var contact = data[i];
- var completeEmail = contact["displayName"] + " <" + contact["mail"] + ">";
- var node = document.createElement("li");
- list.appendChild(node);
- node.uid = contact["c_uid"];
- node.appendChild(document.createTextNode(completeEmail));
- $(node).observe("mousedown", onAddressResultClick);
- }
+ // Populate popup menu
+ for (var i = 0; i < data.length; i++) {
+ var contact = data[i];
+ var completeEmail = contact["displayName"] + " <" + contact["mail"] + ">";
+ var node = document.createElement("li");
+ list.appendChild(node);
+ node.uid = contact["c_uid"];
+ node.appendChild(document.createTextNode(completeEmail));
+ $(node).observe("mousedown", onAddressResultClick);
+ }
- // Show popup menu
- var offsetScroll = Element.cumulativeScrollOffset(MailEditor.currentField);
- var offset = Element.cumulativeOffset(MailEditor.currentField);
- var top = offset[1] - offsetScroll[1] + node.offsetHeight + 3;
- var height = 'auto';
- var heightDiff = window.height() - offset[1];
- var nodeHeight = node.getHeight();
+ // Show popup menu
+ var offsetScroll = Element.cumulativeScrollOffset(MailEditor.currentField);
+ var offset = Element.cumulativeOffset(MailEditor.currentField);
+ var top = offset[1] - offsetScroll[1] + node.offsetHeight + 3;
+ var height = 'auto';
+ var heightDiff = window.height() - offset[1];
+ var nodeHeight = node.getHeight();
- if ((data.length * nodeHeight) > heightDiff)
- // Limit the size of the popup to the window height, minus 12 pixels
- height = parseInt(heightDiff/nodeHeight) * nodeHeight - 12 + 'px';
+ if ((data.length * nodeHeight) > heightDiff)
+ // Limit the size of the popup to the window height, minus 12 pixels
+ height = parseInt(heightDiff/nodeHeight) * nodeHeight - 12 + 'px';
- menu.setStyle({ top: top + "px",
- left: offset[0] + "px",
- height: height,
- visibility: "visible" });
- menu.scrollTop = 0;
+ menu.setStyle({ top: top + "px",
+ left: offset[0] + "px",
+ height: height,
+ visibility: "visible" });
+ menu.scrollTop = 0;
- document.currentPopupMenu = menu;
- $(document.body).observe("click", onBodyClickMenuHandler);
- }
- else {
- if (document.currentPopupMenu)
- hideMenu(document.currentPopupMenu);
+ document.currentPopupMenu = menu;
+ $(document.body).observe("click", onBodyClickMenuHandler);
+ }
+ else {
+ if (document.currentPopupMenu)
+ hideMenu(document.currentPopupMenu);
- if (data.length == 1) {
- // Single result
- var contact = data[0];
- if (contact["c_uid"].length > 0)
- input.uid = contact["c_uid"];
- var completeEmail = contact["displayName"] + " <" + contact["mail"] + ">";
- if (contact["displayName"].substring(0, input.value.length).toUpperCase()
- == input.value.toUpperCase())
- input.value = completeEmail;
- else
- // The result matches email address, not user name
- input.value += ' >> ' + completeEmail;
- input.confirmedValue = completeEmail;
+ if (data.length == 1) {
+ // Single result
+ var contact = data[0];
+ if (contact["c_uid"].length > 0)
+ input.uid = contact["c_uid"];
+ var completeEmail = contact["displayName"] + " <" + contact["mail"] + ">";
+ if (contact["displayName"].substring(0, input.value.length).toUpperCase()
+ == input.value.toUpperCase())
+ input.value = completeEmail;
+ else
+ // The result matches email address, not user name
+ input.value += ' >> ' + completeEmail;
+ input.confirmedValue = completeEmail;
- var end = input.value.length;
- $(input).selectText(start, end);
+ var end = input.value.length;
+ $(input).selectText(start, end);
- MailEditor.selectedIndex = -1;
- }
- }
+ MailEditor.selectedIndex = -1;
+ }
+ }
+ }
+ else
+ if (document.currentPopupMenu)
+ hideMenu(document.currentPopupMenu);
+ document.contactLookupAjaxRequest = null;
}
- else
- if (document.currentPopupMenu)
- hideMenu(document.currentPopupMenu);
- document.contactLookupAjaxRequest = null;
- }
}
function onAddressResultClick(event) {
- if (MailEditor.currentField) {
- MailEditor.currentField.uid = this.uid;
- MailEditor.currentField.value = this.firstChild.nodeValue.trim();
- MailEditor.currentField.confirmedValue = MailEditor.currentField.value;
- }
+ if (MailEditor.currentField) {
+ MailEditor.currentField.uid = this.uid;
+ MailEditor.currentField.value = this.firstChild.nodeValue.trim();
+ MailEditor.currentField.confirmedValue = MailEditor.currentField.value;
+ }
}
function initTabIndex(addressList, subjectField, msgArea) {
- var i = 1;
- addressList.select("input.textField").each(function (input) {
- if (!input.readAttribute("readonly")) {
- input.writeAttribute("tabindex", i++);
- input.writeAttribute("autocomplete", "off");
- input.observe("keydown", onContactKeydown); // bind listener for address completion
- }
- });
- subjectField.writeAttribute("tabindex", i++);
- msgArea.writeAttribute("tabindex", i);
+ var i = 1;
+ addressList.select("input.textField").each(function (input) {
+ if (!input.readAttribute("readonly")) {
+ input.writeAttribute("tabindex", i++);
+ input.writeAttribute("autocomplete", "off");
+ input.observe("keydown", onContactKeydown); // bind listener for address completion
+ }
+ });
+ subjectField.writeAttribute("tabindex", i++);
+ msgArea.writeAttribute("tabindex", i);
}
function initMailEditor() {
- var list = $("attachments");
- $(list).attachMenu("attachmentsMenu");
- var elements = $(list).childNodesWithTag("li");
- for (var i = 0; i < elements.length; i++)
- elements[i].observe("click", onRowClick);
+ var list = $("attachments");
+ $(list).attachMenu("attachmentsMenu");
+ var elements = $(list).childNodesWithTag("li");
+ for (var i = 0; i < elements.length; i++)
+ elements[i].observe("click", onRowClick);
- var listContent = $("attachments").childNodesWithTag("li");
- if (listContent.length > 0)
- $("attachmentsArea").setStyle({ display: "block" });
+ var listContent = $("attachments").childNodesWithTag("li");
+ if (listContent.length > 0)
+ $("attachmentsArea").setStyle({ display: "block" });
- var textarea = $("text");
- var textContent = textarea.getValue();
- var sigLimit = textContent.lastIndexOf("--");
- if (sigLimit > -1)
- signatureLength = (textContent.length - sigLimit);
- textarea.scrollTop = textarea.scrollHeight;
- textarea.observe("focus", onTextFirstFocus);
- textarea.observe("focus", onTextFocus);
-// textarea.observe("contextmenu", onTextContextMenu);
- textarea.observe("mousedown", onTextMouseDown, true);
+ var textarea = $("text");
+
+ var textContent = textarea.getValue();
+ var sigLimit = textContent.lastIndexOf("--");
+ if (sigLimit > -1)
+ signatureLength = (textContent.length - sigLimit);
+ textarea.scrollTop = textarea.scrollHeight;
+ textarea.observe("focus", onTextFirstFocus);
+ textarea.observe("focus", onTextFocus);
+ // textarea.observe("contextmenu", onTextContextMenu);
+ textarea.observe("mousedown", onTextMouseDown, true);
- initTabIndex($("addressList"), $$("div#subjectRow input").first(), textarea);
- onWindowResize(null);
+ initTabIndex($("addressList"), $$("div#subjectRow input").first(), textarea);
+ onWindowResize(null);
- Event.observe(window, "resize", onWindowResize);
- Event.observe(window, "beforeunload", onMailEditorClose);
+ Event.observe(window, "resize", onWindowResize);
+ Event.observe(window, "beforeunload", onMailEditorClose);
- var focusField = (mailIsReply ? textarea : $("addr_0"));
- focusField.focus();
+ var focusField = (mailIsReply ? textarea : $("addr_0"));
+ focusField.focus();
}
function getMenus() {
- return { "attachmentsMenu": new Array(null, onRemoveAttachments,
- onSelectAllAttachments,
- "-",
- onAddAttachment, null) };
+ return { "attachmentsMenu": new Array(null, onRemoveAttachments,
+ onSelectAllAttachments,
+ "-",
+ onAddAttachment, null) };
}
function onRemoveAttachments() {
- var list = $("attachments");
- var nodes = list.getSelectedNodes();
- for (var i = nodes.length-1; i > -1; i--) {
- var input = $(nodes[i]).node;
- if (input) {
- input.parentNode.removeChild(input);
- list.removeChild(nodes[i]);
+ var list = $("attachments");
+ var nodes = list.getSelectedNodes();
+ for (var i = nodes.length-1; i > -1; i--) {
+ var input = $(nodes[i]).node;
+ if (input) {
+ input.parentNode.removeChild(input);
+ list.removeChild(nodes[i]);
+ }
+ else {
+ var filename = "";
+ var childNodes = nodes[i].childNodes;
+ for (var j = 0; j < childNodes.length; j++) {
+ if (childNodes[j].nodeType == 3)
+ filename += childNodes[j].nodeValue;
+ }
+ var url = "" + window.location;
+ var parts = url.split("/");
+ parts[parts.length-1] = "deleteAttachment?filename=" + encodeURIComponent(filename);
+ url = parts.join("/");
+ triggerAjaxRequest(url, attachmentDeleteCallback,
+ nodes[i]);
+ }
}
- else {
- var filename = "";
- var childNodes = nodes[i].childNodes;
- for (var j = 0; j < childNodes.length; j++) {
- if (childNodes[j].nodeType == 3)
- filename += childNodes[j].nodeValue;
- }
- var url = "" + window.location;
- var parts = url.split("/");
- parts[parts.length-1] = "deleteAttachment?filename=" + encodeURIComponent(filename);
- url = parts.join("/");
- triggerAjaxRequest(url, attachmentDeleteCallback,
- nodes[i]);
- }
- }
}
function attachmentDeleteCallback(http) {
- if (http.readyState == 4) {
- if (isHttpStatus204(http.status)) {
- var node = http.callbackData;
- node.parentNode.removeChild(node);
+ if (http.readyState == 4) {
+ if (isHttpStatus204(http.status)) {
+ var node = http.callbackData;
+ node.parentNode.removeChild(node);
+ }
+ else
+ log("attachmentDeleteCallback: an error occured: " + http.responseText);
}
- else
- log("attachmentDeleteCallback: an error occured: " + http.responseText);
- }
}
function onSelectAllAttachments() {
- var list = $("attachments");
- var nodes = list.childNodesWithTag("li");
- for (var i = 0; i < nodes.length; i++)
- nodes[i].selectElement();
+ var list = $("attachments");
+ var nodes = list.childNodesWithTag("li");
+ for (var i = 0; i < nodes.length; i++)
+ nodes[i].selectElement();
}
function onWindowResize(event) {
- var textarea = document.pageform.text;
- var rowheight = (Element.getHeight(textarea) / textarea.rows);
- var headerarea = $("headerArea");
+ var textarea = document.pageform.text;
+ var rowheight = (Element.getHeight(textarea) / textarea.rows);
+ var headerarea = $("headerArea");
- var attachmentsarea = $("attachmentsArea");
- var attachmentswidth = 0;
- if (attachmentsarea.style.display) {
- attachmentswidth = attachmentsarea.getWidth();
- // Resize of attachment list is b0rken under IE7
-// fromfield = $(document).getElementsByClassName('headerField',
-// headerarea)[0];
-// $("attachments").setStyle({ height: (headerarea.getHeight() - fromfield.getHeight() - 10) + 'px' });
- }
- var subjectfield = headerarea.down("div#subjectRow span.headerField");
- var subjectinput = headerarea.down("div#subjectRow input.textField");
+ var attachmentsarea = $("attachmentsArea");
+ var attachmentswidth = 0;
+ if (attachmentsarea.style.display) {
+ attachmentswidth = attachmentsarea.getWidth();
+ // Resize of attachment list is b0rken under IE7
+ // fromfield = $(document).getElementsByClassName('headerField',
+ // headerarea)[0];
+ // $("attachments").setStyle({ height: (headerarea.getHeight() - fromfield.getHeight() - 10) + 'px' });
+ }
+ var subjectfield = headerarea.down("div#subjectRow span.headerField");
+ var subjectinput = headerarea.down("div#subjectRow input.textField");
- // Resize subject field
- subjectinput.setStyle({ width: (window.width()
- - $(subjectfield).getWidth()
- - attachmentswidth
- - 16) + 'px' });
+ // Resize subject field
+ subjectinput.setStyle({ width: (window.width()
+ - $(subjectfield).getWidth()
+ - attachmentswidth
+ - 16) + 'px' });
- // Resize address fields
- var addresslist = $('addressList');
- addresslist.setStyle({ width: ($(this).width() - attachmentswidth - 10) + 'px' });
+ // Resize address fields
+ var addresslist = $('addressList');
+ addresslist.setStyle({ width: ($(this).width() - attachmentswidth - 10) + 'px' });
- // Set textarea position
- textarea.setStyle({ 'top': headerarea.select("hr").first().offsetTop + 'px' });
+ // Set textarea position
+ textarea.setStyle({ 'top': headerarea.select("hr").first().offsetTop + 'px' });
- // Resize the textarea (message content)
- textarea.rows = Math.round((window.height() - textarea.offsetTop) / rowheight);
+ // Resize the textarea (message content)
+ textarea.rows = Math.round((window.height() - textarea.offsetTop) / rowheight);
}
function onMailEditorClose(event) {
- if (window.shouldPreserve)
- window.shouldPreserve = false;
- else {
- if (window.opener && window.opener.open && !window.opener.closed) {
- var url = "" + window.location;
- var parts = url.split("/");
- parts[parts.length-1] = "delete";
- url = parts.join("/");
- window.opener.deleteDraft(url);
+ if (window.shouldPreserve)
+ window.shouldPreserve = false;
+ else {
+ if (window.opener && window.opener.open && !window.opener.closed) {
+ var url = "" + window.location;
+ var parts = url.split("/");
+ parts[parts.length-1] = "delete";
+ url = parts.join("/");
+ window.opener.deleteDraft(url);
+ }
}
- }
- if (MailEditor.addressBook && MailEditor.addressBook.open
- && !MailEditor.addressBook.closed)
- MailEditor.addressBook.close();
+ if (MailEditor.addressBook && MailEditor.addressBook.open
+ && !MailEditor.addressBook.closed)
+ MailEditor.addressBook.close();
- Event.stopObserving(window, "beforeunload", onMailEditorClose);
+ Event.stopObserving(window, "beforeunload", onMailEditorClose);
}
FastInit.addOnLoad(initMailEditor);