bjir
This commit is contained in:
parent
48ce40d3ca
commit
0b6fa9fe34
|
@ -3,13 +3,20 @@
|
|||
@section('title', 'Edit Data Kriteria')
|
||||
|
||||
@section('content')
|
||||
<div class="d-flex justify-content-between align-items-center mb-4">
|
||||
<h1 class="h3 text-grey-800">
|
||||
<i class="bi bi-pencil-square"></i> Edit Data Kriteria
|
||||
</h1>
|
||||
</div>
|
||||
<h1 class="h3 mb-4 text-grey-800">
|
||||
<i class="bi bi-database"></i> Data Kriteria
|
||||
</h1>
|
||||
|
||||
<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">
|
||||
@if ($errors->any())
|
||||
<div class="alert alert-danger">
|
||||
|
@ -24,38 +31,39 @@
|
|||
<form action="{{ route('admin.kriteria.update', $kriteria->id) }}" method="POST">
|
||||
@csrf
|
||||
@method('PUT')
|
||||
<div class="mb-3">
|
||||
<label for="kode_kriteria" class="form-label">Kode Kriteria</label>
|
||||
<input type="text" class="form-control" id="kode_kriteria" name="kode_kriteria"
|
||||
value="{{ $kriteria->kode_kriteria }}" required>
|
||||
<div class="row">
|
||||
<div class="col-md-6 mb-3">
|
||||
<label for="kode_kriteria" class="form-label">Kode Kriteria</label>
|
||||
<input type="text" class="form-control" id="kode_kriteria" name="kode_kriteria"
|
||||
value="{{ $kriteria->kode_kriteria }}" required>
|
||||
</div>
|
||||
<div class="col-md-6 mb-3">
|
||||
<label for="nama_kriteria" class="form-label">Nama Kriteria</label>
|
||||
<input type="text" class="form-control" id="nama_kriteria" name="nama_kriteria"
|
||||
value="{{ $kriteria->nama_kriteria }}" required>
|
||||
</div>
|
||||
<div class="col-md-6 mb-3">
|
||||
<label for="bobot" class="form-label">Bobot</label>
|
||||
<input type="number" step="0.01" class="form-control" id="bobot" name="bobot"
|
||||
value="{{ $kriteria->bobot }}" required>
|
||||
</div>
|
||||
<div class="col-md-6 mb-3">
|
||||
<label for="jenis" class="form-label">Jenis</label>
|
||||
<select class="form-control" id="jenis" name="jenis" required>
|
||||
<option value="BENEFIT" {{ $kriteria->jenis == 'BENEFIT' ? 'selected' : '' }}>Benefit</option>
|
||||
<option value="COST" {{ $kriteria->jenis == 'COST' ? 'selected' : '' }}>Cost</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mb-3">
|
||||
<label for="nama_kriteria" class="form-label">Nama Kriteria</label>
|
||||
<input type="text" class="form-control" id="nama_kriteria" name="nama_kriteria"
|
||||
value="{{ $kriteria->nama_kriteria }}" required>
|
||||
</div>
|
||||
<div class="mb-3">
|
||||
<label for="bobot" class="form-label">Bobot</label>
|
||||
<input type="number" step="0.01" class="form-control" id="bobot" name="bobot"
|
||||
value="{{ $kriteria->bobot }}" required>
|
||||
</div>
|
||||
<div class="mb-3">
|
||||
<label for="jenis" class="form-label">Jenis</label>
|
||||
<select class="form-control" id="jenis" name="jenis" required>
|
||||
<option value="BENEFIT" {{ $kriteria->jenis == 'BENEFIT' ? 'selected' : '' }}>Benefit</option>
|
||||
<option value="COST" {{ $kriteria->jenis == 'COST' ? 'selected' : '' }}>Cost</option>
|
||||
</select>
|
||||
|
||||
</div>
|
||||
<button type="submit" class="btn"
|
||||
<button type="submit" class="btn me-3"
|
||||
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>
|
||||
<a href="{{ route('admin.kriteria.index') }}" class="btn"
|
||||
style="background-color: #90ee90; border-color: #90ee90; color: black;">
|
||||
Kembali
|
||||
</a>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
@endsection
|
|
@ -7,18 +7,20 @@
|
|||
<h1 class="h3 text-grey-800">
|
||||
<i class="bi bi-box"></i> Data Kriteria
|
||||
</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 class="card shadow mb-4">
|
||||
<div class="card-header py-3">
|
||||
<h6 class="m-0 font-weight-bold" style="color: #006400;">
|
||||
<i class="bi bi-table"></i> Daftar Data Kriteria
|
||||
<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
|
||||
</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>
|
||||
|
||||
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<div class="table-responsive">
|
||||
|
@ -48,15 +50,13 @@
|
|||
<i class="bi bi-pencil"></i>
|
||||
</a>
|
||||
|
||||
<form action="{{ route('admin.kriteria.destroy', $item->id) }}" method="POST"
|
||||
class="d-inline" onsubmit="return confirm('Yakin ingin menghapus data ini?')">
|
||||
<form id="delete-form-{{ $item->id }}" action="{{ route('admin.kriteria.destroy', $item->id) }}" method="POST" class="d-inline">
|
||||
@csrf
|
||||
@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>
|
||||
</button>
|
||||
</form>
|
||||
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
|
@ -82,6 +82,18 @@
|
|||
</script>
|
||||
@endif
|
||||
|
||||
@if (session('error'))
|
||||
<script>
|
||||
Swal.fire({
|
||||
title: 'Error!',
|
||||
text: '{{ session('error') }}',
|
||||
icon: 'error',
|
||||
confirmButtonText: 'OK',
|
||||
confirmButtonColor: '#d33'
|
||||
});
|
||||
</script>
|
||||
@endif
|
||||
|
||||
|
||||
<script>
|
||||
document.addEventListener('DOMContentLoaded', function() {
|
||||
|
|
|
@ -35,25 +35,29 @@
|
|||
|
||||
<div class="card-body">
|
||||
<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">
|
||||
<div class="d-flex align-items-center">
|
||||
<label for="entriesPerPage" class="me-2">Show</label>
|
||||
<select name="entries" id="entriesPerPage" class="form-select me-3"
|
||||
onchange="document.getElementById('entriesForm').submit()">
|
||||
<option value="10" {{ request('entries') == 10 ? 'selected' : '' }}>10</option>
|
||||
<option value="25" {{ request('entries') == 25 ? 'selected' : '' }}>25</option>
|
||||
<option value="50" {{ request('entries') == 50 ? 'selected' : '' }}>50</option>
|
||||
</select>
|
||||
<span class="me-3">entries</span>
|
||||
</div>
|
||||
class="d-flex justify-content-between align-items-center mb-3 flex-wrap">
|
||||
|
||||
<div class="d-flex align-items-center gap-2">
|
||||
<label for="search" class="me-2">Search:</label>
|
||||
<input type="text" name="search" id="search" class="form-control" placeholder="Search..."
|
||||
value="{{ request('search') }}">
|
||||
<button type="submit" class="btn btn-primary">Cari</button>
|
||||
</div>
|
||||
</form>
|
||||
{{-- KIRI --}}
|
||||
<div class="d-flex align-items-center">
|
||||
<label for="entriesPerPage" class="me-2 mb-0">Show</label>
|
||||
<select name="entries" id="entriesPerPage" class="form-select form-select-sm me-2"
|
||||
onchange="document.getElementById('entriesForm').submit()">
|
||||
<option value="10" {{ request('entries') == 10 ? 'selected' : '' }}>10</option>
|
||||
<option value="25" {{ request('entries') == 25 ? 'selected' : '' }}>25</option>
|
||||
<option value="50" {{ request('entries') == 50 ? 'selected' : '' }}>50</option>
|
||||
</select>
|
||||
<span class="mb-0">entries</span>
|
||||
</div>
|
||||
|
||||
{{-- KANAN --}}
|
||||
<div class="d-flex align-items-center">
|
||||
<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') }}">
|
||||
<button type="submit" class="btn btn-sm btn-primary">Cari</button>
|
||||
</div>
|
||||
|
||||
</form>
|
||||
|
||||
<div class="table-responsive">
|
||||
<table class="table table-bordered">
|
||||
|
@ -79,23 +83,20 @@
|
|||
Tidak ada gambar
|
||||
@endif
|
||||
</td>
|
||||
|
||||
<td>{{ $item->nama_pakaian }}</td>
|
||||
<td class="text-center">
|
||||
<!-- Tombol Info -->
|
||||
<button class="btn btn-info btn-sm" data-bs-toggle="modal"
|
||||
data-bs-target="#infoModal{{ $item->id }}">
|
||||
Info
|
||||
<i class="bi bi-info-circle-fill"></i>
|
||||
</button>
|
||||
|
||||
<!-- Tombol Edit -->
|
||||
<button class="btn btn-warning btn-sm" data-bs-toggle="modal"
|
||||
data-bs-target="#modalEdit{{ $item->id }}">
|
||||
Edit
|
||||
<i class="bi bi-pencil"></i>
|
||||
</button>
|
||||
|
||||
|
||||
|
||||
@foreach ($alternatif as $item)
|
||||
<!-- Modal Info -->
|
||||
<div class="modal fade" id="infoModal{{ $item->id }}" tabindex="-1"
|
||||
|
@ -161,23 +162,22 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<!-- Modal Tambah Data Pakaian -->
|
||||
<div class="modal fade" id="modalTambah" tabindex="-1" aria-labelledby="modalTambahLabel" aria-hidden="true">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-dialog modal-dialog-centered"> <!-- Centered vertically -->
|
||||
<div class="modal-content rounded-3 shadow-sm border-0">
|
||||
<!-- Header -->
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title" id="modalTambahLabel">
|
||||
<i class="bi bi-plus-circle"></i> Tambah Pakaian
|
||||
<div class="modal-header border-bottom-0">
|
||||
<h5 class="modal-title fw-semibold" id="modalTambahLabel">
|
||||
<i class="bi bi-plus-circle me-1"></i> Tambah Pakaian
|
||||
</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>
|
||||
|
||||
<!-- Body -->
|
||||
<div class="modal-body">
|
||||
<div class="modal-body pt-0">
|
||||
<form action="{{ route('admin.pakaian.store') }}" method="POST" enctype="multipart/form-data">
|
||||
@csrf
|
||||
|
||||
|
@ -196,16 +196,21 @@
|
|||
<input type="file" class="form-control" name="img" accept="image/*">
|
||||
</div>
|
||||
|
||||
<div class="d-flex justify-content-end gap-2">
|
||||
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Batal</button>
|
||||
<button type="submit" class="btn btn-success">Simpan</button>
|
||||
</div>
|
||||
<!-- Footer Buttons -->
|
||||
<div class="modal-footer border-top-0 d-flex justify-content-end gap-2 pt-0">
|
||||
<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>
|
||||
</form>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@foreach ($alternatif as $item)
|
||||
<!-- Modal Edit -->
|
||||
<div class="modal fade" id="modalEdit{{ $item->id }}" tabindex="-1"
|
||||
|
|
|
@ -8,85 +8,88 @@
|
|||
<h1 class="h3 text-grey-800">
|
||||
<i class="bi bi-boxes"></i> Data Sub Kriteria untuk: {{ $kriteria->nama_kriteria }}
|
||||
</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 class="card shadow mb-4">
|
||||
<div class="card-header py-3 d-flex justify-content-between align-items-center">
|
||||
<h6 class="m-0 font-weight-bold" style="color: #006400;">
|
||||
<i class="bi bi-table"></i> Daftar Sub Kriteria
|
||||
<div class="card-header py-3">
|
||||
<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
|
||||
</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>
|
||||
</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">
|
||||
<table class="table table-bordered">
|
||||
<div class="card-body">
|
||||
<div class="table-responsive">
|
||||
<table class="table table-bordered" id="dataTable" width="100%" cellspacing="0">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Nama Subkriteria</th>
|
||||
<th>Nilai</th>
|
||||
<th>Min Harga</th>
|
||||
<th>Max Harga</th>
|
||||
<th>Aksi</th>
|
||||
<th class="text-center">No</th>
|
||||
<th class="text-center">Nama Subkriteria</th>
|
||||
<th class="text-center">Nilai</th>
|
||||
<th class="text-center">Min Harga</th>
|
||||
<th class="text-center">Max Harga</th>
|
||||
<th class="text-center">Aksi</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@forelse ($subkriterias as $sub)
|
||||
@forelse ($subkriterias as $key => $sub)
|
||||
<tr>
|
||||
<td>{{ $sub->nama_sub }}</td>
|
||||
<td>{{ $sub->nilai }}</td>
|
||||
<td>{{ $sub->min_harga ?? '-' }}</td>
|
||||
<td>{{ $sub->max_harga ?? '-' }}</td>
|
||||
<td>
|
||||
<!-- Tombol Edit -->
|
||||
<button class="btn btn-sm btn-primary" data-bs-toggle="modal"
|
||||
data-bs-target="#editModal{{ $sub->id }}">Edit</button>
|
||||
<td class="text-center">{{ $key + 1 }}</td>
|
||||
<td class="text-center">{{ $sub->nama_sub }}</td>
|
||||
<td class="text-center">{{ $sub->nilai }}</td>
|
||||
<td class="text-center">{{ $sub->min_harga ?? '-' }}</td>
|
||||
<td class="text-center">{{ $sub->max_harga ?? '-' }}</td>
|
||||
<td class="text-center">
|
||||
<div class="d-flex justify-content-center">
|
||||
<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 -->
|
||||
<button class="btn btn-sm btn-danger" data-bs-toggle="modal"
|
||||
data-bs-target="#deleteModal{{ $sub->id }}">Hapus</button>
|
||||
<form id="delete-form-{{ $sub->id }}" action="{{ route('admin.subkriteria.destroy', $sub->id) }}" method="POST" class="d-inline">
|
||||
@csrf
|
||||
@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>
|
||||
</tr>
|
||||
@empty
|
||||
<tr>
|
||||
<td colspan="4" class="text-center">Belum ada subkriteria</td>
|
||||
<td colspan="6" class="text-center">Belum ada subkriteria</td>
|
||||
</tr>
|
||||
@endforelse
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Modal Tambah Subkriteria -->
|
||||
<div class="modal fade" id="tambahSubkriteriaModal" tabindex="-1" aria-labelledby="tambahSubkriteriaLabel"
|
||||
aria-hidden="true">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal fade" id="tambahSubkriteriaModal" tabindex="-1" aria-labelledby="tambahSubkriteriaLabel" aria-hidden="true">
|
||||
<div class="modal-dialog modal-dialog-centered modal-md">
|
||||
<div class="modal-content border-0 shadow-sm">
|
||||
<form action="{{ route('admin.subkriteria.store') }}" method="POST">
|
||||
@csrf
|
||||
<input type="hidden" name="kriteria_id" value="{{ $kriteria->id }}">
|
||||
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title" id="tambahSubkriteriaLabel">Tambah Subkriteria</h5>
|
||||
<div class="modal-header border-bottom-0">
|
||||
<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>
|
||||
</div>
|
||||
|
||||
<div class="modal-body">
|
||||
<div class="mb-3">
|
||||
<label for="kriteria_id" class="form-label">Pilih Kriteria</label>
|
||||
<select class="form-select" id="kriteria_id" name="kriteria_id" required
|
||||
onchange="toggleHargaFields()">
|
||||
<select class="form-select" id="kriteria_id" name="kriteria_id" required onchange="toggleHargaFields()">
|
||||
<option value="">-- Pilih Kriteria --</option>
|
||||
@foreach ($kriterias as $kriteria)
|
||||
<option value="{{ $kriteria->id }}" data-nama="{{ $kriteria->nama_kriteria }}">
|
||||
|
@ -103,8 +106,7 @@
|
|||
|
||||
<div class="mb-3">
|
||||
<label for="nilai" class="form-label">Nilai</label>
|
||||
<input type="number" class="form-control" id="nilai" name="nilai" step="1"
|
||||
required>
|
||||
<input type="number" class="form-control" id="nilai" name="nilai" step="1" required>
|
||||
</div>
|
||||
|
||||
<div id="harga-fields" style="display: none;">
|
||||
|
@ -119,53 +121,38 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
function toggleHargaFields() {
|
||||
const select = document.getElementById('kriteria_id');
|
||||
const selectedOption = select.options[select.selectedIndex];
|
||||
const namaKriteria = selectedOption.getAttribute('data-nama');
|
||||
const hargaFields = document.getElementById('harga-fields');
|
||||
|
||||
if (namaKriteria === 'Harga') {
|
||||
hargaFields.style.display = 'block';
|
||||
document.getElementById('min_harga').required = true;
|
||||
document.getElementById('max_harga').required = true;
|
||||
} else {
|
||||
hargaFields.style.display = 'none';
|
||||
document.getElementById('min_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 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">
|
||||
<form action="{{ route('admin.subkriteria.update', $sub->id) }}" method="POST">
|
||||
@csrf
|
||||
@method('PUT')
|
||||
<div class="modal-content">
|
||||
<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="Close"></button>
|
||||
<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">Kriteria</label>
|
||||
<select class="form-select kriteria-select" data-id="{{ $sub->id }}"
|
||||
name="kriteria_id" required>
|
||||
<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' : '' }}>
|
||||
|
@ -177,117 +164,96 @@
|
|||
|
||||
<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>
|
||||
<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>
|
||||
<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 }}">
|
||||
<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 }}">
|
||||
<input type="number" class="form-control" name="max_harga" value="{{ $sub->max_harga }}">
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
document.addEventListener('DOMContentLoaded', function() {
|
||||
// Loop semua select.kriteria-select
|
||||
document.querySelectorAll('.kriteria-select').forEach(select => {
|
||||
const id = select.dataset.id;
|
||||
const hargaFields = document.getElementById(`hargaFields${id}`);
|
||||
|
||||
function toggleHargaFields() {
|
||||
const selectedOption = select.options[select.selectedIndex];
|
||||
const namaKriteria = selectedOption.getAttribute('data-nama');
|
||||
if (namaKriteria === 'Harga') {
|
||||
hargaFields.style.display = 'block';
|
||||
} else {
|
||||
hargaFields.style.display = 'none';
|
||||
}
|
||||
}
|
||||
|
||||
// Tampilkan sesuai kondisi saat pertama kali modal muncul
|
||||
toggleHargaFields();
|
||||
|
||||
// Tambahkan event saat value berubah
|
||||
select.addEventListener('change', toggleHargaFields);
|
||||
});
|
||||
});
|
||||
</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 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>
|
||||
</div>
|
||||
</form>
|
||||
</form>
|
||||
</div>
|
||||
</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 -->
|
||||
|
||||
<!-- SweetAlert CDN -->
|
||||
<script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script>
|
||||
|
||||
<script>
|
||||
// Fungsi untuk menampilkan SweetAlert sukses
|
||||
function showSuccessMessage(message) {
|
||||
@if (session('success'))
|
||||
<script>
|
||||
Swal.fire({
|
||||
icon: 'success',
|
||||
title: 'Berhasil!',
|
||||
text: message,
|
||||
showConfirmButton: false,
|
||||
timer: 1500
|
||||
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>
|
||||
function toggleHargaFields() {
|
||||
const select = document.getElementById('kriteria_id');
|
||||
const selectedOption = select.options[select.selectedIndex];
|
||||
const namaKriteria = selectedOption.getAttribute('data-nama');
|
||||
const hargaFields = document.getElementById('harga-fields');
|
||||
|
||||
if (namaKriteria === 'Harga') {
|
||||
hargaFields.style.display = 'block';
|
||||
document.getElementById('min_harga').required = true;
|
||||
document.getElementById('max_harga').required = true;
|
||||
} else {
|
||||
hargaFields.style.display = 'none';
|
||||
document.getElementById('min_harga').required = false;
|
||||
document.getElementById('max_harga').required = false;
|
||||
}
|
||||
}
|
||||
|
||||
// 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
|
||||
// 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: 'Yakin ingin menghapus?',
|
||||
text: "Data tidak bisa dikembalikan!",
|
||||
title: 'Apakah Anda yakin?',
|
||||
text: 'Data ini akan dihapus secara permanen!',
|
||||
icon: 'warning',
|
||||
showCancelButton: true,
|
||||
confirmButtonColor: '#d33',
|
||||
|
@ -296,66 +262,34 @@
|
|||
cancelButtonText: 'Batal'
|
||||
}).then((result) => {
|
||||
if (result.isConfirmed) {
|
||||
form.submit(); // Lanjutkan submit jika dikonfirmasi
|
||||
document.getElementById('delete-form-' + id).submit();
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
// Menampilkan SweetAlert saat ada pesan sukses dari server
|
||||
document.addEventListener("DOMContentLoaded", function() {
|
||||
const successMessage = "{{ session('success') }}";
|
||||
if (successMessage.trim() !== "") {
|
||||
showSuccessMessage(successMessage);
|
||||
}
|
||||
});
|
||||
// Handle edit modal harga fields toggle
|
||||
document.querySelectorAll('.kriteria-select').forEach(select => {
|
||||
const id = select.dataset.id;
|
||||
const hargaFields = document.getElementById(`hargaFields${id}`);
|
||||
|
||||
// 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();
|
||||
});
|
||||
function toggleHargaFields() {
|
||||
const selectedOption = select.options[select.selectedIndex];
|
||||
const namaKriteria = selectedOption.getAttribute('data-nama');
|
||||
if (namaKriteria === 'Harga') {
|
||||
hargaFields.style.display = 'block';
|
||||
} else {
|
||||
Swal.fire("Gagal!", data.message || "Data tidak dapat diperbarui.", "error");
|
||||
hargaFields.style.display = 'none';
|
||||
}
|
||||
})
|
||||
.catch(error => {
|
||||
console.log("Error di fetch:", error);
|
||||
Swal.fire("Error!", "Terjadi kesalahan saat mengupdate data.", "error");
|
||||
});
|
||||
}
|
||||
|
||||
// Tampilkan sesuai kondisi saat pertama kali modal muncul
|
||||
toggleHargaFields();
|
||||
|
||||
// Tambahkan event saat value berubah
|
||||
select.addEventListener('change', toggleHargaFields);
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
@endsection
|
||||
@endsection
|
|
@ -27,13 +27,13 @@ Route::get('/', [HomeController::class, 'index'])->name('home');
|
|||
Route::post('/proses-rekomendasi', [HomeController::class, 'simpankuisionerdanrekomendasi'])->name('proses.rekomendasi');
|
||||
|
||||
|
||||
// Jika user sudah login, arahkan ke dashboard
|
||||
Route::get('/dashboard', function () {
|
||||
if (!Auth::check()) {
|
||||
return redirect()->route('login');
|
||||
}
|
||||
return view('admin.pages.dashboard.index');
|
||||
})->name('dashboard');
|
||||
// // Jika user sudah login, arahkan ke dashboard
|
||||
// Route::get('/dashboard', function () {
|
||||
// if (!Auth::check()) {
|
||||
// return redirect()->route('login');
|
||||
// }
|
||||
// return view('admin.pages.dashboard.index');
|
||||
// })->name('dashboard');
|
||||
|
||||
// Login & Register Routes
|
||||
Route::get('/login', [AuthController::class, 'showLogin'])->name('login');
|
||||
|
|
Loading…
Reference in New Issue