pertama
This commit is contained in:
@@ -0,0 +1,82 @@
|
||||
@extends('template.website.auth')
|
||||
@section('content')
|
||||
<!-- Section -->
|
||||
<section class="pt-5 pb-5">
|
||||
<div class="container-fluid d-flex flex-column">
|
||||
<div class="row align-items-center min-vh-100">
|
||||
<div class="col-md-6 col-lg-4 col-xl-3 mx-auto">
|
||||
<div class="card">
|
||||
<div class="card-body py-5 px-sm-5">
|
||||
<div class="mb-5 text-center">
|
||||
<h6 class="h3 mb-1">Login Administrator</h6>
|
||||
<p class="text-muted mb-0">Gunakan kredensial admin untuk login.</p>
|
||||
</div><span class="clearfix"></span>
|
||||
|
||||
@if (session('error'))
|
||||
<div role="alert" class="alert alert-danger alert-dismissible">
|
||||
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"> </button>
|
||||
<strong><i class="fa fa-exclamation-circle"></i> {{ session('error') }}</strong>
|
||||
</div>
|
||||
@endif
|
||||
<form id="formLogin" class="form-validate" action="{{ route('admin.auth.authenticate') }}" method="POST">
|
||||
@csrf
|
||||
<div class="form-group">
|
||||
<label for="username">Username</label>
|
||||
<div class="input-group">
|
||||
<input type="text" class="form-control" name="username">
|
||||
<span class="input-group-text"><i class="icon-user"></i></span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group ">
|
||||
<label for="password">Password</label>
|
||||
<div class="input-group show-hide-password">
|
||||
<input class="form-control" name="password" type="password" >
|
||||
<span class="input-group-text"><i class="icon-eye-off" aria-hidden="true" style="cursor: pointer;"></i></span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mt-4"><button type="submit" class="btn btn-primary btn-block btn-primary">Login</button></div>
|
||||
</form>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<!-- end: Section -->
|
||||
@endsection
|
||||
|
||||
@push('js')
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.21.0/jquery.validate.min.js"
|
||||
integrity="sha512-KFHXdr2oObHKI9w4Hv1XPKc898mE4kgYx58oqsc/JqqdLMDI4YjOLzom+EMlW8HFUd0QfjfAvxSL6sEq/a42fQ=="
|
||||
crossorigin="anonymous" referrerpolicy="no-referrer"></script>
|
||||
<script>
|
||||
$(function () {
|
||||
$('#formLogin').validate({
|
||||
rules: {
|
||||
username: {
|
||||
required: true,
|
||||
},
|
||||
password: {
|
||||
required: true,
|
||||
},
|
||||
},
|
||||
messages: {
|
||||
username: 'Username wajib diisi',
|
||||
password: 'Password wajib diisi',
|
||||
},
|
||||
errorClass: 'is-invalid',
|
||||
validClass: 'is-valid',
|
||||
errorElement: "div",
|
||||
errorPlacement: function (error, element) {
|
||||
element.parent().append(error);
|
||||
},
|
||||
invalidHandler: function (elem, validator) {
|
||||
$('html, body').stop(true, false).animate({
|
||||
scrollTop: $(validator.errorList[0].element).offset().top - 200
|
||||
}, 1500, 'easeInOutExpo');
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
@endpush
|
||||
@@ -0,0 +1,11 @@
|
||||
@extends('template.admin.base')
|
||||
|
||||
@section('content')
|
||||
<div class="container-xxl flex-grow-1 container-p-y">
|
||||
<div class="card">
|
||||
<div class="card-header d-flex justify-content-between align-items-center">
|
||||
<h5 class="card-title m-0">Dashboard</h5>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
@@ -0,0 +1,121 @@
|
||||
@extends('template.admin.base')
|
||||
|
||||
@push('css')
|
||||
<link href="{{ asset('assets/admin/vendor/libs/select2/select2.css') }}" rel="stylesheet" />
|
||||
@endpush
|
||||
|
||||
@section('content')
|
||||
<div class="container-xxl flex-grow-1 container-p-y">
|
||||
<div class="card">
|
||||
<div class="card-header d-flex justify-content-between align-items-center">
|
||||
<h5 class="card-title m-0">Kabupaten/Kota Baru</h5>
|
||||
<div id="buttons">
|
||||
<a href="{{ route('admin.kabupaten-kota.index') }}" class="btn btn-dark">
|
||||
<i class="icon-base ti tabler-arrow-left me-sm-1"></i> Kembali ke Daftar
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="card-body">
|
||||
@if ($errors->any())
|
||||
<div class="alert alert-danger d-flex align-items-baseline" role="alert">
|
||||
<span class="alert-icon rounded">
|
||||
<i class="icon-base ti tabler-ban icon-md w-px-30"></i>
|
||||
</span>
|
||||
<div class="d-flex flex-column ps-1">
|
||||
<h5 class="alert-heading mb-2">Input data gagal tervalidasi</h5>
|
||||
<ul class="mb-0">
|
||||
@foreach ($errors->all() as $error)
|
||||
<li>{{ $error }}</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
<form id="formCreate" action="{{ route('admin.kabupaten-kota.store') }}" method="POST">
|
||||
@csrf
|
||||
<div class="row mb-3">
|
||||
<div class="col-xl-3 col-md-6 col-sm-6">
|
||||
<label for="nama" class="form-label">Nama Kabupaten/Kota</label>
|
||||
<input type="text" class="form-control" id="nama" name="nama" value="{{ old('nama') }}" />
|
||||
</div>
|
||||
<div class="col-xl-3 col-md-6 col-sm-6">
|
||||
<label for="kode" class="form-label">Kode Kabupaten/Kota</label>
|
||||
<input type="text" class="form-control" id="kode" name="kode" value="{{ old('kode') }}" />
|
||||
</div>
|
||||
<div class="col-xl-3 col-md-6 col-sm-6">
|
||||
<label for="provinsi_id" class="form-label">Provinsi</label>
|
||||
<select class="select2 form-select" data-allow-clear="true" id="provinsi_id" name="provinsi_id">
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<button type="submit" class="btn btn-primary">Simpan</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@push('js')
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.21.0/jquery.validate.min.js"
|
||||
integrity="sha512-KFHXdr2oObHKI9w4Hv1XPKc898mE4kgYx58oqsc/JqqdLMDI4YjOLzom+EMlW8HFUd0QfjfAvxSL6sEq/a42fQ=="
|
||||
crossorigin="anonymous" referrerpolicy="no-referrer"></script>
|
||||
<script src="{{ asset('assets/admin/vendor/libs/select2/select2.js') }}"></script>
|
||||
|
||||
<script>
|
||||
$(function () {
|
||||
$("#provinsi_id").select2({
|
||||
placeholder: "Pilih Provinsi",
|
||||
allowClear: true,
|
||||
ajax: {
|
||||
url: "{{ route('admin.provinsi.list') }}",
|
||||
type: 'POST',
|
||||
data: function (params) {
|
||||
var query = {
|
||||
search: params.term,
|
||||
page: params.page || 1,
|
||||
_token:'{{ csrf_token() }}'
|
||||
}
|
||||
return query;
|
||||
},
|
||||
processResults: function (data) {
|
||||
var results = $.map(data.data, function (obj) {
|
||||
obj.id = obj.id;
|
||||
obj.text = obj.kode + ' - ' + obj.nama;
|
||||
|
||||
return obj;
|
||||
});
|
||||
return {
|
||||
results: results,
|
||||
pagination: {
|
||||
more: data.last_page > data.current_page
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
$('#formCreate').validate({
|
||||
rules: {
|
||||
nama: {
|
||||
required: true,
|
||||
},
|
||||
kode: {
|
||||
required: true,
|
||||
digits: true,
|
||||
minlength: 4,
|
||||
maxlength: 4,
|
||||
},
|
||||
provinsi_id: {
|
||||
required: true,
|
||||
}
|
||||
},
|
||||
messages: {
|
||||
nama: 'Nama Kabupaten/Kota wajib diisi',
|
||||
kode: 'Kode Kabupaten/Kota wajib diisi dengan angka 4 digit',
|
||||
provinsi_id: 'Provinsi wajib diisi'
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
@endpush
|
||||
@@ -0,0 +1,124 @@
|
||||
@extends('template.admin.base')
|
||||
|
||||
@push('css')
|
||||
<link href="{{ asset('assets/admin/vendor/libs/select2/select2.css') }}" rel="stylesheet" />
|
||||
@endpush
|
||||
|
||||
@section('content')
|
||||
<div class="container-xxl flex-grow-1 container-p-y">
|
||||
<div class="card">
|
||||
<div class="card-header d-flex justify-content-between align-items-center">
|
||||
<h5 class="card-title m-0">Edit Kabupaten/Kota</h5>
|
||||
<div id="buttons">
|
||||
<a href="{{ route('admin.kabupaten-kota.index') }}" class="btn btn-dark">
|
||||
<i class="icon-base ti tabler-arrow-left me-sm-1"></i> Kembali ke Daftar
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="card-body">
|
||||
@if ($errors->any())
|
||||
<div class="alert alert-danger d-flex align-items-baseline" role="alert">
|
||||
<span class="alert-icon rounded">
|
||||
<i class="icon-base ti tabler-ban icon-md w-px-30"></i>
|
||||
</span>
|
||||
<div class="d-flex flex-column ps-1">
|
||||
<h5 class="alert-heading mb-2">Edit data gagal tervalidasi</h5>
|
||||
<ul class="mb-0">
|
||||
@foreach ($errors->all() as $error)
|
||||
<li>{{ $error }}</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
<form id="formCreate" action="{{ route('admin.kabupaten-kota.update', $kabupatenKota->id) }}" method="POST">
|
||||
@method('PUT')
|
||||
@csrf
|
||||
<div class="row mb-3">
|
||||
<div class="col-xl-3 col-md-6 col-sm-6">
|
||||
<label for="nama" class="form-label">Nama Kabupaten/Kota</label>
|
||||
<input type="text" class="form-control" id="nama" name="nama" value="{{ old('nama', $kabupatenKota->nama) }}" />
|
||||
</div>
|
||||
<div class="col-xl-3 col-md-6 col-sm-6">
|
||||
<label for="kode" class="form-label">Kode Kabupaten/Kota</label>
|
||||
<input type="text" class="form-control" id="kode" name="kode" value="{{ old('kode', $kabupatenKota->kode) }}" />
|
||||
</div>
|
||||
<div class="col-xl-3 col-md-6 col-sm-6">
|
||||
<label for="provinsi_id" class="form-label">Provinsi</label>
|
||||
<select class="select2 form-select" data-allow-clear="true" id="provinsi_id" name="provinsi_id">
|
||||
<option value="{{ old('provinsi_id', $kabupatenKota->provinsi_id) }}" selected="selected">
|
||||
{{ $kabupatenKota->provinsi->kode }} - {{ $kabupatenKota->provinsi->nama }}</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<button type="submit" class="btn btn-primary">Simpan</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@push('js')
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.21.0/jquery.validate.min.js"
|
||||
integrity="sha512-KFHXdr2oObHKI9w4Hv1XPKc898mE4kgYx58oqsc/JqqdLMDI4YjOLzom+EMlW8HFUd0QfjfAvxSL6sEq/a42fQ=="
|
||||
crossorigin="anonymous" referrerpolicy="no-referrer"></script>
|
||||
<script src="{{ asset('assets/admin/vendor/libs/select2/select2.js') }}"></script>
|
||||
|
||||
<script>
|
||||
$(function () {
|
||||
$("#provinsi_id").select2({
|
||||
placeholder: "Pilih Provinsi",
|
||||
allowClear: true,
|
||||
ajax: {
|
||||
url: "{{ route('admin.provinsi.list') }}",
|
||||
type: 'POST',
|
||||
data: function (params) {
|
||||
var query = {
|
||||
search: params.term,
|
||||
page: params.page || 1,
|
||||
_token:'{{ csrf_token() }}'
|
||||
}
|
||||
return query;
|
||||
},
|
||||
processResults: function (data) {
|
||||
var results = $.map(data.data, function (obj) {
|
||||
obj.id = obj.id;
|
||||
obj.text = obj.kode + ' - ' + obj.nama;
|
||||
|
||||
return obj;
|
||||
});
|
||||
return {
|
||||
results: results,
|
||||
pagination: {
|
||||
more: data.last_page > data.current_page
|
||||
}
|
||||
};
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
$('#formCreate').validate({
|
||||
rules: {
|
||||
nama: {
|
||||
required: true,
|
||||
},
|
||||
kode: {
|
||||
required: true,
|
||||
digits: true,
|
||||
minlength: 4,
|
||||
maxlength: 4,
|
||||
},
|
||||
provinsi_id: {
|
||||
required: true,
|
||||
}
|
||||
},
|
||||
messages: {
|
||||
nama: 'Nama Kabupaten/Kota wajib diisi',
|
||||
kode: 'Kode Kabupaten/Kota wajib diisi dengan angka 4 digit',
|
||||
provinsi_id: 'Provinsi wajib diisi'
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
@endpush
|
||||
@@ -0,0 +1,148 @@
|
||||
@extends('template.admin.base')
|
||||
|
||||
@push('css')
|
||||
<link rel="stylesheet" href="{{ asset('assets/admin/vendor/libs/datatables-bs5/datatables.bootstrap5.css') }}" />
|
||||
<link rel="stylesheet" href="{{ asset('assets/admin/vendor/libs/datatables-responsive-bs5/responsive.bootstrap5.css') }}" />
|
||||
@endpush
|
||||
|
||||
@section('content')
|
||||
<div class="container-xxl flex-grow-1 container-p-y">
|
||||
<div class="card">
|
||||
<div class="card-header d-flex justify-content-between align-items-center">
|
||||
<h5 class="card-title m-0">Daftar Kabupaten/Kota</h5>
|
||||
<div id="buttons">
|
||||
<a href="{{ route('admin.kabupaten-kota.create') }}" class="btn btn-primary">
|
||||
<i class="icon-base ti tabler-plus me-sm-1"></i> Kabupaten/Kota Baru
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="card-datatable table-responsive pt-0">
|
||||
@if (session('success'))
|
||||
<div class="alert alert-dismissible alert-success d-flex align-items-center" role="alert">
|
||||
<span class="alert-icon rounded me-2">
|
||||
<i class="icon-base ti tabler-check icon-md w-px-30"></i>
|
||||
</span>
|
||||
{{ session('success') }}
|
||||
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
<table class="datatables-basic table" id="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Nama</th>
|
||||
<th>Kode</th>
|
||||
<th>Provinsi</th>
|
||||
<th>Aksi</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody></tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="modal fade" id="deleteConfirmModal" tabindex="-1" aria-hidden="true">
|
||||
<div class="modal-dialog" role="document">
|
||||
<div class="modal-content">
|
||||
<form id="formDelete" action="{{ route('admin.kabupaten-kota.destroy', ':id') }}" method="POST">
|
||||
@csrf
|
||||
@method('DELETE')
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title" id="deleteConfirmModalLabel">Konfirmasi Menghapus Data</h5>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<p>Apakah data tersebut benar akan dihapus?</p>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-label-secondary" data-bs-dismiss="modal">
|
||||
Batal
|
||||
</button>
|
||||
<button type="submit" class="btn btn-danger">Hapus</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@push('js')
|
||||
<script src="{{ asset('assets/admin/vendor/libs/datatables-bs5/datatables-bootstrap5.js') }}"></script>
|
||||
|
||||
<script>
|
||||
$(function () {
|
||||
$('#table').DataTable({
|
||||
'responsive': true,
|
||||
'lengthChange': true,
|
||||
'autoWidth': false,
|
||||
'processing': true,
|
||||
'serverSide': true,
|
||||
'ajax': function(data, callback, settings) {
|
||||
var order = '';
|
||||
if (data.order.length > 0) {
|
||||
order = data.order[0].dir == 'desc' ? '-' : '';
|
||||
order = order + data.columns[data.order[0].column].data;
|
||||
}
|
||||
|
||||
$.ajax({
|
||||
url: "{{ route('admin.kabupaten-kota.list') }}",
|
||||
data: {
|
||||
size: data.length,
|
||||
page: (data.start / data.length) + 1,
|
||||
search: data.search.value,
|
||||
sort: order,
|
||||
_token:'{{ csrf_token() }}'
|
||||
},
|
||||
type: "POST",
|
||||
success: function(res) {
|
||||
callback({
|
||||
recordsTotal: res.total,
|
||||
recordsFiltered: res.total,
|
||||
data: res.data
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
},
|
||||
'columns': [
|
||||
{ data: 'nama' },
|
||||
{ data: 'kode' },
|
||||
{ data: 'provinsi.nama' },
|
||||
{
|
||||
data: 'id',
|
||||
orderable: false,
|
||||
searchable: false,
|
||||
targets: -1,
|
||||
render: function (data, type, full, meta) {
|
||||
var urlEdit = '{{ route("admin.kabupaten-kota.edit", ":id") }}';
|
||||
urlEdit = urlEdit.replace(':id', data);
|
||||
|
||||
var renderValue =
|
||||
'<a href="' + urlEdit + '" class="btn btn-sm btn-icon">' +
|
||||
' <i class="text-primary icon-base ti tabler-pencil"></i>' +
|
||||
'</a>' +
|
||||
'<button type="button" class="btn btn-sm btn-icon delete" data-id="' + data + '">' +
|
||||
' <i class="text-danger icon-base ti tabler-trash"></i>' +
|
||||
'</button>';
|
||||
return renderValue;
|
||||
}
|
||||
}
|
||||
],
|
||||
});
|
||||
|
||||
$('#table tbody').on( 'click', 'button.delete', function (e) {
|
||||
e.preventDefault();
|
||||
|
||||
var form = $('#formDelete');
|
||||
var action = form.attr('action');
|
||||
action = action.replace(':id', $(this).data('id'));
|
||||
form.attr('action', action);
|
||||
$('#deleteConfirmModal').modal('show');
|
||||
});
|
||||
});
|
||||
</script>
|
||||
@endpush
|
||||
|
||||
@@ -0,0 +1,79 @@
|
||||
@extends('template.admin.base')
|
||||
|
||||
@push('css')
|
||||
@endpush
|
||||
|
||||
@section('content')
|
||||
<div class="container-xxl flex-grow-1 container-p-y">
|
||||
<div class="card">
|
||||
<div class="card-header d-flex justify-content-between align-items-center">
|
||||
<h5 class="card-title m-0">Provinsi Baru</h5>
|
||||
<div id="buttons">
|
||||
<a href="{{ route('admin.provinsi.index') }}" class="btn btn-dark">
|
||||
<i class="icon-base ti tabler-arrow-left me-sm-1"></i> Kembali ke Daftar
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="card-body">
|
||||
@if ($errors->any())
|
||||
<div class="alert alert-danger d-flex align-items-baseline" role="alert">
|
||||
<span class="alert-icon rounded">
|
||||
<i class="icon-base ti tabler-ban icon-md w-px-30"></i>
|
||||
</span>
|
||||
<div class="d-flex flex-column ps-1">
|
||||
<h5 class="alert-heading mb-2">Input data gagal tervalidasi</h5>
|
||||
<ul class="mb-0">
|
||||
@foreach ($errors->all() as $error)
|
||||
<li>{{ $error }}</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
<form id="formCreate" action="{{ route('admin.provinsi.store') }}" method="POST">
|
||||
@csrf
|
||||
<div class="row mb-3">
|
||||
<div class="col-xl-3 col-md-6 col-sm-6">
|
||||
<label for="nama" class="form-label">Nama Provinsi</label>
|
||||
<input type="text" class="form-control" id="nama" name="nama" value="{{ old('nama') }}" />
|
||||
</div>
|
||||
<div class="col-xl-3 col-md-6 col-sm-6">
|
||||
<label for="kode" class="form-label">Kode Provinsi</label>
|
||||
<input type="text" class="form-control" id="kode" name="kode" value="{{ old('kode') }}" />
|
||||
</div>
|
||||
</div>
|
||||
<button type="submit" class="btn btn-primary">Simpan</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@push('js')
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.21.0/jquery.validate.min.js"
|
||||
integrity="sha512-KFHXdr2oObHKI9w4Hv1XPKc898mE4kgYx58oqsc/JqqdLMDI4YjOLzom+EMlW8HFUd0QfjfAvxSL6sEq/a42fQ=="
|
||||
crossorigin="anonymous" referrerpolicy="no-referrer"></script>
|
||||
|
||||
<script>
|
||||
$(function () {
|
||||
$('#formCreate').validate({
|
||||
rules: {
|
||||
nama: {
|
||||
required: true,
|
||||
},
|
||||
kode: {
|
||||
required: true,
|
||||
digits: true,
|
||||
minlength: 2,
|
||||
maxlength: 2,
|
||||
},
|
||||
},
|
||||
messages: {
|
||||
nama: 'Nama Provinsi wajib diisi',
|
||||
kode: 'Kode Provinsi wajib diisi dengan angka 2 digit',
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
@endpush
|
||||
@@ -0,0 +1,80 @@
|
||||
@extends('template.admin.base')
|
||||
|
||||
@push('css')
|
||||
@endpush
|
||||
|
||||
@section('content')
|
||||
<div class="container-xxl flex-grow-1 container-p-y">
|
||||
<div class="card">
|
||||
<div class="card-header d-flex justify-content-between align-items-center">
|
||||
<h5 class="card-title m-0">Edit Provinsi</h5>
|
||||
<div id="buttons">
|
||||
<a href="{{ route('admin.provinsi.index') }}" class="btn btn-dark">
|
||||
<i class="icon-base ti tabler-arrow-left me-sm-1"></i> Kembali ke Daftar
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="card-body">
|
||||
@if ($errors->any())
|
||||
<div class="alert alert-danger d-flex align-items-baseline" role="alert">
|
||||
<span class="alert-icon rounded">
|
||||
<i class="icon-base ti tabler-ban icon-md w-px-30"></i>
|
||||
</span>
|
||||
<div class="d-flex flex-column ps-1">
|
||||
<h5 class="alert-heading mb-2">Edit data gagal tervalidasi</h5>
|
||||
<ul class="mb-0">
|
||||
@foreach ($errors->all() as $error)
|
||||
<li>{{ $error }}</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
<form id="formCreate" action="{{ route('admin.provinsi.update', $provinsi->id) }}" method="POST">
|
||||
@method('PUT')
|
||||
@csrf
|
||||
<div class="row mb-3">
|
||||
<div class="col-xl-3 col-md-6 col-sm-6">
|
||||
<label for="nama" class="form-label">Nama Provinsi</label>
|
||||
<input type="text" class="form-control" id="nama" name="nama" value="{{ old('nama', $provinsi->nama) }}" />
|
||||
</div>
|
||||
<div class="col-xl-3 col-md-6 col-sm-6">
|
||||
<label for="kode" class="form-label">Kode Provinsi</label>
|
||||
<input type="text" class="form-control" id="kode" name="kode" value="{{ old('kode', $provinsi->kode) }}" />
|
||||
</div>
|
||||
</div>
|
||||
<button type="submit" class="btn btn-primary">Simpan</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@push('js')
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.21.0/jquery.validate.min.js"
|
||||
integrity="sha512-KFHXdr2oObHKI9w4Hv1XPKc898mE4kgYx58oqsc/JqqdLMDI4YjOLzom+EMlW8HFUd0QfjfAvxSL6sEq/a42fQ=="
|
||||
crossorigin="anonymous" referrerpolicy="no-referrer"></script>
|
||||
|
||||
<script>
|
||||
$(function () {
|
||||
$('#formCreate').validate({
|
||||
rules: {
|
||||
nama: {
|
||||
required: true,
|
||||
},
|
||||
kode: {
|
||||
required: true,
|
||||
digits: true,
|
||||
minlength: 2,
|
||||
maxlength: 2,
|
||||
},
|
||||
},
|
||||
messages: {
|
||||
nama: 'Nama Provinsi wajib diisi',
|
||||
kode: 'Kode Provinsi wajib diisi dengan angka 2 digit',
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
@endpush
|
||||
@@ -0,0 +1,146 @@
|
||||
@extends('template.admin.base')
|
||||
|
||||
@push('css')
|
||||
<link rel="stylesheet" href="{{ asset('assets/admin/vendor/libs/datatables-bs5/datatables.bootstrap5.css') }}" />
|
||||
<link rel="stylesheet" href="{{ asset('assets/admin/vendor/libs/datatables-responsive-bs5/responsive.bootstrap5.css') }}" />
|
||||
@endpush
|
||||
|
||||
@section('content')
|
||||
<div class="container-xxl flex-grow-1 container-p-y">
|
||||
<div class="card">
|
||||
<div class="card-header d-flex justify-content-between align-items-center">
|
||||
<h5 class="card-title m-0">Daftar Provinsi</h5>
|
||||
<div id="buttons">
|
||||
<a href="{{ route('admin.provinsi.create') }}" class="btn btn-primary">
|
||||
<i class="icon-base ti tabler-plus me-sm-1"></i> Provinsi Baru
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="card-datatable table-responsive pt-0">
|
||||
@if (session('success'))
|
||||
<div class="alert alert-dismissible alert-success d-flex align-items-center" role="alert">
|
||||
<span class="alert-icon rounded me-2">
|
||||
<i class="icon-base ti tabler-check icon-md w-px-30"></i>
|
||||
</span>
|
||||
{{ session('success') }}
|
||||
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
<table class="datatables-basic table" id="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Nama</th>
|
||||
<th>Kode</th>
|
||||
<th>Aksi</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody></tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="modal fade" id="deleteConfirmModal" tabindex="-1" aria-hidden="true">
|
||||
<div class="modal-dialog" role="document">
|
||||
<div class="modal-content">
|
||||
<form id="formDelete" action="{{ route('admin.provinsi.destroy', ':id') }}" method="POST">
|
||||
@csrf
|
||||
@method('DELETE')
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title" id="deleteConfirmModalLabel">Konfirmasi Menghapus Data</h5>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<p>Apakah data tersebut benar akan dihapus?</p>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-label-secondary" data-bs-dismiss="modal">
|
||||
Batal
|
||||
</button>
|
||||
<button type="submit" class="btn btn-danger">Hapus</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@push('js')
|
||||
<script src="{{ asset('assets/admin/vendor/libs/datatables-bs5/datatables-bootstrap5.js') }}"></script>
|
||||
|
||||
<script>
|
||||
$(function () {
|
||||
$('#table').DataTable({
|
||||
'responsive': true,
|
||||
'lengthChange': true,
|
||||
'autoWidth': false,
|
||||
'processing': true,
|
||||
'serverSide': true,
|
||||
'ajax': function(data, callback, settings) {
|
||||
var order = '';
|
||||
if (data.order.length > 0) {
|
||||
order = data.order[0].dir == 'desc' ? '-' : '';
|
||||
order = order + data.columns[data.order[0].column].data;
|
||||
}
|
||||
|
||||
$.ajax({
|
||||
url: "{{ route('admin.provinsi.list') }}",
|
||||
data: {
|
||||
size: data.length,
|
||||
page: (data.start / data.length) + 1,
|
||||
search: data.search.value,
|
||||
sort: order,
|
||||
_token:'{{ csrf_token() }}'
|
||||
},
|
||||
type: "POST",
|
||||
success: function(res) {
|
||||
callback({
|
||||
recordsTotal: res.total,
|
||||
recordsFiltered: res.total,
|
||||
data: res.data
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
},
|
||||
'columns': [
|
||||
{ data: 'nama' },
|
||||
{ data: 'kode' },
|
||||
{
|
||||
data: 'id',
|
||||
orderable: false,
|
||||
searchable: false,
|
||||
targets: -1,
|
||||
render: function (data, type, full, meta) {
|
||||
var urlEdit = '{{ route("admin.provinsi.edit", ":id") }}';
|
||||
urlEdit = urlEdit.replace(':id', data);
|
||||
|
||||
var renderValue =
|
||||
'<a href="' + urlEdit + '" class="btn btn-sm btn-icon">' +
|
||||
' <i class="text-primary icon-base ti tabler-pencil"></i>' +
|
||||
'</a>' +
|
||||
'<button type="button" class="btn btn-sm btn-icon delete" data-id="' + data + '">' +
|
||||
' <i class="text-danger icon-base ti tabler-trash"></i>' +
|
||||
'</button>';
|
||||
return renderValue;
|
||||
}
|
||||
}
|
||||
],
|
||||
});
|
||||
|
||||
$('#table tbody').on( 'click', 'button.delete', function (e) {
|
||||
e.preventDefault();
|
||||
|
||||
var form = $('#formDelete');
|
||||
var action = form.attr('action');
|
||||
action = action.replace(':id', $(this).data('id'));
|
||||
form.attr('action', action);
|
||||
$('#deleteConfirmModal').modal('show');
|
||||
});
|
||||
});
|
||||
</script>
|
||||
@endpush
|
||||
|
||||
@@ -0,0 +1,94 @@
|
||||
@extends('template.admin.base')
|
||||
|
||||
@push('css')
|
||||
@endpush
|
||||
|
||||
@section('content')
|
||||
<div class="container-xxl flex-grow-1 container-p-y">
|
||||
<div class="card">
|
||||
<div class="card-header d-flex justify-content-between align-items-center">
|
||||
<h5 class="card-title m-0">UML Baru</h5>
|
||||
<div id="buttons">
|
||||
<a href="{{ route('admin.uml.index') }}" class="btn btn-dark">
|
||||
<i class="icon-base ti tabler-arrow-left me-sm-1"></i> Kembali ke Daftar
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="card-body">
|
||||
@if ($errors->any())
|
||||
<div class="alert alert-danger d-flex align-items-baseline" role="alert">
|
||||
<span class="alert-icon rounded">
|
||||
<i class="icon-base ti tabler-ban icon-md w-px-30"></i>
|
||||
</span>
|
||||
<div class="d-flex flex-column ps-1">
|
||||
<h5 class="alert-heading mb-2">Input data gagal tervalidasi</h5>
|
||||
<ul class="mb-0">
|
||||
@foreach ($errors->all() as $error)
|
||||
<li>{{ $error }}</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
<form id="formCreate" action="{{ route('admin.uml.store') }}" method="POST">
|
||||
@csrf
|
||||
<div class="row mb-3">
|
||||
<div class="col-xl-3 col-md-6 col-sm-6">
|
||||
<label for="nama" class="form-label">Nama UML</label>
|
||||
<input type="text" class="form-control" id="nama" name="nama" value="{{ old('nama') }}" />
|
||||
</div>
|
||||
<div class="col-xl-3 col-md-6 col-sm-6">
|
||||
<label for="kode" class="form-label">Kode Daerah</label>
|
||||
<input type="text" class="form-control" id="kode" name="kode" value="{{ old('kode') }}" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-3">
|
||||
<div class="col-xl-6 col-md-12 col-sm-12">
|
||||
<label for="alamat" class="form-label">Alamat</label>
|
||||
<input type="text" class="form-control" id="alamat" name="alamat" value="{{ old('alamat') }}" />
|
||||
</div>
|
||||
<div class="col-xl-3 col-md-6 col-sm-6">
|
||||
<label for="email" class="form-label">Email</label>
|
||||
<input type="email" class="form-control" id="email" name="email" value="{{ old('email') }}" />
|
||||
</div>
|
||||
<div class="col-xl-3 col-md-6 col-sm-6">
|
||||
<label for="telepon" class="form-label">Telepon</label>
|
||||
<input type="text" class="form-control" id="telepon" name="telepon" value="{{ old('telepon') }}" />
|
||||
</div>
|
||||
</div>
|
||||
<button type="submit" class="btn btn-primary">Simpan</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@push('js')
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.21.0/jquery.validate.min.js"
|
||||
integrity="sha512-KFHXdr2oObHKI9w4Hv1XPKc898mE4kgYx58oqsc/JqqdLMDI4YjOLzom+EMlW8HFUd0QfjfAvxSL6sEq/a42fQ=="
|
||||
crossorigin="anonymous" referrerpolicy="no-referrer"></script>
|
||||
|
||||
<script>
|
||||
$(function () {
|
||||
$('#formCreate').validate({
|
||||
rules: {
|
||||
nama: {
|
||||
required: true,
|
||||
},
|
||||
kode: {
|
||||
required: true,
|
||||
},
|
||||
email: {
|
||||
email: true,
|
||||
}
|
||||
},
|
||||
messages: {
|
||||
nama: 'Nama UML wajib diisi',
|
||||
kode: 'Kode UML wajib diisi',
|
||||
email: 'Email harus dalam format yang benar'
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
@endpush
|
||||
@@ -0,0 +1,95 @@
|
||||
@extends('template.admin.base')
|
||||
|
||||
@push('css')
|
||||
@endpush
|
||||
|
||||
@section('content')
|
||||
<div class="container-xxl flex-grow-1 container-p-y">
|
||||
<div class="card">
|
||||
<div class="card-header d-flex justify-content-between align-items-center">
|
||||
<h5 class="card-title m-0">Edit UML</h5>
|
||||
<div id="buttons">
|
||||
<a href="{{ route('admin.uml.index') }}" class="btn btn-dark">
|
||||
<i class="icon-base ti tabler-arrow-left me-sm-1"></i> Kembali ke Daftar
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="card-body">
|
||||
@if ($errors->any())
|
||||
<div class="alert alert-danger d-flex align-items-baseline" role="alert">
|
||||
<span class="alert-icon rounded">
|
||||
<i class="icon-base ti tabler-ban icon-md w-px-30"></i>
|
||||
</span>
|
||||
<div class="d-flex flex-column ps-1">
|
||||
<h5 class="alert-heading mb-2">Edit data gagal tervalidasi</h5>
|
||||
<ul class="mb-0">
|
||||
@foreach ($errors->all() as $error)
|
||||
<li>{{ $error }}</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
<form id="formCreate" action="{{ route('admin.uml.update', $uml->id) }}" method="POST">
|
||||
@method('PUT')
|
||||
@csrf
|
||||
<div class="row mb-3">
|
||||
<div class="col-xl-3 col-md-6 col-sm-6">
|
||||
<label for="nama" class="form-label">Nama UML</label>
|
||||
<input type="text" class="form-control" id="nama" name="nama" value="{{ old('nama', $uml->nama) }}" />
|
||||
</div>
|
||||
<div class="col-xl-3 col-md-6 col-sm-6">
|
||||
<label for="kode" class="form-label">Kode Daerah</label>
|
||||
<input type="text" class="form-control" id="kode" name="kode" value="{{ old('kode', $uml->kode) }}" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mb-3">
|
||||
<div class="col-xl-6 col-md-12 col-sm-12">
|
||||
<label for="alamat" class="form-label">Alamat</label>
|
||||
<input type="text" class="form-control" id="alamat" name="alamat" value="{{ old('alamat', $uml->alamat) }}" />
|
||||
</div>
|
||||
<div class="col-xl-3 col-md-6 col-sm-6">
|
||||
<label for="email" class="form-label">Email</label>
|
||||
<input type="email" class="form-control" id="email" name="email" value="{{ old('email', $uml->email) }}" />
|
||||
</div>
|
||||
<div class="col-xl-3 col-md-6 col-sm-6">
|
||||
<label for="telepon" class="form-label">Telepon</label>
|
||||
<input type="text" class="form-control" id="telepon" name="telepon" value="{{ old('telepon', $uml->telepon) }}" />
|
||||
</div>
|
||||
</div>
|
||||
<button type="submit" class="btn btn-primary">Simpan</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@push('js')
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.21.0/jquery.validate.min.js"
|
||||
integrity="sha512-KFHXdr2oObHKI9w4Hv1XPKc898mE4kgYx58oqsc/JqqdLMDI4YjOLzom+EMlW8HFUd0QfjfAvxSL6sEq/a42fQ=="
|
||||
crossorigin="anonymous" referrerpolicy="no-referrer"></script>
|
||||
|
||||
<script>
|
||||
$(function () {
|
||||
$('#formCreate').validate({
|
||||
rules: {
|
||||
nama: {
|
||||
required: true,
|
||||
},
|
||||
kode: {
|
||||
required: true,
|
||||
},
|
||||
email: {
|
||||
email: true,
|
||||
}
|
||||
},
|
||||
messages: {
|
||||
nama: 'Nama UML wajib diisi',
|
||||
kode: 'Kode UML wajib diisi',
|
||||
email: 'Email harus dalam format yang benar'
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
@endpush
|
||||
@@ -0,0 +1,146 @@
|
||||
@extends('template.admin.base')
|
||||
|
||||
@push('css')
|
||||
<link rel="stylesheet" href="{{ asset('assets/admin/vendor/libs/datatables-bs5/datatables.bootstrap5.css') }}" />
|
||||
<link rel="stylesheet" href="{{ asset('assets/admin/vendor/libs/datatables-responsive-bs5/responsive.bootstrap5.css') }}" />
|
||||
@endpush
|
||||
|
||||
@section('content')
|
||||
<div class="container-xxl flex-grow-1 container-p-y">
|
||||
<div class="card">
|
||||
<div class="card-header d-flex justify-content-between align-items-center">
|
||||
<h5 class="card-title m-0">Daftar UML</h5>
|
||||
<div id="buttons">
|
||||
<a href="{{ route('admin.uml.create') }}" class="btn btn-primary">
|
||||
<i class="icon-base ti tabler-plus me-sm-1"></i> UML Baru
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="card-datatable table-responsive pt-0">
|
||||
@if (session('success'))
|
||||
<div class="alert alert-dismissible alert-success d-flex align-items-center" role="alert">
|
||||
<span class="alert-icon rounded me-2">
|
||||
<i class="icon-base ti tabler-check icon-md w-px-30"></i>
|
||||
</span>
|
||||
{{ session('success') }}
|
||||
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
<table class="datatables-basic table" id="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Nama</th>
|
||||
<th>Kode Daerah</th>
|
||||
<th>Aksi</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody></tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="modal fade" id="deleteConfirmModal" tabindex="-1" aria-hidden="true">
|
||||
<div class="modal-dialog" role="document">
|
||||
<div class="modal-content">
|
||||
<form id="formDelete" action="{{ route('admin.uml.destroy', ':id') }}" method="POST">
|
||||
@csrf
|
||||
@method('DELETE')
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title" id="deleteConfirmModalLabel">Konfirmasi Menghapus Data</h5>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<p>Apakah data tersebut benar akan dihapus?</p>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-label-secondary" data-bs-dismiss="modal">
|
||||
Batal
|
||||
</button>
|
||||
<button type="submit" class="btn btn-danger">Hapus</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@push('js')
|
||||
<script src="{{ asset('assets/admin/vendor/libs/datatables-bs5/datatables-bootstrap5.js') }}"></script>
|
||||
|
||||
<script>
|
||||
$(function () {
|
||||
$('#table').DataTable({
|
||||
'responsive': true,
|
||||
'lengthChange': true,
|
||||
'autoWidth': false,
|
||||
'processing': true,
|
||||
'serverSide': true,
|
||||
'ajax': function(data, callback, settings) {
|
||||
var order = '';
|
||||
if (data.order.length > 0) {
|
||||
order = data.order[0].dir == 'desc' ? '-' : '';
|
||||
order = order + data.columns[data.order[0].column].data;
|
||||
}
|
||||
|
||||
$.ajax({
|
||||
url: "{{ route('admin.uml.list') }}",
|
||||
data: {
|
||||
size: data.length,
|
||||
page: (data.start / data.length) + 1,
|
||||
search: data.search.value,
|
||||
sort: order,
|
||||
_token:'{{ csrf_token() }}'
|
||||
},
|
||||
type: "POST",
|
||||
success: function(res) {
|
||||
callback({
|
||||
recordsTotal: res.total,
|
||||
recordsFiltered: res.total,
|
||||
data: res.data
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
},
|
||||
'columns': [
|
||||
{ data: 'nama' },
|
||||
{ data: 'kode' },
|
||||
{
|
||||
data: 'id',
|
||||
orderable: false,
|
||||
searchable: false,
|
||||
targets: -1,
|
||||
render: function (data, type, full, meta) {
|
||||
var urlEdit = '{{ route("admin.uml.edit", ":id") }}';
|
||||
urlEdit = urlEdit.replace(':id', data);
|
||||
|
||||
var renderValue =
|
||||
'<a href="' + urlEdit + '" class="btn btn-sm btn-icon">' +
|
||||
' <i class="text-primary icon-base ti tabler-pencil"></i>' +
|
||||
'</a>' +
|
||||
'<button type="button" class="btn btn-sm btn-icon delete" data-id="' + data + '">' +
|
||||
' <i class="text-danger icon-base ti tabler-trash"></i>' +
|
||||
'</button>';
|
||||
return renderValue;
|
||||
}
|
||||
}
|
||||
],
|
||||
});
|
||||
|
||||
$('#table tbody').on( 'click', 'button.delete', function (e) {
|
||||
e.preventDefault();
|
||||
|
||||
var form = $('#formDelete');
|
||||
var action = form.attr('action');
|
||||
action = action.replace(':id', $(this).data('id'));
|
||||
form.attr('action', action);
|
||||
$('#deleteConfirmModal').modal('show');
|
||||
});
|
||||
});
|
||||
</script>
|
||||
@endpush
|
||||
|
||||
Reference in New Issue
Block a user