From 4356cb7b9b3fa0c841a94f84a9a482008516eff6 Mon Sep 17 00:00:00 2001 From: snipe Date: Thu, 15 Aug 2024 11:32:42 +0100 Subject: [PATCH 1/2] Added confetti option Signed-off-by: snipe --- app/Http/Controllers/ProfileController.php | 1 + ...024_08_15_111816_add_confetti_to_users.php | 28 ++++++++++++++++++ package-lock.json | 10 +++++++ package.json | 1 + public/js/build/app.js | Bin 982781 -> 1008666 bytes public/js/dist/all.js | Bin 2751134 -> 2777019 bytes public/mix-manifest.json | 4 +-- resources/lang/en-US/account/general.php | 1 + resources/views/account/profile.blade.php | 13 ++++++-- resources/views/notifications.blade.php | 2 ++ .../views/partials/confetti-js.blade.php | 25 ++++++++++++++++ webpack.mix.js | 1 + 12 files changed, 82 insertions(+), 4 deletions(-) create mode 100644 database/migrations/2024_08_15_111816_add_confetti_to_users.php create mode 100644 resources/views/partials/confetti-js.blade.php diff --git a/app/Http/Controllers/ProfileController.php b/app/Http/Controllers/ProfileController.php index bf0b1c3ecc..abe09e8afa 100755 --- a/app/Http/Controllers/ProfileController.php +++ b/app/Http/Controllers/ProfileController.php @@ -50,6 +50,7 @@ class ProfileController extends Controller $user->skin = $request->input('skin'); $user->phone = $request->input('phone'); $user->enable_sounds = $request->input('enable_sounds', false); + $user->enable_confetti = $request->input('enable_confetti', false); if (! config('app.lock_passwords')) { $user->locale = $request->input('locale', 'en-US'); diff --git a/database/migrations/2024_08_15_111816_add_confetti_to_users.php b/database/migrations/2024_08_15_111816_add_confetti_to_users.php new file mode 100644 index 0000000000..a3aa85d4f4 --- /dev/null +++ b/database/migrations/2024_08_15_111816_add_confetti_to_users.php @@ -0,0 +1,28 @@ +boolean('enable_confetti')->default(false); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('users', function (Blueprint $table) { + $table->dropColumn('enable_confetti'); + }); + } +}; diff --git a/package-lock.json b/package-lock.json index afe7b5f7ce..d71c3f9fdd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16,6 +16,7 @@ "bootstrap-datepicker": "^1.10.0", "bootstrap-less": "^3.3.8", "bootstrap-table": "1.23.0", + "canvas-confetti": "^1.9.3", "chart.js": "^2.9.4", "clipboard": "^2.0.11", "css-loader": "^5.0.0", @@ -4098,6 +4099,15 @@ ], "license": "CC-BY-4.0" }, + "node_modules/canvas-confetti": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/canvas-confetti/-/canvas-confetti-1.9.3.tgz", + "integrity": "sha512-rFfTURMvmVEX1gyXFgn5QMn81bYk70qa0HLzcIOSVEyl57n6o9ItHeBtUSWdvKAPY0xlvBHno4/v3QPrT83q9g==", + "funding": { + "type": "donate", + "url": "https://www.paypal.me/kirilvatev" + } + }, "node_modules/canvg": { "version": "3.0.10", "license": "MIT", diff --git a/package.json b/package.json index 95ccf94f84..468c6c2891 100644 --- a/package.json +++ b/package.json @@ -36,6 +36,7 @@ "bootstrap-datepicker": "^1.10.0", "bootstrap-less": "^3.3.8", "bootstrap-table": "1.23.0", + "canvas-confetti": "^1.9.3", "chart.js": "^2.9.4", "clipboard": "^2.0.11", "css-loader": "^5.0.0", diff --git a/public/js/build/app.js b/public/js/build/app.js index 66bbc638c6161210ac0a8748806b00b55ef40a0d..c5c6a5cd6b0dce71db851fb5ce9a652f2ec09342 100644 GIT binary patch delta 23834 zcmbtcU5p&ZaRz0YzZNBhKl-s8_eqv^kGh-NJ5iK)G(%COgwPO0f;>f{XG!^|d;8_BC!V>lHt&6O{Jn1+9=HDDz`pHEZ|^M@ zOs$!@xfq-Xo;RzbxR;w`V3t}-$L3qd=AUn^EG;cBo>*RdF?jLBu`lnNX?910b{+$! zxe*UK$;O=NC!J9*nl-ogEi9NU8Kv#Wfb2XP@Sh+FwEWp;{lZs3 zfboiouoqlPlYX2o{D?dUXBKxD2)eeXKAdP`O>)>{4cLucwG>^ z+Kc+&hSnFB+6jPQm?n9WZw;d$Ps2ghjZ#9MCcTx!(N^o_&C9P(mIN3@m`4{^-;LTi zAZAbQ14op9t6<=zFkjEWKk6hQo&r%s(R4LdsxptbeqE?&40=4rfH136h@J(q?X zuf%yDvwX^IfB5LZlaPjdJS>D?+*=RUS(mXR+mh$w(UDKS=iF2b9hK+yn@PVfb zr58#8l!Iu))S#M+b7m1kBLQI89Q3Jd2WwHT6Vq%gbs7rR&NqW@-0NKiUz)8sga2zt zR_z$tZ?h1%nOI5A_rtYF#@G~&8k4765PYJ*7(y-kV51;4p@Dp`*n)L&ZlXk&8u)8J%UV33AU3ZgxmmfeVlE3A4++J{XFhqGp% zaD|N9cyYYvNYM`SPS{z1DXQ4(ILk&+wy@MX!CbWS1`DAw8D%hTCT!;;%*_@i6J~x3 zvp9?fS$q?-mnCK+GTC}E>UG?tTV#vNi$ss<7Kt6fvXHL@ob(+L=un=DUKZr(S5i*ABVsL?KNm`*ZikeIP> zu7@`xh-N?PC(wmn6yD$(<-PEZ^n~mg`doIxr`lnqj?mHUSEgV*GunT6m(17re@^dt z`~X-GtcRI49=~^I_mP6ipzju;hz8+P@u0^~G$ztXun~9ib+CiYK(HRgYwNih4~M2^ zXNoC?hG5AabYK?QZa7;&R>uk`K@stpBYsY0#fMN<%4FNY-I-%HqnF;!C`^~PKm5x_ z(a|tyV+vBTD1@9?!2iZV~I@(b+kh*ixiCgXkkP6^u!v-~xJUy1t>>ROYU zpGIGUCgo=a@%T$W+_^uftvcSqBs~HU@(!nj@siDWgDC=bXX%>lRbSGGY8WOR8HBR~ z!{RfY5oFim&UFBdU;g3FBc

