From ccf1e5fa2cbd1320db70834baca2c3aab4dae95d Mon Sep 17 00:00:00 2001 From: sayliraut Date: Mon, 10 Jun 2024 15:40:43 +0530 Subject: [PATCH] Feedback and contact us --- .../Admin/ManageContactUsController.php | 64 +- .../Admin/ManageFeedbackController.php | 27 +- app/Mail/ReplyMail.php | 65 ++ .../views/Admin/pages/mail/reply.blade.php | 18 + .../manage_contact.blade.php | 555 +++++++++++++----- .../manage_feedback/manage_feedback.blade.php | 289 ++++++--- routes/web.php | 7 +- 7 files changed, 757 insertions(+), 268 deletions(-) create mode 100644 app/Mail/ReplyMail.php create mode 100644 resources/views/Admin/pages/mail/reply.blade.php diff --git a/app/Http/Controllers/Admin/ManageContactUsController.php b/app/Http/Controllers/Admin/ManageContactUsController.php index 95a090b..087f230 100644 --- a/app/Http/Controllers/Admin/ManageContactUsController.php +++ b/app/Http/Controllers/Admin/ManageContactUsController.php @@ -8,18 +8,64 @@ use App\Mail\ReplyMail; use App\Models\ManageContactus; use Illuminate\Support\Facades\Mail; + class ManageContactUsController extends Controller -{ /** - * Created By : sayali parab - * Created at : 05 June 2024 - * Use : To get contact us page. - */ - public function index(){ - // $queries = ManageContactUs::latest()->get(); - $queries = ManageContactUs::all(); +{ + /** + * Created By : sayali parab + * Created at : 05 June 2024 + * Use : To get contact us page. + */ + public function index(Request $request) + { + + $isReply = $request->query('is_reply'); + + if ($isReply == 1) { + $queries = ManageContactUs::where('is_reply', 1)->get(); + } elseif ($isReply == 0 && $isReply != null) { + $queries = ManageContactUs::where('is_reply', 0)->get(); + } else { + $queries = ManageContactUs::latest()->get(); + } + + return view('Admin.pages.manage_contact_us.manage_contact', compact('queries')); + } + + public function sendReply(Request $request) + { + if (!$request->user_id || $request->user_id == null) { + return response()->json(['error' => 'User not found'], 404); + } + $userId = $request->user_id; - return view('Admin.pages.manage_contact_us.manage_contact',compact('queries')); + $query = ManageContactus::find($userId); + if (!$query) { + return response()->json(['error' => 'Query not found'], 404); + } + $request->validate([ + 'reply_message' => 'required|string', + ]); + + $query->reply_message = $request->input('reply_message'); + $query->is_reply = true; + $query->save(); + + try { + Mail::to($query->email)->send(new \App\Mail\ReplyMail($query)); + } catch (\Exception $e) { + return response()->json(['error' => 'Failed to send email', 'message' => $e->getMessage()], 500); + } + + return response()->json(['message' => 'Reply sent successfully']); + } + + + public function delete_user($id) + { + $data = ManageContactUs::find($id)->delete(); + return redirect()->back()->with('success', ''); } } diff --git a/app/Http/Controllers/Admin/ManageFeedbackController.php b/app/Http/Controllers/Admin/ManageFeedbackController.php index 0005933..685f984 100644 --- a/app/Http/Controllers/Admin/ManageFeedbackController.php +++ b/app/Http/Controllers/Admin/ManageFeedbackController.php @@ -3,19 +3,30 @@ namespace App\Http\Controllers\Admin; use App\Http\Controllers\Controller; +use App\Models\ManageFeedback; use Illuminate\Http\Request; class ManageFeedbackController extends Controller { - /** - * Created By : sayali parab - * Created at : 17 May 2024 - * Use : To get manage feedback page. - */ - public function index(){ - - return view('Admin.pages.manage_feedback.manage_feedback'); + /** + * Created By : sayali parab + * Created at : 17 May 2024 + * Use : To get manage feedback page. + */ + public function index() + { + $feedback = ManageFeedback::with('principal', 'feedbackReaction') + ->orderBy('created_at', 'desc') + ->get(); + return view('Admin.pages.manage_feedback.manage_feedback', compact('feedback')); + } + + + public function delete_feedback($id) + { + $data = ManageFeedback::find($id)->delete(); + return redirect()->back()->with('success', ''); } } diff --git a/app/Mail/ReplyMail.php b/app/Mail/ReplyMail.php new file mode 100644 index 0000000..8a37a0c --- /dev/null +++ b/app/Mail/ReplyMail.php @@ -0,0 +1,65 @@ +query = $query; + + } + + + + public function build() + { + return $this->view('Admin.pages.mail.reply'); + } + + + /** + * Get the message envelope. + */ + public function envelope(): Envelope + { + return new Envelope( + subject: 'Reply Mail', + ); + } + + /** + * Get the message content definition. + */ + // public function content(): Content + // { + // return new Content( + // view: 'view.name', + // ); + // } + + /** + * Get the attachments for the message. + * + * @return array + */ + public function attachments(): array + { + return []; + } +} diff --git a/resources/views/Admin/pages/mail/reply.blade.php b/resources/views/Admin/pages/mail/reply.blade.php new file mode 100644 index 0000000..9dd68e5 --- /dev/null +++ b/resources/views/Admin/pages/mail/reply.blade.php @@ -0,0 +1,18 @@ + + + + + Contact Query Reply + + +

Hello {{ $query->name }},

+ + + +

Your contact query has been answered:

+ +

{{ $query->reply_message }}

+ +

Thank you for reaching out!

+ + diff --git a/resources/views/Admin/pages/manage_contact_us/manage_contact.blade.php b/resources/views/Admin/pages/manage_contact_us/manage_contact.blade.php index 918061d..d10b64d 100644 --- a/resources/views/Admin/pages/manage_contact_us/manage_contact.blade.php +++ b/resources/views/Admin/pages/manage_contact_us/manage_contact.blade.php @@ -1,185 +1,432 @@ @extends('Admin.layouts.master') @section('content') -@php -$currentPage = 'manage-contact-us'; -@endphp - -
-
-
-
-
-
-
Manage Contact Us
-
-
-
-
-
+
+
+
+
+
+
+
Manage Contact Us
+
+
+
+
+
+
+ +
- - -
-
-
- - - - - - - - - - - - @foreach ($queries as $querie) - - - - - - - -
Sr No.NameEmail addressMessageActions
{{ $loop->iteration }}{{ $querie['name'] }}{{ $querie['email'] }} - View - - - - -
+ + + + + + + + + + + + @foreach ($queries as $querie) + + + + + + + + + + + + + + + @csrf + + + + @endforeach
Sr No.NameEmail addressMessageStatusActions
{{ $loop->iteration }}{{ $querie['name'] }}{{ $querie['email'] }} + View + +
+
+ +
-

- +
+
+ + @if (!$querie['is_reply']) +
+ + + Reply + + @endif + + @if ($querie['is_reply']) + + +
-
+
+ + @endsection @section('section_script') - - - + - + -@endsection \ No newline at end of file + $(document).on("click", ".delete_user_button", function(e) { + e.preventDefault(); + let base_url = url_path; + var delete_id = $('#delete_user_id').val(); + $.ajaxSetup({ + headers: { + "X-CSRF-TOKEN": $('meta[name="csrf-token"]').attr("content"), + }, + }); + $.ajax({ + type: "POST", // Change the type to POST since you're using Route::post in Laravel + url: base_url + "/delete_user/" + delete_id, + data: { + _method: 'post', // Laravel requires a hidden _method field for DELETE requests + }, + success: function(response) { + console.log(response); + toastr.info("Contact Deleted Successfully"); + window.location.reload(); + } + }); + }); + + + + + + + + + +@endsection diff --git a/resources/views/Admin/pages/manage_feedback/manage_feedback.blade.php b/resources/views/Admin/pages/manage_feedback/manage_feedback.blade.php index 9daa598..81ae7ae 100644 --- a/resources/views/Admin/pages/manage_feedback/manage_feedback.blade.php +++ b/resources/views/Admin/pages/manage_feedback/manage_feedback.blade.php @@ -1,118 +1,215 @@ @extends('Admin.layouts.master') @section('content') -@php -$currentPage = 'manage-feedback'; -@endphp + @php + $currentPage = 'manage-feedback'; + @endphp -
-
-
-
-
-
-
Manage Feedback
-
-
-
+
+
+
+
+
+
+
Manage Feedback
+
+
- -
-
-
- - + + + +
+
+
+ + + + + + + + + + + + + + @foreach ($feedback as $feedbacks) - - - - - - - - - - - - - - - - - - + + + - + - - - - - - - - - - + + - -
Sr No.User IDUser NameUser TypeReactionsCommnetDate ReceivedActions
Sr No.User IDUser NameUser TypeReactionsCommnetDate ReceivedActions
1345678Raj ShindeCustomerGood - View + {{ $loop->iteration }}{{ $feedbacks->principal->id }}{{ $feedbacks->principal->first_name }} + {{ $feedbacks->principal->last_name }} + @if ($feedbacks->principal->principal_type_xid == 3) + Customer + @elseif($feedbacks->principal->principal_type_xid == 4) + Restaurant + @else + Unknown + @endif 08/22/2023{{ $feedbacks->feedbackReaction->feedback_reaction_title }} + - - - Delete - -
2345678Raj ShindeCustomerAmazing - View - 08/22/2023 - - + + View + + + + + {{ \Carbon\Carbon::parse($feedbacks->principal->created_at)->format('m/d/Y') }} + + + + + Delete + + +
-
+ + + + + + + + + + + + + @endforeach + +
- - @endsection - - @section('section_script') - - - - - +
+@endsection + +@section('section_script') + + + + {{-- --}} + + @endsection diff --git a/routes/web.php b/routes/web.php index 6a11f72..c414da9 100644 --- a/routes/web.php +++ b/routes/web.php @@ -87,6 +87,10 @@ Route::group(['middleware' => ['checkStatus']], function () { Route::get('/manage-vouchers', [ManageVouchersController::class, 'index'])->name('manage.voucher'); //*******************************************************manage contact******************************************************** Route::get('/manage-contact', [ManageContactUsController::class, 'index'])->name('manage.contact'); + Route::post('/send-reply', [ManageContactUsController::class, 'sendReply'])->name('send.reply'); + Route::post('/delete_user/{id}', [ManageContactUsController::class, 'delete_user'])->name('manage.contactus'); + + //*******************************************************manage cms******************************************************** Route::get('/manage-cms', [ManageCmsController::class, 'index'])->name('manage.cms'); @@ -141,6 +145,8 @@ Route::group(['middleware' => ['checkStatus']], function () { Route::get('/manage-reports', [ManageReportsController::class, 'index'])->name('manage.reports'); //*******************************************************manage feedback******************************************************** Route::get('/manage-feedback', [ManageFeedbackController::class, 'index'])->name('manage.feedback'); + Route::post('/delete_feedback/{id}', [ManageFeedbackController::class, 'delete_feedback'])->name('delete.feedback'); + //*******************************************************manage notification******************************************************** Route::get('/manage-notification', [ManageNotificationsController::class, 'index'])->name('manage.notification'); @@ -164,5 +170,4 @@ Route::group(['middleware' => ['checkStatus']], function () { Route::get('/change_location_status', [ManageLocationController::class, 'change_location_status']); Route::delete('/delete_location/{id}', [ManageLocationController::class, 'delete_location']); Route::post('/update_location', [ManageLocationController::class, 'update']); - });