Update BUMDes
This commit is contained in:
@@ -1,59 +1,132 @@
|
||||
@extends('layout.main')
|
||||
|
||||
|
||||
|
||||
@section('content')
|
||||
<div class="container-xxl flex-grow-1 container-p-y">
|
||||
<div class="d-flex flex-row gap-3 mb-4">
|
||||
<div class="w-25">
|
||||
<div class="container-fluid flex-grow-1 container-p-y bumdes-page">
|
||||
<x-bumdes-alert />
|
||||
<div class="row g-3 mb-4" id="bumdes-overview" aria-label="Ringkasan BUMDes">
|
||||
<div class="col-12 col-md-4">
|
||||
<x-summary-card
|
||||
title="Pengurus BUMDes"
|
||||
count="{{ $totalPengurus }}"
|
||||
subtitle="{{ $totalLakiLaki }} Laki-laki, {{ $totalPerempuan }} Perempuan"
|
||||
icon="user-check"
|
||||
title="Total BUMDes"
|
||||
count="{{ number_format($totalBumdes, 0, ',', '.') }}"
|
||||
subtitle="{{ number_format($totalDesaKelurahan, 0, ',', '.') }} desa/kelurahan terdata"
|
||||
icon="building-community"
|
||||
color="primary"
|
||||
/>
|
||||
</div>
|
||||
<div class="w-25">
|
||||
<div class="col-12 col-md-4">
|
||||
<x-summary-card
|
||||
title="Desa/Kelurahan"
|
||||
count="{{ $totalDesaKelurahan }}"
|
||||
subtitle="desa/kelurahan memiliki data pengurus"
|
||||
icon="map-pin"
|
||||
title="BUMDes Aktif"
|
||||
count="{{ number_format($totalBumdesAktif, 0, ',', '.') }}"
|
||||
subtitle="beroperasi penuh atau terbatas"
|
||||
icon="activity"
|
||||
color="success"
|
||||
/>
|
||||
</div>
|
||||
<div class="w-25">
|
||||
<div class="col-12 col-md-4">
|
||||
<x-summary-card
|
||||
title="Jabatan/Peran"
|
||||
count="{{ $totalJabatan }}"
|
||||
subtitle="jenis jabatan/peran terdata"
|
||||
icon="briefcase"
|
||||
title="Berbadan Hukum"
|
||||
count="{{ number_format($totalBerbadanHukum, 0, ',', '.') }}"
|
||||
subtitle="terdaftar di Kemenkumham"
|
||||
icon="certificate"
|
||||
color="info"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row g-6 bumdes-filter-row">
|
||||
<div class="col-12">
|
||||
<div class="card card-border-shadow-primary">
|
||||
<div class="card-body py-3">
|
||||
<form method="GET" action="{{ route('bumdes.index') }}" id="bumdes-filter-form" data-desa-url="{{ route('desakelurahan.bykecamatan', ':id') }}" aria-label="Filter data BUMDes">
|
||||
<input type="hidden" name="per_page" value="{{ $pengurus->perPage() }}">
|
||||
<div class="bumdes-filter-line">
|
||||
<div class="bumdes-filter-label">
|
||||
<i class="icon-base ti tabler-map-2 me-2"></i><span>Wilayah</span>
|
||||
</div>
|
||||
<div>
|
||||
<input type="hidden" name="kabupaten_kota_id" value="{{ $filters['kabupaten_kota_id'] }}">
|
||||
<div class="bumdes-filter-static" aria-label="Kabupaten/Kota" role="text">
|
||||
{{ preg_replace('/^(kabupaten|kota)\s+/i', '', $selectedKabupaten?->nama ?? 'Semua Kabupaten/Kota') }}
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<select name="kecamatan_id" id="filter-kecamatan" class="form-select form-select-sm" aria-label="Filter Kecamatan" @disabled(empty($filters['kabupaten_kota_id']))>
|
||||
<option value="">Semua Kecamatan</option>
|
||||
@foreach($kecamatanOptions as $option)
|
||||
<option value="{{ $option->id }}" @selected((string) $filters['kecamatan_id'] === (string) $option->id)>{{ $option->nama }}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
</div>
|
||||
<div>
|
||||
<select name="desa_kelurahan_id" id="filter-desa" class="form-select form-select-sm" aria-label="Filter Desa" @disabled(empty($filters['kecamatan_id']))>
|
||||
<option value="">Semua Desa</option>
|
||||
@foreach($desaOptions as $option)
|
||||
<option value="{{ $option->id }}" @selected((string) $filters['desa_kelurahan_id'] === (string) $option->id)>{{ $option->nama }}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<hr class="my-3">
|
||||
|
||||
<div class="bumdes-filter-line bumdes-data-filters">
|
||||
<div class="bumdes-filter-label">
|
||||
<i class="icon-base ti tabler-adjustments-horizontal me-2"></i><span>Data</span>
|
||||
</div>
|
||||
<div>
|
||||
<select name="status_keaktifan" class="form-select form-select-sm" aria-label="Filter Keaktifan BUMDes">
|
||||
<option value="">Semua Keaktifan</option>
|
||||
@foreach($statusKeaktifanOptions as $value => $label)
|
||||
<option value="{{ $value }}" @selected($filters['status_keaktifan'] === $value)>{{ $label }}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
</div>
|
||||
<div>
|
||||
<select name="sort_by" class="form-select form-select-sm" aria-label="Urutkan data BUMDes">
|
||||
<option value="">Urut Terbaru</option>
|
||||
<option value="nama_asc" @selected($filters['sort_by'] === 'nama_asc')>Desa A-Z</option>
|
||||
<option value="nama_desc" @selected($filters['sort_by'] === 'nama_desc')>Desa Z-A</option>
|
||||
</select>
|
||||
</div>
|
||||
<div>
|
||||
<div class="input-group input-group-sm">
|
||||
<input type="text" name="search" class="form-control" placeholder="Cari desa / responden..." value="{{ $filters['search'] }}" aria-label="Cari desa, kecamatan, atau responden BUMDes">
|
||||
<button type="submit" class="btn btn-outline-secondary" aria-label="Cari data BUMDes"><i class="icon-base ti tabler-search"></i></button>
|
||||
</div>
|
||||
</div>
|
||||
<button type="submit" class="btn btn-outline-secondary btn-sm"><i class="icon-base ti tabler-filter me-1"></i>Filter</button>
|
||||
<a href="{{ route('bumdes.index') }}" class="btn btn-outline-secondary btn-sm"><i class="icon-base ti tabler-refresh me-1"></i>Reset</a>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="card">
|
||||
<div class="card-header border-bottom">
|
||||
<h5 class="card-title mb-0">Data Pengurus BUMDes</h5>
|
||||
<h5 class="card-title mb-0">Data BUMDes</h5>
|
||||
</div>
|
||||
|
||||
<div class="card-body border-bottom pt-4">
|
||||
<form method="GET" action="{{ route('bumdes.index') }}" class="d-flex justify-content-between align-items-center row gap-3 gap-md-0">
|
||||
<form method="GET" action="{{ route('bumdes.index') }}" class="row g-3 align-items-end">
|
||||
@foreach($filters as $field => $value)
|
||||
<input type="hidden" name="{{ $field }}" value="{{ $value }}">
|
||||
@endforeach
|
||||
<div class="col-md-auto">
|
||||
<div class="d-flex align-items-center">
|
||||
<label class="me-2 text-nowrap">Show</label>
|
||||
<select name="per_page" class="form-select form-select-sm w-auto" onchange="this.form.submit()">
|
||||
<option value="10" {{ request('per_page') == 10 ? 'selected' : '' }}>10</option>
|
||||
<option value="25" {{ request('per_page') == 25 ? 'selected' : '' }}>25</option>
|
||||
<option value="10" @selected($pengurus->perPage() === 10)>10</option>
|
||||
<option value="25" @selected($pengurus->perPage() === 25)>25</option>
|
||||
</select>
|
||||
<label class="ms-2 text-nowrap">entries</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-auto d-flex gap-2">
|
||||
<div class="input-group input-group-sm w-auto">
|
||||
<input type="text" name="search" class="form-control" placeholder="Cari Nama..." value="{{ request('search') }}">
|
||||
<button type="submit" class="btn btn-outline-primary"><i class="ti tabler-search"></i></button>
|
||||
</div>
|
||||
<div class="col-md-auto ms-md-auto">
|
||||
<a href="{{ route('bumdes.create') }}" class="btn btn-sm btn-primary">
|
||||
<i class="ti tabler-plus me-1"></i> Tambah
|
||||
</a>
|
||||
@@ -62,16 +135,15 @@
|
||||
</div>
|
||||
|
||||
<div class="table-responsive text-nowrap">
|
||||
<table class="table table-hover">
|
||||
<table class="table table-hover align-middle bumdes-list-table">
|
||||
<thead class="border-top">
|
||||
<tr>
|
||||
<th>No</th>
|
||||
<th>Nama</th>
|
||||
<th>Jenis Kelamin</th>
|
||||
<th>Usia</th>
|
||||
<th>Desa/Kelurahan</th>
|
||||
<th>Jabatan/Peran</th>
|
||||
<th>Lama Menjabat</th>
|
||||
<th>BUMDes</th>
|
||||
<th>Keaktifan</th>
|
||||
<th>Badan Hukum</th>
|
||||
<th>Unit Usaha</th>
|
||||
<th>Nama Responden</th>
|
||||
@if($showEnumerator)
|
||||
<th>Nama Enumerator</th>
|
||||
@endif
|
||||
@@ -80,79 +152,55 @@
|
||||
</thead>
|
||||
<tbody>
|
||||
@forelse($pengurus as $item)
|
||||
<tr>
|
||||
@php($ringkasan = $ringkasanBumdes[$item->id])
|
||||
<tr class="bumdes-row">
|
||||
<td>{{ ($pengurus->firstItem() ?? 0) + $loop->index }}</td>
|
||||
<td><span class="text-heading">{{ $item->nama }}</span></td>
|
||||
<td><span class="text-muted">{{ $item->jenis_kelamin ? 'Laki-laki' : 'Perempuan' }}</span></td>
|
||||
<td><span class="text-muted">{{ $item->usia }} tahun</span></td>
|
||||
<td>
|
||||
<span class="text-muted">
|
||||
{{ $item->desaKelurahan?->nama }},
|
||||
{{ $item->desaKelurahan?->kecamatan?->nama }},
|
||||
{{ $item->desaKelurahan?->kecamatan?->kabupatenKota?->nama }},
|
||||
{{ $item->desaKelurahan?->kecamatan?->kabupatenKota?->provinsi?->nama }}
|
||||
</span>
|
||||
<td class="text-wrap bumdes-list-identity">
|
||||
<a href="{{ route('bumdes.edit', $item->id) }}" class="text-heading d-block fw-medium">{{ $ringkasan['judul'] }}</a>
|
||||
<span class="small text-muted">{{ $item->desaKelurahan?->kecamatan?->nama ?? 'Kecamatan belum terisi' }}</span>
|
||||
</td>
|
||||
<td>{{ $item->nama_jabatan }}</td>
|
||||
<td><span class="text-muted">{{ $item->lama_menjabat }}</span></td>
|
||||
<td class="bumdes-list-status">
|
||||
<span class="badge bg-label-{{ $ringkasan['keaktifan']['warna'] }}">{{ $ringkasan['keaktifan']['label'] }}</span>
|
||||
</td>
|
||||
<td class="bumdes-list-status">
|
||||
<span class="badge bg-label-{{ $ringkasan['hukum']['warna'] }}">{{ $ringkasan['hukum']['label'] }}</span>
|
||||
</td>
|
||||
<td class="bumdes-list-units">
|
||||
@if(count($ringkasan['unit_usaha']))
|
||||
<div class="small text-muted text-wrap" title="{{ implode(', ', $ringkasan['unit_usaha']) }}">{{ implode(', ', array_slice($ringkasan['unit_usaha'], 0, 2)) }}</div>
|
||||
@if(count($ringkasan['unit_usaha']) > 2)
|
||||
<span class="small text-muted">+{{ count($ringkasan['unit_usaha']) - 2 }} lainnya</span>
|
||||
@endif
|
||||
@else
|
||||
<span class="small text-muted">Belum terisi</span>
|
||||
@endif
|
||||
</td>
|
||||
<td class="text-wrap"><span class="text-muted">{{ $ringkasan['responden'] }}</span></td>
|
||||
@if($showEnumerator)
|
||||
<td><span class="text-muted">{{ $item->creator?->name ?? '-' }}</span></td>
|
||||
@endif
|
||||
<td>
|
||||
<div class="d-flex align-items-center">
|
||||
<a href="{{ route('bumdes.edit', $item->id) }}" class="btn btn-icon btn-text-secondary rounded-pill edit-record"><i class="ti tabler-edit ti-md"></i></a>
|
||||
<a href="javascript:;" class="btn btn-icon btn-text-secondary rounded-pill delete-record" data-id="{{ $item->id }}" data-nama="{{ $item->nama }}"><i class="ti tabler-trash ti-md"></i></a>
|
||||
<a href="{{ route('bumdes.edit', $item->id) }}" class="btn btn-icon btn-text-secondary rounded-pill edit-record" aria-label="Ubah {{ $ringkasan['judul'] }}"><i class="ti tabler-edit ti-md"></i></a>
|
||||
<form method="POST" action="{{ route('bumdes.destroy', $item) }}" class="bumdes-delete-form" data-nama="{{ $ringkasan['judul'] }}">
|
||||
@csrf
|
||||
@method('DELETE')
|
||||
<button type="submit" class="btn btn-icon btn-text-secondary rounded-pill" aria-label="Hapus {{ $ringkasan['judul'] }}"><i class="ti tabler-trash ti-md"></i></button>
|
||||
</form>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
@empty
|
||||
<tr>
|
||||
<td colspan="{{ $showEnumerator ? 9 : 8 }}" class="text-center py-4">Tidak ada data ditemukan.</td>
|
||||
<td colspan="{{ $showEnumerator ? 8 : 7 }}" class="text-center py-4">Tidak ada data ditemukan.</td>
|
||||
</tr>
|
||||
@endforelse
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<div class="card-footer d-flex justify-content-center justify-content-md-end border-top">
|
||||
{{ $pengurus->appends(request()->query())->links('pagination::bootstrap-5') }}
|
||||
{{ $pengurus->links('pagination::bootstrap-5') }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@push('scripts')
|
||||
<script>
|
||||
'use strict';
|
||||
const csrfToken = "{{ csrf_token() }}";
|
||||
|
||||
$(document).ready(function () {
|
||||
$(document).on('click', '.delete-record', function () {
|
||||
const id = $(this).data('id');
|
||||
const name = $(this).data('nama');
|
||||
|
||||
Swal.fire({
|
||||
title: 'Apakah Anda yakin?',
|
||||
text: `Profile "${name}" akan dihapus secara permanen!`,
|
||||
icon: 'warning',
|
||||
showCancelButton: true,
|
||||
confirmButtonText: 'Ya, Hapus!',
|
||||
customClass: { confirmButton: 'btn btn-primary me-3', cancelButton: 'btn btn-label-secondary' },
|
||||
buttonsStyling: false
|
||||
}).then(function (result) {
|
||||
if (result.value) {
|
||||
$.ajax({
|
||||
url: '{{ route('bumdes.destroy', ':id') }}'.replace(':id', id),
|
||||
type: 'DELETE',
|
||||
headers: { 'X-CSRF-TOKEN': csrfToken },
|
||||
success: function (res) {
|
||||
Swal.fire({ icon: 'success', title: 'Terhapus!', text: res.message, showConfirmButton: false, timer: 1500 })
|
||||
.then(() => window.location.reload());
|
||||
},
|
||||
error: () => Swal.fire({ icon: 'error', title: 'Gagal!', text: 'Terjadi kesalahan sistem.' })
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
</script>
|
||||
@endpush
|
||||
|
||||
Reference in New Issue
Block a user