bjir
This commit is contained in:
parent
48ce40d3ca
commit
0b6fa9fe34
|
@ -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>
|
||||||
|
|
|
@ -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() {
|
||||||
|
|
|
@ -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"
|
||||||
|
|
|
@ -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
|
|
@ -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');
|
||||||
|
|
Loading…
Reference in New Issue