319 lines
18 KiB
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 |