From aed321d4907b9b840b10d83b1535bd3e1bac102c Mon Sep 17 00:00:00 2001 From: cindy Date: Wed, 10 Jun 2026 19:36:55 +0700 Subject: [PATCH] Fix: Convert 03PovertyMapping from submodule to regular folder --- 03PovertyMapping | 1 - 03PovertyMapping/.gitignore | 20 + 03PovertyMapping/Dockerfile | 9 + 03PovertyMapping/LICENSE | 21 + 03PovertyMapping/README.md | 42 + 03PovertyMapping/api/aid/index.php | 216 +++ 03PovertyMapping/api/auth/check.php | 95 + 03PovertyMapping/api/centers/index.php | 334 ++++ 03PovertyMapping/api/houses/index.php | 558 ++++++ 03PovertyMapping/api/public/report.php | 461 +++++ 03PovertyMapping/api/public/upload.php | 145 ++ 03PovertyMapping/api/reports/index.php | 175 ++ 03PovertyMapping/api/stats/index.php | 217 +++ 03PovertyMapping/assets/css/style.css | 1039 +++++++++++ 03PovertyMapping/assets/js/admin.js | 29 + 03PovertyMapping/assets/js/api.js | 162 ++ 03PovertyMapping/assets/js/app.js | 246 +++ 03PovertyMapping/assets/js/auth.js | 170 ++ 03PovertyMapping/assets/js/config.js | 142 ++ 03PovertyMapping/assets/js/dashboard.js | 286 +++ 03PovertyMapping/assets/js/forms.js | 1004 +++++++++++ 03PovertyMapping/assets/js/map.js | 176 ++ 03PovertyMapping/assets/js/markers.js | 961 ++++++++++ 03PovertyMapping/assets/js/photo-upload.js | 159 ++ 03PovertyMapping/assets/js/public-reports.js | 350 ++++ 03PovertyMapping/config/bootstrap.php | 94 + 03PovertyMapping/config/config.php | 28 + 03PovertyMapping/config/database.php | 32 + 03PovertyMapping/database/migrate.php | 381 ++++ 03PovertyMapping/database/seeder.sql | 186 ++ 03PovertyMapping/database/structure.sql | 326 ++++ 03PovertyMapping/index.html | 778 ++++++++ 03PovertyMapping/lapor.html | 1557 +++++++++++++++++ 03PovertyMapping/login.html | 315 ++++ 03PovertyMapping/middleware/Response.php | 47 + 03PovertyMapping/middleware/Validator.php | 137 ++ 03PovertyMapping/models/AuditLog.php | 37 + 03PovertyMapping/models/PovertyCalculator.php | 149 ++ 03PovertyMapping/update_users.php | 33 + 03PovertyMapping/uploads/.htaccess | 13 + .../reports_4_378e0629b95b01d6f5538657.png | Bin 0 -> 333922 bytes .../reports_5_43fea4b2601780d8d1ade422.png | Bin 0 -> 333922 bytes 42 files changed, 11130 insertions(+), 1 deletion(-) delete mode 160000 03PovertyMapping create mode 100644 03PovertyMapping/.gitignore create mode 100644 03PovertyMapping/Dockerfile create mode 100644 03PovertyMapping/LICENSE create mode 100644 03PovertyMapping/README.md create mode 100644 03PovertyMapping/api/aid/index.php create mode 100644 03PovertyMapping/api/auth/check.php create mode 100644 03PovertyMapping/api/centers/index.php create mode 100644 03PovertyMapping/api/houses/index.php create mode 100644 03PovertyMapping/api/public/report.php create mode 100644 03PovertyMapping/api/public/upload.php create mode 100644 03PovertyMapping/api/reports/index.php create mode 100644 03PovertyMapping/api/stats/index.php create mode 100644 03PovertyMapping/assets/css/style.css create mode 100644 03PovertyMapping/assets/js/admin.js create mode 100644 03PovertyMapping/assets/js/api.js create mode 100644 03PovertyMapping/assets/js/app.js create mode 100644 03PovertyMapping/assets/js/auth.js create mode 100644 03PovertyMapping/assets/js/config.js create mode 100644 03PovertyMapping/assets/js/dashboard.js create mode 100644 03PovertyMapping/assets/js/forms.js create mode 100644 03PovertyMapping/assets/js/map.js create mode 100644 03PovertyMapping/assets/js/markers.js create mode 100644 03PovertyMapping/assets/js/photo-upload.js create mode 100644 03PovertyMapping/assets/js/public-reports.js create mode 100644 03PovertyMapping/config/bootstrap.php create mode 100644 03PovertyMapping/config/config.php create mode 100644 03PovertyMapping/config/database.php create mode 100644 03PovertyMapping/database/migrate.php create mode 100644 03PovertyMapping/database/seeder.sql create mode 100644 03PovertyMapping/database/structure.sql create mode 100644 03PovertyMapping/index.html create mode 100644 03PovertyMapping/lapor.html create mode 100644 03PovertyMapping/login.html create mode 100644 03PovertyMapping/middleware/Response.php create mode 100644 03PovertyMapping/middleware/Validator.php create mode 100644 03PovertyMapping/models/AuditLog.php create mode 100644 03PovertyMapping/models/PovertyCalculator.php create mode 100644 03PovertyMapping/update_users.php create mode 100644 03PovertyMapping/uploads/.htaccess create mode 100644 03PovertyMapping/uploads/reports/reports_4_378e0629b95b01d6f5538657.png create mode 100644 03PovertyMapping/uploads/reports/reports_5_43fea4b2601780d8d1ade422.png diff --git a/03PovertyMapping b/03PovertyMapping deleted file mode 160000 index 7f555a2..0000000 --- a/03PovertyMapping +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 7f555a2494376e7c5149bd57d4954e90c39890d7 diff --git a/03PovertyMapping/.gitignore b/03PovertyMapping/.gitignore new file mode 100644 index 0000000..f513539 --- /dev/null +++ b/03PovertyMapping/.gitignore @@ -0,0 +1,20 @@ +ο»Ώ# OS files +.DS_Store +Thumbs.db +desktop.ini + +# IDE files +.vscode/ +.idea/ + +# Logs +*.log +logs/ + +# Config sensitive +config/config.local.php +.env + +# Temporary files +*.tmp +*.cache diff --git a/03PovertyMapping/Dockerfile b/03PovertyMapping/Dockerfile new file mode 100644 index 0000000..36962dc --- /dev/null +++ b/03PovertyMapping/Dockerfile @@ -0,0 +1,9 @@ +FROM php:8.2-apache + +RUN docker-php-ext-install mysqli pdo pdo_mysql + +COPY . /var/www/html/ + +RUN chown -R www-data:www-data /var/www/html + +EXPOSE 80 \ No newline at end of file diff --git a/03PovertyMapping/LICENSE b/03PovertyMapping/LICENSE new file mode 100644 index 0000000..efb911f --- /dev/null +++ b/03PovertyMapping/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2026 cindyrasl + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/03PovertyMapping/README.md b/03PovertyMapping/README.md new file mode 100644 index 0000000..d353923 --- /dev/null +++ b/03PovertyMapping/README.md @@ -0,0 +1,42 @@ +# WebGIS Poverty Mapping + +Sistem Informasi Geografis (GIS) berbasis web untuk memetakan, menganalisis, dan mengelola data kesejahteraan sosial (kemiskinan) pada tingkat rumah tangga. Aplikasi ini membantu petugas di lapangan dan administrator dalam melakukan pendataan secara visual melalui peta interaktif. + +## Fitur Utama + +- πŸ—ΊοΈ **Peta Geografis Interaktif:** Visualisasi data rumah tangga dan fasilitas ibadah menggunakan Leaflet.js. +- πŸ‘₯ **Manajemen Data Rumah Tangga:** Pengelolaan data keluarga, pekerjaan, hingga perhitungan status kemiskinan secara otomatis. +- 🎁 **Riwayat Bantuan:** Pencatatan distribusi bantuan sosial per rumah tangga. +- πŸ“’ **Laporan Publik:** Masyarakat umum dapat melapor kasus kemiskinan dengan menyertakan bukti foto (tanpa perlu login). +- πŸ“· **Unggah Foto:** Mendukung unggah foto rumah dan foto bukti laporan. +- πŸ” **Hak Akses Berjenjang:** Sistem memiliki hak akses untuk Admin dan Petugas Lapangan. +- πŸ“ˆ **Dasbor Analitik:** Grafik statistik dan Key Performance Indicator (KPI) terkait data kemiskinan (khusus Admin). +- πŸ“± **Desain Responsif:** Tampilan yang menyesuaikan dengan baik di perangkat desktop maupun seluler (mobile-friendly). + +## Teknologi yang Digunakan + +- **Frontend:** HTML5, Vanilla CSS, Vanilla JavaScript +- **Peta & Grafik:** Leaflet.js, Chart.js +- **Backend:** PHP 8.1+ (Native) +- **Database:** MySQL 8.0+ / MariaDB 10.6+ + +## Cara Menjalankan Aplikasi + +1. **Persiapan:** Pastikan Anda telah menginstal server lokal seperti XAMPP atau Laragon yang mendukung PHP 8.1+ dan MySQL. +2. **Salin Folder:** Tempatkan folder proyek ini ke dalam direktori server web Anda (misalnya `htdocs` untuk XAMPP). +3. **Database:** + - Buat database baru di phpMyAdmin. + - Impor file SQL yang tersedia (berisi struktur tabel dan data awal). +4. **Konfigurasi:** + - Sesuaikan konfigurasi koneksi database Anda di dalam file `config/config.php`. +5. **Jalankan:** + - Akses aplikasi melalui browser dengan mengunjungi URL lokal Anda (misal: `http://localhost/PovertyMapping/login.html`). + +## Penggunaan & Hak Akses + +Sistem menggunakan login berupa **Username** dan **Password** (tidak menggunakan format email). Terdapat tiga jenis interaksi utama: +1. **Admin:** Memiliki akses penuh termasuk dasbor statistik, kelola pengguna, dan persetujuan laporan publik. +2. **Petugas Lapangan:** Dapat menambah dan mengedit data rumah tangga serta mencatat penyaluran bantuan di lapangan. +3. **Masyarakat (Publik):** Hanya dapat mengakses halaman Laporan Publik untuk mengirim laporan bantuan darurat. + +> **Catatan Keamanan:** Sistem sudah dilengkapi dengan perlindungan dasar terhadap SQL Injection (menggunakan PDO Prepared Statements), XSS, dan sistem pembatasan laju (Rate Limiting) untuk laporan publik. \ No newline at end of file diff --git a/03PovertyMapping/api/aid/index.php b/03PovertyMapping/api/aid/index.php new file mode 100644 index 0000000..e86a663 --- /dev/null +++ b/03PovertyMapping/api/aid/index.php @@ -0,0 +1,216 @@ += ?'; $params[] = $_GET['from']; } + if (!empty($_GET['to'])) { $where[] = 'ah.aid_date <= ?'; $params[] = $_GET['to']; } + + $whereSQL = implode(' AND ', $where); + $limit = min((int)($_GET['limit'] ?? 100), 500); + $offset = max(0, (int)($_GET['offset'] ?? 0)); + + $stmt = $pdo->prepare(" + SELECT ah.*, h.head_name, h.poverty_status, rc.name AS center_name + FROM aid_history ah + LEFT JOIN households h ON h.id = ah.household_id + LEFT JOIN religious_centers rc ON rc.id = ah.center_id + WHERE $whereSQL + ORDER BY ah.aid_date DESC, ah.created_at DESC + LIMIT $limit OFFSET $offset + "); + $stmt->execute($params); + + $cntStmt = $pdo->prepare("SELECT COUNT(*) FROM aid_history ah WHERE $whereSQL"); + $cntStmt->execute($params); + + Response::success(['aid_history' => $stmt->fetchAll(), 'total' => (int)$cntStmt->fetchColumn()]); + break; + } + + case 'GET:show': { + if (!$id) Response::error('ID is required.', 400); + $pdo = Database::get(); + $stmt = $pdo->prepare(" + SELECT ah.*, h.head_name, rc.name AS center_name + FROM aid_history ah + LEFT JOIN households h ON h.id = ah.household_id + LEFT JOIN religious_centers rc ON rc.id = ah.center_id + WHERE ah.id = ? + "); + $stmt->execute([$id]); + $row = $stmt->fetch(); + if (!$row) Response::notFound('Aid record not found.'); + Response::success($row); + break; + } + + case 'POST:create': { + $data = Validator::json(); + Validator::make($data, [ + 'household_id' => 'required|integer', + 'aid_type' => 'required|in:sembako,pendanaan,pelatihan,sembako_pendanaan,sembako_pelatihan,pendanaan_pelatihan,lengkap', + 'aid_date' => 'required|date', + 'amount' => 'integer|min:0', + ])->validate_or_fail(); + + $pdo = Database::get(); + + // Check if household exists + $hh = $pdo->prepare('SELECT id FROM households WHERE id = ? AND is_active = 1'); + $hh->execute([(int)$data['household_id']]); + if (!$hh->fetch()) Response::notFound('Household not found.'); + + // Insert menggunakan kolom description (bukan notes) + $stmt = $pdo->prepare(" + INSERT INTO aid_history + (household_id, center_id, aid_type, aid_date, amount, description, given_by) + VALUES (?, ?, ?, ?, ?, ?, ?) + "); + $stmt->execute([ + (int)$data['household_id'], + !empty($data['center_id']) ? (int)$data['center_id'] : null, + $data['aid_type'], + $data['aid_date'], + !empty($data['amount']) ? (int)$data['amount'] : null, + !empty($data['notes']) ? Validator::sanitizeString($data['notes']) : null, + (int)($_SESSION['user_id'] ?? 1) // current user ID + ]); + + $newId = (int)$pdo->lastInsertId(); + + // Update household aid_status to 'received' + $pdo->prepare("UPDATE households SET aid_status = 'received' WHERE id = ?") + ->execute([(int)$data['household_id']]); + + AuditLog::record('Catat Bantuan', 'aid_history', $newId, null, $data); + Response::created(['id' => $newId], 'Bantuan berhasil dicatat.'); + break; + } + + case 'POST:update': { + if (!$id) Response::error('ID is required.', 400); + + $data = Validator::json(); + Validator::make($data, [ + 'aid_type' => 'required|in:sembako,pendanaan,pelatihan,sembako_pendanaan,sembako_pelatihan,pendanaan_pelatihan,lengkap', + 'aid_date' => 'required|date', + 'amount' => 'integer|min:0', + ])->validate_or_fail(); + + $pdo = Database::get(); + + // Get old data for audit + $old = $pdo->prepare('SELECT * FROM aid_history WHERE id = ?'); + $old->execute([$id]); + $oldRow = $old->fetch(); + if (!$oldRow) Response::notFound('Aid record not found.'); + + // Update menggunakan kolom description + $pdo->prepare(" + UPDATE aid_history SET + aid_type = ?, aid_date = ?, amount = ?, description = ?, center_id = ? + WHERE id = ? + ")->execute([ + $data['aid_type'], + $data['aid_date'], + !empty($data['amount']) ? (int)$data['amount'] : null, + !empty($data['notes']) ? Validator::sanitizeString($data['notes']) : null, + !empty($data['center_id']) ? (int)$data['center_id'] : null, + $id, + ]); + + AuditLog::record('Update Bantuan', 'aid_history', $id, $oldRow, $data); + Response::success(null, 'Bantuan diperbarui.'); + break; + } + + case 'POST:delete': { + requireAdmin(); // only admin can delete aid records + + if (!$id) Response::error('ID is required.', 400); + + $pdo = Database::get(); + + // Get old data for audit + $old = $pdo->prepare('SELECT * FROM aid_history WHERE id = ?'); + $old->execute([$id]); + $row = $old->fetch(); + if (!$row) Response::notFound('Aid record not found.'); + + // Delete record + $pdo->prepare('DELETE FROM aid_history WHERE id = ?')->execute([$id]); + + // Check if household still has any aid records + $checkStmt = $pdo->prepare('SELECT COUNT(*) FROM aid_history WHERE household_id = ?'); + $checkStmt->execute([$row['household_id']]); + $remaining = (int)$checkStmt->fetchColumn(); + + // If no more aid records, update aid_status back to 'not_yet' + if ($remaining === 0) { + $pdo->prepare("UPDATE households SET aid_status = 'not_yet' WHERE id = ?") + ->execute([$row['household_id']]); + } + + AuditLog::record('Hapus Bantuan', 'aid_history', $id, $row); + Response::success(null, 'Bantuan dihapus.'); + break; + } + + case 'GET:stats': { + $pdo = Database::get(); + + $byType = $pdo->query(" + SELECT aid_type, COUNT(*) AS cnt, COALESCE(SUM(amount), 0) AS total_amount + FROM aid_history + GROUP BY aid_type + ORDER BY cnt DESC + ")->fetchAll(); + + $monthly = $pdo->query(" + SELECT + DATE_FORMAT(aid_date, '%Y-%m') AS month, + COUNT(*) AS distributions, + COALESCE(SUM(amount), 0) AS total_amount + FROM aid_history + GROUP BY month + ORDER BY month DESC + LIMIT 12 + ")->fetchAll(); + + $total = (int)$pdo->query("SELECT COUNT(DISTINCT household_id) FROM aid_history")->fetchColumn(); + $totalDist = (int)$pdo->query("SELECT COUNT(*) FROM aid_history")->fetchColumn(); + + Response::success([ + 'by_type' => $byType, + 'monthly' => array_reverse($monthly), + 'summary' => [ + 'total_distributions' => $totalDist, + 'total_households_aided' => $total + ], + ]); + break; + } + + default: + Response::methodNotAllowed(); +} \ No newline at end of file diff --git a/03PovertyMapping/api/auth/check.php b/03PovertyMapping/api/auth/check.php new file mode 100644 index 0000000..aaea1e0 --- /dev/null +++ b/03PovertyMapping/api/auth/check.php @@ -0,0 +1,95 @@ + true, + 'user_id' => (int)$_SESSION['user_id'], + 'name' => $_SESSION['name'] ?? '', + 'email' => $_SESSION['email'] ?? '', + 'role' => $_SESSION['role'], + ]); + } else { + Response::success(['logged_in' => false]); + } +} + +// ================================================================ +// LOGIN +// ================================================================ +if ($method === 'POST' && $action === 'login') { + $data = Validator::json(); + $v = Validator::make($data, [ + 'email' => 'required', + 'password' => 'required', + ]); + $v->validate_or_fail(); + + $pdo = Database::get(); + $stmt = $pdo->prepare( + 'SELECT id, name, email, password_hash, role, is_active FROM users WHERE email = ? LIMIT 1' + ); + $stmt->execute([strtolower(trim($data['email']))]); + $user = $stmt->fetch(); + + if (!$user || !$user['is_active']) { + AuditLog::record('auth.login_failed', 'users', null, null, ['email' => $data['email']]); + Response::error('Username atau password salah.', 401); + } + + if (!password_verify($data['password'], $user['password_hash'])) { + AuditLog::record('auth.login_failed', 'users', null, null, ['email' => $data['email']]); + Response::error('Username atau password salah.', 401); + } + + // Regenerate session ID to prevent fixation + session_regenerate_id(true); + + $_SESSION['user_id'] = $user['id']; + $_SESSION['name'] = $user['name']; + $_SESSION['email'] = $user['email']; + $_SESSION['role'] = $user['role']; + + // Update last_login_at + try { + $pdo->prepare('UPDATE users SET last_login_at = NOW() WHERE id = ?') + ->execute([$user['id']]); + } catch (\Throwable) {} + + AuditLog::record('auth.login', 'users', (int)$user['id']); + + Response::success([ + 'user_id' => (int)$user['id'], + 'name' => $user['name'], + 'email' => $user['email'], + 'role' => $user['role'], + ], 'Login berhasil.'); +} + +// ================================================================ +// LOGOUT +// ================================================================ +if ($method === 'POST' && $action === 'logout') { + $userId = $_SESSION['user_id'] ?? null; + AuditLog::record('auth.logout', 'users', $userId ? (int)$userId : null); + $_SESSION = []; + session_destroy(); + Response::success(null, 'Logout berhasil.'); +} + +Response::methodNotAllowed(); \ No newline at end of file diff --git a/03PovertyMapping/api/centers/index.php b/03PovertyMapping/api/centers/index.php new file mode 100644 index 0000000..bfa8981 --- /dev/null +++ b/03PovertyMapping/api/centers/index.php @@ -0,0 +1,334 @@ +prepare(" + SELECT + rc.id, rc.name, rc.worship_type, rc.address, + rc.kelurahan, rc.kecamatan, + rc.latitude, rc.longitude, rc.radius, + rc.contact_person, rc.contact_phone, rc.notes, + rc.is_active, rc.created_at, rc.updated_at + FROM religious_centers rc + WHERE $whereSQL + ORDER BY rc.name + "); + $stmt->execute($params); + $rows = $stmt->fetchAll(); + + // Hitung household_count dan pending_aid_count secara terpisah + foreach ($rows as &$r) { + $r['latitude'] = (float)$r['latitude']; + $r['longitude'] = (float)$r['longitude']; + $r['radius'] = (int)$r['radius']; + + // Hitung jumlah rumah yang dikelola center ini + $countStmt = $pdo->prepare(" + SELECT COUNT(*) FROM households + WHERE managing_center_id = ? AND is_active = 1 + "); + $countStmt->execute([$r['id']]); + $r['household_count'] = (int)$countStmt->fetchColumn(); + + // Hitung jumlah rumah yang belum terima bantuan + $pendingStmt = $pdo->prepare(" + SELECT COUNT(*) FROM households + WHERE managing_center_id = ? AND is_active = 1 AND aid_status = 'not_yet' + "); + $pendingStmt->execute([$r['id']]); + $r['pending_aid_count'] = (int)$pendingStmt->fetchColumn(); + } + unset($r); + + Response::success(['centers' => $rows, 'total' => count($rows)]); + break; + } + + case 'GET:show': { + if (!$id) Response::error('ID required', 400); + + $pdo = Database::get(); + $stmt = $pdo->prepare(" + SELECT * FROM religious_centers + WHERE id = ? AND is_active = 1 + "); + $stmt->execute([$id]); + $row = $stmt->fetch(); + + if (!$row) { + Response::notFound('Not found'); + } + + $row['latitude'] = (float)$row['latitude']; + $row['longitude'] = (float)$row['longitude']; + $row['radius'] = (int)$row['radius']; + + Response::success($row); + break; + } + + case 'GET:nearby': { + $lat = (float)($_GET['lat'] ?? 0); + $lng = (float)($_GET['lng'] ?? 0); + $km = min(50, (float)($_GET['km'] ?? 5)); + + if ($lat === 0.0 && $lng === 0.0) { + Response::error('lat and lng required', 400); + } + + $pdo = Database::get(); + $stmt = $pdo->prepare(" + SELECT + id, name, worship_type, address, + latitude, longitude, radius, + (6371 * ACOS( + COS(RADIANS(?)) * COS(RADIANS(latitude)) * + COS(RADIANS(longitude) - RADIANS(?)) + + SIN(RADIANS(?)) * SIN(RADIANS(latitude)) + )) AS distance_km + FROM religious_centers + WHERE is_active = 1 + HAVING distance_km <= ? + ORDER BY distance_km + LIMIT 10 + "); + $stmt->execute([$lat, $lng, $lat, $km]); + $rows = $stmt->fetchAll(); + + foreach ($rows as &$r) { + $r['latitude'] = (float)$r['latitude']; + $r['longitude'] = (float)$r['longitude']; + $r['radius'] = (int)$r['radius']; + $r['distance_km'] = round((float)$r['distance_km'], 3); + } + unset($r); + + Response::success(['centers' => $rows]); + break; + } + + case 'GET:coverage': { + if (!$id) Response::error('ID required', 400); + + $pdo = Database::get(); + $center = $pdo->prepare("SELECT * FROM religious_centers WHERE id = ? AND is_active = 1"); + $center->execute([$id]); + $c = $center->fetch(); + + if (!$c) { + Response::notFound('Center not found'); + } + + $stmt = $pdo->prepare(" + SELECT + id, head_name, full_address, latitude, longitude, + poverty_status, aid_status + FROM households + WHERE is_active = 1 + "); + $stmt->execute(); + $allHouseholds = $stmt->fetchAll(); + + $households = []; + foreach ($allHouseholds as $h) { + $distance = haversineDistance( + (float)$c['latitude'], (float)$c['longitude'], + (float)$h['latitude'], (float)$h['longitude'] + ); + if ($distance <= (float)$c['radius']) { + $h['distance_m'] = round($distance, 1); + $h['latitude'] = (float)$h['latitude']; + $h['longitude'] = (float)$h['longitude']; + $households[] = $h; + } + } + + usort($households, function($a, $b) { + return $a['distance_m'] <=> $b['distance_m']; + }); + + Response::success([ + 'center' => $c, + 'households' => $households, + 'count' => count($households) + ]); + break; + } + + case 'POST:create': { + requireAuth(); + $data = Validator::json(); + + $pdo = Database::get(); + $stmt = $pdo->prepare(" + INSERT INTO religious_centers + (name, worship_type, address, latitude, longitude, radius, + contact_person, contact_phone, notes) + VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?) + "); + $stmt->execute([ + $data['name'] ?? '', + $data['worship_type'] ?? 'masjid', + $data['address'] ?? '', + (float)($data['latitude'] ?? 0), + (float)($data['longitude'] ?? 0), + (int)($data['radius'] ?? 300), + $data['contact_person'] ?? null, + $data['contact_phone'] ?? null, + $data['notes'] ?? null + ]); + + $newId = (int)$pdo->lastInsertId(); + AuditLog::record('Tambah Tempat Ibadah', 'religious_centers', $newId, null, $data); + Response::created(['id' => $newId], 'Center created'); + break; + } + + case 'POST:update': { + requireAuth(); + if (!$id) Response::error('ID required', 400); + + $data = Validator::json(); + + $pdo = Database::get(); + $old = $pdo->prepare("SELECT * FROM religious_centers WHERE id = ? AND is_active = 1"); + $old->execute([$id]); + $oldRow = $old->fetch(); + + if (!$oldRow) { + Response::notFound('Not found'); + } + + $stmt = $pdo->prepare(" + UPDATE religious_centers SET + name = ?, worship_type = ?, address = ?, + latitude = ?, longitude = ?, radius = ?, + contact_person = ?, contact_phone = ?, notes = ? + WHERE id = ? AND is_active = 1 + "); + $stmt->execute([ + $data['name'] ?? $oldRow['name'], + $data['worship_type'] ?? $oldRow['worship_type'], + $data['address'] ?? $oldRow['address'], + (float)($data['latitude'] ?? $oldRow['latitude']), + (float)($data['longitude'] ?? $oldRow['longitude']), + (int)($data['radius'] ?? $oldRow['radius']), + $data['contact_person'] ?? $oldRow['contact_person'], + $data['contact_phone'] ?? $oldRow['contact_phone'], + $data['notes'] ?? $oldRow['notes'], + $id + ]); + + AuditLog::record('Update Tempat Ibadah', 'religious_centers', $id, $oldRow, $data); + Response::success(null, 'Updated'); + break; + } + + case 'POST:patch': { + requireAuth(); + if (!$id) Response::error('ID required', 400); + + $data = Validator::json(); + $fields = []; + $params = []; + + if (isset($data['radius'])) { + $fields[] = 'radius = ?'; + $params[] = (int)$data['radius']; + } + if (isset($data['latitude']) && isset($data['longitude'])) { + $fields[] = 'latitude = ?'; + $params[] = (float)$data['latitude']; + $fields[] = 'longitude = ?'; + $params[] = (float)$data['longitude']; + if (isset($data['address'])) { + $fields[] = 'address = ?'; + $params[] = $data['address']; + } + } + + if (empty($fields)) { + Response::error('No fields to update', 400); + } + + $params[] = $id; + $sql = "UPDATE religious_centers SET " . implode(', ', $fields) . " WHERE id = ? AND is_active = 1"; + + $pdo = Database::get(); + $pdo->prepare($sql)->execute($params); + + AuditLog::record('Geser/Resize Tempat Ibadah', 'religious_centers', $id, null, $data); + Response::success(null, 'Patched'); + break; + } + + case 'POST:delete': { + requireAdmin(); + if (!$id) Response::error('ID required', 400); + + $pdo = Database::get(); + $old = $pdo->prepare("SELECT * FROM religious_centers WHERE id = ? AND is_active = 1"); + $old->execute([$id]); + $oldRow = $old->fetch(); + + if (!$oldRow) { + Response::notFound('Not found'); + } + + $pdo->prepare("UPDATE religious_centers SET is_active = 0 WHERE id = ?")->execute([$id]); + AuditLog::record('Hapus Tempat Ibadah', 'religious_centers', $id, $oldRow); + Response::success(null, 'Deleted'); + break; + } + + default: + Response::methodNotAllowed(); + } +} catch (Exception $e) { + $message = APP_DEBUG ? $e->getMessage() : 'Internal Server Error'; + Response::error($message, 500); +} + +function haversineDistance($lat1, $lon1, $lat2, $lon2) { + $R = 6371000; + $dLat = deg2rad($lat2 - $lat1); + $dLon = deg2rad($lon2 - $lon1); + $a = sin($dLat/2) * sin($dLat/2) + + cos(deg2rad($lat1)) * cos(deg2rad($lat2)) * + sin($dLon/2) * sin($dLon/2); + $c = 2 * atan2(sqrt($a), sqrt(1-$a)); + return $R * $c; +} \ No newline at end of file diff --git a/03PovertyMapping/api/houses/index.php b/03PovertyMapping/api/houses/index.php new file mode 100644 index 0000000..bfa5043 --- /dev/null +++ b/03PovertyMapping/api/houses/index.php @@ -0,0 +1,558 @@ +prepare(" + SELECT + h.*, + rc.name AS center_name, + (SELECT COUNT(*) FROM household_members hm WHERE hm.household_id = h.id) AS member_count, + (SELECT COUNT(*) FROM aid_history ah WHERE ah.household_id = h.id) AS aid_count + FROM households h + LEFT JOIN religious_centers rc ON rc.id = h.managing_center_id + WHERE $whereSQL + ORDER BY h.created_at DESC + LIMIT $limit OFFSET $offset + "); + $stmt->execute($params); + $rows = $stmt->fetchAll(); + + $cntStmt = $pdo->prepare("SELECT COUNT(*) FROM households h WHERE $whereSQL"); + $cntStmt->execute($params); + $total = (int)$cntStmt->fetchColumn(); + + foreach ($rows as &$r) { + castHousehold($r); + } + unset($r); + + Response::success(['households' => $rows, 'total' => $total]); + break; + } + + // ================================================================ + // SHOW β€” detail with aid history and family members + // ================================================================ + case 'GET:show': { + requireAuth(); + if (!$id) Response::error('ID is required.', 400); + + $pdo = Database::get(); + $stmt = $pdo->prepare(" + SELECT + h.*, + TIMESTAMPDIFF(YEAR, h.head_date_of_birth, CURDATE()) AS age, + rc.name AS center_name, + rc.worship_type AS center_type, + rc.latitude AS center_lat, + rc.longitude AS center_lng, + rc.radius AS center_radius + FROM households h + LEFT JOIN religious_centers rc ON rc.id = h.managing_center_id + WHERE h.id = ? AND h.is_active = 1 + "); + $stmt->execute([$id]); + $row = $stmt->fetch(); + if (!$row) Response::notFound('Household not found.'); + + castHousehold($row); + + // ⭐ FIX: Pastikan aid_history selalu diambil dengan lengkap + $aidStmt = $pdo->prepare(" + SELECT + ah.*, + rc.name AS center_name, + DATE_FORMAT(ah.aid_date, '%Y-%m-%d') AS aid_date_formatted + FROM aid_history ah + LEFT JOIN religious_centers rc ON rc.id = ah.center_id + WHERE ah.household_id = ? + ORDER BY ah.aid_date DESC + LIMIT 20 + "); + $aidStmt->execute([$id]); + $aidHistory = $aidStmt->fetchAll(); + + // ⭐ Pastikan format data bantuan konsisten + foreach ($aidHistory as &$aid) { + $aid['aid_type_label'] = match($aid['aid_type'] ?? '') { + 'sembako' => 'Sembako', + 'pendanaan' => 'Pendanaan', + 'pelatihan' => 'Pelatihan', + 'sembako_pendanaan' => 'Sembako + Pendanaan', + 'sembako_pelatihan' => 'Sembako + Pelatihan', + 'pendanaan_pelatihan' => 'Pendanaan + Pelatihan', + 'lengkap' => 'Lengkap (Semua)', + default => $aid['aid_type'] ?? 'Bantuan' + }; + } + unset($aid); + + $row['aid_history'] = $aidHistory; + + // Family members + $depStmt = $pdo->prepare(" + SELECT * FROM household_members + WHERE household_id = ? + ORDER BY id + "); + $depStmt->execute([$id]); + $row['household_members'] = $depStmt->fetchAll(); + + Response::success($row); + break; + } + + // ================================================================ + // CREATE + // ================================================================ + case 'POST:create': { + requireAuth(); + $data = Validator::json(); + + $v = Validator::make($data, [ + 'head_name' => 'required|string|maxlen:150', + 'head_nik' => 'required|string|maxlen:16', + 'full_address' => 'required|string', + 'latitude' => 'required|latitude', + 'longitude' => 'required|longitude', + 'house_condition' => 'in:layak,tidak_layak', + 'head_education' => 'in:tidak_sekolah,sd,smp,sma,diploma,sarjana,pascasarjana', + 'aid_status' => 'in:not_yet,received', + 'head_gender' => 'in:male,female', + 'head_date_of_birth' => 'date', + 'land_ownership' => 'in:milik,sewa,numpang,lainnya', + ]); + $v->validate_or_fail(); + + $pdo = Database::get(); + + $calc = PovertyCalculator::calculate( + (int)($data['head_monthly_income'] ?? $data['income'] ?? 0), + (int)($data['dependents'] ?? 1), + $data['house_condition'] ?? 'layak', + $data['head_education'] ?? 'sd', + $data['land_ownership'] ?? 'milik' + ); + + $managingId = resolveManagingCenter($pdo, (float)$data['latitude'], (float)$data['longitude']); + + $stmt = $pdo->prepare(" + INSERT INTO households ( + rt, rw, kelurahan, kecamatan, full_address, + latitude, longitude, house_condition, managing_center_id, + head_name, head_nik, head_gender, head_date_of_birth, head_education, + head_employment_status, head_job_name, head_institution_name, head_monthly_income, + poverty_score, poverty_status, aid_status, notes + ) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) + "); + $stmt->execute([ + $data['rt'] ?? null, + $data['rw'] ?? null, + $data['kelurahan'] ?? null, + $data['kecamatan'] ?? null, + $data['full_address'], + (float)$data['latitude'], + (float)$data['longitude'], + $data['house_condition'] ?? 'layak', + $managingId, + $data['head_name'], + $data['head_nik'], + $data['head_gender'] ?? 'male', + $data['head_date_of_birth'], + $data['head_education'] ?? 'sd', + $data['head_employment_status'] ?? 'unemployed', + $data['head_job_name'] ?? null, + $data['head_institution_name'] ?? null, + (int)($data['head_monthly_income'] ?? $data['income'] ?? 0), + $calc['score'] ?? 0, + $calc['status'], + $data['aid_status'] ?? 'not_yet', + $data['notes'] ?? $data['description'] ?? null, + ]); + + $newId = (int)$pdo->lastInsertId(); + + // Save family members + if (!empty($data['household_members']) && is_array($data['household_members'])) { + saveMembers($pdo, $newId, $data['household_members']); + } + + AuditLog::record('Tambah Rumah', 'households', $newId, null, $data); + Response::created([ + 'id' => $newId, + 'poverty_status' => $calc['status'], + 'poverty_label' => $calc['label'], + 'marker_color' => PovertyCalculator::markerColor($calc['status']), + 'managing_center_id' => $managingId, + ], 'Rumah berhasil ditambahkan.'); + break; + } + + // ================================================================ + // UPDATE + // ================================================================ + case 'POST:update': { + requireAuth(); + if (!$id) Response::error('ID is required.', 400); + + $data = Validator::json(); + $v = Validator::make($data, [ + 'head_name' => 'required|string|maxlen:150', + 'head_nik' => 'required|string|maxlen:16', + 'full_address' => 'required|string', + 'latitude' => 'required|latitude', + 'longitude' => 'required|longitude', + 'house_condition' => 'in:layak,tidak_layak', + 'head_education' => 'in:tidak_sekolah,sd,smp,sma,diploma,sarjana,pascasarjana', + 'aid_status' => 'in:not_yet,received', + 'head_gender' => 'in:male,female', + 'head_date_of_birth' => 'date', + 'land_ownership' => 'in:milik,sewa,numpang,lainnya', + ]); + $v->validate_or_fail(); + + $pdo = Database::get(); + $old = $pdo->prepare("SELECT * FROM households WHERE id = ? AND is_active = 1"); + $old->execute([$id]); + $oldRow = $old->fetch(); + if (!$oldRow) Response::notFound('Household not found.'); + + $calc = PovertyCalculator::calculate( + (int)($data['head_monthly_income'] ?? $data['income'] ?? 0), + (int)($data['dependents'] ?? 1), + $data['house_condition'] ?? 'layak', + $data['head_education'] ?? 'sd', + $data['land_ownership'] ?? 'milik' + ); + + $managingId = resolveManagingCenter($pdo, (float)$data['latitude'], (float)$data['longitude']); + + $pdo->prepare(" + UPDATE households SET + rt = ?, rw = ?, kelurahan = ?, kecamatan = ?, full_address = ?, + latitude = ?, longitude = ?, house_condition = ?, managing_center_id = ?, + head_name = ?, head_nik = ?, head_gender = ?, head_date_of_birth = ?, head_education = ?, + head_employment_status = ?, head_job_name = ?, head_institution_name = ?, head_monthly_income = ?, + poverty_score = ?, poverty_status = ?, aid_status = ?, notes = ? + WHERE id = ? AND is_active = 1 + ")->execute([ + $data['rt'] ?? $oldRow['rt'], + $data['rw'] ?? $oldRow['rw'], + $data['kelurahan'] ?? $oldRow['kelurahan'], + $data['kecamatan'] ?? $oldRow['kecamatan'], + $data['full_address'], + (float)$data['latitude'], + (float)$data['longitude'], + $data['house_condition'] ?? 'layak', + $managingId, + $data['head_name'], + $data['head_nik'], + $data['head_gender'] ?? 'male', + $data['head_date_of_birth'], + $data['head_education'] ?? 'sd', + $data['head_employment_status'] ?? 'unemployed', + $data['head_job_name'] ?? null, + $data['head_institution_name'] ?? null, + (int)($data['head_monthly_income'] ?? $data['income'] ?? 0), + $calc['score'] ?? 0, + $calc['status'], + $data['aid_status'] ?? 'not_yet', + $data['notes'] ?? $data['description'] ?? null, + $id, + ]); + + if (isset($data['household_members']) && is_array($data['household_members'])) { + saveMembers($pdo, $id, $data['household_members']); + } + + AuditLog::record('Update Rumah', 'households', $id, $oldRow, $data); + Response::success([ + 'id' => $id, + 'poverty_status' => $calc['status'], + 'poverty_label' => $calc['label'], + 'marker_color' => PovertyCalculator::markerColor($calc['status']), + 'managing_center_id' => $managingId, + ], 'Data rumah diperbarui.'); + break; + } + + // ================================================================ + // PATCH β€” untuk drag marker + // ================================================================ + case 'POST:patch': { + requireAuth(); + if (!$id) Response::error('ID is required.', 400); + + $data = Validator::json(); + + // Validasi: minimal latitude dan longitude harus ada + if (!isset($data['latitude']) || !isset($data['longitude'])) { + Response::error('Latitude dan longitude diperlukan.', 400); + } + + Validator::make($data, [ + 'latitude' => 'required|latitude', + 'longitude' => 'required|longitude', + ])->validate_or_fail(); + + $pdo = Database::get(); + + // Cek apakah household ada + $check = $pdo->prepare("SELECT id, managing_center_id FROM households WHERE id = ? AND is_active = 1"); + $check->execute([$id]); + $existing = $check->fetch(); + if (!$existing) Response::notFound('Household tidak ditemukan.'); + + // Hitung ulang managing_center_id berdasarkan posisi baru + $managingId = resolveManagingCenter($pdo, (float)$data['latitude'], (float)$data['longitude']); + + // Update query + $sql = "UPDATE households SET latitude = ?, longitude = ?, managing_center_id = ?"; + $params = [(float)$data['latitude'], (float)$data['longitude'], $managingId]; + + if (!empty($data['full_address'])) { + $sql .= ", full_address = ?"; + $params[] = Validator::sanitizeString($data['full_address']); + } + + $sql .= " WHERE id = ? AND is_active = 1"; + $params[] = $id; + + $pdo->prepare($sql)->execute($params); + + // Ambil data center untuk response + $centerName = null; + if ($managingId) { + $cStmt = $pdo->prepare("SELECT name FROM religious_centers WHERE id = ?"); + $cStmt->execute([$managingId]); + $center = $cStmt->fetch(); + $centerName = $center ? $center['name'] : null; + } + + AuditLog::record('Pindah Posisi Rumah', 'households', $id, null, $data); + Response::success([ + 'managing_center_id' => $managingId, + 'center_name' => $centerName + ], 'Posisi rumah berhasil diperbarui.'); + break; + } + + // ================================================================ + // DELETE (soft delete) + // ================================================================ + case 'POST:delete': { + requireAdmin(); + if (!$id) Response::error('ID is required.', 400); + + $pdo = Database::get(); + $old = $pdo->prepare("SELECT * FROM households WHERE id = ? AND is_active = 1"); + $old->execute([$id]); + $oldRow = $old->fetch(); + if (!$oldRow) Response::notFound('Household not found.'); + + $pdo->prepare("UPDATE households SET is_active = 0 WHERE id = ?")->execute([$id]); + AuditLog::record('Hapus Rumah', 'households', $id, $oldRow); + Response::success(null, 'Data rumah dihapus.'); + break; + } + + // ================================================================ + // DELETE PHOTO β€” hapus foto rumah tangga satu per satu + // ================================================================ + case 'POST:delete_photo': { + requireAuth(); + if (!$id) Response::error('ID is required.', 400); + + $data = Validator::json(); + $filename = trim($data['filename'] ?? ''); + + if ($filename === '' || preg_match('/[\/\\\\]/', $filename) || + !preg_match('/^[a-zA-Z0-9_\-\.]+$/', $filename)) { + Response::error('Nama file tidak valid.', 400); + } + + $ext = strtolower(pathinfo($filename, PATHINFO_EXTENSION)); + if (!in_array($ext, ['jpg', 'jpeg', 'png'], true)) { + Response::error('Ekstensi file tidak diizinkan.', 400); + } + + $pdo = Database::get(); + + $stmt = $pdo->prepare("SELECT house_photos FROM households WHERE id = ? AND is_active = 1"); + $stmt->execute([$id]); + $row = $stmt->fetch(PDO::FETCH_ASSOC); + + if (!$row) { + Response::notFound('Data rumah tangga tidak ditemukan.'); + } + + $photos = json_decode($row['house_photos'] ?? '[]', true) ?: []; + + if (!in_array($filename, $photos, true)) { + Response::error('File tidak ditemukan dalam data ini.', 404); + } + + $photos = array_values(array_filter($photos, fn($p) => $p !== $filename)); + + $upd = $pdo->prepare("UPDATE households SET house_photos = ? WHERE id = ?"); + $upd->execute([json_encode($photos, JSON_UNESCAPED_UNICODE), $id]); + + $dir = __DIR__ . '/../../uploads/houses/'; + $fullPath = realpath($dir . $filename); + $realDir = realpath($dir); + if ($fullPath && $realDir && str_starts_with($fullPath, $realDir)) { + @unlink($fullPath); + } + + AuditLog::record('Hapus Foto Rumah', 'households', $id, null, ['filename' => $filename]); + Response::success(['remaining' => $photos], 'Foto berhasil dihapus.'); + break; + } + + default: + Response::methodNotAllowed(); +} + +// ================================================================ +// HELPERS +// ================================================================ + +function castHousehold(array &$r): void +{ + $r['latitude'] = (float)$r['latitude']; + $r['longitude'] = (float)$r['longitude']; + $r['age'] = isset($r['age']) ? (int)$r['age'] : null; + $r['is_active'] = (bool)$r['is_active']; + $r['marker_color'] = PovertyCalculator::markerColor($r['poverty_status'] ?? ''); + $r['poverty_label'] = PovertyCalculator::label($r['poverty_status'] ?? ''); + + // Backward compatibility untuk frontend lama + $r['address'] = $r['full_address'] ?? ''; + $r['nik'] = $r['head_nik'] ?? ''; + $r['head_name'] = $r['head_name'] ?? ''; + $r['head_nik'] = $r['head_nik'] ?? ''; + $r['head_education'] = $r['head_education'] ?? 'sd'; + $r['head_employment_status'] = $r['head_employment_status'] ?? 'unemployed'; + $r['head_job_name'] = $r['head_job_name'] ?? ''; + $r['head_monthly_income'] = (int)($r['head_monthly_income'] ?? 0); + $r['house_condition'] = $r['house_condition'] ?? 'layak'; + $r['aid_status'] = $r['aid_status'] ?? 'not_yet'; + $r['notes'] = $r['notes'] ?? ''; + $r['dependents'] = (int)($r['family_members_count'] ?? 0) + 1; + $r['income'] = $r['head_monthly_income'] ?? 0; + $r['job'] = $r['head_job_name'] ?? ''; +} + +function resolveManagingCenter(\PDO $pdo, float $lat, float $lng): ?int +{ + $stmt = $pdo->prepare(" + SELECT sub.id FROM ( + SELECT + rc.id, + rc.radius, + (6371000 * ACOS( + COS(RADIANS(:lat1)) * COS(RADIANS(rc.latitude)) * + COS(RADIANS(rc.longitude) - RADIANS(:lng)) + + SIN(RADIANS(:lat2)) * SIN(RADIANS(rc.latitude)) + )) AS distance_m, + (SELECT COUNT(*) FROM households hh + WHERE hh.managing_center_id = rc.id AND hh.is_active = 1) AS load_count + FROM religious_centers rc + WHERE rc.is_active = 1 + ) sub + WHERE sub.distance_m <= sub.radius + ORDER BY sub.load_count ASC, sub.distance_m ASC + LIMIT 1 + "); + $stmt->execute([':lat1' => $lat, ':lng' => $lng, ':lat2' => $lat]); + $row = $stmt->fetch(); + return $row ? (int)$row['id'] : null; +} + +function saveMembers(\PDO $pdo, int $householdId, array $data): void +{ + try { + // Delete existing members + $pdo->prepare("DELETE FROM household_members WHERE household_id = ?")->execute([$householdId]); + + $stmt = $pdo->prepare(" + INSERT INTO household_members + (household_id, name, nik, gender, date_of_birth, education, + relationship, employment_status, job_name, institution_name, monthly_income) + VALUES (?,?,?,?,?,?,?,?,?,?,?) + "); + + foreach ($data as $member) { + $name = trim($member['name'] ?? ''); + if (!$name) continue; + + $stmt->execute([ + $householdId, + $name, + $member['nik'] ?? null, + $member['gender'] ?? 'male', + $member['date_of_birth'] ?? null, + $member['education'] ?? 'sd', + $member['relationship'] ?? 'lainnya', + $member['employment_status'] ?? 'unemployed', + $member['job_name'] ?? null, + $member['institution_name'] ?? null, + (int)($member['monthly_income'] ?? 0), + ]); + } + } catch (\Throwable $e) { + error_log('Save members error: ' . $e->getMessage()); + } +} \ No newline at end of file diff --git a/03PovertyMapping/api/public/report.php b/03PovertyMapping/api/public/report.php new file mode 100644 index 0000000..227701f --- /dev/null +++ b/03PovertyMapping/api/public/report.php @@ -0,0 +1,461 @@ + false, 'message' => 'Konfigurasi server tidak lengkap.']); + exit; +} + +require_once __DIR__ . '/../../config/bootstrap.php'; + +// Pastikan tidak ada output sebelum JSON +if (ob_get_length()) ob_clean(); + +header('Content-Type: application/json; charset=utf-8'); +header('X-Content-Type-Options: nosniff'); + +$method = $_SERVER['REQUEST_METHOD'] ?? 'GET'; +$action = $_GET['action'] ?? ''; +$id = isset($_GET['id']) ? (int)$_GET['id'] : null; + +try { + // POST tanpa action = create (dari lapor.html) + if ($method === 'POST' && ($action === '' || $action === 'create')) { + handleCreate(); + } + // GET list + elseif ($method === 'GET' && $action === 'list') { + handleList(); + } + // GET show + elseif ($method === 'GET' && $action === 'show' && $id) { + handleShow($id); + } + // POST approve (admin) - requireAdmin() dari bootstrap.php + elseif ($method === 'POST' && $action === 'approve' && $id) { + requireAdmin(); + handleApprove($id); + } + // POST reject (admin) + elseif ($method === 'POST' && $action === 'reject' && $id) { + requireAdmin(); + handleReject($id); + } + // POST delete (admin) + elseif ($method === 'POST' && $action === 'delete' && $id) { + requireAdmin(); + handleDelete($id); + } + elseif ($method === 'POST' && $action === 'delete_photo' && $id) { + requireAuth(); // at minimum logged in + handleDeletePhoto($id, 'public_reports', 'proof_photos', + __DIR__ . '/../../uploads/reports/'); + } + else { + jsonError('Method or action not allowed', 405); + } +} catch (PDOException $e) { + error_log('[public/report.php] PDO: ' . $e->getMessage()); + jsonError('Terjadi kesalahan database. Silakan coba lagi.', 500); +} catch (Exception $e) { + error_log('[public/report.php] ' . $e->getMessage()); + jsonError('Terjadi kesalahan server.', 500); +} + +// ============================================================ +// CREATE β€” public submission, all fields required +// ============================================================ +function handleCreate(): void +{ + $raw = file_get_contents('php://input'); + $data = json_decode($raw, true); + + if (!is_array($data)) { + jsonError('Data tidak valid.', 400); + } + + $errors = []; + + // Required fields + $required = [ + 'reporter_name' => 'Nama pelapor', + 'reporter_phone' => 'Nomor telepon', + 'head_name' => 'Nama kepala keluarga', + 'address' => 'Alamat', + 'kelurahan' => 'Kelurahan', + 'kecamatan' => 'Kecamatan', + 'description' => 'Deskripsi', + 'latitude' => 'Latitude', + 'longitude' => 'Longitude', + 'severity' => 'Tingkat urgensi' + ]; + + foreach ($required as $field => $label) { + $value = trim($data[$field] ?? ''); + if ($value === '') { + $errors[$field] = "$label wajib diisi."; + } + } + + // RT/RW juga required + if (trim($data['rt'] ?? '') === '') { + $errors['rt'] = 'RT wajib diisi.'; + } + if (trim($data['rw'] ?? '') === '') { + $errors['rw'] = 'RW wajib diisi.'; + } + + if (!empty($errors)) { + $firstError = reset($errors); + jsonError($firstError, 422, ['validation_errors' => $errors]); + } + + // Phone validation + $phone = preg_replace('/[\s\-\(\)\+]/', '', $data['reporter_phone']); + if (!preg_match('/^\d{8,15}$/', $phone)) { + jsonError('Nomor telepon tidak valid (8-15 digit).', 422); + } + + // Description min 20 chars + if (mb_strlen($data['description']) < 20) { + jsonError('Deskripsi minimal 20 karakter.', 422); + } + + // Coordinates + $lat = (float)$data['latitude']; + $lng = (float)$data['longitude']; + if ($lat < -90 || $lat > 90 || $lat == 0) { + jsonError('Latitude tidak valid.', 422); + } + if ($lng < -180 || $lng > 180 || $lng == 0) { + jsonError('Longitude tidak valid.', 422); + } + + // Severity validation + $allowedSeverity = ['ringan', 'sedang', 'berat', 'kritis']; + if (!in_array($data['severity'], $allowedSeverity)) { + jsonError('Tingkat urgensi tidak valid.', 422); + } + // Photo requirement + $photoCount = (int)($data['proof_photo_count'] ?? -1); + if ($photoCount === 0) { + jsonError('Foto bukti wajib diunggah minimal 1 foto.', 422); + } + + // Rate limit + $pdo = Database::get(); + $ip = getClientIP(); + + $stmt = $pdo->prepare("SELECT COUNT(*) FROM public_reports WHERE ip_address = ? AND created_at >= DATE_SUB(NOW(), INTERVAL 24 HOUR)"); + $stmt->execute([$ip]); + if ((int)$stmt->fetchColumn() >= 5) { + jsonError('Terlalu banyak laporan. Coba lagi besok.', 429); + } + + // Sanitize + $sanitize = fn($s) => htmlspecialchars(strip_tags(trim($s)), ENT_QUOTES, 'UTF-8'); + + // Insert + $stmt = $pdo->prepare(" + INSERT INTO public_reports + (reporter_name, reporter_phone, rt, rw, head_name, address, kelurahan, kecamatan, + latitude, longitude, description, severity, urgent_need, status, ip_address, created_at) + VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, 'pending', ?, NOW()) + "); + + $stmt->execute([ + $sanitize($data['reporter_name']), + $sanitize($data['reporter_phone']), + $sanitize($data['rt'] ?? ''), + $sanitize($data['rw'] ?? ''), + $sanitize($data['head_name']), + $sanitize($data['address']), + $sanitize($data['kelurahan']), + $sanitize($data['kecamatan']), + round($lat, 7), + round($lng, 7), + $sanitize($data['description']), + $data['severity'], + $sanitize($data['urgent_need'] ?? ''), + $ip + ]); + + $newId = (int)$pdo->lastInsertId(); + + jsonSuccess(['id' => $newId], 'Laporan berhasil dikirim. Petugas akan segera memverifikasi.', 201); +} + +// ============================================================ +// LIST +// ============================================================ +function handleList(): void +{ + $pdo = Database::get(); + $where = ['1=1']; + $params = []; + + if (!empty($_GET['status'])) { + $where[] = 'status = ?'; + $params[] = $_GET['status']; + } + + $whereSQL = implode(' AND ', $where); + $limit = min((int)($_GET['limit'] ?? 100), 500); + $offset = max(0, (int)($_GET['offset'] ?? 0)); + + $stmt = $pdo->prepare(" + SELECT * FROM public_reports + WHERE $whereSQL + ORDER BY FIELD(status, 'pending', 'approved', 'rejected'), created_at DESC + LIMIT $limit OFFSET $offset + "); + $stmt->execute($params); + $rows = $stmt->fetchAll(PDO::FETCH_ASSOC); + + $cnt = $pdo->prepare("SELECT COUNT(*) FROM public_reports WHERE $whereSQL"); + $cnt->execute($params); + + jsonSuccess(['reports' => $rows, 'total' => (int)$cnt->fetchColumn()]); +} + +// ============================================================ +// SHOW +// ============================================================ +function handleShow(int $id): void +{ + $pdo = Database::get(); + $stmt = $pdo->prepare("SELECT * FROM public_reports WHERE id = ?"); + $stmt->execute([$id]); + $row = $stmt->fetch(PDO::FETCH_ASSOC); + + if (!$row) { + jsonError('Laporan tidak ditemukan.', 404); + } + + jsonSuccess($row); +} + +// ============================================================ +// APPROVE +// ============================================================ +function handleApprove(int $id): void +{ + $pdo = Database::get(); + + // Get report + $stmt = $pdo->prepare("SELECT * FROM public_reports WHERE id = ? AND status = 'pending'"); + $stmt->execute([$id]); + $report = $stmt->fetch(PDO::FETCH_ASSOC); + + if (!$report) { + jsonError('Laporan tidak ditemukan atau sudah diproses.', 404); + } + + $data = json_decode(file_get_contents('php://input'), true) ?? []; + + $pdo->beginTransaction(); + + try { + // Create household + $income = (int)($data['income'] ?? 0); + $condition = $data['house_condition'] ?? 'tidak_layak'; + $education = $data['education'] ?? 'sd'; + + // Simple poverty score + $score = 0; + if ($income < 500000) $score += 30; + elseif ($income < 1500000) $score += 20; + elseif ($income < 3000000) $score += 10; + if ($condition === 'tidak_layak') $score += 20; + + $povertyStatus = match(true) { + $score >= 60 => 'sangat_miskin', + $score >= 40 => 'miskin', + $score >= 20 => 'rentan_miskin', + default => 'terdata' + }; + + $stmt = $pdo->prepare(" + INSERT INTO households + (full_address, kelurahan, kecamatan, latitude, longitude, head_name, + head_education, head_monthly_income, house_condition, land_ownership, + poverty_score, poverty_status, notes) + VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, 'numpang', ?, ?, ?) + "); + + $stmt->execute([ + $report['address'], + $report['kelurahan'] ?? '', + $report['kecamatan'] ?? '', + $report['latitude'], + $report['longitude'], + $report['head_name'], + $education, + $income, + $condition, + $score, + $povertyStatus, + 'Dari laporan publik #' . $id + ]); + + $householdId = (int)$pdo->lastInsertId(); + + // Update report + $stmt = $pdo->prepare(" + UPDATE public_reports + SET status = 'approved', converted_household_id = ?, admin_notes = ?, reviewed_at = NOW() + WHERE id = ? + "); + $stmt->execute([$householdId, $data['admin_notes'] ?? null, $id]); + + $pdo->commit(); + + jsonSuccess(['household_id' => $householdId], 'Laporan disetujui.'); + + } catch (Exception $e) { + $pdo->rollBack(); + throw $e; + } +} + +// ============================================================ +// REJECT +// ============================================================ +function handleReject(int $id): void +{ + $pdo = Database::get(); + $data = json_decode(file_get_contents('php://input'), true) ?? []; + + $stmt = $pdo->prepare("UPDATE public_reports SET status = 'rejected', admin_notes = ?, reviewed_at = NOW() WHERE id = ? AND status = 'pending'"); + $stmt->execute([$data['admin_notes'] ?? null, $id]); + + if ($stmt->rowCount() === 0) { + jsonError('Laporan tidak ditemukan atau sudah diproses.', 404); + } + + jsonSuccess(null, 'Laporan ditolak.'); +} + +// ============================================================ +// DELETE SINGLE PHOTO (shared by report & house endpoints) +// ============================================================ +function handleDeletePhoto(int $id, string $table, string $col, string $dir): void +{ + // Role guard: admin or field_officer only + $user = requireAuth(); + $role = $user['role'] ?? ''; + if (!in_array($role, ['admin', 'field_officer'], true)) { + jsonError('Akses ditolak. Hanya admin atau petugas lapangan.', 403); + } + + $data = json_decode(file_get_contents('php://input'), true) ?? []; + $filename = trim($data['filename'] ?? ''); + + // Security: filename must be a plain filename with no path separators + if ($filename === '' || preg_match('/[\/\\\\]/', $filename) || + !preg_match('/^[a-zA-Z0-9_\-\.]+$/', $filename)) { + jsonError('Nama file tidak valid.', 400); + } + + // Must end with allowed extension + $ext = strtolower(pathinfo($filename, PATHINFO_EXTENSION)); + if (!in_array($ext, ['jpg', 'jpeg', 'png'], true)) { + jsonError('Ekstensi file tidak diizinkan.', 400); + } + + $pdo = Database::get(); + $stmt = $pdo->prepare("SELECT $col FROM $table WHERE id = ?"); + $stmt->execute([$id]); + $row = $stmt->fetch(PDO::FETCH_ASSOC); + + if (!$row) { + jsonError('Data tidak ditemukan.', 404); + } + + $photos = json_decode($row[$col] ?? '[]', true) ?: []; + + // Check file is actually in this record's photo list (prevents arbitrary deletion) + if (!in_array($filename, $photos, true)) { + jsonError('File tidak ditemukan dalam data ini.', 404); + } + + // Remove from array + $photos = array_values(array_filter($photos, fn($p) => $p !== $filename)); + + // Update DB + $upd = $pdo->prepare("UPDATE $table SET $col = ? WHERE id = ?"); + $upd->execute([json_encode($photos, JSON_UNESCAPED_UNICODE), $id]); + + // Delete physical file β€” realpath check prevents traversal + $fullPath = realpath($dir . $filename); + $realDir = realpath($dir); + if ($fullPath && $realDir && str_starts_with($fullPath, $realDir)) { + @unlink($fullPath); + } + + jsonSuccess(['remaining' => $photos], 'Foto berhasil dihapus.'); +} + +// ============================================================ +// DELETE +// ============================================================ +function handleDelete(int $id): void +{ + $pdo = Database::get(); + $stmt = $pdo->prepare("DELETE FROM public_reports WHERE id = ?"); + $stmt->execute([$id]); + + if ($stmt->rowCount() === 0) { + jsonError('Laporan tidak ditemukan.', 404); + } + + jsonSuccess(null, 'Laporan dihapus.'); +} + +// ============================================================ +// HELPERS (Hanya fungsi yang tidak ada di bootstrap.php) +// ============================================================ + +// getClientIP - tidak ada di bootstrap, aman didefinisikan +function getClientIP(): string +{ + $ip = $_SERVER['HTTP_X_FORWARDED_FOR'] ?? $_SERVER['HTTP_X_REAL_IP'] ?? $_SERVER['REMOTE_ADDR'] ?? '0.0.0.0'; + return trim(explode(',', $ip)[0]); +} + +// jsonSuccess dan jsonError - fungsi custom untuk response JSON +function jsonSuccess($data, string $message = 'OK', int $code = 200): void +{ + http_response_code($code); + echo json_encode([ + 'success' => true, + 'message' => $message, + 'data' => $data + ], JSON_UNESCAPED_UNICODE); + exit; +} + +function jsonError(string $message, int $code = 400, array $extra = []): void +{ + http_response_code($code); + $response = ['success' => false, 'message' => $message]; + if (!empty($extra)) { + $response = array_merge($response, $extra); + } + echo json_encode($response, JSON_UNESCAPED_UNICODE); + exit; +} \ No newline at end of file diff --git a/03PovertyMapping/api/public/upload.php b/03PovertyMapping/api/public/upload.php new file mode 100644 index 0000000..0c22738 --- /dev/null +++ b/03PovertyMapping/api/public/upload.php @@ -0,0 +1,145 @@ + 1, + 'timestamp' => date('Y-m-d H:i:s'), +]; + +try { + // Step 2: Cek method + $debug['step'] = 2; + $debug['method'] = $_SERVER['REQUEST_METHOD']; + + if ($_SERVER['REQUEST_METHOD'] !== 'POST') { + throw new Exception('Method not allowed. Use POST.'); + } + + // Step 3: Cek parameters + $debug['step'] = 3; + $debug['get'] = $_GET; + $target = $_GET['target'] ?? ''; + $id = isset($_GET['id']) ? (int)$_GET['id'] : 0; + $debug['target'] = $target; + $debug['id'] = $id; + + if (!in_array($target, ['report', 'house'], true) || $id <= 0) { + throw new Exception('Invalid target or id. target=' . $target . ', id=' . $id); + } + + // Step 4: Load bootstrap + $debug['step'] = 4; + $bootstrap_path = __DIR__ . '/../../config/bootstrap.php'; + $debug['bootstrap_path'] = $bootstrap_path; + $debug['bootstrap_exists'] = file_exists($bootstrap_path); + + if (!file_exists($bootstrap_path)) { + throw new Exception('Bootstrap not found at: ' . $bootstrap_path); + } + + require_once $bootstrap_path; + $debug['step'] = 5; + $debug['bootstrap_loaded'] = true; + + // Step 5: Authentication for house target + $debug['step'] = 6; + if ($target === 'house') { + $user = requireAuth(); + $debug['auth_user'] = $user['name'] ?? 'unknown'; + } + + // Step 6: Setup directories + $debug['step'] = 7; + $dir = $target === 'report' ? 'reports' : 'houses'; + $table = $target === 'report' ? 'public_reports' : 'households'; + $dest = __DIR__ . '/../../uploads/' . $dir . '/'; + $debug['dest'] = $dest; + $debug['dest_exists'] = is_dir($dest); + $debug['dest_writable'] = is_writable($dest); + + if (!is_dir($dest)) { + mkdir($dest, 0777, true); + $debug['dest_created'] = true; + } + + // Step 7: Check record exists + $debug['step'] = 8; + $pdo = Database::get(); + $colName = $target === 'report' ? 'proof_photos' : 'house_photos'; + + $stmt = $pdo->prepare("SELECT id, $colName FROM $table WHERE id = ?"); + $stmt->execute([$id]); + $record = $stmt->fetch(PDO::FETCH_ASSOC); + $debug['record_exists'] = !empty($record); + + if (!$record) { + throw new Exception("Record with id $id not found in $table"); + } + + $existing = json_decode($record[$colName] ?? '[]', true) ?: []; + $debug['existing_photos'] = count($existing); + + // Step 8: Check uploaded files + $debug['step'] = 9; + $files = $_FILES['photos'] ?? null; + $debug['has_files'] = !empty($files); + $debug['files_count'] = $files ? count($files['name']) : 0; + + if (!$files || empty($files['name'][0])) { + throw new Exception('No files uploaded'); + } + + // Step 9: Process files + $debug['step'] = 10; + $saved = []; + + foreach ($files['name'] as $i => $originalName) { + if ($files['error'][$i] !== UPLOAD_ERR_OK) { + throw new Exception('Upload error for file: ' . $originalName); + } + + $ext = strtolower(pathinfo($originalName, PATHINFO_EXTENSION)); + $unique = bin2hex(random_bytes(12)); + $filename = "{$dir}_{$id}_{$unique}.{$ext}"; + $fullPath = $dest . $filename; + + if (move_uploaded_file($files['tmp_name'][$i], $fullPath)) { + $saved[] = $filename; + $debug['saved'][] = $filename; + } else { + throw new Exception('Failed to move uploaded file: ' . $originalName); + } + } + + // Step 10: Update database + $debug['step'] = 11; + $all = array_merge($existing, $saved); + $upd = $pdo->prepare("UPDATE $table SET $colName = ? WHERE id = ?"); + $upd->execute([json_encode($all, JSON_UNESCAPED_UNICODE), $id]); + $debug['db_updated'] = true; + + // Success response + echo json_encode([ + 'success' => true, + 'message' => 'Foto berhasil diunggah', + 'data' => [ + 'filenames' => $saved, + 'all_photos' => $all + ], + 'debug' => $debug + ], JSON_PRETTY_PRINT); + +} catch (Exception $e) { + $debug['error'] = $e->getMessage(); + $debug['trace'] = $e->getTraceAsString(); + + echo json_encode([ + 'success' => false, + 'message' => $e->getMessage(), + 'debug' => $debug + ], JSON_PRETTY_PRINT); +} \ No newline at end of file diff --git a/03PovertyMapping/api/reports/index.php b/03PovertyMapping/api/reports/index.php new file mode 100644 index 0000000..76a6927 --- /dev/null +++ b/03PovertyMapping/api/reports/index.php @@ -0,0 +1,175 @@ +prepare(" + SELECT er.*, h.head_name, h.address, h.latitude, h.longitude, h.nik + FROM emergency_reports er + LEFT JOIN households h ON h.id = er.household_id + WHERE $whereSQL + ORDER BY FIELD(er.severity,'kritis','berat','sedang','ringan'), + FIELD(er.status,'open','in_progress','resolved','closed'), + er.created_at DESC + LIMIT $limit OFFSET $offset + "); + $stmt->execute($params); + $rows = $stmt->fetchAll(); + + $cntStmt = $pdo->prepare("SELECT COUNT(*) FROM emergency_reports er WHERE $whereSQL"); + $cntStmt->execute($params); + + foreach ($rows as &$r) { $r['severity_color'] = severityColor($r['severity']); } + unset($r); + + Response::success(['reports' => $rows, 'total' => (int)$cntStmt->fetchColumn()]); + break; + } + + case 'GET:show': { + if (!$id) Response::error('ID is required.', 400); + $pdo = Database::get(); + $stmt = $pdo->prepare(" + SELECT er.*, h.head_name, h.address, h.latitude, h.longitude, h.nik, + h.poverty_status, h.dependents, h.income, h.house_condition + FROM emergency_reports er + LEFT JOIN households h ON h.id = er.household_id + WHERE er.id = ? + "); + $stmt->execute([$id]); + $row = $stmt->fetch(); + if (!$row) Response::notFound('Report not found.'); + $row['severity_color'] = severityColor($row['severity']); + Response::success($row); + break; + } + + case 'POST:create': { + $data = Validator::json(); + $v = Validator::make($data, [ + 'household_id' => 'required|integer', + 'type' => 'required|in:sakit,kecelakaan,bencana,kehilangan_pekerjaan,kematian,lainnya', + 'severity' => 'required|in:ringan,sedang,berat,kritis', + 'description' => 'required|string', + ]); + $v->validate_or_fail(); + + $pdo = Database::get(); + $hh = $pdo->prepare('SELECT id FROM households WHERE id=? AND is_active=1'); + $hh->execute([(int)$data['household_id']]); + if (!$hh->fetch()) Response::notFound('Household not found.'); + + $existing = $pdo->prepare(" + SELECT id, type, status FROM emergency_reports + WHERE household_id = ? AND status IN ('open','in_progress') LIMIT 1 + "); + $existing->execute([(int)$data['household_id']]); + $active = $existing->fetch(); + if ($active) { + $lbl = ['sakit'=>'Sakit','kecelakaan'=>'Kecelakaan','bencana'=>'Bencana', + 'kehilangan_pekerjaan'=>'Kehilangan Pekerjaan','kematian'=>'Kematian','lainnya'=>'Lainnya']; + Response::error( + 'Sudah ada laporan aktif: ' . ($lbl[$active['type']] ?? $active['type']) . '. Selesaikan dulu.', + 409 + ); + } + + $pdo->prepare("INSERT INTO emergency_reports (household_id, type, severity, description, status) VALUES (?,?,?,?,'open')") + ->execute([(int)$data['household_id'], $data['type'], $data['severity'], Validator::sanitizeString($data['description'])]); + + $newId = (int)$pdo->lastInsertId(); + AuditLog::record('Tambah Laporan Darurat', 'emergency_reports', $newId, null, $data); + Response::created(['id' => $newId], 'Laporan darurat berhasil dibuat.'); + break; + } + + case 'POST:update': { + requireAuth(); + if (!$id) Response::error('ID is required.', 400); + $data = Validator::json(); + Validator::make($data, [ + 'status' => 'required|in:open,in_progress,resolved,closed', + 'severity' => 'in:ringan,sedang,berat,kritis', + ])->validate_or_fail(); + + $pdo = Database::get(); + $old = $pdo->prepare('SELECT * FROM emergency_reports WHERE id=?'); + $old->execute([$id]); + $oldRow = $old->fetch(); + if (!$oldRow) Response::notFound('Report not found.'); + + $fields = ['status = ?']; + $params = [$data['status']]; + if (!empty($data['severity'])) { $fields[] = 'severity = ?'; $params[] = $data['severity']; } + if (!empty($data['description'])) { $fields[] = 'description = ?'; $params[] = Validator::sanitizeString($data['description']); } + if (in_array($data['status'], ['resolved','closed']) && !$oldRow['resolved_at']) { $fields[] = 'resolved_at = NOW()'; } + $params[] = $id; + + $pdo->prepare('UPDATE emergency_reports SET ' . implode(', ', $fields) . ' WHERE id=?')->execute($params); + AuditLog::record('Update Laporan Darurat', 'emergency_reports', $id, $oldRow, $data); + Response::success(['id' => $id], 'Laporan diperbarui.'); + break; + } + + case 'POST:resolve': { + requireAuth(); + if (!$id) Response::error('ID is required.', 400); + $pdo = Database::get(); + $stmt = $pdo->prepare("UPDATE emergency_reports SET status='resolved', resolved_at=NOW() WHERE id=? AND status NOT IN ('resolved','closed')"); + $stmt->execute([$id]); + if ($stmt->rowCount() === 0) Response::error('Report not found or already resolved.', 409); + AuditLog::record('Selesaikan Laporan', 'emergency_reports', $id); + Response::success(null, 'Laporan diselesaikan.'); + break; + } + + case 'POST:delete': { + requireAdmin(); + if (!$id) Response::error('ID is required.', 400); + $pdo = Database::get(); + $old = $pdo->prepare('SELECT * FROM emergency_reports WHERE id=?'); + $old->execute([$id]); + $row = $old->fetch(); + if (!$row) Response::notFound('Report not found.'); + $pdo->prepare('DELETE FROM emergency_reports WHERE id=?')->execute([$id]); + AuditLog::record('Hapus Laporan Darurat', 'emergency_reports', $id, $row); + Response::success(null, 'Laporan dihapus.'); + break; + } + + default: + Response::methodNotAllowed(); +} + +function severityColor(string $s): string +{ + return match($s) { + 'kritis' => '#d63230', 'berat' => '#f76707', + 'sedang' => '#f59e0b', 'ringan' => '#0b9e73', + default => '#9ba4b5', + }; +} diff --git a/03PovertyMapping/api/stats/index.php b/03PovertyMapping/api/stats/index.php new file mode 100644 index 0000000..64c1360 --- /dev/null +++ b/03PovertyMapping/api/stats/index.php @@ -0,0 +1,217 @@ +query("SELECT COUNT(*) FROM religious_centers WHERE is_active = 1")->fetchColumn(); + $households = (int)$pdo->query("SELECT COUNT(*) FROM households WHERE is_active = 1")->fetchColumn(); + + // Total population (head + members) + $members = (int)$pdo->query("SELECT COUNT(*) FROM household_members")->fetchColumn(); + $population = $households + $members; + + // Aid received (based on aid_history) + $aidReceived = (int)$pdo->query("SELECT COUNT(DISTINCT household_id) FROM aid_history")->fetchColumn(); + + // Open emergency reports + $openReports = 0; + try { + $openReports = (int)$pdo->query("SELECT COUNT(*) FROM emergency_reports WHERE status IN ('open', 'in_progress')")->fetchColumn(); + } catch (\Throwable) {} + + // Pending public reports + $pendingPublic = 0; + try { + $pendingPublic = (int)$pdo->query("SELECT COUNT(*) FROM public_reports WHERE status = 'pending'")->fetchColumn(); + } catch (\Throwable) {} + + // Poverty breakdown + $povertyBreakdown = $pdo->query(" + SELECT poverty_status, COUNT(*) AS cnt + FROM households WHERE is_active = 1 + GROUP BY poverty_status + ")->fetchAll(\PDO::FETCH_KEY_PAIR); + + // Condition breakdown + $conditionBreakdown = $pdo->query(" + SELECT house_condition, COUNT(*) AS cnt + FROM households WHERE is_active = 1 + GROUP BY house_condition + ")->fetchAll(\PDO::FETCH_KEY_PAIR); + + Response::success([ + 'centers' => $centers, + 'households' => $households, + 'population' => $population, + 'aid_received' => $aidReceived, + 'aid_not_yet' => max(0, $households - $aidReceived), + 'open_reports' => $openReports, + 'pending_public' => $pendingPublic, + 'poverty_breakdown' => [ + 'sangat_miskin' => (int)($povertyBreakdown['sangat_miskin'] ?? 0), + 'miskin' => (int)($povertyBreakdown['miskin'] ?? 0), + 'rentan_miskin' => (int)($povertyBreakdown['rentan_miskin'] ?? 0), + 'terdata' => (int)($povertyBreakdown['terdata'] ?? 0), + ], + 'condition_breakdown' => [ + 'layak' => (int)($conditionBreakdown['layak'] ?? 0), + 'tidak_layak' => (int)($conditionBreakdown['tidak_layak'] ?? 0), + ], + ]); + break; + } + + case 'trend': { + $rows = $pdo->query(" + SELECT + DATE_FORMAT(created_at, '%Y-%m') AS month, + COUNT(*) AS new_households, + SUM(CASE WHEN aid_status = 'received' THEN 1 ELSE 0 END) AS aided, + ROUND(AVG(poverty_score), 1) AS avg_score + FROM households + WHERE is_active = 1 + AND created_at >= DATE_SUB(NOW(), INTERVAL 12 MONTH) + GROUP BY month + ORDER BY month + ")->fetchAll(); + + foreach ($rows as &$r) { + $r['new_households'] = (int)$r['new_households']; + $r['aided'] = (int)$r['aided']; + $r['avg_score'] = (float)$r['avg_score']; + } + unset($r); + + Response::success(['trend' => $rows]); + break; + } + + case 'poverty_chart': { + $breakdown = $pdo->query(" + SELECT poverty_status, COUNT(*) AS count, + ROUND(AVG(poverty_score), 1) AS avg_score + FROM households WHERE is_active = 1 + GROUP BY poverty_status + ORDER BY FIELD(poverty_status, 'sangat_miskin', 'miskin', 'rentan_miskin', 'terdata') + ")->fetchAll(); + + Response::success(['breakdown' => $breakdown]); + break; + } + + case 'aid_chart': { + $byType = $pdo->query(" + SELECT aid_type, COUNT(*) AS cnt, COALESCE(SUM(amount), 0) AS total_amount + FROM aid_history + GROUP BY aid_type + ORDER BY cnt DESC + ")->fetchAll(); + + $total = (int)$pdo->query("SELECT COUNT(*) FROM aid_history")->fetchColumn(); + + Response::success([ + 'by_type' => $byType, + 'summary' => ['total_distributions' => $total], + ]); + break; + } + + case 'age_distribution': { + $headQuery = " + SELECT + CASE + WHEN TIMESTAMPDIFF(YEAR, head_date_of_birth, CURDATE()) < 12 THEN 'anak' + WHEN TIMESTAMPDIFF(YEAR, head_date_of_birth, CURDATE()) BETWEEN 12 AND 17 THEN 'remaja' + WHEN TIMESTAMPDIFF(YEAR, head_date_of_birth, CURDATE()) BETWEEN 18 AND 30 THEN 'pemuda' + WHEN TIMESTAMPDIFF(YEAR, head_date_of_birth, CURDATE()) BETWEEN 31 AND 59 THEN 'dewasa' + WHEN TIMESTAMPDIFF(YEAR, head_date_of_birth, CURDATE()) >= 60 THEN 'lansia' + ELSE NULL + END AS age_group + FROM households + WHERE is_active = 1 AND head_date_of_birth IS NOT NULL + "; + + $memberQuery = " + SELECT + CASE + WHEN TIMESTAMPDIFF(YEAR, hm.date_of_birth, CURDATE()) < 12 THEN 'anak' + WHEN TIMESTAMPDIFF(YEAR, hm.date_of_birth, CURDATE()) BETWEEN 12 AND 17 THEN 'remaja' + WHEN TIMESTAMPDIFF(YEAR, hm.date_of_birth, CURDATE()) BETWEEN 18 AND 30 THEN 'pemuda' + WHEN TIMESTAMPDIFF(YEAR, hm.date_of_birth, CURDATE()) BETWEEN 31 AND 59 THEN 'dewasa' + WHEN TIMESTAMPDIFF(YEAR, hm.date_of_birth, CURDATE()) >= 60 THEN 'lansia' + ELSE NULL + END AS age_group + FROM household_members hm + INNER JOIN households h ON h.id = hm.household_id + WHERE h.is_active = 1 AND hm.date_of_birth IS NOT NULL + "; + + $combinedQuery = " + SELECT age_group, COUNT(*) as total + FROM ( + $headQuery + UNION ALL + $memberQuery + ) AS all_persons + WHERE age_group IS NOT NULL + GROUP BY age_group + "; + + $result = $pdo->query($combinedQuery); + $rows = $result->fetchAll(\PDO::FETCH_ASSOC); + + // Inisialisasi array dengan nilai default 0 + $distribution = [ + 'anak' => 0, // < 12 tahun + 'remaja' => 0, // 12-17 tahun + 'pemuda' => 0, // 18-30 tahun + 'dewasa' => 0, // 31-59 tahun + 'lansia' => 0, // >= 60 tahun + 'unknown' => 0, // data tanggal lahir tidak tersedia + ]; + + // Hitung jumlah orang tanpa tanggal lahir + $unknownCount = 0; + + // Hitung kepala keluarga tanpa tanggal lahir + $stmt = $pdo->query("SELECT COUNT(*) FROM households WHERE is_active = 1 AND head_date_of_birth IS NULL"); + $unknownCount += (int)$stmt->fetchColumn(); + + // Hitung anggota keluarga tanpa tanggal lahir + $stmt = $pdo->query(" + SELECT COUNT(*) FROM household_members hm + INNER JOIN households h ON h.id = hm.household_id + WHERE h.is_active = 1 AND hm.date_of_birth IS NULL + "); + $unknownCount += (int)$stmt->fetchColumn(); + $distribution['unknown'] = $unknownCount; + + // Isi hasil query ke array distribution + foreach ($rows as $row) { + if (isset($distribution[$row['age_group']])) { + $distribution[$row['age_group']] = (int)$row['total']; + } + } + + // Hitung total keseluruhan untuk debugging (opsional) + $totalPeople = array_sum($distribution) - $distribution['unknown']; + + Response::success([ + 'age_distribution' => $distribution, + 'total_people' => $totalPeople, + 'includes_members' => true // Indikator bahwa sudah termasuk anggota keluarga + ]); + break; + } + + default: + Response::error('Unknown stats action.', 400); +} + diff --git a/03PovertyMapping/assets/css/style.css b/03PovertyMapping/assets/css/style.css new file mode 100644 index 0000000..26341e3 --- /dev/null +++ b/03PovertyMapping/assets/css/style.css @@ -0,0 +1,1039 @@ +/* ============================================================ + WebGIS v2 β€” style.css + Fixed: layer-control top-right positioning, legend overlap, + typography scale restored, mobile media queries cleaned + ============================================================ */ +:root { + --bg: #eef0f5; --surface: #ffffff; + --surface-2: #f5f6f9; --surface-3: #edf0f7; + --border: #e2e6ef; --border-subtle: #edf0f6; + --text-primary: #0f1623; --text-secondary: #5a6478; --text-muted: #9ba4b5; + --accent: #3a56d4; --accent-hover: #2d45b8; + --accent-light: #eaedfc; --accent-subtle: rgba(58,86,212,0.09); + --success: #0b9e73; --danger: #d63230; --warning: #d97706; + --stat-blue: #3a56d4; --stat-emerald: #0b9e73; + --stat-amber: #d97706; --stat-violet: #7c3aed; + --shadow-xs: 0 1px 2px rgba(15,22,35,0.04); + --shadow-sm: 0 1px 4px rgba(15,22,35,0.07),0 1px 2px rgba(15,22,35,0.04); + --shadow-md: 0 4px 16px rgba(15,22,35,0.08),0 2px 6px rgba(15,22,35,0.04); + --shadow-lg: 0 12px 36px rgba(15,22,35,0.11),0 4px 12px rgba(15,22,35,0.06); + --r-xs: 4px; --r-sm: 7px; --r: 11px; --r-lg: 15px; --r-xl: 20px; +} + +*, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; } + +body { + font-family: 'DM Sans', -apple-system, BlinkMacSystemFont, sans-serif; + background: var(--bg); overflow: hidden; font-size: 13px; + line-height: 1.55; color: var(--text-primary); + -webkit-font-smoothing: antialiased; +} + +/* ===== MAP ===== */ +#map { + height: 100vh; width: 100%; position: relative; z-index: 1; + /* iOS 100vh fix β€” set by JS */ + height: calc(var(--vh, 1vh) * 100); +} + +/* ===== SIDEBAR ===== */ +.sidebar { + position: absolute; top: 16px; left: 16px; width: 328px; + max-height: calc(100vh - 32px); + background: var(--surface); border-radius: var(--r-xl); + box-shadow: var(--shadow-lg); z-index: 1000; + overflow: hidden; display: flex; flex-direction: column; + border: 1px solid var(--border); + transition: transform 0.28s cubic-bezier(0.4,0,0.2,1), opacity 0.28s; +} + +.sidebar-header { + padding: 14px 16px 12px; + border-bottom: 1px solid var(--border-subtle); + display: flex; align-items: center; gap: 10px; flex-shrink: 0; + background: linear-gradient(160deg,#f9fafe 0%,#fff 100%); +} +.sidebar-logo { + width: 32px; height: 32px; background: var(--accent); border-radius: 9px; + display: flex; align-items: center; justify-content: center; + color: white; font-size: 14px; flex-shrink: 0; + box-shadow: 0 3px 10px rgba(58,86,212,0.30); +} +.sidebar-title { flex: 1; min-width: 0; } +.sidebar-title h1 { font-size: 13.5px; font-weight: 700; color: var(--text-primary); line-height: 1.2; } +.sidebar-title p { font-size: 10.5px; color: var(--text-muted); } + +/* User menu */ +.sidebar-user { position: relative; } +.user-btn { + display: flex; align-items: center; gap: 5px; + padding: 5px 8px; border: 1px solid var(--border); + border-radius: var(--r-sm); background: var(--surface-2); + cursor: pointer; font-size: 11px; font-weight: 600; + color: var(--text-secondary); font-family: 'DM Sans', sans-serif; + transition: all 0.14s; white-space: nowrap; +} +.user-btn:hover { background: var(--accent-light); border-color: var(--accent); color: var(--accent); } +.user-dropdown { + position: absolute; right: 0; top: calc(100% + 6px); + background: var(--surface); border: 1px solid var(--border); + border-radius: var(--r); box-shadow: var(--shadow-md); + min-width: 190px; z-index: 2000; display: none; padding: 6px 0; +} +.user-dropdown.open { display: block; } +.user-info { padding: 10px 14px 8px; } +.user-info strong { display: block; font-size: 13px; color: var(--text-primary); } +.user-info small { font-size: 10.5px; color: var(--text-muted); } +.user-dropdown hr { border: none; border-top: 1px solid var(--border-subtle); margin: 4px 0; } +.user-dropdown a { + display: flex; align-items: center; gap: 8px; + padding: 8px 14px; font-size: 12px; color: var(--text-secondary); + text-decoration: none; transition: background 0.12s; +} +.user-dropdown a:hover { background: var(--surface-2); color: var(--text-primary); } + +.sidebar-content { + padding: 12px 13px; overflow-y: auto; flex: 1; + display: flex; flex-direction: column; gap: 9px; + scrollbar-width: thin; scrollbar-color: var(--border) transparent; + -webkit-overflow-scrolling: touch; +} +.sidebar-content::-webkit-scrollbar { width: 3px; } +.sidebar-content::-webkit-scrollbar-thumb { background: var(--border); border-radius: 4px; } + +/* ===== MOBILE SIDEBAR TOGGLE ===== */ +.sidebar-toggle { + display: none; + position: absolute; top: 14px; left: 14px; z-index: 1001; + width: 40px; height: 40px; border-radius: var(--r); + background: var(--surface); border: 1px solid var(--border); + box-shadow: var(--shadow-md); cursor: pointer; + align-items: center; justify-content: center; + color: var(--accent); font-size: 16px; + transition: all 0.15s; +} + +/* Backdrop for mobile sidebar */ +.sidebar-backdrop { + display: none; + position: fixed; inset: 0; + background: rgba(10,15,28,0.40); + z-index: 999; +} +.sidebar-backdrop.active { display: block; } + +/* ===== NAV TABS ===== */ +.nav-tabs { + display: flex; gap: 3px; background: var(--surface-2); + border-radius: var(--r-sm); padding: 3px; + border: 1px solid var(--border-subtle); +} +.nav-tab { + flex: 1; padding: 6px 4px; text-align: center; + background: transparent; border-radius: 5px; cursor: pointer; + transition: all 0.15s; font-size: 10.5px; font-weight: 500; + color: var(--text-secondary); + display: flex; align-items: center; justify-content: center; + gap: 4px; user-select: none; white-space: nowrap; +} +.nav-tab:hover { background: var(--surface); color: var(--text-primary); } +.nav-tab.active { background: var(--surface); color: var(--accent); box-shadow: var(--shadow-sm); font-weight: 600; } +.nav-tab i { font-size: 10px; } + +/* ===== STAT CARDS ===== */ +.stats-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; width: 100%; } +.stat-card { + position: relative; overflow: hidden; padding: 11px 12px 9px; + border-radius: var(--r); border: 1px solid transparent; + transition: transform 0.18s, box-shadow 0.18s; cursor: default; +} +.stat-card:hover { transform: translateY(-2px); box-shadow: var(--shadow-md); } +.stat-card::before { + content: ''; position: absolute; right: -10px; bottom: -10px; + width: 58px; height: 58px; border-radius: 50%; opacity: 0.12; + background: currentColor; transition: transform 0.25s; +} +.stat-card:hover::before { transform: scale(1.3); } +.stat-card.purple { background: linear-gradient(135deg,#eaedfc,#dde3fa); border-color: #c8d0f5; color: var(--stat-blue); } +.stat-card.green { background: linear-gradient(135deg,#e0faf3,#c8f2e6); border-color: #a8e8d4; color: var(--stat-emerald); } +.stat-card.orange { background: linear-gradient(135deg,#fef6e4,#fde9c0); border-color: #f7d796; color: var(--stat-amber); } +.stat-card.teal { background: linear-gradient(135deg,#f0ebff,#e4d9fe); border-color: #c9b8fb; color: var(--stat-violet); } +.stat-card.red { background: linear-gradient(135deg,#fff0f0,#fddede); border-color: #f9b8b8; color: var(--danger); } +.stat-icon { display: flex; align-items: center; justify-content: space-between; margin-bottom: 6px; } +.stat-icon i { font-size: 14px; opacity: 0.75; } +.stat-icon::after { content: ''; display: block; width: 5px; height: 5px; border-radius: 50%; background: currentColor; opacity: 0.4; } +.stat-value { font-size: 22px; font-weight: 700; font-family: 'DM Mono', monospace; line-height: 1; letter-spacing: -0.03em; margin-bottom: 3px; } +.stat-label { font-size: 9px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.06em; opacity: 0.65; } + +/* ===== SEARCH ===== */ +.search-box { position: relative; } +.search-box input { + width: 100%; padding: 8px 10px 8px 32px; + border: 1px solid var(--border); border-radius: var(--r-sm); + font-size: 12px; font-family: 'DM Sans', sans-serif; + background: var(--surface-2); color: var(--text-primary); + transition: all 0.15s; outline: none; +} +.search-box input:focus { border-color: var(--accent); background: var(--surface); box-shadow: 0 0 0 3px var(--accent-subtle); } +.search-box i { position: absolute; left: 10px; top: 50%; transform: translateY(-50%); color: var(--text-muted); font-size: 11px; pointer-events: none; } + +/* ===== FILTER ===== */ +.filter-section { padding: 9px 11px; background: var(--surface-2); border-radius: var(--r-sm); border: 1px solid var(--border-subtle); } +.filter-title { font-size: 9.5px; font-weight: 700; color: var(--text-muted); margin-bottom: 7px; text-transform: uppercase; letter-spacing: 0.08em; } +.filter-buttons { display: flex; gap: 4px; } +.filter-btn { + flex: 1; padding: 5px 6px; border: 1px solid var(--border); + background: var(--surface); border-radius: var(--r-xs); + cursor: pointer; font-size: 10px; font-weight: 600; + font-family: 'DM Sans', sans-serif; transition: all 0.14s; color: var(--text-secondary); +} +.filter-btn:hover { border-color: var(--accent); color: var(--accent); background: var(--accent-light); } +.filter-btn.active { background: var(--accent); color: white; border-color: var(--accent); box-shadow: 0 2px 8px rgba(58,86,212,0.22); } + +/* Sub filters */ +.subfilter-section { display: flex; flex-direction: column; gap: 5px; } +.filter-row { display: flex; gap: 5px; } +.subfilter-select { + flex: 1; padding: 5px 7px; border: 1px solid var(--border); + border-radius: var(--r-xs); font-size: 10.5px; font-family: 'DM Sans', sans-serif; + background: var(--surface-2); color: var(--text-secondary); + outline: none; transition: all 0.14s; -webkit-appearance: none; +} +.subfilter-select:focus { border-color: var(--accent); } + +/* ===== DATA SECTION ===== */ +.data-section { display: flex; flex-direction: column; gap: 5px; } +.section-title { + display: flex; align-items: center; justify-content: space-between; + font-size: 9.5px; font-weight: 700; color: var(--text-secondary); + text-transform: uppercase; letter-spacing: 0.07em; +} +.count-badge { + background: var(--surface-3); border: 1px solid var(--border); + color: var(--text-muted); font-size: 10px; font-weight: 600; + padding: 1px 6px; border-radius: 20px; font-family: 'DM Mono', monospace; +} +.data-list { + border: 1px solid var(--border); border-radius: var(--r); + overflow: hidden; background: var(--surface); + max-height: 220px; overflow-y: auto; + scrollbar-width: thin; scrollbar-color: var(--border) transparent; + -webkit-overflow-scrolling: touch; +} +.data-list::-webkit-scrollbar { width: 3px; } +.data-list::-webkit-scrollbar-thumb { background: var(--border); border-radius: 4px; } +.data-item { + padding: 8px 11px; border-bottom: 1px solid var(--border-subtle); + cursor: pointer; transition: background 0.12s; + display: flex; align-items: center; gap: 9px; + min-height: 40px; +} +.data-item:hover { background: var(--surface-2); } +.data-item:last-child { border-bottom: none; } +.data-item-icon { width: 28px; height: 28px; border-radius: 7px; display: flex; align-items: center; justify-content: center; font-size: 11px; flex-shrink: 0; } +.data-item-icon.center { background: var(--accent-light); color: var(--accent); } +.data-item-icon.house { background: #e6faf4; color: var(--success); } +.data-item-info { flex: 1; min-width: 0; } +.data-item-title { font-weight: 600; font-size: 12px; color: var(--text-primary); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; margin-bottom: 1px; } +.data-item-subtitle { font-size: 10px; color: var(--text-secondary); } +.data-item-actions { display: flex; gap: 3px; flex-shrink: 0; } +.data-item-actions button { width: 24px; height: 24px; border: 1px solid var(--border); border-radius: var(--r-sm); cursor: pointer; font-size: 9px; display: flex; align-items: center; justify-content: center; background: var(--surface); transition: all 0.14s; } +.btn-edit { color: var(--warning); } .btn-edit:hover { background: #fffbf0; border-color: var(--warning); } +.btn-delete { color: var(--danger); } .btn-delete:hover { background: #fff4f4; border-color: var(--danger); } + +/* Admin panel button */ +.btn-admin-panel { + width: 100%; padding: 8px; border: 1px dashed var(--accent); + border-radius: var(--r-sm); background: var(--accent-subtle); + color: var(--accent); font-size: 12px; font-weight: 600; + font-family: 'DM Sans', sans-serif; cursor: pointer; + display: flex; align-items: center; justify-content: center; gap: 7px; + transition: all 0.14s; +} +.btn-admin-panel:hover { background: var(--accent-light); } + +/* Logout button */ +.logout-btn { + background: none; border: none; color: var(--danger); font-size: 15px; + cursor: pointer; padding: 4px 6px; border-radius: 6px; + transition: all 0.14s; display: flex; align-items: center; +} +.logout-btn:hover { background: rgba(214,50,48,0.08); } + +/* ===== GENERIC BUTTONS ===== */ +.btn { + padding: 9px 14px; border: none; border-radius: var(--r-sm); + font-size: 12.5px; font-weight: 600; font-family: 'DM Sans', sans-serif; + cursor: pointer; display: inline-flex; align-items: center; justify-content: center; + gap: 6px; transition: all 0.15s; width: 100%; margin-bottom: 6px; +} +.btn:last-child { margin-bottom: 0; } +.btn-sm { padding: 6px 10px; font-size: 11.5px; width: auto; margin-bottom: 0; } +.btn-primary { background: var(--accent); color: white; } +.btn-primary:hover { background: var(--accent-hover); box-shadow: 0 4px 12px rgba(58,86,212,0.28); } +.btn-success { background: var(--success); color: white; } +.btn-success:hover { filter: brightness(0.93); } +.btn-secondary { background: var(--surface-2); color: var(--text-secondary); border: 1px solid var(--border); } +.btn-secondary:hover { background: var(--surface-3); color: var(--text-primary); } +.btn-danger { background: var(--danger); color: white; } +.btn-danger:hover { filter: brightness(0.92); } + +/* ===== MODALS ===== */ +.modal-overlay { + position: fixed; inset: 0; background: rgba(10,15,28,0.45); + backdrop-filter: blur(4px); z-index: 2000; + display: none; align-items: center; justify-content: center; +} +.modal { + background: var(--surface); border-radius: var(--r-xl); + padding: 24px; max-width: 430px; width: 92%; + max-height: 88vh; overflow-y: auto; + box-shadow: var(--shadow-lg); border: 1px solid var(--border); + scrollbar-width: thin; + -webkit-overflow-scrolling: touch; +} +.modal-header { + display: flex; justify-content: space-between; align-items: flex-start; + margin-bottom: 18px; padding-bottom: 12px; border-bottom: 1px solid var(--border); +} +.modal-header h2 { font-size: 15px; font-weight: 700; color: var(--text-primary); } +.modal-close { + cursor: pointer; font-size: 18px; color: var(--text-muted); + line-height: 1; padding: 2px; transition: color 0.14s; + min-width: 28px; text-align: right; +} +.modal-close:hover { color: var(--text-primary); } + +/* Form inside modals */ +.form-group { margin-bottom: 13px; } +.form-group label { + display: block; font-size: 10.5px; font-weight: 700; + color: var(--text-secondary); margin-bottom: 4px; + letter-spacing: 0.03em; text-transform: uppercase; +} +.form-group input, .form-group textarea, .form-group select { + width: 100%; padding: 8px 10px; + border: 1px solid var(--border); border-radius: var(--r-sm); + font-size: 12.5px; font-family: 'DM Sans', sans-serif; + color: var(--text-primary); background: var(--surface-2); + transition: all 0.15s; outline: none; -webkit-appearance: none; +} +.form-group input:focus, .form-group textarea:focus, .form-group select:focus { + border-color: var(--accent); background: var(--surface); + box-shadow: 0 0 0 3px var(--accent-subtle); +} +.form-group input[readonly] { background: var(--surface-2); color: var(--text-muted); cursor: default; } +.form-group textarea { resize: vertical; min-height: 68px; line-height: 1.5; } +.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; } +.modal-actions { display: flex; gap: 7px; margin-top: 18px; } +.modal-actions .btn { flex: 1; margin-bottom: 0; } + +/* Slider */ +.slider-container { display: flex; align-items: center; gap: 10px; } +.slider-container input[type="range"] { + flex: 1; height: 4px; -webkit-appearance: none; background: var(--border); + border-radius: 2px; outline: none; border: none; box-shadow: none; padding: 0; +} +.slider-container input[type="range"]::-webkit-slider-thumb { + -webkit-appearance: none; width: 14px; height: 14px; border-radius: 50%; + background: var(--accent); cursor: pointer; + box-shadow: 0 1px 5px rgba(58,86,212,0.35); border: 2px solid white; +} +.slider-value { min-width: 44px; text-align: right; color: var(--accent); font-weight: 700; font-size: 11.5px; font-family: 'DM Mono', monospace; } + +/* Form sub-tabs */ +.form-tabs { display: flex; gap: 3px; margin-bottom: 14px; background: var(--surface-2); border-radius: var(--r-sm); padding: 3px; } +.form-tab { flex: 1; padding: 5px 4px; border: none; border-radius: 5px; cursor: pointer; font-size: 10.5px; font-weight: 600; font-family: 'DM Sans', sans-serif; color: var(--text-secondary); background: transparent; transition: all 0.14s; } +.form-tab.active { background: var(--surface); color: var(--accent); box-shadow: var(--shadow-sm); } +.form-tab-panel { display: none; } +.form-tab-panel.active { display: block; animation: fadeInPanel 0.18s ease; } +@keyframes fadeInPanel { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: none; } } + +/* Poverty preview widget */ +.poverty-preview { + display: flex; align-items: flex-start; gap: 12px; + padding: 12px 14px; background: var(--surface-2); + border-radius: var(--r); border: 1px solid var(--border-subtle); margin-bottom: 14px; + transition: border-color 0.3s; +} +.poverty-score-ring { + width: 44px; height: 44px; min-width: 44px; + border-radius: 50%; flex-shrink: 0; + display: flex; align-items: center; justify-content: center; + border: 3px solid #9ba4b5; background: #fff; + font-weight: 700; font-size: 15px; font-family: 'DM Mono', monospace; + transition: all 0.3s; +} +.poverty-status-label { font-weight: 700; font-size: 13px; line-height: 1.2; } +.poverty-status-badge { + display: inline-block; padding: 2px 8px; border-radius: 10px; + font-size: 9px; font-weight: 700; text-transform: uppercase; + letter-spacing: 0.5px; margin-left: 6px; vertical-align: middle; +} +.poverty-indicators { margin-top: 6px; padding: 0; list-style: none; } +.poverty-indicators li { + font-size: 9px; color: #5a6478; margin-bottom: 2px; line-height: 1.3; + padding-left: 10px; position: relative; +} +.poverty-indicators li::before { content: 'β€’'; position: absolute; left: 0; color: currentColor; } + +/* Aid history list */ +.aid-history-list { max-height: 160px; overflow-y: auto; -webkit-overflow-scrolling: touch; } +.aid-history-item { + display: flex; align-items: center; gap: 8px; + padding: 6px 10px; border-bottom: 1px solid var(--border-subtle); + font-size: 11.5px; +} +.aid-history-item:last-child { border-bottom: none; } +.aid-badge { padding: 2px 7px; border-radius: 20px; font-size: 10px; font-weight: 600; } + +/* ===== POPUP OVERRIDES ===== */ +.leaflet-popup-content-wrapper { + border-radius: var(--r-lg) !important; box-shadow: var(--shadow-lg) !important; + border: 1px solid var(--border); font-family: 'DM Sans', sans-serif !important; + padding: 0 !important; +} +.leaflet-popup-content { min-width: 240px; margin: 0 !important; } +.leaflet-popup-tip-container { display: none; } +.leaflet-popup-close-button { top: 10px !important; right: 10px !important; z-index: 10; } +.popup-info { padding: 12px 14px; } +.popup-info p { margin: 5px 0; font-size: 12px; color: var(--text-secondary); display: flex; align-items: baseline; gap: 6px; } +.popup-info p strong { font-size: 13.5px; font-weight: 700; color: var(--text-primary); display: block; margin-bottom: 2px; } +.popup-info p i { font-size: 10px; color: var(--text-muted); flex-shrink: 0; } +.popup-actions { display: flex; gap: 5px; margin-top: 10px; padding-top: 9px; border-top: 1px solid var(--border-subtle); flex-wrap: wrap; } +.popup-actions .btn { margin: 0; font-size: 11px; padding: 6px 9px; } +.radius-control { margin: 8px 0; padding: 9px 11px; background: var(--surface-2); border-radius: var(--r-sm); border: 1px solid var(--border-subtle); } +.radius-control label { font-size: 10.5px; color: var(--text-secondary); font-weight: 500; display: block; margin-bottom: 5px; } +.radius-ticks { display: flex; justify-content: space-between; font-size: 9px; color: var(--text-muted); margin-top: 3px; } +.popup-score-badge { + display: inline-flex; align-items: center; gap: 5px; + padding: 3px 9px; border-radius: 20px; font-size: 11px; font-weight: 700; +} + +/* Legacy popup classes */ +.popup-name { font-size: 14px; font-weight: 700; color: var(--text-primary); margin-bottom: 2px; line-height: 1.3; } +.popup-hint { font-size: 9.5px; color: var(--text-muted); margin-bottom: 10px; } +.popup-badges { display: flex; gap: 5px; flex-wrap: wrap; margin-bottom: 10px; padding-bottom: 10px; border-bottom: 1px solid var(--border-subtle); } +.popup-badge { padding: 3px 9px; border-radius: 20px; font-size: 9.5px; font-weight: 700; white-space: nowrap; } +.popup-row { display: flex; align-items: flex-start; gap: 8px; margin-bottom: 6px; font-size: 12px; color: var(--text-secondary); line-height: 1.45; } +.popup-row i { font-size: 10px; color: var(--text-muted); margin-top: 2px; flex-shrink: 0; width: 12px; text-align: center; } +.popup-row strong { color: var(--text-primary); font-weight: 600; } +.popup-section { margin-top: 10px; padding: 9px 11px; background: var(--surface-2); border-radius: var(--r-sm); border: 1px solid var(--border-subtle); } +.popup-section-label { font-size: 9px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; color: var(--text-muted); margin-bottom: 6px; } + +.legend { + position: absolute; + top: 130px; /* ganti dari bottom:300px ke top:70px */ + right: 16px; + background: var(--surface); + padding: 12px 14px; + border-radius: var(--r-lg); + box-shadow: var(--shadow-md); + z-index: 900; + border: 1px solid var(--border); + min-width: 160px; + max-width: 180px; + transition: all 0.2s; +} +.legend h4 { + font-size: 9.5px; font-weight: 700; letter-spacing: 0.08em; + text-transform: uppercase; color: var(--text-secondary); + margin-bottom: 9px; padding-bottom: 7px; + border-bottom: 1px solid var(--border-subtle); + cursor: pointer; user-select: none; + display: flex; align-items: center; justify-content: space-between; +} +.legend .legend-content { display: block; } +.legend.collapsed .legend-content { display: none; } +.legend.collapsed h4 { margin-bottom: 0; padding-bottom: 0; border-bottom: none; } +.legend-section-label { font-size: 8.5px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.09em; color: var(--text-muted); margin: 8px 0 4px; } +.legend-item { display: flex; align-items: center; gap: 7px; margin-bottom: 4px; font-size: 11px; color: var(--text-secondary); } +.legend-icon { width: 16px; height: 16px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 8px; color: white; flex-shrink: 0; } +.legend-poverty-item { display: flex; align-items: center; gap: 7px; margin-bottom: 4px; font-size: 11px; color: var(--text-secondary); } +.legend-poverty-dot { width: 9px; height: 9px; border-radius: 50%; flex-shrink: 0; border: 1.5px solid rgba(0,0,0,0.1); } + +/* LAYER CONTROL β€” ALWAYS top-right, compact height, never tall */ +.custom-layer-control { + position: absolute; + top: 16px; + right: 16px; + background: var(--surface); + padding: 10px 12px; + border-radius: var(--r-lg); + box-shadow: var(--shadow-md); + z-index: 1000; + border: 1px solid var(--border); + min-width: 0; + width: auto; +} +.custom-layer-control h4 { + font-size: 9.5px; + font-weight: 700; + letter-spacing: 0.08em; + text-transform: uppercase; + color: var(--text-secondary); + margin-bottom: 8px; + display: flex; + align-items: center; + gap: 5px; + white-space: nowrap; +} +.custom-layer-item { + display: flex; + align-items: center; + padding: 5px 0; + cursor: pointer; + border-bottom: 1px solid var(--border-subtle); + gap: 8px; + transition: opacity 0.12s; + white-space: nowrap; +} + +.custom-layer-item:hover { + opacity: 0.78; +} + +.custom-layer-item:last-of-type { + border-bottom: none; + padding-bottom: 0; +} + +.custom-layer-item input[type="checkbox"] { + width: 14px; + height: 14px; + cursor: pointer; + accent-color: var(--accent); + flex-shrink: 0; +} +.layer-icon { + font-size: 13px; + width: 18px; + text-align: center; + flex-shrink: 0; +} + +.layer-icon-center { + color: #3a56d4; /* Biru untuk tempat ibadah */ +} + +.layer-icon-house { + color: #0b9e73; /* Hijau untuk rumah */ +} + +.custom-layer-item span { + flex: 1; + font-size: 11.5px; + font-weight: 500; + color: var(--text-primary); +} + +.custom-layer-item small { + color: var(--text-muted); + font-size: 10px; + font-family: 'DM Mono', monospace; + margin-left: 4px; +} + +/* ===== LOADING ===== */ +.loading { + position: fixed; top: 16px; left: 50%; transform: translateX(-50%); + background: var(--surface); padding: 9px 15px; + border-radius: var(--r-sm); box-shadow: var(--shadow-md); + z-index: 2000; display: none; align-items: center; gap: 7px; + font-size: 12px; font-weight: 500; color: var(--text-secondary); + border: 1px solid var(--border); white-space: nowrap; +} +.loading i { color: var(--accent); } + +/* ===== TOAST ===== */ +.toast { + position: fixed; bottom: 26px; left: 50%; transform: translateX(-50%); + background: var(--text-primary); color: white; padding: 9px 18px; + border-radius: var(--r-sm); z-index: 3000; display: none; + font-size: 12px; font-weight: 500; box-shadow: var(--shadow-md); + white-space: nowrap; animation: toastIn 0.22s cubic-bezier(0.34,1.2,0.64,1); + max-width: calc(100vw - 32px); text-align: center; +} +.toast.success { background: var(--success); } +.toast.error { background: var(--danger); } +.toast.warning { background: var(--warning); } +@keyframes toastIn { from{transform:translate(-50%,16px);opacity:0} to{transform:translate(-50%,0);opacity:1} } + +/* ===== EMPTY STATE ===== */ +.empty-state { text-align: center; padding: 24px 14px; color: var(--text-muted); } +.empty-state i { font-size: 20px; display: block; margin-bottom: 7px; opacity: 0.3; } +.empty-state p { font-size: 11.5px; } + +/* ===== CURSORS ===== */ +.cursor-add-center { cursor: crosshair !important; } +.cursor-add-house { cursor: cell !important; } + +/* ===== HELP BUTTON ===== */ +.help-btn { + position: absolute; bottom: 100px; right: 16px; z-index: 1000; + width: 38px; height: 38px; border-radius: 50%; + background: var(--surface); border: 1px solid var(--border); + box-shadow: var(--shadow-md); cursor: pointer; + display: flex; align-items: center; justify-content: center; + color: var(--accent); font-size: 16px; transition: all 0.14s; +} +.help-btn:hover { background: var(--accent-light); transform: scale(1.08); } + +/* Help modal */ +.help-steps { min-height: 180px; } +.help-step { display: none; text-align: center; padding: 10px 0; animation: fadeIn 0.2s; } +.help-step.active { display: block; } +.help-step-icon { width: 56px; height: 56px; border-radius: 50%; background: var(--accent-light); color: var(--accent); display: flex; align-items: center; justify-content: center; font-size: 22px; margin: 0 auto 14px; } +.help-step h3 { font-size: 15px; font-weight: 700; margin-bottom: 8px; color: var(--text-primary); } +.help-step p { font-size: 13px; color: var(--text-secondary); line-height: 1.6; } +.help-nav { display: flex; align-items: center; justify-content: space-between; margin-top: 18px; padding-top: 14px; border-top: 1px solid var(--border-subtle); } +#helpProgress { font-size: 11.5px; color: var(--text-muted); font-family: 'DM Mono', monospace; } +@keyframes fadeIn { from{opacity:0;transform:translateY(6px)} to{opacity:1;transform:translateY(0)} } + +/* ===== DASHBOARD CHARTS ===== */ +#dashboardModal .modal { + max-width: 1100px; width: 96%; max-height: 90vh; + display: flex; flex-direction: column; overflow: hidden; padding: 0; +} +#dashboardModal .modal-header { + flex-shrink: 0; padding: 16px 24px; + border-bottom: 1px solid var(--border); + background: linear-gradient(160deg,#f9fafe 0%,#fff 100%); + margin-bottom: 0; border-radius: var(--r-xl) var(--r-xl) 0 0; +} +#dashboardModal .modal-header h2 { + font-size: 15px; font-weight: 700; + display: flex; align-items: center; gap: 8px; +} +#dashboardModal .modal-header h2 i { color: var(--accent); font-size: 16px; } + +.dashboard-scroll { + flex: 1; overflow-y: auto; padding: 20px 24px; + scrollbar-width: thin; scrollbar-color: var(--border) transparent; + -webkit-overflow-scrolling: touch; +} +.dashboard-scroll::-webkit-scrollbar { width: 4px; } +.dashboard-scroll::-webkit-scrollbar-thumb { background: var(--border); border-radius: 4px; } + +.dashboard-grid { + display: grid; grid-template-columns: 1fr 1fr; gap: 14px; +} + +.chart-card, .chart-card-sm { + background: var(--surface); border: 1px solid var(--border-subtle); + border-radius: var(--r-lg); padding: 14px 18px 12px; + box-shadow: var(--shadow-xs); transition: box-shadow 0.2s; + display: flex; flex-direction: column; +} +.chart-card:hover, .chart-card-sm:hover { box-shadow: var(--shadow-sm); } + +.chart-card-header { + display: flex; align-items: center; justify-content: space-between; + margin-bottom: 10px; padding-bottom: 8px; + border-bottom: 1px solid var(--border-subtle); flex-shrink: 0; +} +.chart-card-header h3 { + font-size: 11px; font-weight: 700; color: var(--text-secondary); + text-transform: uppercase; letter-spacing: 0.06em; + display: flex; align-items: center; gap: 7px; +} +.chart-card-header h3 i { color: var(--accent); font-size: 11px; opacity: 0.7; } +.chart-card-badge { + font-size: 9px; font-weight: 600; color: var(--text-muted); + background: var(--surface-2); padding: 3px 8px; + border-radius: 12px; font-family: 'DM Mono', monospace; +} + +.chart-canvas-wrap { + flex: 1; position: relative; min-height: 230px; +} +.chart-canvas-wrap canvas { width: 100% !important; height: 100% !important; } + +.chart-card-full { grid-column: 1 / -1; } +.chart-card-full .chart-canvas-wrap { min-height: 260px; } + +/* ===== ADMIN PANEL ===== */ +.admin-tabs { display: none; } /* single tab β€” hide bar */ +.admin-tab-panel { display: none; } +.admin-tab-panel.active { display: block; } +.admin-toolbar { display: flex; gap: 8px; margin-bottom: 12px; align-items: center; } +.admin-search { + flex: 1; padding: 7px 10px; border: 1px solid var(--border); + border-radius: var(--r-sm); font-size: 12px; + font-family: 'DM Sans', sans-serif; background: var(--surface-2); + outline: none; transition: border-color 0.15s; +} +.admin-search:focus { border-color: var(--accent); } +.admin-table-wrap { + max-height: 360px; overflow: auto; + border-radius: var(--r); border: 1px solid var(--border); + -webkit-overflow-scrolling: touch; +} +.admin-table-wrap::-webkit-scrollbar { width: 4px; height: 4px; } +.admin-table-wrap::-webkit-scrollbar-thumb { background: var(--border); border-radius: 4px; } +.admin-table { width: 100%; border-collapse: collapse; font-size: 11.5px; min-width: 520px; } +.admin-table th { + padding: 8px 10px; background: var(--surface-2); font-weight: 700; + font-size: 10px; text-transform: uppercase; letter-spacing: 0.05em; + color: var(--text-secondary); text-align: left; + position: sticky; top: 0; z-index: 2; border-bottom: 1px solid var(--border); +} +.admin-table td { padding: 7px 10px; border-bottom: 1px solid var(--border-subtle); color: var(--text-primary); vertical-align: middle; } +.admin-table tr:hover td { background: var(--surface-2); } +.admin-table tr:last-child td { border-bottom: none; } +.text-center { text-align: center; color: var(--text-muted); padding: 20px !important; } +.role-badge { padding: 2px 8px; border-radius: 20px; font-size: 9.5px; font-weight: 700; display: inline-block; } +.role-badge.super_admin { background: #fee2e2; color: #991b1b; } +.role-badge.admin { background: #dbeafe; color: #1e40af; } +.role-badge.field_officer { background: #d1fae5; color: #065f46; } +.status-badge { padding: 2px 7px; border-radius: 20px; font-size: 9.5px; font-weight: 600; display: inline-block; } +.status-badge.active { background: #d1fae5; color: #065f46; } +.status-badge.inactive { background: #fee2e2; color: #991b1b; } +.action-btn { padding: 3px 8px; border: 1px solid var(--border); border-radius: 4px; cursor: pointer; font-size: 10px; background: var(--surface); font-family: 'DM Sans', sans-serif; transition: all 0.12s; } +.action-btn:hover { border-color: var(--accent); color: var(--accent); } +.action-btn.danger { color: var(--danger); } .action-btn.danger:hover { border-color: var(--danger); background: #fff4f4; } +.btn-approve { background: var(--success); color: white; border: none; } +.btn-approve:hover { filter: brightness(0.92); } +.btn-reject { background: var(--danger); color: white; border: none; } +.btn-reject:hover { filter: brightness(0.92); } +.pending-badge { + background: var(--danger); color: white; + font-size: 9px; font-weight: 700; padding: 1px 5px; + border-radius: 10px; margin-left: 4px; display: inline-block; + vertical-align: middle; min-width: 14px; text-align: center; +} +.pending-badge:empty { display: none; } +#adminModal .modal { max-width: 800px; } + +/* ===== LEAFLET NATIVE ===== */ +.leaflet-control-zoom { border-radius: var(--r-sm) !important; border: 1px solid var(--border) !important; box-shadow: var(--shadow-sm) !important; } +.leaflet-control-zoom a { color: var(--text-secondary) !important; border-radius: inherit !important; font-weight: 600 !important; } +.leaflet-control-zoom a:hover { background: var(--accent-light) !important; color: var(--accent) !important; } + +/* ===== CUSTOM MAP MARKERS ===== */ +.custom-marker-center { + width: 32px; height: 32px; border-radius: 50% 50% 50% 0; + transform: rotate(-45deg); display: flex; align-items: center; + justify-content: center; box-shadow: 0 3px 10px rgba(0,0,0,0.28); + border: 2px solid rgba(255,255,255,0.85); transition: transform 0.15s; +} +.custom-marker-center i { transform: rotate(45deg); font-size: 12px; color: white; } +.custom-marker-center:hover { transform: rotate(-45deg) scale(1.12); } + +.custom-marker-house { + width: 26px; height: 26px; border-radius: 50% 50% 50% 0; + transform: rotate(-45deg); display: flex; align-items: center; + justify-content: center; box-shadow: 0 2px 8px rgba(0,0,0,0.25); + border: 2px solid rgba(255,255,255,0.85); position: relative; +} +.custom-marker-house i { transform: rotate(45deg); font-size: 10px; color: white; } +.marker-aid-dot { + position: absolute; top: -2px; right: -2px; + width: 8px; height: 8px; border-radius: 50%; + background: #ffe066; border: 1.5px solid #b8860b; transform: rotate(45deg); +} + +/* ===== HOUSE POPUP (.hp-*) ===== */ +.hp-leaflet-popup .leaflet-popup-content-wrapper { + padding: 0; border-radius: var(--r-lg); + box-shadow: var(--shadow-lg); border: 1px solid var(--border); overflow: hidden; +} +.hp-leaflet-popup .leaflet-popup-content { + margin: 0 !important; + min-width: 300px !important; max-width: 360px !important; width: 100% !important; +} +.hp-leaflet-popup .leaflet-popup-tip-container { margin-top: -1px; } + +.hp-popup { + display: flex; flex-direction: column; + font-family: 'DM Sans', -apple-system, sans-serif; + font-size: 12px; color: var(--text-primary); + background: var(--surface); border-radius: var(--r-lg); + overflow: hidden; max-height: 82vh; +} +.hp-header { + display: flex; align-items: center; gap: 8px; + padding: 12px 14px 10px; + background: linear-gradient(160deg,#f9fafe 0%,#fff 100%); + border-bottom: 1px solid var(--border-subtle); flex-shrink: 0; +} +.hp-avatar { width: 36px; height: 36px; border-radius: 10px; display: flex; align-items: center; justify-content: center; font-size: 15px; flex-shrink: 0; } +.hp-header-info { flex: 1; min-width: 0; } +.hp-head-name { font-size: 13.5px; font-weight: 700; color: var(--text-primary); line-height: 1.25; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } +.hp-nik { font-size: 10px; color: var(--text-muted); margin-top: 2px; font-family: 'DM Mono', monospace; } +.hp-drag-hint { width: 28px; height: 28px; border-radius: 8px; display: flex; align-items: center; justify-content: center; background: var(--accent-light); border: 1px solid var(--border); color: var(--accent); font-size: 11px; flex-shrink: 0; } +.hp-status-strip { display: flex; gap: 6px; padding: 9px 14px; background: var(--surface-2); border-bottom: 1px solid var(--border-subtle); flex-shrink: 0; flex-wrap: wrap; } +.hp-status-chip { display: inline-flex; align-items: center; gap: 5px; padding: 3px 9px; border-radius: 20px; border: 1px solid transparent; font-size: 10px; font-weight: 700; white-space: nowrap; } +.hp-status-chip i { font-size: 9px; } +.hp-chip-dot { width: 6px; height: 6px; border-radius: 50%; flex-shrink: 0; } +.hp-body { overflow-y: auto; flex: 1; padding: 0 0 4px; scrollbar-width: thin; scrollbar-color: var(--border) transparent; -webkit-overflow-scrolling: touch; } +.hp-body::-webkit-scrollbar { width: 3px; } +.hp-body::-webkit-scrollbar-thumb { background: var(--border); border-radius: 4px; } +.hp-section { padding: 11px 14px; border-bottom: 1px solid var(--border-subtle); } +.hp-section:last-child { border-bottom: none; } +.hp-section-header { display: flex; align-items: center; gap: 6px; font-size: 9.5px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; color: var(--text-muted); margin-bottom: 8px; } +.hp-section-header i { font-size: 9px; width: 12px; text-align: center; } +.hp-count { margin-left: auto; background: var(--surface-3); border: 1px solid var(--border); color: var(--text-muted); font-size: 9px; font-weight: 700; padding: 0 5px; border-radius: 10px; font-family: 'DM Mono', monospace; } +.hp-address { font-size: 11.5px; color: var(--text-secondary); line-height: 1.5; margin-bottom: 7px; word-break: break-word; } +.hp-pills { display: flex; gap: 4px; flex-wrap: wrap; margin-bottom: 7px; } +.hp-pill { padding: 2px 8px; border-radius: 20px; background: var(--accent-subtle); color: var(--accent); font-size: 10px; font-weight: 600; white-space: nowrap; } +.hp-center-row { display: flex; align-items: center; gap: 6px; font-size: 11px; color: var(--text-secondary); margin-bottom: 7px; } +.hp-center-row i { color: var(--accent); font-size: 10px; flex-shrink: 0; } +.hp-coords { display: flex; align-items: center; gap: 5px; font-size: 10px; color: var(--text-muted); font-family: 'DM Mono', monospace; } +.hp-coords i { font-size: 9px; } +.hp-kv-grid { display: flex; flex-direction: column; gap: 5px; } +.hp-kv-row { display: flex; align-items: baseline; gap: 6px; font-size: 11.5px; line-height: 1.4; } +.hp-kv-label { flex-shrink: 0; width: 90px; font-size: 10px; font-weight: 600; color: var(--text-muted); } +.hp-kv-val { color: var(--text-primary); flex: 1; word-break: break-word; } +.hp-members-list { display: flex; flex-direction: column; gap: 6px; } +.hp-member-row { display: flex; align-items: center; gap: 8px; } +.hp-member-avatar { width: 24px; height: 24px; border-radius: 7px; background: var(--surface-3); border: 1px solid var(--border); display: flex; align-items: center; justify-content: center; color: var(--text-muted); font-size: 9px; flex-shrink: 0; } +.hp-member-info { flex: 1; min-width: 0; } +.hp-member-name { font-size: 11.5px; font-weight: 600; color: var(--text-primary); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } +.hp-member-meta { font-size: 10px; color: var(--text-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } +.hp-member-more { font-size: 10px; color: var(--text-muted); text-align: center; padding: 4px 0 0; border-top: 1px dashed var(--border); margin-top: 4px; display: flex; align-items: center; justify-content: center; gap: 5px; } +.hp-aid-list { display: flex; flex-direction: column; gap: 8px; } +.hp-aid-row { display: grid; grid-template-columns: 1fr auto; gap: 2px 8px; align-items: start; padding-bottom: 8px; border-bottom: 1px solid var(--border-subtle); } +.hp-aid-row:last-child { border-bottom: none; padding-bottom: 0; } +.hp-aid-left { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; grid-column: 1; } +.hp-aid-type { display: inline-block; padding: 2px 8px; border-radius: 20px; background: #e0faf3; color: #0b9e73; font-size: 9.5px; font-weight: 700; } +.hp-aid-amount { font-size: 11px; font-weight: 700; color: var(--text-primary); } +.hp-aid-date { font-size: 10px; color: var(--text-muted); text-align: right; grid-column: 2; grid-row: 1; white-space: nowrap; } +.hp-aid-note { grid-column: 1 / -1; font-size: 10px; color: var(--text-muted); line-height: 1.4; } +.hp-empty-hint { display: flex; align-items: center; gap: 7px; font-size: 11px; color: var(--text-muted); font-style: italic; } +.hp-empty-hint i { font-size: 12px; } +.hp-actions { + display: flex; gap: 6px; padding: 10px 14px 12px; + border-top: 1px solid var(--border-subtle); + background: var(--surface); flex-shrink: 0; flex-wrap: wrap; +} +.hp-btn { display: inline-flex; align-items: center; gap: 5px; padding: 6px 12px; border-radius: var(--r-sm); border: none; font-size: 11.5px; font-weight: 600; font-family: 'DM Sans', sans-serif; cursor: pointer; transition: all 0.14s; white-space: nowrap; } +.hp-btn i { font-size: 10px; } +.hp-btn-primary { background: var(--accent); color: white; } +.hp-btn-primary:hover { background: var(--accent-hover); } +.hp-btn-success { background: #e0faf3; color: var(--success); flex: 1; justify-content: center; } +.hp-btn-success:hover { background: #c8f2e6; } +.hp-btn-danger { background: #fff0f0; color: var(--danger); padding: 6px 10px; } +.hp-btn-danger:hover { background: #fddede; } + +/* Admin top bar */ +.admin-top-bar { position: absolute; top: 10px; left: 50%; transform: translateX(-50%); z-index: 1001; display: flex; gap: 6px; align-items: center; pointer-events: none; } +.admin-top-bar a { pointer-events: all; } + +/* ===== PRINT ===== */ +@media print { + .sidebar, .legend, .custom-layer-control, .loading, .toast, .help-btn { display: none !important; } + #map { height: 100vh !important; } +} + +/* ===== FOCUS ===== */ +:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; } + +/* MOBILE RESPONSIVE */ + +/* ── Tablet (≀900px) ── */ +@media (max-width: 900px) { + #dashboardModal .modal { max-width: 96vw; } + .dashboard-grid { gap: 12px; } +} + +/* ── Mobile (≀768px) ── */ +@media (max-width: 768px) { + /* Show hamburger toggle */ + .sidebar-toggle { display: flex; } + + /* Sidebar becomes a slide-in drawer from the left */ + .sidebar { + top: 0; left: 0; + width: 300px; max-width: 88vw; + max-height: 100vh; + border-radius: 0 var(--r-xl) var(--r-xl) 0; + transform: translateX(-100%); + opacity: 0; pointer-events: none; + box-shadow: none; + } + .sidebar.mobile-open { + transform: translateX(0); + opacity: 1; pointer-events: all; + box-shadow: var(--shadow-lg); + } + + /* LAYER CONTROL: stays top-right, just slightly smaller */ + .custom-layer-control { + top: 14px; + right: 14px; + padding: 9px 11px; + /* hide count labels to save space */ + } + .custom-layer-control small { display: none; } + .custom-layer-control h4 { margin-bottom: 6px; font-size: 9px; } + .custom-layer-item { padding: 4px 0; } + + /* LEGEND: stays bottom-right, collapse by default on mobile */ + .legend { + top: 100px; + right: 14px; + padding: 9px 12px; + min-width: 0; + } + .legend .legend-content { display: none; } + .legend.collapsed .legend-content { display: none; } + .legend:not(.collapsed) .legend-content { display: block; margin-top: 8px; } + .legend:not(.collapsed) h4 { margin-bottom: 7px; padding-bottom: 6px; border-bottom: 1px solid var(--border-subtle); } + .legend.collapsed h4 { margin-bottom: 0; padding-bottom: 0; border-bottom: none; } + + /* Help button β€” move left so it doesn't sit on top of legend */ + .help-btn { bottom: 100px; right: 10px; } + + /* Stats */ + .stat-value { font-size: 19px; } + .stats-grid { gap: 5px; } + + /* Popup */ + .hp-leaflet-popup .leaflet-popup-content { + min-width: 270px !important; + max-width: calc(100vw - 32px) !important; + } + .hp-popup { max-height: 68vh; } + + /* Dashboard full-screen */ + #dashboardModal .modal { + max-width: 100%; width: 100%; + max-height: 100vh; border-radius: 0; + } + .dashboard-grid { grid-template-columns: 1fr; gap: 10px; } + .dashboard-scroll { padding: 12px 14px; } + .chart-canvas-wrap { min-height: 200px; } + .chart-card-full .chart-canvas-wrap { min-height: 220px; } + + /* Admin modal */ + #adminModal .modal { max-width: 100%; border-radius: var(--r-lg); } + + /* Loading: center top */ + .loading { left: 50%; right: auto; transform: translateX(-50%); } + + /* Toast: allow wrapping */ + .toast { white-space: normal; max-width: calc(100vw - 28px); } + + /* Modals: slightly tighter on mobile */ + .modal { padding: 20px 18px; max-height: 92vh; } +} + +/* ── Small phones (≀480px) ── */ +@media (max-width: 480px) { + .sidebar { max-width: 92vw; border-radius: 0 var(--r-lg) var(--r-lg) 0; } + + /* Stat cards compact */ + .stat-value { font-size: 17px; } + .stat-card { padding: 9px 10px 7px; } + .stat-label { font-size: 8.5px; } + + /* Nav tabs: smaller */ + .nav-tab { font-size: 9.5px; padding: 5px 3px; } + + /* Popup width */ + .hp-leaflet-popup .leaflet-popup-content { + min-width: 250px !important; + max-width: calc(100vw - 24px) !important; + } + + /* Layer control: icon + checkboxes only, no label text */ + .custom-layer-item span { display: none; } + .custom-layer-control h4 span { display: none; } + .custom-layer-control { padding: 8px 9px; } + + /* Admin toolbar wraps */ + .admin-toolbar { flex-wrap: wrap; } + .admin-top-bar a span { display: none; } + + /* Modal padding tight */ + .modal { padding: 16px 14px; } +} + +/* ── Very small (≀360px) ── */ +@media (max-width: 360px) { + .sidebar-title p { display: none; } + .stat-value { font-size: 15px; } + .nav-tab i + * { display: none; } /* icon only */ +} + +/* ── Landscape phone ── */ +@media (max-height: 480px) and (orientation: landscape) { + .sidebar { max-height: 100vh; } + .sidebar-content { gap: 6px; padding: 8px 10px; } + .stats-grid { grid-template-columns: repeat(5,1fr); } + .data-list { max-height: 100px; } + .legend { display: none; } + .chart-canvas-wrap { min-height: 160px; } +} + +/* ── Photo upload widget ──────────────────────────────────────── */ +.photo-upload-zone { + border: 2px dashed var(--border, #e2e6ef); + border-radius: 10px; + padding: 14px 12px 10px; + text-align: center; + cursor: pointer; + transition: border-color .2s, background .2s; + background: var(--bg-secondary, #f8f9fc); + margin-top: 2px; +} +.photo-upload-zone:hover, +.photo-upload-zone.dragover { + border-color: var(--accent, #5c72f5); + background: rgba(92,114,245,.05); +} +.photo-upload-zone input[type="file"] { + display: none; +} +.photo-upload-zone .puz-label { + font-size: 12px; + color: var(--text-muted, #9ba4b5); + margin-top: 6px; + display: block; +} +.photo-upload-zone .puz-icon { + font-size: 22px; + color: var(--accent, #5c72f5); + opacity: .7; +} +.photo-strip { + display: flex; + flex-wrap: wrap; + gap: 8px; + margin-top: 10px; + min-height: 0; +} +.photo-thumb { + width: 72px; + height: 72px; + object-fit: cover; + border-radius: 8px; + border: 1.5px solid var(--border, #e2e6ef); + transition: transform .15s; +} +.photo-thumb:hover { transform: scale(1.06); } +.photo-error-msg { + font-size: 11px; + color: var(--danger, #d63230); + margin-top: 5px; + display: none; +} +.photo-error-msg.show { display: block; } +/* Popup photo strip */ +.popup-photo-strip { + display: flex; + flex-wrap: wrap; + gap: 5px; + margin-top: 8px; +} +.popup-photo-strip img { + width: 60px; + height: 60px; + object-fit: cover; + border-radius: 6px; + border: 1.5px solid #e2e6ef; + cursor: zoom-in; + transition: transform .15s; +} +.popup-photo-strip img:hover { transform: scale(1.08); } \ No newline at end of file diff --git a/03PovertyMapping/assets/js/admin.js b/03PovertyMapping/assets/js/admin.js new file mode 100644 index 0000000..e057d9b --- /dev/null +++ b/03PovertyMapping/assets/js/admin.js @@ -0,0 +1,29 @@ +/* ============================================================ + admin.js β€” Admin panel: public reports (now accessible to Field Officers) + ============================================================ */ +'use strict'; + +async function openAdminPanel() { + openModal('adminModal'); + loadPendingReports(); + updatePendingBadge(); +} + +async function updatePendingBadge() { + try { + const r = await fetch('api/public/report.php?action=list&status=pending&limit=1'); + const d = await r.json(); + const cnt = d?.data?.total ?? 0; + const el = document.getElementById('pendingBadge'); + if (el) el.textContent = cnt > 0 ? cnt : ''; + } catch { /* ignore */ } +} + +document.addEventListener('DOMContentLoaded', () => { + // Status filter change - tetap tersedia untuk semua role + document.getElementById('pendingStatusFilter') + ?.addEventListener('change', loadPendingReports); + + // Refresh badge every 90 seconds + setInterval(updatePendingBadge, 90_000); +}); \ No newline at end of file diff --git a/03PovertyMapping/assets/js/api.js b/03PovertyMapping/assets/js/api.js new file mode 100644 index 0000000..addf140 --- /dev/null +++ b/03PovertyMapping/assets/js/api.js @@ -0,0 +1,162 @@ +/* ============================================================ + api.js β€” Centralized fetch wrapper + ============================================================ */ +'use strict'; + +const Http = { + async request(url, options = {}) { + const headers = { + 'Content-Type': 'application/json', + ...options.headers, + }; + try { + const res = await fetch(url, { ...options, headers }); + const data = await res.json(); + return { ok: res.ok, status: res.status, data }; + } catch (err) { + console.error('[API] Network error:', err); + return { ok: false, status: 0, data: { success: false, message: 'Koneksi gagal.' } }; + } + }, + async post(endpoint, body = {}) { + return this.request(endpoint, { + method: 'POST', + body: JSON.stringify(body), + }); + }, +}; + +const ApiHouses = { + async list(params = {}) { + const qs = new URLSearchParams(params).toString(); + return Http.request(API.houses + (qs ? '?' + qs : ''), { method: 'GET' }); + }, + async show(id) { + return Http.request(API.houses + '?action=show&id=' + id, { method: 'GET' }); + }, + async create(body) { + return Http.post(API.houses + '?action=create', body); + }, + async update(id, body) { + return Http.post(API.houses + '?action=update&id=' + id, body); + }, + async patch(id, body) { + return Http.post(API.houses + '?action=patch&id=' + id, body); + }, + async delete(id) { + return Http.post(API.houses + '?action=delete&id=' + id); + }, + async verify(id) { + return Http.post(API.houses + '?action=verify&id=' + id); + }, +}; + +const ApiCenters = { + async list(params = {}) { + const qs = new URLSearchParams(params).toString(); + return Http.request(API.centers + (qs ? '?' + qs : ''), { method: 'GET' }); + }, + async show(id) { + return Http.request(API.centers + '?action=show&id=' + id, { method: 'GET' }); + }, + async create(body) { + return Http.post(API.centers + '?action=create', body); + }, + async update(id, body) { + return Http.post(API.centers + '?action=update&id=' + id, body); + }, + async patch(id, body) { + return Http.post(API.centers + '?action=patch&id=' + id, body); + }, + async delete(id) { + return Http.post(API.centers + '?action=delete&id=' + id); + }, + async coverage(id) { + return Http.request(API.centers + '?action=coverage&id=' + id, { method: 'GET' }); + }, + async nearby(lat, lng, km = 5) { + return Http.request(API.centers + `?action=nearby&lat=${lat}&lng=${lng}&km=${km}`, { method: 'GET' }); + }, +}; + +const ApiAid = { + async list(params = {}) { + const qs = new URLSearchParams(params).toString(); + return Http.request(API.aid + (qs ? '?' + qs : ''), { method: 'GET' }); + }, + async show(id) { + return Http.request(API.aid + '?action=show&id=' + id, { method: 'GET' }); + }, + async create(body) { + return Http.post(API.aid + '?action=create', body); + }, + async update(id, body) { + return Http.post(API.aid + '?action=update&id=' + id, body); + }, + async delete(id) { + return Http.post(API.aid + '?action=delete&id=' + id); + }, + async stats() { + return Http.request(API.aid + '?action=stats', { method: 'GET' }); + }, +}; + +const ApiReports = { + async list(params = {}) { + const qs = new URLSearchParams(params).toString(); + return Http.request(API.reports + (qs ? '?' + qs : ''), { method: 'GET' }); + }, + async show(id) { + return Http.request(API.reports + '?action=show&id=' + id, { method: 'GET' }); + }, + async create(body) { + return Http.post(API.reports + '?action=create', body); + }, + async update(id, body) { + return Http.post(API.reports + '?action=update&id=' + id, body); + }, + async resolve(id) { + return Http.post(API.reports + '?action=resolve&id=' + id); + }, + async delete(id) { + return Http.post(API.reports + '?action=delete&id=' + id); + }, +}; + +const ApiStats = { + async overview() { + return Http.request(API.stats + '?action=overview', { method: 'GET' }); + }, + async trend() { + return Http.request(API.stats + '?action=trend', { method: 'GET' }); + }, + async povertyChart() { + return Http.request(API.stats + '?action=poverty_chart', { method: 'GET' }); + }, + async aidChart() { + return Http.request(API.stats + '?action=aid_chart', { method: 'GET' }); + }, + async centerStats() { + return Http.request(API.stats + '?action=center_stats', { method: 'GET' }); + }, + async ageDistribution() { + return Http.request(API.stats + '?action=age_distribution', { method: 'GET' }); + }, + async education() { + return Http.request(API.stats + '?action=education', { method: 'GET' }); + }, +}; + +const ApiUsers = { + async list(params = {}) { + const qs = new URLSearchParams(params).toString(); + return Http.request(API.users + (qs ? '?' + qs : ''), { method: 'GET' }); + }, +}; + +const ApiLogs = { + async list(params = {}) { + const qs = new URLSearchParams(params).toString(); + return Http.request(API.logs + (qs ? '?' + qs : ''), { method: 'GET' }); + }, +}; \ No newline at end of file diff --git a/03PovertyMapping/assets/js/app.js b/03PovertyMapping/assets/js/app.js new file mode 100644 index 0000000..85331f7 --- /dev/null +++ b/03PovertyMapping/assets/js/app.js @@ -0,0 +1,246 @@ +/* ============================================================ + app.js β€” Main app orchestrator with authentication + ============================================================ */ +'use strict'; + +// Flag to prevent duplicate initialization +let isAppInitialized = false; + +document.addEventListener('DOMContentLoaded', async () => { + // Prevent duplicate initialization + if (isAppInitialized) { + console.warn('App already initialized, skipping duplicate call'); + return; + } + + // First check authentication + const isAuthed = await checkAuth(); + + if (!isAuthed) { + // Not logged in, redirect to login + window.location.href = 'login.html'; + return; + } + + // Initialize UI based on role + initUIByRole(); + + // Add logout button to sidebar + addLogoutButton(); + + // Init map + initMap(); + + // Init UI + initNavTabs(); + initFilters(); + initFormTabs(); + initHelpModal(); + + // Load data + await loadAllData(); + + // Nav tab: activate placement modes + hookTabPlacementModes(); + + isAppInitialized = true; +}); + +async function refreshCenters() { + const r = await ApiCenters.list(); + if (r.ok && r.data?.success) { + State.centers = r.data.data.centers || []; + recountCenterHouseholds(); // Hitung ulang setelah dapat data baru + renderCenters(); + updateLayerCounts(); + } +} + +// Override loadAllData untuk memastikan recount +async function loadAllData() { + showLoading(true); + + const params = {}; + if (State.povertyFilter) params.poverty_status = State.povertyFilter; + if (State.aidFilter) params.aid_status = State.aidFilter; + if (State.searchQuery) params.q = State.searchQuery; + if (State.conditionFilter) params.house_condition = State.conditionFilter; + params.limit = 500; + + const [centersRes, housesRes] = await Promise.all([ + ApiCenters.list(), + ApiHouses.list(params), + loadStats() + ]); + + if (centersRes.ok && centersRes.data?.success) { + State.centers = centersRes.data.data.centers || []; + } + + if (housesRes.ok && housesRes.data?.success) { + State.houses = housesRes.data.data.households || []; + } + + recountCenterHouseholds(); // ⭐ PASTIKAN HITUNG ULANG + renderCenters(); + renderHouses(); + + showLoading(false); +} + +// Export fungsi refresh +window.refreshCenters = refreshCenters; + +async function loadCenters() { + const r = await ApiCenters.list(); + if (r.ok && r.data?.success) { + State.centers = r.data.data.centers || []; + } + renderCenters(); +} + +async function loadHouses() { + const params = {}; + if (State.povertyFilter) params.poverty_status = State.povertyFilter; + if (State.aidFilter) params.aid_status = State.aidFilter; + if (State.searchQuery) params.q = State.searchQuery; + if (State.conditionFilter) params.house_condition = State.conditionFilter; + + const r = await ApiHouses.list({ ...params, limit: 500 }); + if (r.ok && r.data?.success) { + State.houses = r.data.data.households || []; + } + renderHouses(); +} + +async function loadStats() { + const r = await ApiStats.overview(); + if (!r.ok || !r.data?.success) return; + + const d = r.data.data; + State.stats = d; + + animateCount('statCenters', d.centers); + animateCount('statHouses', d.households); + animateCount('statPopulation', d.population); + animateCount('statAided', d.aid_received); + animateCount('statPending', d.pending_public ?? 0); +} + +// Export for public-reports.js +window.loadAllData = loadAllData; +window.loadStats = loadStats; + +function animateCount(id, target) { + const el = document.getElementById(id); + if (!el) return; + const start = parseInt(el.textContent.replace(/\D/g,'')) || 0; + const diff = target - start; + const steps = 20; + let step = 0; + const interval = setInterval(() => { + step++; + el.textContent = Math.round(start + (diff * step / steps)).toLocaleString('id-ID'); + if (step >= steps) clearInterval(interval); + }, 30); +} + +function initNavTabs() { + document.querySelectorAll('.nav-tab').forEach(tab => { + tab.addEventListener('click', () => { + const key = tab.dataset.tab; + document.querySelectorAll('.nav-tab').forEach(t => t.classList.remove('active')); + tab.classList.add('active'); + + if (key === 'dashboard') { + openDashboard(); + setTimeout(() => { + document.querySelectorAll('.nav-tab').forEach(t => t.classList.remove('active')); + document.querySelector('[data-tab="overview"]').classList.add('active'); + }, 200); + } else if (key === 'overview') { + cancelPlacementMode(); + State.activeFilter = 'all'; + renderAllLayers(); + } + }); + }); +} + +function hookTabPlacementModes() { + document.querySelector('[data-tab="centers"]')?.addEventListener('click', () => { + setPlacementMode('center'); + showToast('Klik peta untuk menambah tempat ibadah.', 'success', 3000); + }); + + document.querySelector('[data-tab="houses"]')?.addEventListener('click', () => { + setPlacementMode('house'); + showToast('Klik peta untuk menambah rumah tangga.', 'success', 3000); + }); +} + +function initFilters() { + document.querySelectorAll('.filter-btn').forEach(btn => { + btn.addEventListener('click', () => { + document.querySelectorAll('.filter-btn').forEach(b => b.classList.remove('active')); + btn.classList.add('active'); + State.activeFilter = btn.dataset.filter; + renderAllLayers(); + }); + }); + + const searchInput = document.getElementById('searchInput'); + if (searchInput) { + searchInput.addEventListener('input', debounce(async (e) => { + State.searchQuery = e.target.value.trim(); + renderAllLayers(); + }, 300)); + } +} + +let helpStep = 1; +const helpTotal = 5; + +function initHelpModal() { + document.getElementById('helpBtn')?.addEventListener('click', () => { + helpStep = 1; + updateHelpStep(); + openModal('helpModal'); + }); +} + +function helpNav(dir) { + helpStep = Math.min(helpTotal, Math.max(1, helpStep + dir)); + updateHelpStep(); +} + +function updateHelpStep() { + document.querySelectorAll('.help-step').forEach(s => s.classList.remove('active')); + document.querySelector(`.help-step[data-step="${helpStep}"]`)?.classList.add('active'); + document.getElementById('helpProgress').textContent = helpStep + ' / ' + helpTotal; + document.getElementById('helpPrev').disabled = helpStep === 1; + document.getElementById('helpNext').disabled = helpStep === helpTotal; + if (helpStep === helpTotal) { + document.getElementById('helpNext').textContent = 'Selesai'; + document.getElementById('helpNext').onclick = () => closeModal('helpModal'); + } else { + document.getElementById('helpNext').textContent = 'Berikutnya β†’'; + document.getElementById('helpNext').onclick = () => helpNav(1); + } +} + +document.addEventListener('keydown', (e) => { + if (e.key === 'Escape') { + cancelPlacementMode(); + document.querySelectorAll('.modal-overlay').forEach(m => { + if (m.style.display === 'flex') { + m.style.display = 'none'; + document.body.style.overflow = ''; + } + }); + } + if (e.ctrlKey && e.key === 'r') { + e.preventDefault(); + loadAllData().then(() => showToast('Data diperbarui.', 'success')); + } +}); \ No newline at end of file diff --git a/03PovertyMapping/assets/js/auth.js b/03PovertyMapping/assets/js/auth.js new file mode 100644 index 0000000..44382ef --- /dev/null +++ b/03PovertyMapping/assets/js/auth.js @@ -0,0 +1,170 @@ +/* ============================================================ + auth.js β€” Authentication and role-based UI management + ============================================================ */ +'use strict'; + +// Global user state +let currentUser = null; +let isLoggedIn = false; +let userRole = null; + +// ================================================================ +// Session check on page load +// ================================================================ +async function checkAuth() { + try { + const response = await fetch('api/auth/check.php'); + const result = await response.json(); + + if (result.success && result.data && result.data.logged_in === true) { + isLoggedIn = true; + currentUser = { + id: result.data.user_id, + name: result.data.name, + email: result.data.email, + role: result.data.role + }; + userRole = result.data.role; + + window.userRole = userRole; + window.currentUser = currentUser; + window.currentUserName = currentUser.name; + + return true; + } else { + isLoggedIn = false; + currentUser = null; + userRole = null; + window.userRole = null; + window.currentUser = null; + return false; + } + } catch (error) { + console.error('Auth check failed:', error); + isLoggedIn = false; + return false; + } +} + +// ================================================================ +// Initialize UI based on user role +// ================================================================ +function initUIByRole() { + if (!isLoggedIn || !userRole) { + window.location.href = 'login.html'; + return; + } + + const isAdmin = (userRole === 'admin'); + + window.canDelete = isAdmin; + + const chartTab = document.querySelector('.nav-tab[data-tab="dashboard"]'); + if (chartTab) { + chartTab.style.display = isAdmin ? '' : 'none'; + } + + const adminPanelBtn = document.querySelector('.btn-admin-panel'); + if (adminPanelBtn) { + adminPanelBtn.style.display = ''; // SEMUA USER BISA LIHAT (Field Officer juga) + } + + const adminTopBar = document.querySelector('.admin-top-bar'); + if (adminTopBar) { + adminTopBar.style.display = isAdmin ? '' : 'none'; + } + + const userNameEl = document.getElementById('userName'); + const userRoleEl = document.getElementById('userRoleDisplay'); + if (userNameEl && currentUser) { + userNameEl.textContent = currentUser.name; + } + if (userRoleEl && currentUser) { + const roleLabel = userRole === 'admin' ? 'Admin' : 'Petugas Lapangan'; + userRoleEl.textContent = roleLabel; + } + + console.log(`UI initialized for role: ${userRole} (Admin: ${isAdmin})`); +} + +// ================================================================ +// Logout function +// ================================================================ +async function logout() { + try { + await fetch('api/auth/check.php?action=logout', { + method: 'POST', + headers: { 'Content-Type': 'application/json' } + }); + window.location.href = 'login.html'; + } catch (error) { + console.error('Logout error:', error); + window.location.href = 'login.html'; + } +} + +// ================================================================ +// Add logout button to sidebar (only if not already exists) +// ================================================================ +function addLogoutButton() { + // CEK: apakah tombol logout sudah ada di HTML (dari index.html) + const existingLogoutBtn = document.querySelector('.sidebar-header .logout-btn, #logoutBtn'); + if (existingLogoutBtn) { + console.log('Logout button already exists, skipping dynamic addition'); + return; // JANGAN tambahkan tombol baru jika sudah ada + } + + // Fallback: jika belum ada, baru tambahkan + const sidebarHeader = document.querySelector('.sidebar-header'); + if (!sidebarHeader) return; + + const logoutBtn = document.createElement('button'); + logoutBtn.id = 'logoutBtn'; + logoutBtn.className = 'logout-btn'; + logoutBtn.innerHTML = ''; + logoutBtn.title = 'Logout'; + logoutBtn.onclick = logout; + logoutBtn.style.cssText = ` + background: none; + border: none; + color: var(--danger); + font-size: 16px; + cursor: pointer; + padding: 5px; + margin-left: 10px; + border-radius: 6px; + transition: all 0.14s; + `; + logoutBtn.onmouseenter = () => logoutBtn.style.backgroundColor = 'rgba(214,50,48,0.1)'; + logoutBtn.onmouseleave = () => logoutBtn.style.backgroundColor = 'transparent'; + + const headerRight = sidebarHeader.querySelector('div[style*="margin-left:auto"]'); + if (headerRight) { + headerRight.appendChild(logoutBtn); + } +} + +function canDelete() { + return userRole === 'admin'; +} + +function getUserRole() { + return userRole; +} + +function getUserName() { + return currentUser ? currentUser.name : ''; +} + +window.auth = { + checkAuth, + initUIByRole, + logout, + addLogoutButton, + canDelete, + getUserRole, + getUserName, + currentUser: () => currentUser, + isLoggedIn: () => isLoggedIn, + userRole: () => userRole +}; \ No newline at end of file diff --git a/03PovertyMapping/assets/js/config.js b/03PovertyMapping/assets/js/config.js new file mode 100644 index 0000000..60a332e --- /dev/null +++ b/03PovertyMapping/assets/js/config.js @@ -0,0 +1,142 @@ +/* ============================================================ + config.js β€” Global constants, utilities, shared state + Single-admin simplified version + ============================================================ */ +'use strict'; + +const API = { + houses: 'api/houses/index.php', + centers: 'api/centers/index.php', + aid: 'api/aid/index.php', + reports: 'api/reports/index.php', + stats: 'api/stats/index.php', + users: 'api/users/index.php', + logs: 'api/logs/index.php', +}; + +const POVERTY_COLORS = { + sangat_miskin: '#d63230', + miskin: '#f76707', + rentan_miskin: '#f59e0b', + terdata: '#0b9e73', +}; + +const POVERTY_LABELS = { + sangat_miskin: 'Sangat Miskin', + miskin: 'Miskin', + rentan_miskin: 'Rentan Miskin', + terdata: 'Terdata', +}; + +// Short labels for compact display +const POVERTY_SHORT = { + sangat_miskin: 'Sgt Miskin', + miskin: 'Miskin', + rentan_miskin: 'Rentan', + terdata: 'Terdata', +}; + +const CENTER_COLORS = { + masjid: '#1d6fa4', + gereja: '#7c3aed', + klenteng: '#b45309', + pura: '#0e7f6e', + vihara: '#a16207', +}; + +const CENTER_ICONS = { + masjid: 'fa-mosque', + gereja: 'fa-church', + klenteng: 'fa-torii-gate', + pura: 'fa-om', + vihara: 'fa-dharmachakra', +}; + +const CENTER_LABELS = { + masjid: 'Masjid', + gereja: 'Gereja', + klenteng: 'Klenteng', + pura: 'Pura', + vihara: 'Vihara', +}; + +const AID_LABELS = { + sembako: 'Sembako', + pendanaan: 'Pendanaan', + pelatihan: 'Pelatihan', + sembako_pendanaan: 'Sembako + Pendanaan', + sembako_pelatihan: 'Sembako + Pelatihan', + pendanaan_pelatihan: 'Pendanaan + Pelatihan', + lengkap: 'Lengkap', +}; + +const SEVERITY_COLORS = { + kritis: '#d63230', + berat: '#f76707', + sedang: '#f59e0b', + ringan: '#0b9e73', +}; + +const State = { + activeFilter: 'all', + povertyFilter: '', + aidFilter: '', + conditionFilter: '', + searchQuery: '', + centers: [], + houses: [], + stats: null, +}; + +function debounce(fn, delay = 300) { + let t; + return (...args) => { clearTimeout(t); t = setTimeout(() => fn(...args), delay); }; +} + +function formatRp(n) { + if (!n) return 'Rp 0'; + return 'Rp ' + Number(n).toLocaleString('id-ID'); +} + +function formatDate(str) { + if (!str) return 'β€”'; + return new Date(str).toLocaleDateString('id-ID', { day:'2-digit', month:'short', year:'numeric' }); +} + +function formatDateTime(str) { + if (!str) return 'β€”'; + return new Date(str).toLocaleString('id-ID', { day:'2-digit', month:'short', year:'numeric', hour:'2-digit', minute:'2-digit' }); +} + +function truncate(str, n = 28) { + if (!str) return ''; + return str.length > n ? str.slice(0, n) + '…' : str; +} + +function showToast(msg, type = 'success', duration = 2800) { + const el = document.getElementById('toast'); + el.textContent = msg; + el.className = 'toast ' + type; + el.style.display = 'block'; + setTimeout(() => { el.style.display = 'none'; }, duration); +} + +function showLoading(show = true) { + document.getElementById('loading').style.display = show ? 'flex' : 'none'; +} + +function openModal(id) { + const el = document.getElementById(id); + if (el) { el.style.display = 'flex'; document.body.style.overflow = 'hidden'; } +} +function closeModal(id) { + const el = document.getElementById(id); + if (el) { el.style.display = 'none'; document.body.style.overflow = ''; } +} + +document.addEventListener('click', (e) => { + if (e.target.classList.contains('modal-overlay')) { + e.target.style.display = 'none'; + document.body.style.overflow = ''; + } +}); \ No newline at end of file diff --git a/03PovertyMapping/assets/js/dashboard.js b/03PovertyMapping/assets/js/dashboard.js new file mode 100644 index 0000000..4532c4e --- /dev/null +++ b/03PovertyMapping/assets/js/dashboard.js @@ -0,0 +1,286 @@ +/* ============================================================ + dashboard.js β€” Chart.js analytics dashboard + ============================================================ */ +'use strict'; + +let charts = {}; + +async function openDashboard() { + openModal('dashboardModal'); + // Always fetch fresh data when opening + await renderDashboard(); +} + +function destroyChart(id) { + if (charts[id]) { + charts[id].destroy(); + delete charts[id]; + } +} + +async function renderDashboard() { + showLoading(true); + + // Destroy all existing charts before re-rendering + Object.keys(charts).forEach(key => destroyChart(key)); + + try { + const [overview, trend, poverty, aidStat, age] = await Promise.all([ + ApiStats.overview(), + ApiStats.trend(), + ApiStats.povertyChart(), + ApiStats.aidChart(), + ApiStats.ageDistribution(), + ]); + + showLoading(false); + + if (poverty && poverty.ok) renderPovertyChart(poverty.data.data); + if (trend && trend.ok) renderTrendChart(trend.data.data); + if (age && age.ok) renderAgeChart(age.data.data); + if (aidStat && aidStat.ok) renderAidChart(aidStat.data.data); + } catch (err) { + showLoading(false); + console.error('Dashboard render error:', err); + } +} + +function chartDefaults() { + return { + responsive: true, + maintainAspectRatio: false, + plugins: { + legend: { + position: 'bottom', + labels: { + font: { family: "'DM Sans', sans-serif", size: 10 }, + color: '#5a6478', + padding: 12, + usePointStyle: true, + pointStyleWidth: 8, + boxHeight: 8, + }, + }, + tooltip: { + backgroundColor: '#0f1623', + titleFont: { family: "'DM Sans', sans-serif", size: 11, weight: '700' }, + bodyFont: { family: "'DM Sans', sans-serif", size: 11 }, + padding: 10, + cornerRadius: 8, + }, + }, + scales: { + x: { + grid: { color: 'rgba(0,0,0,0.03)' }, + ticks: { font: { family: "'DM Sans', sans-serif", size: 9 }, color: '#9ba4b5' }, + }, + y: { + grid: { color: 'rgba(0,0,0,0.03)' }, + ticks: { font: { family: "'DM Sans', sans-serif", size: 9 }, color: '#9ba4b5', precision: 0 }, + beginAtZero: true, + }, + }, + }; +} + +// ---- Poverty distribution (doughnut) ----------------------- +function renderPovertyChart(data) { + destroyChart('poverty'); + const bd = data?.breakdown || []; + if (!bd.length) return; + + const labels = bd.map(r => POVERTY_LABELS[r.poverty_status] || r.poverty_status); + const values = bd.map(r => parseInt(r.count)); + const colors = bd.map(r => POVERTY_COLORS[r.poverty_status] || '#9ba4b5'); + + const ctx = document.getElementById('chartPoverty'); + if (!ctx) return; + + charts.poverty = new Chart(ctx, { + type: 'doughnut', + data: { + labels, + datasets: [{ + data: values, + backgroundColor: colors, + borderWidth: 2, + borderColor: '#fff', + hoverOffset: 8, + }] + }, + options: { + ...chartDefaults(), + cutout: '62%', + }, + }); +} + +// ---- Trend line chart (12 months) -------------------------- +function renderTrendChart(data) { + destroyChart('trend'); + const rows = data?.trend || []; + if (!rows.length) { + const ctx = document.getElementById('chartTrend'); + if (ctx && ctx.parentElement) { + ctx.parentElement.innerHTML = '
Belum ada data pendataan 12 bulan terakhir
'; + } + return; + } + + // Format bulan (contoh: "2025-01" -> "Jan 2025") + const months = ['Jan', 'Feb', 'Mar', 'Apr', 'Mei', 'Jun', 'Jul', 'Agu', 'Sep', 'Okt', 'Nov', 'Des']; + const labels = rows.map(r => { + const [year, month] = r.month.split('-'); + return `${months[parseInt(month) - 1]} ${year}`; + }); + + const ctx = document.getElementById('chartTrend'); + if (!ctx) return; + + charts.trend = new Chart(ctx, { + type: 'bar', + data: { + labels: labels, + datasets: [ + { + label: 'Rumah Baru', + data: rows.map(r => r.new_households), + backgroundColor: '#46b4f4', + borderWidth: 0, + borderRadius: 4, + }, + { + label: 'Dibantu', + data: rows.map(r => r.aided), + backgroundColor: '#7d5ce8', + borderWidth: 0, + borderRadius: 4, + } + ], + }, + options: { + ...chartDefaults(), + plugins: { + ...chartDefaults().plugins, + legend: { + position: 'bottom', + labels: { + font: { family: "'DM Sans', sans-serif", size: 10 }, + color: '#5a6478', + usePointStyle: true, + pointStyleWidth: 8, + boxHeight: 8, + }, + }, + }, + scales: { + x: { + grid: { display: false }, + ticks: { + font: { size: 9 }, + maxRotation: 35, + autoSkip: true, + maxTicksLimit: 8 + }, + }, + y: { + beginAtZero: true, + grid: { color: 'rgba(0,0,0,0.05)' }, + ticks: { + stepSize: 1, + precision: 0, + }, + } + }, + }, + }); +} + +// ---- Age distribution of DEPENDENTS (bar) ------------------ +function renderAgeChart(data) { + destroyChart('age'); + const dist = data?.age_distribution || {}; + + // Only dependent age groups + const labels = ['Anak (<12)', 'Remaja (12-17)', 'Pemuda (18-30)', 'Dewasa (31-59)', 'Lansia (60+)']; + const values = [ + dist.anak || 0, + dist.remaja || 0, + dist.pemuda || 0, + dist.dewasa || 0, + dist.lansia || 0 + ]; + const colors = ['#7c3aed','#3a56d4','#0b9e73','#d97706','#d63230']; + + // Skip if all zero + if (values.every(v => v === 0)) return; + + const ctx = document.getElementById('chartAge'); + if (!ctx) return; + + charts.age = new Chart(ctx, { + type: 'bar', + data: { + labels, + datasets: [{ + label: 'Jumlah Tanggungan', + data: values, + backgroundColor: colors.map(c => c + 'cc'), + borderColor: colors, + borderWidth: 1.5, + borderRadius: 5, + }], + }, + options: { + ...chartDefaults(), + plugins: { + ...chartDefaults().plugins, + legend: { display: false }, + title: { + display: true, + font: { family: "'DM Sans', sans-serif", size: 11 }, + color: '#5a6478', + padding: { bottom: 10 }, + }, + }, + }, + }); +} + +// ---- Aid distribution (pie) -------------------------------- +function renderAidChart(data) { + destroyChart('aid'); + const byType = data?.by_type || []; + if (!byType.length) return; + + const colors = ['#3a56d4','#0b9e73','#d97706','#7c3aed','#d63230','#0e7f6e','#b45309']; + + const ctx = document.getElementById('chartAid'); + if (!ctx) return; + + charts.aid = new Chart(ctx, { + type: 'pie', + data: { + labels: byType.map(r => AID_LABELS[r.aid_type] || r.aid_type), + datasets: [{ + data: byType.map(r => parseInt(r.cnt)), + backgroundColor: byType.map((_, i) => colors[i % colors.length] + 'cc'), + borderColor: byType.map((_, i) => colors[i % colors.length]), + borderWidth: 1.5, + }], + }, + options: { + ...chartDefaults(), + plugins: { + ...chartDefaults().plugins, + title: { + display: true, + text: 'Total: ' + (data?.summary?.total_distributions || 0) + ' distribusi', + font: { family: "'DM Sans', sans-serif", size: 10 }, + color: '#9ba4b5', + padding: { bottom: 8 }, + }, + }, + }, + }); +} \ No newline at end of file diff --git a/03PovertyMapping/assets/js/forms.js b/03PovertyMapping/assets/js/forms.js new file mode 100644 index 0000000..4ae4257 --- /dev/null +++ b/03PovertyMapping/assets/js/forms.js @@ -0,0 +1,1004 @@ +/* ============================================================ + forms.js β€” All modal form logic (FULLY UPDATED) + ============================================================ */ +'use strict'; + +function clientCalcPoverty(income, dependents, condition, education, landOwnership) { + let severityPoints = 0; + const indicators = []; + const members = Math.max(1, dependents); + const perCapita = income / members; + if (perCapita < 400000) { indicators.push('Pendapatan per kapita sangat rendah (< Rp 400.000)'); severityPoints += 3; } + else if (perCapita < 700000) { indicators.push('Pendapatan per kapita rendah (< Rp 700.000)'); severityPoints += 2; } + else if (perCapita < 1200000) { indicators.push('Pendapatan per kapita di bawah UMP'); severityPoints += 1; } + if (dependents >= 7) { indicators.push('Tanggungan sangat besar (β‰₯ 7 orang)'); severityPoints += 3; } + else if (dependents >= 5) { indicators.push('Tanggungan besar (5-6 orang)'); severityPoints += 2; } + else if (dependents >= 4) { indicators.push('Tanggungan cukup besar (4 orang)'); severityPoints += 1; } + if (condition === 'tidak_layak') { indicators.push('Kondisi rumah tidak layak huni'); severityPoints += 3; } + const eduMap = { tidak_sekolah: ['Tidak pernah sekolah', 3], sd: ['Pendidikan hanya SD', 2], smp: ['Pendidikan hanya SMP', 1], sma: ['Pendidikan SMA', 0], diploma: ['Pendidikan Diploma', 0], sarjana: ['Pendidikan Sarjana', 0], pascasarjana: ['Pendidikan Pascasarjana', 0] }; + if (eduMap[education] && eduMap[education][1] > 0) { indicators.push(eduMap[education][0]); severityPoints += eduMap[education][1]; } + if (landOwnership === 'numpang') { indicators.push('Tidak memiliki lahan (numpang)'); severityPoints += 2; } + else if (landOwnership === 'sewa') { indicators.push('Lahan menyewa'); severityPoints += 1; } + let status, label; + if (severityPoints >= 7) { status = 'sangat_miskin'; label = 'Sangat Miskin'; } + else if (severityPoints >= 4) { status = 'miskin'; label = 'Miskin'; } + else if (severityPoints >= 1) { status = 'rentan_miskin'; label = 'Rentan Miskin'; } + else { status = 'terdata'; label = 'Terdata'; } + return { status, label, indicators, severity: severityPoints }; +} + +function recalcPoverty() { + const income = parseInt(document.getElementById('houseIncome')?.value || 0); + const dependents = parseInt(document.getElementById('houseDependents')?.value || 1); + const condition = document.getElementById('houseCondition')?.value || 'layak'; + const education = document.getElementById('houseEducation')?.value || 'sd'; + const landOwnership = document.getElementById('houseLandOwnership')?.value || 'milik'; + const { status, label, indicators } = clientCalcPoverty(income, dependents, condition, education, landOwnership); + const color = POVERTY_COLORS[status] || '#9ba4b5'; + const ring = document.getElementById('povertyRing'); + const icon = document.getElementById('povertyIcon'); + const labelEl = document.getElementById('povertyStatusLabel'); + const indicatorList = document.getElementById('povertyIndicators'); + if (ring) { ring.style.borderColor = color; ring.style.boxShadow = `0 0 12px ${color}30`; } + if (icon) icon.style.color = color; + if (labelEl) { const shortLabels = { sangat_miskin: 'Sangat Miskin', miskin: 'Miskin', rentan_miskin: 'Rentan Miskin', terdata: 'Terdata' }; labelEl.textContent = shortLabels[status] || label; labelEl.style.color = color; } + if (indicatorList && indicators.length > 0) indicatorList.innerHTML = indicators.map(i => `
  • ${i}
  • `).join(''); + else if (indicatorList) indicatorList.innerHTML = '
  • Tidak ada indikator kemiskinan signifikan
  • '; +} + +function initFormTabs() { + document.querySelectorAll('.form-tab').forEach(tab => { + tab.addEventListener('click', () => { + const panel = tab.dataset.ftab; + document.querySelectorAll('.form-tab').forEach(t => t.classList.remove('active')); + document.querySelectorAll('.form-tab-panel').forEach(p => p.classList.remove('active')); + tab.classList.add('active'); + document.getElementById('ftab-' + panel)?.classList.add('active'); + }); + }); +} + +async function reverseGeocodeDetailed(lat, lng) { + try { + const url = `https://nominatim.openstreetmap.org/reverse?lat=${lat}&lon=${lng}&format=json&accept-language=id&addressdetails=1&zoom=18`; + const response = await fetch(url, { headers: { 'User-Agent': 'WebGIS-PovertyMapping/2.0' } }); + const data = await response.json(); + let rt = '', rw = '', kelurahan = '', kecamatan = '', fullAddress = ''; + if (data && data.address) { + const addr = data.address; + rt = addr.quarter || addr.suburb || ''; + rw = addr.neighbourhood || ''; + kelurahan = addr.village || addr.suburb || addr.city_district || ''; + kecamatan = addr.city || addr.town || addr.municipality || ''; + const parts = []; + if (addr.road) parts.push(addr.road); + if (addr.house_number) parts.push('No. ' + addr.house_number); + if (rt) parts.push('RT ' + rt); + if (rw) parts.push('RW ' + rw); + if (kelurahan) parts.push('Kel. ' + kelurahan); + if (kecamatan) parts.push('Kec. ' + kecamatan); + if (addr.city) parts.push(addr.city); + if (addr.state) parts.push(addr.state); + fullAddress = parts.join(', '); + } + return { rt, rw, kelurahan, kecamatan, fullAddress: fullAddress || `${lat.toFixed(6)}, ${lng.toFixed(6)}` }; + } catch (err) { return { rt: '', rw: '', kelurahan: '', kecamatan: '', fullAddress: `${lat.toFixed(6)}, ${lng.toFixed(6)}` }; } +} + +async function autoAssignReligiousCenter(lat, lng) { + try { + const r = await ApiCenters.nearby(lat, lng, 2); + if (r.ok && r.data?.success && r.data.data.centers.length) { + const nearest = r.data.data.centers[0]; + document.getElementById('managingCenterId').value = nearest.id; + document.getElementById('managingCenterName').value = nearest.name; + return nearest.id; + } + } catch (err) { console.warn('Failed to auto-assign center:', err); } + return null; +} + +function openCenterModal(id = null, lat = null, lng = null, address = '') { + const isEdit = !!id; + document.getElementById('centerModalTitle').textContent = isEdit ? 'Edit Tempat Ibadah' : 'Tambah Tempat Ibadah'; + document.getElementById('centerId').value = id || ''; + document.getElementById('centerLat').value = lat || ''; + document.getElementById('centerLng').value = lng || ''; + if (!isEdit) { + document.getElementById('centerName').value = ''; + document.getElementById('centerWorshipType').value = 'masjid'; + document.getElementById('centerRadius').value = '300'; + document.getElementById('centerRadiusSlider').value = '300'; + document.getElementById('centerRadiusValue').textContent = '300m'; + document.getElementById('centerContactPerson').value = ''; + document.getElementById('centerContactPhone').value = ''; + document.getElementById('centerNotes').value = ''; + document.getElementById('centerAddress').value = address; + document.getElementById('centerLatDisplay').value = lat ? lat.toFixed(6) : ''; + document.getElementById('centerLngDisplay').value = lng ? lng.toFixed(6) : ''; + cancelPlacementMode(); + openModal('centerModal'); + return; + } + showLoading(true); + ApiCenters.show(id).then(r => { + showLoading(false); + if (!r.ok) { showToast('Gagal memuat data.', 'error'); return; } + const c = r.data.data; + document.getElementById('centerName').value = c.name; + document.getElementById('centerWorshipType').value = c.worship_type; + document.getElementById('centerRadius').value = c.radius; + document.getElementById('centerRadiusSlider').value = c.radius; + document.getElementById('centerRadiusValue').textContent = c.radius + 'm'; + document.getElementById('centerContactPerson').value = c.contact_person || ''; + document.getElementById('centerContactPhone').value = c.contact_phone || ''; + document.getElementById('centerNotes').value = c.notes || ''; + document.getElementById('centerAddress').value = c.address; + document.getElementById('centerLat').value = c.latitude; + document.getElementById('centerLng').value = c.longitude; + document.getElementById('centerLatDisplay').value = parseFloat(c.latitude).toFixed(6); + document.getElementById('centerLngDisplay').value = parseFloat(c.longitude).toFixed(6); + openModal('centerModal'); + }); +} + +document.getElementById('centerRadiusSlider')?.addEventListener('input', function () { document.getElementById('centerRadius').value = this.value; document.getElementById('centerRadiusValue').textContent = this.value + 'm'; }); +document.getElementById('centerRadius')?.addEventListener('input', function () { document.getElementById('centerRadiusSlider').value = this.value; document.getElementById('centerRadiusValue').textContent = this.value + 'm'; }); + +document.getElementById('centerForm')?.addEventListener('submit', async (e) => { + e.preventDefault(); + const id = document.getElementById('centerId').value; + const lat = parseFloat(document.getElementById('centerLat').value); + const lng = parseFloat(document.getElementById('centerLng').value); + if (!lat || !lng) { showToast('Koordinat tidak valid.', 'error'); return; } + const body = { name: document.getElementById('centerName').value.trim(), worship_type: document.getElementById('centerWorshipType').value, radius: parseInt(document.getElementById('centerRadius').value), address: document.getElementById('centerAddress').value, latitude: lat, longitude: lng, contact_person: document.getElementById('centerContactPerson').value.trim(), contact_phone: document.getElementById('centerContactPhone').value.trim(), notes: document.getElementById('centerNotes').value.trim() }; + if (!body.name) { showToast('Nama tempat ibadah wajib diisi.', 'error'); return; } + showLoading(true); + const r = id ? await ApiCenters.update(id, body) : await ApiCenters.create(body); + showLoading(false); + if (r.ok && r.data?.success) { + closeModal('centerModal'); + cancelPlacementMode(); + showToast(id ? 'Tempat ibadah diperbarui.' : 'Tempat ibadah ditambahkan.', 'success'); + await loadAllData(); + loadStats(); + } else showToast(r.data?.message || 'Gagal menyimpan.', 'error'); + return false; +}); + +async function editCenter(id) { if (MAP) MAP.closePopup(); openCenterModal(id); } +async function deleteCenter(id) { + if (!window.canDelete) { showToast('Anda tidak memiliki izin untuk menghapus data.', 'error'); return; } + if (!confirm('Hapus tempat ibadah ini? Semua data terkait akan dihapus.')) return; + showLoading(true); + const r = await ApiCenters.delete(id); + showLoading(false); + if (MAP) MAP.closePopup(); + if (r.ok && r.data?.success) { showToast('Tempat ibadah dihapus.', 'success'); await loadAllData(); recountCenterHouseholds(); renderCenterList(); loadStats(); } + else showToast(r.data?.message || 'Gagal menghapus.', 'error'); +} + +async function openHouseModal(id = null, lat = null, lng = null, address = '') { + const isEdit = !!id; + document.getElementById('houseModalTitle').textContent = isEdit ? 'Edit Data Rumah Tangga' : 'Tambah Rumah Tangga'; + document.getElementById('houseId').value = id || ''; + document.getElementById('houseLat').value = lat || ''; + document.getElementById('houseLng').value = lng || ''; + document.getElementById('familyMembersData').value = '[]'; + + // Mode TAMBAH BARU (dari klik peta) + if (!isEdit && lat && lng) { + const addr = await reverseGeocodeDetailed(lat, lng); + document.getElementById('houseRt').value = addr.rt || ''; + document.getElementById('houseRw').value = addr.rw || ''; + document.getElementById('houseKelurahan').value = addr.kelurahan || ''; + document.getElementById('houseKecamatan').value = addr.kecamatan || ''; + document.getElementById('houseFullAddress').value = addr.fullAddress || address || ''; + document.getElementById('houseLatDisplay').value = lat.toFixed(6); + document.getElementById('houseLngDisplay').value = lng.toFixed(6); + await autoAssignReligiousCenter(lat, lng); + + // Reset form fields + document.getElementById('houseHeadName').value = ''; + document.getElementById('houseNIK').value = ''; + document.getElementById('houseGender').value = 'male'; + document.getElementById('houseDOB').value = ''; + document.getElementById('houseEducation').value = 'sd'; + document.getElementById('houseIncome').value = '0'; + document.getElementById('houseJob').value = ''; + document.getElementById('houseCondition').value = 'layak'; + document.getElementById('houseLandOwnership').value = 'milik'; + document.getElementById('houseDescription').value = ''; + document.getElementById('houseAidStatus').value = 'not_yet'; + document.getElementById('houseEmploymentStatus').value = 'unemployed'; + document.getElementById('houseJobGroup').style.display = 'none'; + document.getElementById('houseInstitutionGroup').style.display = 'none'; + document.getElementById('houseJob').value = ''; + document.getElementById('houseInstitutionName').value = ''; + + // Reset family members display + const familyContainer = document.getElementById('familyMembersList'); + if (familyContainer) { + familyContainer.innerHTML = '

    Belum ada anggota keluarga

    '; + } + + // Reset aid history display + renderAidHistory([]); + + // Sembunyikan tombol add aid (karena household belum tersimpan) + const addAidBtn = document.getElementById('addAidBtn'); + if (addAidBtn) addAidBtn.style.display = 'none'; + + const savedStrip = document.getElementById('houseSavedPhotoStrip'); + const newStrip = document.getElementById('housePhotoStrip'); + const photoInput = document.getElementById('housePhotos'); + if (savedStrip) { + savedStrip.innerHTML = ''; + newStrip.innerHTML = ''; + if (photoInput) photoInput.value = ''; + } + + cancelPlacementMode(); + openModal('houseModal'); + recalcPoverty(); // Hitung ulang poverty preview + return; + } + + // Mode TAMBAH BARU (tanpa koordinat) + if (!isEdit && !lat && !lng) { + // Reset semua form + document.getElementById('houseRt').value = ''; + document.getElementById('houseRw').value = ''; + document.getElementById('houseKelurahan').value = ''; + document.getElementById('houseKecamatan').value = ''; + document.getElementById('houseFullAddress').value = ''; + document.getElementById('houseLatDisplay').value = ''; + document.getElementById('houseLngDisplay').value = ''; + document.getElementById('houseSavedPhotoStrip').innerHTML = ''; + document.getElementById('housePhotoStrip').innerHTML = ''; + document.getElementById('managingCenterId').value = ''; + document.getElementById('managingCenterName').value = ''; + document.getElementById('houseHeadName').value = ''; + document.getElementById('houseNIK').value = ''; + document.getElementById('houseGender').value = 'male'; + document.getElementById('houseDOB').value = ''; + document.getElementById('houseEducation').value = 'sd'; + document.getElementById('houseIncome').value = '0'; + document.getElementById('houseJob').value = ''; + document.getElementById('houseCondition').value = 'layak'; + document.getElementById('houseLandOwnership').value = 'milik'; + document.getElementById('houseDescription').value = ''; + document.getElementById('houseAidStatus').value = 'not_yet'; + + const photoInput = document.getElementById('housePhotos'); + if (photoInput) photoInput.value = ''; + + const familyContainer = document.getElementById('familyMembersList'); + if (familyContainer) { + familyContainer.innerHTML = '

    Belum ada anggota keluarga

    '; + } + renderAidHistory([]); + + const addAidBtn = document.getElementById('addAidBtn'); + if (addAidBtn) addAidBtn.style.display = 'none'; + + cancelPlacementMode(); + openModal('houseModal'); + recalcPoverty(); + return; + } + + // ================================================================ + // EDIT MODE: Load data dari API + // ================================================================ + if (isEdit) { + showLoading(true); + const r = await ApiHouses.show(id); + showLoading(false); + + if (!r.ok || !r.data?.success) { + showToast('Gagal memuat data rumah tangga.', 'error'); + return; + } + + const h = r.data.data; + + // Informasi Alamat + if (document.getElementById('houseRt')) + document.getElementById('houseRt').value = h.rt || ''; + if (document.getElementById('houseRw')) + document.getElementById('houseRw').value = h.rw || ''; + if (document.getElementById('houseKelurahan')) + document.getElementById('houseKelurahan').value = h.kelurahan || ''; + if (document.getElementById('houseKecamatan')) + document.getElementById('houseKecamatan').value = h.kecamatan || ''; + if (document.getElementById('houseFullAddress')) { + document.getElementById('houseFullAddress').value = h.full_address || h.address || ''; + // Hapus readonly attribute jika ada + document.getElementById('houseFullAddress').removeAttribute('readonly'); + // Set background ke surface (tidak readonly) + document.getElementById('houseFullAddress').style.background = 'var(--surface)'; + } + // Koordinat + if (document.getElementById('houseLat')) + document.getElementById('houseLat').value = h.latitude; + if (document.getElementById('houseLng')) + document.getElementById('houseLng').value = h.longitude; + if (document.getElementById('houseLatDisplay')) + document.getElementById('houseLatDisplay').value = parseFloat(h.latitude).toFixed(6); + if (document.getElementById('houseLngDisplay')) + document.getElementById('houseLngDisplay').value = parseFloat(h.longitude).toFixed(6); + + // Pusat Pengelola + if (document.getElementById('managingCenterId')) + document.getElementById('managingCenterId').value = h.managing_center_id || ''; + if (document.getElementById('managingCenterName')) + document.getElementById('managingCenterName').value = h.center_name || ''; + + // Kondisi Rumah + if (document.getElementById('houseCondition')) + document.getElementById('houseCondition').value = h.house_condition || 'layak'; + + // Kepemilikan Lahan + if (document.getElementById('houseLandOwnership')) + document.getElementById('houseLandOwnership').value = h.land_ownership || 'milik'; + + // Keterangan + if (document.getElementById('houseDescription')) + document.getElementById('houseDescription').value = h.notes || h.description || ''; + + // ⭐ KEPALA KELUARGA (Head of Household) + if (document.getElementById('houseHeadName')) + document.getElementById('houseHeadName').value = h.head_name || ''; + if (document.getElementById('houseNIK')) + document.getElementById('houseNIK').value = h.head_nik || h.nik || ''; + if (document.getElementById('houseGender')) + document.getElementById('houseGender').value = h.head_gender || h.gender || 'male'; + if (document.getElementById('houseDOB')) + document.getElementById('houseDOB').value = h.head_date_of_birth || h.date_of_birth || ''; + if (document.getElementById('houseEducation')) + document.getElementById('houseEducation').value = h.head_education || h.education || 'sd'; + + // Pekerjaan dan Pendapatan + if (document.getElementById('houseJob')) + document.getElementById('houseJob').value = h.head_job_name || h.job || ''; + if (document.getElementById('houseIncome')) + document.getElementById('houseIncome').value = h.head_monthly_income || h.income || 0; + if (document.getElementById('houseEmploymentStatus')) { + const empStatus = h.head_employment_status || 'unemployed'; + document.getElementById('houseEmploymentStatus').value = empStatus; + toggleHouseEmploymentFields(); + + if (empStatus === 'working') { + document.getElementById('houseJob').value = h.head_job_name || ''; + } else if (empStatus === 'studying') { + document.getElementById('houseInstitutionName').value = h.head_institution_name || ''; + } + } + + // Status Bantuan + if (document.getElementById('houseAidStatus')) { + // Jika ada aid_history, set status ke 'received' + const hasAidHistory = (h.aid_history && h.aid_history.length > 0); + document.getElementById('houseAidStatus').value = hasAidHistory ? 'received' : (h.aid_status || 'not_yet'); + } + + // ⭐ ANGGOTA KELUARGA (Household Members) + if (h.household_members && h.household_members.length) { + document.getElementById('familyMembersData').value = JSON.stringify(h.household_members); + renderFamilyMembers(h.household_members); + } else if (h.family_members && h.family_members.length) { + document.getElementById('familyMembersData').value = JSON.stringify(h.family_members); + renderFamilyMembers(h.family_members); + } else { + document.getElementById('familyMembersData').value = '[]'; + const familyContainer = document.getElementById('familyMembersList'); + if (familyContainer) { + familyContainer.innerHTML = '

    Belum ada anggota keluarga

    '; + } + } + + // ⭐ RIWAYAT BANTUAN (Aid History) + if (h.aid_history && h.aid_history.length) { + renderAidHistory(h.aid_history); + } else { + renderAidHistory([]); + } + + const savedStrip = document.getElementById('houseSavedPhotoStrip'); + const newStrip = document.getElementById('housePhotoStrip'); + const photoInput = document.getElementById('housePhotos'); + if (savedStrip) { + savedStrip.innerHTML = ''; + newStrip.innerHTML = ''; + if (photoInput) photoInput.value = ''; + + const photos = JSON.parse(h.house_photos || '[]'); + if (photos.length) { + const hId = id; // capture for closure + savedStrip.appendChild( + PhotoUpload.buildSavedStrip( + photos, + 'uploads/houses/', + window.canDelete ?? false, // removable only for admin/officer + (filename, wrap) => deleteHousePhoto(hId, filename, wrap) + ) + ); + } + } + + // Tampilkan tombol add aid jika household sudah ada di database + const addAidBtn = document.getElementById('addAidBtn'); + if (addAidBtn) addAidBtn.style.display = 'inline-flex'; + + // Hitung ulang poverty preview berdasarkan data yang diisi + setTimeout(() => recalcPoverty(), 100); + + openModal('houseModal'); + } +} + +function renderFamilyMembers(members) { + const container = document.getElementById('familyMembersList'); + if (!container) return; + if (!members || members.length === 0) { container.innerHTML = '

    Belum ada anggota keluarga

    '; return; } + container.innerHTML = ''; + members.forEach((member, index) => { + const row = document.createElement('div'); + row.className = 'family-member-item'; + row.innerHTML = `
    ${escapeHtml(member.name)}${member.relationship || 'lainnya'}${member.employment_status === 'working' ? `πŸ’Ό ${escapeHtml(member.job_name || 'Bekerja')}` : ''}${member.employment_status === 'studying' ? `πŸ“š ${escapeHtml(member.institution_name || 'Sekolah')}` : ''}
    `; + container.appendChild(row); + }); +} + +let currentEditingMemberIndex = -1; +function openFamilyMemberModal(index = -1) { + currentEditingMemberIndex = index; + const title = document.getElementById('familyMemberModalTitle'); + if (index >= 0) { + title.textContent = 'Edit Anggota Keluarga'; + const members = JSON.parse(document.getElementById('familyMembersData').value || '[]'); + const member = members[index]; + document.getElementById('memberName').value = member.name || ''; + document.getElementById('memberNik').value = member.nik || ''; + document.getElementById('memberGender').value = member.gender || 'male'; + document.getElementById('memberDob').value = member.date_of_birth || ''; + document.getElementById('memberEducation').value = member.education || 'sd'; + document.getElementById('memberRelationship').value = member.relationship || 'lainnya'; + document.getElementById('memberEmploymentStatus').value = member.employment_status || 'unemployed'; + const jobGroup = document.getElementById('memberJobGroup'); + const institutionGroup = document.getElementById('memberInstitutionGroup'); + if (member.employment_status === 'working') { if (jobGroup) jobGroup.style.display = 'block'; if (institutionGroup) institutionGroup.style.display = 'none'; document.getElementById('memberJobName').value = member.job_name || ''; } + else if (member.employment_status === 'studying') { if (jobGroup) jobGroup.style.display = 'none'; if (institutionGroup) institutionGroup.style.display = 'block'; document.getElementById('memberInstitutionName').value = member.institution_name || ''; } + else { if (jobGroup) jobGroup.style.display = 'none'; if (institutionGroup) institutionGroup.style.display = 'none'; } + document.getElementById('memberIncome').value = member.monthly_income || 0; + } else { + title.textContent = 'Tambah Anggota Keluarga'; + document.getElementById('memberForm').reset(); + document.getElementById('memberGender').value = 'male'; + document.getElementById('memberEducation').value = 'sd'; + document.getElementById('memberRelationship').value = 'lainnya'; + document.getElementById('memberEmploymentStatus').value = 'unemployed'; + if (document.getElementById('memberJobGroup')) document.getElementById('memberJobGroup').style.display = 'none'; + if (document.getElementById('memberInstitutionGroup')) document.getElementById('memberInstitutionGroup').style.display = 'none'; + document.getElementById('memberIncome').value = '0'; + } + openModal('familyMemberModal'); +} + +function saveFamilyMember() { + const member = { name: document.getElementById('memberName').value.trim(), nik: document.getElementById('memberNik').value.trim(), gender: document.getElementById('memberGender').value, date_of_birth: document.getElementById('memberDob').value, education: document.getElementById('memberEducation').value, relationship: document.getElementById('memberRelationship').value, employment_status: document.getElementById('memberEmploymentStatus').value, job_name: document.getElementById('memberJobName').value.trim(), institution_name: document.getElementById('memberInstitutionName').value.trim(), monthly_income: parseInt(document.getElementById('memberIncome').value) || 0 }; + if (!member.name) { showToast('Nama anggota keluarga harus diisi.', 'error'); return; } + let members = JSON.parse(document.getElementById('familyMembersData').value || '[]'); + if (currentEditingMemberIndex >= 0) members[currentEditingMemberIndex] = member; + else members.push(member); + document.getElementById('familyMembersData').value = JSON.stringify(members); + renderFamilyMembers(members); + closeModal('familyMemberModal'); +} + +function editFamilyMember(index) { openFamilyMemberModal(index); } +function deleteFamilyMember(index) { + if (!confirm('Hapus anggota keluarga ini?')) return; + let members = JSON.parse(document.getElementById('familyMembersData').value || '[]'); + members.splice(index, 1); + document.getElementById('familyMembersData').value = JSON.stringify(members); + renderFamilyMembers(members); +} + +function toggleMemberEmploymentFields() { + const status = document.getElementById('memberEmploymentStatus')?.value; + const jobGroup = document.getElementById('memberJobGroup'); + const institutionGroup = document.getElementById('memberInstitutionGroup'); + if (status === 'working') { if (jobGroup) jobGroup.style.display = 'block'; if (institutionGroup) institutionGroup.style.display = 'none'; } + else if (status === 'studying') { if (jobGroup) jobGroup.style.display = 'none'; if (institutionGroup) institutionGroup.style.display = 'block'; } + else { if (jobGroup) jobGroup.style.display = 'none'; if (institutionGroup) institutionGroup.style.display = 'none'; } +} + +function toggleHouseEmploymentFields() { + const status = document.getElementById('houseEmploymentStatus')?.value; + const jobGroup = document.getElementById('houseJobGroup'); + const institutionGroup = document.getElementById('houseInstitutionGroup'); + const jobField = document.getElementById('houseJob'); + const institutionField = document.getElementById('houseInstitutionName'); + + if (status === 'working') { + if (jobGroup) jobGroup.style.display = 'block'; + if (institutionGroup) institutionGroup.style.display = 'none'; + if (jobField) jobField.required = false; + if (institutionField) institutionField.required = false; + } else if (status === 'studying') { + if (jobGroup) jobGroup.style.display = 'none'; + if (institutionGroup) institutionGroup.style.display = 'block'; + if (jobField) jobField.required = false; + if (institutionField) institutionField.required = false; + } else { + if (jobGroup) jobGroup.style.display = 'none'; + if (institutionGroup) institutionGroup.style.display = 'none'; + if (jobField) jobField.required = false; + if (institutionField) institutionField.required = false; + } +} + +async function editHouse(id) { if (MAP) MAP.closePopup(); await openHouseModal(id); } +async function deleteHouse(id) { + if (!window.canDelete) { showToast('Anda tidak memiliki izin untuk menghapus data.', 'error'); return; } + if (!confirm('Hapus data rumah ini? Semua data terkait akan dihapus.')) return; + showLoading(true); + const r = await ApiHouses.delete(id); + showLoading(false); + if (MAP) MAP.closePopup(); + if (r.ok && r.data?.success) { + showToast('Data rumah dihapus.', 'success'); + await loadAllData(); + + // ⭐ HITUNG ULANG CENTER HOUSEHOLDS + recountCenterHouseholds(); + renderCenterList(); + renderHouseList(); + updateLayerCounts(); + loadStats(); + } else { + showToast(r.data?.message || 'Gagal menghapus.', 'error'); + } +} + +function openAidModalForHouse(householdId) { if (MAP) MAP.closePopup(); document.getElementById('aidHouseholdId').value = householdId; document.getElementById('aidDate').value = new Date().toISOString().slice(0, 10); document.getElementById('aidType').value = 'sembako'; document.getElementById('aidAmount').value = '0'; document.getElementById('aidNotes').value = ''; openModal('aidModal'); } + +// assets/js/forms.js - Update event listener aidForm +document.getElementById('aidForm')?.addEventListener('submit', async (e) => { + e.preventDefault(); + const editId = document.getElementById('aidForm').dataset.editId; + const body = { + household_id: parseInt(document.getElementById('aidHouseholdId').value), + aid_type: document.getElementById('aidType').value, + aid_date: document.getElementById('aidDate').value, + amount: parseInt(document.getElementById('aidAmount').value || 0), + notes: document.getElementById('aidNotes').value.trim() + }; + showLoading(true); + const r = editId ? await ApiAid.update(editId, body) : await ApiAid.create(body); + showLoading(false); + + if (r.ok && r.data?.success) { + closeModal('aidModal'); + document.getElementById('aidForm').dataset.editId = ''; + document.querySelector('#aidModal .modal-header h2').textContent = 'Catat Bantuan'; + showToast(editId ? 'Bantuan berhasil diperbarui.' : 'Bantuan berhasil dicatat.', 'success'); + + const houseId = document.getElementById('houseId').value; + if (houseId) { + // ⭐ REFRESH DATA RUMAH SETELAH TAMBAH BANTUAN + showLoading(true); + const houseData = await ApiHouses.show(houseId); + showLoading(false); + if (houseData.ok && houseData.data?.data) { + const freshData = houseData.data.data; + + // Update aid history display in modal + renderAidHistory(freshData.aid_history || []); + document.getElementById('houseAidStatus').value = 'received'; + + // ⭐ UPDATE POPUP DI PETA - REFRESH MARKER + const existingHouse = State.houses.find(h => h.id == houseId); + if (existingHouse && existingHouse._marker) { + // Update data rumah di State + existingHouse.aid_history = freshData.aid_history || []; + existingHouse.aid_status = 'received'; + existingHouse._marker._houseData = freshData; + + // Jika popup sedang terbuka, refresh dengan data baru + if (existingHouse._marker.isPopupOpen()) { + await showHousePopup(existingHouse._marker, freshData); + } + } + + // Reload stats untuk update counter + await loadStats(); + } + } + } else { + showToast(r.data?.message || 'Gagal menyimpan.', 'error'); + } + return false; +}); + +async function refreshHousePopup(householdId) { + try { + const r = await ApiHouses.show(householdId); + if (r.ok && r.data?.success) { + const freshData = r.data.data; + + // Update data di State + const index = State.houses.findIndex(h => h.id == householdId); + if (index !== -1) { + State.houses[index] = freshData; + + // Update marker popup + if (State.houses[index]._marker) { + showHousePopup(State.houses[index]._marker, freshData); + } + } + + return freshData; + } + } catch (err) { + console.error('Failed to refresh house popup:', err); + } + return null; +} + +// Export fungsi untuk digunakan di file lain +window.refreshHousePopup = refreshHousePopup; + +document.getElementById('addAidBtn')?.addEventListener('click', () => { const hhId = document.getElementById('houseId').value; if (hhId) openAidModalForHouse(hhId); }); + +function renderAidHistory(list) { + const el = document.getElementById('aidHistoryList'); + if (!el) return; + + if (!list || !list.length) { + el.innerHTML = '

    Belum ada riwayat bantuan

    '; + return; + } + + el.innerHTML = list.map((a, idx) => { + // Gunakan label yang sudah ada atau mapping dari AID_LABELS + const typeLabel = a.aid_type_label || AID_LABELS[a.aid_type] || a.aid_type || 'Bantuan'; + const amount = a.amount || 0; + const notes = a.description || a.notes || ''; + + return ` +
    + ${escapeHtml(typeLabel)} + ${formatDate(a.aid_date)} + ${amount ? formatRp(amount) : 'β€”'} + + +
    + `; + }).join(''); +} + +async function editAidRecord(aidId) { + showLoading(true); + const r = await ApiAid.show(aidId); + showLoading(false); + if (!r.ok || !r.data?.data) { showToast('Gagal memuat data bantuan.', 'error'); return; } + const a = r.data.data; + document.getElementById('aidHouseholdId').value = a.household_id; + document.getElementById('aidDate').value = a.aid_date; + document.getElementById('aidType').value = a.aid_type; + document.getElementById('aidAmount').value = a.amount || 0; + document.getElementById('aidNotes').value = a.notes || ''; + document.getElementById('aidForm').dataset.editId = aidId; + document.querySelector('#aidModal .modal-header h2').textContent = 'Edit Bantuan'; + openModal('aidModal'); +} + +async function deleteAidRecord(aidId) { + if (!confirm('Hapus riwayat bantuan ini?')) return; + showLoading(true); + const r = await ApiAid.delete(aidId); + showLoading(false); + if (r.ok && r.data?.success) { showToast('Riwayat bantuan dihapus.', 'success'); const item = document.getElementById('aid-item-' + aidId); if (item) item.remove(); const houseId = document.getElementById('houseId').value; if (houseId) { const houseData = await ApiHouses.show(houseId); if (houseData.ok && houseData.data?.data) { renderAidHistory(houseData.data.data.aid_history || []); document.getElementById('houseAidStatus').value = houseData.data.data.aid_status; } } } + else showToast(r.data?.message || 'Gagal menghapus.', 'error'); +} + +function openReportModal(householdId) { showToast('Gunakan halaman lapor.html untuk melaporkan warga.', 'success', 3000); } + +// Helper: show error message below field +function showFieldError(fieldId, errorId, message) { + const errorEl = document.getElementById(errorId); + const fieldEl = document.getElementById(fieldId); + if (errorEl) { + errorEl.innerHTML = ` ${message}`; + errorEl.classList.add('show'); + } + if (fieldEl) fieldEl.classList.add('error'); +} + +// Helper: clear error for a field +function clearFieldError(fieldId, errorId) { + const errorEl = document.getElementById(errorId); + const fieldEl = document.getElementById(fieldId); + if (errorEl) errorEl.classList.remove('show'); + if (fieldEl) fieldEl.classList.remove('error'); +} + +// Validate house form before submit +function validateHouseForm() { + let isValid = true; + + const employmentStatus = document.getElementById('houseEmploymentStatus')?.value; + + // Required fields + const requiredFields = [ + { id: 'houseHeadName', errId: 'errHouseHeadName', label: 'Nama Kepala Keluarga' }, + { id: 'houseNIK', errId: 'errHouseNIK', label: 'NIK KK', validate: (val) => /^\d{16}$/.test(val) }, + { id: 'houseGender', errId: 'errHouseGender', label: 'Jenis Kelamin' }, + { id: 'houseDOB', errId: 'errHouseDOB', label: 'Tanggal Lahir' }, + { id: 'houseEducation', errId: 'errHouseEducation', label: 'Pendidikan' }, + { id: 'houseIncome', errId: 'errHouseIncome', label: 'Pendapatan' }, + { id: 'houseCondition', errId: 'errHouseCondition', label: 'Kondisi Rumah' }, + { id: 'houseLandOwnership', errId: 'errHouseLandOwnership', label: 'Kepemilikan Lahan' }, + { id: 'houseRt', errId: 'errHouseRt', label: 'RT' }, + { id: 'houseRw', errId: 'errHouseRw', label: 'RW' }, + { id: 'houseKelurahan', errId: 'errHouseKelurahan', label: 'Kelurahan' }, + { id: 'houseKecamatan', errId: 'errHouseKecamatan', label: 'Kecamatan' }, + { id: 'houseFullAddress', errId: 'errHouseAddress', label: 'Alamat Lengkap' } + ]; + + requiredFields.forEach(field => { + const el = document.getElementById(field.id); + let value = el ? el.value.trim() : ''; + + if (!value || value === '') { + showFieldError(field.id, field.errId, `${field.label} wajib diisi.`); + isValid = false; + } else if (field.validate && !field.validate(value)) { + showFieldError(field.id, field.errId, `${field.label} tidak valid.`); + isValid = false; + } else { + clearFieldError(field.id, field.errId); + } + }); + + if (employmentStatus === 'working') { + const jobValue = document.getElementById('houseJob')?.value.trim(); + if (!jobValue || jobValue === '') { + showFieldError('houseJob', 'errHouseJob', 'Nama pekerjaan wajib diisi.'); + isValid = false; + } else { + clearFieldError('houseJob', 'errHouseJob'); + } + } else if (employmentStatus === 'studying') { + const institutionValue = document.getElementById('houseInstitutionName')?.value.trim(); + if (!institutionValue || institutionValue === '') { + showFieldError('houseInstitutionName', 'errHouseInstitution', 'Nama sekolah/universitas wajib diisi.'); + isValid = false; + } else { + clearFieldError('houseInstitutionName', 'errHouseInstitution'); + } + } else { + // Status unemployed: tidak perlu validasi pekerjaan/institusi + clearFieldError('houseJob', 'errHouseJob'); + clearFieldError('houseInstitutionName', 'errHouseInstitution'); + } + + // Koordinat validation + const lat = document.getElementById('houseLat')?.value; + const lng = document.getElementById('houseLng')?.value; + if (!lat || !lng || lat === '' || lng === '') { + showFieldError('houseLatDisplay', 'errHouseCoord', 'Pilih lokasi pada peta terlebih dahulu.'); + isValid = false; + } else { + clearFieldError('houseLatDisplay', 'errHouseCoord'); + } + + // Family members validation (at least 1 member? optional) + const familyData = document.getElementById('familyMembersData')?.value; + // Tidak wajib, hanya peringatan jika kosong + if (familyData && familyData !== '[]') { + const members = JSON.parse(familyData); + if (members.length === 0) { + // Optional warning + } + } + + return isValid; +} + +// Tambahkan event listener untuk real-time validation clearing +function initHouseFormValidation() { + const fields = ['houseHeadName', 'houseNIK', 'houseGender', 'houseDOB', 'houseEducation', + 'houseIncome', 'houseJob', 'houseCondition', 'houseLandOwnership', + 'houseRt', 'houseRw', 'houseKelurahan', 'houseKecamatan', 'houseFullAddress']; + + fields.forEach(fieldId => { + const el = document.getElementById(fieldId); + if (el) { + el.addEventListener('input', () => { + const errId = 'err' + fieldId.charAt(0).toUpperCase() + fieldId.slice(1); + clearFieldError(fieldId, errId); + }); + el.addEventListener('change', () => { + const errId = 'err' + fieldId.charAt(0).toUpperCase() + fieldId.slice(1); + clearFieldError(fieldId, errId); + }); + } + }); + + // Coordinate clear on map click + const coordFields = ['houseLat', 'houseLng']; + coordFields.forEach(fieldId => { + const el = document.getElementById(fieldId); + if (el) { + el.addEventListener('change', () => { + clearFieldError('houseLatDisplay', 'errHouseCoord'); + }); + } + }); +} + +/* ================================================================ + Photo upload β€” houseModal wiring + ================================================================ */ + +/* ================================================================ + deleteHousePhoto β€” called from the Γ— button on saved photo thumbs + ================================================================ */ +async function deleteHousePhoto(householdId, filename, thumbWrap) { + if (!confirm('Hapus foto ini secara permanen?')) return; + + // Optimistic UI: dim the thumb immediately + if (thumbWrap) thumbWrap.style.opacity = '0.4'; + + const r = await PhotoUpload.deletePhoto('house', householdId, filename); + + if (r.ok && r.data?.success) { + // Remove thumb from DOM + thumbWrap?.remove(); + showToast('Foto dihapus.', 'success'); + } else { + // Restore opacity on failure + if (thumbWrap) thumbWrap.style.opacity = '1'; + showToast(r.data?.message || 'Gagal menghapus foto.', 'error'); + } +} + +(function() { + const zone = document.getElementById('housePhotoZone'); + const input = document.getElementById('housePhotos'); + if (!zone || !input) return; + + const strip = document.getElementById('housePhotoStrip'); + const errEl = document.getElementById('housePhotoError'); + const savedEl = document.getElementById('houseSavedPhotoStrip'); + + function showErr(msg) { errEl.textContent = msg; errEl.classList.add('show'); } + function clearErr() { errEl.classList.remove('show'); } + + function currentSavedCount() { + return savedEl ? savedEl.querySelectorAll('div').length : 0; + } + + function handleFiles(fileList) { + clearErr(); + const v = PhotoUpload.validate(fileList, currentSavedCount()); + if (!v.valid) { showErr(v.message); input.value = ''; return; } + strip.innerHTML = ''; + strip.appendChild(PhotoUpload.buildPreviewStrip(fileList)); + } + + input.addEventListener('change', () => handleFiles(input.files)); + + zone.addEventListener('dragover', (e) => { e.preventDefault(); zone.classList.add('dragover'); }); + zone.addEventListener('dragleave', () => zone.classList.remove('dragover')); + zone.addEventListener('drop', (e) => { + e.preventDefault(); + zone.classList.remove('dragover'); + try { + const dt = new DataTransfer(); + Array.from(e.dataTransfer.files).forEach(f => dt.items.add(f)); + input.files = dt.files; + handleFiles(input.files); + } catch(_) { + showErr('Drag & drop tidak didukung. Klik untuk memilih file.'); + } + }); +})(); + +// Modify the houseForm submit handler +document.getElementById('houseForm')?.addEventListener('submit', async (e) => { + e.preventDefault(); + + // VALIDATE FORM FIRST + if (!validateHouseForm()) { + const firstError = document.querySelector('.field-error.show'); + if (firstError) { + firstError.scrollIntoView({ behavior: 'smooth', block: 'center' }); + } + showToast('Periksa kembali isian yang belum lengkap.', 'error'); + return; + } + + const id = document.getElementById('houseId').value; + const lat = parseFloat(document.getElementById('houseLat').value); + const lng = parseFloat(document.getElementById('houseLng').value); + + if (!lat || !lng || isNaN(lat) || isNaN(lng)) { + showToast('Koordinat tidak valid. Klik peta terlebih dahulu.', 'error'); + return; + } + + const members = JSON.parse(document.getElementById('familyMembersData').value || '[]'); + const body = { + rt: document.getElementById('houseRt')?.value || '', + rw: document.getElementById('houseRw')?.value || '', + kelurahan: document.getElementById('houseKelurahan')?.value || '', + kecamatan: document.getElementById('houseKecamatan')?.value || '', + full_address: document.getElementById('houseFullAddress')?.value || '', + latitude: lat, + longitude: lng, + house_condition: document.getElementById('houseCondition').value, + managing_center_id: document.getElementById('managingCenterId')?.value || null, + head_name: document.getElementById('houseHeadName').value.trim(), + head_nik: document.getElementById('houseNIK').value.trim(), + head_gender: document.getElementById('houseGender').value, + head_date_of_birth: document.getElementById('houseDOB').value, + head_education: document.getElementById('houseEducation').value, + head_employment_status: document.getElementById('houseEmploymentStatus').value, + head_job_name: document.getElementById('houseEmploymentStatus').value === 'working' ? document.getElementById('houseJob').value.trim() || null : null, + head_institution_name: document.getElementById('houseEmploymentStatus').value === 'studying' ? document.getElementById('houseInstitutionName').value.trim() || null : null, + head_monthly_income: parseInt(document.getElementById('houseIncome').value) || 0, + land_ownership: document.getElementById('houseLandOwnership').value, + description: document.getElementById('houseDescription').value.trim(), + aid_status: document.getElementById('houseAidStatus').value, + household_members: members, + notes: document.getElementById('houseDescription').value.trim() + }; + + if (!body.head_name) { showToast('Nama Kepala Keluarga wajib diisi.', 'error'); return; } + if (!body.head_nik || body.head_nik.length !== 16) { showToast('NIK KK harus 16 digit.', 'error'); return; } + if (!body.head_date_of_birth) { showToast('Tanggal Lahir KK wajib diisi.', 'error'); return; } + + showLoading(true); + try { + const r = id ? await ApiHouses.update(id, body) : await ApiHouses.create(body); + if (r.ok && r.data?.success) { + // ── Upload photos ───────────────────────────────────── + const savedId = id || r.data.data?.id; + const photoInput = document.getElementById('housePhotos'); + if (savedId && photoInput?.files?.length) { + const upRes = await PhotoUpload.upload('house', savedId, photoInput.files); + if (!upRes.ok || !upRes.data?.success) { + showToast('Data disimpan, tapi foto gagal diunggah: ' + (upRes.data?.message || ''), 'error', 5000); + } + photoInput.value = ''; + } + // ── End upload ──────────────────────────────────────── + + closeModal('houseModal'); + cancelPlacementMode(); + showToast(id ? 'Data rumah diperbarui.' : 'Rumah berhasil ditambahkan.', 'success'); + await loadAllData(); + + recountCenterHouseholds(); + renderCenterList(); + renderHouseList(); + updateLayerCounts(); + loadStats(); + } else { + showToast(r.data?.message || 'Gagal menyimpan.', 'error'); + } + } catch (err) { + showToast('Terjadi kesalahan: ' + err.message, 'error'); + } finally { + showLoading(false); + } +}); \ No newline at end of file diff --git a/03PovertyMapping/assets/js/map.js b/03PovertyMapping/assets/js/map.js new file mode 100644 index 0000000..f5c8546 --- /dev/null +++ b/03PovertyMapping/assets/js/map.js @@ -0,0 +1,176 @@ +/* ============================================================ + map.js β€” Leaflet map initialisation + layer management + ============================================================ */ +'use strict'; + +// ---- Map instance + layer groups --------------------------- +let MAP; +let layerCenters, layerHouses, layerReports; +let layerVisible = { centers: true, houses: true, reports: true }; + +// ---- Placement mode: 'center' | 'house' | null ------------- +let placementMode = null; +let tempMarker = null; + +// ---- Init -------------------------------------------------- +function initMap() { + MAP = L.map('map', { + center: [-0.0236, 109.3426], // Pontianak, Kalimantan Barat + zoom: 13, + zoomControl: false, + }); + + L.control.zoom({ position: 'bottomright' }).addTo(MAP); + + // Tile layers + const osmTile = L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', { + attribution: 'Β© OpenStreetMap contributors', + maxZoom: 19, + }); + const satelliteTile = L.tileLayer( + 'https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}', { + attribution: 'Tiles Β© Esri', + maxZoom: 19, + }); + + osmTile.addTo(MAP); + + // Expose for layer switcher + MAP._baseLayers = { osm: osmTile, satellite: satelliteTile }; + MAP._activeBase = 'osm'; + + // Layer groups + layerCenters = L.layerGroup().addTo(MAP); + layerHouses = L.layerGroup().addTo(MAP); + layerReports = L.layerGroup().addTo(MAP); + + // Map click β†’ placement + MAP.on('click', onMapClick); + + // Double-click suppression + MAP.on('dblclick', (e) => e.originalEvent.preventDefault()); +} + +// ---- Map click handler ------------------------------------- +async function onMapClick(e) { + if (!placementMode) return; + + const { lat, lng } = e.latlng; + + // Remove temp marker + if (tempMarker) { MAP.removeLayer(tempMarker); tempMarker = null; } + + // Place temp crosshair marker + tempMarker = L.marker([lat, lng], { + icon: L.divIcon({ + html: `
    `, + iconSize: [14, 14], iconAnchor: [7, 7], className: '', + }), + }).addTo(MAP); + + // Reverse geocode + showLoading(true); + const address = await reverseGeocode(lat, lng); + showLoading(false); + + if (placementMode === 'center') { + openCenterModal(null, lat, lng, address); + } else if (placementMode === 'house') { + openHouseModal(null, lat, lng, address); + } +} + +// ---- Reverse Geocode -------------------------------- +async function reverseGeocode(lat, lng) { + try { + const url = `https://nominatim.openstreetmap.org/reverse?lat=${lat}&lon=${lng}&format=json&accept-language=id&addressdetails=1&zoom=18`; + const res = await fetch(url, { + headers: { + 'Accept-Language': 'id', + 'User-Agent': 'WebGIS-PovertyMapping/2.0' + } + }); + const data = await res.json(); + + if (data && data.display_name) { + return data.display_name; + } + + // Fallback: build address from components + if (data && data.address) { + const addr = data.address; + const parts = []; + if (addr.road) parts.push(addr.road); + if (addr.house_number) parts.push('No. ' + addr.house_number); + if (addr.neighbourhood) parts.push(addr.neighbourhood); + if (addr.suburb) parts.push(addr.suburb); + if (addr.village) parts.push(addr.village); + if (addr.city || addr.town || addr.municipality) parts.push(addr.city || addr.town || addr.municipality); + if (addr.state) parts.push(addr.state); + if (parts.length > 0) return parts.join(', '); + } + + return `${lat.toFixed(6)}, ${lng.toFixed(6)}`; + } catch (err) { + console.warn('Reverse geocoding failed:', err.message); + return `${lat.toFixed(6)}, ${lng.toFixed(6)}`; + } +} + +// ---- Placement mode control -------------------------------- +function setPlacementMode(mode) { + placementMode = mode; + const map = document.getElementById('map'); + map.classList.remove('cursor-add-center', 'cursor-add-house'); + if (mode === 'center') map.classList.add('cursor-add-center'); + if (mode === 'house') map.classList.add('cursor-add-house'); + + // Highlight nav tabs + document.querySelectorAll('.nav-tab').forEach(t => { + t.classList.toggle('active', t.dataset.tab === (mode === 'center' ? 'centers' : mode === 'house' ? 'houses' : 'overview')); + }); +} + +function cancelPlacementMode() { + placementMode = null; + document.getElementById('map').classList.remove('cursor-add-center', 'cursor-add-house'); + if (tempMarker) { MAP.removeLayer(tempMarker); tempMarker = null; } +} + +// ---- Layer toggle ------------------------------------------ +function toggleLayer(name) { + layerVisible[name] = !layerVisible[name]; + const checkbox = document.getElementById('layerCenters')?.parentElement?.querySelector('#layer' + capitalize(name)); + const grp = name === 'centers' ? layerCenters : name === 'houses' ? layerHouses : layerReports; + + if (layerVisible[name]) { + grp.addTo(MAP); + } else { + MAP.removeLayer(grp); + } + + const cb = document.getElementById('layer' + capitalize(name)); + if (cb) cb.checked = layerVisible[name]; +} + +function capitalize(s) { return s.charAt(0).toUpperCase() + s.slice(1); } + +// ---- Fly to point ------------------------------------------ +function flyTo(lat, lng, zoom = 17) { + MAP.flyTo([lat, lng], zoom, { duration: 0.8 }); +} + +// ---- Clear + rebuild all layers ---------------------------- +function renderAllLayers() { + renderCenters(); + renderHouses(); +} + +// ---- Update layer count badges ----------------------------- +function updateLayerCounts() { + const cc = document.getElementById('layerCenterCount'); + const hc = document.getElementById('layerHouseCount'); + const rc = document.getElementById('layerReportCount'); + if (cc) cc.textContent = State.centers.length; + if (hc) hc.textContent = State.houses.length; +} \ No newline at end of file diff --git a/03PovertyMapping/assets/js/markers.js b/03PovertyMapping/assets/js/markers.js new file mode 100644 index 0000000..69ba924 --- /dev/null +++ b/03PovertyMapping/assets/js/markers.js @@ -0,0 +1,961 @@ +/* ============================================================ + markers.js β€” Draggable markers + inside/outside radius colors + ============================================================ */ +'use strict'; + +// ==================================================================== +// UTILITY FUNCTIONS +// ==================================================================== +function escapeHtml(str) { + if (str === null || str === undefined) return ''; + return String(str) + .replace(/&/g, '&') + .replace(//g, '>') + .replace(/"/g, '"') + .replace(/'/g, '''); +} + +function truncate(str, n = 28) { + if (!str) return ''; + return str.length > n ? str.slice(0, n) + '…' : str; +} + +function formatRp(n) { + if (!n) return 'Rp 0'; + return 'Rp ' + Number(n).toLocaleString('id-ID'); +} + +function formatDate(str) { + if (!str) return 'β€”'; + return new Date(str).toLocaleDateString('id-ID', { day: '2-digit', month: 'short', year: 'numeric' }); +} + +function educationLabel(edu) { + const labels = { + 'tidak_sekolah': 'Tidak Sekolah', + 'sd': 'SD', + 'smp': 'SMP', + 'sma': 'SMA', + 'diploma': 'Diploma', + 'sarjana': 'Sarjana', + 'pascasarjana': 'Pascasarjana' + }; + return labels[edu] || edu; +} + +const radiusCircles = {}; +let dragInProgress = false; + +// ==================================================================== +// CENTERS +// ==================================================================== +function renderCenters() { + layerCenters.clearLayers(); + Object.values(radiusCircles).forEach(c => { if (MAP.hasLayer(c)) MAP.removeLayer(c); }); + + const filtered = State.centers.filter(c => { + if (State.activeFilter === 'houses') return false; + if (State.searchQuery) { + const q = State.searchQuery.toLowerCase(); + return c.name.toLowerCase().includes(q) || (c.address || '').toLowerCase().includes(q); + } + return true; + }); + + filtered.forEach(center => { + if (!center._marker) { + addCenterMarker(center); + } else { + layerCenters.addLayer(center._marker); + if (radiusCircles[center.id]) { + radiusCircles[center.id].addTo(MAP); + } + } + }); + updateLayerCounts(); + renderCenterList(); +} + +function addCenterMarker(center) { + const color = CENTER_COLORS[center.worship_type] || '#3a56d4'; + const icon = CENTER_ICONS[center.worship_type] || 'fa-place-of-worship'; + + const circle = L.circle([center.latitude, center.longitude], { + radius: center.radius, + color: color, + fillColor: color, + fillOpacity: 0.07, + weight: 1.5, + dashArray: '4 3', + }); + circle.addTo(MAP); + radiusCircles[center.id] = circle; + + const marker = L.marker([center.latitude, center.longitude], { + icon: L.divIcon({ + html: `
    `, + iconSize: [32, 32], + iconAnchor: [16, 32], + popupAnchor: [0, -34], + className: '', + }), + title: center.name, + draggable: true, + }); + + marker.on('dragstart', function() { marker.closePopup(); marker.setZIndexOffset(1000); }); + marker.on('drag', function(e) { if (radiusCircles[center.id]) radiusCircles[center.id].setLatLng(marker.getLatLng()); }); + marker.on('dragend', async function(e) { + marker.setZIndexOffset(0); + const pos = marker.getLatLng(); + center.latitude = pos.lat; + center.longitude = pos.lng; + if (radiusCircles[center.id]) radiusCircles[center.id].setLatLng(pos); + try { + const r = await ApiCenters.patch(center.id, { latitude: pos.lat, longitude: pos.lng }); + if (r.ok && r.data?.success) { + showToast('Posisi tempat ibadah diperbarui.', 'success'); + updateAllHouseColors(); + recountCenterHouseholds(); + loadStats(); + renderCenterList(); + renderHouseList(); + updateLayerCounts(); + } else showToast('Gagal menyimpan posisi.', 'error'); + } catch (err) { showToast('Gagal menyimpan posisi.', 'error'); } + showCenterPopup(marker, center); + }); + marker.on('click', () => showCenterPopup(marker, center)); + layerCenters.addLayer(marker); + center._marker = marker; +} + +function showCenterPopup(marker, center) { + const color = CENTER_COLORS[center.worship_type] || '#3a56d4'; + const icon = CENTER_ICONS[center.worship_type] || 'fa-place-of-worship'; + const label = CENTER_LABELS[center.worship_type] || center.worship_type; + + // Hitung ulang jumlah rumah saat popup dibuka (memastikan data fresh) + let count = 0; + let nearbyHouses = []; + + State.houses.forEach(house => { + if (house.is_active === false) return; + const distance = haversineMeters( + house.latitude, house.longitude, + center.latitude, center.longitude + ); + if (distance <= center.radius) { + count++; + nearbyHouses.push({ + id: house.id, + name: house.head_name, + distance: Math.round(distance) + }); + } + }); + + // Update center household_count jika berbeda + if (center.household_count !== count) { + center.household_count = count; + renderCenterList(); // Refresh sidebar jika ada perubahan + } + + // Buat HTML daftar rumah dalam radius + let housesListHtml = ''; + if (nearbyHouses.length > 0) { + const displayHouses = nearbyHouses.slice(0, 5); + housesListHtml = ` + + `; + } + + const popup = L.popup({ maxWidth: 320, closeButton: true }) + .setLatLng(marker.getLatLng()) + .setContent(` + `); + + marker.unbindPopup(); + marker.bindPopup(popup).openPopup(); +} + +// Fungsi helper untuk terbang ke rumah dan membuka popupnya +function flyToAndOpenHouse(houseId, centerLat, centerLng) { + const house = State.houses.find(h => h.id == houseId); + if (house) { + flyTo(house.latitude, house.longitude, 17); + setTimeout(() => { + if (house._marker) { + house._marker.openPopup(); + } + }, 800); + } +} +window.flyToAndOpenHouse = flyToAndOpenHouse; + +function liveUpdateRadius(centerId, value) { + const valSpan = document.getElementById('rcVal_' + centerId); + if (valSpan) valSpan.textContent = value + 'm'; + + if (radiusCircles[centerId]) { + radiusCircles[centerId].setRadius(parseInt(value)); + } + + // Live update: Hitung ulang jumlah rumah saat slider digeser + const center = State.centers.find(c => c.id == centerId); + if (center) { + let tempCount = 0; + State.houses.forEach(house => { + if (house.is_active === false) return; + const distance = haversineMeters( + house.latitude, house.longitude, + center.latitude, center.longitude + ); + if (distance <= parseInt(value)) { + tempCount++; + } + }); + + // Update tampilan jumlah rumah di popup secara live + const popupContent = document.querySelector('.leaflet-popup-content'); + if (popupContent && center._marker && center._marker.isPopupOpen()) { + const countElement = popupContent.querySelector('.popup-section:first-child .popup-row strong'); + if (countElement) { + countElement.textContent = tempCount; + countElement.style.color = '#d63230'; + } + } + } +} + +async function saveRadius(centerId, value) { + try { + const r = await ApiCenters.patch(centerId, { radius: parseInt(value) }); + if (r.ok && r.data?.success) { + const center = State.centers.find(c => c.id == centerId); + if (center) { + center.radius = parseInt(value); + // Perbarui lingkaran di peta + if (radiusCircles[centerId]) { + radiusCircles[centerId].setRadius(parseInt(value)); + } + } + showToast('Radius diperbarui.', 'success'); + + // Update semua data yang terpengaruh + updateAllHouseColors(); + recountCenterHouseholds(); // Hitung ulang jumlah rumah per center + renderHouseList(); // Refresh daftar rumah + renderCenterList(); // Refresh daftar center dengan count baru + updateLayerCounts(); // Update badge layer + loadStats(); // Update statistik dashboard + + // Refresh popup center jika terbuka + if (center._marker && center._marker.isPopupOpen()) { + showCenterPopup(center._marker, center); + } + } else showToast('Gagal menyimpan radius.', 'error'); + } catch (err) { + showToast('Gagal menyimpan radius.', 'error'); + } +} + +async function showCoverageHouseholds(centerId) { + showLoading(true); + const r = await ApiCenters.coverage(centerId); + showLoading(false); + if (!r.ok) { showToast('Gagal memuat data.', 'error'); return; } + const { center, households, count } = r.data.data; + if (!households.length) { showToast(`Tidak ada rumah dalam radius ${center.radius}m.`, 'warning'); return; } + const tempLayer = L.layerGroup(); + households.forEach(h => { + L.circleMarker([h.latitude, h.longitude], { + radius: 10, + color: '#3a56d4', + fillColor: '#3a56d4', + fillOpacity: 0.25, + weight: 2, + }).addTo(tempLayer).bindTooltip(h.head_name, { permanent: false }); + }); + tempLayer.addTo(MAP); + setTimeout(() => MAP.removeLayer(tempLayer), 10000); + flyTo(center.latitude, center.longitude, 15); + showToast(`${count} rumah dalam jangkauan ${center.name}.`, 'success'); +} + +// ==================================================================== +// HOUSES +// ==================================================================== +function renderHouses() { + layerHouses.clearLayers(); + + const filtered = State.houses.filter(h => { + if (State.activeFilter === 'centers') return false; + if (State.povertyFilter && h.poverty_status !== State.povertyFilter) return false; + if (State.aidFilter && h.aid_status !== State.aidFilter) return false; + if (State.conditionFilter && h.house_condition !== State.conditionFilter) return false; + if (State.searchQuery) { + const q = State.searchQuery.toLowerCase(); + if (!h.head_name.toLowerCase().includes(q) && + !(h.full_address || h.address || '').toLowerCase().includes(q) && + !(h.head_nik || '').includes(q)) return false; + } + return true; + }); + + filtered.forEach(h => { + if (!h._marker) { + addHouseMarker(h); + } else { + // Update color if radius status changed + const newColor = getHouseMarkerColor(h.latitude, h.longitude); + if (h._marker._houseColor !== newColor) { + h._marker._houseColor = newColor; + h._marker.setIcon(L.divIcon({ + html: `
    `, + iconSize: [26, 26], + iconAnchor: [13, 26], + popupAnchor: [0, -28], + className: '', + })); + } + layerHouses.addLayer(h._marker); + } + }); + updateLayerCounts(); + renderHouseList(filtered); +} + +function isHouseInsideAnyRadius(lat, lng) { + for (const center of State.centers) { + if (!center.is_active) continue; + const distance = haversineMeters(lat, lng, center.latitude, center.longitude); + if (distance <= center.radius) return true; + } + return false; +} + +function haversineMeters(lat1, lng1, lat2, lng2) { + const R = 6371000; + const dLat = (lat2 - lat1) * Math.PI / 180; + const dLng = (lng2 - lng1) * Math.PI / 180; + const a = Math.sin(dLat / 2) * Math.sin(dLat / 2) + + Math.cos(lat1 * Math.PI / 180) * Math.cos(lat2 * Math.PI / 180) * + Math.sin(dLng / 2) * Math.sin(dLng / 2); + const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a)); + return R * c; +} + +function recountCenterHouseholds() { + console.log('Recounting center households...'); + + State.centers.forEach(center => { + let count = 0; + let householdsInRadius = []; + + State.houses.forEach(house => { + if (house.is_active === false) return; + + const distance = haversineMeters( + house.latitude, house.longitude, + center.latitude, center.longitude + ); + + if (distance <= center.radius) { + count++; + householdsInRadius.push({ + id: house.id, + name: house.head_name, + distance: Math.round(distance) + }); + } + }); + + center.household_count = count; + center.households_in_radius = householdsInRadius.slice(0, 10); // Simpan 10 terdekat + }); +} + +function getHouseMarkerColor(lat, lng) { + return isHouseInsideAnyRadius(lat, lng) ? '#d63230' : '#0b9e73'; +} + +function updateAllHouseColors() { + State.houses.forEach(h => { + if (h._marker) { + const insideRadius = isHouseInsideAnyRadius(h.latitude, h.longitude); + const newColor = insideRadius ? '#d63230' : '#0b9e73'; + if (h._marker._houseColor !== newColor) { + h._marker._houseColor = newColor; + h._marker.setIcon(L.divIcon({ + html: `
    `, + iconSize: [26, 26], + iconAnchor: [13, 26], + popupAnchor: [0, -28], + className: '', + })); + } + } + }); +} + +// Fungsi untuk mendapatkan foto rumah (akan digunakan di popup) +function getHousePhotosHtml(houseData) { + if (!houseData.house_photos) return ''; + let photosArr = []; + try { photosArr = JSON.parse(houseData.house_photos); } catch(e) { return ''; } + if (!photosArr.length) return ''; + + const thumbnails = photosArr.slice(0, 4).map(name => + `` + ).join(''); + + return ` +
    +
    + + Foto Rumah + ${photosArr.length} +
    + +
    `; +} + +// showHousePopup (redesigned popup) +async function showHousePopup(marker, h, forceRefresh = false) { + let houseData = h; + + // Fetch fresh data if aid_history is missing or forceRefresh=true + if (forceRefresh || !houseData.aid_history || houseData.aid_history.length === undefined) { + try { + showLoading(true); + const r = await ApiHouses.show(houseData.id); + showLoading(false); + if (r.ok && r.data?.success) { + houseData = r.data.data; + const index = State.houses.findIndex(hh => hh.id === houseData.id); + if (index !== -1) { + State.houses[index] = houseData; + if (State.houses[index]._marker) { + State.houses[index]._marker._houseData = houseData; + } + } + } + } catch (err) { + showLoading(false); + console.error('Failed to load fresh household data:', err); + } + } + + // ── Derived values ─────────────────────────────────────────────── + const hasAid = (houseData.aid_history && houseData.aid_history.length > 0); + const aidStatusText = hasAid ? 'Penerima Bantuan' : 'Belum Ada Bantuan'; + const aidStatusColor = hasAid ? '#0b9e73' : '#d97706'; + + let age = 'β€”'; + if (houseData.head_date_of_birth) { + const bd = new Date(houseData.head_date_of_birth), now = new Date(); + let a = now.getFullYear() - bd.getFullYear(); + if (now.getMonth() < bd.getMonth() || (now.getMonth() === bd.getMonth() && now.getDate() < bd.getDate())) a--; + age = a; + } + + const povColor = POVERTY_COLORS[houseData.poverty_status] || '#9ba4b5'; + const povLabel = POVERTY_LABELS[houseData.poverty_status] || houseData.poverty_status; + + // Employment one-liner + let jobLine = 'β€”'; + if (houseData.head_employment_status === 'unemployed') { + jobLine = 'Tidak Bekerja'; + } else if (houseData.head_employment_status === 'studying') { + jobLine = escapeHtml(houseData.head_institution_name || 'Pelajar/Mahasiswa'); + } else if (houseData.head_employment_status === 'working') { + jobLine = escapeHtml(houseData.head_job_name || 'Bekerja'); + if (houseData.head_monthly_income) jobLine += ` Β· ${formatRp(houseData.head_monthly_income)}/bln`; + } + + const fullAddress = houseData.full_address || houseData.address || 'β€”'; + const conditionIcon = houseData.house_condition === 'layak' + ? ` Layak` + : houseData.house_condition === 'tidak_layak' + ? ` Tidak Layak` + : 'β€”'; + + // ── Location pills (RT/RW Β· Kelurahan Β· Kecamatan) ─────────────── + const locationPills = [ + houseData.rt ? `RT ${escapeHtml(houseData.rt)}/${escapeHtml(houseData.rw || '?')}` : null, + houseData.kelurahan ? escapeHtml(houseData.kelurahan) : null, + houseData.kecamatan ? escapeHtml(houseData.kecamatan) : null, + ].filter(Boolean); + + const locationPillsHtml = locationPills.length + ? `
    ${locationPills.map(p => `${p}`).join('')}
    ` + : ''; + + // ── Family members ──────────────────────────────────────────────── + let membersHtml = ''; + if (houseData.household_members && houseData.household_members.length) { + const members = houseData.household_members; + const shown = members.slice(0, 5); + const extra = members.length - shown.length; + membersHtml = ` +
    +
    + + Anggota Keluarga + ${members.length} +
    +
    + ${shown.map(m => { + let statusLine = ''; + if (m.employment_status === 'working') statusLine = escapeHtml(m.job_name || 'Bekerja'); + else if (m.employment_status === 'studying') statusLine = escapeHtml(m.institution_name || 'Sekolah'); + else if (m.employment_status === 'unemployed') statusLine = 'Tidak bekerja'; + return `
    +
    +
    +
    ${escapeHtml(m.name)}
    +
    ${escapeHtml(m.relationship || 'β€”')}${statusLine ? ' Β· ' + statusLine : ''}
    +
    +
    `; + }).join('')} + ${extra > 0 ? `
    +${extra} anggota lainnya
    ` : ''} +
    +
    `; + } + + // ── Aid history ─────────────────────────────────────────────────── + let aidHistoryHtml = ''; + if (hasAid) { + const latestAids = houseData.aid_history.slice(0, 5); + const extraAids = houseData.aid_history.length - latestAids.length; + aidHistoryHtml = ` +
    +
    + + Riwayat Bantuan + ${houseData.aid_history.length} +
    +
    + ${latestAids.map(aid => ` +
    +
    + ${escapeHtml(aid.aid_type_label || (typeof AID_LABELS !== 'undefined' && AID_LABELS[aid.aid_type]) || aid.aid_type || 'Bantuan')} + ${aid.amount ? `${formatRp(aid.amount)}` : ''} +
    +
    ${formatDate(aid.aid_date)}
    + ${aid.description || aid.notes ? `
    ${escapeHtml((aid.description || aid.notes || '').substring(0, 55))}${(aid.description || aid.notes || '').length > 55 ? '…' : ''}
    ` : ''} +
    `).join('')} + ${extraAids > 0 ? `
    +${extraAids} bantuan lainnya
    ` : ''} +
    +
    `; + } else { + aidHistoryHtml = ` +
    +
    + + Riwayat Bantuan +
    +
    Belum ada riwayat bantuan
    +
    `; + } + + // ── Assigned center ─────────────────────────────────────────────── + const centerHtml = houseData.center_name + ? `
    + + ${escapeHtml(houseData.center_name)} +
    ` + : ''; + + // ── Coordinates ────────────────────────────────────────────────── + const lat = (houseData.latitude || marker.getLatLng().lat).toFixed(6); + const lng = (houseData.longitude || marker.getLatLng().lng).toFixed(6); + + // ── Photos Html ────────────────────────────────────────────────── + const photosHtml = getHousePhotosHtml(houseData); + + // ── Build popup ────────────────────────────────────────────────── + const popup = L.popup({ maxWidth: 360, minWidth: 300, closeButton: true, className: 'hp-leaflet-popup' }) + .setLatLng(marker.getLatLng()) + .setContent(` +
    + + +
    +
    + +
    +
    + +
    +
    +
    ${escapeHtml(houseData.head_name)}
    +
    NIK: ${escapeHtml(houseData.head_nik || houseData.nik || 'β€”')}
    +
    +
    + + +
    +
    + ${povLabel} +
    +
    + ${aidStatusText} +
    +
    + + +
    + + +
    +
    + + Lokasi +
    +
    ${escapeHtml(fullAddress)}
    + ${locationPillsHtml} + ${centerHtml} +
    ${lat}, ${lng}
    +
    + + + ${photosHtml} + + +
    +
    + + Kepala Keluarga +
    +
    +
    + Usia + ${age} tahun +
    +
    + Pendidikan + ${educationLabel(houseData.head_education) || 'β€”'} +
    +
    + Pekerjaan + ${jobLine} +
    +
    + Kondisi Rumah + ${conditionIcon} +
    +
    +
    + + + ${membersHtml} + + + ${aidHistoryHtml} + +
    + + +
    + + + ${window.canDelete ? `` : ''} +
    + +
    `); + + marker.unbindPopup(); + marker.bindPopup(popup).openPopup(); +} + +// Update click handler untuk memuat data fresh +function addHouseMarker(h) { + const insideRadius = isHouseInsideAnyRadius(h.latitude, h.longitude); + const color = insideRadius ? '#d63230' : '#0b9e73'; + + const marker = L.marker([h.latitude, h.longitude], { + icon: L.divIcon({ + html: `
    `, + iconSize: [26, 26], + iconAnchor: [13, 26], + popupAnchor: [0, -28], + className: '', + }), + title: h.head_name, + draggable: true, + }); + + marker._houseColor = color; + marker._houseData = h; + marker._originalId = h.id; + + // Dragstart + marker.on('dragstart', function() { + dragInProgress = true; + marker.closePopup(); + marker.setZIndexOffset(1000); + }); + + // Drag - update color live + marker.on('drag', function(e) { + const pos = marker.getLatLng(); + const newColor = getHouseMarkerColor(pos.lat, pos.lng); + if (marker._houseColor !== newColor) { + marker._houseColor = newColor; + marker.setIcon(L.divIcon({ + html: `
    `, + iconSize: [26, 26], + iconAnchor: [13, 26], + popupAnchor: [0, -28], + className: '', + })); + } + }); + + marker.on('dragend', async function(e) { + dragInProgress = false; + marker.setZIndexOffset(0); + + const pos = marker.getLatLng(); + const lat = pos.lat, lng = pos.lng; + + // Update local data + h.latitude = lat; + h.longitude = lng; + + // Update warna marker + const newColor = getHouseMarkerColor(lat, lng); + marker._houseColor = newColor; + marker.setIcon(L.divIcon({ + html: `
    `, + iconSize: [26, 26], + iconAnchor: [13, 26], + popupAnchor: [0, -28], + className: '', + })); + + // Reverse geocode untuk dapat alamat baru + let newAddress = h.full_address || h.address; + try { + newAddress = await reverseGeocode(lat, lng); + h.full_address = newAddress; + } catch (err) {} + + // Save ke database via API + showLoading(true); + try { + const r = await ApiHouses.patch(h.id, { + latitude: lat, + longitude: lng, + full_address: newAddress + }); + + if (r.ok && r.data?.success) { + if (r.data.data?.managing_center_id) { + h.managing_center_id = r.data.data.managing_center_id; + const center = State.centers.find(c => c.id == r.data.data.managing_center_id); + if (center) h.center_name = center.name; + } + showToast('Posisi rumah berhasil diperbarui.', 'success'); + + // Urutan yang benar - update state dulu + + // 1. Update data di State (Harus pertama) + const index = State.houses.findIndex(hi => hi.id === h.id); + if (index !== -1) { + State.houses[index] = h; + } + + // 2. Hitung ulang jumlah rumah per center (membaca dari State.houses yang sudah diupdate) + recountCenterHouseholds(); + + // 3. Update warna semua marker rumah (yang mungkin berubah status radius) + updateAllHouseColors(); + + // 4. Update tampilan sidebar + renderCenterList(); + renderHouseList(); + updateLayerCounts(); + + // 5. Update statistik dashboard (ambil data fresh dari server) + await loadStats(); + + // 6. Refresh popup jika terbuka + if (marker.isPopupOpen()) { + await showHousePopup(marker, h, true); + } + } else { + showToast(r.data?.message || 'Gagal menyimpan posisi.', 'error'); + // Kembalikan ke posisi lama jika gagal + marker.setLatLng([h.latitude, h.longitude]); + } + } catch (err) { + showToast('Gagal menyimpan posisi: ' + err.message, 'error'); + marker.setLatLng([h.latitude, h.longitude]); + } finally { + showLoading(false); + } + + // Tampilkan popup dengan data terbaru (jika belum terbuka) + if (!marker.isPopupOpen()) { + await showHousePopup(marker, h, true); + } + }); + + // Click handler dengan loading state + marker.on('click', async () => { + const loadingPopup = L.popup() + .setLatLng(marker.getLatLng()) + .setContent('
    Memuat data...
    ') + .openPopup(); + + try { + const r = await ApiHouses.show(h.id); + if (r.ok && r.data?.success) { + const freshData = r.data.data; + marker._houseData = freshData; + const index = State.houses.findIndex(hh => hh.id === freshData.id); + if (index !== -1) { + State.houses[index] = freshData; + State.houses[index]._marker = marker; + } + await showHousePopup(marker, freshData); + } else { + loadingPopup.setContent('
    Gagal memuat data
    '); + setTimeout(() => marker.closePopup(), 1500); + } + } catch (err) { + loadingPopup.setContent('
    Error memuat data
    '); + setTimeout(() => marker.closePopup(), 1500); + } + }); + + layerHouses.addLayer(marker); + h._marker = marker; +} + +// ==================================================================== +// SIDEBAR LISTS +// ==================================================================== +function renderCenterList() { + const el = document.getElementById('centersList'); + const cnt = document.getElementById('centerCount'); + const show = State.activeFilter !== 'houses'; + document.getElementById('centersListSection').style.display = show ? '' : 'none'; + if (!show) return; + const filtered = State.centers.filter(c => { + if (!State.searchQuery) return true; + const q = State.searchQuery.toLowerCase(); + return c.name.toLowerCase().includes(q) || (c.address || '').toLowerCase().includes(q); + }); + cnt.textContent = filtered.length; + if (!filtered.length) { el.innerHTML = '

    Tidak ada data

    '; return; } + el.innerHTML = filtered.slice(0, 50).map(c => { + const color = CENTER_COLORS[c.worship_type] || '#3a56d4'; + const icon = CENTER_ICONS[c.worship_type] || 'fa-place-of-worship'; + return `
    +
    +
    ${truncate(c.name, 24)}
    ${CENTER_LABELS[c.worship_type] || ''} Β· ${c.household_count ?? 0} rumah
    +
    + + ${window.canDelete ? `` : ''} +
    +
    `; + }).join(''); +} + +function renderHouseList(filtered) { + const el = document.getElementById('housesList'); + const cnt = document.getElementById('houseCount'); + const show = State.activeFilter !== 'centers'; + document.getElementById('housesListSection').style.display = show ? '' : 'none'; + if (!show) return; + const list = filtered || State.houses; + cnt.textContent = list.length; + if (!list.length) { el.innerHTML = '

    Tidak ada data

    '; return; } + el.innerHTML = list.slice(0, 80).map(h => { + const insideRadius = isHouseInsideAnyRadius(h.latitude, h.longitude); + const color = insideRadius ? '#d63230' : '#0b9e73'; + const status = insideRadius ? 'Dalam Radius' : 'Luar Radius'; + return `
    +
    +
    ${truncate(h.head_name, 22)}
    ${status}
    +
    + + ${window.canDelete ? `` : ''} +
    +
    `; + }).join(''); + if (list.length > 80) el.innerHTML += `

    +${list.length - 80} lainnya β€” gunakan filter

    `; +} + +function updateLayerCounts() { + const cc = document.getElementById('layerCenterCount'); + const hc = document.getElementById('layerHouseCount'); + if (cc) cc.textContent = State.centers.length; + if (hc) hc.textContent = State.houses.length; +} \ No newline at end of file diff --git a/03PovertyMapping/assets/js/photo-upload.js b/03PovertyMapping/assets/js/photo-upload.js new file mode 100644 index 0000000..57d19f3 --- /dev/null +++ b/03PovertyMapping/assets/js/photo-upload.js @@ -0,0 +1,159 @@ +/* ============================================================ + photo-upload.js β€” Reusable photo upload widget + Shared by lapor.html (public reports) and index.html (households) + ============================================================ */ +'use strict'; + +const PhotoUpload = { + MAX_FILES: 5, + MAX_MB: 5, + + /** + * Validate a FileList against rules. + * Returns { valid: true } or { valid: false, message: '...' } + */ + validate(fileList, existingCount = 0) { + const allowed = ['image/jpeg', 'image/png']; + const allowedExt = ['jpg', 'jpeg', 'png']; + const files = Array.from(fileList); + + if (files.length === 0) return { valid: true }; + + if (existingCount + files.length > this.MAX_FILES) { + return { valid: false, message: `Maksimal ${this.MAX_FILES} foto. Sudah ada ${existingCount}, pilih paling banyak ${this.MAX_FILES - existingCount} foto lagi.` }; + } + + for (const f of files) { + const ext = f.name.split('.').pop().toLowerCase(); + if (!allowedExt.includes(ext)) { + return { valid: false, message: `File "${f.name}" tidak diizinkan. Gunakan JPG atau PNG.` }; + } + if (!allowed.includes(f.type)) { + return { valid: false, message: `File "${f.name}" bukan gambar yang valid.` }; + } + if (f.size > this.MAX_MB * 1024 * 1024) { + return { valid: false, message: `File "${f.name}" melebihi batas ${this.MAX_MB} MB.` }; + } + } + return { valid: true }; + }, + + /** + * Build a preview strip of thumbnails for a FileList. + * Returns a DocumentFragment. + */ + buildPreviewStrip(fileList) { + const frag = document.createDocumentFragment(); + Array.from(fileList).forEach(file => { + const url = URL.createObjectURL(file); + const img = document.createElement('img'); + img.src = url; + img.className = 'photo-thumb'; + img.alt = file.name; + img.title = file.name; + img.onload = () => URL.revokeObjectURL(url); + frag.appendChild(img); + }); + return frag; + }, + + /** + * Build a preview strip from saved filenames (already uploaded). + * baseUrl e.g. 'uploads/reports/' or 'uploads/houses/' + */ + buildSavedStrip(filenames, baseUrl, removable = false, onRemove = null) { + const frag = document.createDocumentFragment(); + if (!Array.isArray(filenames)) return frag; + filenames.forEach(name => { + const wrap = document.createElement('div'); + wrap.style.cssText = 'position:relative;display:inline-block;'; + const img = document.createElement('img'); + img.src = baseUrl + name; + img.className = 'photo-thumb'; + img.alt = name; + img.title = 'Klik untuk perbesar'; + img.style.cursor = 'pointer'; + img.addEventListener('click', () => PhotoUpload.lightbox(img.src)); + wrap.appendChild(img); + if (removable && onRemove) { + const btn = document.createElement('button'); + btn.type = 'button'; + btn.innerHTML = '×'; + btn.title = 'Hapus foto'; + btn.style.cssText = 'position:absolute;top:2px;right:2px;width:18px;height:18px;border-radius:50%;border:none;background:rgba(0,0,0,0.6);color:#fff;font-size:12px;line-height:1;cursor:pointer;padding:0;'; + btn.addEventListener('click', (e) => { e.stopPropagation(); onRemove(name, wrap); }); + wrap.appendChild(btn); + } + frag.appendChild(wrap); + }); + return frag; + }, + + /** Simple lightbox */ + lightbox(src) { + const overlay = document.createElement('div'); + overlay.style.cssText = 'position:fixed;inset:0;background:rgba(0,0,0,0.88);z-index:99999;display:flex;align-items:center;justify-content:center;cursor:zoom-out;'; + const img = document.createElement('img'); + img.src = src; + img.style.cssText = 'max-width:92vw;max-height:88vh;border-radius:8px;box-shadow:0 8px 40px rgba(0,0,0,.6);'; + overlay.appendChild(img); + overlay.addEventListener('click', () => document.body.removeChild(overlay)); + document.addEventListener('keydown', function esc(e) { + if (e.key === 'Escape') { document.body.removeChild(overlay); document.removeEventListener('keydown', esc); } + }); + document.body.appendChild(overlay); + }, + + /** + * Upload photos to the upload endpoint after a record has been saved. + * @param {string} target 'report' | 'house' + * @param {number} id The record's database id + * @param {FileList} fileList + * @returns {Promise<{ok: boolean, data: object}>} + */ + async upload(target, id, fileList) { + if (!fileList || fileList.length === 0) return { ok: true, data: { data: { all_photos: [] } } }; + const form = new FormData(); + Array.from(fileList).forEach(f => form.append('photos[]', f)); + try { + const res = await fetch(`api/public/upload.php?target=${target}&id=${id}`, { + method: 'POST', + body: form, + // ⚠️ Do NOT set Content-Type header β€” browser sets it with boundary automatically + }); + const data = await res.json(); + return { ok: res.ok, data }; + } catch (err) { + console.error('[PhotoUpload] Upload error:', err); + return { ok: false, data: { success: false, message: 'Upload gagal: ' + err.message } }; + } + }, + /** + * Delete a single saved photo via API. + * @param {string} target 'report' | 'house' + * @param {number} id Record's database id + * @param {string} filename The filename to delete + * @returns {Promise<{ok: boolean, data: object}>} + */ + async deletePhoto(target, id, filename) { + const endpointMap = { + report: 'api/public/report.php', + house: 'api/houses/index.php', + }; + const url = endpointMap[target]; + if (!url) return { ok: false, data: { success: false, message: 'Target tidak valid.' } }; + + try { + const res = await fetch(`${url}?action=delete_photo&id=${id}`, { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ filename }), + }); + const data = await res.json(); + return { ok: res.ok, data }; + } catch (err) { + console.error('[PhotoUpload] deletePhoto error:', err); + return { ok: false, data: { success: false, message: 'Koneksi gagal: ' + err.message } }; + } + }, +}; \ No newline at end of file diff --git a/03PovertyMapping/assets/js/public-reports.js b/03PovertyMapping/assets/js/public-reports.js new file mode 100644 index 0000000..0964ee1 --- /dev/null +++ b/03PovertyMapping/assets/js/public-reports.js @@ -0,0 +1,350 @@ +/* ============================================================ + public-reports.js β€” Admin panel: public report verification + Loaded after app.js β€” requires loadAllData() and loadStats() + on window (exported by app.js) + ============================================================ */ +'use strict'; + +// ================================================================ +// API wrapper for public reports +// ================================================================ +const ApiPublicReports = { + async list(params = {}) { + const qs = new URLSearchParams(params).toString(); + return Http.request('api/public/report.php?action=list' + (qs ? '&' + qs : ''), { method: 'GET' }); + }, + async approve(id, body = {}) { + // Menambahkan verified_by ke body untuk audit + if (window.currentUserName) { + body.verified_by = window.currentUserName; + } + return Http.post(`api/public/report.php?action=approve&id=${id}`, body); + }, + async reject(id, body = {}) { + if (window.currentUserName) { + body.rejected_by = window.currentUserName; + } + return Http.post(`api/public/report.php?action=reject&id=${id}`, body); + }, + async delete(id) { + return Http.post(`api/public/report.php?action=delete&id=${id}`); + }, +}; + +// ================================================================ +// Load pending reports into admin panel table +// ================================================================ +async function loadPendingReports() { + const tbody = document.getElementById('pendingTbody'); + if (!tbody) return; + + const status = document.getElementById('pendingStatusFilter')?.value ?? 'pending'; + const params = { limit: 100 }; + if (status) params.status = status; + + tbody.innerHTML = 'Memuat...'; + + const r = await ApiPublicReports.list(params); + + if (!r.ok || !r.data?.success) { + tbody.innerHTML = 'Gagal memuat laporan publik.'; + return; + } + + const reports = r.data.data?.reports || []; + + // Update badge count (always count actual pending) + const badge = document.getElementById('pendingBadge'); + if (badge) { + const pendingCount = reports.filter(rep => rep.status === 'pending').length; + badge.textContent = pendingCount > 0 ? pendingCount : ''; + } + + if (!reports.length) { + const emptyMsg = status === 'pending' ? 'Tidak ada laporan yang menunggu verifikasi.' : 'Tidak ada laporan.'; + tbody.innerHTML = ` + + ${emptyMsg} + `; + return; + } + + const statusMap = { + pending: { label: 'Menunggu', color: '#d97706', bg: '#fef6e4' }, + approved: { label: 'Disetujui', color: '#0b9e73', bg: '#e0faf3' }, + rejected: { label: 'Ditolak', color: '#d63230', bg: '#fff0f0' }, + }; + + tbody.innerHTML = reports.map(rep => { + const st = statusMap[rep.status] || { label: rep.status, color: '#9ba4b5', bg: '#f5f6f9' }; + const canAct = rep.status === 'pending'; + const dateStr = formatDateTime(rep.created_at); + + return ` + + ${dateStr} + +
    ${escapeHtml(rep.head_name || 'β€”')}
    + ${rep.reporter_name + ? `
    ${escapeHtml(rep.reporter_name)}${rep.reporter_phone ? ' Β· ' + escapeHtml(rep.reporter_phone) : ''}
    ` + : ''} + + ${escapeHtml(truncate(rep.address || 'β€”', 38))} + + ${escapeHtml(truncate(rep.description || 'β€”', 60))} + ${buildPhotoMiniStrip(rep.proof_photos, 'uploads/reports/')} + + + ${st.label} + ${rep.admin_notes + ? `
    ${escapeHtml(truncate(rep.admin_notes, 25))}
    ` + : ''} + ${rep.converted_household_id + ? `
    ID: ${rep.converted_household_id}
    ` + : ''} + + + ${canAct ? ` + + + ` : ''} + + + + `; + }).join(''); +} + +/** + * Renders a tiny inline strip of photo thumbnails in the admin table. + * photos: JSON string or array of filenames; baseUrl: path prefix. + */ +function buildPhotoMiniStrip(photos, baseUrl) { + let arr = []; + try { + arr = typeof photos === 'string' ? JSON.parse(photos) : (photos || []); + } catch(e) { + console.warn('buildPhotoMiniStrip parse error:', e); + return ''; + } + if (!arr.length) return ''; + + const imgs = arr.slice(0, 3).map(name => { + const safeName = encodeURIComponent(name); + const src = baseUrl + safeName; + return ``; + }).join(''); + + const extra = arr.length > 3 ? `+${arr.length - 3}` : ''; + return `
    ${imgs}${extra}
    `; +} + +/** Safely JSON-encode report object for inline onclick attribute */ +function safeJson(obj) { + return JSON.stringify(obj) + .replace(/&/g, '&') + .replace(/"/g, '"') + .replace(/'/g, ''') + .replace(//g, '>'); +} + +// ================================================================ +// Approve modal +// ================================================================ +function openApproveModal(reportId, reportData) { + document.getElementById('approveReportId').value = reportId; + document.getElementById('approveIncome').value = 0; + document.getElementById('approveDependents').value = 1; + document.getElementById('approveCondition').value = 'tidak_layak'; + document.getElementById('approveEducation').value = 'sd'; + document.getElementById('approveNotes').value = ''; + + const preview = document.getElementById('approveReportPreview'); + const photoPreview = document.getElementById('approvePhotoPreview'); + + if (preview && reportData) { + const data = typeof reportData === 'string' ? JSON.parse(reportData) : reportData; + preview.innerHTML = ` +
    +
    + +
    +
    +
    ${data.head_name || 'β€”'}
    +
    ${data.address || 'β€”'}
    +
    "${truncate(data.description || '', 100)}"
    + ${data.reporter_name ? `
    ${data.reporter_name}
    ` : ''} +
    +
    `; + + // ── TAMPILKAN FOTO BUKTI ────────────────────────────── + if (photoPreview) { + let photosArr = []; + try { + photosArr = typeof data.proof_photos === 'string' ? JSON.parse(data.proof_photos) : (data.proof_photos || []); + } catch(e) { + console.warn('Failed to parse proof_photos:', e); + } + + if (photosArr.length) { + photoPreview.innerHTML = ''; + const rId = reportId; // capture for closure + const strip = PhotoUpload.buildSavedStrip( + photosArr, + 'uploads/reports/', + true, // always removable in admin approve-modal + (filename, wrap) => deleteReportPhoto(rId, filename, wrap) + ); + photoPreview.appendChild(strip); + } else { + photoPreview.innerHTML = '
    Tidak ada foto bukti
    '; + } + } + } + + openModal('approveModal'); +} + +document.getElementById('approveForm')?.addEventListener('submit', async (e) => { + e.preventDefault(); + const id = parseInt(document.getElementById('approveReportId').value); + if (!id) return; + + const body = { + income: parseInt(document.getElementById('approveIncome').value) || 0, + dependents: parseInt(document.getElementById('approveDependents').value) || 1, + house_condition: document.getElementById('approveCondition').value, + education: document.getElementById('approveEducation').value, + land_ownership: 'numpang', + admin_notes: document.getElementById('approveNotes').value.trim() || null, + }; + + showLoading(true); + const r = await ApiPublicReports.approve(id, body); + showLoading(false); + + if (r.ok && r.data?.success) { + closeModal('approveModal'); + showToast('Laporan disetujui. Data rumah ditambahkan ke peta.', 'success', 4000); + loadPendingReports(); + // Refresh map and stats + if (typeof loadAllData === 'function') await loadAllData(); + if (typeof loadStats === 'function') await loadStats(); + updatePendingBadge(); + } else { + showToast(r.data?.message || 'Gagal menyetujui laporan.', 'error'); + } +}); + +// ================================================================ +// Reject modal +// ================================================================ +function openRejectModal(reportId) { + document.getElementById('rejectReportId').value = reportId; + document.getElementById('rejectNotes').value = ''; + openModal('rejectModal'); +} + +document.getElementById('rejectForm')?.addEventListener('submit', async (e) => { + e.preventDefault(); + const id = parseInt(document.getElementById('rejectReportId').value); + if (!id) return; + + const body = { + admin_notes: document.getElementById('rejectNotes').value.trim() || null, + }; + + showLoading(true); + const r = await ApiPublicReports.reject(id, body); + showLoading(false); + + if (r.ok && r.data?.success) { + closeModal('rejectModal'); + showToast('Laporan ditolak.', 'success'); + loadPendingReports(); + if (typeof loadStats === 'function') loadStats(); + updatePendingBadge(); + } else { + showToast(r.data?.message || 'Gagal menolak laporan.', 'error'); + } +}); + +// ================================================================ +// Delete +// ================================================================ +async function deletePublicReport(id) { + if (!confirm('Hapus laporan ini secara permanen? Tindakan ini tidak dapat dibatalkan.')) return; + showLoading(true); + const r = await ApiPublicReports.delete(id); + showLoading(false); + if (r.ok && r.data?.success) { + showToast('Laporan dihapus.', 'success'); + loadPendingReports(); + if (typeof loadStats === 'function') loadStats(); + updatePendingBadge(); + } else { + showToast(r.data?.message || 'Gagal menghapus laporan.', 'error'); + } +} + +// ================================================================ +// Fly to location on map +// ================================================================ +function flyToPublicReport(lat, lng) { + closeModal('adminModal'); + flyTo(parseFloat(lat), parseFloat(lng), 17); + + // Temporary highlight pulse + const highlight = L.circleMarker([lat, lng], { + radius: 20, color: '#d63230', fillColor: '#d63230', + fillOpacity: 0.2, weight: 2.5, + }).addTo(MAP); + + setTimeout(() => { if (MAP.hasLayer(highlight)) MAP.removeLayer(highlight); }, 5000); + showToast('Lokasi laporan ditampilkan di peta.', 'success'); +} + +// ================================================================ +// Delete a single proof photo from a public report +// ================================================================ +async function deleteReportPhoto(reportId, filename, thumbWrap) { + if (!confirm('Hapus foto bukti ini secara permanen?')) return; + + if (thumbWrap) thumbWrap.style.opacity = '0.4'; + + const r = await PhotoUpload.deletePhoto('report', reportId, filename); + + if (r.ok && r.data?.success) { + thumbWrap?.remove(); + showToast('Foto bukti dihapus.', 'success'); + } else { + if (thumbWrap) thumbWrap.style.opacity = '1'; + showToast(r.data?.message || 'Gagal menghapus foto.', 'error'); + } +} + +// ================================================================ +// Expose to global scope +// ================================================================ +window.loadPendingReports = loadPendingReports; +window.openApproveModal = openApproveModal; +window.openRejectModal = openRejectModal; +window.deletePublicReport = deletePublicReport; +window.flyToPublicReport = flyToPublicReport; +window.deleteReportPhoto = deleteReportPhoto; \ No newline at end of file diff --git a/03PovertyMapping/config/bootstrap.php b/03PovertyMapping/config/bootstrap.php new file mode 100644 index 0000000..3851668 --- /dev/null +++ b/03PovertyMapping/config/bootstrap.php @@ -0,0 +1,94 @@ +getMessage() : 'Internal server error'; + Response::error($message, 500); +}); + +// ---- CORS & Security Headers -------------------------------- +header('Content-Type: application/json; charset=utf-8'); +header('X-Content-Type-Options: nosniff'); +header('X-Frame-Options: DENY'); + +if (APP_ENV === 'development') { + header('Access-Control-Allow-Origin: *'); + header('Access-Control-Allow-Methods: GET, POST, OPTIONS'); + header('Access-Control-Allow-Headers: Content-Type'); +} + +$requestMethod = $_SERVER['REQUEST_METHOD'] ?? ''; +if ($requestMethod === 'OPTIONS') { + http_response_code(204); + exit; +} + +ob_start(); + +// ---- Session bootstrap (shared by all APIs) ----------------- +if (session_status() === PHP_SESSION_NONE) { + session_name('webgis_sess'); + session_set_cookie_params([ + 'lifetime' => 0, // until browser closes + 'path' => '/', + 'secure' => false, // set true if using HTTPS + 'httponly' => true, + 'samesite' => 'Lax', + ]); + session_start(); +} + +// ---- Session helper functions -------------------------------- + +/** Return current logged-in user array or null */ +function currentUser(): ?array +{ + if (empty($_SESSION['user_id']) || empty($_SESSION['role'])) { + return null; + } + return [ + 'id' => (int)$_SESSION['user_id'], + 'name' => $_SESSION['name'] ?? '', + 'email' => $_SESSION['email'] ?? '', + 'role' => $_SESSION['role'], + ]; +} + +/** Require authentication β€” returns user or sends 401 */ +function requireAuth(): array +{ + $user = currentUser(); + if (!$user) { + Response::error('Silakan login terlebih dahulu.', 401); + } + return $user; +} + +/** Require admin role β€” returns user or sends 403 */ +function requireAdmin(): array +{ + $user = requireAuth(); + if ($user['role'] !== 'admin') { + Response::error('Akses ditolak. Hanya admin yang dapat melakukan tindakan ini.', 403); + } + return $user; +} \ No newline at end of file diff --git a/03PovertyMapping/config/config.php b/03PovertyMapping/config/config.php new file mode 100644 index 0000000..9a0ac35 --- /dev/null +++ b/03PovertyMapping/config/config.php @@ -0,0 +1,28 @@ + PDO::ERRMODE_EXCEPTION, + PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, + PDO::ATTR_EMULATE_PREPARES => false, + ]); + } + return self::$instance; + } + + /** Prevent cloning / serialisation */ + private function __clone() {} + public function __wakeup(): never { throw new \Exception('Cannot unserialize singleton.'); } +} \ No newline at end of file diff --git a/03PovertyMapping/database/migrate.php b/03PovertyMapping/database/migrate.php new file mode 100644 index 0000000..aafef39 --- /dev/null +++ b/03PovertyMapping/database/migrate.php @@ -0,0 +1,381 @@ + $ok, 'msg' => $msg, 'detail' => $detail]; + if (!$ok) $hasError = true; +} + +// ---- Connect WITHOUT selecting a database first ------------- +try { + $dsn = "mysql:host={$DB_HOST};port={$DB_PORT};charset={$DB_CHARSET}"; + $pdo = new PDO($dsn, $DB_USER, $DB_PASS, [ + PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, + PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, + PDO::ATTR_EMULATE_PREPARES => false, + ]); + step('Connect to MySQL server', true, "{$DB_HOST}:{$DB_PORT}"); +} catch (PDOException $e) { + step('Connect to MySQL server', false, $e->getMessage()); + renderPage($results, true); + exit; +} + +// ---- Create database ---------------------------------------- +try { + $pdo->exec("CREATE DATABASE IF NOT EXISTS `{$DB_NAME}` + CHARACTER SET utf8mb4 + COLLATE utf8mb4_unicode_ci"); + step("Create database `{$DB_NAME}`", true); +} catch (PDOException $e) { + step("Create database `{$DB_NAME}`", false, $e->getMessage()); + renderPage($results, true); + exit; +} + +// ---- Select database ---------------------------------------- +$pdo->exec("USE `{$DB_NAME}`"); +step("USE `{$DB_NAME}`", true); + +// ---- Enable FK checks off for migration --------------------- +$pdo->exec('SET FOREIGN_KEY_CHECKS = 0'); + +// ---- Table definitions (ordered: no FK before parent) ------- +$tables = []; + +// 1 β€” users +$tables['users'] = " +CREATE TABLE IF NOT EXISTS `users` ( + `id` INT UNSIGNED NOT NULL AUTO_INCREMENT, + `name` VARCHAR(150) NOT NULL, + `email` VARCHAR(255) NOT NULL, + `password_hash` VARCHAR(255) NOT NULL, + `role` ENUM('admin','field_officer','viewer') NOT NULL DEFAULT 'viewer', + `is_active` TINYINT(1) NOT NULL DEFAULT 1, + `last_login_at` TIMESTAMP NULL DEFAULT NULL, + `created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, + `updated_at` TIMESTAMP NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (`id`), + UNIQUE KEY `uq_users_email` (`email`), + KEY `idx_users_role` (`role`), + KEY `idx_users_is_active` (`is_active`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci +"; + +// 2 β€” religious_centers +$tables['religious_centers'] = " +CREATE TABLE IF NOT EXISTS `religious_centers` ( + `id` INT UNSIGNED NOT NULL AUTO_INCREMENT, + `name` VARCHAR(255) NOT NULL, + `worship_type` ENUM('masjid','gereja','klenteng','pura','vihara') NOT NULL DEFAULT 'masjid', + `address` TEXT NOT NULL, + `kelurahan` VARCHAR(100) NULL DEFAULT NULL, + `kecamatan` VARCHAR(100) NULL DEFAULT NULL, + `latitude` DECIMAL(10,7) NOT NULL, + `longitude` DECIMAL(10,7) NOT NULL, + `radius` INT UNSIGNED NOT NULL DEFAULT 300, + `contact_person` VARCHAR(150) NULL DEFAULT NULL, + `contact_phone` VARCHAR(20) NULL DEFAULT NULL, + `notes` TEXT NULL DEFAULT NULL, + `is_active` TINYINT(1) NOT NULL DEFAULT 1, + `created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, + `updated_at` TIMESTAMP NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (`id`), + KEY `idx_rc_worship_type` (`worship_type`), + KEY `idx_rc_is_active` (`is_active`), + KEY `idx_rc_location` (`latitude`, `longitude`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci +"; + +// 3 β€” households +$tables['households'] = " +CREATE TABLE IF NOT EXISTS `households` ( + `id` INT UNSIGNED NOT NULL AUTO_INCREMENT, + `rt` VARCHAR(10) NULL DEFAULT NULL, + `rw` VARCHAR(10) NULL DEFAULT NULL, + `kelurahan` VARCHAR(100) NULL DEFAULT NULL, + `kecamatan` VARCHAR(100) NULL DEFAULT NULL, + `full_address` TEXT NOT NULL, + `latitude` DECIMAL(10,7) NOT NULL, + `longitude` DECIMAL(10,7) NOT NULL, + `house_condition` ENUM('layak','tidak_layak') NOT NULL DEFAULT 'layak', + `land_ownership` ENUM('milik','sewa','numpang','lainnya') NOT NULL DEFAULT 'milik', + `house_photos` JSON NULL DEFAULT NULL, + `head_name` VARCHAR(150) NOT NULL, + `head_nik` VARCHAR(16) NULL DEFAULT NULL, + `head_gender` ENUM('male','female') NOT NULL DEFAULT 'male', + `head_date_of_birth` DATE NULL DEFAULT NULL, + `head_education` ENUM('tidak_sekolah','sd','smp','sma','diploma','sarjana','pascasarjana') NOT NULL DEFAULT 'sd', + `head_employment_status` VARCHAR(50) NOT NULL DEFAULT 'unemployed', + `head_job_name` VARCHAR(150) NULL DEFAULT NULL, + `head_institution_name` VARCHAR(200) NULL DEFAULT NULL, + `head_monthly_income` INT UNSIGNED NOT NULL DEFAULT 0, + `poverty_score` TINYINT UNSIGNED NOT NULL DEFAULT 0, + `poverty_status` ENUM('terdata','rentan_miskin','miskin','sangat_miskin') NOT NULL DEFAULT 'terdata', + `aid_status` ENUM('not_yet','received') NOT NULL DEFAULT 'not_yet', + `managing_center_id` INT UNSIGNED NULL DEFAULT NULL, + `notes` TEXT NULL DEFAULT NULL, + `is_active` TINYINT(1) NOT NULL DEFAULT 1, + `created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, + `updated_at` TIMESTAMP NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (`id`), + KEY `idx_hh_poverty_status` (`poverty_status`), + KEY `idx_hh_aid_status` (`aid_status`), + KEY `idx_hh_house_condition` (`house_condition`), + KEY `idx_hh_managing_center` (`managing_center_id`), + KEY `idx_hh_is_active` (`is_active`), + KEY `idx_hh_location` (`latitude`, `longitude`), + KEY `idx_hh_head_nik` (`head_nik`), + KEY `idx_hh_created_at` (`created_at`), + CONSTRAINT `fk_hh_managing_center` + FOREIGN KEY (`managing_center_id`) REFERENCES `religious_centers` (`id`) + ON DELETE SET NULL ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci +"; + +// 4 β€” household_members +$tables['household_members'] = " +CREATE TABLE IF NOT EXISTS `household_members` ( + `id` INT UNSIGNED NOT NULL AUTO_INCREMENT, + `household_id` INT UNSIGNED NOT NULL, + `name` VARCHAR(150) NOT NULL, + `nik` VARCHAR(16) NULL DEFAULT NULL, + `gender` ENUM('male','female') NOT NULL DEFAULT 'male', + `date_of_birth` DATE NULL DEFAULT NULL, + `education` ENUM('tidak_sekolah','sd','smp','sma','diploma','sarjana','pascasarjana') NOT NULL DEFAULT 'sd', + `relationship` VARCHAR(50) NOT NULL DEFAULT 'lainnya', + `employment_status` VARCHAR(50) NOT NULL DEFAULT 'unemployed', + `job_name` VARCHAR(150) NULL DEFAULT NULL, + `institution_name` VARCHAR(200) NULL DEFAULT NULL, + `monthly_income` INT UNSIGNED NOT NULL DEFAULT 0, + `created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, + PRIMARY KEY (`id`), + KEY `idx_hm_household_id` (`household_id`), + KEY `idx_hm_nik` (`nik`), + CONSTRAINT `fk_hm_household` + FOREIGN KEY (`household_id`) REFERENCES `households` (`id`) + ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci +"; + +// 5 β€” aid_history +$tables['aid_history'] = " +CREATE TABLE IF NOT EXISTS `aid_history` ( + `id` INT UNSIGNED NOT NULL AUTO_INCREMENT, + `household_id` INT UNSIGNED NOT NULL, + `center_id` INT UNSIGNED NULL DEFAULT NULL, + `aid_type` ENUM('sembako','pendanaan','pelatihan','sembako_pendanaan','sembako_pelatihan','pendanaan_pelatihan','lengkap') NOT NULL, + `aid_date` DATE NOT NULL, + `amount` INT UNSIGNED NULL DEFAULT NULL, + `description` TEXT NULL DEFAULT NULL, + `given_by` INT UNSIGNED NULL DEFAULT NULL, + `created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, + `updated_at` TIMESTAMP NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (`id`), + KEY `idx_ah_household_id` (`household_id`), + KEY `idx_ah_center_id` (`center_id`), + KEY `idx_ah_aid_date` (`aid_date`), + KEY `idx_ah_aid_type` (`aid_type`), + CONSTRAINT `fk_ah_household` + FOREIGN KEY (`household_id`) REFERENCES `households` (`id`) + ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT `fk_ah_center` + FOREIGN KEY (`center_id`) REFERENCES `religious_centers` (`id`) + ON DELETE SET NULL ON UPDATE CASCADE, + CONSTRAINT `fk_ah_given_by` + FOREIGN KEY (`given_by`) REFERENCES `users` (`id`) + ON DELETE SET NULL ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci +"; + +// 6 β€” emergency_reports +$tables['emergency_reports'] = " +CREATE TABLE IF NOT EXISTS `emergency_reports` ( + `id` INT UNSIGNED NOT NULL AUTO_INCREMENT, + `household_id` INT UNSIGNED NOT NULL, + `type` ENUM('sakit','kecelakaan','bencana','kehilangan_pekerjaan','kematian','lainnya') NOT NULL, + `severity` ENUM('ringan','sedang','berat','kritis') NOT NULL DEFAULT 'ringan', + `description` TEXT NOT NULL, + `status` ENUM('open','in_progress','resolved','closed') NOT NULL DEFAULT 'open', + `resolved_at` TIMESTAMP NULL DEFAULT NULL, + `created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, + `updated_at` TIMESTAMP NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (`id`), + KEY `idx_er_household_id` (`household_id`), + KEY `idx_er_status` (`status`), + KEY `idx_er_severity` (`severity`), + KEY `idx_er_created_at` (`created_at`), + CONSTRAINT `fk_er_household` + FOREIGN KEY (`household_id`) REFERENCES `households` (`id`) + ON DELETE CASCADE ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci +"; + +// 7 β€” public_reports +$tables['public_reports'] = " +CREATE TABLE IF NOT EXISTS `public_reports` ( + `id` INT UNSIGNED NOT NULL AUTO_INCREMENT, + `reporter_name` VARCHAR(150) NOT NULL, + `reporter_phone` VARCHAR(20) NOT NULL, + `rt` VARCHAR(10) NOT NULL DEFAULT '', + `rw` VARCHAR(10) NOT NULL DEFAULT '', + `head_name` VARCHAR(150) NOT NULL, + `address` TEXT NOT NULL, + `kelurahan` VARCHAR(100) NOT NULL, + `kecamatan` VARCHAR(100) NOT NULL, + `latitude` DECIMAL(10,7) NOT NULL, + `longitude` DECIMAL(10,7) NOT NULL, + `description` TEXT NOT NULL, + `severity` ENUM('ringan','sedang','berat','kritis') NOT NULL DEFAULT 'ringan', + `urgent_need` TEXT NULL DEFAULT NULL, + `proof_photos` JSON NULL DEFAULT NULL, + `status` ENUM('pending','approved','rejected') NOT NULL DEFAULT 'pending', + `admin_notes` TEXT NULL DEFAULT NULL, + `reviewed_at` TIMESTAMP NULL DEFAULT NULL, + `converted_household_id` INT UNSIGNED NULL DEFAULT NULL, + `ip_address` VARCHAR(45) NOT NULL DEFAULT '', + `created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, + `updated_at` TIMESTAMP NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (`id`), + KEY `idx_pr_status` (`status`), + KEY `idx_pr_severity` (`severity`), + KEY `idx_pr_ip_address` (`ip_address`), + KEY `idx_pr_created_at` (`created_at`), + KEY `idx_pr_converted` (`converted_household_id`), + CONSTRAINT `fk_pr_converted_household` + FOREIGN KEY (`converted_household_id`) REFERENCES `households` (`id`) + ON DELETE SET NULL ON UPDATE CASCADE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci +"; + +// 8 β€” audit_logs +$tables['audit_logs'] = " +CREATE TABLE IF NOT EXISTS `audit_logs` ( + `id` INT UNSIGNED NOT NULL AUTO_INCREMENT, + `action` VARCHAR(100) NOT NULL, + `table_name` VARCHAR(100) NOT NULL, + `record_id` INT UNSIGNED NULL DEFAULT NULL, + `old_values` JSON NULL DEFAULT NULL, + `new_values` JSON NULL DEFAULT NULL, + `ip_address` VARCHAR(45) NOT NULL DEFAULT '', + `user_agent` TEXT NULL DEFAULT NULL, + `created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, + PRIMARY KEY (`id`), + KEY `idx_al_table_name` (`table_name`), + KEY `idx_al_record_id` (`record_id`), + KEY `idx_al_action` (`action`), + KEY `idx_al_created_at` (`created_at`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci +"; + +// ---- Execute each table ------------------------------------- +foreach ($tables as $tableName => $sql) { + try { + $pdo->exec($sql); + step("CREATE TABLE IF NOT EXISTS `{$tableName}`", true); + } catch (PDOException $e) { + step("CREATE TABLE IF NOT EXISTS `{$tableName}`", false, $e->getMessage()); + } +} + +// ---- Re-enable FK checks ------------------------------------ +$pdo->exec('SET FOREIGN_KEY_CHECKS = 1'); +step('Re-enable FOREIGN_KEY_CHECKS', true); + +// ---- Verify: count created tables --------------------------- +try { + $count = (int)$pdo->query("SELECT COUNT(*) FROM information_schema.TABLES + WHERE TABLE_SCHEMA = '{$DB_NAME}'")->fetchColumn(); + step("Verify: {$count} table(s) exist in `{$DB_NAME}`", $count >= 8, + $count < 8 ? "Expected at least 8 tables." : ""); +} catch (PDOException $e) { + step('Verify table count', false, $e->getMessage()); +} + +renderPage($results, $hasError); + +// ---- Render HTML -------------------------------------------- +function renderPage(array $results, bool $hasError): void +{ + $title = $hasError ? '⚠ Migration completed with errors' : 'βœ… Migration successful'; + $color = $hasError ? '#c0392b' : '#27ae60'; + ?> + + + + + +DB Migration β€” poverty_mapping + + + +
    +
    +

    +

    Database: poverty_mapping  | 

    +
    +
    + +
    + +
    + + +
    + +
    +
    + +
    + +
    + + += 50) +('001','001','Batu Layang','Pontianak Utara','Jl. Khatulistiwa Gg. 3 No. 5', -0.0315000, 109.3260000, 'tidak_layak','numpang', 'Hasan Basri', '6171010101800001','male', '1980-01-15','sd', 'unemployed', NULL, 350000, 72, 'sangat_miskin','not_yet', 1, 'Tinggal menumpang di tanah orang lain'), +('002','001','Batu Layang','Pontianak Utara','Jl. Khatulistiwa Gg. 5 No. 2', -0.0320000, 109.3270000, 'tidak_layak','numpang', 'Amiruddin', '6171010202790002','male', '1979-02-20','tidak_sekolah','unemployed', NULL, 280000, 85, 'sangat_miskin','not_yet', 1, NULL), +('001','002','Tanjung Hulu','Pontianak Timur','Jl. Pahlawan Dalam No. 9', -0.0360000, 109.3290000, 'tidak_layak','sewa', 'Nurhayati', '6171020303820003','female','1982-03-03','sd', 'unemployed', NULL, 420000, 68, 'sangat_miskin','received', 2, 'Ibu tunggal, 5 anak'), + +-- miskin (score 30-49) +('003','001','Batu Layang','Pontianak Utara','Jl. Khatulistiwa Gg. 2 No. 11', -0.0305000, 109.3255000, 'tidak_layak','milik', 'Ruslan Daeng', '6171010404780004','male', '1978-04-10','smp', 'daily_labor', 'Buruh harian', 850000, 45, 'miskin', 'not_yet', 1, NULL), +('002','002','Tanjung Hulu','Pontianak Timur','Jl. Pahlawan Raya No. 7', -0.0345000, 109.3275000, 'tidak_layak','sewa', 'Daeng Tawing', '6171020505750005','male', '1975-05-05','sd', 'daily_labor', 'Kuli bangunan',950000, 42, 'miskin', 'received', 2, NULL), +('001','001','Benuamelayu Darat','Pontianak Selatan','Jl. Katedral Gg. 3 No. 4', -0.0415000, 109.3310000, 'tidak_layak','numpang','Marlina Sari', '6171030606850006','female','1985-06-06','smp', 'unemployed', NULL, 600000, 50, 'miskin', 'not_yet', 3, 'Suami meninggal 2023'), +('002','003','Siantan Hilir','Pontianak Utara','Jl. Gusti Situt Mahmud No. 12', -0.0360000, 109.3190000, 'tidak_layak','sewa', 'Wahyu Prasetyo', '6171040707900007','male', '1990-07-07','smp', 'daily_labor', 'Tukang becak', 900000, 38, 'miskin', 'received', 4, NULL), + +-- rentan_miskin (score 15-29) +('003','002','Siantan Hilir','Pontianak Utara','Jl. Bodhisattva Gg. 2 No. 8', -0.0370000, 109.3210000, 'layak', 'sewa', 'Syamsuddin', '6171030808880008','male', '1988-08-08','sma', 'self_employed','Pedagang kaki lima',1200000, 25,'rentan_miskin','not_yet', 4, NULL), +('002','001','Batu Layang','Pontianak Utara','Jl. Khatulistiwa Gg. 8 No. 6', -0.0310000, 109.3265000, 'layak', 'milik', 'Rahma Wati', '6171010909870009','female','1987-09-09','sma', 'self_employed','Warung kecil', 1500000, 20,'rentan_miskin','not_yet', 1, NULL), +('003','003','Tanjung Hulu','Pontianak Timur','Jl. Hertasning No. 22', -0.0355000, 109.3285000, 'layak', 'sewa', 'Arif Rahman', '6171021010850010','male', '1985-10-10','sma', 'employee', 'Satpam', 1800000, 18,'rentan_miskin','received', 2, NULL), +('001','004','Tanjungpura','Pontianak Barat','Jl. Tanjungpura Gg. 3 No. 9', -0.0440000, 109.3360000, 'layak', 'sewa', 'Dewi Sartika', '6171041111920011','female','1992-11-11','sma', 'employee', 'Kasir', 1600000, 22,'rentan_miskin','not_yet', 5, NULL), + +-- terdata (score < 15) +('001','001','Benuamelayu Darat','Pontianak Selatan','Jl. Katedral Raya No. 3', -0.0425000, 109.3305000, 'layak', 'milik', 'Eko Setiawan', '6171031212800012','male', '1980-12-12','sma', 'employee', 'Pegawai swasta',2500000, 8, 'terdata', 'not_yet', 3, NULL), +('002','003','Tanjung Hulu','Pontianak Timur','Jl. Pahlawan Baru No. 15', -0.0340000, 109.3270000, 'layak', 'milik', 'Indah Permata', '6171020101930013','female','1993-01-01','diploma', 'employee', 'Perawat', 2800000, 5, 'terdata', 'not_yet', 2, NULL), +('001','002','Siantan Hilir','Pontianak Utara','Jl. Bodhisattva No. 4', -0.0380000, 109.3220000, 'layak', 'milik', 'Firmansyah', '6171030202820014','male', '1982-02-02','sarjana', 'employee', 'Guru SMP', 3200000, 3, 'terdata', 'not_yet', 4, NULL), +('003','001','Tanjungpura','Pontianak Barat','Jl. Tri Dharma No. 20', -0.0460000, 109.3340000, 'layak', 'milik', 'Sari Bulan', '6171040303850015','female','1985-03-03','sarjana', 'employee', 'Bidan', 3500000, 2, 'terdata', 'not_yet', 5, NULL); + +-- ============================================================ +-- 4. HOUSEHOLD MEMBERS (anggota keluarga) +-- ============================================================ +INSERT INTO `household_members` + (`household_id`,`name`,`nik`,`gender`,`date_of_birth`,`education`,`relationship`,`employment_status`,`monthly_income`) VALUES +-- Household 1 (Hasan Basri β€” sangat_miskin) +(1, 'Salmah', '6171010101820101', 'female', '1982-03-10', 'sd', 'istri', 'unemployed', 0), +(1, 'Muhammad Rizki', '6171010101050102', 'male', '2005-06-15', 'smp', 'anak', 'unemployed', 0), +(1, 'Nur Aisyah', '6171010101080103', 'female', '2008-09-20', 'sd', 'anak', 'unemployed', 0), + +-- Household 2 (Amiruddin β€” sangat_miskin) +(2, 'Rohani', '6171010202810201', 'female', '1981-05-12', 'tidak_sekolah','istri', 'unemployed', 0), +(2, 'Akbar', '6171010202030202', 'male', '2003-08-25', 'sd', 'anak', 'daily_labor', 500000), +(2, 'Mariam', '6171010202060203', 'female', '2006-11-30', 'sd', 'anak', 'unemployed', 0), +(2, 'Sulastri', '6171010202100204', 'female', '2010-02-14', 'sd', 'anak', 'unemployed', 0), +(2, 'Hendra', '6171010202130205', 'male', '2013-07-07', 'sd', 'anak', 'unemployed', 0), + +-- Household 3 (Nurhayati β€” sangat_miskin, single mother) +(3, 'Fitri', '6171020303050301', 'female', '2005-01-10', 'smp', 'anak', 'unemployed', 0), +(3, 'Fathur', '6171020303080302', 'male', '2008-04-22', 'sd', 'anak', 'unemployed', 0), +(3, 'Zulaikha', '6171020303110303', 'female', '2011-09-05', 'sd', 'anak', 'unemployed', 0), +(3, 'Ilham', '6171020303140304', 'male', '2014-12-18', 'sd', 'anak', 'unemployed', 0), +(3, 'Rania', '6171020303180305', 'female', '2018-03-28', 'sd', 'anak', 'unemployed', 0), + +-- Household 4 (Ruslan Daeng β€” miskin) +(4, 'Hasnah', '6171010404810401', 'female', '1981-07-14', 'sd', 'istri', 'unemployed', 0), +(4, 'Bagas', '6171010404030402', 'male', '2003-10-25', 'smp', 'anak', 'daily_labor', 600000), +(4, 'Nabila', '6171010404060403', 'female', '2006-02-08', 'smp', 'anak', 'unemployed', 0), + +-- Household 8 (Syamsuddin β€” rentan_miskin) +(8, 'Sri Wahyuni', '6171030808900801', 'female', '1990-04-11', 'sma', 'istri', 'self_employed',800000), +(8, 'Alif', '6171030808150802', 'male', '2015-08-19', 'sd', 'anak', 'unemployed', 0), + +-- Household 12 (Eko Setiawan β€” terdata) +(12,'Lina Karlina', '6171031212820121', 'female', '1982-06-30', 'sma', 'istri', 'employee', 1800000), +(12,'Kevin Eko', '6171031212100122', 'male', '2010-11-11', 'sd', 'anak', 'unemployed', 0); + +-- ============================================================ +-- 5. AID HISTORY (bantuan untuk beberapa rumah tangga) +-- ============================================================ +INSERT INTO `aid_history` + (`household_id`,`center_id`,`aid_type`,`aid_date`,`amount`,`description`,`given_by`) VALUES +(3, 2, 'sembako', '2025-01-15', NULL, 'Paket sembako Ramadan 2025', 1), +(3, 2, 'pendanaan', '2025-03-20', 500000, 'Bantuan biaya sekolah anak', 2), +(5, 2, 'sembako', '2025-02-10', NULL, 'Paket sembako bulanan Februari', 2), +(7, 4, 'pelatihan', '2025-04-05', NULL, 'Pelatihan keterampilan menjahit', 3), +(10, 2, 'sembako_pendanaan', '2025-05-01', 750000, 'Bantuan kombinasi lebaran', 1), +(1, 1, 'sembako', '2025-06-01', NULL, 'Paket sembako Juni', 2), +(2, 1, 'lengkap', '2025-01-10', 1000000, 'Bantuan lengkap awal tahun', 1), +(4, 1, 'pendanaan', '2025-06-05', 300000, 'Subsidi biaya pengobatan', 3); + +-- ============================================================ +-- 6. EMERGENCY REPORTS (laporan darurat) +-- ============================================================ +INSERT INTO `emergency_reports` + (`household_id`,`type`,`severity`,`description`,`status`,`resolved_at`) VALUES +(2, 'sakit', 'kritis', 'Kepala keluarga menderita stroke, butuh bantuan biaya pengobatan segera.', 'open', NULL), +(3, 'kehilangan_pekerjaan', 'berat', 'Ibu tunggal kehilangan sumber pendapatan akibat warung tutup karena banjir.', 'in_progress', NULL), +(1, 'bencana', 'sedang', 'Atap rumah bocor parah akibat hujan deras, 3 anak tinggal di kondisi tidak layak.', 'resolved', '2025-05-20 10:00:00'), +(6, 'kematian', 'berat', 'Suami meninggal mendadak, istri tidak memiliki penghasilan.', 'resolved', '2025-03-15 14:30:00'); + +-- ============================================================ +-- 7. PUBLIC REPORTS (laporan dari masyarakat Pontianak) +-- ============================================================ +INSERT INTO `public_reports` + (`reporter_name`,`reporter_phone`,`rt`,`rw`,`head_name`,`address`,`kelurahan`,`kecamatan`, + `latitude`,`longitude`,`description`,`severity`,`urgent_need`,`proof_photos`, + `status`,`admin_notes`,`reviewed_at`,`converted_household_id`,`ip_address`) VALUES + +('Ahmad Fauzi', '081234567890', '005','002', + 'Pak Dullah', + 'Jl. Khatulistiwa Gg. 3 No. 7', 'Batu Layang', 'Pontianak Utara', + -0.0325000, 109.3265000, + 'Keluarga ini tinggal di gubuk reyot dengan 6 anak. Tidak ada pekerjaan tetap dan sering kelaparan. Butuh bantuan segera.', + 'kritis', 'Sembako dan biaya renovasi rumah', + '["reports_1_abc123.jpg"]', + 'approved', 'Data sudah diverifikasi dan diinput sebagai rumah tangga baru.', + '2025-04-10 09:30:00', NULL, '192.168.1.10'), + +('Dewi Lestari', '082345678901', '001','003', + 'Ibu Saodah', + 'Jl. Tanjungpura Gg. 5 No. 2', 'Tanjungpura', 'Pontianak Barat', + -0.0445000, 109.3355000, + 'Nenek tua hidup sebatang kara, tidak punya penghasilan. Rumah hampir roboh.', + 'berat', 'Bantuan bahan makanan dan perbaikan rumah', + '["reports_2_def456.jpg","reports_2_ghi789.jpg"]', + 'pending', NULL, NULL, NULL, '192.168.1.20'), + +('Rudi Hermawan', '083456789012', '003','001', + 'Keluarga Pak Samson', + 'Jl. Pahlawan Gg. 2 No. 8', 'Tanjung Hulu', 'Pontianak Timur', + -0.0355000, 109.3280000, + 'Keluarga dengan 4 anak kecil, penghasilan tidak mencukupi untuk makan sehari-hari.', + 'sedang', 'Bantuan sembako rutin', + NULL, + 'rejected', 'Data tidak dapat diverifikasi, koordinat tidak sesuai lokasi.', + '2025-05-01 14:00:00', NULL, '10.0.0.5'); + +-- ============================================================ +-- 8. AUDIT LOGS (sample entries) +-- ============================================================ +INSERT INTO `audit_logs` + (`action`,`table_name`,`record_id`,`old_values`,`new_values`,`ip_address`,`user_agent`) VALUES +('auth.login', 'users', 1, NULL, '{"email":"admin@povertymapping.id"}', '127.0.0.1', 'Mozilla/5.0'), +('Tambah Rumah', 'households', 1, NULL, '{"head_name":"Hasan Basri"}', '127.0.0.1', 'Mozilla/5.0'), +('Tambah Rumah', 'households', 2, NULL, '{"head_name":"Amiruddin"}', '127.0.0.1', 'Mozilla/5.0'), +('Catat Bantuan', 'aid_history', 1, NULL, '{"aid_type":"sembako","amount":null}', '127.0.0.1', 'Mozilla/5.0'), +('auth.login', 'users', 2, NULL, '{"email":"budi@povertymapping.id"}', '192.168.1.1', 'Mozilla/5.0'), +('Tambah Laporan Darurat','emergency_reports',1,NULL,'{"type":"sakit","severity":"kritis"}','192.168.1.1','Mozilla/5.0'); + +SET FOREIGN_KEY_CHECKS = 1; + +-- ============================================================ +-- VERIFIKASI (Cek jumlah data) +-- ============================================================ +SELECT 'users' AS `table`, COUNT(*) AS row_count FROM users +UNION ALL SELECT 'religious_centers', COUNT(*) FROM religious_centers +UNION ALL SELECT 'households', COUNT(*) FROM households +UNION ALL SELECT 'household_members', COUNT(*) FROM household_members +UNION ALL SELECT 'aid_history', COUNT(*) FROM aid_history +UNION ALL SELECT 'emergency_reports', COUNT(*) FROM emergency_reports +UNION ALL SELECT 'public_reports', COUNT(*) FROM public_reports +UNION ALL SELECT 'audit_logs', COUNT(*) FROM audit_logs; \ No newline at end of file diff --git a/03PovertyMapping/database/structure.sql b/03PovertyMapping/database/structure.sql new file mode 100644 index 0000000..0af42d0 --- /dev/null +++ b/03PovertyMapping/database/structure.sql @@ -0,0 +1,326 @@ +-- ============================================================ +-- structure.sql β€” Full Schema for poverty_mapping +-- Database: poverty_mapping +-- Charset: utf8mb4 / utf8mb4_unicode_ci +-- Generated by: DB Reconstruction from source code analysis +-- ============================================================ + +SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; +SET time_zone = "+07:00"; + +-- ============================================================ +-- CREATE DATABASE +-- ============================================================ +CREATE DATABASE IF NOT EXISTS `poverty_mapping` + CHARACTER SET utf8mb4 + COLLATE utf8mb4_unicode_ci; + +USE `poverty_mapping`; + +-- ============================================================ +-- TABLE 1: users +-- Source: api/auth/check.php β€” SELECT id, name, email, +-- password_hash, role, is_active, last_login_at +-- ============================================================ +CREATE TABLE IF NOT EXISTS `users` ( + `id` INT UNSIGNED NOT NULL AUTO_INCREMENT, + `name` VARCHAR(150) NOT NULL, + `email` VARCHAR(255) NOT NULL, + `password_hash` VARCHAR(255) NOT NULL, + `role` ENUM('admin','field_officer','viewer') NOT NULL DEFAULT 'viewer', + `is_active` TINYINT(1) NOT NULL DEFAULT 1, + `last_login_at` TIMESTAMP NULL DEFAULT NULL, + `created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, + `updated_at` TIMESTAMP NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (`id`), + UNIQUE KEY `uq_users_email` (`email`), + KEY `idx_users_role` (`role`), + KEY `idx_users_is_active` (`is_active`) +) ENGINE=InnoDB + DEFAULT CHARSET=utf8mb4 + COLLATE=utf8mb4_unicode_ci; + +-- ============================================================ +-- TABLE 2: religious_centers +-- Source: api/centers/index.php β€” worship_type, address, +-- kelurahan, kecamatan, latitude, longitude, radius, +-- contact_person, contact_phone, notes, is_active +-- ============================================================ +CREATE TABLE IF NOT EXISTS `religious_centers` ( + `id` INT UNSIGNED NOT NULL AUTO_INCREMENT, + `name` VARCHAR(255) NOT NULL, + `worship_type` ENUM('masjid','gereja','klenteng','pura','vihara') NOT NULL DEFAULT 'masjid', + `address` TEXT NOT NULL, + `kelurahan` VARCHAR(100) NULL DEFAULT NULL, + `kecamatan` VARCHAR(100) NULL DEFAULT NULL, + `latitude` DECIMAL(10,7) NOT NULL, + `longitude` DECIMAL(10,7) NOT NULL, + `radius` INT UNSIGNED NOT NULL DEFAULT 300 COMMENT 'Coverage radius in meters', + `contact_person` VARCHAR(150) NULL DEFAULT NULL, + `contact_phone` VARCHAR(20) NULL DEFAULT NULL, + `notes` TEXT NULL DEFAULT NULL, + `is_active` TINYINT(1) NOT NULL DEFAULT 1, + `created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, + `updated_at` TIMESTAMP NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (`id`), + KEY `idx_rc_worship_type` (`worship_type`), + KEY `idx_rc_is_active` (`is_active`), + KEY `idx_rc_location` (`latitude`, `longitude`) +) ENGINE=InnoDB + DEFAULT CHARSET=utf8mb4 + COLLATE=utf8mb4_unicode_ci; + +-- ============================================================ +-- TABLE 3: households +-- Source: api/houses/index.php β€” the main data table. +-- Columns verified from INSERT, UPDATE, SELECT queries. +-- ============================================================ +CREATE TABLE IF NOT EXISTS `households` ( + `id` INT UNSIGNED NOT NULL AUTO_INCREMENT, + + -- Location (administrative) + `rt` VARCHAR(10) NULL DEFAULT NULL, + `rw` VARCHAR(10) NULL DEFAULT NULL, + `kelurahan` VARCHAR(100) NULL DEFAULT NULL, + `kecamatan` VARCHAR(100) NULL DEFAULT NULL, + `full_address` TEXT NOT NULL, + + -- Spatial coordinates + `latitude` DECIMAL(10,7) NOT NULL, + `longitude` DECIMAL(10,7) NOT NULL, + + -- House characteristics + `house_condition` ENUM('layak','tidak_layak') NOT NULL DEFAULT 'layak', + `land_ownership` ENUM('milik','sewa','numpang','lainnya') NOT NULL DEFAULT 'milik', + `house_photos` JSON NULL DEFAULT NULL COMMENT 'JSON array of photo filenames', + + -- Household head info + `head_name` VARCHAR(150) NOT NULL, + `head_nik` VARCHAR(16) NULL DEFAULT NULL, + `head_gender` ENUM('male','female') NOT NULL DEFAULT 'male', + `head_date_of_birth` DATE NULL DEFAULT NULL, + `head_education` ENUM('tidak_sekolah','sd','smp','sma','diploma','sarjana','pascasarjana') NOT NULL DEFAULT 'sd', + `head_employment_status` VARCHAR(50) NOT NULL DEFAULT 'unemployed', + `head_job_name` VARCHAR(150) NULL DEFAULT NULL, + `head_institution_name` VARCHAR(200) NULL DEFAULT NULL, + `head_monthly_income` INT UNSIGNED NOT NULL DEFAULT 0, + + -- Poverty assessment + `poverty_score` TINYINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '0-100 poverty score', + `poverty_status` ENUM('terdata','rentan_miskin','miskin','sangat_miskin') NOT NULL DEFAULT 'terdata', + + -- Aid tracking + `aid_status` ENUM('not_yet','received') NOT NULL DEFAULT 'not_yet', + + -- Relations + `managing_center_id` INT UNSIGNED NULL DEFAULT NULL, + + -- Meta + `notes` TEXT NULL DEFAULT NULL, + `is_active` TINYINT(1) NOT NULL DEFAULT 1, + `created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, + `updated_at` TIMESTAMP NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP, + + PRIMARY KEY (`id`), + KEY `idx_hh_poverty_status` (`poverty_status`), + KEY `idx_hh_aid_status` (`aid_status`), + KEY `idx_hh_house_condition` (`house_condition`), + KEY `idx_hh_managing_center` (`managing_center_id`), + KEY `idx_hh_is_active` (`is_active`), + KEY `idx_hh_location` (`latitude`, `longitude`), + KEY `idx_hh_head_nik` (`head_nik`), + KEY `idx_hh_created_at` (`created_at`), + CONSTRAINT `fk_hh_managing_center` + FOREIGN KEY (`managing_center_id`) + REFERENCES `religious_centers` (`id`) + ON DELETE SET NULL + ON UPDATE CASCADE +) ENGINE=InnoDB + DEFAULT CHARSET=utf8mb4 + COLLATE=utf8mb4_unicode_ci; + +-- ============================================================ +-- TABLE 4: household_members +-- Source: api/houses/index.php β€” saveMembers() function & +-- SELECT * FROM household_members in SHOW action. +-- Stats: SELECT COUNT(*) FROM household_members +-- ============================================================ +CREATE TABLE IF NOT EXISTS `household_members` ( + `id` INT UNSIGNED NOT NULL AUTO_INCREMENT, + `household_id` INT UNSIGNED NOT NULL, + `name` VARCHAR(150) NOT NULL, + `nik` VARCHAR(16) NULL DEFAULT NULL, + `gender` ENUM('male','female') NOT NULL DEFAULT 'male', + `date_of_birth` DATE NULL DEFAULT NULL, + `education` ENUM('tidak_sekolah','sd','smp','sma','diploma','sarjana','pascasarjana') NOT NULL DEFAULT 'sd', + `relationship` VARCHAR(50) NOT NULL DEFAULT 'lainnya' + COMMENT 'e.g. suami,istri,anak,orang_tua,lainnya', + `employment_status` VARCHAR(50) NOT NULL DEFAULT 'unemployed', + `job_name` VARCHAR(150) NULL DEFAULT NULL, + `institution_name` VARCHAR(200) NULL DEFAULT NULL, + `monthly_income` INT UNSIGNED NOT NULL DEFAULT 0, + `created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, + PRIMARY KEY (`id`), + KEY `idx_hm_household_id` (`household_id`), + KEY `idx_hm_nik` (`nik`), + CONSTRAINT `fk_hm_household` + FOREIGN KEY (`household_id`) + REFERENCES `households` (`id`) + ON DELETE CASCADE + ON UPDATE CASCADE +) ENGINE=InnoDB + DEFAULT CHARSET=utf8mb4 + COLLATE=utf8mb4_unicode_ci; + +-- ============================================================ +-- TABLE 5: aid_history +-- Source: api/aid/index.php β€” INSERT/UPDATE/SELECT queries. +-- Columns: household_id, center_id, aid_type, aid_date, +-- amount, description, given_by +-- ============================================================ +CREATE TABLE IF NOT EXISTS `aid_history` ( + `id` INT UNSIGNED NOT NULL AUTO_INCREMENT, + `household_id` INT UNSIGNED NOT NULL, + `center_id` INT UNSIGNED NULL DEFAULT NULL, + `aid_type` ENUM( + 'sembako', + 'pendanaan', + 'pelatihan', + 'sembako_pendanaan', + 'sembako_pelatihan', + 'pendanaan_pelatihan', + 'lengkap' + ) NOT NULL, + `aid_date` DATE NOT NULL, + `amount` INT UNSIGNED NULL DEFAULT NULL COMMENT 'Monetary value in IDR (optional)', + `description` TEXT NULL DEFAULT NULL COMMENT 'Notes / keterangan bantuan', + `given_by` INT UNSIGNED NULL DEFAULT NULL COMMENT 'FK to users.id (who recorded the aid)', + `created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, + `updated_at` TIMESTAMP NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (`id`), + KEY `idx_ah_household_id` (`household_id`), + KEY `idx_ah_center_id` (`center_id`), + KEY `idx_ah_aid_date` (`aid_date`), + KEY `idx_ah_aid_type` (`aid_type`), + CONSTRAINT `fk_ah_household` + FOREIGN KEY (`household_id`) + REFERENCES `households` (`id`) + ON DELETE CASCADE + ON UPDATE CASCADE, + CONSTRAINT `fk_ah_center` + FOREIGN KEY (`center_id`) + REFERENCES `religious_centers` (`id`) + ON DELETE SET NULL + ON UPDATE CASCADE, + CONSTRAINT `fk_ah_given_by` + FOREIGN KEY (`given_by`) + REFERENCES `users` (`id`) + ON DELETE SET NULL + ON UPDATE CASCADE +) ENGINE=InnoDB + DEFAULT CHARSET=utf8mb4 + COLLATE=utf8mb4_unicode_ci; + +-- ============================================================ +-- TABLE 6: emergency_reports +-- Source: api/reports/index.php β€” INSERT, UPDATE, SELECT. +-- Columns: household_id, type, severity, description, +-- status, resolved_at +-- ============================================================ +CREATE TABLE IF NOT EXISTS `emergency_reports` ( + `id` INT UNSIGNED NOT NULL AUTO_INCREMENT, + `household_id` INT UNSIGNED NOT NULL, + `type` ENUM('sakit','kecelakaan','bencana','kehilangan_pekerjaan','kematian','lainnya') NOT NULL, + `severity` ENUM('ringan','sedang','berat','kritis') NOT NULL DEFAULT 'ringan', + `description` TEXT NOT NULL, + `status` ENUM('open','in_progress','resolved','closed') NOT NULL DEFAULT 'open', + `resolved_at` TIMESTAMP NULL DEFAULT NULL, + `created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, + `updated_at` TIMESTAMP NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (`id`), + KEY `idx_er_household_id` (`household_id`), + KEY `idx_er_status` (`status`), + KEY `idx_er_severity` (`severity`), + KEY `idx_er_created_at` (`created_at`), + CONSTRAINT `fk_er_household` + FOREIGN KEY (`household_id`) + REFERENCES `households` (`id`) + ON DELETE CASCADE + ON UPDATE CASCADE +) ENGINE=InnoDB + DEFAULT CHARSET=utf8mb4 + COLLATE=utf8mb4_unicode_ci; + +-- ============================================================ +-- TABLE 7: public_reports +-- Source: api/public/report.php β€” INSERT, SELECT, UPDATE. +-- Columns: reporter_name, reporter_phone, rt, rw, +-- head_name, address, kelurahan, kecamatan, +-- latitude, longitude, description, severity, +-- urgent_need, status, proof_photos, +-- ip_address, converted_household_id, +-- admin_notes, reviewed_at +-- ============================================================ +CREATE TABLE IF NOT EXISTS `public_reports` ( + `id` INT UNSIGNED NOT NULL AUTO_INCREMENT, + `reporter_name` VARCHAR(150) NOT NULL, + `reporter_phone` VARCHAR(20) NOT NULL, + `rt` VARCHAR(10) NOT NULL DEFAULT '', + `rw` VARCHAR(10) NOT NULL DEFAULT '', + `head_name` VARCHAR(150) NOT NULL, + `address` TEXT NOT NULL, + `kelurahan` VARCHAR(100) NOT NULL, + `kecamatan` VARCHAR(100) NOT NULL, + `latitude` DECIMAL(10,7) NOT NULL, + `longitude` DECIMAL(10,7) NOT NULL, + `description` TEXT NOT NULL, + `severity` ENUM('ringan','sedang','berat','kritis') NOT NULL DEFAULT 'ringan', + `urgent_need` TEXT NULL DEFAULT NULL, + `proof_photos` JSON NULL DEFAULT NULL COMMENT 'JSON array of photo filenames', + `status` ENUM('pending','approved','rejected') NOT NULL DEFAULT 'pending', + `admin_notes` TEXT NULL DEFAULT NULL, + `reviewed_at` TIMESTAMP NULL DEFAULT NULL, + `converted_household_id` INT UNSIGNED NULL DEFAULT NULL + COMMENT 'Set when admin approves and creates household', + `ip_address` VARCHAR(45) NOT NULL DEFAULT '' COMMENT 'Supports IPv6', + `created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, + `updated_at` TIMESTAMP NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (`id`), + KEY `idx_pr_status` (`status`), + KEY `idx_pr_severity` (`severity`), + KEY `idx_pr_ip_address` (`ip_address`), + KEY `idx_pr_created_at` (`created_at`), + KEY `idx_pr_converted` (`converted_household_id`), + CONSTRAINT `fk_pr_converted_household` + FOREIGN KEY (`converted_household_id`) + REFERENCES `households` (`id`) + ON DELETE SET NULL + ON UPDATE CASCADE +) ENGINE=InnoDB + DEFAULT CHARSET=utf8mb4 + COLLATE=utf8mb4_unicode_ci; + +-- ============================================================ +-- TABLE 8: audit_logs +-- Source: models/AuditLog.php β€” INSERT INTO audit_logs +-- (action, table_name, record_id, old_values, +-- new_values, ip_address, user_agent) +-- ============================================================ +CREATE TABLE IF NOT EXISTS `audit_logs` ( + `id` INT UNSIGNED NOT NULL AUTO_INCREMENT, + `action` VARCHAR(100) NOT NULL COMMENT 'e.g. auth.login, Tambah Rumah, Update Bantuan', + `table_name` VARCHAR(100) NOT NULL, + `record_id` INT UNSIGNED NULL DEFAULT NULL, + `old_values` JSON NULL DEFAULT NULL, + `new_values` JSON NULL DEFAULT NULL, + `ip_address` VARCHAR(45) NOT NULL DEFAULT '', + `user_agent` TEXT NULL DEFAULT NULL, + `created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, + PRIMARY KEY (`id`), + KEY `idx_al_table_name` (`table_name`), + KEY `idx_al_record_id` (`record_id`), + KEY `idx_al_action` (`action`), + KEY `idx_al_created_at` (`created_at`) +) ENGINE=InnoDB + DEFAULT CHARSET=utf8mb4 + COLLATE=utf8mb4_unicode_ci; diff --git a/03PovertyMapping/index.html b/03PovertyMapping/index.html new file mode 100644 index 0000000..a1a1a72 --- /dev/null +++ b/03PovertyMapping/index.html @@ -0,0 +1,778 @@ + + + + + + + + +WebGIS Dashboard β€” Manajemen Data + + + + + + + + + + +
    + + + + + + + + + + + +
    +

    + Keterangan + +

    +
    + +
    Masjid
    +
    Gereja
    +
    Klenteng
    +
    Pura
    +
    Vihara
    + +
    Sangat Miskin
    +
    Miskin
    +
    Rentan Miskin
    +
    Terdata
    +
    +
    + + +
    +

    Layer

    +
    + + + Tempat Ibadah + 0 +
    +
    + + + Rumah + 0 +
    +
    + + +
    Memproses...
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/03PovertyMapping/lapor.html b/03PovertyMapping/lapor.html new file mode 100644 index 0000000..23c22c0 --- /dev/null +++ b/03PovertyMapping/lapor.html @@ -0,0 +1,1557 @@ + + + + + + + +Laporkan Warga β€” WebGIS Kemiskinan + + + + + + + + +
    + + + + + +
    +
    +

    Laporan Terkirim!

    +

    Terima kasih. Laporan Anda telah diterima dan akan segera diverifikasi oleh petugas kami. Data warga akan ditambahkan ke peta setelah verifikasi.

    +
    + + ID Laporan: β€” +
    + +
    + + +
    + +
    + +
    + Petunjuk pengisian: Semua kolom bertanda + * wajib diisi. + Klik peta di sebelah kanan untuk menentukan lokasi β€” alamat, kelurahan, + dan kecamatan akan terisi otomatis. +
    +
    + +
    + + +
    + + +
    +
    + Data Pelapor +
    + +
    + + +
    + + Nama pelapor wajib diisi. +
    +
    + +
    + + +
    + + Nomor telepon wajib diisi (8–15 digit). +
    +
    +
    + + +
    +
    + Data Warga yang Dilaporkan +
    + +
    + + +
    + + Nama kepala keluarga wajib diisi. +
    +
    + + +
    +
    + + +
    + + RT wajib diisi. +
    +
    +
    + + +
    + + RW wajib diisi. +
    +
    +
    + + +
    + +
    + + + + + + +
    +
    + + Alamat lengkap wajib diisi. +
    +
    + + +
    +
    + + +
    + + Kelurahan wajib diisi. +
    +
    +
    + + +
    + + Kecamatan wajib diisi. +
    +
    +
    + + +
    + + +
    + + Alasan wajib diisi (minimal 20 karakter). +
    +
    + + +
    + + +
    +
    + 🟒 + Ringan +
    +
    + 🟑 + Sedang +
    +
    + 🟠 + Berat +
    +
    + πŸ”΄ + Kritis +
    +
    +
    + + Pilih tingkat urgensi. +
    +
    + + +
    + + +
    +
    + + +
    +
    + Koordinat Lokasi +
    + +
    + +
    +
    Belum dipilih
    +
    Klik peta untuk menentukan lokasi
    +
    +
    + +
    + + Klik peta di sebelah kanan untuk menentukan lokasi rumah +
    + + +
    + +
    + + Klik atau seret foto ke sini
    JPG / PNG, maksimal 5 MB per foto
    + +
    +
    +
    +
    + + Foto bukti wajib diunggah minimal 1 foto. +
    +
    + + + + + +
    + + Pilih lokasi pada peta terlebih dahulu. +
    + + + +
    + +
    + + +
    +
    +
    + Pilih Lokasi Rumah +
    +
    +
    + + Klik pada peta untuk menempatkan pin. Pin dapat digeser. +
    +
    +
    + +
    + + + +
    +
    + + +
    +
    + + Mengirim laporan... +
    +
    + +
    + + + + + + + + \ No newline at end of file diff --git a/03PovertyMapping/login.html b/03PovertyMapping/login.html new file mode 100644 index 0000000..6692f4e --- /dev/null +++ b/03PovertyMapping/login.html @@ -0,0 +1,315 @@ + + + + + + + + +Login β€” WebGIS Poverty Mapping + + + + + + + +
    + + +
    +
    + + Username atau password salah. +
    + +
    +
    + +
    + + +
    +
    +
    + +
    + + + +
    +
    + +
    +
    + + +
    + + + + \ No newline at end of file diff --git a/03PovertyMapping/middleware/Response.php b/03PovertyMapping/middleware/Response.php new file mode 100644 index 0000000..d8deba4 --- /dev/null +++ b/03PovertyMapping/middleware/Response.php @@ -0,0 +1,47 @@ + true, 'message' => $message, 'data' => $data], $status); + } + + public static function created(mixed $data, string $message = 'Created'): never + { + self::success($data, $message, 201); + } + + public static function error(string $message, int $status = 400, mixed $errors = null): never + { + $body = ['success' => false, 'message' => $message]; + if ($errors !== null) $body['errors'] = $errors; + self::json($body, $status); + } + + public static function notFound(string $message = 'Resource not found'): never + { + self::error($message, 404); + } + + public static function methodNotAllowed(): never + { + self::error('Method not allowed', 405); + } +} \ No newline at end of file diff --git a/03PovertyMapping/middleware/Validator.php b/03PovertyMapping/middleware/Validator.php new file mode 100644 index 0000000..5dd2b95 --- /dev/null +++ b/03PovertyMapping/middleware/Validator.php @@ -0,0 +1,137 @@ +data = $data; + } + + public static function make(array $data, array $rules): self + { + $v = new self($data); + $v->validate($rules); + return $v; + } + + private function validate(array $rules): void + { + foreach ($rules as $field => $ruleStr) { + $parts = explode('|', $ruleStr); + $value = $this->data[$field] ?? null; + + foreach ($parts as $rule) { + [$ruleName, $ruleParam] = array_pad(explode(':', $rule, 2), 2, null); + + switch ($ruleName) { + case 'required': + if ($value === null || $value === '' || $value === []) { + $this->errors[$field][] = "Field '{$field}' is required."; + } + break; + + case 'string': + if ($value !== null && !is_string($value)) { + $this->errors[$field][] = "'{$field}' must be a string."; + } + break; + + case 'integer': + if ($value !== null && $value !== '' && filter_var($value, FILTER_VALIDATE_INT) === false) { + $this->errors[$field][] = "'{$field}' must be an integer."; + } + break; + + case 'min': + if ($value !== null && is_numeric($value) && (float)$value < (float)$ruleParam) { + $this->errors[$field][] = "'{$field}' must be at least {$ruleParam}."; + } + break; + + case 'max': + if ($value !== null && is_numeric($value) && (float)$value > (float)$ruleParam) { + $this->errors[$field][] = "'{$field}' must be at most {$ruleParam}."; + } + break; + + case 'maxlen': + if ($value !== null && is_string($value) && mb_strlen($value) > (int)$ruleParam) { + $this->errors[$field][] = "'{$field}' must not exceed {$ruleParam} characters."; + } + break; + + case 'in': + $allowed = explode(',', $ruleParam ?? ''); + if ($value !== null && $value !== '' && !in_array((string)$value, $allowed, true)) { + $this->errors[$field][] = "'{$field}' must be one of: {$ruleParam}."; + } + break; + + case 'email': + if ($value !== null && $value !== '' && !filter_var($value, FILTER_VALIDATE_EMAIL)) { + $this->errors[$field][] = "'{$field}' must be a valid email address."; + } + break; + + case 'latitude': + if ($value !== null && $value !== '' && ( + !is_numeric($value) || (float)$value < -90 || (float)$value > 90 + )) { + $this->errors[$field][] = "'{$field}' must be between -90 and 90."; + } + break; + + case 'longitude': + if ($value !== null && $value !== '' && ( + !is_numeric($value) || (float)$value < -180 || (float)$value > 180 + )) { + $this->errors[$field][] = "'{$field}' must be between -180 and 180."; + } + break; + + case 'date': + if ($value !== null && $value !== '') { + $d = \DateTime::createFromFormat('Y-m-d', $value); + if (!$d || $d->format('Y-m-d') !== $value) { + $this->errors[$field][] = "'{$field}' must be a valid date (YYYY-MM-DD)."; + } + } + break; + } + } + } + } + + public function fails(): bool { return !empty($this->errors); } + public function passes(): bool { return empty($this->errors); } + public function errors(): array { return $this->errors; } + + public function validate_or_fail(): void + { + if ($this->fails()) { + Response::error('Validation failed.', 422, $this->errors); + } + } + + public static function json(): array + { + $raw = file_get_contents('php://input'); + $data = json_decode($raw ?: '{}', true); + if (json_last_error() !== JSON_ERROR_NONE) { + Response::error('Invalid JSON payload: ' . json_last_error_msg(), 400); + } + return is_array($data) ? $data : []; + } + + public static function sanitizeString(?string $s): string + { + return trim(htmlspecialchars($s ?? '', ENT_QUOTES, 'UTF-8')); + } +} \ No newline at end of file diff --git a/03PovertyMapping/models/AuditLog.php b/03PovertyMapping/models/AuditLog.php new file mode 100644 index 0000000..60216bf --- /dev/null +++ b/03PovertyMapping/models/AuditLog.php @@ -0,0 +1,37 @@ +prepare(" + INSERT INTO audit_logs + (action, table_name, record_id, old_values, new_values, ip_address, user_agent) + VALUES (?, ?, ?, ?, ?, ?, ?) + ")->execute([ + $action, + $tableName, + $recordId, + $oldValues ? json_encode($oldValues, JSON_UNESCAPED_UNICODE) : null, + $newValues ? json_encode($newValues, JSON_UNESCAPED_UNICODE) : null, + $_SERVER['REMOTE_ADDR'] ?? '', + $_SERVER['HTTP_USER_AGENT'] ?? '', + ]); + } catch (\Throwable) { + // Audit log failure must never break the main request + } + } +} \ No newline at end of file diff --git a/03PovertyMapping/models/PovertyCalculator.php b/03PovertyMapping/models/PovertyCalculator.php new file mode 100644 index 0000000..7c28109 --- /dev/null +++ b/03PovertyMapping/models/PovertyCalculator.php @@ -0,0 +1,149 @@ += 7) { + $indicators[] = 'Tanggungan sangat besar (β‰₯ 7 orang)'; + $severityPoints += 3; + } elseif ($dependents >= 5) { + $indicators[] = 'Tanggungan besar (5-6 orang)'; + $severityPoints += 2; + } elseif ($dependents >= 4) { + $indicators[] = 'Tanggungan cukup besar (4 orang)'; + $severityPoints += 1; + } + + // ---- Indicator 3: House condition ---- + if ($condition === 'tidak_layak') { + $indicators[] = 'Kondisi rumah tidak layak huni'; + $severityPoints += 3; + } + + // ---- Indicator 4: Education ---- + $eduLevels = [ + 'tidak_sekolah' => ['Tidak pernah sekolah', 3], + 'sd' => ['Pendidikan hanya SD', 2], + 'smp' => ['Pendidikan hanya SMP', 1], + 'sma' => ['Pendidikan SMA', 0], + 'diploma' => ['Pendidikan Diploma', 0], + 'sarjana' => ['Pendidikan Sarjana', 0], + 'pascasarjana' => ['Pendidikan Pascasarjana', 0], + ]; + + if (isset($eduLevels[$education])) { + [$eduDesc, $eduPts] = $eduLevels[$education]; + if ($eduPts > 0) { + $indicators[] = $eduDesc; + $severityPoints += $eduPts; + } + } + + // ---- Indicator 5: Land ownership ---- + if ($landOwnership === 'numpang') { + $indicators[] = 'Tidak memiliki lahan (numpang)'; + $severityPoints += 2; + } elseif ($landOwnership === 'sewa') { + $indicators[] = 'Lahan menyewa'; + $severityPoints += 1; + } + + // ---- Determine category based on accumulated severity ---- + if ($severityPoints >= 7) { + $status = 'sangat_miskin'; + $label = 'Sangat Miskin'; + } elseif ($severityPoints >= 4) { + $status = 'miskin'; + $label = 'Miskin'; + } elseif ($severityPoints >= 1) { + $status = 'rentan_miskin'; + $label = 'Rentan Miskin'; + } else { + $status = 'terdata'; + $label = 'Terdata'; + } + + return [ + 'status' => $status, + 'label' => $label, + 'indicators' => $indicators, + 'severity' => $severityPoints, + 'score' => (int)min(100, round(($severityPoints / 14) * 100)), + ]; + } + + /** + * Marker color based on poverty status + */ + public static function markerColor(string $status): string + { + return match($status) { + 'sangat_miskin' => '#d63230', // Red + 'miskin' => '#f76707', // Orange + 'rentan_miskin' => '#f59e0b', // Amber + 'terdata' => '#0b9e73', // Green + default => '#9ba4b5', + }; + } + + /** + * Label in Indonesian + */ + public static function label(string $status): string + { + return match($status) { + 'sangat_miskin' => 'Sangat Miskin', + 'miskin' => 'Miskin', + 'rentan_miskin' => 'Rentan Miskin', + 'terdata' => 'Terdata', + default => '-', + }; + } +} \ No newline at end of file diff --git a/03PovertyMapping/update_users.php b/03PovertyMapping/update_users.php new file mode 100644 index 0000000..ceecf54 --- /dev/null +++ b/03PovertyMapping/update_users.php @@ -0,0 +1,33 @@ +beginTransaction(); + + $hash = password_hash('password', PASSWORD_DEFAULT); + // Update all passwords + $pdo->exec("UPDATE users SET password_hash = '{$hash}'"); + + // Update admin + $pdo->exec("UPDATE users SET email = 'admin' WHERE role = 'admin'"); + + // Update petugas (handle multiple to avoid UNIQUE constraint violation) + $stmt = $pdo->query("SELECT id FROM users WHERE role IN ('field_officer', 'staff', 'petugas') ORDER BY id ASC"); + $petugas = $stmt->fetchAll(PDO::FETCH_ASSOC); + + foreach ($petugas as $index => $p) { + // If there's only one, it will be 'petugas'. If more, 'petugas', 'petugas2', etc. + $username = $index === 0 ? 'petugas' : 'petugas' . ($index + 1); + $pdo->exec("UPDATE users SET email = '{$username}' WHERE id = " . $p['id']); + } + + $pdo->commit(); + echo "Database updated successfully.\n"; +} catch (Exception $e) { + $pdo->rollBack(); + echo "Error updating database: " . $e->getMessage() . "\n"; +} diff --git a/03PovertyMapping/uploads/.htaccess b/03PovertyMapping/uploads/.htaccess new file mode 100644 index 0000000..4c4832c --- /dev/null +++ b/03PovertyMapping/uploads/.htaccess @@ -0,0 +1,13 @@ +# Mencegah eksekusi file PHP di folder uploads + + Order allow,deny + Deny from all + + +# Menonaktifkan daftar direktori +Options -Indexes + +# Mencegah MIME sniffing + + Header set X-Content-Type-Options "nosniff" + \ No newline at end of file diff --git a/03PovertyMapping/uploads/reports/reports_4_378e0629b95b01d6f5538657.png b/03PovertyMapping/uploads/reports/reports_4_378e0629b95b01d6f5538657.png new file mode 100644 index 0000000000000000000000000000000000000000..54f317e3161aa8d5dbe195ad077cb6ed0f736498 GIT binary patch literal 333922 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

    *Yy#C8bG{>mtZvDHjqjV(b>hU!#MfSC+6k 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

    ++|80o3Phl7tH?s`IHh-+ z)%Hy%H?#mi90-g2Rz8p*W&&{vX$mNy{`voRlSJ9!QFahIWdjFUFk?V8hBqclA~onX z@yw`J%^-QJ+ch4JX)>9qFXMcd;Uw8RwUD8mSQuv)@ZPxiKZcSb4wu8vGo8b`Nm2nr z$)D~8f$AB(_AH+l`<+aW%bqqk0&I*kz5(D4I}gd+LoFpKg#Oft&$&;o{kTf}gq3BO zRDl8RD$8a}6^ezsGF3eZ3Fh(};iz@W8`?p9G?-0w@7)9@K(Es>?)v{3$6fxJWZA#B z7j8-GH)#@rcR$%Zz6*iNUmFYcgzl}ZwJB45F+-C>1dfqn0|C+pV-w2mUcAH`Yc9(I zb%MmY`z$w`s4q!pPm(`g2;<&{axiCqCAer0pCPzt3)hD*^9aWZGyIwB)_MDTqKsa| zKF<(k4VVcPS+|K}{OeGL07&L?Tz3(HPFA|OD6sX2%_rPJ`4x*4V@vnaFcLe=9?Ey1 zE4REkLozT$IyO?Cem2dv!Y}diFpVr}V85%dKHaPZn09e-j;6lqr~vx#;4fbufKJ98 zzczuS17KMA&6{!a;<+5~ICpk-iYhA=S*T@!8QhOOoDQdt1&7JXvqcF>rG%R~Pm?=h zsl5<3gP7%v-d$8CvO}r-7w4nrH}SQNOL+8$d*)%3HJQ0Qi3ig+OY6?-)-W+z!uM}v z>!8+KNK;PQwrk}t&3ml7XG#m=A?o=>va_Gbdu}^s-_i0~jCccl$tV;lcP#fWn*!rN zV&2cK^5DWiUx4YYT$aSqjjN;i#O`$z!s%!7~T7J0sw6# zNYb`}IsQhlUt2&}r4KO$mg}{BnMipPM2El&gRP}%AFCeDQd8FObpI>SGXqrJgs#Z^ zX_a!NM`q14lcU9Z*@lWHGf9M1&C{6@%SBPej*bf47v;nl!z-5icjJ{EmL;_% zaJ#h5VI2a4cV_b3Pl}&bJGCr#FP`tZmZ`aj zUD{*PD)2o_4joSq62&Yu`pfJ^iv>zP-uS+9FlPTvHX-RE!RR^xu+Z%|1gfWlg*3}F zCxq6Wex7mDMn}Y;HO7NfajOfIoPopw4=M8VYb0QFL_U!(Ge3OPW$LotamD_s^Y*~u z?niffw047m=PR06%wr&Y=BZeA?~-UVPoFuQAJ2hwQSh{Z2xrVrR_7cGTLt`}xU#v*DFTD)t6+iL zc8O?kj7Xh3_XDkw^|@51@7nu>Knn3CLB`hREV5Z=<$n*P`f{E1d$rLGro8T)_Nx+J zsr|eM4ruQrad}>iN39}DC_5!l45n)`?!^mOnF$gK+WU0GMlg|9qK_0UK(EadaR)y2 zqhqbe&rj@X^LrM?F!Dyx<4J>EndOdyQkYeD-n3s}jw@JZVpzY@4 z9#_wTO>#ftH!-I1_60HqX~w-PyAzgThq?gK1>DpEjjU+UIM5R0u468($0#+)M~KDD z)!lLbg^yF-4j8~cD#J7heON}kaW5Hl8?D`2(jx%@T`l?9rpaP&Nz#f48ZGxe{sK4X z1o!^RoJ&Y9i7OLz83Fc=(p}9uvf)h)xq{{(5Vq(zi)7gi?<~YvOzvo14?I%2^pbpH zcYSCmX7tJPHx-wWU&qM}9-0qtC32TJDnl?z=2~k6%FQ4eW6=B^e2bbo$|Ad*y-M~y z*9K^+ICKTz%Q76EH^RoSUt@vFQrSWLb^U3;xoanV-bdQI6U)hy9vC-Vm}vmL=3++g zz{7|JHGK+$p)$t)UJ0R(`G~IH=~dU7FbwqtnHroqnJNW2h^~h+zJfc3b4GJ8RYn`S;>(b(7w87T6gzCP2z;;^<(gUZ`>spKT52Z z-v9zolhEotVY7Wlu3(wNFeP)WLAlh$#&WQQNPKahWHR_6>7FP-PZ_3rQ)Y!>I~*yP zWQ*6)R6D)Xs`5@Tv4Qx3QV@p>nOrxr_j^4+wzKyJ{DS}c*Q5zk6$`XWFXHta{(FZX zhz$4fOqb$5@khltTP25Od|j#tr+uM)_oIcFoS{@0rFkl|#I}G4F_s5Kv_0yhWJ-v;!gB*71J#gE*prWp_GKMeSvt~)HhFc?MND71c9TIg^!ai2&X zQ%!A3S+^GXQ{e!di0vt_dOoOS?cxHr$GYq{F<<(^;o%VBuGS#QN|@oSyAB z-vbuk)OF~CR1)qT*^83l!MkLnIH@**I~`w>#H>~)uAWRGkQdt4W0+zB5(qbH?7mm| zY(81}*vkh(pn;@}Nyk@?G0nBBVR6}EzoeS5sPmFqC_|Il0Gl{8pF1CBd!VWpRcw?R z@BY}tM&(haa=}j2GrVH{?9nM{w~Ig-V?;RMxfU#wV}H)ievwe5t<(Eie@Kk_^O9p? z;LmYuiFRvSqrUEJ37WvirDnWiuPgud-BS}%jVz-Iy}=&5?Qk6B6;62K9%Qd_)7;pH zx5m`;>p3a~{ultDo#TNTgRpKC&PF+0d2e5&&8C^ep!!SBD5#8_9jcH16*gv&GXS+* zW)rz`f;|%ugo8E{C7)6E+JCsd>aI6d0j7?C)5U)@P;6*svS{qWkD98HxmuxeIo9)DMP?7J84gsNFN5UI@;Vyz ztGiJ16q9CGv}(m*?{{z!TmKY%O%0zgEr?aYe(>-rLJQ)jvd{L7;mmp5*s8=p13vST z@RTG*e%wV3;jO`Gv=*NMIKSJ>VHytS3%0$7p=|@+Q@2+UcxyF@8=O;5qMbdyo|iTj zEMWEy9E(im3U}K$zY3ZtdaG4h#@$9 zFB;oz0}qa!D!zY7_1Vdf`GAT&YMx7{DO$^$Gk)nd$yczpFG}ecB3r13_?-)?wjiR-WMhkAI;w? zCVTD2uc+^^PiHcG`Al-jqS}-}`tZh!Qd6qg7LBVP5YnDMpC7uor5_tJ;n5K1fJ&&y zo8sk$E7Dc@gip3^Uo{olOk-U5Otae?P+kQHJ?1-d-f?TOXR;g5;5ion)A;TPcHJzD z);BSE1B}g*Lu^W$uX*T5$x0@Vc-p5Zx1lqS*Nj~Ty{)irNJeEKXv^)#=3m1m z%M5_7E8&BS4v07S&!lT4GUtbhIWryl=^Zie?+vy%6j-RghZZ@>FsS@Wy&>z8h$ znzh#N*L@B#)PcqfDleB>Q!DpY0C0TdnV14rRfSX&y+*)=_N*DFHee!O5d`Nr7o z4iy?&&eU{KKDQW-XS&2!eB~YSG+Ml+gU0k0V;|nQki&H2Y!CIP`cvOy} zc(`m5*-#;`9Q8lEs(z!9ckoRz%vM1Q8mO87CK2d$Q&jQZi!&de#=4DJMC8=e=$cHu z_FW&x`^4;`Rx_%w$7G69JAqC&P>10b(;d!MSP8!@Y*TevZkkgYT-Zzs#m0 zqkHG44d4FO6@yw|-h#pOS2`!Iw|;KYdq{03*C9QeMk`ESEqyOU?q@C~Av6>b7@Ocx#i#nPn zKJ*ur!^&V%Lm9ELbS?;MDg*TdP5$-OV#7+TRBq*kiro5eCH#D+rR?4Fo$v9uaJwu! zX(&UmImEV%XDQulf0J;`8^*z+DoqW1KQI^&B36_o_*;#3pwHJ1#0R3m6yvj3%Zc_!lN;d z)r25R#WxJ8HR*4fG$3dVrVvGGQ+qxtG5X}pMwt@f>#_S-P%eakqdZV)l5E8fFf$8x zREqx38nG#z&T>_PV61p~G26v*YS@Ww?CrX8m#AhZqx|X^$BP#)n)f$QrfhUvWb~V3 zRU(_U6I$>vfEg%98Qdzk%w=bXi%#kd$h{D_X7U(;Zpp38KriKn^}YwBE^gU$LkCI{kpxeV~yecvTalyWAMo{Kll~G1_U`$=<;U81mmu zR9(I>e-2-DOWdvhD!)RCk?3X=DWODb2tp_ z75Ip&;CTew$KHX}oqT;lQL+nM;OjOsi1E(BqRWX#etrTs-GI-a&(A(V;L4j)Ef|gO z$dL2BHx8TAPi8Lr{oTp&b|)ccSxIeN%ez!kM0}eSbEF{E(+_aH73eu4O%|4O!fiY( zB4j^4(0)>d-08>Qw>|y6Ta36{(uPQq0cpQ$x_*6m`W3WoDDi(Vtoh<3pqF~Y%F?YyiVW2BHy)tCYIPA2&iTa5iwjZGI)lFrpU-T|sVL9^K-_+wC<2 zHr(K|fVKJ-7xx=zv~=>;!Q_DzP3`@bnLG7&PaO9$R(B6>VcZA3{O&Aq!mC%I>E#0t z-y_)5R;$M^+c~;aY9#J|sLXiBt-V}((JR0&2n4Q`oKYEF$t8W_wY3Oz_+Lri z|9iFLFZ*$AeDJ;AF-NT@+^RTY^}u@Q$k67py`Qs%yYsK6#q?#=Grw{1+VLGHte5k= z^RlFz&0m+eiGh71$tB^SsckD|Ty&3>l& zb*^Ml%&DbKQch8JSiGj*PBbK(lSPUlk24PTF7-%_-9Jpce`mdO+=eF77ruL#UEup$ z@7mf_QrNFvvf9k*XrZ?cUg%G8f+yR{jzVaM9b7Z2z2(Ut=>c+zf%9N8$ZE^a;0^Es zVGy|d*N<=f3o=zS&H-+PfW&naP9W>Wg!)+uViSuGs6p^~7D(qH(1|d<)948W$#g$N z4zrO>gzw$d&V@s+IRTaUN$Gdlekj=iC=XSapeZxS?n`-KChT%IL8qXe+pt zbO>Eh#mal$G$fZ28S%t^+_o?YaP{WHm@$i?#amTv-zp_ zYroDm8SjbVpbvizjDnV*{sp3~zcXKkE9+B-o1I)|d2?wkxvX zSz)jG*0+))6-NAL`|-MYEk?;u*$G%nG9=D96%apqzVUO9brPp^oiDJSnXXwk#=G#o zYnvC5{m5(Jl&}Aa7PWm982wGRMrF1!FE_Wm3!s6PQC7c;W7Ou+T&)Jmp+} zVOv~*k+6BpxxI@Lpg>zK>MEz|YWySP(Egv5rq-5b@LyyP`d2gEkTq8fW_P?PaX{tQK)$yUk7(x9b-V z$1;>k2a=ZE*CUUCrHSo35|?A|Te~yfRDV`=C?NnGP7$;^7kDsFw*ngUh;6hHjQj`A z{pvMSKDF(IYoDj`9GOE-B~_Q@uV!G1tp;{Sem$(E@@zIN7_c!+QU-l<8eaT&h}M5n z_4(H(d%%~K!Q5kUZ`@tXJa9J3YSjgLkJNd%^S28xG1NSx#NQ}G*_Rw-bKo1~kub^)SbOO`&bTG(IG?S#8~s9k zNm{uNO71(2T3%>Na~Zw1>4RO7o~J_M)Dugh|30bq`4bOyp;Y|~4aGg_y#qV;0gV+V zqp=_DWHOurq^~7a8oxPJOL_e(MoArVD&}-qU1r_~qPCb3g>d|pfWM5Bl~BfJdzme# z#y{&9AMou>U7FkKtuS7bMEk7OgQsWHxNht+Lla6ZKoNyJ!O=WeY2-Q-r)>kCK;a3r zA;gsJ+4n+FYC>_V^^3S&CZ#%d+bLQZd%-b2hsDokmkcFkMQPU2t<0RbWB&EWN%W z9dcQ~Z)<|M488G8jL?Oj>h7iYHx7(`1Q!|;C==ezXO3i}e6I-!q--Z?ehiD)E#=D#-Hv-4rm4Q$zQI`0 zhkclCGf4o#!L&;0T)AyIU&Pb4jsC&STlB47Q?+j`Z-zHMgN=>j=pfO@k2*X*)A-yB zO(Yy;=@IeiA-X%y97$VEQpHXC?VL!qtU+^7e=#85+CoCjVPlyHZd7wt?6rbyB4F< zvx4|)PiBPJuzbF|$*=3B_9jga|NcsE@U)G_4*=emVV!5E}rAIBxfAJ${_;AG{Wrb3>+X z%DW^9TT^qMZ!ga%HDD&cx~29&*J@YFnJZulJAO)ZC&9}wPCX+DjED2waW}swU_dDK zreganz2p1W+yhp|dlmq~d->~DJ2J%4H*nE#6fGUIGpkd0{(GX!O&qymZPVh{MSgMj zz`4i9jgFOmAjK}t-CN&2$j;wyZ_VACdgr*8)l2As=*nE%WxFqku6G=iS2|z3qs?0y zWtC>QFgZ}3DY2fHRElpLslJ3_#r6P$vnU|P6T}y?O)@his#<40UT6yk36Z6>#;j{y zF`aAGkTQ$}E(@`(34g)dcpFYR5^a$^goxG#&1^2Xtof3e=S1Z#VuKx|d^j0`2N`z7 zY33P(C85T*vM;4|$dI?D9yuvP(g0wUH%=~go3IAgTK;ziJ<%pwk4D7rT=HZ_`VAK6 z?_e8rd!6@+F-_Gi4dvB+E#4XP16DiJNHh|WfqAAv8#T{dRO|5l9oSdk=zGHmvJ~k( z<8_&<03RR6b}yy6h~5I#Kw-|NfM6R);J%fQs(}z%q}m z0u=-{Jb7+Xld8|~(&vO}%I;O<50ke1z~FAAmwLrok)r*FCpyby=D~B`r?9qzSHkIf zmm@0WLXdK@Jaij|>n9`1P>oa)!wtEIwTF@9)>A(dD z$5bKl?W@z^v+FR8wJu&v$tAaHT=ziGMH9X?v>q%~GWHB`u(GemG#P?2kQHygjo||4l&{o% zVTQ1-U%=~JOJ9rbNzlyi?Sr!utjQv%oSjK3n6d*4b)+O>dIgOorKTict);6Pxlorg z4O%$S6)DO;pZq}Jt~;z6;OoTis5SDT6$g5GiEXr~*?-_sOIgR(K0^5l6z~zd)Z1dA z#(cA$e@=E1xSNB>fkhDHGBeb6f%==Z*El27vz`Q0CE_UzsNA&cru<6&+O>D+9ws+^mJqj!(v#o(YE8yy?k z38w(OP8e)6fcWoR1h2*S85~^H0dqwA<^fGimzJ^d8B2Sf66bJZNsyw(nUbKqtDmrn zDd&L@+2oilsQNpTLWJ}cZs(dk<2T=4{@K@ZdXwj(m@}PBiAr3M;&E&9anZ*f(`}07f`CiZ4cfhG7HedmPJr;yZ6uNV z^oR%@7?s@PAqEL@xu)zkc^el?lNXHM8fE~YR#Tbze zFEnpJa=B<(+o{ylrg2hy{gzI$k>O%OiE*NHbLI=O*`qeR*kqn(iII3hK&Lhw@VkCB z9Gu4!)7fF6@_PKUEZ=OY2&T+;V9t;)qr{r}tQn<*zuqufKj)KC#U~wNpI)hN%3&io zeOaE1)L}5g;GH!yK=*flPa@E_cRHaoJD?1)*-N;OqO93faV#+_`93vJZd&5CLIPh)n}b7zF4alS2M6W;#o2}iqS4t`Kz2g zxUspM;W}qm9$oy7n3QtE2O86r?i;XxS|sof%+7{za}%CBY7@x)I`nZQ`m6LoseQ3V zc&e*tt!|}=oB^3(#CK7$NI6Pw6r>e$w4l2$^6=U_+UC*5z}1}0)xG114k;r^SL34r zpw`-BkpH&XWG#Le18yryiz7GOzF> zpOKTgMtnU(b3J!}V#h!NR8y8fNv=@nFWwK>1poVehROUI!8?`YjDn))%3xN!;hhmT z$wi&S;$EjAW+!TVp^5IvJo{>ASbCpQQ28UexVlq7n^NJV!u7jWJ z-9o8ENpGSpiBv~!z)`=V0LC3_G~lC~0SK}fGb_*tYNjNN8A zBF)R_X+=4s^MZJtW&WqtABGt&Z!kfsD_cnmtE(uG@b@2By}+F44(v)w{#!Qv3xcKM zm%fA~p78P~4-AhvB$f(~1o*$o1ocFz8-HK@Z`BsR)SFfD;F)u<@B_DJ0C&{Yw?gat zT`ZlP==L}pVnXY?z>Ii3S_5GYxD*_XC0f}Q4~Op(gx$B^LYooplLt%vp)I;DV}mPw z;`Ggb(M60?r{$Cm0{caYu~+oefRBpmxh7@Z|_Kmg^4`>=_s6P~CA+gl zIYj##g`}gX+H`p_9~|sY={J1O*!B;9cCAi~%93DR{JX#A*rHx&2fq-6y4;xMA@H|i zXv&8pbwdj2H!hO&Yt6$vSM2=d1%$?twmXoTPJcxIe?GiYwaw_}tUG&9^Jlmo z`|OR2-;Q90(6Z?^SbIE3ykSv!E>C(0UB4%gnJXvzw&I&3;Qd0pDkT<24!u$vrulS| zrxuJ#sgehy43XD8J#f7L;SU-A{D3s6*vlI9S&ig2ai(&Yx?eFU1!6_wnC8_jr_+oK zh+ZLRTcfjFBbrsxtgDmeK3=Y_vLnRnpj5EaD9H)mK2tX(tglp}pH^qK!7I{e(EW2R zw}=&T0p#yGrg}&m0`5}fqwun)u2nQC2)@_%kF`01iQvY8NG_I8kK;Q|>-mAkMIszQ z7szI{C84(f>k(c^`t2N%u*~eH1GTiQj|C?@ewx5>RfXlo0U!gW71%#{1x9bq5M^9mh3 z(Y~5fP&iw^Sm-b9HMbA;o6FpflMJ$1$NXxS#%Q4*E0gLqZ|5E@HzwBCma1n=j^@An zPq$}3(5(LNxKT`FWJTnpn32-#!_HK~B+>{%xqH?6uJ7rp66rHrMw__= z*v%h06nqCkMnCNbNYxCj%)plIMlysbAJ#(KX2vUQ2^iO7={l#-TX}dwfZj(8cv`1u@eAl7OvNa6k% z_BK56Xap+d%o&oa#Z%@Di;$y@t&$ZW3@vBPS+&TPXLS!eY2dcrbAo%|7CU_TU2Xio zbF2h)7)Q%Loc(I{%B{>SJDZ-H`@?%(FcUv`?&)kHzhaNmejkwgoFkkCvOM3=EAPgu zz7ev2`;%#5b^3oMB3Ze_*LmJP6?2SD*I#ZdcUPb4d3&F>uGVw4JQw4lgij>bWs-5u zRR1Y?m2qYHA$(T3ukFn79|Bx0cD1E?N*ev_`4Lz*&#F#={c~JgoR<;=`Ni2Rqr?j9 zYm>SyHdWwkHBcOnY50ps*0O&;l!9JpI{+axKqStmo9QU|fktdq5y7Hmc9Sb)jGnuM z=edAV7!lVJRYlvuBlC0gX9g$p+ldXwgmiLAfVG+q951@qI->ur-MfXK; zEVQi7q(TPtByfmjv1N%~)DAdHKwK*U&H(WYiKSZ@?Zn3JJZFt|Lf1gx=l~oRFW7Me ztv)x9dNIQ8dW*R8r&@C`5Ck=%UBplc)X@fDZ_uY0U+COA`H^>Ak~btR^@6BuZyjOY zbtz0tX04jG6-IQQw&h8i8EpS0*z&KSSvxIeF0nwEptD8y%^&tIcaJ|*c;=XAW$#qN z>-RIUf1dt-MvW3g`i+WLj(Qs<51=x=r)Qj(M?eE2uXy#0=(yg15ZvIo7%6X%BX3`- zl+?1ulgyN!3<0;--v4%&;*w|aM)NdR<{9n-=iyr+@R~$RA%VE zX^1D+F4|-lr7X`L*A_192XKRt3u8bSeoldDo#=cR+?AR%ERDAH2Q@X>yX{{4pDByv zITeDVHQN{Sj-`x;_1)SHEj7|!hCQ76jxM&(rE4wa?PLyP-alsrFb5vt3vEQ77f|}Q z`nX|t!?cx7-mM>xG+C3zj4$ik!Y>XpZat1nke9)vKoAAs!ZRw`%S=nc)|Id*avU563`a3$SA&fS;`96lMh(Z8p$&@&zi5c}X2i%%9zM0P&af zJFTaO8Jb+?Q!=*ssc5n&>d8}`KjHE}t+1qM{kSug7n07Mlv$y$qX{b04#bF>6}}&wW_+c{9bb2S(^cR~9XPiuo3b0K^Op7(S zo}+=2bI)de!|)f~*@AG7LPr-Z&L+QhN*+Y>fr#LF;8DHw?!a`A4JSN9;boqa$~@>; zdbaif-iHMgllnAO?5?ot|Hs!`#sqsBX3fm{&kO+etO4!l2eo+Y z%MK_ShhI;Pp804u{aPuT5NvsH%DrJr;h#oLNZ*whHfu9+ENW;)??)i}hab=N3@xhH z&uv%%nH~EL;ffaWYnx;2LS_7YsS>v_gFo@CRP_{DSKmtcC5CNjJKSrIUd7M*PLz-k zAPOu)wjRLV?&O=OR`Sp@(xxD2Zr{ix*~ z|K+NX>+oggUnL2iw-MDyrjUsNxUkd~LjTq+5DD=(%%Auq;;bh>v^!inbm8>{spwc0 zzaXQT2h4xL0k$%j^`t-KPrAOsa5r5A-0@WfgH128Hmmoc{giwzLmV4`7w$)-Z69Nwg{L`zju;D;qS6Y1?$m;wheeGp|~MaT+*B- zWZi@_u6*dE8N+5jSvY-W)6SSoY+OlqTKA~o6hU4k(zB)Ssyh`b7&y>fip*6Tc#)Qo z55e>=^pGgA8_Me+Cu5|;{k9wp_x7Y9RFK`|BzQFy)n1c7C^h3<+_m5r!Aa=(L7wMc zE`cwn$EOP|ajedO011@Frlw?M$ha@W@AFHvKk7Ml#tXbJMNh-vyy@3zyQXlF( zGy0cd5}f?_)jO*_by?nY_Bj|Jk^}%K6{!pO#W13J0u8?0;e;%r{gJ_lkQp{s?S1u) zY1;fJ!*W)y$;*?ZKs|;6HoS29lM+>QSFK)xPsbtZHQlep71AB_DH5^RmN}Qv*%CXq z3KRhseg{O2Cci3K0gMIpXlt7Cc)l9TDR9l{P|1gI$d17d%`W?<_@FpUOVlM~@v?i_hl6YGCW8rZ>AaZ!OObQDpw>)z zNJut5v1~;hUhKu2z9q0LJ8y#X7J&QWCHfy^QxS;GVjr>_&V1%tkBp%)J7Uf~ zEK?QMtZ3103Wv64Tzwjkt3eWyhBQrU6!9}7tW!0VPU6WT_{pNbJskr^NPx|Q3`UNT zb*g2fA{uY5;p;a!Z?IV+F-hL9X==%PF6g})Qy(MzR^ea4vLk4j!V37Vg~l;6k*kGT zHPo}E@os$fNs4^dyj27JgU+u?|B~-+o0TPRi(V(-Q4sjOLN9y7B$V8B+_4~g3t-$_ z+}3SC4>kQ*g{Xx+@+ih3OLWI2Cief1q20KRAy4P8Y=G{Rfog;c*&Y6pkbRmnxw25+ zqM3aMej~IYbI`&^vX20M7DyOftX^^rlW+u4Q#n!!p3G5@KD~7~JiNFp1SoubY;Hl4 z{(v*a^xQe&pg3CTu6W1l+642z2#0I}IXO1gIhHNHkz==h*CEILyfe%SX7N@#S)v&( zFR45zNB1(!)ZSR+vbOyYA?^2z$WQWiEem0$ix$-r9Hb-@BL2RMj{#NMB*&hc0gVh3 z)t=iJv%P@zLCR#^Zun=?RVg09Hov%mw{~B(c3?g8A1cuZ>Xjy1U9RIyrjdhdzpr|j?2}hB?S);58Vg>^5)44 z(_adjL#FNO@)irb@G@P^fBBC-w{R<(J`W(wFGJ|Z2b%lf;UPFbKhGq){fNFUO8%>| zP3afxSJQ!R!HK|Zy8HhUV>el^JJZ4-+Lv0P7crfXc~txLv9a+YdVsVEjU64sgH(5Q z4FoUk4WK{Q&jv-y&zRjLrlZ6dvjc)r#+J2npwEL|E(Qwj|j zO6WJlii?RB#bNVCom*eXTs;0|#~rKN)RdH?Yp*sMfNPLinJmLZo({vQb3&p_jbnO# zT=`<&$)uz{r-#mi)<>lBd-4TfYiVhSOzuSXKrPXms!WHlYSUHS3)o||L!Duq@uN)# z!|*WnS0Zm&Vr1xIyA;=HnS@whN*KOGGvp$|1TkQAK>#46aPl!=GlqAL7rhby&C%Gu zv%$T87m+ka{{2C+hvr-LJ5lU93iL9a^~wS)ZVKIIeqU3y{mJr?GBS+xTj_P zIX>lU8H?LD8tT?X7LpnZXn&G=qt%QF?fLji(En6S3?x7VW+fTHD2!4li!%!ggBc>8 z{Kq{6#~y9R-ttjw`_}o4c?%55tGjTJh=ySDsFG0PfS1S!St$7~gktxe>P0{kB4h|D zsHTs9b@>Fk$aU_irAgJLH%EhSRlSHR-~bL`Brp>^rTD5(GcYJHxvZ_cRlEC+{Z&ZK zNVPwq-?L|H_DLV!bRr9`AaipGt*oqyqTGGs!rH^yC1@|2>?;_*{0FODAz96`FbF_s zolJrWnlrA7!Fxqse+L<}mVUZOQ?3qC%WH%YSgfVmS-qBtz%Znz#?sO-My(?H z{!|I?8_#k$){NfFQfJAF6t*#4EFFb24Ib+Z14T_0o^K^AOw}F>NZL`bgwq39Lf$^m zp#O=IUrd8T=)*htgZ&^Q`jy4SUEGSus-)67IyzpDvAN%StV@NQK8qsH*V%cGlDf&n zGF^*y=thm`W;Rm>S>|4DVCH&yGI>#Zjj zYNL>iGQ;rM)U0+!oar^RM(=;K*FR?~l2$Y2Uu5OwX@S6w^v+Z{G$n{FS@mczSY-Y` zm@7A+N7~3m2gxt03*S3`z2~bk`rZZUBqIo3lzdolM+B~Fi6H4?gEB|tTkT?_?GH#} zLba~m(evcD6ta=L?Mq;0N@2azQSC@!z4`jt$E(QV%TXlH2UX*kvFfwzH|U1_6TGly zyhXPQSoE=b*Y1+XMwlr*e&7h}=<%wu-5a~LNG}^Db6vEG;$owvMu)#0MpvE=j7zSc zPrpi!|EtcNAsNi+GVAAvGy0*!ccaM%5eEtXFc=k*!DLNW=>u@wSLk9NBt_}STamVj z(uMcY#N@?g10W(-mlFkM?-fSJ0#|Ug5Q!fxsBJYptGlZXMKYG?vlrxs{ZSN~Fj#-D zK_Q@wF6@q;w-s#sx*s;rTL^SW9)#(-ZlCughG+bYm!W$(FfP8n!7ap!c8ok`{q4PE zc6xsQNjhTLFZ!ePvx;_?$+f1eI)yejS6M)|yfWV8I01jq=H zAA&k#!yWVVj+xnEd{*B-9)dftcE^p>R|69YNw*C)-ag-OJwm|UYE8=&7B+TLaxrkGcT zb}VPJs0O3?YMSBlt@b6ubQ@&1fP@~k6}hi&53$|Lp1wdnI*fo3IoR^+R~i!RPrAAh zv+&60tzoB+g6M|E#&(=kn6QPWjIaMmJ<0W46_|;t(I`%uVHl0QE;7OmZcxE&Spw#DkcOn_7Wp!=e69Ox{E(Ym{d+y z%lPzW|C?9lQxem0cU`+hwJk~G9I8%B$B{box5ptMJ2vw^tGEI1&jyaL;9QL9pbCLg zWGyJUIlyxHq?u+j(_-_biRc1;mgNEs1FYdXjtU%SNq9C_Eu&xXtY@L1sV>ikASZal zuCj1~FPH#^-8)I$vB9%K87ISpnnI>0ug{P?iV+gZJR{(`Ed&(Oqgd_kYC1HDUlD#W zZaK9ZzHzLjsbzOi$xa%IAP=>PMe<$PrlpwZ8&M~Zjk$9v3TfJOibUwijekZc_rQtl zk!$>+LLrTIvT1w9goaSG#?6V_nb~qcvbX@7oI;gzlWtyqKC+C!02CS=XsO>4(dHE1 z<{~(5VP|(pi&R8r%$eZjv65-m`egFNm7uRyd(e_v#a79@ zHh{a#JXEY-E{yq)I7 zsyPCUfYE+bFY`{<1TM(t;-9|VjmSU-IELjcHh_;^o;(Enj}R`>dB`iN?iZq78>}-2 zcGV^LsC6G1(pvq{C%+#%Iiv8EZHtj%vUW z4vOPP45LRx=@Ca-Q*Nx`!WXc5@HU`ZUo5bnUDT{AvsbZR(p5Br7)UYAa?XXc>QD4$ zC@|^->QVdBov;{{*&;HZQKKnl0tZZ}X5Jr^!ILJAcq_{nWZzr_g?#SJleFNlb9!2` z0iLV5)zkMjQTs^6jm3}--944+8^D^L^Ta5jhDnqyK)GMp3?ArX4yZFY9 z|4cGnn(Tz+uhz+H!OnZu{G^yQAX44G)6l32l1f=863-v^^|l9`vVZ4NuUF%2q0ek! zaaJcB(x|A39D5%G@^pOqY54-CB#Y-laG#FZ>GbkERjU#VyzsCXQWu3ab5%07tDohS zNg#PRN-0*vw$A$_KrYpu7QTHc*fxzlivgXW-z1}Eaxi&R{HeF+j^LW=Uq>kD?QB2NfLzf)$ zwfze8N(i@r%h?fyjQ4=y@+Y!YUSksAZnyjHzD-9ib$ni4*?KXHzx`wiTAp$R37FF0g>(d|z3%)!F({;l}NFYeO{Sylk>PP86kh>d}7dI-lozT3vzj50kq8z9V+ zv|6fj^1TOTvh>fgVhBx7U|7YqgQ;bpXlJ#=D$d)BY%pjfH;qvs^(=E>0_K zOYBUZps=Q0w6A=py(uD7$tw2iX77@X+9H_)vz$+#3*SLeBs}mZEffp+SwHmNID6^i z`%PTydap=K>~D-ciS?fGj6*v6e6kn!(_~1*Yat8t18Gis%RRzYK=yJM`W~S~iuA=} zuoZ4@QLKFrE7=87ZXAoqOZ&4*eO%*LXY*c~$JP%eA4Xt16%aVwv>?svN-htb4DqFH z%R=^OS%Vox;MA(-TxM>@A3_jfG?xpZyRcaB(#M9@MK~Rv&Z>5u_WyGG1#V=$&gQh6 z1L!eYA@e!atQaiSHY0OCM#G#JI;1W}V~w9TzBl53AFe4&=(Wpq!;nzVqFhE?y1?Id ztu{x1;s#9xcoXR)LqkH@Yo&GzeXE6*dfwoA;wNHdaDy62p4tdv`YVWK5G9+ zW~Ra&ZOtx{k=FBjVFuB95=}fuj+XRWa`irz9?*ZO(Q{|rF}P1&+DQMi0dufhspA{H znh<{S>zSjY)zy5Li6AdVF@Vq2;o+z6&>pbupE3u`dk%50<8=c!Z^j6b+s{ynN)((j z_q)T^F9NY#w(URO9$sQNl*}vGiE$eKwmF^uE+CVuDt&S<9m{U zndUj79U-gEWAcle(V#ot#Vm}wY;8Q`9m*9%%Rq!zUcJ3N+>3Kk)Gn>Z7?rj-G2n@KUD3&A{nQzeE?TM?f8MCt3ej}cl|V%u-jfsH ziaBns0OF=M0*u0aJYUm)Rph~cT6z1DVA*AtV^RNJh~;wAetj#ELnMr0<<$j@Wx9Fu zXjcJ{fZrLA`M}R`UyUm}`U7TqL__5w`;<(i&D>K*pR-Ef6YNw5(ZIJ;32~)|{>X`l zee*(Kh;IFiYLGV_8Gi~R-*eG(VDex2kX;!i>&u}P?Wr8ybl(I{QQLPe5IPkYX`=FM ztNjmar2pvvrSrU~5$)=}Pxkb3p9A&kD!7KK3EnTv@f~Onix4~&$u>>dfLblKeB;Wy^ z%lYRKtZbfIMdMYq2~K9ntFvTcd+1f&6`6NJ({G^%8YPx`xXkbG)4M>U_l!i13pR`{ zWoxHD{H?dI^=2?#me0!`O{u~;11H(|zv;H!E9S+DM%9jHhGp!i5e_3}+G~`BQ#TwJ z?`GO3NW5=oq*$&f8q$3y zitK?i!6`hLEk-g2f3B(SrMx^TlUs<7Y#4=pFXywl3ls_exa)tK9KYBOEJ^5Vl(gU! z(=0N$7uYI77W~N3alWyDnk#tRK9sh<9Zs*vWojuZnnG3!)6h`SK$i@|i_{Svnn-HA z@~CLLKxMF4Fr%>9$*!MXe%uBP#nknHeH*vSgpvgsVtCz#-P!VSUVtgjoiYyJy#6q-wV!B zV=!JARdMa0{V~mJHj;C$jkoM2=>HM3DfPneYG(kj&s-^`O86Bw;R%QP+0lzF)>AHz zk1_S$LLK$1YrUWKbEYZFKBy8hIOjqeudLM7rt`80qfP3>=^_`8#uXs&(CfXgW!~{b zZdNun2+MKu@RL_RQ@-w{pV!wyE}V~WSaN==>LY=(21MH7{xthGwaFgqbggm%hY$Bg z`u9%Hrcovb!JdEJK7t?w9gMBrS5i#%g!I#tzHY-w+1(2tX&>ET-V%YiysU(Xtf{!X z*1a633(|L@CMX*<6yEzPpCu>vt%vkO2E#oF^Fymm?gk#;TtpZzX`%NDe^9JNG~5W) zHFE5B`<)Gg)HQk|4jDti~$Ft;V^A=35C-5ZjLJV3V(6=SV`Nr)-I})x4YXc!K zkhwUU1bcgXX$N^z)6>o*s5hY)o!*X<1RYrmv&iZjYy@@_CytKma0**tFn9ndxhfcv zs+Lx^Nc#R(49#%XadFWPxu3hO$>k>~&ldn}#>_?vZlIxZqi$~Zg^(S{ur*yHM80hU z0I3FdWWKjwQkQ)n@85g+M_UUW0FbwtEpR=N&blN)9y`!c#`*^$DH9tm=Plzh1E zq`F=OKBSu+9^}dLKazw_&kj&wvXz_Yr)nY2gicKmUv2VbRaG2Me;=su#@A1eALH&q zfG^9=iTp>f!eiz2%@=*r`xP`%_W0-i{Qiy@ssLsvIeL3av2Lf(pOR+I_CRnA)`~+O z`!WxGe{NA7a#33LYafpGEAe z`6ky!-`hYh_{-TH9`weNi)A0!l;UAayxJMH|3s4m#?xS0DQ3`(sl}N@{!8b)5z!1i z3eDKz)6}`bp8UUtJe@Sld-tM%KXC5Cxv$TEL72*VXhIOkQc6{|8K$CzW2sCRklm1K zm$7yVUc|{Wj8TzG-9j~~m#LplnqV2==I98(lHR9fCV^R$^(P31rulH(D{|m~4Ss$- zP9&48?LN1nxJ^+Z(b!}ebtD(({Rd>#1PZ$v8*3YzuzKn)yHzxXx0x}!(yAU>7QvYy zNihMf*#VUiv6Q_=!MV)?Vuq~g zWa(OgHS80_TmbjM8NG!DIzdrA+Hl?l@+Gh(3;)POc<@J)5S^Z!;b-H)Wn4BB)44M@ zLld+)U}D$B$BPtjKGmD+Db)VW1`AzsAeV#PuqZtH5dPBO={Em zHoWOhzK|oo$Mn&n@?;0NQZT&lR)O3&QU2Gzw?VftycV~gl26x6?NY(M_eM~Y@zrgR zvTy1s`58pul5vC+<~*hbo?%o>savUUzheXYWVCR?E+(4o?w!fgVf&UX)yV|J-HRS1dX&oHJ0u4z}sPG>o|KBQ{nS6TUvSnR!Q^lHd@5DH*Lo%u@=o zdopkq`gxA87W##bbz~EiS~Jq$xy>~URFN5!F0&QRzj6fDp5zAgBYhe*lGpRQl@teLFml4zfU0key6Tc&w9c) zplEhHhW|O;^TPQzvUyQl5Aeg1I7tRB`4Y5ZI|`vfh;FuOK1255S8JVQe)lIC_= zj*eXSUsIG!g{^GZ(3>=Ko+4|5yQlN|4Y%|d4Umb~H6irSEVp%CX!E|gtrkBT{T=$3 z3kLEKH*e_1WK(Cw9u}Kqc0S}q>>Ud8>k=#3vRO3+hXnsm8cIPi`_Z4prknZP!CSZc za(MPa!(nNbemQgJjZ72?(K+hX9l{e8x?To-`Ys3RDralh1J$R-{hXpbwHvsPfnF@5 zqU{A5P(-2q9Z2c% z`U;^A;J#B1P`jBc^ItJ1fQ)_p!rYOA7v1A5b-)nboSqz;SEgqte8XpsI+SKZvI87B zY`dgHmMvA{10X+JFIPO3_|6IeX?xoY$-rcG($7ug1tXN`AlMdh13|bASqG-j6+V0W zYD6q=B55wc9q+B?(Qt_lcK?X354m2}Gc z?wuWZXhQ{S<;ccd!L2j1TuxD1_s@A+m7k8E*&dTTEa)ukpRuzWgjmg*-1ZNfyQF-) z9`rp%roIL94xc{YY|a&T--fo@Bw)05KkhS^qZzW6Md@cO zSaQp+^*t?~kX`I-n%7?=O$DQ#Xm{g|^5(GH8pdJs#+)ix`t1B``#UkQBnlP-v+u<} z_zwBy5FWAQ(JuY7(CEX#v(emE>B*-z0_xxyp}CRkwm0R6BknJrHVXis^v4QBODZF6 zfDc?2Kij#OFYQO%5sbIwc{;8sT&voULO61y@Wo#}^UolU#k5-?9oFi~Fssy_nlQM_ zf)rv?(#hgledu89-@EDZ?3^J?AnFLFa{6#HjzQ(0p zqK@kEsvigzeD*v%2iZGWPZ;g;Vj48xo^d&QkS}W)TF?e^J2iW_UVw4GB^|yyc^Ng- z5U5Ly)^%@vW$MaeQZSNru#xEI2^RS1fM2rQ#b_tme-e$0NB@0;{g!jG*4THfI5~n6 zX5PO*vA=TiJ`-UjHIBx5%Xd6uJ$kau5VsLcHuNn#ATL@tYF>O&g)nIBn{(Oxq+C~C zT=EZCWA(mNI#&TsZb@^-SqymH*+Z`H)2By)RF^~J<-Kxs)B{72mYIsp>qOB4uiwYR zE>u}L`F?K;72fbcD&KD`?Q7kllg)ZVS3;F^=sws?D~Won$*#-!MQUYELFKC|HvO%QdrGs)QxivL*WPg%>wFPtdfMeA zMah?%Z3Vq3Q2VJidNX3Se*=1A#){QE{&D0$qxGWFbv{!sf)DS_Cyuu(w#r7B6>adj zYHO}cP-*{$hE;iG?*8{z!jC7!+$zJrSfD1L<~Cg1Zz7phr6m#G(2C_Clhro-;{w_q=%vD47~-eNh#BzVnDo4N~G+xXdP_S_n!r^TaMGFZqe z#CN~N1nK|&V*v4Tloxh%Kvxe|xMA&i&bDn1!)dUrhLNU@Z^nA{<)wEIRTT?=h7Z4r zB#$<&ApIAR>mXgN_;Ll~%8Ow%K!OGz zdEH1NLk9zei}46Px_ILJ!AOrjJ|?V-W3T+c^mj4sr;w+mGEfAl7t?& zK2F9uY1-u$`+MqsEEXO`0%|m8s{2S_o9f8V?~ehswKFFZ9s1kf18f$pf+htXe{qpy z<~9hJNWdW{H{hY`GEO6D(hY(8b#SuYBUXntB&Icp@8o==7NzL%3gzMAGfrHhSLW#g zR8c6$`HTDgHSyJwDvUHSEwN4sF#P73sC$raTW!4gq{|-RD1S8l_viCx(H+$_9-PF! zkHS(7Hf9KTkmgmZ@Z7e#H#YECUe|5HvbESirLO49NPzrmj`@jZXp8m9U0Ek50uaC8Z!ju{nOd+6D-=RW?;6gBb%=b>}yfrmkSg^kkO6?5g$+x-j3v?z+vko z3A~jp1#-G~T3NLsS`e3Le>Uj?!N<=wI1+S*iDrYIGOko?c#lO}6iHy_zV3w02&+623eku3MDs zB80XZzBe)HpS>19U`<9CfMU@+Jji!VQ&pHYoqCbppwg@#g9cSJ-IHp?08ID0DD3_d zheX^|x_-d`1Q*BLf@hsWQU9Y#16=XxN3xp$(|f0zv|maV*Xh@v*2;jS#dphV_7DWy zeRXvEM@ZYFs!&*uV$kwzPkuTCu4eqp&bUeamz}12ae^Kaopn%#gfuYb{tM5d*=23^ zAm`Qc&G=k?Gq)QK?#3~2ZC-fqvacl-LDGc;49vBAw{W#kNCyEF{Hvb7`GqW2*a<() z5+g-3}q&Gv62^NX5C=AT<&kyY|d z?|)brHQcZSvJKq8&X5i)Qq0;|n$_Bc%sx5rFJ1&bEGQeiSzLJ}muo@T?2j6)!>SqE z4>p}4`-3p#<@7Q`JdpHX$j3`ryNP+)wyv8~Cw^3WsI#&%H&zG4}>38YWGkm-CBYNh`lpU`-HH_bLoHy z(is&C@$Z1iqq0av6kB$;b`yI|9}ogXGt3-?4GR{KM$FzAf@<@uH{Ii9o{IJl1`L_x zXL?5pM-9aE=hKRaFboX3_QQ0Qx8M;6KM$3X)%hEoD{vW}S}#7cZn;hQd*2wlqn}Se z-B7!;0zGNg`K!BHYHi~NGb8@JKt}>V1f<&lX^k0W3Yzjlh_l7qv=3bSK z{K;m$CemEg`$|+F_@lpg)}X%?H3W@(sq3UebfoW(8}zn;ovU|Q^wxf7E}^UYgRQ59 zjeLCKV5ZF9Rh4*g`nq}*SFUvzvhV$@V@w8sCW%q2gbSsgx-UhuZeAylV{Qfr4#Y_5 z2i%VuifjkeFN;uXQ+Y1Vk`@oTGSHj{nl3V&;t>72C{jb4hDBp`HO$7agm~8xG&zw{@&YKtu$dl-qiynhrrF^n{kv zIiY5p1~sh*$hhoy*ne|nSROb^4rQ(>9G zmzkLGKi@QjABR)-Ese*#No_gX~qX6IMvH_&`GKUp>`eZ{Pfg;w9E$h(`9jyNlyZKm*J40oG=?_R^pWN z7gr^}^)C+fpPTNNvaqvMfY%zj>kwnYKM|$Bm+k*JB>(f}NSH+qg!#M$$p7bWeQ`Kj!@>MwyHD|2MCH+7qq+ndslgW6P;)bRD{GxL7yp zrf_+Fz<(i)DXoAyVx*uZ8v7Tdg4}#p8I=DVC%9xAxesC=FOr?YOA6k7$C-r;=IUvV zJICMLyjiPSd-q>Ynqa}+qt4>dSgR}6j$l&)oB!jb|F74G%_Y>(`2E|S09z6>Boc-F z0X3=M4LL8y)7-0jTf$!LkN^HR&y~apzw=bOMZoT>Ai>G2@H39^D%%6p@Kliz=1i*4 zlgE{>j2niYi(9?LpU0f}vfSubc zpX9VE-{ZZ@k4x9!H0}RA2RTszDK&XF_%KY?Q0jZeA9*M{&lf6x2hDa8plRzVYS9N~G$d{q{s$&227952buA&>{ zn?|v5a*AM38;%LjgQ6+!7pDka{vYa)^9Fnbh*|}vKJv4s)3jOmAAno*?!HRqPO|>H zLe4ixayNYG-kMP{!S&N+!`W1^Z;SSm=}9peA;fz@DnZki6-k2puk=%D1)A{yw~5ju z;Q>j9>dbXis_P~nFCX@ADa<7o8WXRli;AqbMqGip_4Pl`>fYwLe<%HIaP%<=L$!Y= z#$O(q*?Y8xzG+^#aoQ|<>5gKFiDva8u-F=_s-Y~HG4sn%g-BLO)01X9B(7wKjDRn69oByKtkQ*F@5spe3 z9o3(^=4eF{+{ukj!&@FiFEbdj(-!?9vUoo{C#NKwXJ3CVbhP{L9;X|Tp!}?RdLqvg zOcYEaG$E~D5#9O@sNb8FzXy0F)S%Y%2*@ZSuiN*UIS}sbFLnK<9Wl%G?d(i-$0N9Q zk2cEc>Cx@$BoWrkNg}1~DFTLd$0k*73c_jTyq;k+d>jH>oTG#OFWSd5<})@$`T0Bq z8s`F~NV$s@H930T`Ny$%YFhTcq(b&E7w2u;9}6YehxI~(LF3QRY}_Eu7A>P*rGUOa zezQ&gu91AJarw1qCYhodJ}P#14+q*uj6eYOk9E7u?4Iaqyo4Rf$k%@UL-}hLmTx*a zHbrtJXk?>`XWn~xuz{6GWwY5sXE$j07DEhpvfIODuG!8E3Cyhl_+eR|OPjb9eFu7E zT}4v85H$WYkMoUFH&5l(jDG=GR0& zOArysoI%F~!K$+={VO#(Xg(Ixe`VexFMl_{hnrYYZS#BRzk75OI9J;GBhc}DnaIdMPSnMUpE#oPdv;$yYILQNP5_I_uj3z0kyF!nA234V38Za)(1^fc z39T>?Gd<_@XQ9eEk6$Iwxd!Ak1;=z_CA+Tk2je*4G`9bbCK{+7^dm#PiJq<8JicT+ zT1oii0~X_b9v+K(f0qxu3!Y?9*uJ$$hYiaON-9gdwTs|i1`MZZ4BIqNjLtbUxwQ#u zXrMeC-D;F+RZnUY`n4Qt4;PjK-j}KG59W&g5%XmWbuU?@ftaJoBTeG3U8g#FjY3=G~nBd;c0Qji=*+7+qW#%Z&-$g z&PXMfZpsrErvKHun>)V{GxjY!n`P|*&u_ivPoKymeIhJWbbBL}EM6`tq2EpjfcVeX z!B#kV--#3?3o-eorHJf`Y26q2GVXoi46De80Ujf9CeP!lG$TTo&tYGyXpSsA_GG}0F;5A?JCD1LiWDrZC z`;FYwSM?k3;|bCgcb%IT8*oqMlD)U;u~Yd`Bro4A*&bbm^3G1wto!HyeV#6FiOs%} zpbI6nMK&7LQF_~6>J##rlTvM5tHXh@qvg=qC2>nAb;2T4f&HhcF_ei~knK6`WY8X` zDj`9(gvsiTk!}}JUHLgv>0TCfI8*d5KdO_ChDFy+pk0Xn?zm+d@6Q_~3DO1iI8=UoC{qw$#a58dwC)$Diap&(h{^Uf4`F^%#VZv~Wb zrZ;H6{!~?<|CbRnA<#?j<8v2x?Qnm9+%$)Q{5ZAns-D2P)#XzoAp_(2!bH7a!8p^P z1ucrpw)=~W7am!0TkJlsqNNK#cH+8E6ncpKsI;0HtQINVj!+AfScF~B|1jG6G9-K= z8F%6dm+_&!{43s6nPBR|i1a^5@h+Vvy*o3|P;!;qf8OIBOX&^5+}ct^(D?a^K1ffisQOr-V|+t&t}KTVi+)hb2`r<)YTCE}bzY zK0ZI|a_6z^P{PmK!cm`MRo=*7nXC{(nmO?f z+ZA*WDAosG6d9Aa0)M|H{=*}JJ)aw=U71bZrD^Ih(V*E+E)6BMm?Xy;8*{_M5i`%r zU@Zl{nVb8N08Ec1r=pb$7f_j%(R&kkFiPio<|caO_KK%o17os>&}Z+7aHPOCn#(=(c2zV&70Xfy^NZ4N#MZPsp)K(|cGCR<%B zW>(AGm(K%nqdvb+W^dMnxRxW`_uP`yL$&v%8_^i>RdO(LFnT|zVt0Pf$Su+#OeFfK z);&hpQ{NPGWX($A84I-Ik7XjYYE(|bpoIGrHE_V6NNC!8l(=2HJ9|0K9qFxhQVhNP zR`5yCmb`r*6jAV|!aKf^7eR|SrMyczLw#m_K>Kw{aM?S&;#EwhE7JJdWkk_BmUbZK z=5qMV8)spv_9ITw~%@8M`HhTkYTFS~9cGM%k)F+KRsLhmJ`O0!{A5cM+C7V;LD?!N9c=&!=+0Ck3 z&?3eqV#wLU0~*OkA#I)zB4leY4)wjX1HK`NsQG%1qmZuC$$sGR%rCV=;F%xQ{mzKX z*1vX&lj$8r;h)#*(gTj-1!VM-I(y=rV{$SlfBH{`}FB7cF`bS(%xa1!Nv5i@yLLPe@7gz~><&mTI> zL~r-2bswgSheay_=lkP1tXrtq9>bE37^V46G&TJ={bSCb+URA2Uy!)ZAu|G=NC z5=BX4kD%y@83GtEj77N1eEJ@~brR0V%v6vQAn4M|sG5%S_R8*m=bE~y7Dj!b0@i7c zh8$<)?Oh zI0Euq$3r9>Shd9u8dj)XyIx4x(r%e@dB{-G_F4Q%P8v;;2Qvw?#+_lJ5F+ph4gWRr zMfx_ztzKxUwI3{KOKWRCnSS;qt=A*|d53TeV)5&SxUzw>#)$3 ztLakhKTrv}E(t^%attoo9fsYSLz%Y+OAC%eRx7`1&TPYHfuoqsUG_Ibq{j?k@XxaXR~?-_s%YAGH?4w7Bh`Wn$)?+nPp37HF?mPS+i* z`pP_|`3%aLEzK^u_hehPWz8V^m{-@sSzy(7AGV83kW7UCUVV`E$NyE1-*>;ZX8R?p zB51q0{obUaMb~?RVAEpiNBqpsiIY2LUB|mqufsCn#wA*s1~!&Dns~gR&mZsfQoX}m z=_i3Ww3N$qf%Ij_2OGAqM6Sjw6pokE=)PX)a%2;5XI^bNa;nhfj;_pfp^;b02r4xK z{>mpf>3(?oS~U?o>aFa0%YbM28to*cYNJ#CVt?s_nmCR*xBvL-Hw#n4SFv6Nk<3PJ zVlQl!1x4)yX|Ya74RmCzl%AHejs$j#;bk#1hcnB7&-L;&m2Vgn2=Xm4B)da4X37bu z)p3kS>OhZ40aR?rYZspVx0M@)?)2j_XxSL*zAq~9``40vDRiKCD(ZL)R=ZXTo7B3^^vBE$pP!*K%pjAy{X*MR*aH2nnBTnlT7;3EwTD$g#mSBp z2X@Be5jh`%-A9IfE2+DGdiJ_G>TOww>66#!zmjbsBP{vCtGGJ94()_&6j7qdY}D~1 z4S)d&@9%jkFJkbnZmcrVeWo0Om^PlP?wjS%Z%48OI-qk@RE_iz^}Ks;lWf0`gi4|Z z5D>Lsd5WFW)7g5(+OzZu`!s?sM^DN_ijBwJy%lf3+|`32*y&t|$C zK$3!g^>302O$@mWVd7O2(&7#LsQPdMQwC^N8#5BKyN4sK&V_ir`kSYp%iF(6Q+=5b zi$K3xK`>S$we36K<5FFhYeEZ`X9bEZrZym|#fE847TI(_D(`1CjaPq4N(<^wM^pJC zqD7Zhp|i8(*Nh)taElPuQUvNXbG1Bi7X|W-03!uxrK*iLo?5u1;lwZBid!H})->NP zw*+7Z58DzE^1a~1-?bj@K7THo+g-|2yHOiS{OeViau5*v+KlrWF~KCd_#Bcfz5s~A z7if=X2@O4Nr2rRhWg(Dz7Gk*@EVwYU8?s+#;swJ%;F5Zdt;O~`lN9NPY*VoJ^KUm9 zVL9J!h)~a;hy$Q9a37&4vTFg&w6k}Vn!l5IvQ+V~RrjuK7rvzBf#{jbsIOk3t5f5d zD;RQ>*9~#IGq(L`%ivZ}eAWOBG?F9-HV4LA^L^6L>n_do5>rY^%<&gKYR0pT52lIV zUV6BP?8~kysAWmea4V+{l{7PmE@(>ISmV7Cv$p;bz!Qn~Eje!_fQH z7FDZ)w>xR1BI|yojnR1q!(ae&mr<^&1#73!fvN5|6Vfu8>eHDrWFhe;KNc+kRAfZQ z?n)Y>n(N-ZB1uqw|2|Bok|8u{jJ2$v@*~rGYDKZG4;U)WL1oXM{9Muw*d`Mer=?HYm=MU97Xp0 znhl(m-Ix~|h}R!hNE_Q-1uJ~5x$avEvwbhQ>khRFd_3_N8kEIbZ1DGNzN>W91GXTN z3CqoRTM3f(Lo|(M)Lz!qUSR59kW^yBl~%u)HU#d;K_E_WATFW^TJL zH7a1vvJ(*f2o|4UGDvM$UFbd|wQ>Jz6H!JJt+scNsDJ^P0-gkq7h8Pm@Pm}aqi3y% z!93&rXge5`YjmsNx=^4N(75G%WvU4iw^??8wKiU*y3zbK?Q3d8gwHqo8V@}iGJA&D z?O^P_4|H2W7iTr{mPNP&*S`OlHoH$x4O&ptWJP`La`4g`ZKp!!obJ1^Z&!y@z+AE6 z9bq(8ZMI2#dw;TPA!VBWv$KYUokq>#`}HT8jUYWsk} zT*P`~EwkR7P$4^E;PvP=5>A3Xnn)Y?=TA^RwCv{<)qEHpUZY1H*K@y?2RMbkn^EcH zGNbTuxt-RkDl~$Sq(DlZAIGT9ci8UPm9}^<w=dTP)P}fOT4Mbl zmaZ}?s_yF}(jna?AT8aEqyi%#-Q6vnLwAUDcXu~POG|fmGj#J_p8xyduUwAWOAO4fnpp;#yM~Rm%b)k+e6zanqi2%bs&%LeuVuu_;a^Wo>Q&>~aCm z^DJ#n-7)-N61Cs|m?4ggw)}`qIn{?(8-~!Le6;vep3R2%Wm%w*|NEGBG{1KHcZnJ8 z@2dRR>zj2P9Vr>#eGBTNTfY7)$}P~-whr*%=B#ZmK1!qsLk4d;Uh`E5>+~19F;PF( zId?m5dcmHYvSKb<4?4dzpd9fB&$EUhxi(XbRP-ZMkO`(%eHq^m=k*DMj%Q!%x-I7( zw76jvAKuc0)y-w`AVeL)Z(uO@B$h8)o`Pz%3?)U7Z%6#zapNZB<%<8W?8R^@lcsrh;!+vj2m#P2d7af>lE%vQQx9DBpGr5?obXjL+)a?WMtO>f zCPeGTT70PJ%9mdQs$hKG*CT%0A4F!mn_E$~s$>1=^qHrJPoQUb(l(zedNsYM`$M$jmO3|M`5GGuBqAQ5ow{%fH3=MpQf;mVJ#5`Xaxfb5~gQ~l@ODK z&J)-iXN^aAwk$^kjtEUM+;G_Obh}3S5?Ku=s7BQ40uGRw3?7~?lf4glWrcTSWQDI~ zO+NFa6CmTVI&^vNj%5y`;!(Y}7BwoM?{}{=JkX?-*-+A#>HAez7B+?8Pk9A~TBHQ{ z$_Xy01QlTYY%LmNpy=5$9NR`LN=e+JiPSf9(uJ8YghJ>>*X>x;-cVpXa zMBtRCUoK6=UIEcpI=yV@aLGDuH6Xt8rvliI&h@X66>s}S}`o{91+72o4C|EIFlT(l_kGS zQlSq@L|cGA#^&^S#YhJ!#^x!0y6?H6Cv>@01V0jUnhmXqIuymU$6s?;ylZGyQZe76 zontS;A!H=?x9k0AfB?YoJE#|3J?!ds2Oq}Tt_=lZ`7>v~zu`K+jj(a<-K`f3bYCtw zkdVDb1ieGpE&p9Mc6tvTM&H)z>04McVetDnOm0J)s-(%&N`LznG=<9gjyG9y|N4;F zMJu${HEo9MY_B&qh{ZvL)o@_v;xFYtHv$e5J)w9*%4>F;xQn;@ijysa}9u$JFVr>(^1MCwm<`{0Fs=j{opvs4RvgH zF8-d+%MeQM;Mwx;(1qQtpx5P1#eYqX6jno%Wq5tVFCsiglI}{nKOrmB_zJn{!U|83 zsfPGw6PV6i8&!7ApY2($Nu<_Tt=-9Qh3$l*1z&J%nyqb?b=-H5P9JtC!ouKApDg@g zVFBH0V(BYIVVYmL;q%ShBrnQWu8J8{RO;1 z)bQ&!!Q2nNBMoU&Z4eODM4N68o6p`MeGoBBo9>O6KgF!SKO#fGdNiDu??L_pb%P#3 zRc!mCxW&gG$T99A93piX5hg6qdUZYvNRsFyEJ$$8f%ju3R|EtS@o6cY1Q_*395^gk z(cB^&NIJ|J3l5N#JL?PZm2QACDhgJ15q?U)qJl8lH2i{cL!!2^veiOkrreRHo7A@+ zrFV%R3Vc}}rJ#1vA9gzrmat#8_u8sln9aSJCEN(MJviCKLpVl7Ag*StI2I|I#iiEb z=13UUNEpuf7&m(qPsv7k9=!Ieh-o!?LNw`~n7NXmtm5X|&RCC0?%U($JDaBuu)@vA zjEtyLEQl%8VI_X%1}V_kINFNm`}9JY;mdwjNI~)P@@y!X%){<7GBah3nb>yN+Tz8k z#1d4G;^nHuA)xwu@p!U70@S@xk908=*&XG7O*hK7?`36iCp^=$sw1i zQK2i*L^q?J!W)w~{U4Nhj8nQou_$E;Eq-U3XHf}|tSDpUjFr(;{e&A@bwK1I9w)js zh1kaiN2lai*&<+>BVpQnz(PqD@1~aIkiIYQ^rYna#ak0`j5P%RXZXL8_FJFR-1s(k zr}hZh8Go?ws>_GY`xAqTR_}sZwa%^aa~4nW8~xBf01W;A05Z&` z72q%aZ1xRGp)fF2JNAHxO4HTt1xN*V94l0{In(u67QawFLD1Ins{SSZ?2Hzu$pBuF zO_yVCR%;EeAbh`5;?pKVXS=-HQweCQ5zxH_ds7LVm(gr&188$1UKfXL5 zRC+!>0v|1_qxf8d%%7ff$AYsos`OxhHnK*q3xTQCQ+oMFdedo*jWw*CU~`P(Ui2I1 zWCxrU_6s|TO~6kUc$oiv7fACTeVhkM0ukOHvG9-2ddh<2=w23IoHr}?pLu;awIc@u zo`-)^#olGErFHF3@LB;nxFZHRno53itt|L0-eoJg>)bKkQ z$IO%<8Pv4$E+r+!%*LjmxR}mnbaa&DGde==Bq*R~<3qPy4$oqy=t1_c`Q5SJ)m{Pq z72UY+Jn?=x0!U#sbhIPY34OfS*e04Pabn&X(GgcHDe8uZttQywRyEQX?EH}!ScN}! zQfaFjt&Z627NIdge{k^Uy^zx!xjZyLPeNqP8Za0Z z(6#ZH(cf%L_*#UK6aMunhPGt1c1I&AUR#5CWZOs6ye9v7UcLtMberR2wj+fOs*D?2g$fGW z8tBycQR)KbYZ?AB7dA$q^`M9`!5#dB=Bzu;|{ zq$m9Je{e#rJ4PJXeS)Q;?yj4|jGtfrqmRw*CyGEW%T_SG!FcLqrXlTj-vtB@w{cM7$*gU@gxGUj~z{U%s9MI^8*Ffz!5cN!EVPba{8{T=TLHrQGT z_CiqVX@VH400V2m5I+V%*$E_2BiMa}bFNMjF-?fydGzJ`!&U0Y-JMF#X#MOkHF|Uh zUNTPKIpRSB1$@-3M7v;8VF)q3(fetg$y4apfb#hC9%s(*)folMt`n6hJj!^7jCYCxm3(#!VRE7b3Rp9jr*VMT)>wn?|Q(N}zqO=r|M`0LciSu{@ zGKV?0arqPl_@FFh#tqby!m{T#l^*;h1R9T#n}bBA2~UJ40qM7%X_=l6_Nm;vH@bFXfo$lD@eS$ zxNXu-9I5&i`jyN*1eFQbUrC=nXPnB|Xw?u!^s5C_kQ5WaVALd-Ac*sD#n{UJt)D?8 zUz`o>F|9NV?+U&5%V(B#;mV)GNG>m;Io=8X5qt3Hx6LiN=`ak9F!k|d8+QA3J8^n1 zayuUt?zR(WV^CS)hICo1b^>9QgF}B^qtllm>?iHHBweX>9xFanje7kvltL$24s}4! zb^?RZoFw?d(oghAK@|$TE$C?L#kOBKWdjQ2d6`m4 za@kmBrspCokl2VsBi6LS`N{&m+WaIZ_;}Ke`dzhhir97FAdC__FuP<3(S}>2COa~= zmvLH3_63juJ5^nJAa~mOPR%@~@g_rrA_W@5Fd}O%_1NW3gARY;6k8J7EuCxR=n6zo zP#D2Fqel`>ZxaXSw7v@j&bhsvculp|#^hHuj<^kVrnZ!B5;>dfwzi;%&t$cdMmeQO zsfW2r!7!(dXwNSkjG#t}u+~5Mh+|~+1h$sEkvpwsMFJvOEomaOAqI87wnF8TO4&Z^ zvN$yjBCh`UK7wp-vHR{jsw#`y8GV7ZS1NhyT#TC@cZUB=6A?6iBz-ntY`>R2_U#wR zk^3}joO-L$(*AY}A!+VS8x9aT{&D973s5R;s~OH$$$H;D);68C0OB&Zv-Z|RvX@7q z<;UP?x2H@Z*SED#mI*mzSQ;F;V)?1Wm8iv+j3q}nw8*)`!4;IIe3SHc8g6B3Ono9K zSorQhPk*7Hv`tCOYHl4lxr|N0%p6(Ap&ET72y{!Y&qqKO6+av>6p*i^q{>(Z72I@t z{DE&i5#W-Zo*aelvPPN@e6s33`8PWR+f9uQKt^px^)KQ?XDjHU$LCrdOiAQ~s#z=Q zjg4G+F3VUwZ`ZyX0dRTTiS>5tnpga;iRGt1vk3@=8GL@4HtEBvoqX~A{pjGkHD%9p z?}3+bK;09s3NpRFDEE9YZ)Q&=U=K^;Yz^pqUE}+jL)4;0A6tlhakd5)>=;cpjU?wE zNd4h)42s*@TVA_PpVYrt?*kWblva$!xKft+$ZNI9*F@ALh-xvxf)wPHOOpsZURW8L z5@AO*|F!Un&p#A!ct1$Lhd)F$P57^Q`~B{3+Mey72+)0k(p_X|>&XR?*m1|bK9V;W zCv0u$%M&MN<2P(DY|^9U`m5lPRX_O#AmNPmf%1HPzsK(G_`&7*iDXqH**)st+G=gm zLaof*Ty1LeEgBhrt>O=*?X9S@al@fFXaUl6;ISWXIDalNGV_PuAj>4kZYC`4{(Q&@ zPE&uDro}$N!MF>EZOA&3?Dl`*ig8|TbCXTu>ADyQGO9zr0YfhIQ0L4P)zrS)+uOH| z^|rkCg#zdhPMwBIHGm8$WLQn;0rAhBT=^-IeWRUlDRbX{o_Dhgs|)R}Q2bY)2sDua z>r98d8>w@AsgpU#4pd4YOEC zsS)(jh8HZtM9$pRr8Tgfs-~-XR)o+BLi1|D=zfl1hKw`{rNlXP>q1u@54@G*M?9vR zbb*Zblox3>N>d+OYhv_|ZWR)9Ydbkeawu74^{9v6X%oM!F)`8*W`YY4Y@#tvRtYDlHPz(O{n{i_FGozgysI`Vv2Kq3XQQvg zotiY5Vd#jBIpP$@W(bOD@lmRq@72%GRz1neAK<7phB!7SD9!W%68NXTi z-`V7kpxIU*?9veI7xj2tv?l(A+nLNNh(Ztxi26@|ucjRDjRy`7^MvSU@?(MDoxY61 zLye>_J-eyC^M0DTM+n#$+$Cx?3V_aXzNl&`obN81I^Kvx?XjYHLHgpU zBS$V9AgD{Dc2tcfQPW~|gqHSrX4PaOp|A-U5=%-NWR{MK4{N5LgP(V>*gfz~F|eEh z85bALmw*J98+R=j=h;|!aM^eAhrKgG1-0nxq#}&K>pt&>o#yiUkAb1TcYDAmkxGZn zPY2g3&a()z7#`+x5x-AJzOPoa=bf#DEh+_9n0uZN7J4d>?7X&jB)gxn2;Cn$P-Lr2 z?-FV~I{(anw5~{RpIwL$+K_)JpjYd8zc((9&(iW|_#bctsdCpemnGOKWi@NvO?ur; zJ=3NHhal>Up+||ETciHacKX%0w%ThLU15AQi;$AAW3{O7KbV-?CAE5$pZ#=IGl4RCO%bpj21~W<@a$S4 zn2W97UB*iAG(Okwuu$A*y|z`2Ck97yt%UUbNbN7sYM;Gkhww-zA-mfonD{l3 zHCnTw@N!&mgQ;)rrCaunt`t$677Zas!54#-HHTVq+QM{`q|&B=&E`y)g+k$|pUBRf zUMNvo?T^Q!e_NyQ*Z6EjtrRi+0_47yr*hulp65$9MJPdw90ItMkSq$89Jm6+l!{zB z=#`M)xYiQp=Azb!Rj0M(9JWi+eY=9k3qQU{Cq8yY~06ZLM}8d7us*3BI5xb z`JKkC$>h`6z1h+D$IE<%7OEG3DIJ^`+3d@8+Z+skTWB67qhejS;CB^GPsz@kXL7F& zLNa7+K6?qeV-Ca2rU(9b=PPIF_~Wn7XF{7{!x7Do{6asJYF>mE z6MtfFGH|~jx0X{v|3_IB1b8ptc%OgXJ`MV^mN61d=zHs8D7(4!vQ2vF{AA;(dFE3W zN|())HffPgkRu;1{Jk^v_oDdM&emx5z~$ZFzP32lNE~?f1)}ZIMk(1MyJ4+-M0g~W8UZt`Pw#UR+xrTlWfvV2I zTjyEM}%gUGpBDT9$E9<5`|?!E~@y_#=|v-4hYIv==wBODHT_ zXMSF>&BOLI+_dKZqFPr@gVb>%zA7FbA6-e5aJM7}U8NuoPl1&3?XU6q)0I_DiW6f? z;n+uqF=CxpitaIu&lqDJ)Hw2j>PBQPlm~9P_Ra0UZnj#k4i5`b3CNLO!PH-QKutKO z=Gc`TTkpS=Er=@m$(1X|6W5Vk-2oeiB6I@v%(MqWTjbb|JJRQb4kzOR(bX77yIW~cocomKiF z&ldHIzn(mhZeM?5NOOE9UZ#MF;=7<0{JJ$x=jMjWd*mDg*a5_J)}mTUpfNb)CD0|* z#OfGK5R^G6BG8k_W!b|BA`Qe*b7EfHCI(+Rbn5ecC$-S}7G{@+Xyk^dM{}!PO@zXr zv4ZaY%Ff+;s#11$G#}iyMrCZ2TbpbzuG}4JrnfK^(JM3}v$vv8KFt~y2YAkK{N=|t zS}dHoEAgX^I=gLHYl-4QKW`38QoF!93>Fv}=Iz{VK5pH-iA=HA;=6sdUx3{He1_bf zj~JuLdvy09wBMe7LxX>GQAUVOkPj%x`V)fB`feW64@VC7p-OQgI6VxvHmB?}mu;!u zO2N+>wsJfIAhwfLP-d$yJj@l6L(w1lalCT5Cp;7IJRlB=`s|mdmN12+oZp3wWu1cl1WNU%NZC>7w+wp7%aE@i4q2m4w+nD z{t#Xm-d4CfpOu*I46Ts#>iX!>4&CoX!H$?o4X4LW3zpY9!2#m;+WPH`|1L0 znE=se2ei)zx(|Ebk?*1#D|W9>rZ97SKq{l|zI7bT$p`cV=JYQd=N?^q3g`KN8wh(+ z5J@Qd&z|z%uZn}Rit_A}MRX)xvC7^|+8SM;=s1TpqWZGc8N$rHum1_62iLo!?oQC} zQ}rNh4fB@$4c4f)vQM18v#a4y4SOO2m{to~TaMTCRMq6EKkVn2@gS27s^|Sfmab2O z;p$ChMgq1QIWfzxf9~6=F9=uFfQ%%i_JUd zTVcKSddph7iNCHdwd2~eHh{up1b*o`Toc1#XTOSE+2vzqrUCa>_s>`+*!q%RdJ~>S zI9d@=aM5eJM_(esQ*>q`d5jpeuKLJ1eF;)KwGo!g)i5IlR)N zp%rOI7z`$RA^W`f$6e$7Rs9XB@Kl;FwnQ_9+m-0{QaYD3uuxkEzZ#onXA| zO?VyCGK6N)24U!?RCD)^yl}u)7ct9EnoC^8Pq(OMD3)%}q{{+x_F4|-X z4}0>9%T|A&MXmYx%J#2n^tX2gK6yEvC~GXq|H(vEZ_a8JL8uGqsuFxBX;acS^LyK4 z{H6Pwu@t`Y1VO3;`POB^`j4ek7c0Usz&4j1%eW!05P}_@{gQKrMORPyLTWB6R>v

    7F#l(5 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%0AGck)T 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

    *Yy#C8bG{>mtZvDHjqjV(b>hU!#MfSC+6k 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

    F4d5qGH1Y1L2=Bv;a9Am|aen>iM8qmz7t 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 literal 0 HcmV?d00001 diff --git a/03PovertyMapping/uploads/reports/reports_5_43fea4b2601780d8d1ade422.png b/03PovertyMapping/uploads/reports/reports_5_43fea4b2601780d8d1ade422.png new file mode 100644 index 0000000000000000000000000000000000000000..54f317e3161aa8d5dbe195ad077cb6ed0f736498 GIT binary patch literal 333922 zcmZsDbzD?i*Z+W0k}9F3lnM$+H%JQzC@3A$okQ2qAu)nTH%h}uHzU&B-5@h`&(QEY z+~?l+bD#J9{lReNoHKjxRo}Jt+H3Fdcgk{v_bBgyKp;Z-H`1yg5RM-RbXNcu8@RJR z+9Cz~!vL$wNrFlTs5gKwcg-b~BtW1tDE_4(76^1xFE1_e!CilQ-t7~q>GkQsNnf?e zC>052(8BjOWbf|2$VL{J!-c8PzHXajd*(O#C)=nG+f7+hB*HY(Uno5Z{g3N?kY`tA z!SnL;c=8q*8s1D7B7-8_!otE0NrNJTIVeglS^6LnN!V2?fnNTf z+o5=PApHOOInY|0p(N(7|JAA_u4CdC(9i$fnI!eo|9`V3lV3P{Qa#*9{22cf+@qh7 zkV};kGNO?TYgLm=75~qbMrW!Nk6x!yS@sq=kCL1vf>ILqelBUqeQB(~yMY*BOX2mz zqfC+&2WBJ*Fh;hDMU17p4P*`D0sYy=Wfm4ZHyk#>439pX24XkACV|2jn;rh4MId#G zI(%xI=%so}-5XrTUpzPGL;kr0fqsh-i(3qj2$Ca$Nmjxt_~#m7zrgw422}uOoEz0~ z{L+Z1iAEk)i z59P)yA-rKHlcb);6yu=PAXL~v$`?irfF*HNaEJgGF+`JF<61G$&!vZzEQjHmGtI(6IQ zNfp5)*-Gp6(LgUs|LH|nCmlRfSW;~z2dIg!C7NW2&-(fE*;ql}lLX24@3&g$UiHb) z7(+rY?*FYo!@0$LIC$Nb2pjq!3vf#&otx4RT{@wWuC52SZwL_ZG`z4^$j*@pgo7w4 zS;C3Ht{3kLegAq0Xq)5EkTZVtpAX<_fOYs0?Xm%pd=7s&4d~*mgZ}#cT`ex5wR!6S z9lg1N+PSRkBD2sY5*1l??PnRBJ|vk@giK zE$(MvNATl$fm2e2QY9i--njYaR(-T#kl5V{VRLS~JYe*VM3R>#Cnwle1_ER6Qo z)(^?H2yq-21-I<1_ge>m%6E>F0z5LAG6xB?*fIA{OSHb?&+1ugU&T+X(0Tgww8)Y& zM3w0&v(tQ~V%=#acXwCsZ>U5P9MkWmHMTkrtLwJ|1d`hW-LBy{SvSn1w0lV^$-_db zivfB4UVn>^f}e$p4eZ2@bP(x%e2oEKdswC=4A zA_+}Uw#)*5c=G9;K9ZB7CM?%-y}pAE;>Kuxv*O&-(_1!e6PKW|Kc@(biI4w0h(ylP zAyjpcu~ZvDBqi~Qana+|d&?PQl-j2{Uq)!wwXVvT&6i*32O{2dCePu)VMK8ucEj&m zK=o|?pT>#uS$O!L5#czMX;orqC^5IZo;}XSPs{rapMD^}$#+lA%G}EJGH5(0oUsB& z!k#8M*WXU!tVwfQz7}2FqEkOSmn!gjGfkTb_aza761HD3i6r%X^kdL~f_$4*__3U@ z1Exe^c`^d$eWw2}jw}vi1(x&U-S%D;aY?H@=hCyYo74Pl;kmnITdu|0>u1<;{v7Kq zg**d;g5l<&SK@^VtaaPxI@66FDZ0N%aX1CpsmA;peyE*BREvLlHyi+Z^%??eDHx{| zZNg>=k&VrAprj=KW!R?A`p(@Y>dDdwnM=KFRO!^_&>7dqvIWPb!Fd2YM*;OS(sEAA zG~7>^wKp9pTRpup*fq3m@jORw^eYaEC}?Z5TH{Z|EWLTc%o`j^3kgZe=#SldCmE(L zuP{i2C6&xJ*55W{tI2(yBg~C^E}9u&kxbTa)QWp9Ik|PEAHe+LM8830^K*QnKkK*U z%=TuP=8TBeluo_C#Rdrf0IzJt)SFE)Y#jwY*;jsC0T%UGqTcC}qqwzJ`Lja&o+Z8M z<2cq%Zn-G=7j?e$ZCMV}$Z3wJ!fW>cCeSHFuyJ(7qIIF4D)Wr%5quwUqz$E-MR< z_eU_tJIN|o(8H0A!{zl*tr{!Q1br~K7#z0BuJ1Zz6+~j2qxP0~DgLg8Y(1HZy#^Bw zYKmKf5#IS3rdC9yn*u8nIrx81`ICO*CPOF>4j3=M*ByT4-Rl0GTj zPri3DHtO899$+t_wcoXBwyPuzWJ4^~cAzU*f%Een<;*U9sb9)QRt zgFNP4PDR;j*~fAFciUnXXzZueKfDqdNwcFbo5kJkPJ0!A;ao%mFM43GfxZ1$wCsl~ zrs-1AT(H-q0(H_E(;Bo*ty&Lp$1XZoT!?aL1#6RoUgDFZA1^7$Zu_&UV&nPTC`i`{ zg+gSTSx4*u7P1gRDEPUr&$;=+FuiU)lYcpp^HE64Z)U}Q8Am`uSU(3nFN`xVmbyaQ zTRy3na_3xeQaq&cbb>dnYs{fKXKP*hAs)H=Y$Mdux(jCneD!Yo9vhgkB?A^D0>2BV z^N+td_$t#@l}(X*AOw0YOe zsR7}5GY^T@scuU1?)l*Bh(7B}Ibz#uMitg+hPiToT6(VwUM-nBxS)E4d2kfIMgHQ( z-cjIdtkr{Ytily~vvk(HR`##=3EiGpCc7=8uuMoA3 z)y|VXH{UHZ=m*6wYU|d&pu4_~uF}G^%eFJUqLBv9c%8~3EvY_lAkCNOBbGM0@aT5@ zEl3@W@UG_hG1adWSO=W1WPAo3H!TPkNxO0D+&lB#^}gOu@N&NnzZt1hBf9bZ!-D8D z=qh-ogec}#Uj3?NaBx-(J4Io^R}L3-yW+s?vQ)=i3)kQjQYICCpra#(2j$7jIgw7j2NX3qV`?OHg zv5wAk5%AogPaE3r?uj;t#|IGv`0^{T6jw`Ql2QHoNJ$yOTSb*z0k%k{%fRnXk39Tn z6lcf8Gof&l>VA2*wBfQwg&`>53$?AYM7DSjjO-Vu-Z68RpqkaSH-=OdOfxp?&@ z@A?SB#LVn4O<0pcVf_#;ctbsq?D<(xcr(C~-(ixbCU%x3lxp`Bf-nlRG~Uf_7eQ|; zB3AfLGQ4gieWAOK9x+$r!*+FOCs{(e5jz-E%fuiBI^M-;<4eeJ2J}MZSCO0kI~6O! z{jx40$3?pkvZx=Yq5fW5+m79;imJ3Rj(2O~Xnrmj!SIxhKU(6>`N1)M$xZq?YGT=K z4+7G3GyAfzcejzZy|$W7`tj$sT}H?6hzG}BQjkNf;;|iF<;+5oAxCFgKgNn@7L*ch z%UVR%FPi(8SQc6)nMtau zY8x|EMS{YG){~{*zvm`b%yx(cz|qpe38_A`MS42!wu8v^`ZW9s6$G6R3~4V4W1f!n zGr)QxV*P;$D=vdcM~GuDS>E4^3NCu|(k9wxP~6mYz=MMGB-DO201g!qOfyLJ(bwfj zgqcA)=IEN&+E~=+&4i6cFFnM+eEHHPpZ7MZcd&OWB#ZP8lv0}m(u;`7>Qpd%{t?z6 z{~dmV+7>w zINe$!K17EDt_O*eWMQ`HxxZXyNEFpWEumsS?_TM~_*j=g9&tYR+$gX1Lq$+ZzHM+3{}FF027GBn<8Ic2>gpdQMwex31xGi`x$2}BGPd=@?Nf$o=!kd|thu~fQz0RBv0_5_ubYwn#>sHn1 zT*eDn-F*$)^-I?qQAi>D`p)s_!Qzk2n?yJ-U*aXNyW3UdZlCnvdSLuC)qITXkVdF# z<_38{Go=Gr=;n(%b8DFeLk>e|>9}P^&FcG6udmQ4ZxmSK?hA=0^=c<8Ckmw3WIzHQ zK8=QHOlaOKnGJ*31o^_3qv1{fvW)BGmW*ue`ToKhEky=cPI9k~a=Z@#AiSk=%YWai zbE?4yL29{LW^PcdF+tn?id3iC4r;dwfX3-s+}F+Vt+4NrL+He#*%wXMyEwIT?9nvB zLhLvB{#Wl6hD#I^JkQu`A^z^Ch?0$%O{OX-V%XjpEf7?rV@` zgYMjcxU7dfA=@`rdi!i0yvnK_&V`AZv41)5c9K!I7GgQ))XJlvfc|-i%*ck`ob;_` zxyZl`#tp7`($=jpl%DDbbF11scb}kRQ63Y5$!!uHFMG9R#6C@mlN-j#&5sg zuX#IL1X26#@A%Uulq8!`i5e0qSd?C>Co~GPw+B6-!9%P_bzI6Q4!MX@u1Af(Z!wr* z1f`~?wl%pew$8iFDry7D+&l} ze_HV=cT)#)tmnZhg!9ZIJ9ofYIXMhqTgohSv8KagyM-Cvl*`@ujYSxA1K)a7{8^ee zC0=;A7l%M_Akzzoeh+{wcvt?kM@IuXuuOu$Blb(%I|fl?Me6LGA2k#Q^_x}?!9p$_ zz_otOF6z*2cZzmqucG26Q#K~ zel5B_J8YV4d@t+26~P*UukT=2lzt+FH0QAG8QIMrb>m5g{KmW5ZhFidrtnr;)E&oa zZ1{N&9)d;US6-7F3?5ZsE@sSl~(f=iv}^` zJtw7S{(##v%KrLQnP~p)=!7Ijerv1zGnKXcEV-jgZs@pIKV9t!ha;32n~=u1NSzJo z#;+$Iz#aYqX4!iJzR+p3ptW!0qWM8eaf7}WEr`$rbwrECM?k!=6j&DAcVx)f5{>mM zzfsNv_UFVgFp8#8!I}c7uJ_HGGaCH9w@LFTaSXo*1 zP2=cxLJ|r&%FR=h@2#=48E)s?v-WuWy~U}AM*^2@WyWfZTTu(nCZ&*1s(&s?JT9le z99i#ly?3Wko7Iqei?82tz^_Kq=b4=cxcP3x(`qOKHeFH+%Y zHGX;e?pQwvN*h)t-=@E!#d@3kDtfE*lu+TZ$kj@bH@CTOlPRDXo>w^qe~M=0`_ZOT zu@z;^$WN!OYEJn>Q7n}AtQDT|M3Bu}btdtX#`%x%L}t>>TRo#Uf3hC$Y0LjY=1wx| zX!g*fnu+)HAwbDth10YuSA{m1G0VfYU$N|iNe1tsAl-!zLn+VGn=uwRXsLJ5Y^3Jq zSE9no8;31IjdIuio_8usI(D5_RWgC_Ky2b4pLVQ#A-x|F?K7HJ#wWi7G^?d>hht(> zmDNjFEV#aX(^&dB+aEz2OL-5|&19d#PhYAdKX;^d^=ZxXH1CN;}bg#j{ zHv1|Dq48-R=rgOc9?UA23p-S6WBX>Cnlh}$Tdlj%)^Q_$czCR0m`CC2n!~L?NFzdweq=HlP-*68*6|Ls?ZmgBGSLmQoxmCaNzeo|dmF zo>qKn5ht{9Vg1qchK5$`k`k2@;51GfwF~`{ELqhZf={XOxgQzd*`MJCBwtv zdKH6a*m7S#a~r=RhLdQ}TJo2dAgYaPW*cqGcHYE}X>N*|M4n$fgyo-@-Q-`NwOMb{ zsWj&dUN3tzbo2AR*Xi*QEUXv4m(_&y>vAgV6+gagV1*35LBVUppgN%*4Gb(J z*Bi*t0dNdy10kdqnT1`$R-WD^hWm}zlZRG>_;7 z!hEwiG+pDyXE)6v&3y6lW$6Ij?wNh%cGI-t*zJ|B$93j?$F;JpFkAj|(U|hlLAXfi zHhi#24c0$p3l-sm3CA)Fwx`mi?0Nyomkfh#zCG&(hApdg4_=gae|O`;)Yy<~^WpHx zuxr1mN)tL=SchY;*PI0^w?W#L(?cEjI)8f$*Zz`CyFY+djmii|axRTjBH3QE8 zJxIJnWH;MN#hoIP5-c~X?0Uz%x*nlwIt|os1$upOTC};R(pb2V(jW`--_JeP>eu0b687DQp2lgHS?TeJUj5$Mj5;yvSS!)2a!X3e@S#b7sJZLO zMTvj(Il7WWb$D^-KsAcB^RD+=^2Xk;s(iF>T zi5W|sG#QRvbL^Exn=;)F$m;gnPV(0?)T_M+L}P9lOF3bgM~siTFD=4{(vw{!Kc^$3 z@cLv$XS3u)>^-sQL4fDQ)!}+9_hp^uR>PXgNg#o807cc|r`g=&4TMebV z)8(RAzf#PW1md!bH_=D$D`(9^FSf3^(z>QDRB9KhpvzPI^!ypBWl}u2)IS&&-h}Sf zb(!@cmZMW?Sc9QT)0BXJ!=`_|G&gI|_ASG)g$ywE9V9Vrff(@9zh3TTJR??t82Fs_ zbD@@NddH9Ud<$qj4(_13BIxqd1Lby<DTI0gP>5plB?c}?G_y*D}A zh0*f4g|E%R?QMwoQSK%$fW;@=_8n^(s1)lh+tBZ5d7n_I#$V$qb7=B(J`dfDp%DLI z@KP6cJGOEAwjfW`$upVKJYpIjo2K$Bc`(IgK7#$UOuv~)J{B!L@3FV2liFuX-B%zu z>xIBd$miy${XUH%4t72un=FW6hpX#3pH*%C?kz3QSV%9>Lx7Z(l~=C4=rVz6bKJKC z@Ltmi$N~6>`IgjOs@G6^vCxoTVv9&^HdGqGpl;47J$UwzwGQ!Fv39M#NWgXYWATCA z9ju&!veP>SP+dip)5P*H~qiUZHFItm5;<)0bID*cl?UuFs&B$&5xR z#j``pW}!011*@oECi0OBf#~7U*?OQ`@;5q8AU{SxBNlM7;7jO-*QxZBjV)@eH{NNx zts6+A(a1EoPFR}*(f>yBWRza8aFY0mFleA*zs3=om+nZO0Xcs^=gF{xk%}t9pK7+H z>Wyc|Tx$EOa%U+8)*M#KIHLZ&sj!e0F?dzFfF`LRf-h3^({XM-IzQf_(6cvb=Yf`pkn?$xHysV|Fn4bN`risntiY`H(}K*JJ0sPSZA3&DU* zMBVqrkkNfFZE|CVm*bpvv8w1xsov3gY)Yq!BE=nt2|;9q@kRCe>YJ;NFXG?7BT1&( zZ^ZX)MJQ37T5haZ%(}Q#d0%hH4W9=gb6B5iwsyTY-k8rb2%MGe6JnS(8Q6+Vp{VgT zNsBpG8x)B6{{7GTxw44my(F#aVOxgFMg_&sN&F{XxEYhNv9URWjH-FL^~v_l>0~7j zwH6wce_v!-Ob%G2bkg#Ndw}72){`RGM3fI~kyEQrW70;$p<>S z*$jc|_$;b!`N!p`e%|}2KLM1=hkA?Y4>IT{LV44^`t&MX`B`tm74GW<_By6#c|WZu zm37%E@Q84_Sqe_Cd;v*f{M;nRls!U*+b9gCH$4`0^*%m;Mo^TyY~|JpT@+Oz^TRNF zE?znQ<`lW%@NJ4Gb`CjuDh z={;>y06!`if<5pp<^+EBC_44VXpjbR5?gl_GQeNfwWSa^!6Ehxt=eaV@pGHCIfT&g zewh)Xu!jgd^ur$%d(zB(d1(6Ov@H+@6#bY-*sMT!`q%|3JoC4 z+T)PICj7PLTH&$f3KDYb!RFc2Ww)~4`l-pbo*c5c_?teGau}w<@l zHNIA;6?r-RbR{ zuNi`n_`Znl&^q90wk74wwb%OjCW`;cKQF@__qUWt-uLeglLpr$Y+JLCCpGg|O`iR8VZNmetw7FD_fdsP2YU0(vrT21r^LkudWySPd(USdRDnB_)h`PZJ`m7 zkLlW)%}nFBs1&}hF{8msI`|$3?Z|^9`^>SWvOEJLMCcyZMeksr3@FuehC={#%w2ai zu_X!3y9}rpYzU(&CBmA=NcY_374y7dGxIr+=OJFYhTkLrzS9HX@akbGAze3$f3X9l z5o~uI<$iuPnRKwA(|2xU)&$zW<$0;cd^U#h@Bt+ONE~gC>3dr(MP%QPw@w?4v1BX@ z4RUy*$dJw3g>(3EmPR}25xvM5{i ztsMRHb>v>p(4p=%mow!}x;M_VV;U7%*^s*sV6pt4VlIK-rlw|GuE%eDeU?4miXI3& zh0@7qT-trldzykco$CmU`g>rHT)sH1SaS-hd@ zzms^}PLd)ibIhBJHYdp6+|?lAB6SDgW9zwJQ~V2Zzvb zK6#w9Sg+qtB2Ws9IctO1#2KsJ5k9*JB%V~f4>>)$S&c1%K^1RHkiy(oJ0c}VdC0F$ zAL1vxY&R-v>&Kg0m?^<=koMFTA{N;Pf!yX@D84OcJ@Ea{kXE53`J2euRN(XWg~qBPkHa#^LyMf{ z{gWCT2V;GoT}xaXKgFJ&zII@M`H187s2vRN5xmYLRE>CI5j7Ws|3a{0e8-xKfEhuE zAuzQd-kG=~kX>FFd$9|LdhIp1!2{rgR$Ql4^g0DSDlLc8vn@rmh_it z!fq=)z3f@mNNQ@=*@XePLKbD6kjFBNBd@eHnhMq&L{&PSV%B)WH!YakcGao8T$ppMlADEsMK3FM?qcL2f7k>FJP z=v7awAbK2y1;IdYXa|&T(TqH-oxk%71OPx>)hLZb;qVfykm3?cM%|ND)C=&8{kWANiXdup)a5Q=?{+QR>hLdVO5_@_I}F@bhZdz&~F z{d>tM@rF~0-+lPd^*IBQU1>s`p!YagLx5pqiy||({&QSh-1_R4{kc?=pQEWMmD|*P zLeIlt94U;&PFki%Q?tGN5AG6SV*;{;ti)S-5gN$sx#RS@0tjOkx`|X%Ygr77zK6L7 z#$8w581QWUN{xF@#_`7sF%E>HTBAcV3n+E_?NTJmGsnq{y(yh1|E7g)|CjhpYhFcj z?!?;i@Uy(5?#TZvn5R+kDvP2Bd_8u9y)Rp4y#=>M9oRF2S@nQ*!HrwwUi7qW67;pN zJ+C3*W^!(m+k>|kbBKkD`7Y6AdH68;p6*&Nc-snrT0@|J&QqkM-oi9#>q%&4E8N=; ze~4VQNey?d><CYPBu2)YH0fist$6YxalMM-i!pdpA?Z5&_e!c(?U~`?3 zwB6Zs5H53mi@C)2?v48KFilf-tA`f^AoCwgMpe#ly<=ns>^HXnw(*M`2B;m zWq-}r{;hWApH8I|{$&^R+BqtF`U2bNAyc_li%;Jrk5;kAbY#O^t20_AtF|U8T<6ax zuprYnf47V6=i{F#xaGHhcIV<$mGo%ieyLfh?Xb%^de^qcmZtSxt%$F>?R+bE&$nNc z7~UzKe)X9jVT0&YTKmwTb4LGfg%!w0ZOlK6poLiSda{jpzaL>Lt?k}QljPCxHsR&+ zH49v|;QKO8|33v`^qCk=BdO~+4sRYvu_&-^WkXXImYQ0{<-`ySP%k9%;Gn_2ZOk@J z$li~v0hp5fB+#*&QzC4Z9`KZx zyK4hzv{r+TX)5%E) zD^G^ub8<4WefeMIG`1&f0J>=tsZpYBL$ zA7|w7PNc%7q?@%{eV!Y01DL!zk|}^(7=3)tGrjU2qz3Ed;x(hSn=L>8vwz#NWTn2a z9{w#w>(&$0zwQIIv&SZK+cxAovRV1Xs1^LXTc|l(_rO&zP^fQIzuNI`OlRj_Q(cWJ z{wXGgx*f}(fisozk@BRNJDy4wsOqCUzOBsA)bgRt zi-iJTJXPl8f6Qy#LGa+=!z3=|=7D0Ziv0ZirR)gy!h}872EmK%iX<@~ArB7^RJ?7t zAQ&#c>*UBo=Mg zWM?yo-CTlmmD3dL>`LouKQh=RDh@q*qdmDf#&IQ~S=x-Xd*KePL&6&U98mjr_vcQ1Uzrs>#xZ2w_n zP^te*{l>&kuPoR<8<%N55_YwTfR$0d1uBkgJECb6VfsydGLF?Y)4yYx6>FCQ@cU$J zHxrP0eTbc4uN()2hoA9b-{x8u^;U|Hf)%Ewa5&Q9fUu( ztAp7Lnp3l+Lb+^bD%G*@h${=!@;Y`x{qNv#IV}B>LZ4N($x!H#QrM*NTB}DG+~ksy zldm`nP1ic+)UAhc1LDQakYm_*oh;zUFq*3rfepdGcP~-Qr@k)v?|3ilQ3M5t+4@jc zs_TrUQZCR}x%+|9(Mo7snQ^ ziZO`92wwRdM6g8sC~mU0!13Z08mz3xEyZFrC)Q&% z!l`iy)BQ@F8xti|L4h>)0p``}vZpFP6L#AzPN365I8fkul9Q8{n{+<_JLUlFWnp1K z*f<77GN3JMnZUe!{y=gAdOWKcn3mAS7ke^RqtTdur+-sBQZUJa})r9qVl+>9A=l=7S0LCruVuO~(uf4{Wt< zwJ|cY7;T}joY82+vGI9Q3RFQ}-f+I&Me`;3;n5L2b^g7(nBTvDUvh2On60trfmc_@ zAFOst)#4b)%j2D$odH}p*lpO0O-$_Sq=WR8oAzo}+dKxA*~9Te29mf#Veso@)86

    ++|80o3Phl7tH?s`IHh-+ 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

    F4d5qGH1Y1L2=Bv;a9Am|aen>iM8qmz7t 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 literal 0 HcmV?d00001

    7F#l(5 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%0AGck)T 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