MIF_E31210181/resources/views/pages/tables/Mahasiswa.blade.php

264 lines
10 KiB
PHP

@extends('layout.master')
@push('plugin-styles')
<!-- <link rel="stylesheet" href="https://cdn.datatables.net/1.11.5/css/jquery.dataTables.min.css"> -->
<!-- Tambahkan Bootstrap CSS jika belum dimuat -->
<!-- <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css"> -->
@endpush
@section('content')
<div class="row">
<div class="col-lg-12 grid-margin stretch-card">
<div class="card">
<div class="card-body">
<h4 class="card-title">Table Mahasiswa</h4>
<!-- Gunakan atribut data-toggle dan data-target untuk memicu modal -->
<button type="button" class="btn btn-primary mt-3" data-toggle="modal" data-target="#modalTambahMahasiswa">Tambah Data</button>
<button type="button" class="btn btn-primary mt-3" data-toggle="modal" data-target="#modaladdMahasiswa">Tambah Mahasiswa</button>
<div class="table-responsive">
<table id="mahasiswa-table" class="table" style="width:100%">
<thead>
<tr>
<th>Nama Lengkap</th>
<th>Email</th>
<th>NIM</th>
<th>No.Telp</th>
<th>Angkatan</th>
<th>Aksi</th>
</tr>
</thead>
</table>
</div>
</div>
</div>
</div>
</div>
<!-- Modal Tambah Data Mahasiswa -->
<div class="modal fade" id="modaladdMahasiswa" tabindex="-1" role="dialog" aria-labelledby="modalTambahMahasiswaLabel" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="modalTambahMahasiswaLabel">Tambah Data Mahasiswa</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
<form id="formaddMahasiswa" action="{{ route('mahasiswa.store') }}" method="POST">
@csrf
<div class="form-group">
<label for="nim">NIM</label>
<input type="text" class="form-control" id="nim" name="nim" required>
</div>
<div class="form-group">
<label for="name">Nama</label>
<input type="text" class="form-control" id="name" name="name" required>
</div>
<div class="form-group">
<label for="angkatan">Angkatan</label>
<input type="number" class="form-control" id="angkatan" name="angkatan" required>
</div>
<button type="submit" class="btn btn-primary">Simpan</button>
</form>
</div>
</div>
</div>
</div>
<!-- Modal Edit Data Mahasiswa -->
<div class="modal fade" id="modalEditMahasiswa" tabindex="-1" role="dialog" aria-labelledby="modalEditMahasiswaLabel" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="modalEditMahasiswaLabel">Edit Data Mahasiswa</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
<form id="formEditMahasiswa" method="POST" action="/mahasiswa/{id}/update">
@csrf
@method('PUT')
<input type="hidden" id="edit_id" name="edit_id">
<div class="form-group">
<label for="edit_nim">NIM</label>
<input type="text" class="form-control" id="edit_nim" name="edit_nim" required>
</div>
<div class="form-group">
<label for="edit_name">Nama</label>
<input type="text" class="form-control" id="edit_name" name="edit_name" required>
</div>
<div class="form-group">
<label for="edit_angkatan">Angkatan</label>
<input type="number" class="form-control" id="edit_angkatan" name="edit_angkatan" required>
</div>
<button type="submit" class="btn btn-primary">Simpan Perubahan</button>
</form>
</div>
</div>
</div>
</div>
<!-- Modal Tambah Data Mahasiswa berupa file -->
<div class="modal fade" id="modalTambahMahasiswa" tabindex="-1" role="dialog" aria-labelledby="modalTambahMahasiswaLabel" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="modalTambahMahasiswaLabel">Upload Data Mahasiswa</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<form id="formUploadExcel" action="{{ route('upload.excel') }}" method="POST" enctype="multipart/form-data">
<div class="modal-body">
@csrf
<input type="file" name="file" accept=".csv">
</div>
<div class="modal-footer">
<button type="submit" class="btn btn-primary">Upload</button>
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
</div>
</form>
</div>
</div>
</div>
@endsection
@push('plugin-scripts')
<!-- <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script src="https://cdn.datatables.net/1.11.5/js/jquery.dataTables.min.js"></script> -->
<!-- Tambahkan Bootstrap JavaScript jika belum dimuat -->
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js"></script>
<!-- <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js"></script> -->
@endpush
@push('custom-scripts')
<script>
$(document).ready(function() {
var table = $('#mahasiswa-table').DataTable({
processing: true,
serverSide: true,
ajax: '{{ route("mahasiswa.index") }}',
columns: [
{ data: 'name', name: 'name' },
{ data: 'email', name: 'email' },
{ data: 'nim', name: 'nim' },
{ data: 'phone_number', name: 'phone_number' },
{ data: 'angkatan', name: 'angkatan' },
{ data: 'action', name: 'action', orderable: false, searchable: false }
]
});
$('#btnSubmit').click(function () {
$('#formUploadExcel').submit();
});
$('#formUpload').on('submit', function(e) {
e.preventDefault();
var formData = new FormData(this);
$.ajax({
type:'POST',
url: $(this).attr('action'),
data:formData,
cache:false,
contentType: false,
processData: false,
success:function(data){
alert(data.success);
},
error: function(xhr, status, error) {
alert('Terjadi kesalahan. Silakan coba lagi.');
}
});
});
$('#formaddMahasiswa').on('submit', function(e) {
e.preventDefault();
var formData = $(this).serialize();
$.ajax({
type: 'POST',
url: $(this).attr('action'),
data: formData,
success: function(response) {
$('#modaladdMahasiswa').modal('hide');
$('#mahasiswa-table').DataTable().ajax.reload();
alert('Data mahasiswa berhasil ditambahkan.');
window.location.reload();
},
error: function(xhr, status, error) {
alert('Terjadi kesalahan. Silakan coba lagi.');
}
});
});
$('#mahasiswa-table').on('click', '.btn-delete', function () {
if (confirm('Anda yakin ingin menghapus data ini?')) {
var id = $(this).data('id');
$.ajax({
type: 'POST',
url: '{{ route("mahasiswa.destroy") }}',
data: {
_token: '{{ csrf_token() }}',
id: id
},
success: function (data) {
table.ajax.reload();
},
error: function (xhr, status, error) {
alert('Terjadi kesalahan. Silakan coba lagi.');
}
});
}
});
$('#mahasiswa-table').on('click', '.btn-edit', function () {
var id = $(this).data('id');
console.log(id);
$.ajax({
type: 'GET',
url: '/mahasiswa/' + id + '/edit',
success: function (response) {
$('#edit_id').val(response.id);
$('#edit_nim').val(response.nim);
$('#edit_name').val(response.name);
$('#edit_angkatan').val(response.angkatan);
$('#modalEditMahasiswa').modal('show');
},
error: function (xhr, status, error) {
alert('Terjadi kesalahan. Silakan coba lagi.');
}
});
});
$('#formEditMahasiswa').on('submit', function (e) {
e.preventDefault();
var formData = $(this).serialize();
console.log(formData);
$.ajax({
type: 'PUT',
url: '/mahasiswa/' + $('#edit_id').val() + '/update',
data: formData,
success: function (response) {
$('#modalEditMahasiswa').modal('hide');
alert(response.message);
table.ajax.reload(); // Refresh datatable
},
error: function (xhr, status, error) {
alert('Terjadi kesalahan. Silakan coba lagi.');
}
});
});
});
</script>
@endpush