diff --git a/backend-baru/app/Http/Controllers/Api/ReviewController.php b/backend-baru/app/Http/Controllers/Api/ReviewController.php index 2e6fcd3..24143ab 100644 --- a/backend-baru/app/Http/Controllers/Api/ReviewController.php +++ b/backend-baru/app/Http/Controllers/Api/ReviewController.php @@ -11,8 +11,8 @@ class ReviewController extends Controller // Ambil semua ulasan public function index() { - $reviews = Review::all(); - return response()->json($reviews, 200); + $reviews = Review::latest()->paginate(10); + return view('admin.reviews.index', compact('reviews')); } diff --git a/backend-baru/app/Http/Controllers/TemplateController.php b/backend-baru/app/Http/Controllers/TemplateController.php index 38b6d4a..68745a5 100644 --- a/backend-baru/app/Http/Controllers/TemplateController.php +++ b/backend-baru/app/Http/Controllers/TemplateController.php @@ -4,6 +4,7 @@ namespace App\Http\Controllers; use App\Models\Template; use Illuminate\Http\Request; +use Illuminate\Support\Facades\Storage; class TemplateController extends Controller { @@ -20,15 +21,28 @@ class TemplateController extends Controller return view('admin.template.edit', compact('template')); } - // Update template (nama, harga, paket) + // Update template (nama, harga, paket, foto) public function update(Request $request, Template $template) { $validated = $request->validate([ 'nama_template' => 'required|string|max:255', 'harga' => 'required|numeric|min:0', 'paket' => 'required|in:starter,basic,premium', + 'foto' => 'nullable|image|mimes:jpg,jpeg,png|max:5120 ', ]); + // kalau ada upload foto baru + if ($request->hasFile('foto')) { + // hapus foto lama kalau ada + if ($template->foto && Storage::exists('public/' . $template->foto)) { + Storage::delete('public/' . $template->foto); + } + + // simpan foto baru + $path = $request->file('foto')->store('templates', 'public'); + $validated['foto'] = $path; + } + $template->update($validated); return redirect()->route('admin.template.index') diff --git a/backend-baru/resources/views/admin/kategori/index.blade.php b/backend-baru/resources/views/admin/kategori/index.blade.php index de0a23f..fbd3bb7 100644 --- a/backend-baru/resources/views/admin/kategori/index.blade.php +++ b/backend-baru/resources/views/admin/kategori/index.blade.php @@ -24,7 +24,7 @@ - + diff --git a/backend-baru/resources/views/pelanggans/create.blade.php b/backend-baru/resources/views/admin/pelanggans/create.blade.php similarity index 100% rename from backend-baru/resources/views/pelanggans/create.blade.php rename to backend-baru/resources/views/admin/pelanggans/create.blade.php diff --git a/backend-baru/resources/views/admin/pelanggans/index.blade.php b/backend-baru/resources/views/admin/pelanggans/index.blade.php new file mode 100644 index 0000000..3682534 --- /dev/null +++ b/backend-baru/resources/views/admin/pelanggans/index.blade.php @@ -0,0 +1,92 @@ +@extends('layouts.app') + +@section('title', 'Daftar Pesanan Pelanggan') + +@section('content') +
+
+

Daftar Pesanan

+
+ + + @if(session('success')) +
+ {{ session('success') }} +
+ @endif + + +
+
#No. Nama Deskripsi Foto
+ + + + + + + + + + + + + @forelse($pelanggans as $index => $pelanggan) + + + + + + + + + + @empty + + + + @endforelse + +
No.Nama PemesanEmailTemplateStatusHargaAksi
{{ $index + 1 }}{{ $pelanggan->nama_pemesan }}{{ $pelanggan->email }}{{ $pelanggan->template->nama_template ?? '-' }} + + {{ ucfirst($pelanggan->status) }} + + Rp {{ number_format($pelanggan->harga, 0, ',', '.') }} +
+ + + Detail + + + +
+ @csrf + @method('PUT') + +
+ + +
+ @csrf + @method('DELETE') + +
+
+
+ Belum ada pesanan. +
+ + +
+ {{ $pelanggans->links() }} +
+ +@endsection diff --git a/backend-baru/resources/views/pelanggans/show.blade.php b/backend-baru/resources/views/admin/pelanggans/show.blade.php similarity index 100% rename from backend-baru/resources/views/pelanggans/show.blade.php rename to backend-baru/resources/views/admin/pelanggans/show.blade.php diff --git a/backend-baru/resources/views/admin/reviews/index.blade.php b/backend-baru/resources/views/admin/reviews/index.blade.php new file mode 100644 index 0000000..476debd --- /dev/null +++ b/backend-baru/resources/views/admin/reviews/index.blade.php @@ -0,0 +1,94 @@ +@extends('layouts.app') + +@section('title', 'Manajemen Ulasan') + +@section('content') +
+
+

Daftar Ulasan

