From e747614bd3ca42ef127d7cb5cd19c3781b6d8c57 Mon Sep 17 00:00:00 2001 From: Yash Date: Wed, 24 Jul 2024 01:29:23 +0530 Subject: [PATCH] UI changes --- app/Http/Controllers/FormController.php | 51 +++- app/Http/Controllers/ResponseController.php | 6 + public/images/add.png | Bin 17923 -> 959 bytes public/images/bin.png | Bin 12570 -> 1108 bytes resources/views/forms/create.blade.php | 4 +- resources/views/forms/edit.blade.php | 45 ++++ resources/views/forms/index.blade.php | 165 ++++++++++++- resources/views/forms/show.blade.php | 2 +- resources/views/responses/showForm.blade.php | 217 +++++++++--------- resources/views/responses/success.blade.php | 13 ++ .../views/responses/viewResponses.blade.php | 104 --------- routes/web.php | 3 + 12 files changed, 397 insertions(+), 213 deletions(-) create mode 100644 resources/views/responses/success.blade.php diff --git a/app/Http/Controllers/FormController.php b/app/Http/Controllers/FormController.php index 7c5028d..ee950cf 100644 --- a/app/Http/Controllers/FormController.php +++ b/app/Http/Controllers/FormController.php @@ -20,7 +20,7 @@ class FormController extends Controller $publishedForms = Form::where('is_published', true)->count(); $totalResponses = Response::count(); - $forms = Form::where('user_id', Auth::id())->get(); + $forms = Form::where('user_id', Auth::id())->orderBy('created_at', 'desc')->get(); return view('forms.index', [ 'forms' => $forms, 'totalForms' => $totalForms, @@ -54,6 +54,55 @@ class FormController extends Controller } + public function createWithTemplate($template) +{ + $data = []; + + switch ($template) { + case 'contact': + $data = [ + 'title' => 'Contact Information', + 'description' => 'Template for collecting contact information.', + 'questions' => [ + ['type' => 'text', 'question_text' => 'Name'], + ['type' => 'text', 'question_text' => 'Email'], + // Add more questions as needed + ], + ]; + break; + + case 'rsvp': + $data = [ + 'title' => 'RSVP', + 'description' => 'Event Address: 123 Your Street Your City, ST 12345 +Contact us at (123) 456-7890 or no_reply@example.com +', + 'questions' => [ + ['type' => 'text', 'question_text' => 'Can you attend?'], + ['type' => 'text', 'question_text' => 'Number of Guests'], + // Add more questions as needed + ], + ]; + break; + + case 'party': + $data = [ + 'title' => 'Party Invite', + 'description' => 'Template for party invitations.', + 'questions' => [ + ['type' => 'text', 'question_text' => 'Name'], + ['type' => 'text', 'question_text' => 'RSVP Status'], + // Add more questions as needed + ], + ]; + break; + } + + return view('forms.create', ['data' => $data]); +} + + + public function store(Request $request) { diff --git a/app/Http/Controllers/ResponseController.php b/app/Http/Controllers/ResponseController.php index 94c5fe2..88e154c 100644 --- a/app/Http/Controllers/ResponseController.php +++ b/app/Http/Controllers/ResponseController.php @@ -21,6 +21,12 @@ class ResponseController extends Controller return view('responses.index', compact('form', 'responses')); } + public function showSuccess(Form $form) +{ + return view('responses.success', compact('form')); +} + + // Display a specific response public function viewResponse(Form $form, $responseId) { diff --git a/public/images/add.png b/public/images/add.png index 3d0b46fd486038e4aee47fc204c9ae69f62848cf..8b5f3cd53c80459f728ff1fb9ad4bff42a20a648 100644 GIT binary patch literal 959 zcmV;w13>(VP)K@f(=h%5#p-@;Lk1cLqv6%+)#fqH|$MIh)^ z^sJstNc`l>@!Nq$6(@ zXvw!5U3C<`01kPS-weER@n*7R%#27v`2n9yH2AQ z!O=RKfNANRF%BCQSmOwM22^`vn^|`S@IbmPChIm56QMgj0!qEJ&CH<`c;dKO?lI#8 zwz*SfUYKUbqssA$(KuUd7}$A_i7aDgL7bX%Iqbr7;&hM@07FjjXLd2*taDCy-(uqe zC<0!K+fb&-DWwXAgF(Uo91*v<$W>ADwz@+E2?Vgs*-5*jCR!G2=<%rhDe%~%ygqTf z8FimnQAS$kQSmA~ACybLa$251r*z)&r8FOg7=U{c+ZOx@;IanK1<5z$g2Y}-H)vN- z!?6M|q*G$Ar5k*&!TJI)q(Ne*(hbgQu(ALQsg~F;=>}~lFcilSJVAU+#L$=0vx`YG zjDf9!eLxbZ5l%lk*myCr;V|h{yVJ*20 zlg8caO|pWrq1U70i8x#AdI0*x@kZ376Ph#`B==(VQXIQ79W|LtDpuee&ybbHlhHZr!?`)$FzK7C1yWxh98a*?P zo9*|;HaaF|q|>tUy}kt3I&QY0f^v};;eT(j!%kqEJMHnUq{P_(P(iuHY2StzAzw hr)}N)#1?|W$1lraH)=~gZFB$t002ovPDHLkV1mDHwH*Ke literal 17923 zcmZ9!2|SeD`#*lq41=;nrRHW{&biLHwsT$YYpxzTXeY5wejNls z681Q(3k1QzU*V7_68td})v*Zv5DMRK?r*92e*@~%Jt5OCp@OvUv#hh;qiO-vKf0+2-%l-5WCylh4?W zibhx2Q0%8yG))KiClqs`)QY%?!6Fy|LYMlO{u$ar2?$@=XE4CO^^>P9^{vecJL*e> zu-|ff_cOgH20xcPDADVe|9zNhme<-K@#;HsWqM`#9moH&+NJ;#0|7 z)hpLk;=Jn*RX|dR`Cm;xxp9&4dOG>I?DNyv*(z%n!koNY~2et~+pk{_UylR|lOW$j#pL(0K*eBzN|1qwSfUBb_U5 zEl`+Rz#q#hA=G9Ah)wLQUpc~BlHj-8x#M?e^_4eTh-uL0tQveDY3ccfCElahQ@z+L ze{84zbu86}D7v>S?op&f5*tN?XunuNyYLz=F9$Bqq&{z6Ru{Z@N*g^7IU;YRAKKoV^s*FGZB_~w&3k0s*`FgV<5q8W>(8*bjG+u+E}W# znd2`sBt4QZ5ADjKYVFVK8@TDVa5L3uht@AeFd*fr+mu6?a@MVfu*|!;y|0*(OmpTf zCj0SK+K*eXR^e9U-t+TE6Q+|$2PDXT74 zt%d%)&KO!yt@I94%nI2jwk%}K;Z$6e+^#1B-rg9^dcHzQu(#tSU+1ZFH*w!yczWpE zU8Lm`JmGUz@~Q~s&86>2;;$TO9u(L9mEXfUU`KYOQneiOzFBNNW?`J(ti!R&+YD$H zB};Cfpdl@<&@r?j4()EEhK{*m7VaUH_CWL?EUxtR6~EjLsQFNCFP2-({L1Wmc@}$) zBo&4VqcfZ{B)7LbKw2W-vvNetg%#nN8x`$nLe2;cght)c#`cr6I`FAwZm%C#l%2jR z20nGrM=a=uU1AK#D%s}QNsv3pQnN;4}h}|>@-?M zP~u@n)~9c06QtmL$>l?6I9m&l)I}?ZT->??(^)dCL0Y1Y8_=v5ytBoqd*OiuISy>hoTw$m2c3iez0(O_5ZM)~T{5%sFw9 zZp$`#1Q9M0y>y@I1P&tlqqyY<_ly}O__76l1Td`^)dum`6_nYDe0GwsOriE3WFDow zYxltV4Tm6B-*L3BN}_Z-pr@JCa)|<{K^v2j^v{xT*guScjY`-njxmtuzpNbnDqphK z;a^*_24k7!ga{x8a!R&W?9h`v@s01Lo{*@kw^3jko$u^>uFVH|7p} z@2I~OzX4T=(K(wL?YDEUh-AdPDcH&99guz!RST|YQ-42lf0*J3OPqb48|Rg|!c50JOR2!_%NdQ%z0 zk6XR>H8)&dRp*987H!U>Zy?lcsFa*G6wc2ii0}9k#NKFA6h1!!q$rXIts@Zf5qya< zmBM>(?jyP(SIQnrY5z)Z53a?J;0XH+O+q!oHTz@4Q5@LCW==(hBkw~H=-GU1m*L?+AbVV1hOJ0eEBGXdI$?jI!MQtH zvbB`y&J<=|=EeDjDUT#jgB^%M5!P;{WM3^IR&1eMt7WPI_mqu6e>uM{Vcp{|dPYB%}JmY1AaeUpsuD}WN zd&aihr^c~5gW$@R?p=Zun$(E}44i@xf2$H!_JD-teL8Hk$X;PZRxJI~rbxIy%)f3a zxc%e~6@sB$&$C4jZR3Nk4g334qsrvR_m#k!GpSk<1y-Jn>#P0Ni}&Mm7z3M>Y=8R` z@`3urlB*NG>%Y9rOysOkhgJ2o4Irv+RSUT&E8X$NmwiG7_PZCmZ4$H2QF~><+AZ*% zTw^tcO3w#QXp$tV!WEGzjW&fA3@eY3a^TP5%a@+QMr0z3lnU(R|7A77OtTEXy^zxS zF#Ao7yO9@nfwaNC1M*|Cnh-w1l4-3jw_|XTss%rJ&e+7PpXjO|lmzmwGgohK8Gr+A z^-ur9zfN&MY+$jDAX~SY6>An!tvuCDgli8dr0&>XeK<0PUB)~yOn4pQEj&IU(76D# z0YqVqAEzB3`C#Y2>)+$dcg&3bSWnW{EE86c%#<{D!%TC?gImzt`S}4Gk$^o0kQHlO zl)Gox@5#Xf!s)_scdBFGc~l?e#?tJfo=K#;UOGxC=B)fPtQt&1;+t7Px?DGQ>nV@Q zUS=K5(e_cgAdOA6ifI1RTXR>M#agv%F3)QThv*-2~l#N&fBoO7MHgL~$h^7t( za94P7(WK1#t_U4Gp++UZ!7D?wWh{W*^x|6o${XP0UK0o@h$2+*){dJA(JheVxp{PP zf<9HA4AZM>gM5&h7)RSxcmY%}%xkkrl)g$JIKmUJ&51Rb7#}>SxBwiFKOpad(18dw zIwMa@6TrF$g}H&uU-g@?gK2a}rn!V7Qd3${L*oIISie--ZUtfm%NEwS6YbhcM0#uX z)tk8drS!A&5AMEB8f<0d2&bchWjmg$zI#KvhA7IAWbYtCL_flw?1;rs`9igg{xG|` zCF^!8tb;G16#n)$+WKd0*33UlUqE@kgryTJ$bjpDF9-WwD{0K)Q~(im!JuO_0{#T0 z2p(?fdC5^pm1GNH3hBsB^y1|o`Llu$Z0Y*Xw*GQYdYKg7>i1z)wKHD2WA+9U@$wUk(|M8?WqJ<2@u6vU`bU_u z{i7}blJX)2N78!rkS$Q^oj&h#<`a2yjhlPkazaxiQK%K&s&~xZr-7l&13(KJjWM{^ zzL~U|z|P{hA@-wh@$yp<;9v+3%|C={#MXR1wJ$8h;K~R186+M?w~pI;&n#o{Ij;WP z^vtj-N^dJ60ve(Jep6f}{%)GaK#-1o6zzagZ)3j9>-B}d8Yrig8di5{v%@-(FT>BY zWivl9=P-r~X-|c8ibk`q`h2?ejgMgeFx$O~(mE8|^=wD%+-JNTx4YhQI87g+b92;T z-~+||Zk71U6k74c_)SV!?5W&dJDi=^vy=ARlWbR~dWYJ($lIp~d)T-3#D;Ej`ZFLc z7)0$|q^VKT1YbUtD1b2fhvwaj@~x0b9F#t;`h;CTcqiaxf8Ueoc*6Q?^#e|TpPu#1Ri619fnC{-`V%&Pvp;rSrA0v5nI}&6Z;{%HN;^Eq6d?9? zU8hF-Q3AK3emBx!^6u4~j-(FMs$EO>gBYt4%zkTONf zgCJIrDZ6TQBjBvLhqJ)i zCCA5kQg$NJSp=ObcXA3vLh$`3rXerxC@J$Ku~QjB$E+VY+jw7=Uuxf0OJ7LA1=Dp; zo3gil!hXn9mb&OD80G}HNy&ONdmN4VK=#Jf&z$lED-F0s4Cq1G5@%ipSj$n z4>3!aUG3YDgLX7V#RI{-Kj}@m9DCn`8-tzbo6A2YBblspXfCZ)SM@DIWX()rX@BUC ze_FD8K4F)R7!?1KZxs8;`XaoHJkwX=EUEZ|_tpl`iO{RsPVqhS<$Fg3+_Zja@@|5- zOR)lk_L5uJUU`v}llOexMHUA{{V3D~fgqB}lRndTvrL2htZr$0yA|@@V@HT!c#G5& z|0$VI!b@$AmwsnuAUk0tpP%O!%`Sv}FHR75@Ku1grA)*2ZNxeK0MF4&V2e@VZocev znl9bGW?N^rEpbrB(m-wY^{}ErOfHGpHUZ8RYkP{IkSQtdsfKZEkqr7)7WiErLVp&o zl{v$%DtMNa%rCl|kd&0##QNeugsa>6m$W-FP5W1_46B|ex`C~Ayk@vkE?s!f_9$%f z{QP~V@~b#&YOfwsJD^K%e1+yjX~T+?IQq^(xm1|{$Fgtnuz(hyH$K?p!)YF-*-e%A zk0FeU=>};ZbCJ-3KfZf-gF!v{>F34((?A=VF#U0$R9>ghxPxFsk{UR0g#h}+tYJ-q zy5yO^bO?lv_KA-TPMdHyvs)?+udT|dmor6 zASU64+AEHp8*`w8G?O>+t;KObli6E4b8FB6sezZy+gCq0W77uZ0z27uH@pM*$HEJ( zKG-}uMuWQ!PX%-Le&DpFNw$}s5}ct}tyu1+!h6V1_JONM!D&m&?LdFN@>BzVij*UN z0AYA`-mW-d=5DhZc~m#`Q-JNS_{}|DU<3MY%a6^er^VjO7b-Y0T1>GqgqT@ONpOB# zn%7F+Om1pY^FzAsq%Tdkl4P1mbUB;s1=p!+p_Ee8`#*vpKhB#ZDxD=th}aPpL`s)u z3Drc*j}<47iXS3xUl^RsU@ijo!x|V{dJU43I^M9-5#~yT#mLCa^mTiGwlmo|(2E1; zWPZk(j{z87w?Qs%);?O>-+v=V+=an;NS5uccSKM9Mya>w)A^G!V%jAKypcIWL1Fy#4Z~j@3J- zIQ>$h@9SZZxn$55rMu25k@H@~)=5d%@5-YslnaZUC*k+8iCdj&fKt`yjS&0Qz{0<7 zisUa1Z$P2c^r|L7Og=RHx{B!+8Lx?H#+?g+S`iT$t?h~Vl=A+SdjiD*!`_escgAd7 zaOSKev~RP`{vkuAPB`_x;R~~cEr39w%;-%YpYMvXV2ZHDR|F$C;$*6pSie}=2EfY_ zV@a-k8y1_#WSNUE8)NKLl!d#(=gZ`&ivEzfGoZ61ATnFh)G;YojRVua*qWtXDhDJ^ zq4vhP&_#xD6yyG?4R+LhLS(_L@-Qh!xdk!|n_ntUU}b$4XNq0-TK2(?0U`+9?l|%m zz~vcuX6Ni=uRdUWp$0{uN)rTKkx+7gEc|N$JWQ@gN?r>TbfI9wJQihb-TV62C?U#kZ7?aeS(q`383O zD-a<=v08;=7=2vm385O&JUg^PMtWB=H5l?RCRh zVg>R5WcrWrFsGb0v?4Ix(gA36J`SUTe?6>eR@=jgyn11}5*U!rH}q0~5mf<3G%Kp} zSc6nR(B76-!rZNgMpF4e1_LRL>!PPuFS0p}o0ay{ya+XNm1-l$*d`X4t-Fe*!^;^1 z8?GIqMG_)*PPGgxn$hGoi9Mm18RYH73=*R9-JyZncr>Nu>6niLNIAiM z?(koR?GAg&aGtQZ(TsP`Kz^}|wtMd*)ezj{vv>O(H0~7rMuq!f_iDB&+N*`tigwgb zP&w~k4=zj$9GO(hzDF#(wO^j$_(Xan;L062PsE|)3)7cRKKDs`F~U1)m$<=W13DkR zO#WIHlP(f>==lR&4qcb=uLgXzg>@xD=gY?&h&ArZoWJs$FdHq}^O55Nf^t0>^im+# zh>5a}8#_u?0?}^b@(YxbZj~DD!?RLb{}HwoZ}s)bhW119WTMm0y_k6MU0dSEcw4ZE z8|1E1%dIf5;NIJ!&RGZlZLk<#v9Uc(V8E>78y-2&!^Rj(dlKS`Pinyq+-dk0e=E7s zk7xSt=6L%2>Ot;ON-ACcbz4en`#l3WHV26)f<5e7okSdw8&>EHRM+X{Os1_Z@3UAf z(B9Mjk&Qbr|1{%RL0VkH_ZS5(3?Cd>WYBCR*Cfs~zwW*aJLvZ7rnh^>r#LmtTkjVx zr)Az9G{`C1T3GB@icnFU$rtxUaxv^}BKM-;$KGti!~|i^NI>4a^qV$SVZkUtc`(;rh)g`d2Toycu!q?Xv<{*W z2(}N5Au%p78mUzIL&y1)%!qCEgP->Jkzvj0Xymb0j*ozyY$A2k6Ax}c#}_U$Ce0si zQRxBV;)IM)>KK!1J_)3(E;7sKSK{@N)u(&Rr&33g~culGX2gCVT!OG$fq#` zMuiG678?mQn*wC{jp-2La$c_T=qd-+1b%%;;$u&YV9=PzvO!uJ-IFg|59f(;U$D;t}= z!riL$XAg>f!d=2x9b>m;j&7*ab+=WHjMzC;|K=?v)HZR0bXM5Fj?RB%4nXEE-6@^D z&~^P4ei6^y4D(M?(!X@#%Xr(N;r+qYH93H64Z@*!WyyG|P+&x}($ z&;yaTX`y_OUrt?nmq=GH*aWt?ItV$wq(~n1cyC8}Gb*Z&*UmoZdI1C2*Ct7loAJ3I z*0W}QYxlrR$yB;DW<2iJMO0dx-V{$(dAN|0)VxgZn@Si~RPs!f-`ihW4BL5nFA~4iPf=mq-4q}HUZ8PcSOr`*rgo>sU|E+5`!92Z6ojtF6tPu@W z`yAA<1OYW*dHjak9?9_`qxpUiee7q7EJaUmtA8a(0(l$!*+h zfpD<5-pnLA@*>KK=k4mLupaSacb4{9N8V?&r3?1I3fiVdv7 zT9YL~+?3|(5IjojEeCLJyw-8+DHyd?6jZ&)-gP#!b8LGzGbK zj_aPsASyRj9-554a{u}+d1>ig&SD0HZJ2$VD?cG`|1-ij<*eLaTh;;hv^q3k21D=l zHH1313m;e7yMgvk>j5nG{gM6Uz4xxYg_(l&7U(JS_k6WT24_?Lk7pIUBqD=;ZH<%{ zXQgJ1RFHdlodF=#RK{@%fE;?Ly99jgZyBio%X~vA4@^ND53Mb;Yv-MxLB~6%gyjQ~ z_&vYlmnU_(O=~pdjk1Z(t+FV=yHZ$B%?nLLcori@Ao>A`^q<~9y%5D+Q|kKA7Oa5b zu3dNLX1aht8~^s<$8TOZzc#Ya=Nj=)Yt19#pCsFSSdVB__)0YK{0#LZ z@eDpNJV|t)x|G~ECiDvu=M9L z#P%eE=YvQ*@xT8*d{n}c*T%Q_#*m|?>{vv(_tHh*7S(;et!P8&gW z6?_Yj&lK<@P4#lmKWA|}7a1FsVx z@CH1PH~1|G_(e3)Gsc{ED^f>60KI2kzWRXs7$w>t>Jkl$9x5Nh{x#djM+32R3 z+kfRTtKF@7_mC+}c3bCiH`x7dzDkmS8vBmOT}0|hiJcE%wH5+HUFS>!vOsDueKu2ls7IvUEYm zF#d}L05;be5Ze0s2^gWXOQ-qRea6zYwKK*X?kpQ=H?h?fdw&K}{=1fYg0-BIVZI{N z?9|aUW}P9y@h@59<;*6gLuXs^;L5yKa$}e^7KK?)MX?3a|dfLigRVw29y^UtA$6ZNY|*x{RsKCBH8IbPB4H#;I{jULXRYyeY#-*$RsqR;H2EHol;(Xos8~ZamAdXnZ{B9j%kw_)R)N2^X9b1g zKMX6P^zLevwmtN_O+T(}H?;N5KWCW>!<&kuwqeMiETJ=XPcVe8?Ox>m&brkg=pqjd zp^FjCfpa2VX}~)ad)}P!xUp~0`?WeK{~nxBP_o2g?zR!l&pkTXs|{m;qZWj@Uz7^1 zv6$byQS_c);Eg9dGkx6QOWNI}hLC+Df1iQTgZ*aJ@8*Cm()N4?##nVyK4(S7vX$eS zU#1A?*57RlQvOSKZKT86$VJxAZA1SXct%HhSBiO6baUO6(~Uxz;qx8p8;cQ1xT7=F z7O;NJB{gyZ9|9#{k_sLkV=q^||8M!fwJ&evzEC}pL zJ?m#~Bduf!)oT4eUlNE&OU&6gU^hpS|4!P{{2bO?7ekbYY?P=q1*b+D{4dl0VX&o5 zupYY^j~2WCt*6F>+K_J}ZC})Wt=PIb@c(#BW(-JO6p%?B{oLvA{yQ^V;zOL6>JYCa z?S;@j5Ts&lXTS#T{_}tQVtA|m-0*f2tRJ?h)Vw%5qaZLh2cnts;$*^zBuQ!N+Y*7W zWUo=eUmb?@?m9z9ZGc@=jg_^KR@!fS{qL*8Xs>;ke^?(l{_shWM^{@>>~r1FWQF;) z>@0eO7Vt5f&`mIH+Xq`;(}tnnw!GCHQ+v5HKp?fwW2PRBR_*-r?s>#>W650E!c*cO zY(+A&>XyVKEjAd#bCnD2XlnNncC||s-mPizkk3Hh?gO~Oi@K$wl=I|CL=}K5=yz(e z{euce(HhYoo=0qM2Uar;MP^ux@?6PI6cy-#qCHJHUOo1{;raPpyho*RA2NXg0FiYg zCF>4;v3cj+zjB1@OE8q|k?m3H5j}QiF?xOFA@BWJK`p4wOK(eyyl~GJozBnqX1%0o z0QGnvtIn4r_wzTL7V0FQkDi^*qw6;R>Fw#~h?XfRor3XDEs%XEf&S6R0cftL7;uuG zcCs%M$uTAvyAl?w7@hixbDSS+lieS9R5}JaH+dKMj-NMUCjMvU9|e4;?_v}beLbPO zW`1v;dvyF0XXVG)PJVN=EPi&)qaOD(1NWBuuw)+I)uYSq*Mcha2|O z|CGSO<~^9Nv#vJjP#T=wWu&DkZl&rV5%=cxnnQxPFK+7;_NfYHYu9 zKMxC%0jiAk6R+#0cN3q>gAgQZaqvVbfI=lDiCglj>CH&|6ROrGAlq2K9qws)iXfT+ z+0+#H7{~%hOM8&d(auP0P@WizcI&o>AZ5|A& zy}&%VSp9_hBaVA1DM{bkJ>>`}{#=m`T)ZStEQp$(Ol;Nc+@y92lx3+}Mv3DZC2eqJribB=oyT_}Dv^p}_K^Cfqu2-vCkC zNlJCYAb2&|0BF`ZJhTG$t)r5vI8Fq>@SsrT?*9#2YlRmaS3HQ-Y1HQ?{|$D}HNqFP zS&_n1{jxofTOx8WPMP_N8MAf=8*4~(OE?!XixYubbo<1i>yM>w|Fdf=2+VS1h;0uI z8pI@+dkKWK%bpTFugZ~>E;-W)c_UbK?GKh^qQhq`LHa(&$-Y{{zY1q?kzyMRWX9(A zfCy9>vli>7$q-vR-6ec(KPEuX-m+aR)rpOQgYyJ?k0wlnI3OzTP@VqXf{t|NNq}3> z?HnZc0{7Qym3aRPfmG0bIXpDTxJI0R*aRe!LrEFM>EqRw?SN1`xp63PFCDzWP+?@f z99S2+%4v-;w7UV}Ik-d*KO{uHI>oK(EjV~CuMK{5_SzZT z-`mP*aDDQ2|9gFcPHQ5{f(c#%eaIq|5I^*Ro9xH4dv(t8QNBB2Q{$@LSp^ zjDAelFZ1n8j0GC3Z@bIjUa34M7!f8t<$beJ#yzfikm}Dby7T%I|7X{Eup1T7P{h*GrRz`5T4S-lT^%G$p3z&5 zkIY8@sft;SeO+@?01X3TdAfx7_5|3E4p%2$HLP}1ZrArorTbz`yS1%9YrbD_ueTN4 z>jgIKD5YrbcML-DZVMTN$0c-vqD*12wM99&+b^2vJ-dFIe4fHtTaa#qMrXRrjCaaX z0JIlzYyA7X)TgX93D|nCBUQt`x>m!?2;!NqU$C!ejBoxDK=4}I)&}?LZ-s(P!!<$r zV!&(q;NpD-`-BAfdW1G?Pu)`0N&{{H4Y`wD3=w-JFQNpB z={L0T`r&0*>&UYOYcogaP^%uqe84LE=TjlDX`=MJsghyE;|n25+AfY@-8T`D9lt!S zE8$bW1QL;*2DHIiEF^rsR-CS5bDjZ%3-X^{H%MW}#pb)Ah6DAlf3}@(oKnq!!sa!|DpKF7Mf`NRx!?el zFxnWV=sDI7y=>o|AYEBtp7c!$0o;NP09|O2B?cvszNV3l;Gmn&u!3y3A;0Tt2W{|5 zg6dcjcr;$f{LyYw&t)QcaYL#nE~=s-h!>|2_VxCOc*_?A0%8d*U1IHiCL^O&_vUx^ zWwpr8p4Dowhl@XMCtHYD!X7Fbal0!%%QCG5`xB-)g(Zo)T=5lb0#}v2)hCWlIrd+UW8dUtqo89kAB!p|ZNUANGUFu{V~K{h z8Vo(IraqKcor67+`}X++V!Zg9_GRN+Pm(Q|@#5d74W{HE2(93ZQ72VX8a`k@j!dZNJ`}+!Vjn1##%lw$sNq zi&yTRQW5O%4<27ENOYOjbaO?l^5kqE>fVABd+Uj8Q@L-u>a9KCQ4=jJ^H)%azB~Z0 z)$roZ1K3eWZf_1vj#4_cE6 zFu%i@GwDD=pqd72l^@OT`tHM7Ndc=K6`(leVPrdzvz-rdLg*#<6#s7c3>QFEt4_W+ ziACU<5=?dL*zcF58{drxo!+)(@J>aB8~>8e*14rF{Jt=U zP9|_1w)Dq;Hof1o3i0*Eze!ms?C4+F$CZ+v#gsJOPW+BKPj#hTum&sy>g-da7cXflN*kKRnw! zP%TKuUzpldna;3KkV9P%1GWXZ90+QFT9O5>N_3DnvObhnH*|>bOJrd`=~tq-Jo)`Q z%M!+@kdvs+@+lz)hh z7(RG5c51V9)&=*m)kYD+X9i7;yXA&S$_j zWxD=KWP#X=6=csnh`&6n8QU|!X~pm;641Ikq#~!OWyeYAmQzCE)_- zkEgkyz>ay(QAv?}tlAq4FUY6LO_|~uV98Oio<2?}D7c|q-~td--jfHb@gmD<{@#97 zArQA(Le&Tkz)~|`odr;vufQ6iOwa%VwTJQylssR5VBTMYK(+fZgme-a17gcDpmhIy zb8T(?pF;rAb0{rqi)#cp+xh+!i%mKR2&fJePaAJh&Ak6KA`Aekt+3d0rwAJd+=_D!;Vn6TcB+tG9szfCE+N=tbb(<{`49Ts=Y%nr=AV5yQXdx zNG*G0q7;Ay_PRP#YqRlId6DG!Fz_1lrQ&w03y1q|7hFgcv$SDAFZ zO#XH2wzL4JUw`O7H&raCkxl4!hP{)gd zp*zw71iBQ!KKwEe3$R`8%$RBoORU4;@<04+LhN*75vgMm-EK9?P7+Y$>%_pcZNNA~ z=8p>)Fz!&A`^`^f-}o|>N3SJY=&v1>0@)cm^bqu>I23MFMVXW~J=_z}dZp3C{BUQE zZGg8x-yR?al3Nc8B%1E}6vU-2X--Eoo9OC)j<~zZKR6r%{Ui{+Q$C#O(%(e$O_=ZE zz);yKqe1-eGp%Cr;oibQlRT$d%AAC}2?9E_BJx=w3I*V6>hPfvS*tZ{T%p}`GJhjY z+bd0T^&?jxuPU%PHBN2!j`fHK?vVkYo#SEC?N4W#%HzUgHupTEZ%gYOUK48(MWsSt zNZh!Km0sFvxj|ZPonty8T`kSVDV*ePDqsE>EY6?cpG`pI4cjpX>S8_-FxVaF&XG6^ z$XurIv}NnL`IWoY;@0`{YMb}kz$sp!`E zPglTc!NK{%i&9#3Egd2M+}_AiiA@KG?$Q+O9OlI16|*eZ%3KgIzO#MyOpra8s~Fm0NH|o`nJ!>~BAU3i5?h zRU?2Ee_Z%dQ&h-aT-zaRedC2s!7Y!QXwb_YW zy^j>&YP0jm)dCo;7QoY*3YgIZ&Pe}9BLGQltG(&A3~X|CLRW}jd$ybsxh>Jw7Amy- zl9hMi`hz6WZF$71rD-z%HB)l;Drj8L*%BGQp(pF-@ooFE-%viaj4xequ%sQQA7331 zIjE5)>@+V_>1)vBXyXWN*QrVaV#^DlOfzmg-4PZ8tf!nN`ZHPo$3V{OSGSNgk@NY* z34^w1X#2y}yW{Yur>`|%VO9&Q8W>qHijLEo*tOb*U_4yNI3U4<*Dh5vV<FGS6o(r3i*;)EJ>n7NKQ*bdIR@$bB60_f?g zph+yKZ@OFsuU^Su_y7p7e;#bB_3V~27WgAzJMyY_ggvBskhV&X+)_(qKiUYa$WlUy7 zi;$(fWr$9dcCJT$jukf9m+-x1d_7a*DZmWvf77@p4>p`loe(RqXUqw)&h7!BZUwk; zqNeq#$|;lWk49Ea2-){n+R`LlWB{43|q5BJI(TnO;?+ItR6Ie^}E>87_Htemyw#r#Gk*$O7@QHK;tzZe`U7 zgS!f#`o*K#{gO1-`+aBJxkm|e;po8E!VaijovLcq_z<(=Oz5xpJW@?#a(o6D{9v?) z>w^G2B4YX*jinc|AN6bk=QR4e4Uzb%H5M1X57uC(u{>)hVJQI=6F`-Aw|iVNgI$z0 zZsGXbB}xaZ1C4QtLdzl(t3U&fGy)9MqhZy1u82b$(Owd@n?90^y+ss%@{WR_X;&fj z`NjqLN*hv+c)w%bTz7e#!AE6so?HC3XNZv0)@+Iv`9sV20d(NlA`R!m3UWuAZmd<@ z432CpV)yDSXm{Ek8K2rAG%Whw&xb3CHf>_%q)BcEQAWNW;Vl%IX>Og})G1zit`HX+8NU~kihD}*=bxl~Yjg`MC@`KfiR8Bpt2*67;+d=<3$8wXf7tc@ zeG-c63kG@Gwu#bmhUk3Ji!#RRKFahq5FnAdB`WC20J6Rzw>N^>Mmc@A%5T`7yNCIX z_oeCkjeDnALGY=wTr_jt%d_WZ^rzw?8~0&wpGsg`vq#Iw>nZ=&1M|0gr(OU))*w6I zdDW;o4`YnV@xOwG87yH=mU|IDCTOrZ=&5J&k~1j*>Jvt2uWO`p0|T%Wk+<)9J86!w ztBOiAEx;<3s)Z~_R-Tmm5XAN78XvdN1dz{i@^*?D>L50h4wDvxP>pzI!p=Rdqo?RXlWggkX}_}7G|KPXo6G1z#T1G z#VrZ#&;Y2U1<^3k%8;-EmwmADFM;vxH3J9lKb@+0B*D7#1>0w3h#0yA*jcD?}A!XHxZxs9MhT)X;U65kYyV*!2q< zkwtP!vBMFTWsz=fE!VNKx}QR9uq9|RbV?LYLYv~bSj<08X^4_`P^<3D&tpsBI@zYS%u zaRA=^lRNzH1}9=M+@kEWKnxRllit8vYiu0*evEBW}5u%zI((< zBQ>+CMybk^L3f+#)-Pl-__~-R&0Kjh-0j(wLR=qt$83yvt!OQ@Pz?YS#u=bO|6DFg zs#2kHedQ_e4My0wp9A2dS?&Mn>01nQ0(TR9MfR=3FQD3woKW%B?XfylPWCYY5!(x^ z?_4ty@s|&)WE3eVVKK$X+d70AnJ`SHH7O@2>iW~GBhQ#_k?}gl8L0rrjHnU*; zy1oJNw^4CN@Qmrfr8DorWOzc2Nk9S@;JiJ9FkuoUaR-_vjYMonmk{LcByf* zj;_8NgJab<92ra6Fp?%ue&wzp)F{5ZU1zUx`VJ|$QOkVzGe+AwCwEb_m*_E(9={hw zov844fdtUQYW^TC?zAi7;|2j7oVxJ0)ly#~xnue| zd73>fOn{{p%v1zARCTLt$i?J%E2C>SP9X!DxG?tFlJL0aDp5>Mk+`F=dC~_65H?Y-CET4V;uIIw zRr(1k{WmFFaEvPd>=$)ub9-nS_Ufs>#-i|I`UV5)Z7@5;K){%uJFqcljL}|H5`T^d zI)ec`3;}x6KtqOK*wes8 z($f#YOpCfDwRWo=S8^cFvPEvF1IA{GD(G8QY|AvC&ZjRt%O^lW5ISGzV%E$scR%O= zr^Qu~Cn3;59RNB!Z^=W{L~5{5LDC}y*???E%4^O_&ai5>loqUcU;m11j{MQ2$AeZN+-08 z({cG`xcd9^iM&-JY3r^Oc@X|l(?sq={4K}S1aJ3=FK?MLi|lUy!rmz8QYYHtRk%3( z|I?-Z;+JD105g=c#zS#w%tz$4=5~?2Lh0f2e9*+-atAcczhbE)?4TvYMo<#Ieg-+^ z%N2@j)B=VuLmrabiS|-n*aVF20nq<1vrnQx9QY+?K~pIxxmttBijo0OEVdK1u{|d> zvX$q`iM;@N=FJTtJvRb@$)F?v2k`6hRqXy2p;lqg$3G^Yc{&NKXe-)F)|lKOUZ$dG z=aNSM2UblXN^iy5GtU~AIAWf_`RLK z8eG879k_s~Sg7YJiT_8LnGJqRLG2cz710Xcdv^XP_w_X_rUKx*z8{10yi4YR1S~_rx?{) zeAzTBk8=FuI5~CvEEnbSvJsmxZV%Ke^GFFn#BgY~mr~w7Zt2wmfAn)U^iTJg*NdlD z<)HurfZFO=*HZ(2i6Sce%uc!MjhX9KLI1XVWW26nHck;Bpu%;l_yb=!W%}aSlUw65 zxKj0>Q0wX|LrS-BSH4U1l%GFowPCFFn^crHE7kY=t0OK4iw6*|cQC9ChaC0ZmBA3) zOY-Xu?oY`csJ~;l~VRm?Mq|CWWCu5B|Y6yp|SN4!ipNXeQdPS zj##WceQ0vRrtc1<`oxb=qi%h}?KWAMM9q`u_k2 CIZc58 diff --git a/public/images/bin.png b/public/images/bin.png index 81e7c491dffc3c5c406ff8b63671e4b9a512eece..1a51853e6b24500374a72639043cc06b04b79a97 100644 GIT binary patch literal 1108 zcmeAS@N?(olHy`uVBq!ia0vp^DImYH3bj)qor26l*LN(SyUv65i`ymfg=|^b0!InfLvzSX6jzlEUJ$^xv~LncV%VpwS&F-=b*7u#I85 zk^1wcYF|qXziRAd*dRaSsNLoRb{}~*u>Dxlbe{S3QHcXp51PKssESpNV_diTLUfYM zgKgicVr`h-Wbv^6O_Eu_KjY%O*Rs1pPVhc>ZGY^U;7XQ+C-PF0w#`1^w(>wv|BdIa zi=T_1y>D7~PBAl9H|%1*ThgJD#s57ovE2z?d;N%3Z{n%7lJ#pOgy$dCIv}3A$$yTs zYTJ@dzQ0zxO zFT#1(FD+|G*GgL*!nMKI)Mn}}#$_RAjwI`~mZhOer-dU?xJ)CgGFDiEB3{B=X8~v5vw*iiX19NJ{10|p-pjxEDt2Ckj_qTY*AIVAu4>Quwc*|QuW!B` zT~l7FU9y}}dF}5L$G>>hO}AUq^ZT6m(tB6eUf?e5F4F=EsG{G zK3Mnd8}kjly$l5cKiXo`8kjG6GrTTQ{k-a9?@KlNtFVdQ&MBb@09Tm)&Hw-a literal 12570 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 diff --git a/resources/views/forms/create.blade.php b/resources/views/forms/create.blade.php index bbee8e6..716bc8a 100644 --- a/resources/views/forms/create.blade.php +++ b/resources/views/forms/create.blade.php @@ -48,8 +48,8 @@
- - + +
diff --git a/resources/views/forms/edit.blade.php b/resources/views/forms/edit.blade.php index 466f484..088fa96 100644 --- a/resources/views/forms/edit.blade.php +++ b/resources/views/forms/edit.blade.php @@ -11,6 +11,8 @@ + + + + + +
+
+ @if (session('success')) + + @endif + @if (session('delete')) + + @endif +
+ +
+

Recent Forms

+
+
+ @if ($forms->isEmpty()) +

No forms available.

+ @else + + + + + + + + + + + + + @foreach ($forms as $form) + + + + + + + + + @endforeach + +
Form TitleCreated AtResponsesStatus
+ {{ $form->title }} +

{{ $form->description }}

+
{{ $form->created_at->format('M d, Y') }} + View Responses + + @if ($form->is_published) + Published + @else + Unpublished + @endif + + @if (!$form->is_published) + Edit + @else + Edit + @endif + +
+ @csrf + @method('DELETE') + +
+
+ @endif +
+
+ + + + + + + diff --git a/resources/views/forms/show.blade.php b/resources/views/forms/show.blade.php index 1f49701..2538e60 100644 --- a/resources/views/forms/show.blade.php +++ b/resources/views/forms/show.blade.php @@ -30,7 +30,7 @@     -
+ diff --git a/resources/views/responses/showForm.blade.php b/resources/views/responses/showForm.blade.php index a520a98..d2ba288 100644 --- a/resources/views/responses/showForm.blade.php +++ b/resources/views/responses/showForm.blade.php @@ -1,106 +1,4 @@ {{-- @extends('layouts.app') - - - -@section('content') -
-
-

{{ $form->title }}

-

{{ $form->description }}

- -
- @csrf - @foreach ($questions as $question) -
- - @if ($question->type == 'multiple_choice') - @foreach (json_decode($question->options) as $option) - - @endforeach - @elseif($question->type == 'checkbox') - @foreach (json_decode($question->options) as $option) - - @endforeach - @elseif($question->type == 'dropdown') - - @elseif($question->type == 'text') - - @endif -
- @endforeach - - -
-
-
- -@endsection --}} - - - - - - - -@extends('layouts.app') @@ -191,7 +89,120 @@ text: 'Form Submitted Successfully', icon: 'success', confirmButtonText: 'OK' - }); + }).then()=>{ + window.location.href + } + }); + }); + +@endsection --}} + + + + + + + +@extends('layouts.app') + + + +@section('content') +
+
+