9W`@|z(* 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 S=jc0qE*rnn_DU1}h57(gY$Zhi diff --git a/public/js/dist/all.js b/public/js/dist/all.js index 4869d7ca33183b8e64f03fbbfee050d8ced91e95..f82e4d678cb1bd1824f6dbfd4f5ae7f018b897f0 100644 GIT binary patch delta 23150 zcmbt+Z;V{WaVMyVLy3~Oq?SuAmy*>>N}L&S_w65%l(aM>OQdv1pD5DgDk9BethY07 zcAq#iZ#3^MxhtA^{;+|A*idW(NympEQE&kcNpLwEIGhi6A1+2d1TYR43rIdBIp5g= z5+sQ4oE*-{hXiqcRn^_E-^?r}BLrt>UUzkMRdscBb#?Xo)gS)59sl*e{pOC(ZSB~) zZ|f(v?%&$ERoU9L^}yDHTf4U&+Io2Fk*z&jV_SQ-_H8}7HNLffYhvrb*1@gGtwUQ= zTZjMSWB=xEwGno2h3RY~>9(RQi|3kgn$6j#V5OhjPNRPCmj3!L*I&?Y{_L(@zw~qU zNA&;A4nOkLM{26yyzlS{{p~A@)Mr zi;GJO&o3=J8$A2`iBIpIuC>;?jVuOC?RMO4Cbwr)Cuy#?qq@4Ydu~pp$$GyLDG;7T z-E8;V(`vPytc2}UT?l*X>ABszYq>+w3FB@}>MfcX6{l|`{hLvLM&0J`EAcywT&Y`O zpD2GljRZoSQPb14-3tE%Nnpy49rFuc0s+b^`b5|cF7=a6oJM{zN-wrrX`>%S-LpIx z+tunH{i}(|e4zGUE?;<6n!VhPI^g}o>VsZC$&zfd7X?{A?53@#e-={fC++3L5i)?} z^~A>gfW(xqf*2r8w(g_|7Q(cB?Xe8snU;#VJNU&DxtPUGMdhewL~< z?X%$Hma0t~`W!1F9Q_Lq*N^6gHYhxBcB9*B0IIeyqZYsh4K2fFAkb)Suo`6~sAwar zRTrC81J=kkf>zvaUxo~7^D_$n2av2-CK^|Hc%9gnlk=T$H4-LkB0Z(D{w7qKC{T)! zi;y9_Eb4b_f^0@ryUA=n>OuZQi2l{D)h6{@U4Mm+%Z>^`9X%n{Fkbk5c)@IxX*X>QzyD~zU zqa{yRnw-Q3$?^hES33dDnCTlt8$5<~W)!j~NC>~&Y#Q2fD~X$GUcE3-wPYvbrT$^& ziM3HFQVOeqK&dbN)#RbPA7$(PE~^0bBg9JIEFxj3Mq-;`;n~r#4cFUk0%u_2PR0ec zrWf@=wP&u!yZ(;D#MBR>5x|XcBn{Lc4vW2AuqDHln z+|s`!ByhuQEzGDjid5K*JDBM_`gUzlao1vk8b$pU*b8BP@TW^wbY(qLu)hh!m#H*M z`rN#O?)uR!2njW|i?^Cdw@O;Zy15qKilCXDsFPqSw4?AQ*BHr*GRV+Xhl)7_SR>i_IH@RJ{EI|ONP zJ8oucV4r7wuolIuYgzrYe*do~$KMq3ZevM^UYhVt7(O-(ZnBeEu?k2~L~`oLn=#rz zc3|u;CJ!7GJ%)15u;73dLhLW;Z(gn(1ma%6&txJ987VRUrN_JV8fYv`FO(lv@V`e6$y&L&xZ_qE6F&zH|%c$uau41CaPCrQ7yFh4)9=F}-7n~+npRzK`OCxO2a z@#OJ}$sXUiTfnx%G<${Mm*Y-^y7}SB+>hSI?8sj1#`>XuxbGqT=pRpx>+j_IcI}rQ zPywBV$G~`a+P}sm0G+c|wZ@9CE<`4bi(v&C)`V>k#)%791)?dv9yf0QNbmTE`wkRd zh3To5fn*=4XyE`yuww+LKKof!t~st)nzL#_eVjqcsMG-X8U6X2$Hrh_@ugxam_#ldkB( zuK^J}`sK0lfo&)Hj+%N%pE+}Em;TtbsXhA{U#ZW=iVnY6+rJcLq$A0ChOwMs;T4K) zv5g=Z($~NH_|XH8(%i5ZXh`~X{obdi4xF?0Mg$5gIrnjlNA zz$@;q)}A?457Ktrh-!;y?PNy?KrVe*A4@hxMuE!2IQR1K16m`xXVe`<@>{~U72y&sAa{QPb4Bm?WaWUhqr|P1*N_sT ztEe=AxWK5PKcqs$zzk;KB{)Ru5l>O4Ebxxhg_>E@;;xkzW@9lKoeX(VE6aCy$n}fg zKRT{Ie&*O7J@Na~WBN;fx|4L1rUH>h26bX56RF?+<-G^;X}hV$?vduX+d}&!5P^-P zNz?GUqg|;gm7l%%+AA+FFQ1=LSI&Q$d<-&8vhnAK(^c!^(5O~xRdpQRQQVb@l+#SA zqo`W1(Zonc`K&iVj~q-#_M`0e~LlcwC4uUz6{QhVEcpew6t+rVOK84I6_iMQ}e%5`sxNMQC^HDGSUtq`#<*Exa>9-lQZdwpX(cYY*UYw(ilJts zD6`Alof2g^4?bz`5NR;Ev@rg-l$loBP*x}!ag#K2#K+tQTekegKpB#U*(D)jV!-!Yz-iZI$Cw)W+?5~2kL6W7+NfBkFk z{=7QN`(oOkwv(`F2*;v@b$&?=EldMje`1yPPP>)51UKs#7U`6 zGc^0DsGT(8Y_li^MR|zl`QUkhTkVIp7-B)5oBgtUZ(`D!EXgX-!H!TZknZZksjh56jzY9#HXPi@RVR*x>8YBX9cr)$-t z;o`}#)$|Hlt&`ES!0wtn_Z*5sub>4CCl>vJR(J}bxuQwlYCUrb-7pSA9pWfhjaR}I z3L#2pWCgJaET0mzAio*$@J=t3kOU&)fQ?>B`j?~TdLwFHNXX~HjsW3}Ncu`)P_e~U z3+PCecUe33AYcu}L%buyLfqEh`qSyD+=VWnmF_oHliJ~n)r8hnyZ#``bMdACh?*Ex zoTf6?bW&FG-0kx^2A~ypBl2lPNeg6;g8N>vRp??zD|A^xSy;+#2w<(bf3sv=rv^9b zpuJQ8(ycZNgdGIOA)_5ZPtt8~UP{t9&k(aZ-_77!bylzqE3qnN*b-CVZyud_!3G0A z%&BbP31uhlQs`|13loz89k}kwxTGKH-x+`O@mxKP#Vp)VvkLWfavtzKj5HgOV8{`8Y?V(1 z85Y(9W%d$8A=b2BJH&Qk?)p#9&psc{wr&%Z>TjK3eH;=G4zu1pgzy2#zq5`lPH+FzvQA8tvv zX?`Kj9-qZ>f0NE=aw|iFHb@abw>vpo##XpZK_u$aXtb^5?xLFQb)c5kHdGD}Spen4 zOAz)O#qrlipt@+!&Ecri5rL3hRvEG4m)17ZxRKJjJ5aWTxKl$-^bbCmI+(+aVYD08NWm52f=yd+J6VByU{)j>GX}N= za0T5^Q_0x`o~|pA!M{3Ga?LAojyV%y zo-h#4%!mcXl7eOPig7aMgHx6O>vwWHd9YP2%yz>r{bW;JtclJbulEqaie91IkHRi- zDhQhul0QFT-8*j1MH)$3lQN@4b&x6rR#Tx&QovgbvV<1RrbClr4tyw@+~6@X@iDo+ zo<^jG=nr^UJ$FV*iF<1zEfq2-FaS7MBHGI3S5YBtH*%U53-gXak+CseJZJi|m79pZ|Er6w}BQL&&ub!2QJ7a|Qa7#{zb&CQ2!$8&y|J8;V?UktQ#L1%!z zw6MD+!#2S92yt12#gG>WOBjiDV~sF2!9uyeLSjr_iuj(4IIk^WU4b*s!ytiPcx$EZS0cFklzK$21=r9< z2QDLG(NvsLG*Y_dwI!fnl0=UX09dP1wTUnJP*kUK4l>D3h5=vf_ruK~PWjsmtYGbM zwiEV~cZ|OK;;FekGEua6PIAi%t0X9>OKaT4^5k*gV=q_6fpb}`opLUVlKCC3q&29= zEL4(AIObb{g7u#OHVI&JBtX6vh<{bsM^Q1uqqP@a#MGBzA!#}BsTR^<&(1i(&>JRZ zxT~D3k2Mk0gsgK!*4t5EW^V|VOqYW#bLzu#P6t4J>Opf($rMs&=dG*{ep|OM8fZ*y zP2FH)BR=A&W3uEp55r~6)vhxLJBLg@S!(CLV<<%s1EWdS_g+A=jA|s*wE7h#%A7MflpVN5H^ti$NqDLE?R4k<9maWaS0$U5T5?dG58Zyh$Ql$IxJ zrRjh&c9vnSIcW(YCdz&+q+t7&?8O(`y|oY&mF=6=Dhu1nJ=1D>8G^B?iALJi6i|Q* znY6T{pHqv@kGIvERBg1gTrcTOR{lx}kil-29c;Q~hZ~gHG0XXAb09X?1ddyNO}9*6C+v6{Je3R2@PL@iuh@wMg zl%V+n=4{dJwHSU%O-g5H3oTU2>mLpXV`$`Jb;rLCI6l@U9Z2wU_inf9@Z!|tCX(O8qlXlPsk_KqgfACvVkLMP?liVU!SY(nN zXvPuta;R|A`V55)F`^g(HQsC)3mg?=gdiMC!7zpmm^{DpO+=xsaPHA+q1;ON5IU|| z1ZIZ-id!K5ZXR4zg9t2##zM)Wq$UmWv_vkbqKVjEKiM?1 zj7s3Lf5bE<7pF+NoWA5wNyCNd5G0z8@C)Z*m;JONJEolZN?~skt1PkuL{u(c*O~93 zWTZ(-1hZqwiZ8i)NJ4u1*kS##2Wpj^QtcfE+Hd%IFw?c7S6=kwjFnJMoPV{1QFq*RIiz_vTm!_n2W5YyN0$SJIL;tTk7{;tL)c*`EF%jKJE1bD&^4- zm1F@JCfY z9#1{^*gc|Woc}eor;J&vza2X;J*2qEs17*4v?d7k^e9a_GvAYU_#Yx5z8wOhlBNkh-BgP9&F&EEwg{KZ}bEN!Qt0acwUS97n|ItMLjT!5m~ZEs85* zU>n(PC$}$iQW8~9gYllZiAI>zXLHHEt&#V9T}D^~Za_bxY;{gV zC^`|!&W%o60Qf+s*tHZX4tXiZ0a2Nk5~SaRen3fbCR{2X5Q59%k<7v{Uxux9dxy^F zOw1GT05ejSngy;Gl*^`uNwqmSWVT2mA|twP<4gSoHR8+^ZC$B7^(+KN`O0zFhQOOS zu$dvI$d8al$qv(IEQ8N{#wx^TymshdU=(n~gsXM0B0ebjB0y~7NS!citX+tjF}8Rx z?Zxdk^vGLUQ(LPd!I+Swxa!53C$k++J*ijgNDKgyC@q+9(*uXrW;VLTld_s$O%NO@ z(mqJN29ug0)ExU^F9iuiv$o)TK@!WWrE2Jh&E7D{8_oo=w$r)gFbY03@K3^NKxIhN z+@8!0bSr0c+cYX2hYe9&IshAufe#Lt(A-arLDDnMj7B%HhcrXonTpY^_&8)(B3#TZ za!!4bQ5BI$BFJzXDMusuQDlf%S@P-Ea62v@O&x-XIa0fZ+i;XIwR6@C6`w|pfaUTs zEFHlB(%6MUnW(%BsTaSua~y-f>Q<~Oq)l1Wq0L)K0ewM<3k!(r$UZTv5w+v-r=Xx1 zV;8Wq`5ZnDhP_5czyKQ;1RFfb{;*yw4s~U(NK}<~ib6-wTTj=DKrSs&6fL*M*mvA= zNyCLhW}#BnKD)0|IIk3n?3zfx3QIAk1M*k7#%2b}_duOLO$=h2G+2hj)(z=;Sfn{? z?>YVu*SwqWpq=_)$_=|zjzwu{>$L*45+yUwsp-MO+xD#ov zD8g3Vij(!!C=0GTQeNg};VRiaD8|`r;(!{LY|X%zJQ|p6y<_v}c9JFlgZjH)Icp|{xH}6XX`hkm87|;549_g>=G=vT6eKBk>Em^^Mc7;Ecz_nBc$n8P(z0R0SzVSBvICWNxEuXv_ zyWr6)m!0&D@9aEiGCv1GUAp_{J0E+{G(4^J*Z<$1gHOt%k%XOGM430Q^f$k=XI%g9 ziK7o{^_9v)@B+$aXghX&p=<}^=B!A=z8QuuBOV$O2bN~KJ0Rxpeo|4sI%k!YwreAI zYJ8{U#JzWO!n|Fwfr+nJ>G%KB*yNKm0K+rgOc79tcM1qi$9=8w`S;5iaaPms{r^J; z?L9}LjVR#$q2Cw6n~}X3KxP5&YrzfncQ88=D#m*tq<48c1=cTxi!X5-^P=63ngKA8 z3vX@~ykd|$M+9roIk`g9raEWUh|g)SQNe*%h#|8(`Lhz*p}9eKI$_A(;A>0pO!-=f z44^#W%AEe2Uzr|9+Am+;u|zS)jxu+UeMvGpa6G$qg;U;V=)`#qrx`f^wHd&CdX5BO z{`T^JE!`voYPCpf11-wHnp2`kf!10*-YHS4kO3novnkIO$fZQnHEy@ql(#z+XXS)V z2&2OcHdBm_l7NQL-B0eYzVt69PUa57ocqO%vqjfohE!KV;Q&kugULj>cm4usS_?+z zC0wNyo3{%eC3%7IjO@x~F1U;ZdZ~?4xRhoDVZ7vQ(P_6EYe~X+1s=1L?K#{Ewu8sY z2>bN9NjTD9+x6JtHIlW{KZR>l@}3lVr4d{j+}GuG*Svwt?vl;CwhBR)T1b%$k<^t5 zG7)~FLjUf6-g|J2d!xOxDdg{Et?3lB71AYPTJh>Sq>BSu zUXkVC0X`%x&%H3GceSkd2$0@cvO#|svlt%S1iC^#Co(QkVTD6fB7>V^3I<@HhSG{g z)r1?=#>YePz6}ER3&k~^F}W4a4`fFJ@6Ew$L+C_P(Ti<**e?V@Ai4t2tA!V*z^LNQ zI=FbY7Bz07-tdFw^x_@7Cn(;C+U#Q7j?dxV7(6-qMlG0L*xsa1cQ{Nlxp$LqBeK5$@PIPu>3Jqslukn(*ncP{$@*Zht^S!cK|=mCC;}C3 z(B&^!;vrlzNKTsLWl-FA38O}aQ8>)^#*i;HvfC+6m#n}e~L#Uc3mDgt-2No#f; ztJ&&o7vYv$(JWqc^;SHabY}sT&)$w!=8R;JjfEtFSHez=EdeMv@*?)T5w0yGI;UQy zR!3&kkt@+^5~SC}tfPp7kxSG*y3)@Xzw4O3X!8)_7Jfz%2 zzB3}oQ4%2uIkp}-%(w%JsqBD}i{0ChWNeRphZK&CEac?P4Zc3nBEkN~^zFF;c()k_ zU)mSzdG6k($X(D2(5NjS>8l`?xkq!?==Sl7LVJ$D)=|&XedM<60WoP~p z*)Pnymy(Uk^j0=-&1o{j)vw~3poi5N?GHoyV%nfLa1!28y~40ly*0x$20c2E2TkCY zJxg&rNKm6u5M{vMlU9Xz$Ucm2;br* z%kYi_rnkHjt63Q^lW0vjyEAImjFDG(gGZ*g=Jku8nwrwz`MX0895nlvV#h2SX8q;& zCJySaeR}NvNp2x!-`EPw&24^TPFTJ@xfRDo^S+Co2y;WrQGa5GK@YmA&;UMFP40 z^+zg`Hl9HR4$$raDIUtNNkeCN)oSrtA&Kgc?vb;N7~a5ZiP59gj#o_#fY@e|zqq0Ibm7VE_OC delta 136 zcmWN=ISRs107X%LoagVXF-~z#qbm?xfJ+iAF1Q3CMZhYg7gAWbm2AS^ci?=!iHUx( zxnpq1k*7eB5@jk>sZpmvlNOdX9lG@BGhoPwF)ow07v3H=^K_~+o$ErE>g!6^y3wuf Tbf4PnaJfFuPT;5RDR>?K(5o 'Account successfully updated', 'no_tokens' => 'You have not created any personal access tokens.', 'enable_sounds' => 'Enable sound effects', + 'enable_confetti' => 'Enable confetti effects', ); diff --git a/resources/views/account/profile.blade.php b/resources/views/account/profile.blade.php index 4f2c7aa55f..a1d9e2b080 100755 --- a/resources/views/account/profile.blade.php +++ b/resources/views/account/profile.blade.php @@ -89,15 +89,24 @@ -

