This commit is contained in:
gitaysn 2025-05-25 03:53:25 +07:00
parent 48ce40d3ca
commit 0b6fa9fe34
5 changed files with 262 additions and 303 deletions

View File

@ -3,13 +3,20 @@
@section('title', 'Edit Data Kriteria') @section('title', 'Edit Data Kriteria')
@section('content') @section('content')
<div class="d-flex justify-content-between align-items-center mb-4"> <h1 class="h3 mb-4 text-grey-800">
<h1 class="h3 text-grey-800"> <i class="bi bi-database"></i> Data Kriteria
<i class="bi bi-pencil-square"></i> Edit Data Kriteria
</h1> </h1>
</div>
<div class="card shadow mb-4"> <div class="card shadow mb-4">
<div class="card-header bg-white d-flex justify-content-between align-items-center">
<span style="color: #006400;" class="fw-bold">
<i class="bi bi-pencil-square"></i> Edit Data Kriteria
</span>
<a href="{{ route('admin.kriteria.index') }}" class="btn"
style="background-color: #90ee90; border-color: #90ee90; color: black;">
<i class="bi bi-arrow-left"></i> Kembali
</a>
</div>
<div class="card-body"> <div class="card-body">
@if ($errors->any()) @if ($errors->any())
<div class="alert alert-danger"> <div class="alert alert-danger">
@ -24,37 +31,38 @@
<form action="{{ route('admin.kriteria.update', $kriteria->id) }}" method="POST"> <form action="{{ route('admin.kriteria.update', $kriteria->id) }}" method="POST">
@csrf @csrf
@method('PUT') @method('PUT')
<div class="mb-3"> <div class="row">
<div class="col-md-6 mb-3">
<label for="kode_kriteria" class="form-label">Kode Kriteria</label> <label for="kode_kriteria" class="form-label">Kode Kriteria</label>
<input type="text" class="form-control" id="kode_kriteria" name="kode_kriteria" <input type="text" class="form-control" id="kode_kriteria" name="kode_kriteria"
value="{{ $kriteria->kode_kriteria }}" required> value="{{ $kriteria->kode_kriteria }}" required>
</div> </div>
<div class="mb-3"> <div class="col-md-6 mb-3">
<label for="nama_kriteria" class="form-label">Nama Kriteria</label> <label for="nama_kriteria" class="form-label">Nama Kriteria</label>
<input type="text" class="form-control" id="nama_kriteria" name="nama_kriteria" <input type="text" class="form-control" id="nama_kriteria" name="nama_kriteria"
value="{{ $kriteria->nama_kriteria }}" required> value="{{ $kriteria->nama_kriteria }}" required>
</div> </div>
<div class="mb-3"> <div class="col-md-6 mb-3">
<label for="bobot" class="form-label">Bobot</label> <label for="bobot" class="form-label">Bobot</label>
<input type="number" step="0.01" class="form-control" id="bobot" name="bobot" <input type="number" step="0.01" class="form-control" id="bobot" name="bobot"
value="{{ $kriteria->bobot }}" required> value="{{ $kriteria->bobot }}" required>
</div> </div>
<div class="mb-3"> <div class="col-md-6 mb-3">
<label for="jenis" class="form-label">Jenis</label> <label for="jenis" class="form-label">Jenis</label>
<select class="form-control" id="jenis" name="jenis" required> <select class="form-control" id="jenis" name="jenis" required>
<option value="BENEFIT" {{ $kriteria->jenis == 'BENEFIT' ? 'selected' : '' }}>Benefit</option> <option value="BENEFIT" {{ $kriteria->jenis == 'BENEFIT' ? 'selected' : '' }}>Benefit</option>
<option value="COST" {{ $kriteria->jenis == 'COST' ? 'selected' : '' }}>Cost</option> <option value="COST" {{ $kriteria->jenis == 'COST' ? 'selected' : '' }}>Cost</option>
</select> </select>
</div> </div>
<button type="submit" class="btn" </div>
<button type="submit" class="btn me-3"
style="background-color: #006400; border-color: #006400; color: white;"> style="background-color: #006400; border-color: #006400; color: white;">
Simpan <i></i> Simpan
</button>
<button type="reset" class="btn"
style="background-color: #90ee90; border-color: #90ee90; color: black; margin-left: 10px;">
<i class="bi bi-arrow-clockwise"></i> Reset
</button> </button>
<a href="{{ route('admin.kriteria.index') }}" class="btn"
style="background-color: #90ee90; border-color: #90ee90; color: black;">
Kembali
</a>
</form> </form>
</div> </div>
</div> </div>

