From 365bbef5dae795e859d06be79f2f3c34f63a0c54 Mon Sep 17 00:00:00 2001 From: Valentin Boulanger Date: Fri, 2 Apr 2021 18:30:44 +0200 Subject: [PATCH] =?UTF-8?q?Ajout=20du=20contr=C3=B4le=20MOJICAlert?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- MOJICAlert/256w/danger.png | Bin 0 -> 2002 bytes MOJICAlert/256w/success.png | Bin 0 -> 2075 bytes MOJICAlert/256w/warning.png | Bin 0 -> 2028 bytes MOJICAlert/MOJICAlert.js | 72 ++++++++++++++++++++++++++++++++++++ MOJICAlert/space_age.ttf | Bin 0 -> 26736 bytes 5 files changed, 72 insertions(+) create mode 100644 MOJICAlert/256w/danger.png create mode 100644 MOJICAlert/256w/success.png create mode 100644 MOJICAlert/256w/warning.png create mode 100644 MOJICAlert/MOJICAlert.js create mode 100644 MOJICAlert/space_age.ttf diff --git a/MOJICAlert/256w/danger.png b/MOJICAlert/256w/danger.png new file mode 100644 index 0000000000000000000000000000000000000000..de58354e4a2bb6bba752ae48192d9ff951647732 GIT binary patch literal 2002 zcmeH|`BPI@6vuA}ElUlG4yY&uH=K^vFh<3)T0n(L#WKdo8tPO*0YM@}mhd8DjY~zQ zl*I}Lq*e`kBLoOZKt^L5NT3)Hl}(l)Bm{`~2rtR&3;iGZOZ&r}bMHO(-Z|&Y`F`&8 zV@D4YtR1WY0EEB*{}2Fh*c1mWKgCQ$@}o1Du}TUEr2}BU%`|XZu3c7T!{IL^(WV#wEfUK zH+kviQ(uR(zbSr!)3`FiC+DEvVj|NRPz6VY$Ekni8tV;EBb};1q-8rA8Y&r~6xxbN zSZjPaG-9NNLq3u4QrgdGVJE#Mj*XsBcx7XBt(Z z#V0fxcID6R@Kmc(jBYy+C$)k#k-LnRLsU&7yQ-mI*TUJFrQyQmn|3^q39XCJEDu(1 zj*GjFboHKo15cHCZq|N37H69rVt{>i8<|fHcj|~&I%Ud4zrL1%U6~bxj9^TWd;pPn9`+(oLIe46a@s=&EkJ#PKf(; z#lgui|Ed>qv?RlBAF3_{ch?e=`9=!Qb1786dv(CbQ&9?1mkO#*hb!ZC~;JjXHGu-oSN^c>wM>1DN73v2#iJZfV zIe#8Wa=nQ;1T*#M>gZ}JGj5WMcFJPXy5C7RO%Eh=@H8)*sPDBhavpY$ zM-afm|FuiB^x7Wy_Tvt?!oa!65ty$5mM&mb5VimZTyd;uGtg!ZvaSAi{Ocuo{ftUu z5W$P@EkIkCW*^A?(*|U#Nua8P8pq5YjbG&R>#2DiqK%|ZuNUNE$OjjT0YT(wBrKLs zbJM*pKI@G-u6R=xH#j4iG8mRsvXj2|R66C6~mmN)wEWB+@BE`ylme3@AXWnOGf7 zmt0V#BB|8i*_ba&#{7;E6Vr1%tV}^5ItC9PoA7wp?KbM`F&DXzY&NHi(dINM12o$N!^j5;A05sv6Z>l!B11z!wz=PnD^Ce|p4G<%Zj+5HD(FlVsj zF1l4OCF;q>JZB6%BOT~90f&^XU|*kMiJUTF_~QM3Ql}a*=8ldO0&UCUvGy9An+J!+ zu43@TCp3i_v~AcuoD8i!!s;Cix;Wq0)yGt(_n)2XDb4etFEiI*V-oPR)jgg3iMFY^ z3Ag9n9caSDSxDg6nrYYKkU1}J(58`>0b-&nA4^tu_93J?HR8A)?tnxka*_h65Z3(k z4_qNIkv>;;zWVZW&yOZmJA71mU^Hpf!vgc7Y06Nu?&doF0tfRf?MI51Q)`oJ7-qh% i;x()O>jDm-P*A+?#&~ulf7tX_gTRAF{i}VWv;PMF*ifbb literal 0 HcmV?d00001 diff --git a/MOJICAlert/256w/success.png b/MOJICAlert/256w/success.png new file mode 100644 index 0000000000000000000000000000000000000000..037b235b7f05a992cfd8487fd2f7b3b33aa2506b GIT binary patch literal 2075 zcmeH|`BRfe7{@mphNE(f7OF+ST4_-f9Euz<2@)8=Dk>NP;M5p&TxrHfFvdm;7vl3w{MvK4NiaP4?DX%&+N0`eRjW} zy>c}4z|JMOY7j4aipey(1 zve-dR^?kC7*+=WHK7S&vczE)T8bfnh(v=*OG}#x?eCW|Sq(^5k-~D zganZhNBB_ps~=qGgCJuVspE3&yGg`DX`#r&ag`xh*7PVz+M~OU%WZdD9@AD)Sooyc zb~?dRu09~d-xVT6T(0R(6@9T4dL=AB9Sfs6f;q_batD;s~)nr_2aveVP=hE zR?+K6`6_jXYs-o2nt?8cz5u`YD6>%jmdY9-gGO;pt#PFE*u)6ixciA1&3J~kcP^+9 zRYyQrbWk}QW>&S)^|DKcnVi~zUEih9msV>Z${bU!wtC+Z?3sn>xezX#4pE2wD^VE2@vx`Y4?XRZ9IySfQ_`;$-=_H7L!Xg z0<9(>&m5R+0A?=0<`8f$2L2xZ2R>j)2AWmNlCRyti?lFuyk?kmZx^W1O1FkfnpR(u zDsJR&7LWxMygt+Bs+6qdf)dMyM0ehN_RKBsjA1^+HQ4cKcqy{qsF%kk_orJg)XQf{ zei`|gee$$Y0ay+Q8A5VD$krIeW!+Jv}gyc}5KRY&W3 zFzGn%#ObPZ%kXN(T_N7#t(L(ya$A`s9cIpc`)59TFEP|lwQUW;I60tO6JmC!S$(z2 zK@Q@$C9wA2hz#iYd3*=0+{H=TDa&@*qD7h5u@7O>fuK=Ut=J7EjQCEXRB|1}qvgDo zqmRZ?Yq3s=s2Bqnj^v=oK(8}Zs+^eLNNu%r7I{x451bINdv>_zb*t}QBA$Q0H9;?8 zI=`6PwlAJ_qZ5S$6hBwD;fv;O-!(wPCAl_T$R{Qr@S*?5_!36$hk%#q=+@!B%O}y_ O9)tvi237}9^Zo&3;C=@H literal 0 HcmV?d00001 diff --git a/MOJICAlert/256w/warning.png b/MOJICAlert/256w/warning.png new file mode 100644 index 0000000000000000000000000000000000000000..9ea7bdb67a50e8a8fcf4b95ca62c292829590183 GIT binary patch literal 2028 zcmeH|=~Giz7{+f5l87RR;=%~n#X404*Rdp+AP@niV1XzG1Ugiy1q>2HfUpP%SQ(|& z3J#Ej4oIpf0of)%xIso81rjh4b^;2yY+<`J1Pt6B_#^tI{cz{pIm>f?^PclO=ht(d zuEs_dMi2xUySuq~Ll6%9;vk|SXab`Cx&oRFk!}}R5VU>o>W6dp{(1(22z+;!Q@%0z zn*PR!-L4ktL-*S`2k;Yvb>@!vXv0Fu(u+P~%U!9jLGjVwzVc%mZacK_@JPWC(`n<# z!>1RVGLO?X+w1B1)3Gwcvs8QZMQyEpVst`6|4omkgkrvM_WLjmji4&8X}ZD<6c0Mw zrB*3r`#b9!h030{W!;HS{cPA%9py5Z1F5e%L_A+!HqE5A(Ze+Kkreb8MMV==rbsLZ0N{^{H9e!^~jllRZmk3!-u8^~N@+@9U5~J$ecwb3~AW2{;onm~hbH?yfV?|NrvSQ zYsR^KHuA^#(G*2lceeiY>Y8KN4*VgnPo*hT2jxfZQsJCMSp`o{@4)#1n94=wCh6Q@ zlUCjR_@u|8_XFkKqFTt3xPi@v7qNX1@1(Ab6&P>a zrH~;ZLy~F0UXEfXptI}GT8kvKF_sE2FgjGEBAMij07ESuy=wG~S#(OGi9a)yAYAQ* z*Q!8wHK9~~MEbeCi+|*E*QO`^-8whu%v9Ze7bYEuri9Y`r9giS#jg5Mx`jFW1ktv4 z;4O8|uRGHw65a}5a#aBOJ%T-u8{7((mnN<>%rl=QU#qt!EmdwU=xS?co1U9^zY8+x zo$yIc{`4he>H+O}1UVkU-3(p_H5x!E8z6(N5b>M;2mZy9@GmXvm(zAYE^*XKW#W8A zhDRM#udT>%%aNCgM9ZUJe3;o8B3J0@tF*;c+WJ)HL^p5)pVgv>>0xl`VzsetMys~y zmvV47ysodfZjjEYRSxev2j0|)X4Ke|Dy{!WZcya;HM7J#itj5DA z(l^SU*pU=)zdh4iwLWWh=P&6q`f!tpC>ALdEto#Gy9Lsqj+IqozVWe4LP}pWF}oRS z!PzH(cYh4Cl={XRcXi7`Yu4M?FMIO1Y#WsN9fTfh7#)R*^l5F~G9aVlC`Qarrty(-r?{4LljYLa!P)2(n7kd?yXq+)|-8>A``@DBJU}OS5^fkmprG zTGI|kRb;3+)dZ&eG>b18SXzi$u0gp&Vpm}0!dxs6q(fsybsuV1XE+&-u;^?v9%*5G zCjxiwk~-XFl4}G z5n!^=RW;6hrAkIkZ>=8Q6V<&KaAO;Mf6d<@Q5BmDDqItKqvY_Mt&0~~a6V@0cOW>5 zz!QWNhv~@*eDi?5In|m;CK=Q|(;Y>?>3)lT_HZPslQymU@A~`+BMie)^X`jHi*n7t P^9{MvJY7nif>ZthjKyC1 literal 0 HcmV?d00001 diff --git a/MOJICAlert/MOJICAlert.js b/MOJICAlert/MOJICAlert.js new file mode 100644 index 0000000..851ea7e --- /dev/null +++ b/MOJICAlert/MOJICAlert.js @@ -0,0 +1,72 @@ +/*Cette classe permet l'utilisation des UIAlerts +V.BOULANGER - © 2021 +Version 1.0 +*/ + +const MOJICALERT_DANGER = { pattern: "danger.png", color: "#FF0000" }; +const MOJICALERT_WARNING = { pattern: "warning.png", color: "#FBB03B" }; +const MOJICALERT_SUCCESS = { pattern: "success.png", color: "#00FF00" }; + +//Inscription de la police Space Age +var fontStyle = document.createElement('style'); +fontStyle.appendChild(document.createTextNode("\ +@font-face {\ + font-family: Space_Age;\ + src: url('./MOJICAlert/space_age.ttf');\ +}\ +")); +document.head.appendChild(fontStyle); + +function MOJICAlert(title, subtitle, alertType){ + var that = this; + let chrono = false; + this.title = title; + this.subtitle = subtitle; + this.pattern = alertType; + this.show = function(){ + let notificationTemplate = createNotificationBody(this.pattern.pattern); + let titleDesc = document.createElement("p"); + titleDesc.setAttribute("style", "color: " + this.pattern.color + "; font-family: 'Space_Age'; text-align:center; line-height:20px; font-size:45px;"); + titleDesc.innerHTML = this.title; + notificationTemplate.appendChild(titleDesc); + let subtitleDesc = document.createElement("h1"); + subtitleDesc.setAttribute("style", "color: " + this.pattern.color + "; font-family: 'Space_Age'; text-align:center;"); + subtitleDesc.innerHTML = this.subtitle; + notificationTemplate.appendChild(subtitleDesc); + this.hide(); + document.body.appendChild(notificationTemplate); + console.log("affiché"); + }; + this.setBlinkerOn = function(duration = 500){ + chrono = true; + this.launchBlinker(duration); + }; + this.setBlinkerOff = function(duration = 500){ + chrono = false; + }; + this.hide = function(){ + let uiAlert = document.getElementById("uiAlert"); + if(uiAlert) uiAlert.remove(); + }; + this.launchBlinker = function(duration){ + if(chrono){ + that.show(); + setTimeout(function(){ + that.hide(); + setTimeout(function(){ + that.launchBlinker(duration); + }, duration); + }, duration); + } + } +} + +//Crée le corps de la notification +function createNotificationBody(patternType){ + let template = document.createElement("div"); + template.setAttribute("id", "uiAlert"); + template.setAttribute("style", "z-index: 9999;background-image: url('MOJICAlert/256w/" + patternType + "'); position:absolute; width:100%; height: 172px; padding:0; background-color: black; opacity:75%; margin: auto;background-repeat: repeat-x;top: 0;right: 0;bottom: 0;left: 0;"); + return template; +} + +console.log("[MOJIC] Le composant MOJICAlert est prêt à être utilisé"); \ No newline at end of file diff --git a/MOJICAlert/space_age.ttf b/MOJICAlert/space_age.ttf new file mode 100644 index 0000000000000000000000000000000000000000..85a62a8f684c523987a049cef3ffd5f8a39ab1d4 GIT binary patch literal 26736 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