+
-
+
+
+ +
+
+
+@include ('partials.confetti-js') @endif @@ -44,6 +45,7 @@ {!! $message !!} + @include ('partials.confetti-js') @endif diff --git a/resources/views/partials/confetti-js.blade.php b/resources/views/partials/confetti-js.blade.php new file mode 100644 index 0000000000..733d96d1b4 --- /dev/null +++ b/resources/views/partials/confetti-js.blade.php @@ -0,0 +1,25 @@ +@if (auth()->user() && auth()->user()->enable_confetti=='1') + +@endif \ No newline at end of file diff --git a/webpack.mix.js b/webpack.mix.js index fee66acfb2..f4e0e69d5d 100644 --- a/webpack.mix.js +++ b/webpack.mix.js @@ -65,6 +65,7 @@ mix [ "./resources/assets/js/snipeit.js", //this is the actual Snipe-IT JS - require()s bootstrap.js "./resources/assets/js/snipeit_modals.js", + "./node_modules/canvas-confetti/dist/confetti.browser.js", ], "./public/js/build/app.js" //because of compiling - this does not work very well :( ) From 6216b4fc0dcfa2d870197faca6b3b468e5d4aeee Mon Sep 17 00:00:00 2001 From: snipe Date: Thu, 15 Aug 2024 11:35:56 +0100 Subject: [PATCH 2/2] Use native browser control for required in addition to the css effect Signed-off-by: snipe --- resources/views/account/profile.blade.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/views/account/profile.blade.php b/resources/views/account/profile.blade.php index a1d9e2b080..aecd8a4c12 100755 --- a/resources/views/account/profile.blade.php +++ b/resources/views/account/profile.blade.php @@ -20,7 +20,7 @@
- + {!! $errors->first('first_name', '') !!}