View File

@ -7,16 +7,18 @@
<h1 class="h3 text-grey-800"> <h1 class="h3 text-grey-800">
<i class="bi bi-box"></i> Data Kriteria <i class="bi bi-box"></i> Data Kriteria
</h1> </h1>
<a href="{{ route('admin.kriteria.create') }}" class="btn btn-success"
style="background-color: #006400; border-color: #004d00;">
<i></i> Tambah Data
</a>
</div> </div>
<div class="card shadow mb-4"> <div class="card shadow mb-4">
<div class="card-header py-3"> <div class="card-header py-3">
<h6 class="m-0 font-weight-bold" style="color: #006400;"> <h6 class="m-0 font-weight-bold d-flex justify-content-between align-items-center" style="color: #006400;">
<span>
<i class="bi bi-table"></i> Daftar Data Kriteria <i class="bi bi-table"></i> Daftar Data Kriteria
</span>
<a href="{{ route('admin.kriteria.create') }}" class="btn btn-success"
style="background-color: #006400; border-color: #004d00;">
<i class="bi bi-plus"></i> Tambah Data
</a>
</h6> </h6>
</div> </div>
@ -48,15 +50,13 @@
<i class="bi bi-pencil"></i> <i class="bi bi-pencil"></i>
</a> </a>
<form action="{{ route('admin.kriteria.destroy', $item->id) }}" method="POST" <form id="delete-form-{{ $item->id }}" action="{{ route('admin.kriteria.destroy', $item->id) }}" method="POST" class="d-inline">
class="d-inline" onsubmit="return confirm('Yakin ingin menghapus data ini?')">
@csrf @csrf
@method('DELETE') @method('DELETE')
<button type="submit" class="btn btn-danger btn-sm mx-1"> <button type="button" class="btn btn-danger btn-sm mx-1 delete-button" data-id="{{ $item->id }}">
<i class="bi bi-trash"></i> <i class="bi bi-trash"></i>
</button> </button>
</form> </form>
</div> </div>
</td> </td>
</tr> </tr>
@ -82,6 +82,18 @@
</script> </script>
@endif @endif
@if (session('error'))
<script>
Swal.fire({
title: 'Error!',
text: '{{ session('error') }}',
icon: 'error',
confirmButtonText: 'OK',
confirmButtonColor: '#d33'
});
</script>
@endif
<script> <script>
document.addEventListener('DOMContentLoaded', function() { document.addEventListener('DOMContentLoaded', function() {

View File

@ -35,24 +35,28 @@
<div class="card-body"> <div class="card-body">
<form method="GET" id="entriesForm" action="{{ route('admin.pakaian.index') }}" <form method="GET" id="entriesForm" action="{{ route('admin.pakaian.index') }}"
class="d-flex justify-content-between align-items-center mb-3 flex-wrap gap-3"> class="d-flex justify-content-between align-items-center mb-3 flex-wrap">
{{-- KIRI --}}
<div class="d-flex align-items-center"> <div class="d-flex align-items-center">
<label for="entriesPerPage" class="me-2">Show</label> <label for="entriesPerPage" class="me-2 mb-0">Show</label>
<select name="entries" id="entriesPerPage" class="form-select me-3" <select name="entries" id="entriesPerPage" class="form-select form-select-sm me-2"
onchange="document.getElementById('entriesForm').submit()"> onchange="document.getElementById('entriesForm').submit()">
<option value="10" {{ request('entries') == 10 ? 'selected' : '' }}>10</option> <option value="10" {{ request('entries') == 10 ? 'selected' : '' }}>10</option>
<option value="25" {{ request('entries') == 25 ? 'selected' : '' }}>25</option> <option value="25" {{ request('entries') == 25 ? 'selected' : '' }}>25</option>
<option value="50" {{ request('entries') == 50 ? 'selected' : '' }}>50</option> <option value="50" {{ request('entries') == 50 ? 'selected' : '' }}>50</option>
</select> </select>
<span class="me-3">entries</span> <span class="mb-0">entries</span>
</div> </div>
<div class="d-flex align-items-center gap-2"> {{-- KANAN --}}
<label for="search" class="me-2">Search:</label> <div class="d-flex align-items-center">
<input type="text" name="search" id="search" class="form-control" placeholder="Search..." <label for="search" class="me-2 mb-0">Search:</label>
<input type="text" name="search" id="search" class="form-control form-control-sm me-3" placeholder="Search..."
value="{{ request('search') }}"> value="{{ request('search') }}">
<button type="submit" class="btn btn-primary">Cari</button> <button type="submit" class="btn btn-sm btn-primary">Cari</button>
</div> </div>
</form> </form>
<div class="table-responsive"> <div class="table-responsive">
@ -79,23 +83,20 @@
Tidak ada gambar Tidak ada gambar
@endif @endif
</td> </td>
<td>{{ $item->nama_pakaian }}</td> <td>{{ $item->nama_pakaian }}</td>
<td class="text-center"> <td class="text-center">
<!-- Tombol Info --> <!-- Tombol Info -->
<button class="btn btn-info btn-sm" data-bs-toggle="modal" <button class="btn btn-info btn-sm" data-bs-toggle="modal"
data-bs-target="#infoModal{{ $item->id }}"> data-bs-target="#infoModal{{ $item->id }}">
Info <i class="bi bi-info-circle-fill"></i>
</button> </button>
<!-- Tombol Edit --> <!-- Tombol Edit -->
<button class="btn btn-warning btn-sm" data-bs-toggle="modal" <button class="btn btn-warning btn-sm" data-bs-toggle="modal"
data-bs-target="#modalEdit{{ $item->id }}"> data-bs-target="#modalEdit{{ $item->id }}">
Edit <i class="bi bi-pencil"></i>
</button> </button>
@foreach ($alternatif as $item) @foreach ($alternatif as $item)
<!-- Modal Info --> <!-- Modal Info -->
<div class="modal fade" id="infoModal{{ $item->id }}" tabindex="-1" <div class="modal fade" id="infoModal{{ $item->id }}" tabindex="-1"
@ -161,23 +162,22 @@
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<!-- Modal Tambah Data Pakaian --> <!-- Modal Tambah Data Pakaian -->
<div class="modal fade" id="modalTambah" tabindex="-1" aria-labelledby="modalTambahLabel" aria-hidden="true"> <div class="modal fade" id="modalTambah" tabindex="-1" aria-labelledby="modalTambahLabel" aria-hidden="true">
<div class="modal-dialog"> <div class="modal-dialog modal-dialog-centered"> <!-- Centered vertically -->
<div class="modal-content"> <div class="modal-content rounded-3 shadow-sm border-0">
<!-- Header --> <!-- Header -->
<div class="modal-header"> <div class="modal-header border-bottom-0">
<h5 class="modal-title" id="modalTambahLabel"> <h5 class="modal-title fw-semibold" id="modalTambahLabel">
<i class="bi bi-plus-circle"></i> Tambah Pakaian <i class="bi bi-plus-circle me-1"></i> Tambah Pakaian
</h5> </h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button> <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Tutup"></button>
</div> </div>
<!-- Body --> <!-- Body -->
<div class="modal-body"> <div class="modal-body pt-0">
<form action="{{ route('admin.pakaian.store') }}" method="POST" enctype="multipart/form-data"> <form action="{{ route('admin.pakaian.store') }}" method="POST" enctype="multipart/form-data">
@csrf @csrf
@ -196,16 +196,21 @@
<input type="file" class="form-control" name="img" accept="image/*"> <input type="file" class="form-control" name="img" accept="image/*">
</div> </div>
<div class="d-flex justify-content-end gap-2"> <!-- Footer Buttons -->
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Batal</button> <div class="modal-footer border-top-0 d-flex justify-content-end gap-2 pt-0">
<button type="submit" class="btn btn-success">Simpan</button> <button type="button" class="btn" style="background-color: #90ee90; color: black; border-radius: 5px; padding: 6px 20px;" data-bs-dismiss="modal">
<i></i> Batal
</button>
<button type="submit" class="btn" style="background-color: #064e3b; color: white; border-radius: 5px; padding: 6px 20px;">
<i></i> Simpan
</button>
</div> </div>
</form> </form>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
@foreach ($alternatif as $item) @foreach ($alternatif as $item)
<!-- Modal Edit --> <!-- Modal Edit -->
<div class="modal fade" id="modalEdit{{ $item->id }}" tabindex="-1" <div class="modal fade" id="modalEdit{{ $item->id }}" tabindex="-1"

View File

@ -8,85 +8,88 @@
<h1 class="h3 text-grey-800"> <h1 class="h3 text-grey-800">
<i class="bi bi-boxes"></i> Data Sub Kriteria untuk: {{ $kriteria->nama_kriteria }} <i class="bi bi-boxes"></i> Data Sub Kriteria untuk: {{ $kriteria->nama_kriteria }}
</h1> </h1>
<button type="button" class="btn btn-success mb-3" data-bs-toggle="modal" data-bs-target="#tambahSubkriteriaModal"
style="background-color: #006400; border-color: #006400; color: white;">
<i></i> Tambah Data
</button>
</div> </div>
<div class="card shadow mb-4"> <div class="card shadow mb-4">
<div class="card-header py-3 d-flex justify-content-between align-items-center"> <div class="card-header py-3">
<h6 class="m-0 font-weight-bold" style="color: #006400;"> <h6 class="m-0 font-weight-bold d-flex justify-content-between align-items-center" style="color: #006400;">
<span>
<i class="bi bi-table"></i> Daftar Sub Kriteria <i class="bi bi-table"></i> Daftar Sub Kriteria
</span>
<div class="d-flex gap-2">
<button type="button" class="btn btn-success" data-bs-toggle="modal" data-bs-target="#tambahSubkriteriaModal"
style="background-color: #006400; border-color: #004d00;">
<i class="bi bi-plus"></i> Tambah Data
</button>
</div>
</h6> </h6>
</div> </div>
<div class="card shadow mb-4">
<div class="card-header bg-white d-flex justify-content-between align-items-center">
<span class="fw-bold text-success">
Subkriteria untuk: {{ $kriteria->nama_kriteria }}
</span>
<a href="{{ route('admin.kriteria.index') }}" class="btn btn-sm btn-success">
<i class="bi bi-arrow-left"></i> Kembali
</a>
</div>
<div class="card-body"> <div class="card-body">
<table class="table table-bordered"> <div class="table-responsive">
<table class="table table-bordered" id="dataTable" width="100%" cellspacing="0">
<thead> <thead>
<tr> <tr>
<th>Nama Subkriteria</th> <th class="text-center">No</th>
<th>Nilai</th> <th class="text-center">Nama Subkriteria</th>
<th>Min Harga</th> <th class="text-center">Nilai</th>
<th>Max Harga</th> <th class="text-center">Min Harga</th>
<th>Aksi</th> <th class="text-center">Max Harga</th>
<th class="text-center">Aksi</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
@forelse ($subkriterias as $sub) @forelse ($subkriterias as $key => $sub)
<tr> <tr>
<td>{{ $sub->nama_sub }}</td> <td class="text-center">{{ $key + 1 }}</td>
<td>{{ $sub->nilai }}</td> <td class="text-center">{{ $sub->nama_sub }}</td>
<td>{{ $sub->min_harga ?? '-' }}</td> <td class="text-center">{{ $sub->nilai }}</td>
<td>{{ $sub->max_harga ?? '-' }}</td> <td class="text-center">{{ $sub->min_harga ?? '-' }}</td>
<td> <td class="text-center">{{ $sub->max_harga ?? '-' }}</td>
<!-- Tombol Edit --> <td class="text-center">
<button class="btn btn-sm btn-primary" data-bs-toggle="modal" <div class="d-flex justify-content-center">
data-bs-target="#editModal{{ $sub->id }}">Edit</button> <button class="btn btn-warning btn-sm mx-1" data-bs-toggle="modal"
data-bs-target="#editModal{{ $sub->id }}">
<i class="bi bi-pencil"></i>
</button>
<!-- Tombol Delete --> <form id="delete-form-{{ $sub->id }}" action="{{ route('admin.subkriteria.destroy', $sub->id) }}" method="POST" class="d-inline">
<button class="btn btn-sm btn-danger" data-bs-toggle="modal" @csrf
data-bs-target="#deleteModal{{ $sub->id }}">Hapus</button> @method('DELETE')
<button type="button" class="btn btn-danger btn-sm mx-1 delete-button" data-id="{{ $sub->id }}">
<i class="bi bi-trash"></i>
</button>
</form>
</div>
</td> </td>
</tr> </tr>
@empty @empty
<tr> <tr>
<td colspan="4" class="text-center">Belum ada subkriteria</td> <td colspan="6" class="text-center">Belum ada subkriteria</td>
</tr> </tr>
@endforelse @endforelse
</tbody> </tbody>
</table> </table>
</div> </div>
</div> </div>
</div> </div>
<!-- Modal Tambah Subkriteria --> <!-- Modal Tambah Subkriteria -->
<div class="modal fade" id="tambahSubkriteriaModal" tabindex="-1" aria-labelledby="tambahSubkriteriaLabel" <div class="modal fade" id="tambahSubkriteriaModal" tabindex="-1" aria-labelledby="tambahSubkriteriaLabel" aria-hidden="true">
aria-hidden="true"> <div class="modal-dialog modal-dialog-centered modal-md">
<div class="modal-dialog"> <div class="modal-content border-0 shadow-sm">
<div class="modal-content">
<form action="{{ route('admin.subkriteria.store') }}" method="POST"> <form action="{{ route('admin.subkriteria.store') }}" method="POST">
@csrf @csrf
<input type="hidden" name="kriteria_id" value="{{ $kriteria->id }}"> <input type="hidden" name="kriteria_id" value="{{ $kriteria->id }}">
<div class="modal-header"> <div class="modal-header border-bottom-0">
<h5 class="modal-title" id="tambahSubkriteriaLabel">Tambah Subkriteria</h5> <h5 class="modal-title fw-bold" id="tambahSubkriteriaLabel">Tambah Subkriteria</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Tutup"></button> <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Tutup"></button>
</div> </div>
<div class="modal-body"> <div class="modal-body">
<div class="mb-3"> <div class="mb-3">
<label for="kriteria_id" class="form-label">Pilih Kriteria</label> <label for="kriteria_id" class="form-label">Pilih Kriteria</label>
<select class="form-select" id="kriteria_id" name="kriteria_id" required <select class="form-select" id="kriteria_id" name="kriteria_id" required onchange="toggleHargaFields()">
onchange="toggleHargaFields()">
<option value="">-- Pilih Kriteria --</option> <option value="">-- Pilih Kriteria --</option>
@foreach ($kriterias as $kriteria) @foreach ($kriterias as $kriteria)
<option value="{{ $kriteria->id }}" data-nama="{{ $kriteria->nama_kriteria }}"> <option value="{{ $kriteria->id }}" data-nama="{{ $kriteria->nama_kriteria }}">
@ -103,8 +106,7 @@
<div class="mb-3"> <div class="mb-3">
<label for="nilai" class="form-label">Nilai</label> <label for="nilai" class="form-label">Nilai</label>
<input type="number" class="form-control" id="nilai" name="nilai" step="1" <input type="number" class="form-control" id="nilai" name="nilai" step="1" required>
required>
</div> </div>
<div id="harga-fields" style="display: none;"> <div id="harga-fields" style="display: none;">
@ -119,6 +121,111 @@
</div> </div>
</div> </div>
</div> </div>
<div class="modal-footer border-top-0">
<button type="button" class="btn" style="background-color: #90ee90; color: #000; border: none; border-radius: 0.5rem;" data-bs-dismiss="modal">
<i></i> Batal
</button>
<button type="submit" class="btn btn-success" style="background-color: #14532d; border-color: #14532d;">
Simpan
</button>
</div>
</form>
</div>
</div>
</div>
{{-- Modal Edit --}}
@foreach ($subkriterias as $sub)
<div class="modal fade" id="editModal{{ $sub->id }}" tabindex="-1" aria-labelledby="editModalLabel{{ $sub->id }}" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered">
<div class="modal-content">
<form action="{{ route('admin.subkriteria.update', $sub->id) }}" method="POST">
@csrf
@method('PUT')
<div class="modal-header">
<h5 class="modal-title" id="editModalLabel{{ $sub->id }}">Edit Subkriteria</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Tutup"></button>
</div>
<div class="modal-body">
<div class="mb-3">
<label for="kriteria_id" class="form-label">Pilih Kriteria</label>
<select class="form-select kriteria-select" data-id="{{ $sub->id }}" name="kriteria_id" required>
@foreach ($kriterias as $kriteria)
<option value="{{ $kriteria->id }}" data-nama="{{ $kriteria->nama_kriteria }}"
{{ $sub->kriteria_id == $kriteria->id ? 'selected' : '' }}>
{{ $kriteria->nama_kriteria }}
</option>
@endforeach
</select>
</div>
<div class="mb-3">
<label for="nama_sub" class="form-label">Nama Subkriteria</label>
<input type="text" class="form-control" name="nama_sub" value="{{ $sub->nama_sub }}" required>
</div>
<div class="mb-3">
<label for="nilai" class="form-label">Nilai</label>
<input type="number" class="form-control" name="nilai" value="{{ $sub->nilai }}" required>
</div>
<div class="harga-fields" id="hargaFields{{ $sub->id }}" style="display: none;">
<div class="mb-3">
<label for="min_harga" class="form-label">Min Harga</label>
<input type="number" class="form-control" name="min_harga" value="{{ $sub->min_harga }}">
</div>
<div class="mb-3">
<label for="max_harga" class="form-label">Max Harga</label>
<input type="number" class="form-control" name="max_harga" value="{{ $sub->max_harga }}">
</div>
</div>
</div>
<div class="modal-footer border-top-0">
<button type="button" class="btn" style="background-color: #90ee90; color: #000; border: none; border-radius: 0.5rem;" data-bs-dismiss="modal">
<i"></i> Batal
</button>
<button type="submit" class="btn" style="background-color: #14532d; color: #fff; border: none; border-radius: 0.5rem;">
Simpan
</button>
</div>
</form>
</div>
</div>
</div>
@endforeach
<!-- SweetAlert CDN -->
<script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script>
@if (session('success'))
<script>
Swal.fire({
title: 'Berhasil!',
text: '{{ session('success') }}',
icon: 'success',
timer: 3000,
showConfirmButton: false
});
</script>
@endif
@if (session('error'))
<script>
Swal.fire({
title: 'Error!',
text: '{{ session('error') }}',
icon: 'error',
confirmButtonText: 'OK',
confirmButtonColor: '#d33'
});
</script>
@endif
<script> <script>
function toggleHargaFields() { function toggleHargaFields() {
const select = document.getElementById('kriteria_id'); const select = document.getElementById('kriteria_id');
@ -136,73 +243,32 @@
document.getElementById('max_harga').required = false; document.getElementById('max_harga').required = false;
} }
} }
</script>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Batal</button>
<button type="submit" class="btn btn-primary">Simpan</button>
</div>
</form>
</div>
</div>
</div>
{{-- Modal Edit --}}
@foreach ($subkriterias as $sub)
<div class="modal fade" id="editModal{{ $sub->id }}" tabindex="-1"
aria-labelledby="editModalLabel{{ $sub->id }}" aria-hidden="true">
<div class="modal-dialog">
<form action="{{ route('admin.subkriteria.update', $sub->id) }}" method="POST">
@csrf
@method('PUT')
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="editModalLabel{{ $sub->id }}">Edit Subkriteria</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal"
aria-label="Close"></button>
</div>
<div class="modal-body">
<div class="mb-3">
<label for="kriteria_id" class="form-label">Kriteria</label>
<select class="form-select kriteria-select" data-id="{{ $sub->id }}"
name="kriteria_id" required>
@foreach ($kriterias as $kriteria)
<option value="{{ $kriteria->id }}" data-nama="{{ $kriteria->nama_kriteria }}"
{{ $sub->kriteria_id == $kriteria->id ? 'selected' : '' }}>
{{ $kriteria->nama_kriteria }}
</option>
@endforeach
</select>
</div>
<div class="mb-3">
<label for="nama_sub" class="form-label">Nama Subkriteria</label>
<input type="text" class="form-control" name="nama_sub" value="{{ $sub->nama_sub }}"
required>
</div>
<div class="mb-3">
<label for="nilai" class="form-label">Nilai</label>
<input type="number" class="form-control" name="nilai" value="{{ $sub->nilai }}"
required>
</div>
<div class="harga-fields" id="hargaFields{{ $sub->id }}" style="display: none;">
<div class="mb-3">
<label for="min_harga" class="form-label">Min Harga</label>
<input type="number" class="form-control" name="min_harga"
value="{{ $sub->min_harga }}">
</div>
<div class="mb-3">
<label for="max_harga" class="form-label">Max Harga</label>
<input type="number" class="form-control" name="max_harga"
value="{{ $sub->max_harga }}">
</div>
</div>
<script>
document.addEventListener('DOMContentLoaded', function() { document.addEventListener('DOMContentLoaded', function() {
// Loop semua select.kriteria-select // Handle delete buttons with SweetAlert
const deleteButtons = document.querySelectorAll('.delete-button');
deleteButtons.forEach(button => {
button.addEventListener('click', function() {
const id = this.getAttribute('data-id');
Swal.fire({
title: 'Apakah Anda yakin?',
text: 'Data ini akan dihapus secara permanen!',
icon: 'warning',
showCancelButton: true,
confirmButtonColor: '#d33',
cancelButtonColor: '#3085d6',
confirmButtonText: 'Ya, hapus!',
cancelButtonText: 'Batal'
}).then((result) => {
if (result.isConfirmed) {
document.getElementById('delete-form-' + id).submit();
}
});
});
});
// Handle edit modal harga fields toggle
document.querySelectorAll('.kriteria-select').forEach(select => { document.querySelectorAll('.kriteria-select').forEach(select => {
const id = select.dataset.id; const id = select.dataset.id;
const hargaFields = document.getElementById(`hargaFields${id}`); const hargaFields = document.getElementById(`hargaFields${id}`);
@ -226,136 +292,4 @@
}); });
</script> </script>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Batal</button>
<button type="submit" class="btn btn-success">Simpan Perubahan</button>
</div>
</div>
</form>
</div>
</div>
@endforeach
@foreach ($subkriterias as $sub)
<!-- Modal Delete -->
<div class="modal fade" id="deleteModal{{ $sub->id }}" tabindex="-1"
aria-labelledby="deleteModalLabel{{ $sub->id }}" aria-hidden="true">
<div class="modal-dialog">
<form action="{{ route('admin.subkriteria.destroy', $sub->id) }}" method="POST">
@csrf
@method('DELETE')
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="deleteModalLabel{{ $sub->id }}">Konfirmasi Hapus</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal"
aria-label="Close"></button>
</div>
<div class="modal-body">
Apakah Anda yakin ingin menghapus subkriteria "<strong>{{ $sub->nama_sub }}</strong>"?
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Batal</button>
<button type="submit" class="btn btn-danger">Ya, Hapus</button>
</div>
</div>
</form>
</div>
</div>
@endforeach
<!-- Tambahkan SweetAlert2 -->
<script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script>
<script>
// Fungsi untuk menampilkan SweetAlert sukses
function showSuccessMessage(message) {
Swal.fire({
icon: 'success',
title: 'Berhasil!',
text: message,
showConfirmButton: false,
timer: 1500
});
}
// SweetAlert untuk konfirmasi hapus data
document.addEventListener('DOMContentLoaded', function() {
const forms = document.querySelectorAll('.form-hapus');
forms.forEach(form => {
form.addEventListener('submit', function(e) {
e.preventDefault(); // Cegah submit langsung
Swal.fire({
title: 'Yakin ingin menghapus?',
text: "Data tidak bisa dikembalikan!",
icon: 'warning',
showCancelButton: true,
confirmButtonColor: '#d33',
cancelButtonColor: '#3085d6',
confirmButtonText: 'Ya, hapus!',
cancelButtonText: 'Batal'
}).then((result) => {
if (result.isConfirmed) {
form.submit(); // Lanjutkan submit jika dikonfirmasi
}
});
});
});
});
// Menampilkan SweetAlert saat ada pesan sukses dari server
document.addEventListener("DOMContentLoaded", function() {
const successMessage = "{{ session('success') }}";
if (successMessage.trim() !== "") {
showSuccessMessage(successMessage);
}
});
// SweetAlert setelah menambah data
document.addEventListener("DOMContentLoaded", function() {
const successMessage = "{{ session('success') }}";
if (successMessage.trim() !== "") {
showSuccessMessage(successMessage);
}
});
// SweetAlert setelah edit data
document.getElementById('formEdit')?.addEventListener('submit', function(event) {
event.preventDefault();
let form = this;
let url = form.action;
let formData = new FormData(form);
fetch(url, {
method: 'POST', // atau 'PUT' jika pakai PUT
body: formData,
headers: {
'X-CSRF-TOKEN': document.querySelector('meta[name="csrf-token"]').content,
'X-Requested-With': 'XMLHttpRequest'
},
})
.then(response => response.json())
.then(data => {
console.log(data);
if (data.success) {
Swal.fire({
icon: 'success',
title: 'Berhasil!',
text: 'Data berhasil diperbarui!',
showConfirmButton: false,
timer: 1500
}).then(() => {
location.reload();
});
} else {
Swal.fire("Gagal!", data.message || "Data tidak dapat diperbarui.", "error");
}
})
.catch(error => {
console.log("Error di fetch:", error);
Swal.fire("Error!", "Terjadi kesalahan saat mengupdate data.", "error");
});
});
</script>
@endsection @endsection

View File

@ -27,13 +27,13 @@ Route::get('/', [HomeController::class, 'index'])->name('home');
Route::post('/proses-rekomendasi', [HomeController::class, 'simpankuisionerdanrekomendasi'])->name('proses.rekomendasi'); Route::post('/proses-rekomendasi', [HomeController::class, 'simpankuisionerdanrekomendasi'])->name('proses.rekomendasi');
// Jika user sudah login, arahkan ke dashboard // // Jika user sudah login, arahkan ke dashboard
Route::get('/dashboard', function () { // Route::get('/dashboard', function () {
if (!Auth::check()) { // if (!Auth::check()) {
return redirect()->route('login'); // return redirect()->route('login');
} // }
return view('admin.pages.dashboard.index'); // return view('admin.pages.dashboard.index');
})->name('dashboard'); // })->name('dashboard');
// Login & Register Routes // Login & Register Routes
Route::get('/login', [AuthController::class, 'showLogin'])->name('login'); Route::get('/login', [AuthController::class, 'showLogin'])->name('login');