Skip to content

Commit eeacb94

Browse files
authored
Merge pull request #804 from OpenSID/dev-797
Tambahkan kolom nama desa pada halaman ketenagakerjaan di OpenKab
2 parents 0e4d2ef + 84f957d commit eeacb94

5 files changed

Lines changed: 178 additions & 86 deletions

File tree

app/Http/Controllers/DataPokokController.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,11 @@ public function ketenagakerjaan()
7575
return view('data_pokok.ketenagakerjaan.index', ['title' => $title]);
7676
}
7777

78+
public function cetakKetenagakerjaan(Request $request)
79+
{
80+
return view('data_pokok.ketenagakerjaan.cetak', ['filter' => $request->getQueryString()]);
81+
}
82+
7883
public function infrastruktur()
7984
{
8085
$title = 'Data Prasarana dan Sarana';

catatan_rilis.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,9 @@ Di rilis ini, versi 2508.0.0 berisi penambahan dan perbaikan yang diminta penggu
77
3. [#800](https://github.com/OpenSID/OpenKab/issues/800) Penambahan fungsi untuk penyebutan kelurahan / desa & Kabupaten / Kota.
88
4. [#777](https://github.com/OpenSID/OpenKab/issues/777) Penambahan statistik pekerja migran penduduk.
99
5. [#796](https://github.com/OpenSID/OpenKab/issues/796) Penambahan kolom nama desa pada halaman menu bantuan OpenKab.
10+
6. [#799](https://github.com/OpenSID/OpenKab/issues/799) Penambahan kolom nama desa pada beberapa halaman kesehatan di OpenKab.
11+
7. [#797](https://github.com/OpenSID/OpenKab/issues/797) Penambahan kolom nama desa pada halaman ketenagakerjaan di OpenKab.
12+
1013

1114
#### Perbaikan BUG
1215

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
@extends('layouts.cetak.index')
2+
3+
@section('title', 'Data Ketenagakerjaan')
4+
5+
@section('content')
6+
@include('partials.breadcrumbs')
7+
<div x-data="{
8+
data: {},
9+
async retrievePosts() {
10+
try {
11+
const headers = @include('layouts.components.header_bearer_api_gabungan');
12+
var create_url = new URL({{ json_encode(config('app.databaseGabunganUrl')) }} + '/api/v1/ketenagakerjaan');
13+
14+
// Get current URL parameters and add them to create_url
15+
const currentUrl = new URL(window.location.href);
16+
const urlParams = currentUrl.searchParams;
17+
18+
// Add all search parameters from current URL
19+
for (const [key, value] of urlParams.entries()) {
20+
if (value && value !== '' && value !== 'null') {
21+
create_url.searchParams.set(key, value);
22+
}
23+
}
24+
25+
const response = await fetch(create_url.href, {
26+
method: 'GET',
27+
headers: headers
28+
});
29+
30+
if (!response.ok) throw new Error('Gagal mengambil data');
31+
32+
const result = await response.json();
33+
this.data = result.data;
34+
35+
await $nextTick();
36+
window.print();
37+
} catch (error) {
38+
console.error('Terjadi kesalahan:', error);
39+
alert('Terjadi kesalahan saat mengambil data.');
40+
}
41+
}
42+
}" x-init="retrievePosts">
43+
<table class="border thick" id="tabel-penduduk">
44+
<thead>
45+
<tr class="border thick">
46+
<th class="padat">No</th>
47+
<th class="padat">Nama {{ config('app.sebutanDesa') }}</th>
48+
<th class="padat">NIK</th>
49+
<th class="padat">Pekerjaan</th>
50+
<th class="padat">Jabatan</th>
51+
<th class="padat">Jumlah Penghasilan</th>
52+
<th class="padat">Pelatihan</th>
53+
</tr>
54+
</thead>
55+
<tbody>
56+
<template x-for="(value, index) in data">
57+
<tr>
58+
<td class="padat" x-text="index+1"></td>
59+
<td x-text="value.attributes.nama_desa"></td>
60+
<td x-text="value.attributes.nik"></td>
61+
<td x-text="value.attributes.pekerjaan"></td>
62+
<td x-text="value.attributes.jabatan"></td>
63+
<td x-text="value.attributes.jumlah_penghasilan"></td>
64+
<td x-text="value.attributes.pelatihan"></td>
65+
</tr>
66+
</template>
67+
</tbody>
68+
</table>
69+
</div>
70+
@stop

resources/views/data_pokok/ketenagakerjaan/index.blade.php

Lines changed: 97 additions & 85 deletions
Original file line numberDiff line numberDiff line change
@@ -42,14 +42,22 @@
4242
<div class="col-lg-12">
4343
<div class="card card-outline card-primary">
4444
<div class="card-header">
45-
<div class="float-left">{{ $title }}</div>
45+
<div>{{ $title }}</div>
46+
<div class="row">
47+
<div class="col-sm-3">
48+
<x-print-button :print-url="url('data-pokok/ketenagakerjaan/cetak')" table-id="ketenagakerjaan" :filter="[]" />
49+
<x-excel-download-button :download-url="config('app.databaseGabunganUrl') . '/api/v1/ketenagakerjaan/download'" table-id="ketenagakerjaan"
50+
filename="data_ketenagakerjaan" />
51+
</div>
52+
</div>
4653
</div>
4754
<div class="card-body">
4855
<div class="table-responsive">
4956
<table class="table table-striped" id="ketenagakerjaan">
5057
<thead>
5158
<tr>
5259
<th>No</th>
60+
<th>Nama {{ config('app.sebutanDesa') }}</th>
5361
<th>NIK</th>
5462
<th>Pekerjaan</th>
5563
<th>Jabatan</th>
@@ -68,96 +76,100 @@
6876

6977
@section('js')
7078
@include('data_pokok.ketenagakerjaan.chart')
71-
<script nonce="{{ csp_nonce() }}" >
79+
<script nonce="{{ csp_nonce() }}">
7280
let data_grafik = [];
73-
document.addEventListener("DOMContentLoaded", function(event) {
81+
document.addEventListener("DOMContentLoaded", function(event) {
7482
75-
const header = @include('layouts.components.header_bearer_api_gabungan');
76-
var url = new URL("{{ config('app.databaseGabunganUrl').'/api/v1/ketenagakerjaan' }}");
77-
url.searchParams.set("kode_kabupaten", "{{ session('kabupaten.kode_kabupaten') ?? '' }}");
78-
url.searchParams.set("kode_kecamatan", "{{ session('kecamatan.kode_kecamatan') ?? '' }}");
79-
url.searchParams.set("config_desa", "{{ session('desa.id') ?? '' }}");
83+
const header = @include('layouts.components.header_bearer_api_gabungan');
84+
var url = new URL("{{ config('app.databaseGabunganUrl') . '/api/v1/ketenagakerjaan' }}");
85+
url.searchParams.set("kode_kabupaten", "{{ session('kabupaten.kode_kabupaten') ?? '' }}");
86+
url.searchParams.set("kode_kecamatan", "{{ session('kecamatan.kode_kecamatan') ?? '' }}");
87+
url.searchParams.set("config_desa", "{{ session('desa.id') ?? '' }}");
8088
81-
var ketenagakerjaan = $('#ketenagakerjaan').DataTable({
82-
processing: true,
83-
serverSide: true,
84-
autoWidth: false,
85-
ordering: false,
86-
searchPanes: {
87-
viewTotal: false,
88-
columns: [0]
89-
},
90-
ajax: {
91-
url: url.href,
92-
headers: header,
93-
method: 'get',
94-
data: function(row) {
95-
return {
96-
"page[size]": row.length,
97-
"page[number]": (row.start / row.length) + 1,
98-
"filter[search]": row.search.value,
99-
"filter[kode_desa]": $("#kode_desa").val(),
100-
};
89+
var ketenagakerjaan = $('#ketenagakerjaan').DataTable({
90+
processing: true,
91+
serverSide: true,
92+
autoWidth: false,
93+
ordering: false,
94+
searchPanes: {
95+
viewTotal: false,
96+
columns: [0]
10197
},
102-
dataSrc: function(json) {
103-
104-
if (json.data.length > 0) {
105-
json.recordsTotal = json.meta.pagination.total
106-
json.recordsFiltered = json.meta.pagination.total
107-
data_grafik = [];
108-
json.data.forEach(function(item, index) {
109-
data_grafik.push(item.attributes)
110-
})
111-
grafikPie()
112-
return json.data;
113-
}
114-
return false;
98+
ajax: {
99+
url: url.href,
100+
headers: header,
101+
method: 'get',
102+
data: function(row) {
103+
return {
104+
"page[size]": row.length,
105+
"page[number]": (row.start / row.length) + 1,
106+
"filter[search]": row.search.value,
107+
"filter[kode_desa]": $("#kode_desa").val(),
108+
};
109+
},
110+
dataSrc: function(json) {
111+
112+
if (json.data.length > 0) {
113+
json.recordsTotal = json.meta.pagination.total
114+
json.recordsFiltered = json.meta.pagination.total
115+
data_grafik = [];
116+
json.data.forEach(function(item, index) {
117+
data_grafik.push(item.attributes)
118+
})
119+
grafikPie()
120+
return json.data;
121+
}
122+
return false;
123+
},
115124
},
116-
},
117-
columnDefs: [{
118-
targets: '_all',
119-
className: 'text-nowrap',
125+
columnDefs: [{
126+
targets: '_all',
127+
className: 'text-nowrap',
128+
}, ],
129+
columns: [{
130+
data: null,
131+
orderable: false
132+
},
133+
{
134+
data: "attributes.nama_desa",
135+
name: "nama_desa",
136+
orderable: false
137+
},
138+
{
139+
data: "attributes.nik",
140+
name: "nik",
141+
orderable: false
142+
},
143+
{
144+
data: "attributes.pekerjaan",
145+
name: "pekerjaan",
146+
orderable: false
147+
},
148+
{
149+
data: "attributes.jabatan",
150+
name: "jabatan",
151+
orderable: false
152+
},
153+
{
154+
data: "attributes.jumlah_penghasilan",
155+
name: "jumlah_penghasilan",
156+
orderable: false
157+
},
158+
{
159+
data: "attributes.pelatihan",
160+
name: "pelatihan",
161+
orderable: false
120162
},
121163
],
122-
columns: [{
123-
data: null,
124-
orderable: false
125-
},
126-
{
127-
data: "attributes.nik",
128-
name: "nik",
129-
orderable: false
130-
},
131-
{
132-
data: "attributes.pekerjaan",
133-
name: "pekerjaan",
134-
orderable: false
135-
},
136-
{
137-
data: "attributes.jabatan",
138-
name: "jabatan",
139-
orderable: false
140-
},
141-
{
142-
data: "attributes.jumlah_penghasilan",
143-
name: "jumlah_penghasilan",
144-
orderable: false
145-
},
146-
{
147-
data: "attributes.pelatihan",
148-
name: "pelatihan",
149-
orderable: false
150-
},
151-
],
152-
})
153-
ketenagakerjaan.on('draw.dt', function() {
154-
var PageInfo = $('#ketenagakerjaan').DataTable().page.info();
155-
ketenagakerjaan.column(0, {
156-
page: 'current'
157-
}).nodes().each(function(cell, i) {
158-
cell.innerHTML = i + 1 + PageInfo.start;
164+
})
165+
ketenagakerjaan.on('draw.dt', function() {
166+
var PageInfo = $('#ketenagakerjaan').DataTable().page.info();
167+
ketenagakerjaan.column(0, {
168+
page: 'current'
169+
}).nodes().each(function(cell, i) {
170+
cell.innerHTML = i + 1 + PageInfo.start;
171+
});
159172
});
160-
});
161-
})
173+
})
162174
</script>
163-
@endsection
175+
@endsection

routes/web.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,9 @@
158158
Route::middleware(['permission:datapresisi-read'])->controller(DataPokokController::class)
159159
->prefix('data-pokok')
160160
->group(function () {
161-
Route::middleware(['permission:datapokok-ketenagakerjaan-read'])->get('/ketenagakerjaan', 'ketenagakerjaan')->name('pendidikan');
161+
Route::middleware(['permission:datapokok-ketenagakerjaan-read'])->get('/ketenagakerjaan', 'ketenagakerjaan')->name('ketenagakerjaan');
162+
Route::middleware(['permission:datapokok-ketenagakerjaan-read'])->get('/ketenagakerjaan/cetak', 'cetakKetenagakerjaan');
163+
162164
Route::middleware(['permission:datapokok-pendidikan-read'])->get('/pendidikan', 'pendidikan')->name('pendidikan');
163165
Route::middleware(['permission:datapokok-pariwisata-read'])->get('/pariwisata', 'pariwisata')->name('pariwisata');
164166
Route::middleware(['permission:datapokok-jaminan-sosial-read'])->get('/jaminan-sosial', 'jaminanSosial')->name('jaminan-sosial');

0 commit comments

Comments
 (0)