From 99e22f5697dc629e0dd4f58165f22e22cac476a0 Mon Sep 17 00:00:00 2001 From: ro Date: Fri, 20 Sep 2024 15:09:45 -0600 Subject: [PATCH] added member profile editing added a basic ui so logged in members can change their info/password when needed --- .gitignore | 1 + app/Http/Controllers/DenController.php | 16 ++++- app/Http/Controllers/MemberController.php | 28 +++++++++ app/Models/Member.php | 1 + app/Providers/AppServiceProvider.php | 6 ++ app/Repositories/MemberRepository.php | 59 +++++++++++++++++++ public/assets/css/global/forms.css | 1 + public/assets/css/global/frame.css | 10 +++- public/assets/images/global/default-avi.png | Bin 0 -> 24313 bytes resources/views/back/profile.blade.php | 3 +- resources/views/forms/profile-edit.blade.php | 30 ++++++++++ routes/web.php | 3 + 12 files changed, 153 insertions(+), 5 deletions(-) create mode 100644 app/Http/Controllers/MemberController.php create mode 100644 app/Repositories/MemberRepository.php create mode 100644 public/assets/images/global/default-avi.png create mode 100644 resources/views/forms/profile-edit.blade.php diff --git a/.gitignore b/.gitignore index 4bbe4c0..bcd4091 100644 --- a/.gitignore +++ b/.gitignore @@ -5,6 +5,7 @@ /public/storage /public/reference /public/assets/images/references +/public/assets/images/members /storage/*.key /vendor .env diff --git a/app/Http/Controllers/DenController.php b/app/Http/Controllers/DenController.php index a15b3e9..ce9c672 100644 --- a/app/Http/Controllers/DenController.php +++ b/app/Http/Controllers/DenController.php @@ -37,10 +37,20 @@ class DenController extends Controller public function profile(Request $request) { $member = Auth::user(); + $avi = ''; + if ($member->avatar == 'default-member-avatar') { + $avi = '/assets/images/global/default-avi.png'; + } else { + $avi = $member->avatar; + } return view('back.profile', [ - 'handle' => $member->handle, - 'title' => "Your Profile", - 'role' => $member->role + 'title' => "Your Profile", + 'handle' => $member->handle, + 'email' => $member->email, + 'avatar' => $avi, + 'pronouns' => $member->pronoun, + 'uuid' => $member->uuid, + 'role' => $member->role ]); } diff --git a/app/Http/Controllers/MemberController.php b/app/Http/Controllers/MemberController.php new file mode 100644 index 0000000..c685b71 --- /dev/null +++ b/app/Http/Controllers/MemberController.php @@ -0,0 +1,28 @@ +members = $memberRepo; + } + + public function memberEdit(Request $request) + { + $token = csrf_token(); + $response = $this->members->edit($request); + if ($response['status'] == true) { + return back()->with('message', $response['message']); + } else { + return back()->withErrors([$response['message']]); + } + } +} diff --git a/app/Models/Member.php b/app/Models/Member.php index 21fdee4..f4397d6 100644 --- a/app/Models/Member.php +++ b/app/Models/Member.php @@ -9,6 +9,7 @@ class Member extends Authenticatable { use HasFactory; + public $timestamps = false; protected $table = "member"; protected $fillable = ["uuid", "handle", "email", "password", "active", "role", "avatar", "pronoun", "gender"]; } diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php index f639e0e..d345106 100644 --- a/app/Providers/AppServiceProvider.php +++ b/app/Providers/AppServiceProvider.php @@ -5,10 +5,12 @@ namespace App\Providers; use Illuminate\Support\ServiceProvider; use App\Repositories\LocationRepository; use App\Repositories\SourceRepository; +use App\Repositories\MemberRepository; use App\Services\UpdateService; use App\Services\MaintenanceService; use App\Models\Location; use App\Models\Source; +use App\Models\Member; class AppServiceProvider extends ServiceProvider { @@ -25,6 +27,10 @@ class AppServiceProvider extends ServiceProvider return new SourceRepository(new Source()); }); + $this->app->bind(MemberRepository::class, function ($app) { + return new MemberRepository(new Member()); + }); + $this->app->bind(UpdateService::class, function ($app) { return new UpdateService( new LocationRepository(new Location()), diff --git a/app/Repositories/MemberRepository.php b/app/Repositories/MemberRepository.php new file mode 100644 index 0000000..ab1456c --- /dev/null +++ b/app/Repositories/MemberRepository.php @@ -0,0 +1,59 @@ +model = $model; + } + + public function get($uuid) + { + return $this->model::where("uuid", $uuid)->first(); + } + + public function edit($request) + { + //get member to edit + $member = $this->get($request->id); + + //save new avi if available + $publicPath = '../public/'; + $refPath = 'assets/images/members/' . $member->uuid; + if ($request->hasfile("fresh_avi")) { + $file = $request->fresh_avi; + if (!is_dir($publicPath . $refPath)) { + mkdir($publicPath . $refPath, 0755, true); + } + $filename = urlencode($file->getClientOriginalName()); + $file->move($publicPath . $refPath, $filename); + $freshAvi = '/' . $refPath . '/' . $filename; + $member->avatar = $freshAvi; + } + //changing password + if (isset($request->fresh_pass) && $request->fresh_pass !== '') { + if ($request->fresh_pass === $request->fresh_pass_confirm) { + $member->password = Hash::make($request->fresh_pass); + } else { + return ['status' => false, 'message' => "Passwords Do Not Match"]; + } + } + + $member->handle = $request->handle; + $member->email = $request->email; + $member->pronoun = $request->pronouns; + + if ($member->save()) { + return ['status' => true, 'message' => "Profile Editited"]; + } else { + return ['status' => false, 'message' => "Profile Not Editited"]; + } + } +} diff --git a/public/assets/css/global/forms.css b/public/assets/css/global/forms.css index 32d16a0..17697ca 100644 --- a/public/assets/css/global/forms.css +++ b/public/assets/css/global/forms.css @@ -36,6 +36,7 @@ input[type="submit"] { border: 0; transition: all 0.3s linear; height: 35px; + margin-top: 15px; } select { diff --git a/public/assets/css/global/frame.css b/public/assets/css/global/frame.css index e2bdef3..eb4e56a 100644 --- a/public/assets/css/global/frame.css +++ b/public/assets/css/global/frame.css @@ -200,7 +200,6 @@ footer { gap: 10px; height: auto; width: auto; - margin: 20px auto; position: relative; } @@ -212,6 +211,15 @@ footer > div:nth-child(2) { text-align: right; } +/* + member stuff + */ + +.your-avatar { + width: 250px; + border-radius: 5px; +} + /* responsive */ diff --git a/public/assets/images/global/default-avi.png b/public/assets/images/global/default-avi.png new file mode 100644 index 0000000000000000000000000000000000000000..99ee4bba4fe342dd7d22b3f50db01c1526b3696d GIT binary patch literal 24313 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%0A{&KRKt+LHhMZ1Vhr>EB`0A7 z|H|>qMZj|Tuc~q+jh+u{(ZEnTpM(O8=uZKS)~FmPt-cb1G`Psi{3|xd%Zva6CEUB* zOeLIT!ALL|GKiO%wU8OyS!^UfvIAH-BK2%a@l_Nu7q(#uHd3vCd2mU%cpakE$P`Zv z#{BP`UkId{1+)|jvo<=BA=i`NPD0VaHXk%1^DP-)jT;L9s5wYsjy6+fETTi?E0lB?TPjYgh-ATU1nFQ z8>)vP!jl6}!wx=j$3t%P-*?ZnXL4vky#}egJ7?Ngu&}Xc`=ldA%J#2KES7sTkqG?s zMV%DiVN(#OwSAYJjz_x`@h-%NCx>l5(oo(onc?U6vQ?oOTLV$1p9tAaxZvfVC8=lj z#wFiaTFbyB%}M0}4P6ku_8(v0Q$$0w0+i9dY=SvT%_yP6h1=(vwf|VU3L~EP2 z_>RTwgh^KHl?cz4`UcSwwt9h*a!>Wy?K+W$vc7XnRpsT3{rQcynWP^cbACQUWHs(d zt*maOUlvC^nhE_`h;_0=?Yf(vrLhXJvu*57C` z)r}0@?a@UJ=0~)!*2fa~CnXBU^BVMa9`eI020%};Ub7YrCCaX~w>gL;)*xSkPW+cm zTO<#yi7l&d!*IUj>)@@8YSx+~ToiA_R~@fW@IxSO-(lFw=_`H1Enr;)&mk^WoJN|i zQrBFZW4pu#(0|7R>)eRB={ylY_FtHpRPmM)3sXMjfz19pX$EcdOVXgmijtfLe~7SS z#Z0%(gSL~>d!8YNqHOoTsfVH;U(-{FmoUEv?cP?zP5z10H}NsRVqr^G&M8Y#os-!3 zXc={Nl9$xnbN7hWwf(-`QjXs`CEQxox;tWh0@|DU6CSzSxMP9cEkm)&4Km)qyD%K# z8Xaq(tmGa#y)scJ82Sirttv{)aKqpFJmNGM`u%m*t3uJbws+?POy-JffBr_rJ&_Vc zsWAy&Cz@-OU1wfo`?WIk89zA*H#}e^&j}Z@k~G8LeMQ-&VaFxSV-uNz!GFnIWS0Cr zopPtC`|&e!FWiz|luoNrDPW8p|C@uH$EAl<(0UqG#w5uh^==ocYN8h5xFGLPu1Z6h z5P+PXfJ?q)9F@vK%?>5Y_w_v!;=V*StI%5PxjPHwYRnD`o^&)8cChcSxhx|~NlvEd z>n_yV6e3zC-Z1cqhi?hW-0yt2X<7c{<^7Nw=H)SxD9}GN=F7Qh)ivg(jN3udOgHpZ zdY48emOM8~PgmK{ZC$7yNBT1JXkeo&C3DBNU{3{k%Yl7i_QPOnx6_MjW)T5}r>;!8 z=S(m7xLJ}&ROEMc>}%FSk7PCU`@Q6lfy9|=)b?#6Y#;Ak_p|8PXDT5~U!HlA>&QDc z_?cz6t91~k*2?(P7*yElc@~{z3YKj}FK@V+>7kO|Owl)hK8BCaR2-H!yA=I&Dkeb2 zuaL*JEqz%r$uRuTs=HqVvC!9Fi;|DS>)=y$V0D`*1XIKBdu%_**50D>(&MJQ%7-^c zsdU<osb6j~5Ej;;rbQj3Q24nct z`^9xT&E+->W;I5-jQgM1?-3o>=3`e9G&eV} z6CjigeON+3AdCI?zX0fVgDELir9jCN*SVUbv;z>?j+sV7^IY%mzZHViGIXU&6$n)F zr5yK{j9Z;P)&&O9er*)8yMGv;ZQJ(Hf_`wJ%%gyg{_DR-q9$3l1#K*rKI}fdzuVZg z@n!l{b-6xENI0dc??c08F){OtBx7~U+&EqGb6G$T(oQe(?T`Y~PB+ag|Iq4I@B|69 zpQ#o0A8E}aXtcr90?$YRzfj>*o;M3(>S@O2647Da@N(M+`I)(cNvpH|qBo84VUA~J zd~Vw6B7Y)v-^_S+qZYZgh^jblo@$x1vTb<|G{4p{)FOH2F$nN8L(2|6(w@lv=mO`?9uzmsqDP9 z>RtIS@F_7JWnF+w62Qj_4eFCCbR*nV7bx!QR*4CcdT_gqL>;qUv#$vE&{fS*&|)iqRmp2EtxcGWqT|>*%QBm6=9XwdnvybE<}}ZcNTd#+#p| zg7HV?2|-yo((hixO1zk}V75xu?C0u+pnf+|1PJ6N1tDnh@r!WX5-zA#{%ohVQd@q; z*dmrj=uu4;TL!u9qbYuC8t(^x&g<~0(P1aBokD6Pwg?6$;+*vXDFE);A3J*dU3== zfnScE!AxoQ7+W$6eMrh`gAsamCdP+~r_)7`ES)V(YfMO!dHehM^@F1sluY-)*Gp|a?wFzZrzL4kOuL)5IOtFQoqAtyE6W{_h3Gc}(Q6jm1~M1T7=+j*7cT)BD5oHOKV|Zl zU_o+v{{7x^FZ@OgSyaF&g|6M&86S>Ge@5fT^%`h?0lNH3LvveTxF32Ha;GQpCor(Q zFVgZ3Cxco}8uU@~-T9rEM&fKYAy;M0n3W4CuaWN~0r&3sT@Z?A0*ps6DFb7`!qb~b z*tIQ*OkiH@Fktqii_tS-3qD$!^nR2e(lA=1^ARZ6HinsBga z*fOi!F1Rd4=n4nFGlj|2* z9}13bjmx%TnZ$JK?aZ6u+kCEHF9maMyY0-2=pYpROL(7QR9~fyoV>nXabHbLn0W$8 zq3r!um&UwB!g%<^bQ4XTKhhGqxa`F1x?`k^`XB_4ooPEs28!%(KNGIB*OA9$k>i;d z-gRkIo5UW{P6-?E0Moe?KD*tR83JQeF3|;C>uZ#Ms__xE4g~%L*0~2d$|cI*qOv)j zC=HPcPDzl%V?wJ>?LD6HYb~S{-Bb`ioEbu$LXoH^wFW?NqZm~TyF`TuZurog?83gTiohlFaD3kp#-7!e74|!m# z+#2aKvtN#@G)DbjJzQs4lR>jhLJJBZQly8_q)8DXgeJX-f{3Ve6pSZ+<4vKAU%E-kI4mXO6&bIa;H6JR5AS zkLCln#tYZzr{Ev-^+PF5BZs?YLe^!wG?y|SGi9OzmW{U+YCii3D$z7}`D4BCv4oDv zZBb+*yFl{dz&Bzs`4EzR5_)`VQ{s%k|w;F8!v>;1c5bl{3aiUpl$@{HXmY&G% zSyf#$!dboiK`uW7QVIeGSLU9Wu201fUj)so9(SSECcQbZHJvUHPm|m-sg@n93PhyH zKNaSMLX{cam1w?hR^$icai;;g$I%ld1!A{L*TZUDYF(yhl9b9v$e2G@nuKaEKOJ!c z!JVs^Mt*0;p0`p^AZHalcxdp&zxtAbu1=@G#H=_M>;@hM+C0|*x|1uNux>z=fTf2? zH^iT^TlOefwJk>l%vuaZpd8z*vIV-(ZlF0FXsPl9T>h-}XS*c*ExRWzACVUg3v9W( zoxUH9eC=3XWaM(cS$AEk(`l&h)6$A0tHd_#JKLY=r~w9oL^Jeqb%Wa_yR7Xy!mMRl+I6UY45B-q1 zv+UPd*6vhOC2223IEFc!*Bh>)TC;to*!{OAJW4+llsF69|THY_?qUjoth!0!M z{Q_P}sq-omy?0kK!xr4@c>R3C^28q27B9Ro6WN+xy;;eoJtjr>iu!Ro=j{}yS@UzG zc7=V)(HRy%a0;bzAcE@6#<$~KhJ~c-H zG{Qk*TAEuoOLE!+QCBLPhmLU zc_4I5wb+OQ%=+iRPiy`MI~!{===On%qD2o8JQPL&ZntC_$D>cxfo5w*j-Sijj^xUV5FBr+rb_=J< z0Qqw(cK=?E-{)bv{q%3;wlbmtCM1+cN{kmyt?aZVA z)EaC-;oz6VTwp*w22~DMFvCZ4$57h6JcPcCY0y#o5s(K@gIxMNGk!FV-MIOyx1MrYy2!Gb16zXo2ei_W`6+4* z|KQOzxc`2L|8njuZ*OVNlgpi( zG@NRMcINFPUcFL$c7s2&cd`u@i9wYyLt{X|<&19fUgW|49I@sSU3sSFT;4HQTK>*K zsLi+K&EJWi?*1O9>U}I&6wBlWY8y#%Uu65_O3QtJ%B!P zBh&6`crB$Ek#`+8PgK+7wUSc#+IRursZYj4yi4GQ{XD;A|7|wRHeQD0WB=rf=w#(* z6uo+V?zjMWhL|g!UfI!9`vS3#S+>bn#a4Nvcq1MC#!)(>CjT_EsJR3E-OK4ZUrxq_ z%7c34(jcWeq|DVLhNh>u%@ApHL0^4ub$<-)<;g`>3 zMJT8HW0i8?Rh-82tNc00`qzmUafo!`+Ofh#a<8*wU^7KXzP-829rvm{uDIpl^EgrR zT~pY<+?|EOecaJbC&_X&>KJ10W!K4`#8fi6lq)~{49L~ZUyXX-@jMp%S8`UwvP=Khr z3Y8?W_j6-=HP5()mI6rz_x_{F-(l9I!cEtM&e6=Db)n-|AW@9gFQHS)>%Jf?eS4+d zTBBPW=NfM~hw;}1zdMWRT@WB=!eBl~-ykU#!<~R?)4?^*R1fcBmC0+I%-8IP zY0B@;%dj~c>QfbfThw1=uWI5Y-dR-)Pt4y&9(056*qASmKmu(+0iOZ;EC7 z46-5$L~0hKO{_Na{)C3id}GYb)eET(252HxZSLRIf2A^YDS8If6Cezvl1)u6a^t7X zwfE@R_X6w4XS9H5l&{D3DuL@ewM9YB zxeN36t$XCmt#)}M12idyD$C||s;2y|mZte?jGm5heG|N|kH{780H6dKEJ5~@ChTCR zMNn%Hqf%zL@Ip*;_+I$S5}QUbEAIR7O=sn5o8}_ty-?Pt8v~o7cPiPRA7+LlMEQxg z;36M>nvI25ihC1kYcBOshn;|ZykV+78=oE^e0&Qd_ExldO!OkitqZfH1_>vE_R&T9>xZMTDno-Cx(06Rz{t z1sQ88`-!nIe0Tkqm5saS&ioa@P(6HU{MYZ;aN(Rd38vHNel<_eh$MIH`Bs%*TbpDt zF^fMZM%kd2z~3E{c*V1@#2xKv5}_4`IZdYr+;J(H@RH9EgLHsw3R>~nYiyiL z`retKz~3%RuH$?{NMyxBVE+6-8{m&mM|gH7n@Tvd#Mc-0ewGiZ=;dMa^&ihQiA@Q2 zTt`7wCC27D;`k}a`8S@O%Hz=i|FiLJ%`MFSr(f2#X0D%c1Zma%B6nv@!ZWov!O71S zu*%TMO+wD|x5~Z(i6f+l9ex>(!ZaQOG*Fe=I1@{+QDCOjcKNX}vX9xUcNPI!|kyIR!>WR|v&gMZS zCijj$1r)obXwf~FnT4;XLX)fKLA9o6J9DtR_`$=2j7BDa$`)nKRIY2F&+V@hMjg6o zV}{=k057yu!SC2a-7&bu%+BO*#Lzdv@vWkw%ED^<@YxGlMIKL7kVx>T9}qfb;{jax zl~rb#BDYwAJpoT>SK?VG*?LUaJHwjl+=s+!E-5KUFQ-R_x8N&EoNpS|?1N2LBZcLQ z47BI2MNX66)vx3A)3yEaYWTZ$+O0GWa@(r!+I@389Bw{aZRAOD*A2)n@HaelpweHY-Kc3E zL?yGe4xt9@RJ{iWwXH9>-f13c3V3$8Khyl!OsgN!ODb1KWJ8)dSWYRE95tH++ zI^G12@#313!FC~NXG8LWZ!AsZ9p*Es@l$6CQZR(*2AXgz1fPs(ZSNZjP4=9qG(12d zS_r9xrRETOn+wg?RWA0WsOCv_cWdc$og(xEc`6B6-k+^5Y#7g5dv4(kjC4A8K(CEf z+b*oG68kV)XKipo_`Gg>lDX_0~DP+2etgF~ZEu z9gIewC2}tJSocqDLo=OBgl*`&jL^=4AW9S4<@hEw#Xd`}1EazVKm=^N`y8R>Qbgm! zc0Lc8_hy<{9vHa(xm9-mZ!1ruz&C+YH%F-@4kjh|jlIBCuW2c6uAjFjnj#@DPaXKm z+V`G!u$HLpzh|aQ0E<0Wl-^=z(Z_s42dk;;(vpXuYHD^d-JGo}p ze1!o??M99pX8A-aW_A8#gGs6IBMRQ~QizD|faOU(mfe<;oVBpFu6F;Yn$Oiz^@AfH zBMMg%Y4|VoE8AJzFMm(ze%rV-FhFQ1^CAT^68L~R(Q7abpXU8B>GKJTr0y3OvUJ@@ zS&k?n#6n4L?KuQ7dZf2aBt&xabDGA6%lo^Me2z}7U0b!FPkEv*ijOTGr4mE1pxNw; zXZqTgwovJ^zh>1#?elj>eC6HeTpS)-N}GsBOrN)jKzMj~IGO* z_THBqRv$gR;#uG={N!++WrTqp`R_xV6#O%2y`{wvvpTu)TR3ftVs$%{zukVn5X~rC zt?TQL2>wuQ{OUJLm~cqTk|B0S&RDLnNM^K0c-H)n0i|0VyD}>`V{z)=cnOG{w_M+T z_AE0EsAnkgDP+Rkw5OXDyd>-wb~LvvP`@Se|32A8^6|}9Gn~C++gjjqT zZtq#RNo#u3_eybuV5d9Lbt@!AM~~hnpQt(QQkVP5*O(*V3b;svexZ zI^AQ{t2XQ5>G>sY@$li>SFK!UXTS9D(~S!3605SpTV$9JO?|CR3!-_2`k9=p7T12( z-!&7z9&jAU_-p{59kAqRb~GGcu%(?wWIMoQ$Vfq-2#<&e%G)d>BTf4^5S@iq{%Mcq z(2dEBbv!~(FL+H;`O(?i?&I&xF`I73``vCoGBlOHmT0f6cP$BK2o&YMZG3cn2Q(wW z^#>bBYr#eHF-L@uek5Hz$I5g674>r9&^BE#LbpkNMaymP#z?R%MtVf`9I~EqqPqtMWChj+WLD0%Cnu=E~?Lr}v*l+0%NE zn+@@J8C~Tfr?Y33oFZ5KJ8pbtjHx)9^nX#27dn_c zgSmx+0m^~-SyD#U>sBThEEJ^NC9v~Z9&EoB((>q43K~!fl6de*!S`aKqEH|rg?dd~ z?qx=u8o5H@0KXZa=~5!0$PV8Zskr&fN#iToaGmn*>&LSLzs#ZC;;8#^r_@TOMj#B( ziPS?oZ=e1k?{ki4HT|he;SsN8kz%M73!w3pffIU{{>i_X9kXd&yoGT_9)b`d$om=j zwOyre>v51Xvy>!o70g9rIe!LG4li}ZxchneK#9&J6WxkbfyWZ#-AwL2n|!qJqqQ$< zZn0DWDIAxEgpfeJ!S6+VD-r>Hy1wqqac1T!hL0PvH$Mgul)t#aU{@uZH4z3g8%M{{m^=fX9%>>BOUJJV z9{JgP!>8uqf0kQ}ZwDmk_9Py!h;JgZ^>1{_M^wBS8$4tq43{+=_forR&3mF~#fLG@ zF2DyTKKyx~g&zhNkia!Cy^)Edve2cl8xSEHXNEGaUx5JxM!>%5O72*H5+nkPqRiiF zzpV1j9_qB8WEgyho#Srvb75%FP9qDQ<3B6CGqhPHF)GP6ND%50?s+zM479iqy5{|NECwFlG*bGJ>|>zM2`d>! z#yp9WUikt0Pop`XJ#PtURNsZbuEQ}BDxDk+)I2clCSY4zGXKTTc!6RjcJie@sYv5h zv`}~Bb>J%MOs2n$%fb_I%|VPsfo>TIf?-5WeuS<{@g3`)PVhEv&Og1*2jAc@!3L?q zEbS_a@&P$w*n;1qSHP^=y;Vqw8L49C7M6Fvy;0 z{IUV5hU>xVMcjoN4s2jX*%Fi{M4(GfL)A#^hmc-PK1Wzyd6gdmx-n~N>IADpPpjoL8)WURd{CAlkR+8O^{LWYZIDKQ}{qNzCEF=+*C zsS_CaZ|naPHQbrZjfe{ zcx+T1D|rYC6<0|>+d9F$K{O~K#-w!|5t!S{_4s#z;gBbpkqdsDW_FfDqf0+3QQek# znjU?MsCURG;#F(B!DE!tK!En(1ko}oHAof#Ep|^lZ>}#I^T01Xr-Tg#os67 z?um$8Ww9i2mLjRVnev%cW?a}n!iOh7f9puiJOjOfE`ipYpQt6DWi(@y3Dx6$yM-p1 zVxXq44`uM!+>C|oz%d;0>%NyM9(-n-Wluh8|01_O7wvS;Vg^h6>w>eoPakv?&c#*g z^rA2f<_cOy``((-R_ouloGX5W{?D{qnr^|;vU(qwtpYjt!v6eT4+zemm!FkVqpzas zcnvk}r;P3Cyr`-aOyb_w=hUK%7_s`0D^qJZlNDyUiPuA-s0Up6OV)k(3D#u@_*j@& K8NW7ki~b)U_XREh literal 0 HcmV?d00001 diff --git a/resources/views/back/profile.blade.php b/resources/views/back/profile.blade.php index 41fc901..00406b6 100644 --- a/resources/views/back/profile.blade.php +++ b/resources/views/back/profile.blade.php @@ -6,7 +6,8 @@

Edit Profile Deets

- Hi. This is where you change stuff. + @include('forms.profile-edit')
+
@endsection \ No newline at end of file diff --git a/resources/views/forms/profile-edit.blade.php b/resources/views/forms/profile-edit.blade.php new file mode 100644 index 0000000..60ff9c5 --- /dev/null +++ b/resources/views/forms/profile-edit.blade.php @@ -0,0 +1,30 @@ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+

Change Password

+
+ +
+
+ +
+ + +
+ @csrf + + +
\ No newline at end of file diff --git a/routes/web.php b/routes/web.php index b4607f5..aaff243 100644 --- a/routes/web.php +++ b/routes/web.php @@ -5,6 +5,7 @@ use App\Http\Controllers\FrontIndexController; use App\Http\Controllers\AuthController; use App\Http\Controllers\DenController; use App\Http\Controllers\LocationController; +use App\Http\Controllers\MemberController; use App\Http\Controllers\ExportController; use App\Http\Controllers\AppealController; @@ -49,4 +50,6 @@ Route::group(['prefix' => 'den', 'middleware' => 'member.check'], function () { Route::post("/locations/edit", [LocationController::class, 'editLocation']); Route::get("/admin/update", [LocationController::class, 'updateLocations']); Route::get("/admin/compile", [LocationController::class, 'compileLocations']); + //member actions + Route::post("/profile/edit", [MemberController::class, 'memberEdit']); });