From 5c19d9c04ce9a0b93f4fd5855dcb830324146fcc Mon Sep 17 00:00:00 2001 From: Pierre HUBERT Date: Sat, 24 Nov 2018 18:54:02 +0100 Subject: [PATCH] Play a song when new notifications arrives. --- assets/audio/notif_song.mp3 | Bin 0 -> 15026 bytes assets/audio/notif_song.ogg | Bin 0 -> 16430 bytes assets/js/common/functionsSchema.js | 7 +++ assets/js/components/notifications/service.js | 21 +++++++-- assets/js/components/notifications/song.js | 41 ++++++++++++++++++ system/config/dev.config.php | 1 + 6 files changed, 67 insertions(+), 3 deletions(-) create mode 100644 assets/audio/notif_song.mp3 create mode 100644 assets/audio/notif_song.ogg create mode 100644 assets/js/components/notifications/song.js diff --git a/assets/audio/notif_song.mp3 b/assets/audio/notif_song.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..678dfa4fe3aabd38bcd37a716b080dfe0b6c0233 GIT binary patch literal 15026 zcmeIZXH-+&w?3ML5JC?qcyQ86rsj<2qsRKmHQl_eCHBt#B z<-h%=7)>csjgFKt?#_OG&IlbdHBDnvQ!7nlQX4rbOCzNeOf`(v|9e%}RGL&}AY}vR zK!o?L0CyL6M_hpWEpOsUiUz6qe@&L|-matp^rVac0It9Q)YR0BjEom9To4ixLL!lu zFJDHXP&zs~CZuF-ZSCsn>h0})`}Xb7(9nd0gtWA@98xMQEPVFtSz}}4t5>f&Iy(CL z`bI`Zrbuaac6NDrd2@4fe}Dh<^z{7voJb^+o`pfH>TAkKNFkBnm!#@H=`un9tg8RQ-os0?xZ*3Jh2 z?7}~9v4`dbU8?!#a_i-A=|GB6tX@A_X@H@UaugYJnzY4^|6hi>wp=pt^%)+QyP6@FqT3T9rP`QG zP!4(D>$C_{;!${a-=M5}hL~YOvGeM%89*>nCyo~-uwK|SX!<#|=IO4fJ=6B*Kl~)F zHM(sy)T;Y0x@Fx_O}18?>?%rl9@_*Ec^78u^*nJ5J|wP9Bgl-t2tl{lB?J5j_%&ue zB!UfjGft{ios}iQFUbRf1;U+yP)Gclb7g>EakqE4k~1QbU&3vW1PM+f_$6(d>mg)f zM;B1+f3PT{!2RM@iSK-oQjrdTN--rxrYqq?yin$+r(8ZoTn?(3d~NM#C^5=%TN;p4 zN2NL_aWq}cHxb4w;SvXd7KD7{TehPrwU^)8l5MA^M)-Nl9uYmuY(k9^Q`h3{g*D4|#l!Zn~ylimRD;rE~$;AP|_C)hKqG zdiz-}s&wDBb@<>~VY}qU>yhglOmerp?0cVA+iDDj^!*Cen5~Z!Xq?ehcd0TlP9F-~ z4m$uqDE?6e;`vijd2-G3lg^&L>D|Z}X3^1Dyq!8q004S*ano9m3528u5pdxcQ8+Ci zwc(BlS1}CG&IgwOw4~5x?`N$i>RhA3TM?kZ>Lmb*4=KakD8XbXMaHmngKk1eZOHL) zx0bA3x(tOH6Ni0c$5i80iX}1||76B==Vc~09e%XY_$3g(WabjxXcy1mxHi;LLr3Pq z_`bMqK>;&kc=l%wsCoqO-99YFU!isH0#X`X(9TO11tp%eJ1qf@L~I5^UWMu)5b!;c zfP~jQMZO1O*8K7O?WAhE7+6N?W8$?BY414M%e>vO0_`Z|1ISQ)4%F)cG(OwMftUJ6 zMs`7GA@F*lo9f~vpD_v7o_=(pT2ZvxA||7PCGH|KId-z1KkbJNS1G)Qd3M=tdu3YM zD_7O0B3m>qm?B!zjuMCD3&sL&+R`;nb zkZ)#9zP~D~FnM}bt!%1XH;m%#btPNlCbs<}h_i+{!#@|ll5OlAG{;yjnn57!x{L?U zjASw^?kArMAka(<4?ZzGMr#{0f@y~8_@E$m5Y!Ei5zgQW=B3KMDO`t7p}v8T=G6E+ z!p!j1AZ7ToC(awuhpFCMY(AVRx~VFA+hHfC8lG42+_T{)VZ`yy?Qf&o=EDc3+l+5kyc9&59Pd6orQ=_H zs<)Yz3b+Xd052XX2xAxEh{!sj3)iBV)$#!?H0}BP#=~dtyrP zuy}6Id}v2m>pjccDQX(S>hmbGf5T4N~GIvoL(_oax2x zkrR*j7N-fRSM0BQ@(FpM@{Y4X+820mH76^<`oRku1J108GE}xM z+0aS8x2;n$rxlocb@E2s+3)^9**`Q&N8tDTVC5xB7^01u?~c8h$gU3PR=U)O>h6Sd zqb2nO`b_PHuEu73kQGaWsLr=@(Is+rD7mo=!8-#usD!{+sw?CW=iI!qTWAz3whM=k zhOmCg>?lX`!eC0GY7S~b63nv5E4h!hLf_%hcPFOQ(o^7I1ul&Cl}6*Z@K)a5OEuR_f_KT{Wg*X9uFV3ekUU54kv~w zO!{6V04l|1WyXx$i#BRdpmOo2q#-ByBmt4vSQ~Bo;YkZq`rUj0P+W~)`{i~T33gPv zNI#@e|CLr%PKd;qzx7|ULU(RWzYKi7;q@}k)Z#WG*ISo*!-+G9mNyaaDDKZR_?s7` zEm&919&jRJTA2Yrwd_zq+Qr4|E323$9cf~|`jPUd=IXrU0W5Vl$Zbv*45+RMx0LRRoqKaPzM`7B_7XpA zI#;ZpQVXn5sSf3c%@D0}Xj+#_Xpb?iDEt+CIQ;x^LD+I|K~^>$8HIIl@O|+Q?)+Fn z&Cdou^phEQBn*MVTS?>GXI$HUhF`gV6srn}eI4?;0fz(Am=H&J^ZHzsXBWUwgw)NK zkNbCS3vP##j^@e!ljqf08>M*?|5quGT}_&|Jau7Z^9jDd^3 z;OWYz;gYSdGsEH;y{h{6o94~+&4#|3_hogv2z9=d{fbkC7(8@e72<<92)bCCySTYL zjCL+872<$fiREKJJ8%GRILY)i&`>xHz`92k7w@)Ha^f2E1L zC!Y8?&ExmaRK~(^f3_?1yYm1b{f{ikEx5`2UsJVve&<9q#Q#-B!{Ls3(vCn4nFktZ z!xbk$h}F5EdrhEwNzdu%jb;o!@%Zi~a8U6tgY-#xNtn0e#!|)Gg%=@C6s zI#>v-6bk(2Ht^BK0rwo6#}rKgh{k%5MS<2F+SRmp3wii}5!~(GQl360lUMIv6I3># zM;XaRP%e>}UrG+xbpM8zdNRD{n2?V1R= z44eO^le?VUz}%Dh>RJC}ue?#|_;u#5m|q>YKH7kD=lH87jFKF-aq(Egb&IGa|37TCwF* zfFP8CM?-{xZ^6ReL&A=_hMtNh4n3a<$2HKnCZyYZNcG%549Ht z9UN%Ny6ffjbvR{~qrmxP)?aQ|3F=nd!6jXK@pPqp49p1mG1hfIykoT|>XFXL70$@_ zDrXGmwZz4?Jim4j2*5xkasEsvIT3s;0a`5OYr+B|@bPYx4012kbA`z1E_P3^xj`9% zS^5C;WWvP~p-z2i31p}g$!h6Z%>gEglQA?_-be>IND zEK{#W;MKpTYDI>WaPU=+#iuX&6?!z9!W8V8_hWOJ1b#dJq&3JI)MQ);PqX7&V2}^V z;2PeLR|PlgBL;T`RG zFhc`&!6$_ZnaG7i${}Ovq_QQDSTF-1nu|;bjF<4>sjzN>cB~EEctS_QYH_As5E4^* z9Yj#eer*W{aUb1%q*5og6{}DFv((M!E7El0clo*rGT0QG zL$#^JEdz>Bov#!HJCum*4mZs!5@b{0V>uk%{qCNZg%ZsDMZz6U?7~!z8<~FfLx@)VxOg1I$sgQyyZP$I?hsFQBL{+ho}CC~zWy+xlvH7pvHnm*6>(zS0ziv7pGp-FKv{enZ^R++(Yav78+}x+7c+A) zD9FK$x91cLEHv7_h|-q>wS>XClHlhbce>UB#*w1wQYSj8((#vBIp ziQo1Q%g|pRh0NVjk$-b|@Zz9(vtt*_MA1z_-|pH){*@lYd7xmRpY&$V;4$6#+y^^= zHUJP*y@dimBkS{7qNB-O=%c?03idwJ(F*1U%m?IOLc;50cCoTeXVP3CAU(BZ2SS9- zC0YOyMDb20UC2JW)HA*`$ug#1T4*CNLTL6l-yXN;jaQS~A zp&bB#g)Uq=i~i%}Q|ZD3zE9T_0r=^GrIsO8M4!6bSU3KIfUx3CsXT2drxNL{ zHW_pnQb!o6K`st{#{-DwPev@}b#`R;hhyFWcERxMAWn9tUeSEf{(5tA0ndkEN@j#c z_6Q%4MaEN~y-r&8g;a^Y2ol4@qwy~8dJ$Ck9i22eO`ZL6w&9#2NJyrsj^?W5H#G!*5zk2Wg%*LrDO3w8RHfguMGCWLW@GTc#dgM* zOmKEAI0v|LVB?!%tky$jzI>&|Iin0I?bK7`dFi`rO^q-M1qxgkxbwg~c;9=j z^*PbL^=o#M*U4arrx!i3<(>5`3BtmNEjo&=_j`%o1LfOZzTbRv>g69iVoxNV))R-% z!v^!3JY>C^A~n^>WcjYU+jsN|(LmXBbzOMOl$1>`7b}2TSF`}}egyP+;YQ80Wz@4K z3>19SJz^C&VwGSq0*^L=ip~!0<%CP>cg?ttJu;P!zh-h9!;g@RU4*^?%6_b`3+0=I z6|p;yO{O~W3S>Su6?OY%?(6-`;^X7%t!0%OEjf3X1TL;`d@j0sz1Q@H&C!~;T9o~Y z2Cn@5ko~9^@uAA-JPtsG6^OKboiB@0LdlhjrqME645n6b-J{P2VrNCqhLbgO+!-}? zShi%4k?!1aUcnX{Z~dM)(+&FNu26q>G1B{G^1coEali$WTVQ;}>~^N6Y%iSCk!M-z z&YOrypT!%Bt_^uZ*5{h!X~q~d{)3b48H0caT4+s6i>NJ@LH;Y9Sm#8Y6h^$wZX~vG zb#Zf_N6QC`2Vp>w26LTM?9)!A?=loo6X3NX9MwCRblr=k(WvCMz2x#1z|abn;FP(E zFi7mRwP>?X)5x#sy!GP}-r8#FAV`ti#e{6ulg6~1k#Dp&+Rydq8?r{MZog<)dfVgL zYCUByuq9OeyP>y!DE)SP9r6$MOyGYW+L(s8EBF0XZN@h$hTCkkghCX6i3tOdYM;lT znt$78D})P>6KJji7C#I{k_&t}>Kr4FN?%sW*CgWu77FQSZr!v+Re9%vxuw0POqhNc zyV+lg&QPbtXx;2zSyU7ac%S`^f=tkQG*H*=(l{(w5CRVbR^HPkn?Bq<9#-<>6M)OTc2o6+>qyc=2{6zp#-4r zlKWDyT@hf21EV_D{PQRip$xEu1XJ5_#ni;%d}&>UZb80$c*nwgSgV48(tRma+8kgU z1(yN~$*O~Slc`gXmmTpArrtD_GrA=5KP&rE-7481?5syRl=d!wIkB=U;sW1g@cilQIv&lGL4-05}Wk2`N z2;%w4A(Fg7g)F%hlUN$bmw zUcW{235J>uZ|s=Yrhlit@G9xTzJ}qTAP8r9KJg{sN%+iS(}>gtm+GUhVfX4O+EAm5 zx6(CeMZf;K>1>>KlzsJMS45G9jh`oJW1I2pP-Pi6$nM3Hl#H@;D`K&}B7+fDf+wR=JVwqZM)J z(pf^zPposhYPyloBem=aW;fI0^Z`h=7#$uxkc>)2bzDQF&^^F1zqjtoQf0*IS)qvmZ#Jybg@bJNXTkjVWG0x$)VMyLNSGAoa!=y%=s zM>+tgBN)zqEe7jUe$z`oO@(Hgmw6UBsdVo%21-74hvjn_cK7pYL7SoEOb2_GO0uS9 z9tA^Lu8&|E=c`(cldhkEwM6MvPh;x`ddRbLbNQot1`8+OzaP$>UH5G&R%txXl*{jH z@OS=r+|E7$V3OGc;xWK61mqpSjrJRLw(K{i7H$_ZVa;g%LPB&hq5=Xs;&A~ZJY9e( z3=n`02_93(wSe3ZtDO!x-@faR-HJaXM(K{+HO_b zO0W8OUm39Cef7oMBSt66GP`n0JTl60&&Otvj~VrF8pa3yuUnx(Jd z2mf{Jtt3TO-zLnmTKyzOuEv@!n2r_B@%vissgc%N(qY)S!jA9+6P_1uwyPS^a|-~l zrUla^^co3%lH|qEVCyWw0BH&tuq;?ol7B?kfrpW4uneO1#KXl*wS#fSMAjy4pdi7R zL+pjf>RpL#mj{w3Y@UM}Pe#l0u3D7Z&dhmqzv{NJa(3OZ{=T$dmHhtr^XHM!DPr2( zkE;&^&=Wo7$~+d`G3xQ!i!oQPwPx(S;To6U-i=Dh=={XD7`KO1QFV|cE@&)2!J0a6y290pH*XI1fx;IDTx6-xcM#;%&~hs`T~(T*`Ias~Z4{eF3`8e* zL+X%EoXW27Tw{o>igInTTW)==;>bXI5A_*^h>44}H+ZZje)}$Ce5RlLsf}^{t;2mV zImH61c}bVYa6xWHIPy)?Mt+dRw-R=bKNz=+|M}B-;zXDA)nCSEsR+}n!7{Kju4}&$MTqzWwYGT%Sgl$?2vP1s(BRqBpFExa)Z402W?GwS&T4HnAOX1c27^ z6)H}t2nX_lf_co{2*#Rpat5SSdPxoiik_Tp{S(6J2>5LoeXa0lC7g?LDY5$#e^-7@ z+Hky3moheBXp$_PfhpeTkZ&Qri#PEu8?&SDAXky<7bPb0aH%InLK^1|CNk8cvIAT3 z6a69w8962Ex6|}cYx|FH?#Ye|Y0K91#&Kh}90IUSd~y8MA+rry1zORXd5u_)ph zLX(zZUw)$Y*$zSXt0@H_rF~mgLh5l|e84lR2zoS`M7uwHfS<3g3kdXuL7lUcp}?U8 z=0qzcFmI3mSfLJyET)h>1525jF+dg~`#r6sFhQ@*l>hnX-FmLW9h5(P6nlRhFl) z+Uk|_17%!hR#Qc@@tniM+-d##Ohb&6-+mgf=DW4C?f#7OoY!FmhJ!XQCFNWO#sTmSC?9`_t20_m0?w>X88s5K z2Iv1}a)q(~5gSx}Zv37OA{93vFqX1SoH_dGtwB1EN{B8EBR>CXFPWwH=L}^JPn91# zvJ?0p#%GgelRSQf*CAO$7wIj(m9X&@j|JQzor)6s7st#5&|{8wbzPI?4+8)Bdp{Wh zXy_ivbzi<7tWJvSF*Q?s;qpEu;gq11fcFH_sW3HK9Owr} zB7}Fx!PFOdY!=7~7&!qfK#S3lUxILpb)yB>t}4iMf++Zf&s$T*<%PMM;@vo8(LJpOy zRl>r4ug-l`ezT3c79-tzZPV`Lr-D6YI9Z_>E@>x%j0yl^5@b;rW1ZiQXBF1Pire;Z zk?BwXK|n?aJ~9?&j_mxwRi$v-!XX*DP2Z2+^d)oBRoi4}g~MOAbG;2am*Ou!F*=$m z&DoREaNn8eY8fnspH<$lyP>aT~Q2bLJIcWF(HZ9mRM@1208_X{LL9Qu!7(%0aISLVFb#2h1 z90i2NU9CSfFg$vW^cTMWsvuaUQ}=|!-Jp6XZEW)*L4Git?e#mCo*?}V!O(lZyNU0L z@4~&#ao)r4SB^%idh;i1YM%|S4ig{!f~E_9)MT0ZHe3nxe|rlq%n+v|dY6sPI{L}A z?G&}%$G(ob%kIQ#-@acNC7Sbz-N*Z`Pz2T#AOuYt{L)RPMR*qu)kdSQ2%XZz<`_}$ zfq|Mh_$7|^PCUrT2b!1Fux@vGdVY=MbGc*A4otb9I>9SLy*@4VW^&Ww3C)XHrYE$k zb4Bc)NiL~AIe_3f`p&4fm^S9KO_M7l=f6t%+KC_N5gJ8*e56y(#d#WcG% zpP%vR)as{>g*RL^6{*Jn#=lJ@-nM2ZeQcYy<8)uSe><_e^}@pbK--Jroz%7NNk$;>L;~Z5hg!Dl~ zH|qY}>bU4$n0CqTq)|5XI5(4T!cB#?QwZ1kcJW#5ABLO-90a&dh8Svo{tLjYX6Z)T zZ{+`V_jm?5KA0&0#Hu`=)jjiDKCiL+;bQU)V)ZI`07~!U2C_y=S8M8K4%1#r5<8Nr zpfC)j(&4c`7>{g9}P<)Vm z?o^_xmyywKrsN|LI>?FacgC;eV`+JHl}6%dmacns8HjjqtrXy$YlBu63rx(nW&CL* zR)?Pls#%19yT!;HEy6GwKU6K0hg}7B_o9z)7N#tRn}|FSPU}AU9? zd>m*lTP7I)mYGTcO?Of6`l#sosceFX8zfxi`3tKeDPr}+jZ64eW)pP&K?=r)^V?RT zEevzhtxQZX4bmnOqsHu4^nmc;S|;h#F2!jBe~|2Edg7&>{jY%Ro|%7^AufLqD{eRW*TZMymplti+dY{GOv% znl_$TB!uVmojWBao85c66=-4gBiu&nh4RXS-#KCXL~{+?jr+%2=(58@gk=QRV^bDZi%kyT63l%O`rz2?9`*l`-#+RBf6drn5S|GYsvdE_)b z>?iD^ZxSVy_?GfD{Y)WpP(bKR?}HlJMHL1(EQhOMFl6E0>6pRj#)A#tu+PnGgSFm* zw}WdM&#i8sUYOVQ_xEWT8NW^1N8_D-;SX}$%tMToNi_OT=m^V8l7Oypto;=b+thpr zbg9^Ct+k#1C?vRInI=L)JJvldXvcH2_EDI}Ol<1=dB125e7mS3_s?R)8XU{7^_k}x zUX@?7Yb1706!2~W=*fnQ$p#WeI4k80-&xPu6q|o5G7(PXK8e-`DqD5ehA-Q`**V6uuPnfhxRI!9Z{;=$$o5G z_L=KuKjk$utcXTV?iEbx2~T^Q*#@{WfwVB98w&cBmbyc%4~Hb{51y}oY7&|hEQzHN zAy9TcJdro|RR`->l>hozFG>9#$6po)Gfjjg(+QXOv`5B`2+OAEke$;|-@1{pNiBuI z9Qn7wWMd9-x0^f+kG3Swn+$^sxaj5YSchKiI=>ec48%GBkc6f}cc0TY=!Khes4n8V(eB zv|!k*&!ywei%2u`bIS|6xt9gs4ul(a%c2#v3PI6 zH};Q!NY;?-Jb7ZM{O|Drn@Ehs_BF2jzXE#tkzud7-oDB&=Lv4wP*3PV9|4N3G4qza z?QOW+mhyEzDrn;1IKoehVfSEXyzgADt_z2uN$Wnjjg-wd&IX5m=*ekGghw(@It&6d zj|sgXwR+l{0M!(82IPi@Rpe$-+@Y=DP~it0eyO*#;NAkzCjuU)VtB-0lOKP(Yc05dZ6t zBg0ijEWtmx$mDyJ0u4dR8v;#BQIYc=Tmq7r8B%KT`iD?OKX zPK8jA!ZS-6blZDrbV1JQ0F*UfElT+Ki-vWIzW_ToYlX$5DgK+mlMk15(g$)Fc_z4^ zFE&0p-jdw7;;Uz3RK@RGM9eS_TOd}{mA?o)+O9u2K=^c<99`#-xV)VSQnAFjkbnOY z^TK#@(A5OI{JLpW~-iWFYbR8F za;kadkodt9WZiS*#itS%E{Mh^$y4RE$h@fWk4YSB+g(b57iv<7=Lqy`P~J$n&K7=9 z*6;zbxoo+yb0$m}>rLT`J@1s{BWjfPQ@D^#Jss&VvtWT@G!conUrx>w?mkq&btX96 z|Bx>lFl?fmX1tz_;7P)uQND_mN{>5|%p zgtCrc;&DQ0v2$p>=35g0_Ooidb&A?Ao@YSlY*YD$1KjU z@GWsnSvaKV%2F0B%5Mh|8LpY4yslNb*FFDZ4g2_mCvGITvg`YoyzL6Cwyy;u{tD=N zYkTsp^y^fcBc@$ZzPs0stApcv0V%|UmEIpLXQ6a$a7B7NWjHW{7GZch`Ix~}HByKc zA^z6D96m&#o403TWWP)m&J?%$P^`{w!9o0YrHc069;Tpo_UI}NQJLBO;cb;kv&MxV z9O9zoOlKGCB{-1wWpeZ1G5VS9qMu#}W-pWz)_Az~qIul}ZOuGO4IvU&M?=I>8}g~1 zEbiyiMGnkBG5%Ju`S0B~%Z6IUjCc~AKB+b1)Ekr8Ovc#tg=KMjOMc!#WjLb)qdP|R z?H!U8OqJCIa^?Hm&SApMV`Fvcv0ER!GZ)M#8U-~_-7XL?+;23eee|QaGMBy3}8L&YsBs#~Rk~2Of^*A(H=r9yaF!i*2Rf^M5D%;9xw)v9D@SFKW23 zNh^dVrtQhcn_u}p+{z2;7VQO z!iY&n;pc3F3@ZNP0-t}vl(=!SD_IE)I!g|e7eI8g_h?}Jyd?LSiyWVLA9b7nHa`%d zqY$WBB>}~d;SC9)WIMN$IS`6uSOzS+jFe6?|96>-aYY~+6Qlu0l@ZKH&W-Sn*~HZd zb^Nnm4H`a%loaqtORbh2Z~^g{1SEWWCyvpW=&mxAyTkw+rMV7;#(Mx^&0iH=N_ceVgqBQP>l(I+RuP6`z z3I@T*_;dR|g|yTo5Zy554&Uj4MV;ZsjE-NX?S%?79PzzciSebpb??R^>lhLW6=Sgd z;UA7t65V-I9LIc81lGyasR8=MW;Fb<9W>XKu|_X_x&7IwDAh{kY490K_ffMx@7hn%vjZn)l!SA3?WPEkd6!Q0&K*a^xD z5iTAoGL|o9r0`|$%#r+9e|cU+sq9tOw?;G^;x>9!^u+sheQ3x0^R-S`X|QyUMadc? zl@nZR9XF7{y7zFX?MtS5fZ?OD{jJSwYC!ZWa=aSVxo zm5b}C&YvT?U3}7xo@006~DW2n;&aUO5+rH(iWFHqYKJCnzJz3W|h-T zk=->G*Fv5t-{TDXJxLnmFhe}QV7baQI zAHU60El#+|(W6ldC&nF{*Z=vJ&Fp_j|7+*}F#dmP`hVgc|I>Z{|F-{i28bsxjoAmg l06-Z2Pjut|wd*8(vv3ah=VQr#+yejW4gPO-{=fB{{{!G;MTGzW literal 0 HcmV?d00001 diff --git a/assets/audio/notif_song.ogg b/assets/audio/notif_song.ogg new file mode 100644 index 0000000000000000000000000000000000000000..d8dc16ebb93c019f57d22dcddf278b909acf9a02 GIT binary patch literal 16430 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 literal 0 HcmV?d00001 diff --git a/assets/js/common/functionsSchema.js b/assets/js/common/functionsSchema.js index 1c2ada5a..166a9387 100644 --- a/assets/js/common/functionsSchema.js +++ b/assets/js/common/functionsSchema.js @@ -1038,6 +1038,13 @@ var ComunicWeb = { //TODO : implement }, + /** + * Notification song system + */ + song: { + //TODO : implement + }, + /** * Notifications utilities */ diff --git a/assets/js/components/notifications/service.js b/assets/js/components/notifications/service.js index 224eca8b..d046f2bd 100644 --- a/assets/js/components/notifications/service.js +++ b/assets/js/components/notifications/service.js @@ -6,6 +6,11 @@ ComunicWeb.components.notifications.service = { + /** + * Last known number of notifications + */ + last_notifs_number: -1, + /** * Init the service * @@ -19,17 +24,18 @@ ComunicWeb.components.notifications.service = { init: function(target, auto_hide, target_conversations){ //Initialize interval - var interval = setInterval(function(){ + var interval = setInterval(() => { //Auto-remove interval if the target has been removed if(!target.isConnected){ ComunicWeb.common.pageTitle.setNotificationsNumber(0); + this.last_notifs_number = -1; return clearInterval(interval); } //Get the number of notifications from the API - ComunicWeb.components.notifications.interface.getAllUnread(function(response){ + ComunicWeb.components.notifications.interface.getAllUnread(response => { //Continue in case of success if(response.error) @@ -58,8 +64,17 @@ ComunicWeb.components.notifications.service = { } + //Sum notification number + let total_number_notifs = response.notifications + response.conversations; + //Update page title too - ComunicWeb.common.pageTitle.setNotificationsNumber(response.notifications + response.conversations); + ComunicWeb.common.pageTitle.setNotificationsNumber(total_number_notifs); + + //Play song if required + if(this.last_notifs_number != -1 && total_number_notifs > this.last_notifs_number) + ComunicWeb.components.notifications.song.play(); + + this.last_notifs_number = total_number_notifs; }); }, 2000); diff --git a/assets/js/components/notifications/song.js b/assets/js/components/notifications/song.js new file mode 100644 index 00000000..e79c160f --- /dev/null +++ b/assets/js/components/notifications/song.js @@ -0,0 +1,41 @@ +/** + * Notification song + * + * @author Pierre HUBERT + */ + +ComunicWeb.components.notifications.song = { + + /** + * Song element : null by default + */ + songElem: null, + + /** + * Play notification song once + */ + play: function(){ + + //Create song element if required + if(this.songElem == null){ + this.songElem = createElem2({ + type: "audio" + }); + + createElem2({ + type: "source", + appendTo: this.songElem, + src: ComunicWeb.__config.assetsURL + "audio/notif_song.mp3" + }); + + createElem2({ + type: "source", + appendTo: this.songElem, + src: ComunicWeb.__config.assetsURL + "audio/notif_song.ogg" + }); + } + + //Play song + this.songElem.play(); + } +} \ No newline at end of file diff --git a/system/config/dev.config.php b/system/config/dev.config.php index d957b964..fbff00c2 100644 --- a/system/config/dev.config.php +++ b/system/config/dev.config.php @@ -396,6 +396,7 @@ class Dev { "js/components/notifications/dropdown.js", "js/components/notifications/service.js", "js/components/notifications/interface.js", + "js/components/notifications/song.js", "js/components/notifications/ui.js", "js/components/notifications/utils.js",