109 lines
5.4 KiB
PHP
109 lines
5.4 KiB
PHP
@extends('layouts.app')
|
|
|
|
@section('title', 'Manajemen Ulasan')
|
|
|
|
@section('content')
|
|
<div class="container mx-auto py-4">
|
|
<!-- Header -->
|
|
<div class="flex justify-between items-center mb-4">
|
|
<h3 class="text-xl font-bold">Manajemen Ulasan</h3>
|
|
</div>
|
|
|
|
<!-- Alert sukses -->
|
|
@if (session('success'))
|
|
<div class="bg-green-100 border border-green-400 text-green-700 px-4 py-3 rounded mb-4" role="alert">
|
|
{{ session('success') }}
|
|
</div>
|
|
@endif
|
|
|
|
<!-- Tabel Ulasan -->
|
|
<div class="bg-white rounded-lg shadow-sm">
|
|
<div class="p-4 overflow-x-auto">
|
|
<table class="w-full table-fixed text-left border border-gray-300 border-collapse">
|
|
<thead class="bg-gray-100">
|
|
<tr>
|
|
<th class="p-2 border border-gray-300 w-[50px] text-center">No</th>
|
|
<th class="p-2 border border-gray-300 w-[150px]">Nama</th>
|
|
<th class="p-2 border border-gray-300 w-[120px]">Kota</th>
|
|
<th class="p-2 border border-gray-300 w-[120px] text-center">Rating</th>
|
|
<th class="p-2 border border-gray-300 w-[350px]">Pesan</th>
|
|
<th class="p-2 border border-gray-300 w-[120px] text-center">Aksi</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
@forelse ($reviews as $key => $review)
|
|
<tr>
|
|
<td class="p-2 border border-gray-300 text-center truncate">{{ $key + 1 }}</td>
|
|
<td class="p-2 border border-gray-300 truncate">{{ $review->name }}</td>
|
|
<td class="p-2 border border-gray-300 truncate">{{ $review->city }}</td>
|
|
<td class="p-2 border border-gray-300 text-center">
|
|
@for ($s = 1; $s <= 5; $s++)
|
|
<i
|
|
class="bi {{ $s <= $review->rating ? 'bi-star-fill text-yellow-500' : 'bi-star text-gray-400' }}"></i>
|
|
@endfor
|
|
</td>
|
|
<td class="p-2 border border-gray-300 truncate" title="{{ $review->message }}">
|
|
{{ $review->message }}
|
|
</td>
|
|
<td class="p-2 border border-gray-300 text-center">
|
|
<div class="flex justify-center space-x-2">
|
|
<button class="text-red-600 hover:underline flex items-center btn-delete"
|
|
data-action="{{ route('admin.reviews.destroy', $review->id) }}"
|
|
data-name="{{ $review->name }}">
|
|
<i class="bi bi-trash mr-1"></i> Hapus
|
|
</button>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
@empty
|
|
<tr>
|
|
<td colspan="6" class="p-2 text-center text-gray-500 border border-gray-300">
|
|
Belum ada ulasan
|
|
</td>
|
|
</tr>
|
|
@endforelse
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<!-- Modal Konfirmasi Hapus -->
|
|
<div class="modal fade" id="confirmDeleteModal" tabindex="-1">
|
|
<div class="modal-dialog">
|
|
<form id="deleteForm" method="POST" class="modal-content">
|
|
@csrf
|
|
@method('DELETE')
|
|
<div class="modal-header">
|
|
<h5 class="modal-title text-lg font-medium">Hapus Ulasan</h5>
|
|
<button type="button" class="btn-close" data-bs-dismiss="modal"></button>
|
|
</div>
|
|
<div class="modal-body">
|
|
Apakah Anda yakin ingin menghapus ulasan dari <strong id="deleteName">—</strong>?
|
|
</div>
|
|
<div class="modal-footer">
|
|
<button type="button" class="bg-gray-300 text-black px-3 py-1 rounded"
|
|
data-bs-dismiss="modal">Batal</button>
|
|
<button type="submit" class="bg-red-600 text-white px-3 py-1 rounded">Ya, Hapus</button>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
|
|
<script>
|
|
document.addEventListener('DOMContentLoaded', () => {
|
|
const modalEl = document.getElementById('confirmDeleteModal');
|
|
const deleteForm = document.getElementById('deleteForm');
|
|
const deleteName = document.getElementById('deleteName');
|
|
|
|
document.querySelectorAll('.btn-delete').forEach(btn => {
|
|
btn.addEventListener('click', () => {
|
|
deleteForm.action = btn.dataset.action;
|
|
deleteName.textContent = btn.dataset.name || 'pengguna ini';
|
|
new bootstrap.Modal(modalEl).show();
|
|
});
|
|
});
|
|
});
|
|
</script>
|
|
@endsection
|