From fcfd8be7719a1670bf2574486e057e3db8eba82d Mon Sep 17 00:00:00 2001 From: Francis Lachapelle Date: Mon, 10 Feb 2014 21:49:49 -0500 Subject: [PATCH] Improve URL handling in popup of events --- UI/WebServerResources/MailerUI.js | 34 +-------------------------- UI/WebServerResources/SchedulerUI.js | 1 + UI/WebServerResources/generic.js | 35 ++++++++++++++++++++++++++++ 3 files changed, 37 insertions(+), 33 deletions(-) diff --git a/UI/WebServerResources/MailerUI.js b/UI/WebServerResources/MailerUI.js index 2ba20816f..9b98b8d14 100644 --- a/UI/WebServerResources/MailerUI.js +++ b/UI/WebServerResources/MailerUI.js @@ -1239,7 +1239,6 @@ function loadMessage(msguid) { } } - configureLoadImagesButton(); configureSignatureFlagImage(); @@ -1330,22 +1329,7 @@ function configureLinksInMessage() { if (!$(document.body).hasClassName("popup")) mailContentDiv.observe("contextmenu", onMessageContentMenu); - var anchors = messageDiv.getElementsByTagName('a'); - for (var i = 0; i < anchors.length; i++) { - var anchor = $(anchors[i]); - if (!anchor.href && anchor.readAttribute("moz-do-not-send")) { - anchor.writeAttribute("moz-do-not-send", false); - anchor.removeClassName("moz-txt-link-abbreviated"); - anchor.href = "mailto:" + anchors[i].innerHTML; - } - if (anchor.href.substring(0,7) == "mailto:") { - anchor.observe("click", onEmailTo); - anchor.observe("contextmenu", onEmailAddressClick); - anchor.writeAttribute("moz-do-not-send", false); - } - else if (!anchor.id) - anchor.observe("click", onMessageAnchorClick); - } + configureLinks(messageDiv); var attachmentsMenu = $("attachmentsMenu"); if (attachmentsMenu) { @@ -1595,12 +1579,6 @@ function onEmailAddressClick(event) { return false; } -function onMessageAnchorClick(event) { - if (this.href) - window.open(this.href); - preventDefault(event); -} - function onImageClick(event) { popupMenu(event, 'imageMenu', this); preventDefault(event); @@ -1803,16 +1781,6 @@ function newContactFromEmail(event) { return false; /* stop following the link */ } -function onEmailTo(event) { - var s = this.innerHTML.strip(); - if (!/@/.test(s)) { - s += ' <' + this.href.substr(7) + '>'; - } - openMailTo(s); - Event.stop(event); - return false; -} - function newEmailTo(sender) { return openMailTo(document.menuTarget.innerHTML); } diff --git a/UI/WebServerResources/SchedulerUI.js b/UI/WebServerResources/SchedulerUI.js index 35cb004c3..98449b327 100644 --- a/UI/WebServerResources/SchedulerUI.js +++ b/UI/WebServerResources/SchedulerUI.js @@ -817,6 +817,7 @@ function onViewEventCallback(http) { div.setStyle({ left: left + "px", top: top + "px" }); div.show(); + configureLinks(div); } } else { diff --git a/UI/WebServerResources/generic.js b/UI/WebServerResources/generic.js index e5b669314..89149d9a0 100644 --- a/UI/WebServerResources/generic.js +++ b/UI/WebServerResources/generic.js @@ -334,6 +334,16 @@ function openMailTo(senderMailTo) { return false; /* stop following the link */ } +function onEmailTo(event) { + var s = this.innerHTML.strip(); + if (!/@/.test(s)) { + s += ' <' + this.href.substr(7) + '>'; + } + openMailTo(s); + Event.stop(event); + return false; +} + function deleteDraft(url) { /* this is called by UIxMailEditor with window.opener */ new Ajax.Request(url, { @@ -1763,6 +1773,31 @@ function configureLinkBanner() { } } +function configureLinks(element) { + var onAnchorClick = function (event) { + if (this.href) + window.open(this.href); + preventDefault(event); + }; + var anchors = element.getElementsByTagName('a'); + for (var i = 0; i < anchors.length; i++) { + var anchor = $(anchors[i]); + if (!anchor.href && anchor.readAttribute("moz-do-not-send")) { + anchor.writeAttribute("moz-do-not-send", false); + anchor.removeClassName("moz-txt-link-abbreviated"); + anchor.href = "mailto:" + anchors[i].innerHTML; + } + if (anchor.href.substring(0,7) == "mailto:") { + anchor.observe("click", onEmailTo); + if (typeof onEmailAddressClick == 'function') + anchor.observe("contextmenu", onEmailAddressClick); + anchor.writeAttribute("moz-do-not-send", false); + } + else if (!anchor.id) + anchor.observe("click", onAnchorClick); + } +} + function CurrentModule() { var module = null; if (ApplicationBaseURL) {