realisasi verifikasi
This commit is contained in:
@@ -64,7 +64,7 @@ class RealisasiController extends Controller
|
|||||||
abort(403);
|
abort(403);
|
||||||
}
|
}
|
||||||
|
|
||||||
$realisasi = Realisasi::with('target', 'target.aktivitas', 'target.aktivitas.transformasi')
|
$realisasi = Realisasi::with('target', 'target.aktivitas', 'target.aktivitas.transformasi', 'verifikasi')
|
||||||
->find($id);
|
->find($id);
|
||||||
if (!$realisasi) {
|
if (!$realisasi) {
|
||||||
return response()->json([
|
return response()->json([
|
||||||
|
|||||||
@@ -17,9 +17,9 @@ class VerifikasiController extends Controller
|
|||||||
/**
|
/**
|
||||||
* Display a listing of the resource.
|
* Display a listing of the resource.
|
||||||
*/
|
*/
|
||||||
public function index()
|
public function index(Request $request): JsonResponse
|
||||||
{
|
{
|
||||||
//
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -83,8 +83,25 @@ class VerifikasiController extends Controller
|
|||||||
/**
|
/**
|
||||||
* Remove the specified resource from storage.
|
* Remove the specified resource from storage.
|
||||||
*/
|
*/
|
||||||
public function destroy(string $id)
|
public function destroy(string $id): JsonResponse
|
||||||
{
|
{
|
||||||
//
|
if (!Gate::any(['super_admin', 'admin'])) {
|
||||||
|
abort(403);
|
||||||
|
}
|
||||||
|
|
||||||
|
$verifikasi = Verifikasi::find($id);
|
||||||
|
if (!$verifikasi) {
|
||||||
|
return response()->json([
|
||||||
|
'status' => 'error',
|
||||||
|
'message' => 'Data verifikasi tidak ditemukan.'
|
||||||
|
], 404);
|
||||||
|
}
|
||||||
|
|
||||||
|
$verifikasi->update(['updated_by' => auth()->id()]);
|
||||||
|
$verifikasi->delete();
|
||||||
|
return response()->json([
|
||||||
|
'status' => 'success',
|
||||||
|
'message' => 'Dokumen bukti berhasil dihapus.'
|
||||||
|
]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -144,11 +144,18 @@
|
|||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</li> -->
|
</li> -->
|
||||||
<li class="menu-item">
|
<li class="menu-item {{ request()->routeIs(['realisasi.*', 'kelompok-belajar-tani.*', 'workshop.*']) ? 'active open' : '' }}">
|
||||||
<a href="javascript:void(0);" class="menu-link menu-toggle">
|
<a href="javascript:void(0);" class="menu-link menu-toggle">
|
||||||
<i class="menu-icon icon-base ti tabler-webhook"></i>
|
<i class="menu-icon icon-base ti tabler-webhook"></i>
|
||||||
<div data-i18n="Program & Komunitas">Program & Komunitas</div>
|
<div data-i18n="Program & Komunitas">Program & Komunitas</div>
|
||||||
</a>
|
</a>
|
||||||
|
<ul class="menu-sub">
|
||||||
|
<li class="menu-item {{ request()->routeIs('realisasi.*') ? 'active' : '' }}">
|
||||||
|
<a href="{{ route('realisasi.index') }}" class="menu-link">
|
||||||
|
<div data-i18n="Capaian Program">Capaian Program</div>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
<ul class="menu-sub">
|
<ul class="menu-sub">
|
||||||
<li class="menu-item {{ request()->routeIs('kelompok-belajar-tani.*') ? 'active' : '' }}">
|
<li class="menu-item {{ request()->routeIs('kelompok-belajar-tani.*') ? 'active' : '' }}">
|
||||||
<a href="{{ route('kelompok-belajar-tani.index') }}" class="menu-link">
|
<a href="{{ route('kelompok-belajar-tani.index') }}" class="menu-link">
|
||||||
@@ -157,19 +164,19 @@
|
|||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
<ul class="menu-sub">
|
<ul class="menu-sub">
|
||||||
<li class="menu-item">
|
<li class="menu-item {{ request()->routeIs('workshop.*') ? 'active' : '' }}">
|
||||||
<a href="{{ route('workshop.index') }}" class="menu-link">
|
<a href="{{ route('workshop.index') }}" class="menu-link">
|
||||||
<div data-i18n="Workshop & Lokakarya">Workshop & Lokakarya</div>
|
<div data-i18n="Workshop & Lokakarya">Workshop & Lokakarya</div>
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
<ul class="menu-sub">
|
<!-- <ul class="menu-sub">
|
||||||
<li class="menu-item">
|
<li class="menu-item">
|
||||||
<a href="#" class="menu-link">
|
<a href="#" class="menu-link">
|
||||||
<div data-i18n="Desiminasi & Replikasi">Desiminasi & Replikasi</div>
|
<div data-i18n="Desiminasi & Replikasi">Desiminasi & Replikasi</div>
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul> -->
|
||||||
</li>
|
</li>
|
||||||
<!-- Master Data -->
|
<!-- Master Data -->
|
||||||
<li class="menu-header small">
|
<li class="menu-header small">
|
||||||
@@ -182,26 +189,26 @@
|
|||||||
<div data-i18n="Wilayah">Wilayah</div>
|
<div data-i18n="Wilayah">Wilayah</div>
|
||||||
</a>
|
</a>
|
||||||
<ul class="menu-sub">
|
<ul class="menu-sub">
|
||||||
<li class="menu-item">
|
<li class="menu-item">
|
||||||
<a href="{{ route('provinsi.index') }}" class="menu-link">
|
<a href="{{ route('provinsi.index') }}" class="menu-link">
|
||||||
<div data-i18n="Provinsi">provinsi</div>
|
<div data-i18n="Provinsi">provinsi</div>
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="menu-item">
|
<li class="menu-item">
|
||||||
<a href="{{ route('kabupatenkota.index') }}" class="menu-link">
|
<a href="{{ route('kabupatenkota.index') }}" class="menu-link">
|
||||||
<div data-i18n="Kabupaten Kota">Kabupaten Kota</div>
|
<div data-i18n="Kabupaten Kota">Kabupaten Kota</div>
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="menu-item">
|
<li class="menu-item">
|
||||||
<a href="{{ route('kecamatan.index') }}" class="menu-link">
|
<a href="{{ route('kecamatan.index') }}" class="menu-link">
|
||||||
<div data-i18n="Kecamatan">Kecamatan</div>
|
<div data-i18n="Kecamatan">Kecamatan</div>
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="menu-item">
|
<li class="menu-item">
|
||||||
<a href="{{ route('desakelurahan.index') }}" class="menu-link">
|
<a href="{{ route('desakelurahan.index') }}" class="menu-link">
|
||||||
<div data-i18n="Desa Kelurahan">Desa Kelurahan</div>
|
<div data-i18n="Desa Kelurahan">Desa Kelurahan</div>
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li class="menu-item">
|
<li class="menu-item">
|
||||||
|
|||||||
@@ -92,8 +92,16 @@
|
|||||||
data-bs-toggle="tooltip" data-bs-placement="top" data-bs-original-title="Tambah Dokumen Verifikasi">
|
data-bs-toggle="tooltip" data-bs-placement="top" data-bs-original-title="Tambah Dokumen Verifikasi">
|
||||||
<i class="ti tabler-file-plus ti-md"></i>
|
<i class="ti tabler-file-plus ti-md"></i>
|
||||||
</a>
|
</a>
|
||||||
@if($targetAktivitas->latestRealisasi && $targetAktivitas->latestRealisasi->verifikasi->count() == 0)
|
@if($targetAktivitas->latestRealisasi && $targetAktivitas->latestRealisasi->verifikasi->count() > 0)
|
||||||
@else
|
<a href="javascript:;" class="btn btn-icon btn-text-secondary rounded-pill list-verifikasi"
|
||||||
|
data-framework-id="{{ $framework->id }}"
|
||||||
|
data-transformasi-id="{{ $transformasi->id }}"
|
||||||
|
data-aktivitas-id="{{ $aktivitas->id }}"
|
||||||
|
data-target-id="{{ $targetAktivitas->id }}"
|
||||||
|
data-realisasi-id="{{ $targetAktivitas->latestRealisasi->id }}"
|
||||||
|
data-bs-toggle="tooltip" data-bs-placement="top" data-bs-original-title="Daftar Dokumen Verifikasi">
|
||||||
|
<i class="ti tabler-files ti-md"></i>
|
||||||
|
</a>
|
||||||
@endif
|
@endif
|
||||||
@endif
|
@endif
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -91,6 +91,17 @@
|
|||||||
data-bs-toggle="tooltip" data-bs-placement="top" data-bs-original-title="Tambah Dokumen Verifikasi">
|
data-bs-toggle="tooltip" data-bs-placement="top" data-bs-original-title="Tambah Dokumen Verifikasi">
|
||||||
<i class="ti tabler-file-plus ti-md"></i>
|
<i class="ti tabler-file-plus ti-md"></i>
|
||||||
</a>
|
</a>
|
||||||
|
@if($target->latestRealisasi && $target->latestRealisasi->verifikasi->count() > 0)
|
||||||
|
<a href="javascript:;" class="btn btn-icon btn-text-secondary rounded-pill list-verifikasi"
|
||||||
|
data-framework-id="{{ $framework->id }}"
|
||||||
|
data-transformasi-id="{{ $transformasi->id }}"
|
||||||
|
data-aktivitas-id="{{ $tujuan->id }}"
|
||||||
|
data-target-id="{{ $target->id }}"
|
||||||
|
data-realisasi-id="{{ $target->latestRealisasi->id }}"
|
||||||
|
data-bs-toggle="tooltip" data-bs-placement="top" data-bs-original-title="Daftar Dokumen Verifikasi">
|
||||||
|
<i class="ti tabler-files ti-md"></i>
|
||||||
|
</a>
|
||||||
|
@endif
|
||||||
@endif
|
@endif
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
|
|||||||
@@ -77,6 +77,7 @@
|
|||||||
@include('program.realisasi.list')
|
@include('program.realisasi.list')
|
||||||
@include('program.realisasi.edit')
|
@include('program.realisasi.edit')
|
||||||
@include('program.verifikasi.add')
|
@include('program.verifikasi.add')
|
||||||
|
@include('program.verifikasi.list')
|
||||||
@endsection
|
@endsection
|
||||||
|
|
||||||
@push('scripts')
|
@push('scripts')
|
||||||
|
|||||||
@@ -0,0 +1,117 @@
|
|||||||
|
<div
|
||||||
|
class="offcanvas offcanvas-end"
|
||||||
|
tabindex="-1"
|
||||||
|
id="offcanvasListVerifikasi"
|
||||||
|
aria-labelledby="offcanvasListVerifikasiLabel">
|
||||||
|
<div class="offcanvas-header border-bottom">
|
||||||
|
<h5 id="offcanvasListVerifikasiLabel" class="offcanvas-title">Daftar Dokumen Verifikasi</h5>
|
||||||
|
<button
|
||||||
|
type="button"
|
||||||
|
class="btn-close text-reset"
|
||||||
|
data-bs-dismiss="offcanvas"
|
||||||
|
aria-label="Tutup"></button>
|
||||||
|
</div>
|
||||||
|
<div class="offcanvas-body mx-0 flex-grow-0 p-6 h-100">
|
||||||
|
<form class="t-0" id="historyVerifikasiForm">
|
||||||
|
|
||||||
|
<input type="hidden" id="list-verifikasi-transformasi-id" name="transformasi_id"/>
|
||||||
|
<input type="hidden" id="list-verifikasi-aktivitas-id" name="aktivitas_id"/>
|
||||||
|
<input type="hidden" id="list-verifikasi-target-id" name="target_id"/>
|
||||||
|
<input type="hidden" id="list-verifikasi-realisasi-id" name="realisasi_id"/>
|
||||||
|
|
||||||
|
<div class="mb-6 form-control-validation">
|
||||||
|
<label class="form-label" for="list-verifikasi-variabel">Variabel Target<span class="text-danger">*</span></label>
|
||||||
|
<input type="text" class="form-control" id="list-verifikasi-variabel" name="variabel" placeholder="Cth: AK1" readonly />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<table class="table table-hover" id="historyVerifikasiTable">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>Dokumen</th>
|
||||||
|
<th>Aksi</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody id="historyVerifikasiTableBody">
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<button type="reset" class="btn btn-label-danger" data-bs-dismiss="offcanvas">Tutup</button>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
@push('scripts')
|
||||||
|
<script>
|
||||||
|
$(document).ready(function() {
|
||||||
|
const offcanvasListVerifikasi = new bootstrap.Offcanvas(document.getElementById('offcanvasListVerifikasi'));
|
||||||
|
|
||||||
|
$(".list-verifikasi").click(function () {
|
||||||
|
const targetId = $(this).data('target-id');
|
||||||
|
const aktivitasId = $(this).data('aktivitas-id');
|
||||||
|
const transformasiId = $(this).data('transformasi-id');
|
||||||
|
const realisasiId = $(this).data('realisasi-id');
|
||||||
|
$('#list-verifikasi-aktivitas-id').val(aktivitasId);
|
||||||
|
$('#list-verifikasi-transformasi-id').val(transformasiId);
|
||||||
|
$('#list-verifikasi-target-id').val(targetId);
|
||||||
|
$('#list-verifikasi-realisasi-id').val(realisasiId);
|
||||||
|
|
||||||
|
$.get("{{ route('realisasi.show', ':id') }}"
|
||||||
|
.replace(':id', realisasiId), function (res) {
|
||||||
|
if (res.status === 'success') {
|
||||||
|
$('#list-verifikasi-variabel').val(res.data.target.variabel);
|
||||||
|
|
||||||
|
let rows = '';
|
||||||
|
if (res.data.tipe === 'integer') {
|
||||||
|
realisasiValue = res.data.realisasi_integer;
|
||||||
|
} else if (res.data.tipe === 'float') {
|
||||||
|
realisasiValue = res.data.realisasi_float;
|
||||||
|
} else if (res.data.tipe === 'boolean') {
|
||||||
|
realisasiValue = res.data.realisasi_boolean ? 'Ya' : 'Tidak';
|
||||||
|
}
|
||||||
|
|
||||||
|
res.data.verifikasi.forEach(function (verifikasi) {
|
||||||
|
rows += '<tr><td>' + verifikasi.dokumen + '</td><td>'
|
||||||
|
+ '<a href="' + verifikasi.link_dokumen + '" target="_blank" class="btn btn-icon btn-text-secondary rounded-pill">'
|
||||||
|
+ '<i class="ti tabler-file ti-md"></i></a>'
|
||||||
|
+ '<a href="javascript:;" class="btn btn-icon btn-text-danger rounded-pill delete-verifikasi" data-id="' + verifikasi.id + '" data-nama="' + verifikasi.dokumen + '">'
|
||||||
|
+ '<i class="ti tabler-trash ti-md"></i></a>'
|
||||||
|
+ '</td></tr>';
|
||||||
|
});
|
||||||
|
$('#historyVerifikasiTableBody').html(rows);
|
||||||
|
|
||||||
|
offcanvasListVerifikasi.show();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
$('#historyVerifikasiTable').on('click', '.delete-verifikasi', function () {
|
||||||
|
const id = $(this).data('id');
|
||||||
|
const nama = $(this).data('nama');
|
||||||
|
Swal.fire({
|
||||||
|
title: 'Hapus?',
|
||||||
|
text: `Dokumen Verifikasi: ${nama} akan dihapus!`,
|
||||||
|
icon: 'warning',
|
||||||
|
showCancelButton: true,
|
||||||
|
confirmButtonText: 'Ya, Hapus!',
|
||||||
|
customClass: { confirmButton: 'btn btn-danger me-3', cancelButton: 'btn btn-label-secondary' },
|
||||||
|
buttonsStyling: false
|
||||||
|
}).then(function (result) {
|
||||||
|
if (result.value) {
|
||||||
|
$.ajax({
|
||||||
|
url: "{{ route('verifikasi.destroy', ':id') }}".replace(':id', id),
|
||||||
|
type: 'POST',
|
||||||
|
data: {
|
||||||
|
_token: '{{ csrf_token() }}',
|
||||||
|
_method: 'DELETE'
|
||||||
|
},
|
||||||
|
success: function () {
|
||||||
|
Swal.fire({ icon: 'success', title: 'Terhapus!', showConfirmButton: false, timer: 1500 })
|
||||||
|
.then(() => location.reload());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
@endpush
|
||||||
+1
-1
@@ -139,5 +139,5 @@ Route::middleware('auth')
|
|||||||
Route::resource('framework.transformasi.aktivitas', App\Http\Controllers\Web\Program\AktivitasController::class)->only(['show', 'store', 'update', 'destroy']);
|
Route::resource('framework.transformasi.aktivitas', App\Http\Controllers\Web\Program\AktivitasController::class)->only(['show', 'store', 'update', 'destroy']);
|
||||||
Route::resource('framework.transformasi.aktivitas.target', App\Http\Controllers\Web\Program\TargetController::class)->only(['show', 'store', 'update', 'destroy']);
|
Route::resource('framework.transformasi.aktivitas.target', App\Http\Controllers\Web\Program\TargetController::class)->only(['show', 'store', 'update', 'destroy']);
|
||||||
Route::resource('realisasi', App\Http\Controllers\Web\Program\RealisasiController::class)->only('index', 'store', 'show', 'update', 'destroy');
|
Route::resource('realisasi', App\Http\Controllers\Web\Program\RealisasiController::class)->only('index', 'store', 'show', 'update', 'destroy');
|
||||||
Route::resource('verifikasi', App\Http\Controllers\Web\Program\VerifikasiController::class)->only('store', 'update', 'destroy');
|
Route::resource('verifikasi', App\Http\Controllers\Web\Program\VerifikasiController::class)->only('store', 'destroy');
|
||||||
});
|
});
|
||||||
Reference in New Issue
Block a user