+
+ + + @if(session('success')) +
+ {{ session('success') }} +
+ @endif + + +
+ + + + + + + + + + + + + @forelse($reviews as $index => $review) + + + + + + + + + @empty + + + + @endforelse + +
No.NamaKotaPenilaianPesanAksi
{{ $index + 1 }}{{ $review->name }}{{ $review->city }} + @for ($s = 1; $s <= 5; $s++) + + @endfor + {{ $review->message }} +
+
+ @csrf + @method('DELETE') + +
+
+
+ Belum ada ulasan. +
+
+
+ + + +@endsection diff --git a/backend-baru/resources/views/admin/template/edit.blade.php b/backend-baru/resources/views/admin/template/edit.blade.php index 8780d4c..bb61202 100644 --- a/backend-baru/resources/views/admin/template/edit.blade.php +++ b/backend-baru/resources/views/admin/template/edit.blade.php @@ -20,7 +20,8 @@ @endif -
+ @csrf @method('PUT') @@ -59,6 +60,26 @@ @enderror + {{-- Foto / Gambar --}} +
+ +
+ @if($template->foto) + {{ $template->nama_template }} + @else +

Belum ada gambar

+ @endif +
+ + Kosongkan jika tidak ingin mengganti gambar. + @error('foto') +
{{ $message }}
+ @enderror +
+ {{-- Tombol --}} Batal diff --git a/backend-baru/resources/views/admin/template/index.blade.php b/backend-baru/resources/views/admin/template/index.blade.php index bf59d20..47a1a1c 100644 --- a/backend-baru/resources/views/admin/template/index.blade.php +++ b/backend-baru/resources/views/admin/template/index.blade.php @@ -20,7 +20,8 @@ - + + @@ -32,6 +33,18 @@ @forelse($templates as $index => $t) + + + + @@ -47,7 +60,7 @@ @empty - diff --git a/backend-baru/resources/views/layouts/app.blade.php b/backend-baru/resources/views/layouts/app.blade.php index 70cd9d5..379cb83 100644 --- a/backend-baru/resources/views/layouts/app.blade.php +++ b/backend-baru/resources/views/layouts/app.blade.php @@ -12,6 +12,7 @@ background-color: #f1f5f9; font-family: 'Poppins', sans-serif; } + .sidebar { width: 250px; height: 100vh; @@ -54,19 +55,23 @@
  • - Template + Template
  • - + Pelanggan
  • - - Ulasan + + Ulasan
  • + +

    Akun

    @@ -89,4 +94,5 @@ @yield('content') + diff --git a/backend-baru/resources/views/pelanggans/index.blade.php b/backend-baru/resources/views/pelanggans/index.blade.php deleted file mode 100644 index 8b33147..0000000 --- a/backend-baru/resources/views/pelanggans/index.blade.php +++ /dev/null @@ -1,58 +0,0 @@ -@extends('layouts.app') - -@section('title', 'Daftar Pesanan Pelanggan') - -@section('content') -
    -

    Daftar Pesanan

    - - + Buat Pesanan - - @if(session('success')) -
    {{ session('success') }}
    - @endif - -
    #No.Gambar Nama Kategori Paket
    {{ $index + 1 }} + @if($t->foto) + {{ $t->nama_template }} + @else + - + @endif + {{ $t->nama_template }} {{ $t->kategori->nama ?? '-' }} {{ ucfirst($t->paket) }}
    Belum ada template.
    - - - - - - - - - - - - - @forelse($pelanggans as $index => $pelanggan) - - - - - - - - - - @empty - - @endforelse - -
    #Nama PemesanEmailTemplateStatusHargaAksi
    {{ $index + 1 }}{{ $pelanggan->nama_pemesan }}{{ $pelanggan->email }}{{ $pelanggan->template->nama_template ?? '-' }} - - {{ ucfirst($pelanggan->status) }} - - Rp {{ number_format($pelanggan->harga, 0, ',', '.') }} - Detail - Edit - - @csrf - @method('DELETE') - - -
    Belum ada pesanan.
    - - {{ $pelanggans->links() }} - -@endsection diff --git a/backend-baru/routes/web.php b/backend-baru/routes/web.php index 502461c..3e0ab9b 100644 --- a/backend-baru/routes/web.php +++ b/backend-baru/routes/web.php @@ -5,7 +5,9 @@ use App\Http\Controllers\AdminAuthController; use App\Http\Controllers\DashboardController; use App\Http\Controllers\KategoriController; use App\Http\Controllers\TemplateController; +use App\Http\Controllers\PelangganController; use Illuminate\Support\Facades\Auth; +use App\Http\Controllers\Api\ReviewController; // logout umum Route::post('/logout', function () { @@ -38,9 +40,15 @@ Route::prefix('admin')->name('admin.')->group(function () { // Resource routes Route::resource('kategori', KategoriController::class); - // Template routes (index, edit, update) + // Template routes (index, edit, update) Route::get('/template', [TemplateController::class, 'index'])->name('template.index'); Route::get('/template/{template}/edit', [TemplateController::class, 'edit'])->name('template.edit'); Route::put('/template/{template}', [TemplateController::class, 'update'])->name('template.update'); + + // Pelanggan routes + Route::resource('pelanggan', PelangganController::class)->except(['create', 'edit']); + + // Ulasan routes + Route::resource('reviews', ReviewController::class)->except(['create', 'edit', 'update', 'show', 'store']); }); });