관리-도구
편집 파일: reviews.blade.php
@extends('layouts.apps') @section('content') <!--start main wrapper--> <main class="main-wrapper"> <div class="main-content"> <!--breadcrumb--> <div class="page-breadcrumb d-none d-sm-flex align-items-center mb-3"> <div class="breadcrumb-title pe-3">AK Furniture</div> <div class="ps-3"> <nav aria-label="breadcrumb"> <ol class="breadcrumb mb-0 p-0"> <li class="breadcrumb-item"><a href="javascript:;"><i class="bx bx-home-alt"></i></a> </li> <li class="breadcrumb-item active" aria-current="page">Reviews</li> </ol> </nav> </div> </div> <!--end breadcrumb--> @if(session('success')) <div class="alert alert-success alert-dismissible fade show" role="alert"> <strong>Success!</strong> {{ session('success') }} <button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button> </div> @endif @if(session('message')) <div class="alert alert-info alert-dismissible fade show" role="alert"> {{ session('message') }} <button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button> </div> @endif @if(session('error')) <div class="alert alert-danger alert-dismissible fade show" role="alert"> <strong>Error:</strong> {{ session('error') }} <button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button> </div> @endif @if($errors->any()) <div class="alert alert-danger alert-dismissible fade show" role="alert"> <ul class="mb-0"> @foreach($errors->all() as $error) <li>{{ $error }}</li> @endforeach </ul> <button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button> </div> @endif <div class="row g-3"> <div class="col-auto"> <div class="position-relative"> <input class="form-control px-5" type="search" placeholder="Search Customers"> <span class="material-icons-outlined position-absolute ms-3 translate-middle-y start-0 top-50 fs-5">search</span> </div> </div> <div class="col-auto flex-grow-1 overflow-auto"> <div class="btn-group position-static"> <!-- <div class="btn-group position-static"> <button type="button" class="btn btn-filter dropdown-toggle px-4" data-bs-toggle="dropdown" aria-expanded="false"> More Filters </button> <ul class="dropdown-menu"> <li><a class="dropdown-item" href="javascript:;">Action</a></li> <li><a class="dropdown-item" href="javascript:;">Another action</a></li> <li> <hr class="dropdown-divider"> </li> <li><a class="dropdown-item" href="javascript:;">Something else here</a></li> </ul> </div> --> </div> </div> <div class="col-auto"> <div class="d-flex align-items-center gap-2 justify-content-lg-end"> </div> </div> </div><!--end row--> <div class="card mt-4"> <div class="card-body"> <div class="customer-table"> <h4 class="mb-3">Reviews for: <span class="text-primary">{{ $product->title }}</span></h4> <div class="table-responsive white-space-nowrap"> <table class="table align-middle"> <thead class="table-light"> <tr> <th><input class="form-check-input" type="checkbox"></th> <th>#</th> <th>Name</th> <th>Rating</th> <th>Review</th> <th>Action</th> </tr> </thead> <tbody> @forelse($product->reviews as $review) <tr> <td><input class="form-check-input" type="checkbox"></td> <td>{{ $loop->iteration }}</td> <td>{{ $review->name }}</td> <td>{{ $review->rating }}</td> <td>{{ $review->review }}</td> <td> <div class="d-flex align-items-center gap-3"> <!-- Toggle Switch --> <div class="form-check form-switch"> <input class="form-check-input toggle-block" type="checkbox" data-id="{{ $review->id }}" {{ $review->is_blocked ? '' : 'checked' }}> <label class="form-check-label"> {{ $review->is_blocked ? 'Blocked' : 'Active' }} </label> </div> <!-- Delete Button --> <button class="btn btn-sm btn-danger delete-review" data-id="{{ $review->id }}"> Delete </button> </div> </td> </tr> @empty <tr> <td colspan="6" class="text-center text-muted">No reviews found for this product.</td> </tr> @endforelse </tbody> </table> </div> </div> </div> </div> <script> document.querySelectorAll('.toggle-block').forEach(el => { el.addEventListener('change', function() { let reviewId = this.getAttribute('data-id'); fetch(`/reviews/${reviewId}/toggle-block`, { method: 'POST', headers: { 'X-CSRF-TOKEN': '{{ csrf_token() }}', 'Accept': 'application/json', 'Content-Type': 'application/json', } }).then(res => res.json()) .then(data => { if (data.success) { alert(`Review has been ${data.status}`); } }); }); }); </script> <!-- <script> document.querySelectorAll('.delete-review').forEach(btn => { btn.addEventListener('click', function() { let id = this.getAttribute('data-id'); if (!confirm("Are you sure you want to delete this review?")) return; fetch(`/reviews/${id}`, { method: 'DELETE', headers: { 'X-CSRF-TOKEN': '{{ csrf_token() }}', 'Accept': 'application/json' } }) .then(res => res.json()) .then(data => { if (data.success) { alert(data.message); location.reload(); } else { alert("Error deleting review!"); } }); }); }); </script> --> </div> </main> <!--end main wrapper--> <!--start overlay--> <div class="overlay btn-toggle"></div> <!--end overlay--> <!--start footer--> @endsection