diff --git a/.gitignore b/.gitignore index f28956df3..14bb6985e 100644 --- a/.gitignore +++ b/.gitignore @@ -38,3 +38,4 @@ docs specs/ .opencode/ .specify/ +storage/sso diff --git a/app/Helpers/general.php b/app/Helpers/general.php index 83f8f411e..17ee91156 100644 --- a/app/Helpers/general.php +++ b/app/Helpers/general.php @@ -3,7 +3,7 @@ use Carbon\Carbon; use Illuminate\Support\Facades\Log; use Illuminate\Support\Str; -use Intervention\Image\Laravel\Facades\Image; +use Intervention\Image\ImageManager; define('SASARAN', serialize([ '1' => 'Penduduk', @@ -39,7 +39,7 @@ function csp_nonce() */ function openkab_versi() { - return 'v2608.0.1'; + return 'v2608.0.2'; } } @@ -194,7 +194,7 @@ function default_favicon($favicon) $pathFavicon = public_path('favicons/'.$favicon); if (! file_exists($pathFavicon)) { $filePath = public_path('assets/img/opensid_logo.png'); - Image::read($filePath)->resize(96, 96)->save($pathFavicon, quality: 100); + ImageManager::gd()->read($filePath)->resize(96, 96)->save($pathFavicon, quality: 100); } } } diff --git a/app/Http/Controllers/Api/IdentitasController.php b/app/Http/Controllers/Api/IdentitasController.php index 97a391da8..3a16ae139 100644 --- a/app/Http/Controllers/Api/IdentitasController.php +++ b/app/Http/Controllers/Api/IdentitasController.php @@ -8,7 +8,7 @@ use App\Http\Transformers\IdentitasTransformer; use App\Models\Identitas; use Illuminate\Support\Facades\Storage; -use Intervention\Image\Laravel\Facades\Image; +use Intervention\Image\ImageManager; use Symfony\Component\HttpFoundation\Response; class IdentitasController extends Controller @@ -67,7 +67,7 @@ public function upload(UploadImageRequest $request, $id) $filename = uniqid('img_'); $file = $request->file('file'); - Image::read($file->path())->scale(width: 150, height: 150)->save($path.'/'.$filename.'.png'); //create logo + ImageManager::gd()->read($file->path())->scale(width: 150, height: 150)->save($path.'/'.$filename.'.png'); //create logo Identitas::where('id', $id)->update([ 'logo' => $filename.'.png', @@ -120,13 +120,13 @@ private function generateFaviconsFromImagePath($filePath, $distPath) // create an image manager instance with imagick driver // Image::configure(['driver' => 'imagick']); - Image::read($filePath)->resize(192, 192)->save($distPath.'/android-chrome-192x192.png', quality: 100); - Image::read($filePath)->resize(512, 512)->save($distPath.'/android-chrome-512x512.png', quality: 100); - Image::read($filePath)->resize(180, 180)->save($distPath.'/apple-touch-icon.png', quality: 100); - Image::read($filePath)->resize(16, 16)->save($distPath.'/favicon-16x16.png', quality: 100); - Image::read($filePath)->resize(32, 32)->save($distPath.'/favicon-32x32.png', quality: 100); - Image::read($filePath)->resize(96, 96)->save($distPath.'/favicon-96x96.png', quality: 100); - Image::read($filePath)->resize(150, 150)->save($distPath.'/mstile-150x150.png', quality: 100); + ImageManager::gd()->read($filePath)->resize(192, 192)->save($distPath.'/android-chrome-192x192.png', quality: 100); + ImageManager::gd()->read($filePath)->resize(512, 512)->save($distPath.'/android-chrome-512x512.png', quality: 100); + ImageManager::gd()->read($filePath)->resize(180, 180)->save($distPath.'/apple-touch-icon.png', quality: 100); + ImageManager::gd()->read($filePath)->resize(16, 16)->save($distPath.'/favicon-16x16.png', quality: 100); + ImageManager::gd()->read($filePath)->resize(32, 32)->save($distPath.'/favicon-32x32.png', quality: 100); + ImageManager::gd()->read($filePath)->resize(96, 96)->save($distPath.'/favicon-96x96.png', quality: 100); + ImageManager::gd()->read($filePath)->resize(150, 150)->save($distPath.'/mstile-150x150.png', quality: 100); copy($distPath.'/favicon-16x16.png', $distPath.'/favicon.ico'); $dataManifest = [ diff --git a/app/Http/Controllers/DataPokokController.php b/app/Http/Controllers/DataPokokController.php index 3c814c3fa..e662b2433 100644 --- a/app/Http/Controllers/DataPokokController.php +++ b/app/Http/Controllers/DataPokokController.php @@ -27,7 +27,7 @@ public function cetak_agama(Request $request) public function kesehatan() { - $title = 'Data Kependudukan dan Statistik'; + $title = 'Data Kesehatan dan Statistik'; return view('data_pokok.kesehatan.index', ['title' => $title]); } diff --git a/app/Http/Controllers/DesaController.php b/app/Http/Controllers/DesaController.php index 2ac184c80..4fc81d4db 100644 --- a/app/Http/Controllers/DesaController.php +++ b/app/Http/Controllers/DesaController.php @@ -14,6 +14,10 @@ public function index() 'kode_kecamatan' => null, ]); + $filters = collect($filters)->map(function ($value) { + return in_array($value, ['null', 'undefined'], true) ? null : $value; + })->all(); + return view('desa.index', compact('filters')); } diff --git a/app/Services/ApiProxyService.php b/app/Services/ApiProxyService.php index 6b04f5b57..ab85df843 100644 --- a/app/Services/ApiProxyService.php +++ b/app/Services/ApiProxyService.php @@ -146,6 +146,8 @@ protected function callApi(string $method, string $endpoint, array $params = [], } catch (\Exception $e) { Log::error('API Proxy: Exception', [ 'endpoint' => $endpoint, + 'url' => $url, + 'method' => $method, 'file' => __FILE__, 'error' => $e->getMessage(), ]); diff --git a/catatan_rilis.md b/catatan_rilis.md index bf132b739..60a0a76a1 100644 --- a/catatan_rilis.md +++ b/catatan_rilis.md @@ -1,12 +1,15 @@ -Di rilis ini, versi 2608.0.1 berisi penambahan dan perbaikan yang diminta pengguna. +Di rilis ini, versi 2608.0.2 berisi penambahan dan perbaikan yang diminta pengguna. #### Penambahan Fitur #### Perbaikan BUG 1. [#1105](https://github.com/OpenSID/OpenKab/issues/1105) Perbaikan filter kecamatan tampil tanpa memilih kabupaten terlebih dahulu. -2. [#1108](https://github.com/OpenSID/OpenKab/issues/1108) Perbaiki filter tahun dan desa masih ada yang kurang di data sandang. - +2. [#1108](https://github.com/OpenSID/OpenKab/issues/1108) Perbaikan filter tahun dan desa masih ada yang kurang di data sandang. +3. [#1111](https://github.com/OpenSID/OpenKab/issues/1111) Perbaikan style pada halaman slide tertutupi card icon penduduk. +4. [#1262](https://github.com/OpenSID/OpenKab/issues/1262) Perbaikan grafik tidak tampil pada Profile Kependudukan - Kesehatan. +5. [#1260](https://github.com/OpenSID/OpenKab/issues/1260) Perbaikan Error 500 gagal ambil data statistik partisipasi sekolah dan ijazah tertinggi. +6. [#1265](https://github.com/OpenSID/OpenKab/issues/1265) perbaikan data desa tidak tampil di OpenKab. #### Perubahan Teknis diff --git a/composer.lock b/composer.lock index 7f7018e48..f836112ca 100644 --- a/composer.lock +++ b/composer.lock @@ -3721,82 +3721,6 @@ ], "time": "2026-03-08T20:05:35+00:00" }, - { - "name": "livewire/livewire", - "version": "v4.4.0", - "source": { - "type": "git", - "url": "https://github.com/livewire/livewire.git", - "reference": "514b29d5a23594d4e4846494f580268b20c2f11e" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/livewire/livewire/zipball/514b29d5a23594d4e4846494f580268b20c2f11e", - "reference": "514b29d5a23594d4e4846494f580268b20c2f11e", - "shasum": "" - }, - "require": { - "illuminate/database": "^10.0|^11.0|^12.0|^13.0", - "illuminate/routing": "^10.0|^11.0|^12.0|^13.0", - "illuminate/support": "^10.0|^11.0|^12.0|^13.0", - "illuminate/validation": "^10.0|^11.0|^12.0|^13.0", - "laravel/prompts": "^0.1.24|^0.2|^0.3", - "league/mime-type-detection": "^1.9", - "php": "^8.1", - "symfony/console": "^6.0|^7.0|^8.0", - "symfony/http-kernel": "^6.2|^7.0|^8.0" - }, - "require-dev": { - "calebporzio/sushi": "^2.1", - "laravel/framework": "^10.15.0|^11.0|^12.0|^13.0", - "mockery/mockery": "^1.3.1", - "orchestra/testbench": "^8.21.0|^9.0|^10.0|^11.0", - "orchestra/testbench-dusk": "^8.24|^9.1|^10.0|^11.0", - "phpunit/phpunit": "^10.4|^11.5|^12.5", - "psy/psysh": "^0.11.22|^0.12" - }, - "type": "library", - "extra": { - "laravel": { - "aliases": { - "Livewire": "Livewire\\Livewire" - }, - "providers": [ - "Livewire\\LivewireServiceProvider" - ] - } - }, - "autoload": { - "files": [ - "src/helpers.php" - ], - "psr-4": { - "Livewire\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Caleb Porzio", - "email": "calebporzio@gmail.com" - } - ], - "description": "A front-end framework for Laravel.", - "support": { - "issues": "https://github.com/livewire/livewire/issues", - "source": "https://github.com/livewire/livewire/tree/v4.4.0" - }, - "funding": [ - { - "url": "https://github.com/livewire", - "type": "github" - } - ], - "time": "2026-08-10T15:24:22+00:00" - }, { "name": "maennchen/zipstream-php", "version": "3.2.2", @@ -9681,21 +9605,20 @@ }, { "name": "yajra/laravel-datatables-export", - "version": "v13.2.2", + "version": "v13.3.0", "source": { "type": "git", "url": "https://github.com/yajra/laravel-datatables-export.git", - "reference": "8d9a7352c8ee5b531dd497891850bfa68a671f15" + "reference": "28933d5b55e6703da4c82c750635e40d8cab29d4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/yajra/laravel-datatables-export/zipball/8d9a7352c8ee5b531dd497891850bfa68a671f15", - "reference": "8d9a7352c8ee5b531dd497891850bfa68a671f15", + "url": "https://api.github.com/repos/yajra/laravel-datatables-export/zipball/28933d5b55e6703da4c82c750635e40d8cab29d4", + "reference": "28933d5b55e6703da4c82c750635e40d8cab29d4", "shasum": "" }, "require": { "ext-json": "*", - "livewire/livewire": "^4.2.2", "openspout/openspout": "^4.24.5 || ^5.0", "php": "^8.3", "phpoffice/phpspreadsheet": "^5.8.1", @@ -9704,11 +9627,15 @@ "require-dev": { "larastan/larastan": "^3.9.3", "laravel/pint": "^1.29", + "livewire/livewire": "^4.2.2", "orchestra/testbench": "^11.0", "pestphp/pest": "^4.4.3", "pestphp/pest-plugin-laravel": "^4.1", "rector/rector": "^2.3.9" }, + "suggest": { + "livewire/livewire": "Required only when using the Livewire export button." + }, "type": "library", "extra": { "laravel": { @@ -9746,7 +9673,7 @@ ], "support": { "issues": "https://github.com/yajra/laravel-datatables-export/issues", - "source": "https://github.com/yajra/laravel-datatables-export/tree/v13.2.2" + "source": "https://github.com/yajra/laravel-datatables-export/tree/v13.3.0" }, "funding": [ { @@ -9754,7 +9681,7 @@ "type": "github" } ], - "time": "2026-07-24T02:53:16+00:00" + "time": "2026-08-13T03:53:02+00:00" }, { "name": "yajra/laravel-datatables-fractal", @@ -15484,12 +15411,12 @@ ], "aliases": [], "minimum-stability": "stable", - "stability-flags": [], + "stability-flags": {}, "prefer-stable": true, "prefer-lowest": false, "platform": { "php": "^8.4" }, - "platform-dev": [], - "plugin-api-version": "2.6.0" + "platform-dev": {}, + "plugin-api-version": "2.9.0" } diff --git a/package-lock.json b/package-lock.json index 9f5849d18..8975affde 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1973,9 +1973,9 @@ } }, "node_modules/fast-uri": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.4.tgz", - "integrity": "sha512-8JnbkQ4juDyvYs4mgFGQqg4yCYtFDtUtmp2QIQq11ZZe5CFQ5wcqm1rqDgAh/QdMySuBnPzMUiJUNZG5N/AiQw==", + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.5.tgz", + "integrity": "sha512-gHwA1O9LDIcKunMKhObS/HimwtehO1nPUECKAu5TpKgaO19fcWEl4bliWe1jWxVFvIXztJjjQ4L8XQ1EU9f7Jw==", "dev": true, "funding": [ { @@ -2791,9 +2791,9 @@ } }, "node_modules/nanoid": { - "version": "3.3.16", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.16.tgz", - "integrity": "sha512-bzlKTyNJ7+LdGIIwy8ijFpIqEQIvafahV7eYykJ8Cvh42EdJeODoJ6gUJXpQJvej1BddH8OqTXZNE/KfbWAu8Q==", + "version": "3.3.18", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.18.tgz", + "integrity": "sha512-DTg4MJbGMWkfi6VZFdNt2/caMbQy4Ou+Op/hJQvGEWcnVfoA1QA+xzRKAzw9jD6+GVOOeYr/mIcuDSdug6F6+w==", "dev": true, "funding": [ { @@ -5136,9 +5136,9 @@ } }, "fast-uri": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.4.tgz", - "integrity": "sha512-8JnbkQ4juDyvYs4mgFGQqg4yCYtFDtUtmp2QIQq11ZZe5CFQ5wcqm1rqDgAh/QdMySuBnPzMUiJUNZG5N/AiQw==", + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.5.tgz", + "integrity": "sha512-gHwA1O9LDIcKunMKhObS/HimwtehO1nPUECKAu5TpKgaO19fcWEl4bliWe1jWxVFvIXztJjjQ4L8XQ1EU9f7Jw==", "dev": true, "peer": true }, @@ -5595,9 +5595,9 @@ "dev": true }, "nanoid": { - "version": "3.3.16", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.16.tgz", - "integrity": "sha512-bzlKTyNJ7+LdGIIwy8ijFpIqEQIvafahV7eYykJ8Cvh42EdJeODoJ6gUJXpQJvej1BddH8OqTXZNE/KfbWAu8Q==", + "version": "3.3.18", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.18.tgz", + "integrity": "sha512-DTg4MJbGMWkfi6VZFdNt2/caMbQy4Ou+Op/hJQvGEWcnVfoA1QA+xzRKAzw9jD6+GVOOeYr/mIcuDSdug6F6+w==", "dev": true }, "neo-async": { diff --git a/public/web/css/openkab.css b/public/web/css/openkab.css index 21bac9057..ae5828d19 100644 --- a/public/web/css/openkab.css +++ b/public/web/css/openkab.css @@ -73,7 +73,7 @@ button.btn-dark { position: relative; z-index: 2; margin: 0 auto; - margin-top: -143px; + /*margin-top: -143px;*/ margin-bottom: 20px; } diff --git a/resources/views/components/wilayah_filter_js.blade.php b/resources/views/components/wilayah_filter_js.blade.php index 8316c297d..88f54d19d 100644 --- a/resources/views/components/wilayah_filter_js.blade.php +++ b/resources/views/components/wilayah_filter_js.blade.php @@ -7,6 +7,10 @@ }; const identitasOpenkab = $(`meta[name="${AJAX_PARAMS_CONFIG.metaTagName}"]`).attr('content') || ''; let isAutoLoad = false; + let urlFilterRestoring = false; + const queryKodeKabupaten = new URLSearchParams(window.location.search).get('filter[kode_kabupaten]'); + const queryKodeKecamatan = new URLSearchParams(window.location.search).get('filter[kode_kecamatan]'); + const queryKodeDesa = new URLSearchParams(window.location.search).get('filter[kode_desa]'); let urlKabupaten = "{{ config('app.databaseGabunganUrl') . '/api/v1/statistik-web/get-list-kabupaten' }}?" + @@ -20,7 +24,6 @@ var optionEmpty = new Option("", ""); $("#filter_kabupaten").append(optionEmpty); - const queryKodeKabupaten = new URLSearchParams(window.location.search).get('filter[kode_kabupaten]'); const filterValue = queryKodeKabupaten || identitasOpenkab; for (var i = 0; i < data.length; i++) { @@ -30,6 +33,7 @@ if (data[i].kode_kabupaten === filterValue) { isAutoLoad = true; + urlFilterRestoring = true; $("#filter_kabupaten").val(filterValue).trigger('change'); } } @@ -75,8 +79,18 @@ $("#filter_kecamatan").append(newOption); } $('#filter_kecamatan').prop('disabled', false); + if (urlFilterRestoring && queryKodeKecamatan) { + $('#filter_kecamatan').val(queryKodeKecamatan); + if ($('#filter_kecamatan').val() === queryKodeKecamatan) { + $('#filter_kecamatan').trigger('change'); + } else { + urlFilterRestoring = false; + } + } else { + urlFilterRestoring = false; + } if (isAutoLoad) { - $('#bt_filter').trigger('click'); + $('#bt_filter, #filter').trigger('click'); isAutoLoad = false; } }) @@ -104,6 +118,11 @@ $("#filter_desa").append(newOption); } $('#filter_desa').prop('disabled', false); + if (urlFilterRestoring && queryKodeDesa) { + $('#filter_desa').val(queryKodeDesa); + $('#filter_desa').trigger('change'); + } + urlFilterRestoring = false; }) } }) diff --git a/resources/views/dasbor/summary.blade.php b/resources/views/dasbor/summary.blade.php index e99c96941..1c85e4f6b 100644 --- a/resources/views/dasbor/summary.blade.php +++ b/resources/views/dasbor/summary.blade.php @@ -30,9 +30,9 @@ $(`.kategori-item .jumlah-${index}-elm`).closest('.item-box').find('a') .data( 'filter', { - 'kode_kabupaten': kabupaten, - 'kode_kecamatan': kecamatan, - 'kode_desa': desa, + 'kode_kabupaten': kabupaten || '', + 'kode_kecamatan': kecamatan || '', + 'kode_desa': desa || '', 'nama_kabupaten': $('#filter_kabupaten').find(':selected') .text(), 'nama_kecamatan': $('#filter_kecamatan').find(':selected') @@ -47,12 +47,13 @@ event.preventDefault(); let url = $(this).data('url'); let _url = new URL(url); - _url.searchParams.set('filter[kode_kabupaten]', $(this).data('filter')['kode_kabupaten']); - _url.searchParams.set('filter[kode_kecamatan]', $(this).data('filter')['kode_kecamatan']); - _url.searchParams.set('filter[kode_desa]', $(this).data('filter')['kode_desa']); - _url.searchParams.set('filter[nama_kabupaten]', $(this).data('filter')['nama_kabupaten']); - _url.searchParams.set('filter[nama_kecamatan]', $(this).data('filter')['nama_kecamatan']); - _url.searchParams.set('filter[nama_desa]', $(this).data('filter')['nama_desa']); + let filter = $(this).data('filter'); + ['kode_kabupaten', 'kode_kecamatan', 'kode_desa', 'nama_kabupaten', 'nama_kecamatan', 'nama_desa'] + .forEach(function(key) { + if (filter[key]) { + _url.searchParams.set('filter[' + key + ']', filter[key]); + } + }); window.location.href = _url.href; }) }) diff --git a/resources/views/data_pokok/kesehatan/chart.blade.php b/resources/views/data_pokok/kesehatan/chart.blade.php index 1ae76b25f..73bf41d25 100644 --- a/resources/views/data_pokok/kesehatan/chart.blade.php +++ b/resources/views/data_pokok/kesehatan/chart.blade.php @@ -1,8 +1,8 @@ @include('data_pokok.data_presisi.partials.chart')