From 1b8c098ddc199a8c01aa2da1523e4efeaa1c7529 Mon Sep 17 00:00:00 2001 From: Andrew Van Tassel Date: Tue, 7 Feb 2012 15:03:54 -0700 Subject: [PATCH] Updated icons Added List-Unsubscribe box with links --- chrome/content/images/mailhops16.png | Bin 1627 -> 3326 bytes chrome/content/images/mailhops32.png | Bin 3898 -> 4344 bytes chrome/content/mailhops.js | 101 ++++++++++++++++++++++----- chrome/content/msgHdrViewOverlay.xul | 13 ++++ chrome/content/preferences.js | 2 +- chrome/skin/classic/mailhops.css | 12 ++-- install.rdf | 2 +- 7 files changed, 108 insertions(+), 22 deletions(-) diff --git a/chrome/content/images/mailhops16.png b/chrome/content/images/mailhops16.png index 6769d9554e8c5dee001993a91e093b3b7d7cd377..630c3baedf976ad0d72a69268e4431cb5c9805a8 100644 GIT binary patch literal 3326 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 VXx5V84|)Iq002ovPDHLkV1gK779Icq diff --git a/chrome/content/images/mailhops32.png b/chrome/content/images/mailhops32.png index 9572c42a6597cb912fd19278a8c4ab2266372281..8515365acd5cef5836509981661c4d55973d8379 100644 GIT binary patch literal 4344 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 IM6N<$f-y3vyZ`_I diff --git a/chrome/content/mailhops.js b/chrome/content/mailhops.js index c581d9a..63686b6 100644 --- a/chrome/content/mailhops.js +++ b/chrome/content/mailhops.js @@ -1,7 +1,7 @@ /* * @author: Andrew Van Tassel * @email: andrew@andrewvantassel.com -* @website: http://mailhops.com* +* @website: http://mailhops.com */ var mailHops = @@ -17,12 +17,14 @@ var mailHops = mailhopsDataPaneDKIM: null, mailhopsDataPaneMailer: null, mailhopsDataPaneDNSBL: null, + mailhopsListContainer: null, + resultListDataPane: null, isLoaded: false, showDetails: false, showWeather: false, map: 'goog', unit: 'mi', - appVersion: 'MailHops Postbox 0.6.3' + appVersion: 'MailHops Postbox 0.6.5' } mailHops.init = function() @@ -41,11 +43,14 @@ mailHops.init = function() mailHops.resultDetails = document.getElementById ( "mailhopsDataPaneDetails"); mailHops.resultMapLink = document.getElementById ( "mailhopsDataPaneMapLink"); - + //auth mailHops.mailhopsDataPaneSPF = document.getElementById ( "mailhopsDataPaneSPF"); mailHops.mailhopsDataPaneDKIM = document.getElementById ( "mailhopsDataPaneDKIM"); mailHops.mailhopsDataPaneMailer = document.getElementById ( "mailhopsDataPaneMailer"); mailHops.mailhopsDataPaneDNSBL = document.getElementById ( "mailhopsDataPaneDNSBL"); + //list + mailHops.mailhopsListContainer = document.getElementById ( "dataPaneMailHopsListContainer"); + mailHops.resultListDataPane = document.getElementById ( "mailhopsListDataPane"); //event listner for route click to launch map mailHops.resultMapLink.addEventListener("click", function () { @@ -159,8 +164,13 @@ var regexAllIp = /(1\d{0,2}|2(?:[0-4]\d{0,1}|[6789]|5[0-5]?)?|[3-9]\d?|0)\.(1\d{ var headReceivedSPF = mailHops.headers.extractHeader ( "Received-SPF" , false ) ; var headAuth = mailHops.headers.extractHeader ( "Authentication-Results" , false ) ; + var headListUnsubscribe = mailHops.headers.extractHeader ( "List-Unsubscribe" , false ) ; + //display auth mailHops.displayResultAuth(headXMailer,headUserAgent,headXMimeOLE,headAuth,headReceivedSPF); + //display unsubscribe link + if(headListUnsubscribe) + mailHops.displayResultLists(headListUnsubscribe); var received_ips; var all_ips = new Array(); @@ -230,6 +240,32 @@ mailHops.testIP = function(ip,header){ return retval; }; +mailHops.displayResultLists = function( header_unsubscribe){ + + while(mailHops.resultListDataPane.firstChild) { + mailHops.resultListDataPane.removeChild(mailHops.resultListDataPane.firstChild); + } + + var listArr=header_unsubscribe.split(','); + var href=''; + for(var h=0;h',''); + var link = document.createElement('a'); + link.setAttribute('href',href); + if(href.indexOf('mailto:')!=-1) + link.innerHTML='Unsubscribe via Email'; + else + link.innerHTML='Unsubscribe'; + mailHops.resultListDataPane.appendChild(link); + } + if(!href) + mailHops.mailhopsListContainer.style.display='none'; + else{ + mailHops.mailhopsListContainer.style.display='block'; + } + +}; + mailHops.displayResultAuth = function( header_xmailer, header_useragent, header_xmimeole, header_auth, header_spf ){ //SPF @@ -482,11 +518,17 @@ mailHops.displayResult = function ( header_route, response ){ label.setAttribute('value','Hop #'+(i+1)+' '+response.route[i].countryName); else label.setAttribute('value','Hop #'+(i+1)+' Private'); - + + //build tooltip + var tiptext = response.route[i].ip; if(response.route[i].host) - label.setAttribute('tooltiptext',response.route[i].ip+', '+response.route[i].host); - else - label.setAttribute('tooltiptext',response.route[i].ip); + tiptext+=' '+response.route[i].host; + if(response.route[i].whois && response.route[i].whois.descr) + tiptext+=' '+response.route[i].whois.descr; + if(response.route[i].whois && response.route[i].whois.netname) + tiptext+=' '+response.route[i].whois.netname; + + label.setAttribute('tooltiptext',tiptext); //append details mailHops.resultDetails.appendChild(label); @@ -542,8 +584,7 @@ mailHops.displayResult = function ( header_route, response ){ else if(displayText=='') displayText = ' Local message.'; } - - + if(header_route) mailHops.resultMapLink.setAttribute("route", header_route); else @@ -553,8 +594,13 @@ mailHops.displayResult = function ( header_route, response ){ mailHops.resultTextDataPane.value = displayText; mailHops.resultTextDataPane.setAttribute('tooltiptext',displayText+' '+distanceText); - mailHops.resultTextDataPane2.value = distanceText; - mailHops.resultTextDataPane2.setAttribute('tooltiptext',displayText+' '+distanceText); + if(distanceText){ + mailHops.resultTextDataPane2.style.display = 'block'; + mailHops.resultTextDataPane2.value = distanceText; + mailHops.resultTextDataPane2.setAttribute('tooltiptext',displayText+' '+distanceText); + } else { + mailHops.resultTextDataPane2.style.display = 'none'; + } //show the detail link mailHops.resultDetailsLink.style.display = 'block'; mailHops.resultMapLink.style.display = 'block'; @@ -577,19 +623,42 @@ mailHops.isDay = function(){ return false; } //display the connection error message -mailHops.displayError = function(){ +mailHops.displayError = function(data){ mailHops.resultMapLink.removeAttribute("route"); - mailHops.resultTextDataPane.style.backgroundImage = 'url(chrome://mailhops/content/images/auth/error.png)'; - mailHops.resultTextDataPane.value = ' MailHops Failed.'; - mailHops.resultTextDataPane.setAttribute('tooltiptext',' Could not connect to MailHops.'); + if(data && data.meta.code==410) + mailHops.resultTextDataPane.style.backgroundImage = 'url(chrome://mailhops/content/images/info.png)'; + else + mailHops.resultTextDataPane.style.backgroundImage = 'url(chrome://mailhops/content/images/auth/error.png)'; + if(data.error){ + mailHops.resultTextDataPane.value = mailHops.getErrorTitle(data.meta.code); + mailHops.resultTextDataPane.setAttribute('tooltiptext',data.error.message); + }else{ + mailHops.resultTextDataPane.value = ' Service Unavailable.'; + mailHops.resultTextDataPane.setAttribute('tooltiptext',' Could not connect to MailHops.'); + } + mailHops.resultTextDataPane2.style.display = 'none'; mailHops.resultTextDataPane2.value = ''; mailHops.resultTextDataPane2.style.backgroundImage = ''; mailHops.resultTextDataPane2.setAttribute('tooltiptext',''); }; +mailHops.getErrorTitle = function(error_code){ + switch(error_code){ + case 400: + return 'Missing route parameter'; + case 410: + return 'Down for Maintenance'; + case 500: + return 'Server Error'; + default: + return 'Service Unavailable'; + } +}; + mailHops.clearRoute = function(){ + mailHops.resultTextDataPane2.style.display = 'none'; mailHops.resultContainerDetails.style.display = 'none'; mailHops.resultDetailsLink.style.display = 'none'; mailHops.resultMapLink.style.display = 'none'; @@ -691,7 +760,7 @@ mailHops.lookup = function(header_route){ mailHops.displayResult(header_route,data.response); } else { //display the error - mailHops.displayError(); + mailHops.displayError(data); } } catch (ex){ diff --git a/chrome/content/msgHdrViewOverlay.xul b/chrome/content/msgHdrViewOverlay.xul index 7438de8..5642072 100644 --- a/chrome/content/msgHdrViewOverlay.xul +++ b/chrome/content/msgHdrViewOverlay.xul @@ -45,6 +45,19 @@ + + + + + + + + + + + + + diff --git a/chrome/content/preferences.js b/chrome/content/preferences.js index d395767..968c6e9 100644 --- a/chrome/content/preferences.js +++ b/chrome/content/preferences.js @@ -17,7 +17,7 @@ var mailHopPreferences = else document.getElementById("mailhop.unit").selectedIndex = 1; - if(pref.getCharPref("mail.mailHops.show_details",'false')=='true') + if(pref.getCharPref("mail.mailHops.show_details",'true')=='true') document.getElementById("mailhop.show_details").checked = true; else document.getElementById("mailhop.show_details").checked = false; diff --git a/chrome/skin/classic/mailhops.css b/chrome/skin/classic/mailhops.css index 07d3353..48194c5 100644 --- a/chrome/skin/classic/mailhops.css +++ b/chrome/skin/classic/mailhops.css @@ -16,10 +16,10 @@ color: #FFF; margin-left: 10px; background-color: #98a5b3; - -moz-border-radius: 20px; - -webkit-border-radius: 20px; - -khtml-border-radius: 20px; - border-radius: 20px; + -moz-border-radius: 10px; + -webkit-border-radius: 10px; + -khtml-border-radius: 10px; + border-radius: 10px; text-align: center; padding-right: 14px; } @@ -55,4 +55,8 @@ .auth-item{ display: none; +} + +#dataPaneMailHopsListContainer{ + display: none; } \ No newline at end of file diff --git a/install.rdf b/install.rdf index 46e355a..c462643 100644 --- a/install.rdf +++ b/install.rdf @@ -7,7 +7,7 @@ postbox@mailhops.com 2 MailHops - 0.6.3 + 0.6.4 MailHops maps the route an email traveled to get to you. Using GeoIP it also displays distance traveled along with the location (city, state and country) of the sender. chrome://mailhops/content/images/mailhops32.png http://mailhops.com