add fitur view

This commit is contained in:
Muzakki Parsaoran Siregar 2025-09-02 11:38:04 +07:00
parent 43168c4273
commit bb5315fad5
3 changed files with 119 additions and 22 deletions

View File

@ -11,7 +11,7 @@ class FiturController extends Controller
public function index() public function index()
{ {
$fiturs = Fitur::all(); $fiturs = Fitur::all();
return response()->json($fiturs); return view('admin.fitur.index', compact('fiturs'));
} }
// Menambah fitur baru // Menambah fitur baru
@ -21,21 +21,11 @@ class FiturController extends Controller
'nama_fitur' => 'required|string|max:255', 'nama_fitur' => 'required|string|max:255',
]); ]);
$fitur = Fitur::create([ Fitur::create([
'nama_fitur' => $request->nama_fitur, 'nama_fitur' => $request->nama_fitur,
]); ]);
return response()->json([ return redirect()->route('admin.fitur.index')->with('success', 'Fitur berhasil ditambahkan');
'message' => 'Fitur berhasil ditambahkan',
'data' => $fitur,
]);
}
// Menampilkan detail fitur
public function show($id)
{
$fitur = Fitur::findOrFail($id);
return response()->json($fitur);
} }
// Edit / update fitur // Edit / update fitur
@ -50,10 +40,7 @@ class FiturController extends Controller
'nama_fitur' => $request->nama_fitur, 'nama_fitur' => $request->nama_fitur,
]); ]);
return response()->json([ return redirect()->route('admin.fitur.index')->with('success', 'Fitur berhasil diperbarui');
'message' => 'Fitur berhasil diperbarui',
'data' => $fitur,
]);
} }
// Hapus fitur // Hapus fitur
@ -62,8 +49,6 @@ class FiturController extends Controller
$fitur = Fitur::findOrFail($id); $fitur = Fitur::findOrFail($id);
$fitur->delete(); $fitur->delete();
return response()->json([ return redirect()->route('admin.fitur.index')->with('success', 'Fitur berhasil dihapus');
'message' => 'Fitur berhasil dihapus',
]);
} }
} }

View File

@ -0,0 +1,107 @@
@extends('layouts.app')
@section('title', 'Manajemen Fitur')
@section('content')
<div class="container">
<!-- Header -->
<div class="d-flex justify-content-between align-items-center mb-4">
<h3 class="fw-bold">Manajemen Fitur</h3>
<button class="btn btn-primary" data-bs-toggle="modal" data-bs-target="#modalTambah">
<i class="bi bi-plus-lg"></i> Tambah Fitur
</button>
</div>
<!-- Tabel Fitur -->
<div class="card shadow-sm border-0">
<div class="card-body">
<table class="table table-hover align-middle">
<thead>
<tr>
<th width="50">No</th>
<th>Nama Fitur</th>
<th width="180">Aksi</th>
</tr>
</thead>
<tbody>
@forelse ($fiturs as $key => $fitur)
<tr>
<td>{{ $key + 1 }}</td>
<td>{{ $fitur->nama_fitur }}</td>
<td>
<button class="btn btn-warning btn-sm" data-bs-toggle="modal"
data-bs-target="#modalEdit{{ $fitur->id }}">
<i class="bi bi-pencil"></i>
</button>
<form action="{{ route('admin.fitur.destroy', $fitur->id) }}"
method="POST"
class="d-inline"
onsubmit="return confirm('Yakin mau hapus fitur ini?')">
@csrf
@method('DELETE')
<button class="btn btn-danger btn-sm">
<i class="bi bi-trash"></i>
</button>
</form>
</td>
</tr>
@empty
<tr>
<td colspan="3" class="text-center text-muted">Belum ada fitur</td>
</tr>
@endforelse
</tbody>
</table>
</div>
</div>
</div>
<!-- Modal Tambah -->
<div class="modal fade" id="modalTambah" tabindex="-1">
<div class="modal-dialog">
<form action="{{ route('admin.fitur.store') }}" method="POST" class="modal-content">
@csrf
<div class="modal-header">
<h5 class="modal-title">Tambah Fitur</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal"></button>
</div>
<div class="modal-body">
<div class="mb-3">
<label>Nama Fitur</label>
<input type="text" name="nama_fitur" class="form-control" required>
</div>
</div>
<div class="modal-footer">
<button class="btn btn-secondary" data-bs-dismiss="modal">Batal</button>
<button class="btn btn-primary">Simpan</button>
</div>
</form>
</div>
</div>
<!-- Modal Edit -->
@foreach ($fiturs as $fitur)
<div class="modal fade" id="modalEdit{{ $fitur->id }}" tabindex="-1">
<div class="modal-dialog">
<form action="{{ route('admin.fitur.update', $fitur->id) }}" method="POST" class="modal-content">
@csrf
@method('PUT')
<div class="modal-header">
<h5 class="modal-title">Edit Fitur</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal"></button>
</div>
<div class="modal-body">
<div class="mb-3">
<label>Nama Fitur</label>
<input type="text" name="nama_fitur" value="{{ $fitur->nama_fitur }}" class="form-control" required>
</div>
</div>
<div class="modal-footer">
<button class="btn btn-secondary" data-bs-dismiss="modal">Batal</button>
<button class="btn btn-primary">Simpan Perubahan</button>
</div>
</form>
</div>
</div>
@endforeach
@endsection

View File

@ -48,6 +48,11 @@ Route::prefix('admin')->name('admin.')->middleware('auth:admin')->group(function
use App\Http\Controllers\FiturController; use App\Http\Controllers\FiturController;
Route::resource('fitur', FiturController::class); Route::prefix('admin')->name('admin.')->group(function () {
Route::get('/fitur', [FiturController::class, 'index'])->name('fitur.index');
Route::post('/fitur', [FiturController::class, 'store'])->name('fitur.store');
Route::get('/fitur/{id}', [FiturController::class, 'show'])->name('fitur.show');
Route::put('/fitur/{id}', [FiturController::class, 'update'])->name('fitur.update');
Route::delete('/fitur/{id}', [FiturController::class, 'destroy'])->name('fitur.destroy');
});