diff --git a/css/alertify.css b/css/alertify.css new file mode 100644 index 0000000..d8f48c5 --- /dev/null +++ b/css/alertify.css @@ -0,0 +1,158 @@ +.alertify, +.alertify-show { + -webkit-transition: all 500ms cubic-bezier(0.175, 0.885, 0.320, 1.275); + -moz-transition: all 500ms cubic-bezier(0.175, 0.885, 0.320, 1.275); + -ms-transition: all 500ms cubic-bezier(0.175, 0.885, 0.320, 1.275); + -o-transition: all 500ms cubic-bezier(0.175, 0.885, 0.320, 1.275); + transition: all 500ms cubic-bezier(0.175, 0.885, 0.320, 1.275); /* easeOutBack */ +} +.alertify-hide { + -webkit-transition: all 250ms cubic-bezier(0.600, -0.280, 0.735, 0.045); + -moz-transition: all 250ms cubic-bezier(0.600, -0.280, 0.735, 0.045); + -ms-transition: all 250ms cubic-bezier(0.600, -0.280, 0.735, 0.045); + -o-transition: all 250ms cubic-bezier(0.600, -0.280, 0.735, 0.045); + transition: all 250ms cubic-bezier(0.600, -0.280, 0.735, 0.045); /* easeInBack */ +} +.alertify-cover { + background-color: black; + /* IE8 */ + -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=40)"; + /* IE8 */ + background-color: rgba(0, 0, 0, 0.4); + position: fixed; + left: 0; + right: 0; + top: 0; + bottom: 0; + /*display: none;*/ + z-index: 10000; +} +.alertify-cover-hidden { + display: none; +} +.alertify { + width: 250px; + padding: 20px; + background: rgb(255, 255, 255) none repeat scroll 0 0; + display: block; + min-height: 150px; + font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; + border-radius: 5px; + box-sizing: border-box; + text-align: center; + margin: auto; + overflow-x: hidden; + overflow-y: auto; + position: fixed; + z-index: 99999; + top: 50px; left: 50%; + margin-left: -275px; + opacity: 1; +} +.alertify-hidden { + -webkit-transform: translate(0,-150px); + -moz-transform: translate(0,-150px); + -ms-transform: translate(0,-150px); + -o-transform: translate(0,-150px); + transform: translate(0,-150px); + opacity: 0; + display: none; +} +/* overwrite display: none; for everything except IE6-8 */ +:root *> .alertify-hidden { + display: block; + visibility: hidden; +} +.alertify-dialog { + padding: 25px; +} +.alertify-resetFocus { + border: 0; + clip: rect(0 0 0 0); + height: 1px; + margin: -1px; + overflow: hidden; + padding: 0; + position: absolute; + width: 1px; +} +.alertify-inner { + text-align: center; +} +.alertify-text, .alertify-message { + display: block; + font-size: 18px; + text-align: center; + font-weight: 300; + position: relative; + float: none; + margin: 0; + padding: 0; + line-height: normal; + color: #545454; +} +.alertify-buttons { +} +.alertify-button, +.alertify-button:hover, +.alertify-button:active, +.alertify-button:visited { + background-color: rgb(43, 120, 193); + border-left-color: rgb(48, 133, 214); + border-right-color: rgb(48, 133, 214); + border: 0; + border-radius: 3px; + box-shadow: none; + color: #fff; + cursor: pointer; + font-size: 17px; + font-weight: 500; + margin: 0 5px; + padding: 10px 32px; + white-space: nowrap; + font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; + text-align: center; +} +.alertify-button:focus { + outline: none; + box-shadow: 0 0 2px rgba(128, 179, 235, 0.5), inset 0 0 0 1px rgba(0, 0, 0, 0.05); } +.alertify-button:hover { + background-color: #7ecff4; } +.alertify-button:active { + background-color: #5dc2f1; } +.alertify-button.cancel { + background-color: #C1C1C1; } +.alertify-button.cancel:hover { + background-color: #b9b9b9; } +.alertify-button.cancel:active { + background-color: #a8a8a8; } +.alertify-button.cancel:focus { + box-shadow: rgba(197, 205, 211, 0.8) 0px 0px 2px, rgba(0, 0, 0, 0.0470588) 0px 0px 0px 1px + inset !important; } +@media only screen and (max-width: 680px) { + .alertify { + width: 90%; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + } + .alertify { + left: 5%; + margin: 0; + } +} +.alertify-button:hover, +.alertify-button:focus { + outline: none; + background-image: -webkit-linear-gradient(top, rgba(0,0,0,.1), rgba(0,0,0,0)); + background-image: -moz-linear-gradient(top, rgba(0,0,0,.1), rgba(0,0,0,0)); + background-image: -ms-linear-gradient(top, rgba(0,0,0,.1), rgba(0,0,0,0)); + background-image: -o-linear-gradient(top, rgba(0,0,0,.1), rgba(0,0,0,0)); + background-image: linear-gradient(top, rgba(0,0,0,.1), rgba(0,0,0,0)); +} +.alertify-button-ok, +.alertify-button-ok:hover, +.alertify-button-ok:focus { + background-color: #5CB811; + border: 1px solid #3B7808; +} diff --git a/index.php b/index.php index bca25bf..186253a 100644 --- a/index.php +++ b/index.php @@ -3,11 +3,35 @@ ini_set("display_errors", "off"); ini_set("log_errors", "on"); ini_set('error_log', dirname(__FILE__) . '/log.log'); -$config = include 'config.php'; +$config = include dirname(__FILE__) . '/config.php'; // launch by bookmarklet if (isset($_GET['v'])) { header("Content-type: text/javascript"); + echo 'function loadScript( url, callback ) { + var script = document.createElement("script"); + script.type = "text/javascript"; + if(script.readyState) { //IE + script.onreadystatechange = function() { + if ( script.readyState === "loaded" || script.readyState === "complete" ) { + script.onreadystatechange = null; + callback(); + } + }; + } else { //Others + script.onload = function() { + callback(); + }; + } + + script.src = url; + document.head.appendChild(script); +}'; + echo 'var style = document.createElement("link"); + style.rel = "stylesheet"; + style.type = "text/css"; + style.href = "//' . $_SERVER['HTTP_HOST'].'/css/alertify.css"; + document.head.appendChild(style);'; $email = isset($_GET['m']) ? $_GET['m'] : ''; $url = isset($_GET['u']) ? $_GET['u'] : ''; $title = isset($_GET['t']) ? $_GET['t'] : ''; @@ -44,7 +68,8 @@ if (isset($_GET['v'])) { else $mail->Body = '
' . nl2br($body) . '
'; if ($mail->send()) { - echo 'alert("Email Sent.");'; + echo 'loadScript("//' . $_SERVER['HTTP_HOST'].' /js/alertify.min.js", +function() { alertify.alert("Email Sent."); });'; } else { echo ':('; } @@ -73,7 +98,7 @@ if (isset($_GET['v'])) { if ($_POST['html'] == 'on') { // bookmarklet pour l'envoi en HTML $include = 'Bookmark by email'; } else { // bookmarklet pour l'envoi normal - $include = "Bookmark by email"; + $include = "Bookmark by email"; } //ADDING STATS diff --git a/js/alertify.min.js b/js/alertify.min.js new file mode 100644 index 0000000..027f8b7 --- /dev/null +++ b/js/alertify.min.js @@ -0,0 +1,2 @@ +/*! alertify - v0.3.11 - 2013-10-08 */ +!function(a,b){"use strict";var c,d=a.document;c=function(){var c,e,f,g,h,i,j,k,l,m,n,o,p,q={},r={},s=!1,t={ENTER:13,ESC:27,SPACE:32},u=[];return r={buttons:{holder:'',submit:'',ok:'',cancel:''},input:'
',message:'

{{message}}

',log:'
{{message}}
'},p=function(){var a,c,e=!1,f=d.createElement("fakeelement"),g={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"otransitionend",transition:"transitionend"};for(a in g)if(f.style[a]!==b){c=g[a],e=!0;break}return{type:c,supported:e}},c=function(a){return d.getElementById(a)},q={labels:{ok:"OK",cancel:"Cancel"},delay:5e3,buttonReverse:!1,buttonFocus:"ok",transition:b,addListeners:function(a){var b,c,i,j,k,l="undefined"!=typeof f,m="undefined"!=typeof e,n="undefined"!=typeof o,p="",q=this;b=function(b){return"undefined"!=typeof b.preventDefault&&b.preventDefault(),i(b),"undefined"!=typeof o&&(p=o.value),"function"==typeof a&&("undefined"!=typeof o?a(!0,p):a(!0)),!1},c=function(b){return"undefined"!=typeof b.preventDefault&&b.preventDefault(),i(b),"function"==typeof a&&a(!1),!1},i=function(){q.hide(),q.unbind(d.body,"keyup",j),q.unbind(g,"focus",k),l&&q.unbind(f,"click",b),m&&q.unbind(e,"click",c)},j=function(a){var d=a.keyCode;(d===t.SPACE&&!n||n&&d===t.ENTER)&&b(a),d===t.ESC&&m&&c(a)},k=function(){n?o.focus():!m||q.buttonReverse?f.focus():e.focus()},this.bind(g,"focus",k),this.bind(h,"focus",k),l&&this.bind(f,"click",b),m&&this.bind(e,"click",c),this.bind(d.body,"keyup",j),this.transition.supported||this.setFocus()},bind:function(a,b,c){"function"==typeof a.addEventListener?a.addEventListener(b,c,!1):a.attachEvent&&a.attachEvent("on"+b,c)},handleErrors:function(){if("undefined"!=typeof a.onerror){var b=this;return a.onerror=function(a,c,d){b.error("["+a+" on line "+d+" of "+c+"]",0)},!0}return!1},appendButtons:function(a,b){return this.buttonReverse?b+a:a+b},build:function(a){var b="",c=a.type,d=a.message,e=a.cssClass||"";switch(b+='
',b+='Reset Focus',"none"===q.buttonFocus&&(b+=''),"prompt"===c&&(b+='
'),b+='
',b+=r.message.replace("{{message}}",d),"prompt"===c&&(b+=r.input),b+=r.buttons.holder,b+="
","prompt"===c&&(b+="
"),b+='Reset Focus',b+="
",c){case"confirm":b=b.replace("{{buttons}}",this.appendButtons(r.buttons.cancel,r.buttons.ok)),b=b.replace("{{ok}}",this.labels.ok).replace("{{cancel}}",this.labels.cancel);break;case"prompt":b=b.replace("{{buttons}}",this.appendButtons(r.buttons.cancel,r.buttons.submit)),b=b.replace("{{ok}}",this.labels.ok).replace("{{cancel}}",this.labels.cancel);break;case"alert":b=b.replace("{{buttons}}",r.buttons.ok),b=b.replace("{{ok}}",this.labels.ok)}return l.className="alertify alertify-"+c+" "+e,k.className="alertify-cover",b},close:function(a,b){var c,d,e=b&&!isNaN(b)?+b:this.delay,f=this;this.bind(a,"click",function(){c(a)}),d=function(a){a.stopPropagation(),f.unbind(this,f.transition.type,d),m.removeChild(this),m.hasChildNodes()||(m.className+=" alertify-logs-hidden")},c=function(a){"undefined"!=typeof a&&a.parentNode===m&&(f.transition.supported?(f.bind(a,f.transition.type,d),a.className+=" alertify-log-hide"):(m.removeChild(a),m.hasChildNodes()||(m.className+=" alertify-logs-hidden")))},0!==b&&setTimeout(function(){c(a)},e)},dialog:function(a,b,c,e,f){j=d.activeElement;var g=function(){m&&null!==m.scrollTop&&k&&null!==k.scrollTop||g()};if("string"!=typeof a)throw new Error("message must be a string");if("string"!=typeof b)throw new Error("type must be a string");if("undefined"!=typeof c&&"function"!=typeof c)throw new Error("fn must be a function");return this.init(),g(),u.push({type:b,message:a,callback:c,placeholder:e,cssClass:f}),s||this.setup(),this},extend:function(a){if("string"!=typeof a)throw new Error("extend method must have exactly one paramter");return function(b,c){return this.log(b,a,c),this}},hide:function(){var a,b=this;u.splice(0,1),u.length>0?this.setup(!0):(s=!1,a=function(c){c.stopPropagation(),b.unbind(l,b.transition.type,a)},this.transition.supported?(this.bind(l,this.transition.type,a),l.className="alertify alertify-hide alertify-hidden"):l.className="alertify alertify-hide alertify-hidden alertify-isHidden",k.className="alertify-cover alertify-cover-hidden",j.focus())},init:function(){d.createElement("nav"),d.createElement("article"),d.createElement("section"),null==c("alertify-cover")&&(k=d.createElement("div"),k.setAttribute("id","alertify-cover"),k.className="alertify-cover alertify-cover-hidden",d.body.appendChild(k)),null==c("alertify")&&(s=!1,u=[],l=d.createElement("section"),l.setAttribute("id","alertify"),l.className="alertify alertify-hidden",d.body.appendChild(l)),null==c("alertify-logs")&&(m=d.createElement("section"),m.setAttribute("id","alertify-logs"),m.className="alertify-logs alertify-logs-hidden",d.body.appendChild(m)),d.body.setAttribute("tabindex","0"),this.transition=p()},log:function(a,b,c){var d=function(){m&&null!==m.scrollTop||d()};return this.init(),d(),m.className="alertify-logs",this.notify(a,b,c),this},notify:function(a,b,c){var e=d.createElement("article");e.className="alertify-log"+("string"==typeof b&&""!==b?" alertify-log-"+b:""),e.innerHTML=a,m.appendChild(e),setTimeout(function(){e.className=e.className+" alertify-log-show"},50),this.close(e,c)},set:function(a){var b;if("object"!=typeof a&&a instanceof Array)throw new Error("args must be an object");for(b in a)a.hasOwnProperty(b)&&(this[b]=a[b])},setFocus:function(){o?(o.focus(),o.select()):i.focus()},setup:function(a){var d,j=u[0],k=this;s=!0,d=function(a){a.stopPropagation(),k.setFocus(),k.unbind(l,k.transition.type,d)},this.transition.supported&&!a&&this.bind(l,this.transition.type,d),l.innerHTML=this.build(j),g=c("alertify-resetFocus"),h=c("alertify-resetFocusBack"),f=c("alertify-ok")||b,e=c("alertify-cancel")||b,i="cancel"===q.buttonFocus?e:"none"===q.buttonFocus?c("alertify-noneFocus"):f,o=c("alertify-text")||b,n=c("alertify-form")||b,"string"==typeof j.placeholder&&""!==j.placeholder&&(o.value=j.placeholder),a&&this.setFocus(),this.addListeners(j.callback)},unbind:function(a,b,c){"function"==typeof a.removeEventListener?a.removeEventListener(b,c,!1):a.detachEvent&&a.detachEvent("on"+b,c)}},{alert:function(a,b,c){return q.dialog(a,"alert",b,"",c),this},confirm:function(a,b,c){return q.dialog(a,"confirm",b,"",c),this},extend:q.extend,init:q.init,log:function(a,b,c){return q.log(a,b,c),this},prompt:function(a,b,c,d){return q.dialog(a,"prompt",b,c,d),this},success:function(a,b){return q.log(a,"success",b),this},error:function(a,b){return q.log(a,"error",b),this},set:function(a){q.set(a)},labels:q.labels,debug:q.handleErrors}},"function"==typeof define?define([],function(){return new c}):"undefined"==typeof a.alertify&&(a.alertify=new c)}(this);