aggiunti tutti i dettagli
This commit is contained in:
		
							
								
								
									
										265
									
								
								dist/mailgo.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										265
									
								
								dist/mailgo.js
									
									
									
									
										vendored
									
									
								
							| @@ -1,20 +1,20 @@ | |||||||
| // ottengo tutti i mailto contenuti nella pagina |  | ||||||
| let mailgos = document.querySelectorAll('a[href^="mailto:"]:not(.no-mailgo)'); |  | ||||||
|  |  | ||||||
| let styles = ` | let styles = ` | ||||||
|  |  | ||||||
|     .mailgo-modal { |     .mailgo-modal { | ||||||
|       all: initial; |       all: initial; | ||||||
|       * { |       * { | ||||||
|         all: unset; |         all: unset; | ||||||
|       } |       } | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     .mailgo-title { |     .mailgo-title { | ||||||
|       display: block; |       display: block; | ||||||
|       margin-bottom: 16px; |       margin-bottom: 5px; | ||||||
|  |     } | ||||||
|  |     .mailgo-details { | ||||||
|  |       font-size: 12px; | ||||||
|  |     } | ||||||
|  |     .mailgo-details p { | ||||||
|  |       margin-top: 5px; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     .mailgo-modal-background { |     .mailgo-modal-background { | ||||||
|       position: absolute; |       position: absolute; | ||||||
|       top: 0; |       top: 0; | ||||||
| @@ -87,146 +87,165 @@ let styles = ` | |||||||
|     } |     } | ||||||
| `; | `; | ||||||
|  |  | ||||||
| // CSS | function mailgoInit() { | ||||||
| let styleSheet = document.createElement("style"); |   // ottengo tutti i mailto contenuti nella pagina | ||||||
| styleSheet.type = "text/css"; |   let mailgos = document.querySelectorAll('a[href^="mailto:"]:not(.no-mailgo)'); | ||||||
| styleSheet.innerText = styles; |  | ||||||
| document.head.appendChild(styleSheet); |  | ||||||
|  |  | ||||||
| console.log("mailgo is WIP!"); |   // CSS | ||||||
|  |   let styleSheet = document.createElement("style"); | ||||||
|  |   styleSheet.type = "text/css"; | ||||||
|  |   styleSheet.innerText = styles; | ||||||
|  |   document.head.appendChild(styleSheet); | ||||||
|  |  | ||||||
| // attivo mailgo su tutti gli elementi |   console.log("mailgo is WIP!"); | ||||||
| mailgos.forEach((mailgo, index) => { |  | ||||||
|   let mail = mailgo.href |  | ||||||
|     .split("?")[0] |  | ||||||
|     .split("mailto:")[1] |  | ||||||
|     .trim(); |  | ||||||
|  |  | ||||||
|   if (!validateEmail(mail)) return; |   // attivo mailgo su tutti gli elementi | ||||||
|  |   mailgos.forEach(function(mailgo, index) { | ||||||
|  |     let mail = mailgo.href | ||||||
|  |       .split("?")[0] | ||||||
|  |       .split("mailto:")[1] | ||||||
|  |       .trim(); | ||||||
|  |  | ||||||
|   let url = new URL(mailgo.href); |     let url = new URL(mailgo.href); | ||||||
|   let urlParams = new URLSearchParams(url.search); |     let urlParams = new URLSearchParams(url.search); | ||||||
|  |  | ||||||
|   let subject = urlParams.get("subject"); |     let cc = urlParams.get("cc"); | ||||||
|   let body = urlParams.get("body"); |     let bcc = urlParams.get("bcc"); | ||||||
|   let cc = urlParams.get("cc"); |     let subject = urlParams.get("subject"); | ||||||
|   let bcc = urlParams.get("bcc"); |     let body = urlParams.get("body"); | ||||||
|  |  | ||||||
|   let modal = document.createElement("div"); |     if (!validateEmail(mail)) return; | ||||||
|   modal.className = "mailgo-modal"; |  | ||||||
|   modal.setAttribute("data-index", index); |  | ||||||
|  |  | ||||||
|   let modalBackground = document.createElement("div"); |     let modal = document.createElement("div"); | ||||||
|   modalBackground.className = "mailgo-modal-background"; |     modal.className = "mailgo-modal"; | ||||||
|   modal.appendChild(modalBackground); |     modal.setAttribute("data-index", index); | ||||||
|  |  | ||||||
|   let modalContent = document.createElement("div"); |     // background | ||||||
|   modalContent.className = "mailgo-modal-content"; |     let modalBackground = document.createElement("div"); | ||||||
|   modal.appendChild(modalContent); |     modalBackground.className = "mailgo-modal-background"; | ||||||
|  |     modal.appendChild(modalBackground); | ||||||
|  |  | ||||||
|   // titolo (l'email) |     let modalContent = document.createElement("div"); | ||||||
|   let strong = document.createElement("strong"); |     modalContent.className = "mailgo-modal-content"; | ||||||
|   strong.className = "mailgo-title"; |     modal.appendChild(modalContent); | ||||||
|   let strongContent = document.createTextNode(mail); |  | ||||||
|   strong.appendChild(strongContent); |  | ||||||
|   modalContent.appendChild(strong); |  | ||||||
|  |  | ||||||
|   // details |     // titolo (l'email) | ||||||
|   let details = document.createElement("div"); |     let strong = document.createElement("strong"); | ||||||
|   details.className = "mailgo-details"; |     strong.className = "mailgo-title"; | ||||||
|  |     let strongContent = document.createTextNode(mail); | ||||||
|  |     strong.appendChild(strongContent); | ||||||
|  |     modalContent.appendChild(strong); | ||||||
|  |  | ||||||
|   modalContent.appendChild(details); |     // details | ||||||
|  |     let details = document.createElement("div"); | ||||||
|  |     details.className = "mailgo-details"; | ||||||
|  |  | ||||||
|   // Gmail |     let detailCC = document.createElement("p"); | ||||||
|   let gmail = document.createElement("a"); |     let ccSpan = document.createElement("span"); | ||||||
|   gmail.href = "https://mail.google.com/mail?extsrc=mailto&url=" + mailgo.href; |     ccSpan.className = "mailgo-weight-500"; | ||||||
|   gmail.classList.add("mailgo-open"); |     let ccContent = document.createTextNode("cc"); | ||||||
|   gmail.classList.add("gmail"); |     ccSpan.appendChild(ccContent); | ||||||
|   let gmailContent = document.createTextNode("open in "); |     let ccValue = document.createTextNode(": " + cc); | ||||||
|   gmail.appendChild(gmailContent); |     detailCC.appendChild(ccSpan); | ||||||
|   let gmailSpan = document.createElement("span"); |     detailCC.appendChild(ccValue); | ||||||
|   gmailSpan.className = "mailgo-weight-500"; |     details.appendChild(detailCC); | ||||||
|   let gmailSpanContent = document.createTextNode("Gmail"); |  | ||||||
|   gmailSpan.appendChild(gmailSpanContent); |  | ||||||
|   gmail.appendChild(gmailSpan); |  | ||||||
|  |  | ||||||
|   modalContent.appendChild(gmail); |     modalContent.appendChild(details); | ||||||
|  |  | ||||||
|   // Outlook |     // Gmail | ||||||
|   let outlook = document.createElement("a"); |     let gmail = document.createElement("a"); | ||||||
|   outlook.href = |     gmail.href = | ||||||
|     "https://outlook.office.com/owa/?rru=compose&to=" + mail + url.search; |       "https://mail.google.com/mail?extsrc=mailto&url=" + mailgo.href; | ||||||
|   outlook.classList.add("mailgo-open"); |     gmail.classList.add("mailgo-open"); | ||||||
|   outlook.classList.add("outlook"); |     gmail.classList.add("gmail"); | ||||||
|   let outlookContent = document.createTextNode("open in "); |     let gmailContent = document.createTextNode("open in "); | ||||||
|   outlook.appendChild(outlookContent); |     gmail.appendChild(gmailContent); | ||||||
|   let outlookSpan = document.createElement("span"); |     let gmailSpan = document.createElement("span"); | ||||||
|   outlookSpan.className = "mailgo-weight-500"; |     gmailSpan.className = "mailgo-weight-500"; | ||||||
|   let outlookSpanContent = document.createTextNode("Outlook"); |     let gmailSpanContent = document.createTextNode("Gmail"); | ||||||
|   outlookSpan.appendChild(outlookSpanContent); |     gmailSpan.appendChild(gmailSpanContent); | ||||||
|   outlook.appendChild(outlookSpan); |     gmail.appendChild(gmailSpan); | ||||||
|  |  | ||||||
|   modalContent.appendChild(outlook); |     modalContent.appendChild(gmail); | ||||||
|  |  | ||||||
|   // default |     // Outlook | ||||||
|   let open = document.createElement("a"); |     let outlook = document.createElement("a"); | ||||||
|   open.href = mailgo.href; |     outlook.href = | ||||||
|   open.classList.add("mailgo-open"); |       "https://outlook.office.com/owa/?rru=compose&to=" + mail + url.search; | ||||||
|   open.classList.add("mailgo-weight-500"); |     outlook.classList.add("mailgo-open"); | ||||||
|   let openContent = document.createTextNode("open"); |     outlook.classList.add("outlook"); | ||||||
|   open.appendChild(openContent); |     let outlookContent = document.createTextNode("open in "); | ||||||
|   modalContent.appendChild(open); |     outlook.appendChild(outlookContent); | ||||||
|  |     let outlookSpan = document.createElement("span"); | ||||||
|  |     outlookSpan.className = "mailgo-weight-500"; | ||||||
|  |     let outlookSpanContent = document.createTextNode("Outlook"); | ||||||
|  |     outlookSpan.appendChild(outlookSpanContent); | ||||||
|  |     outlook.appendChild(outlookSpan); | ||||||
|  |  | ||||||
|   // copia l'email |     modalContent.appendChild(outlook); | ||||||
|   let copy = document.createElement("a"); |  | ||||||
|   copy.href = "#mailgo-copy"; |  | ||||||
|   copy.classList.add("mailgo-copy"); |  | ||||||
|   copy.classList.add("mailgo-weight-500"); |  | ||||||
|   let copyContent = document.createTextNode("copy"); |  | ||||||
|   copy.appendChild(copyContent); |  | ||||||
|   copy.addEventListener( |  | ||||||
|     "click", |  | ||||||
|     event => { |  | ||||||
|       copyToClipboard(mail); |  | ||||||
|       copy.innerHTML = "copied!"; |  | ||||||
|     }, |  | ||||||
|     false |  | ||||||
|   ); |  | ||||||
|   modalContent.appendChild(copy); |  | ||||||
|  |  | ||||||
|   // details |     // default | ||||||
|   let by = document.createElement("a"); |     let open = document.createElement("a"); | ||||||
|   by.href = "https://mailgo.js.org"; |     open.href = mailgo.href; | ||||||
|   by.className = "mailgo-by"; |     open.classList.add("mailgo-open"); | ||||||
|   by.target = "_blank"; |     open.classList.add("mailgo-weight-500"); | ||||||
|  |     let openContent = document.createTextNode("open"); | ||||||
|  |     open.appendChild(openContent); | ||||||
|  |     modalContent.appendChild(open); | ||||||
|  |  | ||||||
|   let textBy = document.createTextNode("mailgo.js.org"); |     // copia l'email | ||||||
|   by.appendChild(textBy); |     let copy = document.createElement("a"); | ||||||
|  |     copy.href = "#mailgo-copy"; | ||||||
|  |     copy.classList.add("mailgo-copy"); | ||||||
|  |     copy.classList.add("mailgo-weight-500"); | ||||||
|  |     let copyContent = document.createTextNode("copy"); | ||||||
|  |     copy.appendChild(copyContent); | ||||||
|  |     copy.addEventListener( | ||||||
|  |       "click", | ||||||
|  |       function(event) { | ||||||
|  |         copyToClipboard(mail); | ||||||
|  |         copy.innerHTML = "copied!"; | ||||||
|  |       }, | ||||||
|  |       false | ||||||
|  |     ); | ||||||
|  |     modalContent.appendChild(copy); | ||||||
|  |  | ||||||
|   modalContent.appendChild(by); |     // details | ||||||
|  |     let by = document.createElement("a"); | ||||||
|  |     by.href = "https://mailgo.js.org"; | ||||||
|  |     by.className = "mailgo-by"; | ||||||
|  |     by.target = "_blank"; | ||||||
|  |  | ||||||
|   mailgo.parentNode.insertBefore(modal, mailgo.nextSibling); |     let textBy = document.createTextNode("mailgo.js.org"); | ||||||
|  |     by.appendChild(textBy); | ||||||
|  |  | ||||||
|   mailgo.addEventListener( |     modalContent.appendChild(by); | ||||||
|     "click", |  | ||||||
|     event => { |  | ||||||
|       // blocco l'esecuzione normale del mailto: |  | ||||||
|       event.preventDefault(); |  | ||||||
|  |  | ||||||
|       // setto il modal come attivo |     mailgo.parentNode.insertBefore(modal, mailgo.nextSibling); | ||||||
|       mailgo.nextElementSibling.classList.add("is-active"); |  | ||||||
|     }, |  | ||||||
|     false |  | ||||||
|   ); |  | ||||||
|  |  | ||||||
|   modalBackground.addEventListener( |     mailgo.addEventListener( | ||||||
|     "click", |       "click", | ||||||
|     event => { |       function(event) { | ||||||
|       mailgo.nextElementSibling.classList.remove("is-active"); |         // blocco l'esecuzione normale del mailto: | ||||||
|     }, |         event.preventDefault(); | ||||||
|     false |  | ||||||
|   ); |         // setto il modal come attivo | ||||||
| }); |         mailgo.nextElementSibling.classList.add("is-active"); | ||||||
|  |       }, | ||||||
|  |       false | ||||||
|  |     ); | ||||||
|  |  | ||||||
|  |     modalBackground.addEventListener( | ||||||
|  |       "click", | ||||||
|  |       function(event) { | ||||||
|  |         mailgo.nextElementSibling.classList.remove("is-active"); | ||||||
|  |       }, | ||||||
|  |       false | ||||||
|  |     ); | ||||||
|  |   }); | ||||||
|  | } | ||||||
|  |  | ||||||
|  | document.addEventListener("DOMContentLoaded", mailgoInit, false); | ||||||
|  |  | ||||||
| function validateEmail(email) { | function validateEmail(email) { | ||||||
|   var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; |   var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; | ||||||
|   | |||||||
							
								
								
									
										2
									
								
								dist/mailgo.min.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								dist/mailgo.min.js
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							| @@ -7,7 +7,13 @@ let styles = ` | |||||||
|     } |     } | ||||||
|     .mailgo-title { |     .mailgo-title { | ||||||
|       display: block; |       display: block; | ||||||
|       margin-bottom: 16px; |       margin-bottom: 5px; | ||||||
|  |     } | ||||||
|  |     .mailgo-details { | ||||||
|  |       font-size: 12px; | ||||||
|  |     } | ||||||
|  |     .mailgo-details p { | ||||||
|  |       margin-top: 5px; | ||||||
|     } |     } | ||||||
|     .mailgo-modal-background { |     .mailgo-modal-background { | ||||||
|       position: absolute; |       position: absolute; | ||||||
| @@ -100,20 +106,21 @@ function mailgoInit() { | |||||||
|       .split("mailto:")[1] |       .split("mailto:")[1] | ||||||
|       .trim(); |       .trim(); | ||||||
|  |  | ||||||
|     if (!validateEmail(mail)) return; |  | ||||||
|  |  | ||||||
|     let url = new URL(mailgo.href); |     let url = new URL(mailgo.href); | ||||||
|     let urlParams = new URLSearchParams(url.search); |     let urlParams = new URLSearchParams(url.search); | ||||||
|  |  | ||||||
|     let subject = urlParams.get("subject"); |  | ||||||
|     let body = urlParams.get("body"); |  | ||||||
|     let cc = urlParams.get("cc"); |     let cc = urlParams.get("cc"); | ||||||
|     let bcc = urlParams.get("bcc"); |     let bcc = urlParams.get("bcc"); | ||||||
|  |     let subject = urlParams.get("subject"); | ||||||
|  |     let bodyMail = urlParams.get("body"); | ||||||
|  |  | ||||||
|  |     if (!validateEmail(mail)) return; | ||||||
|  |  | ||||||
|     let modal = document.createElement("div"); |     let modal = document.createElement("div"); | ||||||
|     modal.className = "mailgo-modal"; |     modal.className = "mailgo-modal"; | ||||||
|     modal.setAttribute("data-index", index); |     modal.setAttribute("data-index", index); | ||||||
|  |  | ||||||
|  |     // background | ||||||
|     let modalBackground = document.createElement("div"); |     let modalBackground = document.createElement("div"); | ||||||
|     modalBackground.className = "mailgo-modal-background"; |     modalBackground.className = "mailgo-modal-background"; | ||||||
|     modal.appendChild(modalBackground); |     modal.appendChild(modalBackground); | ||||||
| @@ -133,6 +140,54 @@ function mailgoInit() { | |||||||
|     let details = document.createElement("div"); |     let details = document.createElement("div"); | ||||||
|     details.className = "mailgo-details"; |     details.className = "mailgo-details"; | ||||||
|  |  | ||||||
|  |     if (cc != "") { | ||||||
|  |       let detailCC = document.createElement("p"); | ||||||
|  |       let ccSpan = document.createElement("span"); | ||||||
|  |       ccSpan.className = "mailgo-weight-500"; | ||||||
|  |       let ccContent = document.createTextNode("cc"); | ||||||
|  |       ccSpan.appendChild(ccContent); | ||||||
|  |       let ccValue = document.createTextNode(": " + cc); | ||||||
|  |       detailCC.appendChild(ccSpan); | ||||||
|  |       detailCC.appendChild(ccValue); | ||||||
|  |       details.appendChild(detailCC); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     if (bcc != "") { | ||||||
|  |       let detailBCC = document.createElement("p"); | ||||||
|  |       let bccSpan = document.createElement("span"); | ||||||
|  |       bccSpan.className = "mailgo-weight-500"; | ||||||
|  |       let bccContent = document.createTextNode("bcc"); | ||||||
|  |       bccSpan.appendChild(ccContent); | ||||||
|  |       let bccValue = document.createTextNode(": " + bcc); | ||||||
|  |       detailBCC.appendChild(bccSpan); | ||||||
|  |       detailBCC.appendChild(bccValue); | ||||||
|  |       details.appendChild(detailBCC); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     if (subject != "") { | ||||||
|  |       let detailSUBJECT = document.createElement("p"); | ||||||
|  |       let subjectSpan = document.createElement("span"); | ||||||
|  |       subjectSpan.className = "mailgo-weight-500"; | ||||||
|  |       let subjectContent = document.createTextNode("cc"); | ||||||
|  |       subjectSpan.appendChild(subjectContent); | ||||||
|  |       let subjectValue = document.createTextNode(": " + subject); | ||||||
|  |       detailSUBJECT.appendChild(subjectSpan); | ||||||
|  |       detailSUBJECT.appendChild(subjectValue); | ||||||
|  |       details.appendChild(detailSUBJECT); | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     if (bodyMail != "") { | ||||||
|  |       let detailBODY = document.createElement("p"); | ||||||
|  |       let bodySpan = document.createElement("span"); | ||||||
|  |       bodySpan.className = "mailgo-weight-500"; | ||||||
|  |       let bodyContent = document.createTextNode("cc"); | ||||||
|  |       bodySpan.appendChild(bodyContent); | ||||||
|  |       let bodyValue = document.createTextNode(": " + body); | ||||||
|  |       detailBODY.appendChild(bodySpan); | ||||||
|  |       detailBODY.appendChild(bodyValue); | ||||||
|  |       details.appendChild(detailBODY); | ||||||
|  |     } | ||||||
|  |  | ||||||
|     modalContent.appendChild(details); |     modalContent.appendChild(details); | ||||||
|  |  | ||||||
|     // Gmail |     // Gmail | ||||||
| @@ -228,7 +283,7 @@ function mailgoInit() { | |||||||
|   }); |   }); | ||||||
| } | } | ||||||
|  |  | ||||||
| document.addEventListener("load", mailgoInit); | document.addEventListener("DOMContentLoaded", mailgoInit, false); | ||||||
|  |  | ||||||
| function validateEmail(email) { | function validateEmail(email) { | ||||||
|   var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; |   var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Matteo Manzinello
					Matteo Manzinello