From 06be6f05e71c930163d8e951acc1609e8f671a83 Mon Sep 17 00:00:00 2001 From: Andrew Van Tassel Date: Mon, 26 Dec 2016 11:28:59 -0700 Subject: [PATCH] Moved MailHops to a notification bar --- chrome.manifest | 6 +- .../images/btn-add-to-slack-122x35.png | Bin 0 -> 3921 bytes chrome/content/images/refresh.png | Bin 0 -> 1071 bytes chrome/content/mailhops.js | 10 +- chrome/content/msgNotificationBar.js | 348 ++++++++++++++++++ chrome/content/msgNotificationBar.xul | 45 +++ chrome/content/pb-overlay.js | 277 +++++++------- chrome/content/pb-overlay.xul | 10 + chrome/content/preferences.js | 8 +- chrome/content/preferences.xul | 1 - chrome/content/utils.js | 27 +- chrome/locale/en/strings.dtd | 4 +- chrome/locale/en/strings.properties | 1 + .../skin/classic/mh-notification-styles.css | 57 +++ chrome/skin/classic/pb-styles.css | 4 + 15 files changed, 635 insertions(+), 163 deletions(-) create mode 100644 chrome/content/images/btn-add-to-slack-122x35.png create mode 100644 chrome/content/images/refresh.png create mode 100644 chrome/content/msgNotificationBar.js create mode 100644 chrome/content/msgNotificationBar.xul create mode 100644 chrome/skin/classic/mh-notification-styles.css diff --git a/chrome.manifest b/chrome.manifest index 55b1d3a..050468c 100644 --- a/chrome.manifest +++ b/chrome.manifest @@ -10,7 +10,9 @@ locale mailhops ru jar:chrome/mailhops.jar!/locale/ru/ locale mailhops zh-CN jar:chrome/mailhops.jar!/locale/zh-CN/ # Postbox -overlay chrome://messenger/content/msgHdrViewOverlay.xul chrome://mailhops/content/pb-overlay.xul application=postbox@postbox-inc.com +# overlay chrome://messenger/content/msgHdrViewOverlay.xul chrome://mailhops/content/pb-overlay.xul application=postbox@postbox-inc.com +overlay chrome://messenger/content/mailWindowOverlay.xul chrome://mailhops/content/msgNotificationBar.xul application=postbox@postbox-inc.com # Thunberbird -overlay chrome://messenger/content/msgHdrViewOverlay.xul chrome://mailhops/content/tb-overlay.xul application={3550f703-e582-4d05-9a08-453d09bdfdc6} \ No newline at end of file +# overlay chrome://messenger/content/msgHdrViewOverlay.xul chrome://mailhops/content/tb-overlay.xul application={3550f703-e582-4d05-9a08-453d09bdfdc6} +overlay chrome://messenger/content/mailWindowOverlay.xul chrome://mailhops/content/msgNotificationBar.xul application={3550f703-e582-4d05-9a08-453d09bdfdc6} diff --git a/chrome/content/images/btn-add-to-slack-122x35.png b/chrome/content/images/btn-add-to-slack-122x35.png new file mode 100644 index 0000000000000000000000000000000000000000..f2661ae002f55e7e2d5c2f9a94aba6de690e3306 GIT binary patch literal 3921 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',''); + if(href.indexOf('mailto:')!=-1){ + if(href.toLowerCase().indexOf('subject=')==-1){ + if(href.indexOf('?')==-1) + href+='?subject=Unsubscribe'; + else + href+='&subject=Unsubscribe'; + } + } + this.mailhopsUnsubscribe.setAttribute('href',href); + } + } + } + }, + + auth: function( header_xmailer, header_useragent, header_xmimeole, header_auth, header_spf ){ + //SPF + if(header_spf){ + header_spf=header_spf.replace(/^\s+/,""); + var headerSPFArr=header_spf.split(' '); + this.mailhopsDataPaneSPF.setAttribute('value','SPF: '+headerSPFArr[0]); + this.mailhopsDataPaneSPF.style.backgroundImage = 'url(chrome://mailhops/content/images/auth/'+headerSPFArr[0]+'.png)'; + this.mailhopsDataPaneSPF.setAttribute('tooltiptext',header_spf+'\n'+mailHopsUtils.spf(headerSPFArr[0])); + this.mailhopsDataPaneSPF.style.display='block'; + } else { + this.mailhopsDataPaneSPF.style.display='none'; + } + //Authentication-Results + //http://tools.ietf.org/html/rfc5451 + if(header_auth){ + var headerAuthArr=header_auth.split(';'); + var dkim_result; + var spf_result; + for(var h=0;h 0) + distanceText = mailHopsUtils.addCommas(Math.round(response.distance.kilometers))+' km traveled'; + else if(response.distance.miles > 0) + distanceText = mailHopsUtils.addCommas(Math.round(response.distance.miles))+' mi traveled'; + } else if(displayText=='') + displayText = ' Local message.'; + } + + if(message.time != null){ + message.time = message.time/1000; + if(message.time < 60) + distanceText += ' in '+message.time+' sec.'; + else if(message.time < 3600) //something is wrong if it takes this long + distanceText += ' in '+Math.round(message.time/60)+' min.'; + else //something is wrong if it takes this long + distanceText += ' in '+Math.round(message.time/60/60)+' hr.'; + } + + if(header_route) + this.resultText.setAttribute("data-route", header_route); + else + this.resultText.removeAttribute("data-route"); + + this.resultText.setAttribute('value', displayText+' ( '+distanceText+' )'); + this.resultText.style.backgroundImage = 'url('+image+')'; + }//end route +}; diff --git a/chrome/content/msgNotificationBar.xul b/chrome/content/msgNotificationBar.xul new file mode 100644 index 0000000..a5f8bb8 --- /dev/null +++ b/chrome/content/msgNotificationBar.xul @@ -0,0 +1,45 @@ + + + + + + + +