From 4d74c04f0e5bab5e1ece7a4a666f14d4a221fba6 Mon Sep 17 00:00:00 2001 From: Miguel Ribeiro Date: Fri, 28 Jun 2024 00:40:27 +0200 Subject: [PATCH] feat: add purple theme fix: file name on ics export for subscriptions with non-ascii characters --- images/siteicons/purple/category.png | Bin 0 -> 1169 bytes images/siteicons/purple/check.png | Bin 0 -> 1121 bytes images/siteicons/purple/clone.png | Bin 0 -> 983 bytes images/siteicons/purple/delete.png | Bin 0 -> 1077 bytes images/siteicons/purple/edit.png | Bin 0 -> 1414 bytes images/siteicons/purple/notes.png | Bin 0 -> 1069 bytes images/siteicons/purple/payment.png | Bin 0 -> 1319 bytes images/siteicons/purple/save.png | Bin 0 -> 1465 bytes images/siteicons/purple/subscription.png | Bin 0 -> 1364 bytes images/siteicons/purple/wallos.png | Bin 0 -> 8699 bytes images/siteicons/purple/walloswhite.png | Bin 0 -> 6754 bytes images/siteicons/purple/web.png | Bin 0 -> 1721 bytes images/siteicons/purple/websearch.png | Bin 0 -> 1641 bytes includes/header.php | 1 + includes/version.php | 2 +- login.php | 1 + passwordreset.php | 1 + registration.php | 1 + scripts/calendar.js | 2 +- scripts/settings.js | 2 +- service-worker.js | 13 +++++++++++++ settings.php | 14 ++++++++++++-- styles/styles.css | 12 ++++++++++++ styles/themes/purple.css | 21 +++++++++++++++++++++ verifyemail.php | 1 + 25 files changed, 66 insertions(+), 5 deletions(-) create mode 100644 images/siteicons/purple/category.png create mode 100644 images/siteicons/purple/check.png create mode 100644 images/siteicons/purple/clone.png create mode 100644 images/siteicons/purple/delete.png create mode 100644 images/siteicons/purple/edit.png create mode 100644 images/siteicons/purple/notes.png create mode 100644 images/siteicons/purple/payment.png create mode 100644 images/siteicons/purple/save.png create mode 100644 images/siteicons/purple/subscription.png create mode 100644 images/siteicons/purple/wallos.png create mode 100644 images/siteicons/purple/walloswhite.png create mode 100644 images/siteicons/purple/web.png create mode 100644 images/siteicons/purple/websearch.png create mode 100644 styles/themes/purple.css diff --git a/images/siteicons/purple/category.png b/images/siteicons/purple/category.png new file mode 100644 index 0000000000000000000000000000000000000000..6c73a3827092dbf345ffae158cf8a2e6e5490c9b GIT binary patch literal 1169 zcmV;C1aA9@P)H$5=mUpHGbA8rph1Ufs$CLV?u-^x zD41fvF&P5yEJ7#=ghGZ687|<^F~eQCA%zY?#rJ%_KJiH|*E@6i{#+={=fi)U(8R`~ z_7Ksh(2LRqc!0y(c7PhfjzA5Et)XdoO$Hl_+9M&+l=$H{#{%+)KGZa;bW z+2a@B3~!tv=E{{zx1T+Ha;L%(42MG2fNrwuCS;8^1O@Gph;_i>-?|BT5ES(^M=&IU zg64rd_T+M{mwlijwu zj8Vs*m9iSH13P55qd7+XY5ARmP$yW_yoCG+e9FoEsxDLhw3KNgC~7Y-EN~vh19}0E z10MlhyzwWn4b*_w$3lk}xy~?&^r_@)+=FpC`LK4({p* zEyN*ffJb&-9I{HvP$yW>0omgL;Bb77?C~I2&;gng>=9CiRIs4k60r_AoSY*O>%oF{ z)4;fl0adcA8kY%D4k_7V3h>CzlRc(@@2Ru0A)A1QWrjn_IJPL`bci7l6f_Tb*y9BS z&C>x634wkr6Cn?jNlgyvU>vdvcw|#CE;m*-WRry9fQN0$S?a_gYk)^~UL3MY%FsE2 zJwnQmP^e&;3a_YRT*iPZ*;S3p1Sy9DFR)E1Q)gvEHUSUI3<-Zu%0Lx+s{Wjm=>S7Y zg?m_{!aX{~;ZTlcBE|uaY%1hfrorTp4#pv?fJZhJ<8otVLpDhmQvQr=tHX65;^ZO~ zM*SJtra>IC26$xW#UZPt40Ze&d8#=^fr#UaG{>kvE6-_8ut!K48u+*5k)GlUphEj9 zYWUp0C68#qxQqc+va1@G2~t7}!Gd-ZGbJ$-z{fOKRl_|D%l?dP^BxFo2nw19`UN}^ jD!f7|`*Tv}gKYi*+PV6>^{oL>uevF2XR%cEx(`+QijqB6oV z)6=Otfb9rLRmKD^7uImi?votz5SEFajBZfn01{+#N#)cmLZ2Zy1TSa^85fi2N?eEQJ|@9oBx!z(~rX5 zpg@tjyR?oxUjl|0sKE=r3x*wLiB9Skxl2E=j>RaOq`)R`ryqsAL4hSi?`uMGTm>E@ z1`20wT0UZ$VMceCZk9V-1rijaK#NRrh9XFg6Tn8|F^Wry84lB;PEAUIEU=E!)U`GE zYcFPlUKS7?*CtU;5)(DNYCGf)W*DZ4a2}|o9LnA(qkEZ0)T!$w&v{~^aMq^eduB0F zM(a=-sDLP^qT|}a90KQo^~7TsmlSgtQMM8T$#Wq(sau#4Wpp>tL_BgT?6L=Cf;n6u zK|EZ!!`1GLKC1<$MCl?X3a4#a2APMe!l)>5NuczLa2rSvkDCbZu>cpBYuqCTxWpp~ zB#B2(SJ7?{$P^1O_JEA4;VYIQ71H*A++Y!g{}k8{46~dFKd_n)Sc1c}FdO{i?eMcw z;0>UL>Kj+sW)I3ZOK_MG_6L7@+x=gpKpSAFA~o!?X&Isj4zq;)!7Z=B|4X2eDp7~e zY)Xz%B*PpwEgvd;LUsI(u$K}T=Cg*k)o_W2Yf4wqW)I2)C2*KW*c%kuUh=P?yddxd z4}l8r*be!Y5;-g&><{j?HTd5MGz05-fYi`q)3Tp37#3mEGOoglz-=C!TPW?6$zcg$ zHkk10{mTL^K!SKp=_riS(v7K7Zx6{B zF>okD*cXg=jsAe-X$5L1UQS)CP0P>3#Gy=KUohe|`U8@u6{w*ID!gS=@-;DXs6f~k zjChUyfaG}%Sj{37PTNCrgqS&0DC`SHyaxZ0!1KW4+;2*Sv^^w;c>shMMHy`nLo<1j n2;=H1N!-M2*p7x?N^tmmAn%VqmGdqRzJnmt1Zk zBqrYAaB(^kO>A;_jXtrtG&zvcmiO~<6hx0dua8Hm@$=!oPB^DeKQh+>Ja%yr9D@-K z7#@(}Y;^>mHh~I8ixgE+{Lk)4l@kat6mM9@8WaPV1}3<8KP!AGX-cJKsdI$Tp-e(;)mt}6ZD3O;s-WFNQuY-JbH-12q7gR3vlTn7T^+cIK`a>bESo6 z;QmzRjn*!Q(tVIp&a@jqqsgJ29WaAt6Ly-=Y!a74$l+g><}D*ak$`DyGGXj{^%X9} zpLO`nhhKh$ARsb>5kd|}EX|uI#tKG(E*Z?g_!xM@@WVrBH0X%Zwlr@UF;;*AmmoU` zuNOd-jwo#cMWDbX$_~Oy*NAF}kaED7rUzW}h-!$C5?Wd?7nq<23}nD@h)mhj!lQ>| z(nO~032^BleSJjcut#t>hw2k}y2+s{IdJpDCPHKm`$mZA(PJpD^PKVPFg8jo{ryCy zoRh!7vHT6XLOG|vI96bEg%T3*h-tgdv3457=A?*B*_R<nPoTU`EZcRSDX&8=3vQmoC=or~BoUiiBueQr zGZGVXDN|Y;h`qMcR~*flo{W8IIMTCbrft zr&-f9CEAp8QsG!CT!b}Xva~F9+8oZw8;0^a&+&#yQdwb9(v(WeQs)SVeLgXbjY2L9 zn_FN8B9P01nbQG5}LXtRiI37C{N8ujfj*sQx@p~rYzC{<$zHF*0@}27$rK8qV4wT zT^B1M0mF3PnhBFrGg6}iDUP_kI=6Xqa`r2fEiqmO@?5;KDGR{IQ!`SdL&7PR z=4}WVA;3j&fDzgRTp-8UY6dm_R>5eYRDsIWjMVr)`wIle5C$qz3Y7o=002ovPDHLk FV1n%cvmpQg literal 0 HcmV?d00001 diff --git a/images/siteicons/purple/delete.png b/images/siteicons/purple/delete.png new file mode 100644 index 0000000000000000000000000000000000000000..e2f7d6b7158fc7a8a175a2b26e13c275b110e516 GIT binary patch literal 1077 zcmV-51j_q~P)>et-t7l9#G)>1yFFU-ni)`7=5_~4j+ zPp5nVlv&+VI_2#HyQluT`TO)wtdYkWO&rsQwdQL;F__n0-ZS<6&AI6YYam!moY0lD z$5AvRBJ9+H&m)pD$}$?pfD!(kra+Blw9r6Ecti*8_x!mQL-#$%a@*Y!S~aue81@r>$}cMtBJ`tiox^q*uDnKN%{Kkab|*g|n_ z>2kD^a?QkoQ0byAx2QJA$Uo;C&w zv-=d!eGGien!vL-Xx)R_0*m%kVB1z!)Vc??1s07x2iu2n)xbbu*2Yn70ip<^2!5Ss zRka0(B8VcG`-4F|z(8RlG;!4JvLuQiNw7*1h$5E6G46yW1`4wlj>3SPxQkWXB_|9R zL<<9jiKdOCa!5`TV->~ZltbKUS{Nt{G&FD&1mtugtU3`nL4Y$2O$-!fO&kR!a^e`P zI3_13F^DDx3bPiD!hoD8#wv=*2?GYv!a!jnv~Uyzp@ljY3cGoVLQ}^=VI#~_6v8|f3XAHbw1L}f zyxY}DX=9;SfmY10!L(wA6?m-Rn`_gz-g$NE1<~wf18BvS>RCC*3KXje8P~#jpu>Ns zqlNQ?jI#>C(bZ4&c7&q>2hfZG&jUMIA9sMC5o#K4pt)8(CoLQZYjE{5T?R%-8ATWZ vhIm9^6ax))9&4j%qo`A+QTqQykUhtxvEe#&X{@P_9sBY`0o@ZI)Hw{Cn$z{>Cr$DpEU{ew*z^+9wChCeMOZY6^=pJ&&k@v`qfooi>d9V*tcd*im(1lWIp%Mh{dz-{?4*{tKc?=Q@-q2_ zV)PVIzX|)GCT;hBIlJGcrT^;>oto#F76lD+TUytMy?mUYJO66sl=}#EahHl`w*SA2^Z+W~#KdgO^xCig*30EJzDvi6f<8VN5 z@Q1hg2hS+B6;5usFE;P`;fS_%&ppD|@Kx$hkOKSl&Mxlyoow~LtyMUgW!U>{SdH5y z(%f1u0~JPI5?<|mk9$d5=!q;rj+ceSvg`J-f1kxuAY<`KL}pf6gW8^k)Qs+PFJxYJ zUR8Y08gy7IWh+Mu&&P{ue_qD^Na<$mWA?Y_WarzUeAsMy$&ptRzB8>%6x|fX;`DCu z&6d^g4_f~1uY-{xv)00P6Iae|=9><{luK}KDUZ_TfntKad- zYMP=fvJyj+*#%!~cU(_7@Oblt${BqBYhv#mG%ArW^3j6_hmwF%W18^2-E5wR8rIt$ z)7LK5ynOh=LLcLq(0FhP>vlMySF?q4_4S{VZp#b(`@zfkB6&s(Qb4J&nqN{& zTDFQ#HBm3O^y5FgZN0&+)%TiW4uHdL$@%qHmiB-obysOfR!JONaws}NegASx1(n*m zrFyArRxGj13}lV@C2?$N%t5axU|K^KZZqgPo!Gq2^3v1rS3$?Ryk<=n3q6p^-ey?Y zcxS8de*aB>w%Hl;cdQdQy*-yMs}Io2SOaV1su2V*i!W;&1TA+^P)I|N+2XC*S7PXF4nWd)Poz86=v%W^1p0JD=UXK@LK@d2J`2Y3t)XGn4J?vm2rwc^R%QpvsP e*#EBc40WGhZvE|LQVc9#89ZJ6T-G@yGywoE?~!}} literal 0 HcmV?d00001 diff --git a/images/siteicons/purple/notes.png b/images/siteicons/purple/notes.png new file mode 100644 index 0000000000000000000000000000000000000000..bf2f5fd4fbe5be8b3fe22dd25a5f2bce1c354f5d GIT binary patch literal 1069 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezr3(Fn{rMaSW+oynAqewsg6~frsaR ze?7X(`Ow4y=JvwY)IAa=H{M?0Yvj7LMQ-WJ?BhI*T1&dEw|dKDEYM5wXy=o){`qao zgMZ8mCpb(?kQD53Vk$e}81&`wTg`npCN1hNbyM7F$6u)4voa=R_2oq!la{+z7?kqm zU!H8{e9CpJm2Q_tWmOA%@beF5wwcCDFcc*V91GA}b+z_nY%5bO%eJ#7)6H!&g*C*l zzS{R>ol~P7)9tibr)SUG!a1cot2DkSe4&GUW3KVpr@sET<{UC;^XoQkWpWnbnk$z5 z<>i)$U=0J8g%>h6y3I$D=s9RGPxO#RCEHp7x0A*htp;B63?q6JCm*|aKYhuWO1sZ_ zFSg5g-raqE>EGu)Q!LM4zsGCK!uJsALVNzKWMMW0q)p@c>W_3v7@>3q&ktb4L-c0Sv-SsCbW_rD((wCdRTy=w=r?(o_ z64EEBaA@tivsEu=ZQ+#oKC1MAhj`nu6_N=}X22 zvl9>Guw63VqiD;#S&|JQ{4iHfaD&A|At#ow&jHn3XVuoL2t9~n5M=8(kR_MpzwqXh zsV+=+xD|l5Mx1qit7$TO&m@nAYDSj|>FEs*Zr{4V8mM)ogKOudU2mlNZXD@vJ%8cy zQPsR%XC50LnX~Y?f&U$eXCEc2M7nnb>eRH&F#f@kljL^bPx$v<^#W7f<$QF=~0|SdXh2bsI;- zHMLe|n9Ss`X6!pVGh)uf!fQpQpRY>VGikA~#WdRsn5 z&N+D4eM5M1PO+Yj{zpFvrK-U8y;2k3TwQQ4VN;8lopb*t?>i-xJ?8}iFEv_D_jndl zkaLf-Tkf#&l#ROj2M^hp%$jq`uOZpEvQ5gaTe;ok$&Cj$_W1MGw8_mre#9p;w(O&1 z&C={kZ1V)<{W&E3a)jk?v+yvAz7r7Ex}#{|`r!Qj`dfdWt(LbJdn#;~z_ovB-2|Y5 zzsq(mYP0|0p!uioaOf`%<(%9X)0x5p_c2`B6VJ}^U*nG6+SBnof_@vfF3eQuo#f_u zSy`t*N%ezZ`hpKU7Eer5r^`KLc*tO(vGz3M|MdTimXjs-#_qds4J-y2JYD@<);T3K F0RZi#+gShr literal 0 HcmV?d00001 diff --git a/images/siteicons/purple/payment.png b/images/siteicons/purple/payment.png new file mode 100644 index 0000000000000000000000000000000000000000..10edded8015448b1b80487e165c7d1fe6b1ba56d GIT binary patch literal 1319 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 T$c%N700000NkvXXu0mjf1fs6U literal 0 HcmV?d00001 diff --git a/images/siteicons/purple/subscription.png b/images/siteicons/purple/subscription.png new file mode 100644 index 0000000000000000000000000000000000000000..6bdc6e70ecc1d8399fdede8059f6ace35e772acd GIT binary patch literal 1364 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 Z{}1HiW)GQL1w8-&002ovPDHLkV1l^)y%_)i literal 0 HcmV?d00001 diff --git a/images/siteicons/purple/walloswhite.png b/images/siteicons/purple/walloswhite.png new file mode 100644 index 0000000000000000000000000000000000000000..42b94667da576ca4227857003f180285bbd2dd5a GIT binary patch literal 6754 zcmV-o8lB~dP)~#g)GA^-ec*({$5py|6Cf4WbI#Q?FL@O3DBw}Rqku;Nj{+VAJPLRe(0m>Z z+^4|4Pd=I6(vbRidrQ(O-Q6)GP(v^(x~n-lrmH?Cu6N zj1&rZ%;oY(?0EN!XRFJym$Wpb#A=eY%OBOPC8gB0j?5_kTjumHZ%vzdQ>V+#@X$p7 z1)?LM4MV00TVBs!e`xo#vt>-x*U>;vwANHRdRS9k`gL6$@ni7({2@aGuOnYk!0*w* z9SUrJd*=(~2hADlnA(Cq4P_Q>e<$}PcUs|Li6jbm%;mypY)1?Py-l>6EtfnB! zR34go`>ti5U2nClmp`&8;4zoO@!9d-_GilW&%Cdv+x`i=qb=2aY;dUp?GD5t5TB`K=9B>Uxq>p#qJipwh>85HoC%fUD_RF3;2 z)a_9YP#jaVsV;3;Q*GLlZsGIr3@ima=CVouUCX!JTV0$z!)9@DG00yvrP(*^U-NO6 zt9U(R1403hxonWVJok89HB1dGKiXRj&ETD*VF>gkpXdIche0v>Z&7>a}IS7uk2Ogtf% zy=_NEL^alo`7aC2^Rh-51w7`mFd+4n<9^%Hm=a^5h@-4EC0Xae!hW73BwpbGqkzX; zilm2vVRm(K&ZUakUCGwon&fY&8uMFMkaI0clMD;NyU0sIM22iOL<6QEqaf6q|v zGQb;v8bB%F_kg)}dXI8(fQJDEfHJ^S0N1S?pdEaflif}mos_95$(g%%_1X)Z;PA>0 z3;GXM|7AATcwl0a|ZH# z3V$nA64*}<=Om~{dpCIQ@FqkNP_oraMDRzub6q! zxy!=U0F2Er;NAxqA5upJ{y!D8Y?jrHvfswLzY5+zi*omctId&)SM``PN79i~@!X0D z(Dw}(i&bz1v?A9mlrR=?O>%?ydseN#25RvEV=VRo4wXI}OP_Y5KPEWZ1n))9LbLTq z@P4g5tW}wdJBld9;o$<6LC5Mwi-wC7@_tJpPhS>z{Yq1%1w7KMbrs{E>h6?nv~JX( zhNHGLYwGTm8?RH#?d6ID3aB#IE`!F-SL_IPxlDz;^TCKC&GI1+RpK%^gfhc!GaP2` z^FG*gS8Z9QN}J74Iey>W6|2=(j-{;Xr9nagRp#1?{`3jCp?rp8M}#^ag) zG&5v)KLIdBl8-W5z5)(uma4ozN7t55_*tOGHIEV}&FL*$S3Y6F?v)#EcZ|qGa6%}c z%3NQfH56<`iLwnRx-^0L$W)Y%R1)(pQph+Pc^I}#l-S-X1su{Wl|@q?fxp%$Cpg?L zODp{Pit&&4v|OV)Zf-Zh!)Jj4s)JMwoYcyR(r`SKDLne}b2l=}(;xRjg*!BA9%X3* zv{bU4)|5Oj&K*%(nt6X9ph_N7l&)o{tr$Og-^P1Inp@ZE@DRB}0j1f4iOSkG7*u(t zNpr{uygvy|RPVM6o}YwgQdtL#$09~%LF=862Zp&%Hq>Nr(TKRjuxyY6A8jmrW#F|e z5l5ZKYLF6h=}qQkplmmor%!lU?_?GR@1p=Od_xm8i$*&W6&^D6cpcu!c3D&EBZkH3 z>eB4**@@(2irl3PV6ODieX|~P37v-~OcbyZS*1^o5t$ZoqNf5lv5!f*vO}gae-D}I z6etRcNrrq=(r>zAjFr4Ik`GPE*jSzMJUoGU#SpQHA}sFSepIsc-Df7uy{a{08)~y* zx{N*(#i?PY(kcx=?QjdA6p#m?^@k(5n$1I9G(@1tG8MqNO@jn(BD73lUA$P&M_ol$ zyJLm9D0l4yi0-NwHI__5i;d7k;)uLzIVqT5Mxe84H;7Jk2yjxHC~NyByYd#je+$3N zy2>gM2O>W#^ivwD$3BL-LruR1qB*YAsWTO=Jt$N1BkLFdj5*#64pck;M!Y8yybn7EPH}m_yZ&Pgn@(u_59{Jw|&>qr^v51;&<4NjSz!sE$62J|`Fex*aj>Smsl1+FLN|e@t zVFP$k1K1|WK!N?7(C6qBpPwwj$z$mbvrdcN@BMhqS=A*ugDPe_j<88Ei~5zF{zg(6 z-FoK@w8@SI3XgKH0Eejt6?u5tp#$na0aWf>MP#Bl^6!8Rz(>WKG+AXX?lL?ciqa|i z#Q*9Y{?Bb)rkGgGjJhWBV+l?XV^WJKvm4}Dyxh*jX{;XeTt{o7ReHz?>knv&$@QJd z>6P^(Gs>z`$CQ?*j4rQEPOEB6NIcS`*}p01M_(T_hgmn5Y<-U_>tIe?Ae=00JURUa z^Ucg!=vw4+E2=SNFv?`oWJTs85?&;e!9?0WPWWuV{(iN61HW?wwR5+k)kj}ihaWWl z3^j*10|ZL}1NQ%p6;}(Hnw;_$cSB1l|D#VYE6B~39cwM&!nd~qV5FUiBN|>x7~c5q z!-oZLdI3nwAk7|#QiBy_vsYCPx?#+SCKW^JeI5M5q4 z?lNT)t@;?YpV zT-35q>(ZaO&J!>U`}YN)znn!oKpF>!nlsVzgUm$c>q|!RmeF0Dl&-MZdzO~xPG@HN zghNGOtUG32d=7ozgvsaI4NcTynr1yrzy}!ahePCJjkW1U!n?F-l)Vs~^u|M*mj5JY z{$(Xj`!E3IsZ@~3xy$j6?oON^RBX{=h6=R@0HMBxY&z!~=Z9z>(2zkSPH+eMHvmsh zwS9{-<~j8QEJK~aKLRcU!~-aLkg-ga8g`CBM$T`cM?l$Dzgj;I_KqcfQ^hLMG_rk* z`UYIrCdoXOxx0~REv38n0j8mI&FL%gn-^5iTiqnm33 zo%l|a$S9$^5KlSx0q5(0>i(x5{B8pr0Q>=P1@h5+?=OIR@c%6;gs{V0RLApJCrZ3b z?%e_KHywXO2Dm)_trZmRmB9pQVINMs#G7F#A)GcGu2duRJtGvATD$cp;;D(ihEs!YhmP9)c zcZG*AiG|+Jcuu9&FAe6P=oNRO(9;Q>e5tiIO{nuTzzqOuG?kJa=AsP2i&|0Q#P2h9 zC1Z&$oVg8)%F|LqbRkN&lD+}p<*_V2#%6R}=CmhlY;Da~Wk*9!{JubzizKbx2pl4paUP3As|b${eRhOA63To)EXiBt zxo^hTm1jQU#5i|!W?{j+YiGH3=}ZO#&I^a9)QapaO$OhmRh8sia$wy@hU#J0XOJ_5 z99vORaTlWTfk-n<*_FzT(8OaTl@+1sRy^1a2KyB7zW{0-9{^krI3F-gzbdfYQ_IYy z*C3n7#MdVi$y`i?$3I=e(_eAXzcYR3a+xxN@|NhXOiGaI;)y?pB17c@QHUcUsi`M* zT=A8bDQ;3=+Tum~GbSGRsXtmNEXgt0+Kwbg;qGfNg<_MP$5l+acw`jqMqGSF3ow;E z{WaA6X-6jKo$8GMDocI?;PH=24q9gH1cNOD`~aZrhGdtyD0j)!kaN)hUbImSADT!s zBZbH(lDS7yC>rz9hf9>W<0)&(3O-#m62`B0If?h4KA~vEj0+a>Ud{D{9qd=oI@$_T zfQ#@2Fyk`wQgFS^k&aM5aXo={T8-;L4I!;TXwAV3==GS3N^xH7G8YvGGP#RJyq5q( zj*L_~95fgRt}G&D3AK4th02^VEy-I)>e7}r)})J$4oY(*Hla0;m{R`}rOY-nrKDB9 zY{w-HALC;n(HCu2JEV(&!FX!A3*aQ=9s@GH4hEyz-!R!?E`1dcxr(qdMsT`AQY%fK zjLtheLyOFps6r)CWS7Uv{#ysuuFix-Id19gUuz|gsxFznc%fyrzu92)f1fbC=|x;Z zOJfBZ;lc;>PT9Y9wW{a0m1Yh4yqJGf@sl>ZKcjZm>P|))a320zzYCMn#1?bu*klu$ za*Qk@l+3&lLuWcVN8SQ)PS-!SuGA^)lZ3!Q33#C8I*qumHejFe;|Y zw&lH2C3>dVgf2G8?!D?g9zK_>j2?Ys#<{~x8w4y3r;9MX@M|+-(l(a!$u)c-) zxWyT}5^+<}L7%dF0HLl{WNcm&N#}y<1Qrbr0+l!Cb+B-Wuf*RgR1FP;4?|1d%c^<$q|rzmWGW?>>K$yr zT9v*4tT2Ki2Trx}mU0OlMU^q2zf%!0nCfMx$(H2_Dm5!dds5NDcp-KU!-!%icQrt? z!yU#vlim{oFO9*e98*rf$EzOELTC8F58KS8w@hhbBd^TlN!CF_*{ok7u2S1osMJ`K z@qB07FsJ=Jss{1(T4;woAr6nDdU_B@6q>`w9X6ClBQwW9855bAV^N_Xa-U~?{929Z z8vrz|us~j~<=V2g-P*}lU>*(+&pVYlVx$c^>%8ZUcw{1IdnI{8ZF)fbZ!R564*kV@KfPDEq1nk76tIa^Jw; zNdQJ;W@rO?5z}@xG;tRceyl>*?7f2blwoOwPv^>wcuuQ~Zv%3e2SC>kKV>exP6lD+ zM^cPs?}JM1L9HiJ3*-U9TcCvj8!#dIurFC{iVKrvAe8>w$3yg>p61ue%+%S&C zfn|77oW|V?n!{i8v|RFPRN_jhuN#eIF`1~H6kXJxi{}I;x@Uxj3a5-r#tdC_sC2kn zFGrO(cZyKcx0mqjyAqoA)yrcznV&nE(KvpH_s5-N$SinHL*I)-#*-lucx)z69HAb8 ze_00?70Pt{D@wGnmF|)(;ArR4u*7)#8oc{wlRC&mWPYmVY2m`lVi{u*)r+XhP(kO2x%9@qg}+7uKFyM3 zHiJg}eFra%tlSUby^$%E)=~M4zpiY;6FogH#+<=U(b<-u^0gL)xon)Jt$FyY*0!LQ zo7bc5DTvdWTe%UaZNNQnysfB?2SfU`VvGPh0DfG5z%-C35wvcA@1l5tmh&OwKN zhO)e0vYR;n?m|0c@l&|N{K+nILAk%<*;8it95WX>MAbQOy=Cba$a7pgL$ikAJyrMr zW03Ecx)w*8W#6{>49k}eMZQ$ad z##EtrySk&a{DNq0>*nzz%LU>G; zT{#YiJ0qu~rFI2BX+g}@XTRB*)T~E+?}3;0igair-U8q?yiERQ^l0C_bls}+mn;qy?1g;*-6_!1J-)vJ z=OE~B81)F{xT|x#7?r9|X~wZ*lw1`pFxBRqM^vuRm+v;c9drSC9Y8H{9&l0HXgi?} zDquLbDBDttNZE`gO=N5y{kY5Vx?nHrQu>r||HimFc(!}#a>1g_e@`ylb$Tf*GKBXe zZd4Zqf2*9?+kZIcvNLG_>T3F6>55G&R$qKp;HYNO)s&jtqW#0=zngLLP4`=lQtN6% zz6QwLAH4`5TI-RN>k&OSY>dS&_H;*U_=eY0dscmF%l1!3ro0uKzPoGp{ID<<>#T1a zrtL2{g-1Uxg_#0FlDXj1biq+Ib$C;AeQJEw;Yl05T(Q~E3`VsTyOw`;X5sG1FICip zZ(RsNF|xPd=R6Gkj29R3WRqQ2Z+QSt-~Bebh6s)`igO5s!Ox-U?h9K z)w0Zwo$rpyLz6!_Qa>uOsoAez4%@+`R;H~zMr&^#ZWj7k4VjlqN&%-nhYE?ejr z9eMW~HjQr7le6+Gld|ryYJDEAE)Q9}Lz21hY1CJf(<((Ddl&=*>C>`cDjVgu^uZS8 zekCQgX)~sMahq}hFQaV=3`ypiF!#!4d`#}{=-3V=cM03n3sb?w#CW*ryT7q;*E((X zmV>9>a*v9acbIzj^+7u%nTx}Rj~V=7+~mEF$Huh}N(P&l6|E&ExVw9eA5#^WK5e`6 z@N!=t{&3XOAil9dbv6by_$!CQ6$%&9BAAy0bQ}Gs@rt%A%fJWko`dzox!qkc z!(b^9jW7WIU=OcV{k}kV6l^K{3`~gVgh5P8kSBou;t#DX`Yb>2by)llfy@vIN-v8T z@;yN!+&QKT_z{I{N{)Q10-f4bBJ!C(SiH?w{AAj*!_oVNwPiKguzws~rbae%_ z!zJAas|MfsjySEm+vvc73u0J>uqE+vo!X2^d+KM+{QR7`x7}qHoyi3Xdnh~#cogs` z;8DP%fJXt30v-iC3V0OoDBw}Rqku;Nj{+VA1~mo#A7+49rjjBp(EtDd07*qoM6N<$ Ef(Q)&y#N3J literal 0 HcmV?d00001 diff --git a/images/siteicons/purple/web.png b/images/siteicons/purple/web.png new file mode 100644 index 0000000000000000000000000000000000000000..961544d7cba23cffa3ee8ecab8c8f8996f0fdfaf GIT binary patch literal 1721 zcmV;q21fabP)C3*9l-JL@9)QUoEJMGZzRn^!%NnU9cWcm?6B=HA<>RWu{0D`QK{WwhpMfH3M0xX zxkRkl#MD;3G6|#+ad0M;O%qJjv_nxfwWu2-gFqpqfs~jeevkd+`OiFfk4)y+&l7ry zw9kjlPWT$V|CVk|Ci#9Q$M%*mYWp@CD4M=SdO3*|3~;+S!bfksD{;Oi!V{W2q4%s> z9Qylb{4|}RS8Hev!=ByX^I=bp;_SeXT;>S~8xT9G4KX>4 z$=hhYb9)x1Z(;NMVehjL2=JJE9xiyHztIL~qDREUBOe~c#`S=# z@CPh@26R{!e0~)y3)?q$Ky!ru;q!st4+{^lB~sAa4I*@4F(4){5AGkiGjU;b3J(OA zVq>~Z;1qCxGGE?-phLt?F9orz%#JWU41mcU>@_Be_D{J)&ynJZ?$j4_djLuSnj~Zep^nk1q z1KL<4lY<+#uqg$*`#~wHst>`PInWwb^02i7{03`E=bVfGgP*xI2%nt`538 z*pRueAeY0|)d`^>t{8syQDRUOdq+2lNgpoVyAOBgu|=Aoua^x;WgwTs*4hl6?YPw! zdq+1$e<>-&LnhDQfz~*bV#9ns9G1ol1CwVcQarK~4^~!i)CJhEfFH-o3SRA`NKquv zj0ald5Mjf73WwHsBG62c;*qUvK3geLY;uYs4foh&G~A;|@yHS$h~QYY*sxU#hX`IR zQKWce8V`a&9QgtpmM`E42Jvc|BE>@nQ+ObP!?M`0)m0oy@WRAkiXx%py*Kquvp^p% zWLMzsJhr+z=^S446B z7avGJB?e`-^)eW`S3! zKv6+-SQfOOgFuRPCFxxUW^XO zHCzxpijC_5De!Ax2St_zfBOVX6Wh1@p{s+6=H}t*b!>(K-+KX+;=gWaKS!g-WD*a2 zcr1&pdXKfrp-(>La5l?RT0?Uf_Us0q58LW0T)qNJ2@ru$h%aAwjx)-~+30b( z%o7m4M(@9+TN6oskj>H85d{~q}dP2n$;(iI^& P00000NkvXXu0mjf`+5=5 literal 0 HcmV?d00001 diff --git a/images/siteicons/purple/websearch.png b/images/siteicons/purple/websearch.png new file mode 100644 index 0000000000000000000000000000000000000000..2d62fb85be164077b384b1a6164fead8a903b10c GIT binary patch literal 1641 zcmV-v2A27WP)ltwJ8n-No-V@oo)`%C}GAB71zMwbi}y~APh z&t+m^Io%)oZ!P4H${2SnZN^Z+G6%6tdeW9f65(`-UbnP8$qy5A_k8x0yOG;-Pt5Z? zNw;pV7ys*oEo6V8?V_}+5@k~uXr-d4FcDA6B0G>tX+&TUXrW>rC{ZOsL4~>4b25hu z!6BQ{0pKN|lkF8$*dI?wkpMC&jR;%>qHIUFgp!CQe8X=!icnb75{M(?-2_ zVo5p7O%_i`5%?9KBb(A3aEMwZT7fx3MJrCiC2kc$4kw`vTbNxi)UVwbVwS~&C|y95 ziUPtVWB4-`+4Nb-vCG2jz)+v|s_=rP^isx66eVhv`7ZFnPy6*vfuE<(%3JJ`FgAfO zJ`DG1vt{_DW$^@xXR7on{ONeV{yNma&&IQ|#ts=OT5(eHxH#UYQA_xPT0B8e%2U<` zuMH1q3tkBGI0&?1Gx#vvr_Cb#R+S!hNR=K-nH-L36Wg&Uu?0g#5hr002g@+7N)KBI zgw ztJgsl-&Eo1b?S&PLjVR3#PB8#<%5*Q(%5FWifJNn^~dq(a64&z{1uy_qV{0Np-U}*`i6=C5D{B;ig zaTP3!tr?oW-9GZi>DkfG@F|23-#IYyI%SRm`*5KOE35Fy5`3}*E32T&_LMG!?|rLd zWb*v%=rTSCRhg7V1Re*%3KQ|9EaGB#KwB(}GYSu~`wGC(SEghJhfGQ%0)s$F;dDGH zi`WEPCZ!R9i$Ii$f(rZN2`S=YxKEocIHB+)yKmWqcr-mJ(^O?r8WFe%M5&lp;b1%= zMT1RX5QwrVDlo_v#;0WY547TAu%~?X5D)-~Ab2z5q z@vM}nXr^8ZwlKROJta9HhezX6vV6Qx2Y?GelzQ)vXQjly7{XY%GT0R6aS~d&iC&qK zf(S=}W&Yi=3Gq0!lvW%R^4JU&CF+H_$zDDyGbYTVz>rtH55LeVo~9A zJSmIpKqjRTfkB`Jo4{SvP@xN@8>bL?Y(iBwr8B_2_%pA4=0$C%OdHTj4S_Z)iYlCpC#1*@WKtRt7zA3d nDa->UHq8?vAAeTn_" id="red-theme" > > > + > diff --git a/includes/version.php b/includes/version.php index 17cbc8e5b..d560e187c 100644 --- a/includes/version.php +++ b/includes/version.php @@ -1,3 +1,3 @@ \ No newline at end of file diff --git a/login.php b/login.php index e20898d6b..079827c0b 100644 --- a/login.php +++ b/login.php @@ -192,6 +192,7 @@ > > > + > > diff --git a/passwordreset.php b/passwordreset.php index 2d78bcfed..02c74181b 100644 --- a/passwordreset.php +++ b/passwordreset.php @@ -118,6 +118,7 @@ > > > + > > diff --git a/registration.php b/registration.php index 7c88c5837..efaa954a1 100644 --- a/registration.php +++ b/registration.php @@ -312,6 +312,7 @@ function validate($value) > > > + > > diff --git a/scripts/calendar.js b/scripts/calendar.js index 44b5d6174..391d9aa14 100644 --- a/scripts/calendar.js +++ b/scripts/calendar.js @@ -89,7 +89,7 @@ function exportCalendar(subscriptionId) { const a = document.createElement('a'); a.href = url; // Use the subscription name for the file name, replacing any characters that are invalid in file names - a.download = `${data.name.replace(/[^a-z0-9]/gi, '_').toLowerCase()}.ics`; + a.download = `${data.name.replace(/[\/\\:*?"<>|]/g, '_').toLowerCase()}.ics`; document.body.appendChild(a); a.click(); window.URL.revokeObjectURL(url); diff --git a/scripts/settings.js b/scripts/settings.js index 63d9d2bed..426abd194 100644 --- a/scripts/settings.js +++ b/scripts/settings.js @@ -1049,7 +1049,7 @@ var sortable = Sortable.create(el, { function setTheme(themeColor) { var currentTheme = 'blue'; - var themeIds = ['red-theme', 'green-theme', 'yellow-theme']; + var themeIds = ['red-theme', 'green-theme', 'yellow-theme', 'purple-theme']; themeIds.forEach(function(id) { var themeStylesheet = document.getElementById(id); diff --git a/service-worker.js b/service-worker.js index 7554a226a..229119d9b 100644 --- a/service-worker.js +++ b/service-worker.js @@ -21,6 +21,7 @@ self.addEventListener('install', function(event) { 'styles/themes/red.css', 'styles/themes/green.css', 'styles/themes/yellow.css', + 'styles/themes/purple.css', 'webfonts/fa-solid-900.woff2', 'webfonts/fa-solid-900.ttf', 'webfonts/fa-brands-400.woff2', @@ -66,6 +67,8 @@ self.addEventListener('install', function(event) { 'images/siteicons/red/walloswhite.png', 'images/siteicons/yellow/wallos.png', 'images/siteicons/yellow/walloswhite.png', + 'images/siteicons/purple/wallos.png', + 'images/siteicons/purple/walloswhite.png', 'images/siteimages/empty.png', 'images/avatars/1.svg', 'images/avatars/2.svg', @@ -116,6 +119,16 @@ self.addEventListener('install', function(event) { 'images/siteicons/yellow/subscription.png', 'images/siteicons/yellow/web.png', 'images/siteicons/yellow/websearch.png', + 'images/siteicons/purple/category.png', + 'images/siteicons/purple/check.png', + 'images/siteicons/purple/delete.png', + 'images/siteicons/purple/edit.png', + 'images/siteicons/purple/notes.png', + 'images/siteicons/purple/payment.png', + 'images/siteicons/purple/save.png', + 'images/siteicons/purple/subscription.png', + 'images/siteicons/purple/web.png', + 'images/siteicons/purple/websearch.png', 'images/siteicons/pwa/stats.png', 'images/siteicons/pwa/settings.png', 'images/siteicons/pwa/about.png', diff --git a/settings.php b/settings.php index 1a1bd9d27..126717c89 100644 --- a/settings.php +++ b/settings.php @@ -1067,7 +1067,7 @@ class="hidden-input">