Feedback and contact us
This commit is contained in:
@@ -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', '');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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', '');
|
||||
}
|
||||
}
|
||||
|
||||
65
app/Mail/ReplyMail.php
Normal file
65
app/Mail/ReplyMail.php
Normal file
@@ -0,0 +1,65 @@
|
||||
<?php
|
||||
|
||||
namespace App\Mail;
|
||||
|
||||
use App\Models\ManageContactus;
|
||||
use Illuminate\Bus\Queueable;
|
||||
use Illuminate\Contracts\Queue\ShouldQueue;
|
||||
use Illuminate\Mail\Mailable;
|
||||
use Illuminate\Mail\Mailables\Content;
|
||||
use Illuminate\Mail\Mailables\Envelope;
|
||||
use Illuminate\Queue\SerializesModels;
|
||||
|
||||
class ReplyMail extends Mailable
|
||||
{
|
||||
use Queueable, SerializesModels;
|
||||
|
||||
public $query;
|
||||
|
||||
/**
|
||||
* Create a new message instance.
|
||||
*/
|
||||
public function __construct(ManageContactus $query)
|
||||
{
|
||||
$this->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<int, \Illuminate\Mail\Mailables\Attachment>
|
||||
*/
|
||||
public function attachments(): array
|
||||
{
|
||||
return [];
|
||||
}
|
||||
}
|
||||
18
resources/views/Admin/pages/mail/reply.blade.php
Normal file
18
resources/views/Admin/pages/mail/reply.blade.php
Normal file
@@ -0,0 +1,18 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>Contact Query Reply</title>
|
||||
</head>
|
||||
<body>
|
||||
<p>Hello {{ $query->name }},</p>
|
||||
|
||||
|
||||
|
||||
<p>Your contact query has been answered:</p>
|
||||
|
||||
<p>{{ $query->reply_message }}</p>
|
||||
|
||||
<p>Thank you for reaching out!</p>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,185 +1,432 @@
|
||||
@extends('Admin.layouts.master')
|
||||
|
||||
@section('content')
|
||||
@php
|
||||
$currentPage = 'manage-contact-us';
|
||||
@endphp
|
||||
<style>
|
||||
.action-buttons {
|
||||
display: flex;
|
||||
gap: 10px; /* Adjust the gap between buttons as needed */
|
||||
margin: 10px 0; /* Add margin if needed to separate from other elements */
|
||||
}
|
||||
@php
|
||||
$currentPage = 'manage-contact-us';
|
||||
@endphp
|
||||
<style>
|
||||
.action-buttons {
|
||||
display: flex;
|
||||
gap: 10px;
|
||||
/* Adjust the gap between buttons as needed */
|
||||
margin: 10px 0;
|
||||
/* Add margin if needed to separate from other elements */
|
||||
}
|
||||
|
||||
.action-btn {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
text-decoration: none;
|
||||
color: inherit;
|
||||
background-color: #f1f1f1; /* Adjust background color as needed */
|
||||
padding: 10px 15px; /* Adjust padding as needed */
|
||||
border-radius: 5px; /* Adjust border radius as needed */
|
||||
transition: background 0.3s;
|
||||
border: 1px solid #ccc; /* Add border for better visibility */
|
||||
}
|
||||
.action-btn {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
text-decoration: none;
|
||||
color: inherit;
|
||||
background-color: #f1f1f1;
|
||||
/* Adjust background color as needed */
|
||||
padding: 10px 15px;
|
||||
/* Adjust padding as needed */
|
||||
border-radius: 5px;
|
||||
/* Adjust border radius as needed */
|
||||
transition: background 0.3s;
|
||||
border: 1px solid #ccc;
|
||||
/* Add border for better visibility */
|
||||
}
|
||||
|
||||
.action-btn img {
|
||||
margin-right: 5px; /* Adjust spacing between icon and text as needed */
|
||||
width: 16px; /* Set a fixed width for the icon */
|
||||
height: 16px; /* Set a fixed height for the icon */
|
||||
}
|
||||
.action-btn img {
|
||||
margin-right: 5px;
|
||||
/* Adjust spacing between icon and text as needed */
|
||||
width: 16px;
|
||||
/* Set a fixed width for the icon */
|
||||
height: 16px;
|
||||
/* Set a fixed height for the icon */
|
||||
}
|
||||
|
||||
.action-btn:hover {
|
||||
background-color: #e0e0e0; /* Adjust hover background color as needed */
|
||||
}
|
||||
|
||||
.action-btn span {
|
||||
font-size: 14px; /* Adjust font size as needed */
|
||||
line-height: 1.5; /* Adjust line height as needed */
|
||||
}
|
||||
.action-btn:hover {
|
||||
background-color: #e0e0e0;
|
||||
/* Adjust hover background color as needed */
|
||||
}
|
||||
|
||||
.action-btn span {
|
||||
font-size: 14px;
|
||||
/* Adjust font size as needed */
|
||||
line-height: 1.5;
|
||||
/* Adjust line height as needed */
|
||||
}
|
||||
</style>
|
||||
|
||||
<div class="layout-px-spacing">
|
||||
<div class="middle-content container-xxl p-0">
|
||||
<div class="row layout-top-spacing ">
|
||||
<div class="top-tabel">
|
||||
<div class="row">
|
||||
<div class="col-md-4">
|
||||
<h6 class="card-title">Manage Contact Us</h6>
|
||||
</div>
|
||||
<div class="col-md-8">
|
||||
<div class="btns-datatabel">
|
||||
<div class="row">
|
||||
<div class="col-md-7"></div>
|
||||
<div class="layout-px-spacing">
|
||||
<div class="middle-content container-xxl p-0">
|
||||
<div class="row layout-top-spacing ">
|
||||
<div class="top-tabel">
|
||||
<div class="row">
|
||||
<div class="col-md-4">
|
||||
<h6 class="card-title">Manage Contact Us</h6>
|
||||
</div>
|
||||
<div class="col-md-8">
|
||||
<div class="btns-datatabel">
|
||||
<div class="row">
|
||||
<div class="col-md-7"></div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
<div class="col-xl-12 col-lg-12 col-sm-12 layout-spacing">
|
||||
<div class="widget-content widget-content-area br-8 position-btn">
|
||||
<table id="zero-config" class="table dt-table-hover" style="width:100%">
|
||||
<thead class="text-center">
|
||||
<tr>
|
||||
<th class="text-start">Sr No.</th>
|
||||
<th class="text-start">Name</th>
|
||||
<th class="text-start">Email address</th>
|
||||
<th class="text-start">Message</th>
|
||||
<th class="no-content">Actions</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody class="text-center">
|
||||
@foreach ($queries as $querie)
|
||||
|
||||
<tr>
|
||||
<td class="text-start">{{ $loop->iteration }}</td>
|
||||
<td class="text-start">{{ $querie['name'] }}</td>
|
||||
<td class="text-start">{{ $querie['email'] }}</td>
|
||||
<td>
|
||||
<a class="view-btn m-0" href="#" data-toggle="modal" data-target="#view-message-modal" data-ids="{{ $querie['id'] }}" data-message="{{ $querie['message'] }}">View</a>
|
||||
</td>
|
||||
<td>
|
||||
<!-- <div class="dropout">
|
||||
<button class="more">
|
||||
<span></span>
|
||||
<span></span>
|
||||
<span></span>
|
||||
</button>
|
||||
<ul>
|
||||
<li>
|
||||
<a href="" data-toggle="modal" data-target="#reply-modal">
|
||||
<img src="../src/assets/img/restore.svg" />
|
||||
<span>Reply</span>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="" data-toggle="modal" data-target="#delete-modal">
|
||||
<img src="../src/assets/img/delete-recycle.svg" />
|
||||
<span>Delete</span>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div> -->
|
||||
<div class="action-buttons">
|
||||
<a class="action-btn" href="#" data-toggle="modal" data-target="#reply-modal">
|
||||
<img src="{{ asset('public/assets/img/restore.svg') }}" />
|
||||
<span>Reply</span>
|
||||
</a>
|
||||
<a class="action-btn" href="#" data-toggle="modal" data-target="#delete-modal">
|
||||
<img src="{{ asset('public/assets/img/delete-recycle.svg') }}" />
|
||||
<span>Delete</span>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
</td>
|
||||
<div class="modal fade" id="view-message-modal" tabindex="-1" role="dialog" aria-labelledby="viewMessageModalLabel" aria-hidden="true">
|
||||
<div class="modal-dialog modal-dialog-centered" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="modal-body">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title" id="viewMessageModalLabel">Message</h5>
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
||||
<span aria-hidden="true">×</span>
|
||||
</button>
|
||||
<div class="col-xl-12 col-lg-12 col-sm-12 layout-spacing">
|
||||
<div class="widget-content widget-content-area br-8 position-btn">
|
||||
<table id="zero-config" class="table dt-table-hover" style="width:100%">
|
||||
<thead class="text-center">
|
||||
<tr>
|
||||
<th class="text-start">Sr No.</th>
|
||||
<th class="text-start">Name</th>
|
||||
<th class="text-start">Email address</th>
|
||||
<th class="text-start">Message</th>
|
||||
<th class="text-start">Status</th>
|
||||
<th class="no-content">Actions</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody class="text-center">
|
||||
@foreach ($queries as $querie)
|
||||
<tr>
|
||||
<td class="text-start">{{ $loop->iteration }}</td>
|
||||
<td class="text-start">{{ $querie['name'] }}</td>
|
||||
<td class="text-start">{{ $querie['email'] }}</td>
|
||||
<td>
|
||||
<a class="view-btn m-0" href="#" data-toggle="modal"
|
||||
data-target="#view-message-modal" data-ids="{{ $querie['id'] }}"
|
||||
data-message="{{ $querie['message'] }}">View</a>
|
||||
</td>
|
||||
<td class="text-center">
|
||||
<form>
|
||||
<div class="switch-btn" id="status-change">
|
||||
<input type="checkbox" id="switch{{ $querie['id'] }}" switch="bool"
|
||||
data-id="{{ $querie['id'] }}" name="status" value="1"
|
||||
{{ $querie['is_reply'] ? 'checked' : '' }} />
|
||||
<label for="switch{{ $querie['id'] }}" data-on-label="Resolved"
|
||||
data-off-label="Pending"></label>
|
||||
</div>
|
||||
<p id="message-content"></p>
|
||||
</div>
|
||||
</form>
|
||||
</td>
|
||||
<td>
|
||||
<!-- <div class="dropout">
|
||||
<button class="more">
|
||||
<span></span>
|
||||
<span></span>
|
||||
<span></span>
|
||||
</button>
|
||||
<ul>
|
||||
<li>
|
||||
<a href="" data-toggle="modal" data-target="#reply-modal">
|
||||
<img src="../src/assets/img/restore.svg" />
|
||||
<span>Reply</span>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="" data-toggle="modal" data-target="#delete-modal">
|
||||
<img src="../src/assets/img/delete-recycle.svg" />
|
||||
<span>Delete</span>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
</div> -->
|
||||
@if (!$querie['is_reply'])
|
||||
<div class="action-buttons">
|
||||
<a href="#" class="action-btn reply-button" data-toggle="modal"
|
||||
data-target="#reply-modal" data-query-id="{{ $querie['id'] }}"
|
||||
data-query-name="{{ $querie['name'] }}">
|
||||
<img src="{{ asset('public/assets/img/restore.svg') }}" />
|
||||
<span>Reply</span>
|
||||
</a>
|
||||
@endif
|
||||
|
||||
@if ($querie['is_reply'])
|
||||
<div class="action-buttons">
|
||||
|
||||
<a href="#" class="action-btn replymessage-button"
|
||||
data-toggle="modal" data-query-id="{{ $querie['id'] }}"
|
||||
data-query-name="{{ $querie['name'] }}"
|
||||
data-reply-message="{{ $querie['reply_message'] }}"
|
||||
data-target="#replymessage-modal">
|
||||
<span>View reply</span>
|
||||
</a>
|
||||
@endif
|
||||
|
||||
<a class="action-btn delete_user" data-id="{{ $querie['id'] }}"
|
||||
data-toggle="modal" data-target="#delete-modal">
|
||||
|
||||
|
||||
<img src="{{ asset('public/assets/img/delete-recycle.svg') }}" />
|
||||
<span>Delete</span>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
</td>
|
||||
<div class="modal fade" id="view-message-modal" tabindex="-1" role="dialog"
|
||||
aria-labelledby="viewMessageModalLabel" aria-hidden="true">
|
||||
<div class="modal-dialog modal-dialog-centered" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="modal-body">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title" id="viewMessageModalLabel">Message</h5>
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
||||
<span aria-hidden="true">×</span>
|
||||
</button>
|
||||
</div>
|
||||
<p id="message-content"></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</tr>
|
||||
|
||||
|
||||
</tbody>
|
||||
|
||||
<form action="{{ route('send.reply', ['id' => $querie['id']]) }}" method="post" id="replyForm">
|
||||
@csrf
|
||||
<div class="modal fade" id="reply-modal" tabindex="-1" role="dialog"
|
||||
aria-labelledby="exampleModalLabel" aria-hidden="true">
|
||||
<div class="modal-dialog modal-dialog-centered" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="modal-body">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title" id="exampleModalLabel">Reply to
|
||||
<span id="query-name"></span>
|
||||
</h5>
|
||||
<button type="button" class="close" data-dismiss="modal"
|
||||
aria-label="Close">
|
||||
<span aria-hidden="true">×</span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="col-xxl-12">
|
||||
<textarea name="reply_message" class="form-control" id="post-meta-description" cols="10" rows="5"
|
||||
required></textarea>
|
||||
<button type="submit" class="download-btn reply_user_button">Reply</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</tr>
|
||||
|
||||
|
||||
</tbody>
|
||||
@endforeach
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
<div class="modal fade" id="replymessage-modal" tabindex="-1" role="dialog"
|
||||
aria-labelledby="exampleModalLabel" aria-hidden="true">
|
||||
<div class="modal-dialog modal-dialog-centered" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="modal-body">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title" id="exampleModalLabel">Reply Message:
|
||||
<span id="query-name"></span>
|
||||
</h5>
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
||||
<span aria-hidden="true">×</span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="col-xxl-12">
|
||||
<p><span id="reply-message"></span></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endforeach
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="modal fade" id="delete-modal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel"
|
||||
aria-hidden="true">
|
||||
<div class="modal-dialog modal-dialog-centered" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="btn-close" data-dismiss="modal" aria-label="Close">
|
||||
x
|
||||
</button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<input type="hidden" id="delete_user_id" name="user_id">
|
||||
<p class="modal-text">Are you sure you want to<br>Delete </p>
|
||||
<div class="modal-btn d-flex ">
|
||||
<a type="button" href="route{{ 'manage.contact' }}" class="extra-btn"
|
||||
data-dismiss="modal">No</a>
|
||||
<a type="button" class="download-btn-custom delete_user_button" data-dismiss="modal">Yes</a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
|
||||
@section('section_script')
|
||||
|
||||
<script src="../src/plugins/src/table/datatable/datatables.js"></script>
|
||||
<script>
|
||||
$('#zero-config').DataTable({
|
||||
"dom": "<'dt--top-section'<'row'<'col-12 col-sm-6 d-flex justify-content-sm-start justify-content-center'l><'col-12 col-sm-6 d-flex justify-content-sm-end justify-content-center mt-sm-0 mt-3'f>>>" +
|
||||
"<'table-responsive'tr>" +
|
||||
"<'dt--bottom-section d-sm-flex justify-content-sm-between text-center'<'dt--pages-count mb-sm-0 mb-3'i><'dt--pagination'p>>",
|
||||
"oLanguage": {
|
||||
"oPaginate": {
|
||||
"sPrevious": '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-arrow-left"><line x1="19" y1="12" x2="5" y2="12"></line><polyline points="12 19 5 12 12 5"></polyline></svg>',
|
||||
"sNext": '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-arrow-right"><line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline></svg>'
|
||||
<script src="../src/plugins/src/table/datatable/datatables.js"></script>
|
||||
<script>
|
||||
$('#zero-config').DataTable({
|
||||
"dom": "<'dt--top-section'<'row'<'col-12 col-sm-6 d-flex justify-content-sm-start justify-content-center'l><'col-12 col-sm-6 d-flex justify-content-sm-end justify-content-center mt-sm-0 mt-3'f>>>" +
|
||||
"<'table-responsive'tr>" +
|
||||
"<'dt--bottom-section d-sm-flex justify-content-sm-between text-center'<'dt--pages-count mb-sm-0 mb-3'i><'dt--pagination'p>>",
|
||||
"oLanguage": {
|
||||
"oPaginate": {
|
||||
"sPrevious": '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-arrow-left"><line x1="19" y1="12" x2="5" y2="12"></line><polyline points="12 19 5 12 12 5"></polyline></svg>',
|
||||
"sNext": '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-arrow-right"><line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline></svg>'
|
||||
},
|
||||
"sInfo": "Showing page _PAGE_ of _PAGES_",
|
||||
"sSearch": '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-search"><circle cx="11" cy="11" r="8"></circle><line x1="21" y1="21" x2="16.65" y2="16.65"></line></svg>',
|
||||
"sSearchPlaceholder": "Search...",
|
||||
"sLengthMenu": "Results : _MENU_",
|
||||
},
|
||||
"sInfo": "Showing page _PAGE_ of _PAGES_",
|
||||
"sSearch": '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-search"><circle cx="11" cy="11" r="8"></circle><line x1="21" y1="21" x2="16.65" y2="16.65"></line></svg>',
|
||||
"sSearchPlaceholder": "Search...",
|
||||
"sLengthMenu": "Results : _MENU_",
|
||||
},
|
||||
"stripeClasses": [],
|
||||
"lengthMenu": [7, 10, 20, 50],
|
||||
"pageLength": 10
|
||||
});
|
||||
</script>
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
$('.view-btn').click(function() {
|
||||
var message = $(this).data('message');
|
||||
var id = $(this).data('ids');
|
||||
|
||||
$('#view-message-modal #message-content').text(message);
|
||||
|
||||
$('#view-message-modal').modal('show');
|
||||
"stripeClasses": [],
|
||||
"lengthMenu": [7, 10, 20, 50],
|
||||
"pageLength": 10
|
||||
});
|
||||
</script>
|
||||
<script>
|
||||
$(document).on("click", ".delete_user", function() {
|
||||
var delete_id = $(this).data('id');
|
||||
$('#delete_user_id').val(delete_id); // Fix the selector here
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
@endsection
|
||||
$(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();
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
$('.view-btn').click(function() {
|
||||
var message = $(this).data('message');
|
||||
var id = $(this).data('ids');
|
||||
|
||||
$('#view-message-modal #message-content').text(message);
|
||||
|
||||
$('#view-message-modal').modal('show');
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<script>
|
||||
$(document).on("click", ".reply-button", function() {
|
||||
var queryId = $(this).data('query-id');
|
||||
var queryName = $(this).data('query-name');
|
||||
|
||||
$('#query-name').text(queryName);
|
||||
|
||||
$('#reply-modal').data('query-id', queryId);
|
||||
|
||||
$('#reply-modal').modal('show');
|
||||
});
|
||||
|
||||
$(document).on("click", "#reply-button", function(e) {
|
||||
e.preventDefault();
|
||||
|
||||
var queryId = $('#reply-modal').data('query-id');
|
||||
|
||||
$('#reply-modal').modal('hide');
|
||||
});
|
||||
</script>
|
||||
<script>
|
||||
$(document).on("click", ".replymessage-button", function() {
|
||||
var queryId = $(this).data('query-id');
|
||||
var queryName = $(this).data('query-name');
|
||||
var replyMessage = $(this).data('reply-message');
|
||||
|
||||
// Set the query name and reply message in the modal
|
||||
$('#query-name').text(queryName);
|
||||
$('#reply-message').text(replyMessage);
|
||||
|
||||
// Set the query ID as a data attribute for future use
|
||||
$('#replymessage-modal').data('query-id', queryId);
|
||||
|
||||
// Show the modal
|
||||
$('#replymessage-modal').modal('show');
|
||||
});
|
||||
|
||||
$(document).on("click", "#replymessage-button", function(e) {
|
||||
e.preventDefault();
|
||||
|
||||
// Get the query ID from the modal data attribute
|
||||
var queryId = $('#replymessage-modal').data('query-id');
|
||||
|
||||
// Your other AJAX code for handling the reply
|
||||
// ...
|
||||
|
||||
// Hide the modal after handling the reply
|
||||
$('#replymessage-modal').modal('hide');
|
||||
});
|
||||
</script>
|
||||
|
||||
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
$('.reply_user_button').on('click', function(event) {
|
||||
event.preventDefault();
|
||||
|
||||
var replyMessage = $('#post-meta-description').val().trim();
|
||||
if (replyMessage === "") {
|
||||
toastr.error("Please enter a reply message.");
|
||||
return;
|
||||
}
|
||||
|
||||
var csrfToken = $('meta[name="csrf-token"]').attr('content');
|
||||
var queryId = $('#reply-modal').data('query-id');
|
||||
|
||||
$.ajax({
|
||||
url: "{{ route('send.reply') }}",
|
||||
type: 'POST',
|
||||
data: {
|
||||
reply_message: replyMessage,
|
||||
user_id: queryId,
|
||||
_token: csrfToken
|
||||
},
|
||||
dataType: 'json',
|
||||
success: function(response) {
|
||||
console.log(response);
|
||||
toastr.success('Reply sent successfully');
|
||||
window.location.reload();
|
||||
$('#reply-modal').modal('hide');
|
||||
},
|
||||
error: function(error) {
|
||||
console.error(error);
|
||||
toastr.error("An error occurred. Please try again.");
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
// Handle click event on the "View" button
|
||||
$('.view-btn').click(function() {
|
||||
// Get the message and id from the data attributes
|
||||
var message = $(this).data('message');
|
||||
var id = $(this).data('ids');
|
||||
|
||||
// Set the message in the modal
|
||||
$('#message-modal-' + id + ' .modal-body').html('<p id="modal-message-' + id + '">' +
|
||||
message + '</p>');
|
||||
});
|
||||
});
|
||||
</script>
|
||||
@endsection
|
||||
|
||||
@@ -1,118 +1,215 @@
|
||||
@extends('Admin.layouts.master')
|
||||
|
||||
@section('content')
|
||||
@php
|
||||
$currentPage = 'manage-feedback';
|
||||
@endphp
|
||||
@php
|
||||
$currentPage = 'manage-feedback';
|
||||
@endphp
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="layout-px-spacing">
|
||||
<div class="middle-content container-xxl p-0">
|
||||
<div class="row layout-top-spacing ">
|
||||
<div class="top-tabel">
|
||||
<div class="row">
|
||||
<div class="col-md-4">
|
||||
<h6 class="card-title">Manage Feedback</h6>
|
||||
</div>
|
||||
<div class="col-md-8">
|
||||
</div>
|
||||
<div class="layout-px-spacing">
|
||||
<div class="middle-content container-xxl p-0">
|
||||
<div class="row layout-top-spacing ">
|
||||
<div class="top-tabel">
|
||||
<div class="row">
|
||||
<div class="col-md-4">
|
||||
<h6 class="card-title">Manage Feedback</h6>
|
||||
</div>
|
||||
<div class="col-md-8">
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
<div class="col-xl-12 col-lg-12 col-sm-12 layout-spacing">
|
||||
<div class="widget-content widget-content-area br-8 position-btn">
|
||||
<table id="zero-config" class="table dt-table-hover" style="width:100%">
|
||||
<thead class="text-center">
|
||||
|
||||
|
||||
</div>
|
||||
<div class="col-xl-12 col-lg-12 col-sm-12 layout-spacing">
|
||||
<div class="widget-content widget-content-area br-8 position-btn">
|
||||
<table id="zero-config" class="table dt-table-hover" style="width:100%">
|
||||
<thead class="text-center">
|
||||
<tr>
|
||||
<th class="text-start">Sr No.</th>
|
||||
<th class="text-start">User ID</th>
|
||||
<th class="text-start">User Name</th>
|
||||
<th class="text-start">User Type</th>
|
||||
<th class="text-start">Reactions</th>
|
||||
<th class="text-start">Commnet</th>
|
||||
<th class="text-start">Date Received</th>
|
||||
<th class="no-content">Actions</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody class="text-center">
|
||||
@foreach ($feedback as $feedbacks)
|
||||
<tr>
|
||||
<th class="text-start">Sr No.</th>
|
||||
<th class="text-start">User ID</th>
|
||||
<th class="text-start">User Name</th>
|
||||
<th class="text-start">User Type</th>
|
||||
<th class="text-start">Reactions</th>
|
||||
<th class="text-start">Commnet</th>
|
||||
<th class="text-start">Date Received</th>
|
||||
<th class="no-content">Actions</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody class="text-center">
|
||||
<tr>
|
||||
<td class="text-start">1</td>
|
||||
<td class="text-start">345678</td>
|
||||
<td class="text-start">Raj Shinde</td>
|
||||
<td class="text-start">Customer</td>
|
||||
<td class="text-start">Good</td>
|
||||
<td>
|
||||
<a class="view-btn m-0" href="" data-toggle="modal"
|
||||
data-target="#comment-modal">View</a>
|
||||
<td class="text-start">{{ $loop->iteration }}</td>
|
||||
<td class="text-start">{{ $feedbacks->principal->id }}</td>
|
||||
<td class="text-start">{{ $feedbacks->principal->first_name }}
|
||||
{{ $feedbacks->principal->last_name }}</td>
|
||||
<td class="text-start">
|
||||
@if ($feedbacks->principal->principal_type_xid == 3)
|
||||
Customer
|
||||
@elseif($feedbacks->principal->principal_type_xid == 4)
|
||||
Restaurant
|
||||
@else
|
||||
Unknown
|
||||
@endif
|
||||
</td>
|
||||
<td class="text-start">08/22/2023</td>
|
||||
<td class="text-start">{{ $feedbacks->feedbackReaction->feedback_reaction_title }}
|
||||
|
||||
<td>
|
||||
<a class="d-flex justify-content-center align-items-center"
|
||||
style="gap: 7px;" href="" data-toggle="modal"
|
||||
data-target="#delete-modal">
|
||||
<img width="15" src="{{ asset('public/assets/img/delete-recycle.svg')}}" />
|
||||
<span>Delete</span>
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="text-start">2</td>
|
||||
<td class="text-start">345678</td>
|
||||
<td class="text-start">Raj Shinde</td>
|
||||
<td class="text-start">Customer</td>
|
||||
<td class="text-start">Amazing</td>
|
||||
<td>
|
||||
<a class="view-btn m-0" href="" data-toggle="modal"
|
||||
data-target="#comment-modal">View</a>
|
||||
</td>
|
||||
<td class="text-start">08/22/2023</td>
|
||||
<td>
|
||||
<a class="d-flex justify-content-center align-items-center"
|
||||
style="gap: 7px;" href="" data-toggle="modal"
|
||||
data-target="#delete-modal">
|
||||
<img width="15" src="{{ asset('public/assets/img/delete-recycle.svg')}}" />
|
||||
<!-- <a class="view-btn m-0" href="" data-toggle="modal" data-target="#comment-modal-{{ $feedbacks['id'] }}" data-ids="{{ $feedbacks['id'] }}" data-comment="{{ $feedbacks['comment'] }}">View</a> -->
|
||||
<a class="view-btn m-0" href="#" data-toggle="modal"
|
||||
data-target="#comment-modal" data-ids="{{ $feedbacks['id'] }}"
|
||||
data-comment="{{ $feedbacks['comment'] }}">View</a>
|
||||
|
||||
|
||||
|
||||
</td>
|
||||
<td class="text-start">
|
||||
{{ \Carbon\Carbon::parse($feedbacks->principal->created_at)->format('m/d/Y') }}
|
||||
</td>
|
||||
<td>
|
||||
|
||||
|
||||
<a class="delete_feedback" data-id="{{ $feedbacks['id'] }}" style="gap: 7px;"
|
||||
href="" data-toggle="modal" data-target="#delete-modal">
|
||||
<img width="15"
|
||||
src="{{ asset('public/assets/img/delete-recycle.svg') }}" />
|
||||
<span>Delete</span>
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- <div class="modal fade" id="comment-modal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true"> -->
|
||||
<div class="modal fade" id="comment-modal" tabindex="-1" role="dialog"
|
||||
aria-labelledby="exampleModalLabel" aria-hidden="true">
|
||||
|
||||
<div class="modal-dialog modal-dialog-centered" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="modal-body">
|
||||
<div class="modal-header p-0">
|
||||
<h5 class="modal-title">Comment</h5>
|
||||
<button type="button" class="close" data-dismiss="modal"
|
||||
aria-label="Close">
|
||||
<span aria-hidden="true">×</span>
|
||||
</button>
|
||||
</div>
|
||||
<p id="comment-content-{{ $feedbacks['id'] }}"></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="modal fade" id="delete-modal" tabindex="-1" role="dialog"
|
||||
aria-labelledby="exampleModalLabel" aria-hidden="true">
|
||||
<div class="modal-dialog modal-dialog-centered" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="btn-close" data-dismiss="modal"
|
||||
aria-label="Close">
|
||||
x
|
||||
</button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<input type="hidden" id="delete_feedback_id" name="feedback_id">
|
||||
<p class="modal-text">Are you sure you want to<br>Delete </p>
|
||||
<div class="modal-btn d-flex ">
|
||||
<a class="extra-btn" href="route{{ 'manage_feedback' }}"
|
||||
data-dismiss="modal">No</a>
|
||||
<a type="button" class="download-btn-custom delete_feedback_button"
|
||||
data-dismiss="modal">Yes</a>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endforeach
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@endsection
|
||||
|
||||
@section('section_script')
|
||||
|
||||
<script src="../src/plugins/src/table/datatable/datatables.js"></script>
|
||||
<script>
|
||||
$('#zero-config').DataTable({
|
||||
"dom": "<'dt--top-section'<'row'<'col-12 col-sm-6 d-flex justify-content-sm-start justify-content-center'l><'col-12 col-sm-6 d-flex justify-content-sm-end justify-content-center mt-sm-0 mt-3'f>>>" +
|
||||
"<'table-responsive'tr>" +
|
||||
"<'dt--bottom-section d-sm-flex justify-content-sm-between text-center'<'dt--pages-count mb-sm-0 mb-3'i><'dt--pagination'p>>",
|
||||
"oLanguage": {
|
||||
"oPaginate": { "sPrevious": '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-arrow-left"><line x1="19" y1="12" x2="5" y2="12"></line><polyline points="12 19 5 12 12 5"></polyline></svg>', "sNext": '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-arrow-right"><line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline></svg>' },
|
||||
"sInfo": "Showing page _PAGE_ of _PAGES_",
|
||||
"sSearch": '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-search"><circle cx="11" cy="11" r="8"></circle><line x1="21" y1="21" x2="16.65" y2="16.65"></line></svg>',
|
||||
"sSearchPlaceholder": "Search...",
|
||||
"sLengthMenu": "Results : _MENU_",
|
||||
},
|
||||
"stripeClasses": [],
|
||||
"lengthMenu": [7, 10, 20, 50],
|
||||
"pageLength": 10
|
||||
});
|
||||
</script>
|
||||
|
||||
<script>
|
||||
$(document).ready(function () {
|
||||
$('<button><ul class="navbar-item flex-row ms-lg-auto ms-0"><li class="nav-item dropdown action-dropdown order-lg-0 order-1"><a href="javascript:void(0);"class="nav-link dropdown-toggle user extra-btn" id="actionDropdown" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"><div class="avatar-container"><div class="avatar avatar-sm avatar-indicators avatar-online"><h3>Filter</h3></div></div></a><div class="dropdown-menu position-absolute" aria-labelledby="actionDropdown"><div class="dropdown-item"><a href="#"><span>Customer</span></a></div><div class="dropdown-item"><a href="#"><span>Restraunt</span></a></div></div></li></ul></button>').insertBefore("#zero-config_filter label");
|
||||
});
|
||||
</script>
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@section('section_script')
|
||||
<script src="../src/plugins/src/table/datatable/datatables.js"></script>
|
||||
<script>
|
||||
$('#zero-config').DataTable({
|
||||
"dom": "<'dt--top-section'<'row'<'col-12 col-sm-6 d-flex justify-content-sm-start justify-content-center'l><'col-12 col-sm-6 d-flex justify-content-sm-end justify-content-center mt-sm-0 mt-3'f>>>" +
|
||||
"<'table-responsive'tr>" +
|
||||
"<'dt--bottom-section d-sm-flex justify-content-sm-between text-center'<'dt--pages-count mb-sm-0 mb-3'i><'dt--pagination'p>>",
|
||||
"oLanguage": {
|
||||
"oPaginate": {
|
||||
"sPrevious": '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-arrow-left"><line x1="19" y1="12" x2="5" y2="12"></line><polyline points="12 19 5 12 12 5"></polyline></svg>',
|
||||
"sNext": '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-arrow-right"><line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline></svg>'
|
||||
},
|
||||
"sInfo": "Showing page _PAGE_ of _PAGES_",
|
||||
"sSearch": '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-search"><circle cx="11" cy="11" r="8"></circle><line x1="21" y1="21" x2="16.65" y2="16.65"></line></svg>',
|
||||
"sSearchPlaceholder": "Search...",
|
||||
"sLengthMenu": "Results : _MENU_",
|
||||
},
|
||||
"stripeClasses": [],
|
||||
"lengthMenu": [7, 10, 20, 50],
|
||||
"pageLength": 10
|
||||
});
|
||||
</script>
|
||||
|
||||
{{-- <script>
|
||||
$(document).ready(function() {
|
||||
$('<button><ul class="navbar-item flex-row ms-lg-auto ms-0"><li class="nav-item dropdown action-dropdown order-lg-0 order-1"><a href="javascript:void(0);"class="nav-link dropdown-toggle user extra-btn" id="actionDropdown" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"><div class="avatar-container"><div class="avatar avatar-sm avatar-indicators avatar-online"><h3>Filter</h3></div></div></a><div class="dropdown-menu position-absolute" aria-labelledby="actionDropdown"><div class="dropdown-item"><a href="#"><span>Customer</span></a></div><div class="dropdown-item"><a href="#"><span>Restraunt</span></a></div></div></li></ul></button>')
|
||||
.insertBefore("#zero-config_filter label");
|
||||
});
|
||||
</script> --}}
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
$('.view-btn').click(function() {
|
||||
var commentId = $(this).data('ids');
|
||||
var commentContent = $(this).data('comment');
|
||||
$('#comment-content-' + commentId).text(commentContent);
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<script>
|
||||
$(document).on("click", ".delete_feedback", function() {
|
||||
var delete_id = $(this).data('id');
|
||||
$('#delete_feedback_id').val(delete_id);
|
||||
});
|
||||
|
||||
$(document).on("click", ".delete_feedback_button", function(e) {
|
||||
e.preventDefault();
|
||||
let base_url = url_path;
|
||||
var delete_id = $('#delete_feedback_id').val();
|
||||
$.ajaxSetup({
|
||||
headers: {
|
||||
"X-CSRF-TOKEN": $('meta[name="csrf-token"]').attr("content"),
|
||||
},
|
||||
});
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: base_url + "/delete_feedback/" + delete_id,
|
||||
data: {
|
||||
_method: 'post',
|
||||
},
|
||||
success: function(response) {
|
||||
console.log(response);
|
||||
toastr.success("Feedback Deleted Successfully");
|
||||
window.location.reload();
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
@endsection
|
||||
|
||||
@@ -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']);
|
||||
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user