{{ $form->title }}

+

{{ $form->description }}

+ +
+ @csrf + @foreach ($questions as $question) +
+ + @if ($question->type == 'multiple_choice') + @foreach (json_decode($question->options) as $option) + + @endforeach + @elseif($question->type == 'checkbox') + @foreach (json_decode($question->options) as $option) + + @endforeach + @elseif($question->type == 'dropdown') + + @elseif($question->type == 'text') + + @endif +
+ @endforeach + + +
+
+
+ + diff --git a/resources/views/responses/success.blade.php b/resources/views/responses/success.blade.php new file mode 100644 index 0000000..5b07ef0 --- /dev/null +++ b/resources/views/responses/success.blade.php @@ -0,0 +1,13 @@ +@extends('layouts.app') + +@section('content') +
+
+

Response Submitted Successfully

+

Thank you for your response.

+ + Fill Another Response + +
+
+@endsection diff --git a/resources/views/responses/viewResponses.blade.php b/resources/views/responses/viewResponses.blade.php index e25b1ad..a8eb0c2 100644 --- a/resources/views/responses/viewResponses.blade.php +++ b/resources/views/responses/viewResponses.blade.php @@ -141,110 +141,6 @@ }, 2000); } - function showTab(tabId) { - document.querySelectorAll('.tab-content').forEach(tab => { - tab.classList.add('hidden'); - }); - document.getElementById(tabId).classList.remove('hidden'); - - document.querySelectorAll('.tab-link').forEach(link => { - link.classList.remove('border-purple-600', 'text-purple-600'); - }); - document.querySelector(`[onclick="showTab('${tabId}')"]`).classList.add('border-purple-600', 'text-purple-600'); - } - - document.addEventListener('DOMContentLoaded', function () { - const statistics = @json($statistics); - console.log(statistics); // Log statistics for debugging - - Object.keys(statistics).forEach(questionId => { - const ctx = document.getElementById(`chart-${questionId}`).getContext('2d'); - const stat = statistics[questionId]; - - let labels = []; - let data = []; - let backgroundColors = []; - - if (stat.type === 'multiple_choice' || stat.type === 'checkbox' || stat.type === 'dropdown') { - const optionCounts = {}; - stat.responses.forEach(response => { - if (Array.isArray(response)) { - response.forEach(option => { - if (option in optionCounts) { - optionCounts[option]++; - } else { - optionCounts[option] = 1; - } - }); - } else { - if (response in optionCounts) { - optionCounts[response]++; - } else { - optionCounts[response] = 1; - } - } - }); - - labels = Object.keys(optionCounts); - data = Object.values(optionCounts); - backgroundColors = labels.map((_, index) => `rgba(${Math.floor(Math.random() * 255)}, ${Math.floor(Math.random() * 255)}, ${Math.floor(Math.random() * 255)}, 0.5)`); - } - - if (stat.type === 'multiple_choice' || stat.type === 'dropdown') { - new Chart(ctx, { - type: 'pie', - data: { - labels: labels, - datasets: [{ - label: 'Responses', - data: data, - backgroundColor: backgroundColors, - borderColor: backgroundColors.map(color => color.replace('0.5', '1')), - borderWidth: 1 - }] - }, - options: { - scales: { - y: { - beginAtZero: true - } - } - responsive: true, - plugins: { - legend: { - position: 'top', - }, - tooltip: { - enabled: true - } - } - } - }); - } else if (stat.type === 'checkbox') { - new Chart(ctx, { - type: 'bar', - data: { - labels: labels, - datasets: [{ - label: 'Responses', - data: data, - backgroundColor: backgroundColors, - borderColor: backgroundColors.map(color => color.replace('0.5', '1')), - borderWidth: 1 - }] - }, - options: { - scales: { - y: { - beginAtZero: true - } - } - } - }); - } - }); - }); - diff --git a/routes/web.php b/routes/web.php index 2aedfd6..12e591e 100644 --- a/routes/web.php +++ b/routes/web.php @@ -23,6 +23,8 @@ Route::middleware(['auth'])->group(function () { Route::delete('/forms/{form}', [FormController::class, 'destroy'])->name('forms.destroy'); Route::get('/forms/{form}/preview', [FormController::class, 'preview'])->name('forms.preview'); Route::patch('/forms/{form}/publish', [FormController::class, 'togglePublish'])->name('forms.publish'); + Route::get('/forms/template/{template}', [FormController::class, 'createWithTemplate'])->name('forms.template'); + }); // Response routes @@ -30,5 +32,6 @@ Route::middleware(['auth'])->group(function () { Route::get('/forms/respond/{form}', [ResponseController::class, 'showForm'])->name('responses.showForm'); Route::post('/forms/respond/{form}', [ResponseController::class, 'submitForm'])->name('responses.submitForm'); Route::get('/forms/{form}/responses', [ResponseController::class, 'viewResponses'])->name('responses.viewResponses'); + Route::get('/forms/{form}/success', [ResponseController::class, 'showSuccess'])->name('responses.success'); Route::get('/forms/{form}/responses/{responseId}', [ResponseController::class, 'viewResponse'])->name('responses.viewResponse'); });