MIF_E31220044/resources/views/admin/kriteria/index.blade.php

319 lines
18 KiB
PHP

@extends('layout.app')
@section('content')
<div id="main">
<header class="mb-3">
<a href="#" class="burger-btn d-block d-xl-none">
<i class="bi bi-justify fs-3"></i>
</a>
</header>
<div class="page-content">
<section class="row">
<div class="col-12">
<div class="card">
<div class="card-header d-flex justify-content-between align-items-center">
<h4 class="card-title">Tabel Bobot Kriteria</h4>
<a href="#" data-bs-toggle="modal" data-bs-target="#addModal"
class="btn btn-primary btn-icon-split mb-3">
<span class="icon text-white-50"><i class="fa fa-plus"></i></span>
<span class="text">Tambah Kriteria</span>
</a>
</div>
<div class="card-content">
<div class="card-body">
<p class="card-text">
Pengambil keputusan memberi bobot preferensi dari setiap kriteria dengan
masing-masing jenisnya (keuntungan/benefit atau biaya/cost):
</p>
</div>
<div class="table-responsive">
<table class="table table-striped mb-0">
<thead>
<tr>
<th>No</th>
<th>Nama Kriteria</th>
<th>Bobot</th>
<th>Jenis</th>
<th>Action</th>
</tr>
</thead>
<tbody>
@if (isset($kriterias) && count($kriterias) > 0)
@foreach ($kriterias as $index => $kriteria)
<tr>
<td>{{ $index + 1 }}</td>
<td>{{ $kriteria->nama }}</td>
<td>{{ number_format($kriteria->bobot, 2) }}</td>
<td>{{ ucfirst($kriteria->tipe) }}</td>
<!-- pastikan kolom db namanya 'tipe' -->
<td>
<a href="#" data-bs-toggle="modal"
data-bs-target="#updateModal" class="btn btn-warning mb-3"
onclick="updateData({{ $kriteria }})">
<i class="fa fa-edit"></i>
</a>
<a class="btn btn-danger mb-3" href="#" data-bs-toggle="modal"
data-bs-target="#deleteModal"
onclick="deleteData({{ $kriteria->id }})">
<i class="fa fa-trash"></i>
</a>
</td>
</tr>
@endforeach
@else
<tr>
<td colspan="5" class="text-center">Data kriteria tidak ditemukan</td>
</tr>
@endif
</tbody>
</table>
</div>
</div>
</div>
{{-- add modal --}}
<div class="modal fade" id="addModal" tabindex="-1" aria-labelledby="modalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<form id="addForm" method="POST" action="{{ route('kriteria.store') }}">
@csrf
<div class="modal-header">
<h5 class="modal-title" id="modalLabel">Tambah Kriteria</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="kriteriaName" class="form-label">Nama Kriteria</label>
<input type="text" name="nama" class="form-control" id="kriteriaName"
required>
</div>
<div class="mb-3">
<label for="kriteriaWeight" class="form-label">Bobot</label>
<input type="number" name="bobot" class="form-control" step="0.01"
min="0" max="1" id="kriteriaWeight" required>
<small class="text-muted">Nilai bobot antara 0 sampai 1</small>
</div>
<div class="mb-3">
<label for="kriteriaType" class="form-label">Jenis Kriteria</label>
<select name="jenis" class="form-select" id="kriteriaType" required>
<option value="">-- Pilih Jenis --</option>
<option value="benefit">Benefit</option>
<option value="cost">Cost</option>
</select>
</div>
</div>
<div class="modal-footer">
<button type="submit" class="btn btn-primary">Simpan</button>
</div>
</form>
</div>
</div>
</div>
{{-- update --}}
{{-- update modal --}}
<div class="modal fade" id="updateModal" tabindex="-1" aria-labelledby="updateModalLabel"
aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<form id="updateForm" method="POST" action="">
@csrf
@method('PUT')
<div class="modal-header">
<h5 class="modal-title" id="updateModalLabel">Update Kriteria</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="updateNama" class="form-label">Nama Kriteria</label>
<input type="text" name="nama" class="form-control" id="updateNama"
required>
</div>
<div class="mb-3">
<label for="updateBobot" class="form-label">Bobot</label>
<input type="number" name="bobot" class="form-control" step="0.01"
min="0" max="1" id="updateBobot" required>
<small class="text-muted">Nilai bobot antara 0 sampai 1</small>
</div>
<div class="mb-3">
<label for="updateJenis" class="form-label">Jenis Kriteria</label>
<select name="jenis" class="form-select" id="updateJenis" required>
<option value="">-- Pilih Jenis --</option>
<option value="benefit">Benefit</option>
<option value="cost">Cost</option>
</select>
</div>
</div>
<div class="modal-footer">
<button type="submit" class="btn btn-warning">Update</button>
</div>
</form>
</div>
</div>
</div>
{{-- delete --}}
<div class="modal fade" id="deleteModal" tabindex="-1" aria-labelledby="deleteModalLabel"
aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="deleteModalLabel">Hapus Kriteria</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal"
aria-label="Close"></button>
</div>
<div class="modal-body">
<p>Apakah Anda yakin ingin menghapus data kriteria ini?</p>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary"
data-bs-dismiss="modal">Batal</button>
<form id="deleteForm" action="" method="POST" style="display: inline;">
@csrf
@method('DELETE')
<button type="submit" class="btn btn-danger">Hapus</button>
</form>
</div>
</div>
</div>
</div>
<!-- Modal Tambah/Edit Kriteria -->
{{-- <div class="modal fade" id="kriteriaModal" tabindex="-1" aria-labelledby="modalLabel"
aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<form id="kriteriaForm" method="POST" action="{{ route('bobot.kriteria.store') }}">
@csrf
<input type="hidden" name="_method" id="methodInput" value="POST">
<div class="modal-header">
<h5 class="modal-title" id="modalLabel">Tambah Kriteria</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="kriteriaName" class="form-label">Nama Kriteria</label>
<input type="text" name="nama" class="form-control" id="kriteriaName"
required>
</div>
<div class="mb-3">
<label for="kriteriaWeight" class="form-label">Bobot</label>
<input type="number" name="bobot" class="form-control" step="0.01"
min="0" max="1" id="kriteriaWeight" required>
<small class="text-muted">Nilai bobot antara 0 sampai 1</small>
</div>
<div class="mb-3">
<label for="kriteriaType" class="form-label">Jenis Kriteria</label>
<select name="tipe" class="form-select" id="kriteriaType" required>
<option value="">-- Pilih Jenis --</option>
<option value="benefit">Benefit</option>
<option value="cost">Cost</option>
</select>
</div>
</div>
<div class="modal-footer">
<button type="submit" class="btn btn-primary" id="submitButton">Simpan</button>
</div>
</form>
</div>
</div>
</div> --}}
<!-- Notifikasi -->
@if (session('success'))
<div class="alert alert-success alert-dismissible fade show mt-3" role="alert">
{{ session('success') }}
<button type="button" class="btn-close" data-bs-dismiss="alert"
aria-label="Close"></button>
</div>
@endif
@if (session('error'))
<div class="alert alert-danger alert-dismissible fade show mt-3" role="alert">
{{ session('error') }}
<button type="button" class="btn-close" data-bs-dismiss="alert"
aria-label="Close"></button>
</div>
@endif
</div>
</section>
</div>
</div>
@endsection
@push('scripts')
{{-- <script>
function clearForm() {
document.getElementById('kriteriaForm').reset();
document.getElementById('methodInput').value = 'POST';
document.getElementById('kriteriaForm').action = "{{ route('bobot.kriteria.store') }}";
document.getElementById('modalLabel').innerText = 'Tambah Kriteria';
document.getElementById('submitButton').innerText = 'Simpan';
}
document.addEventListener('DOMContentLoaded', function() {
const editButtons = document.querySelectorAll('.edit-button');
editButtons.forEach(button => {
button.addEventListener('click', function() {
const id = this.dataset.id;
const nama = this.dataset.nama;
const bobot = this.dataset.bobot;
const tipe = this.dataset.tipe;
document.getElementById('kriteriaName').value = nama;
document.getElementById('kriteriaWeight').value = bobot;
document.getElementById('kriteriaType').value = tipe;
document.getElementById('methodInput').value = 'PUT';
document.getElementById('kriteriaForm').action = /admin/kriteria/${id};
document.getElementById('modalLabel').innerText = 'Edit Kriteria';
document.getElementById('submitButton').innerText = 'Update';
const modal = new bootstrap.Modal(document.getElementById('kriteriaModal'));
modal.show();
});
});
});
</script> --}}
<script>
function updateData(data) {
console.log('Data diterima:', data); // 👈 ini akan tampil di Console browser
const form = document.getElementById('updateForm');
form.action = "{{ route('kriteria.update', ':id') }}".replace(':id', data.id);
form.querySelector('#updateNama').value = data.nama;
form.querySelector('#updateBobot').value = data.bobot;
const jenisSelect = form.querySelector('#updateJenis');
jenisSelect.value = data.tipe.toLowerCase(); // gunakan "tipe"
}
function deleteData(id) {
const form = document.getElementById('deleteForm');
form.action = "{{ route('kriteria.destroy', ':id') }}".replace(':id', id);
}
</script>
@endpush