MIF_E31231392/resources/views/admin/pages/data_user/index.blade.php

306 lines
11 KiB
PHP

@extends('admin.layouts.app')
@section('content')
<!-- [ breadcrumb ] start -->
<div class="page-header">
<div class="page-block">
<div class="row align-items-center">
<div class="col-md-12">
<div class="page-header-title">
<h5 class="m-b-10">Data Users</h5>
</div>
<ul class="breadcrumb">
<li class="breadcrumb-item"><a href="{{ route('dashboard.index') }}">Home</a></li>
<li class="breadcrumb-item"><a href="javascript: void(0)">Data Master</a></li>
<li class="breadcrumb-item" aria-current="page">Data Users</li>
</ul>
</div>
</div>
</div>
</div>
<!-- [ breadcrumb ] end -->
<!-- [ Main Content ] start -->
<div class="row">
<!-- [ sample-page ] start -->
<div class="col-sm-12">
<div class="card">
<div class="card-header">
<div class="row">
<div class="col-md-6">
<h5>Data Users</h5>
</div>
<div class="col-md-6 d-flex justify-content-end">
<button class="btn btn-sm btn-info delete-btn rounded-circle mx-1" data-bs-toggle="modal" data-bs-target="#addModal">
<i class="ti ti-database-import"></i>
</button>
</div>
</div>
</div>
<div class="card-body">
<table class="table" id="table-data">
<thead>
<tr>
<th>No</th>
<th>Nama</th>
<th>Email</th>
<th>Role</th>
<th>Dibuat pada</th>
<th>Aksi</th>
</tr>
</thead>
<tbody></tbody>
</table>
</div>
</div>
</div>
<!-- [ sample-page ] end -->
</div>
<!-- [ Main Content ] end -->
<!-- Modal Add -->
<div class="modal fade" id="addModal" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h1 class="modal-title fs-5" id="exampleModalLabel">Add Data</h1>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<div class="row">
<div class="col-md-6 my-1">
<label for="add_nama_user" class="form-label">Nama User</label>
<input type="text" class="form-control" id="add_nama_user" name="add_nama_user">
</div>
<div class="col-md-6 my-1">
<label for="add_email" class="form-label">Email</label>
<input type="text" class="form-control" id="add_email" name="add_email">
</div>
<div class="col-md-6 my-1">
<label for="add_alamat" class="form-label">Alamat</label>
<input type="text" class="form-control" id="add_alamat" name="add_alamat">
</div>
<div class="col-md-6 my-1">
<label for="add_role" class="form-label">Role</label>
<select class="form-select" name="add_role" id="add_role">
<option value="admin">Admin</option>
<option value="psikolog">Psikolog</option>
</select>
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Batal</button>
<button type="button" class="btn btn-primary" onclick="simpanAddData()">Simpan</button>
</div>
</div>
</div>
</div>
<!-- Modal Edit -->
<div class="modal fade" id="editModal" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h1 class="modal-title fs-5" id="exampleModalLabel">Edit Data</h1>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
<div class="row">
<div class="col-md-6 my-1">
<label for="edit_nama_user" class="form-label">Nama User</label>
<input type="text" class="form-control" id="edit_nama_user" name="edit_nama_user">
</div>
<div class="col-md-6 my-1">
<label for="edit_email" class="form-label">Email</label>
<input type="text" class="form-control" id="edit_email" name="edit_email">
</div>
<div class="col-md-6 my-1">
<label for="edit_alamat" class="form-label">Alamat</label>
<input type="text" class="form-control" id="edit_alamat" name="edit_alamat">
</div>
<div class="col-md-6 my-1">
<label for="edit_role" class="form-label">Role</label>
<select class="form-select" name="edit_role" id="edit_role">
<option value="admin">Admin</option>
<option value="psikolog">Psikolog</option>
</select>
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Batal</button>
<button type="button" class="btn btn-primary" onclick="simpanEditData()">Simpan</button>
</div>
</div>
</div>
</div>
<!-- Modal Delete -->
<div class="modal fade" id="deleteModal" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h1 class="modal-title fs-5" id="exampleModalLabel">Hapus Data</h1>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body">
Apakah anda akan menghapus data user dengan nama <span id="delete_nama"></span> ini?
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Batal</button>
<button type="button" class="btn btn-danger" onclick="hapusData()">Hapus</button>
</div>
</div>
</div>
</div>
@endsection
@section('script')
<script>
let table = null;
let idEdit = null;
let idHapus = null;
$(document).ready(function() {
table = new DataTable("#table-data", {
ajax: {
url: '{{ route('users.fetchData') }}',
},
columns: [
{
data: null,
render: function(data, type, row, meta) {
return meta.row + 1;
}
},
{
data: 'name'
},
{
data: 'email'
},
{
data: 'role'
},
{
data: null,
render: function(data, type, row, meta) {
return data.created_at.split('T')[0]
}
},
{
data: null,
render: function(data, type, row, meta) {
return `
<div class="btn-group">
<button type="button" class="btn btn-info btn-sm rounded-circle mx-1" data-bs-toggle="modal" data-bs-target="#editModal" onclick="getDataEdit(this)" data-id="${data.id}">
<i class="ti ti-edit"></i>
</button>
<button class="btn btn-sm btn-danger delete-btn rounded-circle mx-1" data-bs-toggle="modal" data-bs-target="#deleteModal" onclick="getDataHapus(this)" data-id="${data.id}">
<i class="ti ti-trash"></i>
</button>
</div>
`;
}
}
]
});
});
function fetchRowData() {
table.ajax.reload(null, false);
}
function getDataEdit(btn) {
idEdit = btn.getAttribute('data-id');
let urlEdit = '{{ route('users.edit', ['__ID__']) }}';
$.get(urlEdit.replace('__ID__', idEdit), function(data, status) {
if(data.status) {
$('#edit_nama_user').val(data.data.name);
$('#edit_email').val(data.data.email);
$('#edit_role').val(data.data.role);
$('#edit_alamat').val(data.data.alamat);
}
});
}
function getDataHapus(btn) {
idHapus = btn.getAttribute('data-id');
let urlShow = '{{ route('users.show', ['__ID__']) }}';
$.get(urlShow.replace('__ID__', idHapus), function(data, status) {
if(data.status) {
$('#delete_nama').html(data.data.name);
}
});
}
function simpanAddData() {
$.post('{{ route('users.store') }}', {
'_token': document.getElementById('_token').getAttribute('value'),
'name': $('#add_nama_user').val(),
'email': $('#add_email').val(),
'role': $('#add_role').val(),
'alamat': $('#add_alamat').val()
}, function(data, status) {
if(data.status) {
$('#addModal').modal('hide');
Swal.fire({
title: "Info",
text: "Data berhasil ditambahkan!",
icon: "success"
});
fetchRowData();
$('#add_nama_user').val('');
$('#add_email').val('');
$('#add_role').val('admin');
$('#add_alamat').val('');
}
});
}
function simpanEditData() {
if(idEdit != null) {
let urlUpdate = '{{ route('users.update', ['__ID__']) }}';
$.post(urlUpdate.replace('__ID__', idEdit), {
'_token': document.getElementById('_token').getAttribute('value'),
'_method': 'PUT',
'name': $('#edit_nama_user').val(),
'email': $('#edit_email').val(),
'role': $('#edit_role').val(),
'alamat': $('#edit_alamat').val()
}, function(data, status) {
if(data.status) {
$('#editModal').modal('hide');
Swal.fire({
title: "Info",
text: "Data berhasil diubah!",
icon: "success"
});
fetchRowData();
idEdit = null;
}
});
}
}
function hapusData() {
if(idHapus != null) {
let urlHapus = '{{ route('users.destroy', ['__ID__']) }}';
$.post(urlHapus.replace('__ID__', idHapus), {
'_token': document.getElementById('_token').getAttribute('value'),
'_method': 'DELETE'
}, function(data, status) {
if(data.status) {
$('#deleteModal').modal('hide');
Swal.fire({
title: "Info",
text: "Data berhasil dihapus!",
icon: "success"
});
fetchRowData();
idHapus = null;
}
});
}
}
</script>
@endsection