actions object

This commit is contained in:
Matteo Manzinello 2019-05-21 09:13:13 +02:00
parent 2b9c2fe135
commit eec0f14a35
3 changed files with 64 additions and 64 deletions

60
dist/mailgo.js vendored
View File

@ -217,17 +217,17 @@ var mailgoRender = function mailgoRender(mailgo) {
bodyMail ? (bodyEl.style.display = "block", bodyValueEl.textContent = bodyMail) : bodyEl.style.display = "none"; // add the actions
gmailButton.addEventListener("click", function () {
openGmailAction(mailtoHref);
actions.openGmail(mailtoHref);
}, false);
outlookButton.addEventListener("click", function () {
openOutlookAction(mail, url);
actions.openOutlook(mail, url);
}, false);
var encEmail = encodeEmail(mail);
openButton.addEventListener("click", function () {
openDefaultAction(encEmail);
actions.openDefault(encEmail);
}, false);
copyButton.addEventListener("click", function (event) {
copyAction(mail, copyButton);
actions.copy(mail, copyButton);
}, false); // show the mailgo
showMailgo(); // listener keyDown
@ -238,24 +238,23 @@ var mailgoRender = function mailgoRender(mailgo) {
}; // actions
var openGmailAction = function openGmailAction(mailtoHref) {
window.open("https://mail.google.com/mail?extsrc=mailto&url=" + encodeURIComponent(mailtoHref), "_blank");
};
var openOutlookAction = function openOutlookAction(mail, url) {
window.open("https://outlook.office.com/owa/?rru=compose&to=" + encodeURIComponent(mail) + url.search.replace(/^[$]/, "&"), "_blank");
};
var openDefaultAction = function openDefaultAction(encEmail) {
mailToEncoded(encEmail);
};
var copyAction = function copyAction(mail, copyButton) {
copyToClipboard(mail);
copyButton.textContent = "copied";
var timeout = setTimeout(function () {
copyButton.textContent = "copy";
}, 999);
var actions = {
openGmail: function openGmail(mailtoHref) {
window.open("https://mail.google.com/mail?extsrc=mailto&url=" + encodeURIComponent(mailtoHref), "_blank");
},
openOutlook: function openOutlook(mail, url) {
window.open("https://outlook.office.com/owa/?rru=compose&to=" + encodeURIComponent(mail) + url.search.replace(/^[$]/, "&"), "_blank");
},
openDefault: function openDefault(encEmail) {
mailToEncoded(encEmail);
},
copy: function copy(mail, copyButton) {
copyToClipboard(mail);
copyButton.textContent = "copied";
var timeout = setTimeout(function () {
copyButton.textContent = "copy";
}, 999);
}
};
/**
* mailgoCheckRender
@ -265,7 +264,6 @@ var copyAction = function copyAction(mail, copyButton) {
* ); and the new a[mailgo]
*/
var mailgoCheckRender = function mailgoCheckRender(event) {
// the target element
var e = event.target; // check if the id=mailgo exists in the body
@ -291,7 +289,7 @@ var mailgoCheckRender = function mailgoCheckRender(event) {
var mailgoKeydown = function mailgoKeydown(mail, url, mailtoHref, encEmail, copyButton) {
// if mailgo is not showing do nothing
if (mailgoHidden()) return;
if (!mailgoIsShowing()) return;
switch (event.keyCode) {
case 27:
@ -301,23 +299,23 @@ var mailgoKeydown = function mailgoKeydown(mail, url, mailtoHref, encEmail, copy
case 71:
// g -> open GMail
openGmailAction(mailtoHref);
actions.openGmail(mailtoHref);
break;
case 79:
// o -> open Outlook
openOutlookAction(mail, url);
actions.openOutlook(mail, url);
break;
case 32:
case 13:
// spacebar or enter -> open default
openDefaultAction(encEmail);
actions.openDefault(encEmail);
break;
case 67:
// c -> copy
copyAction(mail, copyButton);
actions.copy(mail, copyButton);
break;
default:
@ -330,7 +328,7 @@ var mailgoKeydown = function mailgoKeydown(mail, url, mailtoHref, encEmail, copy
document.addEventListener("DOMContentLoaded", mailgoInit, false); // event listener on body, if the element is mailgo-compatible the mailgo modal will be rendered
document.body.addEventListener("click", mailgoCheckRender, false); // validate the email with regex
document.body.addEventListener("click", mailgoCheckRender, true); // validate the email with regex
var validateEmail = 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,}))$/;
@ -367,8 +365,8 @@ var hideMailgo = function hideMailgo() {
}; // is the modal hidden?
var mailgoHidden = function mailgoHidden() {
return getE("mailgo").style.display === "none";
var mailgoIsShowing = function mailgoIsShowing() {
return getE("mailgo").style.display === "flex";
}; // decrypt email

2
dist/mailgo.min.js vendored

File diff suppressed because one or more lines are too long

View File

@ -277,7 +277,7 @@ const mailgoRender = mailgo => {
gmailButton.addEventListener(
"click",
() => {
openGmailAction(mailtoHref);
actions.openGmail(mailtoHref);
},
false
);
@ -285,7 +285,7 @@ const mailgoRender = mailgo => {
outlookButton.addEventListener(
"click",
() => {
openOutlookAction(mail, url);
actions.openOutlook(mail, url);
},
false
);
@ -294,7 +294,7 @@ const mailgoRender = mailgo => {
openButton.addEventListener(
"click",
() => {
openDefaultAction(encEmail);
actions.openDefault(encEmail);
},
false
);
@ -302,7 +302,7 @@ const mailgoRender = mailgo => {
copyButton.addEventListener(
"click",
event => {
copyAction(mail, copyButton);
actions.copy(mail, copyButton);
},
false
);
@ -321,33 +321,35 @@ const mailgoRender = mailgo => {
};
// actions
let openGmailAction = mailtoHref => {
window.open(
"https://mail.google.com/mail?extsrc=mailto&url=" +
encodeURIComponent(mailtoHref),
"_blank"
);
};
const actions = {
openGmail: mailtoHref => {
window.open(
"https://mail.google.com/mail?extsrc=mailto&url=" +
encodeURIComponent(mailtoHref),
"_blank"
);
},
let openOutlookAction = (mail, url) => {
window.open(
"https://outlook.office.com/owa/?rru=compose&to=" +
encodeURIComponent(mail) +
url.search.replace(/^[$]/, "&"),
"_blank"
);
};
openOutlook: (mail, url) => {
window.open(
"https://outlook.office.com/owa/?rru=compose&to=" +
encodeURIComponent(mail) +
url.search.replace(/^[$]/, "&"),
"_blank"
);
},
let openDefaultAction = encEmail => {
mailToEncoded(encEmail);
};
openDefault: encEmail => {
mailToEncoded(encEmail);
},
let copyAction = (mail, copyButton) => {
copyToClipboard(mail);
copyButton.textContent = "copied";
let timeout = setTimeout(() => {
copyButton.textContent = "copy";
}, 999);
copy: (mail, copyButton) => {
copyToClipboard(mail);
copyButton.textContent = "copied";
let timeout = setTimeout(() => {
copyButton.textContent = "copy";
}, 999);
}
};
/**
@ -398,20 +400,20 @@ const mailgoKeydown = (mail, url, mailtoHref, encEmail, copyButton) => {
break;
case 71:
// g -> open GMail
openGmailAction(mailtoHref);
actions.openGmail(mailtoHref);
break;
case 79:
// o -> open Outlook
openOutlookAction(mail, url);
actions.openOutlook(mail, url);
break;
case 32:
case 13:
// spacebar or enter -> open default
openDefaultAction(encEmail);
actions.openDefault(encEmail);
break;
case 67:
// c -> copy
copyAction(mail, copyButton);
actions.copy(mail, copyButton);
break;
default:
return;