From c8b95245f6295649b2bcebf6b46c1de92fe19d2b Mon Sep 17 00:00:00 2001 From: gajah123-cmd <158025334+OPPabcd@users.noreply.github.com> Date: Mon, 3 Aug 2026 09:12:27 +0700 Subject: [PATCH] Initial commit --- .agents/workflows/apk.md | 4 + .gitignore | 45 + .metadata | 45 + .vscode/extensions.json | 3 + .vscode/settings.json | 25 + README.md | 17 + analysis_options.yaml | 28 + android/.gitignore | 14 + android/app/build.gradle.kts | 47 + android/app/google-services.json | 29 + android/app/src/debug/AndroidManifest.xml | 7 + android/app/src/main/AndroidManifest.xml | 68 + .../com/example/apk_full/MainActivity.kt | 6 + .../res/drawable-v21/launch_background.xml | 12 + .../main/res/drawable/launch_background.xml | 12 + .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 5642 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 3172 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 8674 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 16198 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 25043 bytes .../app/src/main/res/values-night/styles.xml | 18 + android/app/src/main/res/values/styles.xml | 18 + android/app/src/profile/AndroidManifest.xml | 7 + android/build.gradle.kts | 24 + android/gradle.properties | 2 + .../gradle/wrapper/gradle-wrapper.properties | 5 + android/settings.gradle.kts | 29 + firebase.json | 1 + flutter_launcher_icons.yaml | 10 + ios/.gitignore | 34 + ios/Flutter/AppFrameworkInfo.plist | 24 + ios/Flutter/Debug.xcconfig | 1 + ios/Flutter/Release.xcconfig | 1 + ios/Runner.xcodeproj/project.pbxproj | 620 +++++++++ .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../xcshareddata/WorkspaceSettings.xcsettings | 8 + .../xcshareddata/xcschemes/Runner.xcscheme | 101 ++ .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../xcshareddata/WorkspaceSettings.xcsettings | 8 + ios/Runner/AppDelegate.swift | 16 + .../AppIcon.appiconset/Contents.json | 1 + .../Icon-App-1024x1024@1x.png | Bin 0 -> 227815 bytes .../AppIcon.appiconset/Icon-App-20x20@1x.png | Bin 0 -> 761 bytes .../AppIcon.appiconset/Icon-App-20x20@2x.png | Bin 0 -> 1927 bytes .../AppIcon.appiconset/Icon-App-20x20@3x.png | Bin 0 -> 3411 bytes .../AppIcon.appiconset/Icon-App-29x29@1x.png | Bin 0 -> 1242 bytes .../AppIcon.appiconset/Icon-App-29x29@2x.png | Bin 0 -> 3270 bytes .../AppIcon.appiconset/Icon-App-29x29@3x.png | Bin 0 -> 5929 bytes .../AppIcon.appiconset/Icon-App-40x40@1x.png | Bin 0 -> 1927 bytes .../AppIcon.appiconset/Icon-App-40x40@2x.png | Bin 0 -> 5156 bytes .../AppIcon.appiconset/Icon-App-40x40@3x.png | Bin 0 -> 9683 bytes .../AppIcon.appiconset/Icon-App-50x50@1x.png | Bin 0 -> 2645 bytes .../AppIcon.appiconset/Icon-App-50x50@2x.png | Bin 0 -> 7316 bytes .../AppIcon.appiconset/Icon-App-57x57@1x.png | Bin 0 -> 3189 bytes .../AppIcon.appiconset/Icon-App-57x57@2x.png | Bin 0 -> 8940 bytes .../AppIcon.appiconset/Icon-App-60x60@2x.png | Bin 0 -> 9683 bytes .../AppIcon.appiconset/Icon-App-60x60@3x.png | Bin 0 -> 18192 bytes .../AppIcon.appiconset/Icon-App-72x72@1x.png | Bin 0 -> 4462 bytes .../AppIcon.appiconset/Icon-App-72x72@2x.png | Bin 0 -> 12925 bytes .../AppIcon.appiconset/Icon-App-76x76@1x.png | Bin 0 -> 4815 bytes .../AppIcon.appiconset/Icon-App-76x76@2x.png | Bin 0 -> 13981 bytes .../Icon-App-83.5x83.5@2x.png | Bin 0 -> 16222 bytes .../LaunchImage.imageset/Contents.json | 23 + .../LaunchImage.imageset/LaunchImage.png | Bin 0 -> 68 bytes .../LaunchImage.imageset/LaunchImage@2x.png | Bin 0 -> 68 bytes .../LaunchImage.imageset/LaunchImage@3x.png | Bin 0 -> 68 bytes .../LaunchImage.imageset/README.md | 5 + ios/Runner/Base.lproj/LaunchScreen.storyboard | 37 + ios/Runner/Base.lproj/Main.storyboard | 26 + ios/Runner/Info.plist | 70 + ios/Runner/Runner-Bridging-Header.h | 1 + ios/Runner/SceneDelegate.swift | 6 + ios/RunnerTests/RunnerTests.swift | 12 + lib/.env | 4 + lib/assets/fonts/DS-DIGI.TTF | Bin 0 -> 24448 bytes lib/assets/fonts/Inter_18pt-Bold.ttf | Bin 0 -> 344152 bytes lib/assets/fonts/Inter_18pt-Medium.ttf | Bin 0 -> 343200 bytes lib/assets/fonts/Inter_18pt-Regular.ttf | Bin 0 -> 342680 bytes lib/assets/fonts/Inter_18pt-SemiBold.ttf | Bin 0 -> 343828 bytes lib/assets/fonts/Inter_24pt-Bold.ttf | Bin 0 -> 344032 bytes lib/assets/fonts/Inter_24pt-Medium.ttf | Bin 0 -> 342936 bytes lib/assets/fonts/Inter_24pt-Regular.ttf | Bin 0 -> 342732 bytes lib/assets/fonts/Inter_24pt-SemiBold.ttf | Bin 0 -> 343640 bytes lib/assets/fonts/Inter_28pt-Bold.ttf | Bin 0 -> 343972 bytes lib/assets/fonts/Inter_28pt-Medium.ttf | Bin 0 -> 342808 bytes lib/assets/fonts/Inter_28pt-Regular.ttf | Bin 0 -> 342484 bytes lib/assets/fonts/Inter_28pt-SemiBold.ttf | Bin 0 -> 343244 bytes lib/assets/icon_app/icon_app.png | Bin 0 -> 123580 bytes lib/assets/icons/Button.png | Bin 0 -> 8105 bytes lib/assets/icons/a_add-p.png | Bin 0 -> 12100 bytes lib/assets/icons/a_bell.png | Bin 0 -> 11368 bytes lib/assets/icons/a_building.png | Bin 0 -> 10918 bytes lib/assets/icons/a_hat.png | Bin 0 -> 10085 bytes lib/assets/icons/a_mini-date.png | Bin 0 -> 7607 bytes lib/assets/icons/a_mini-person.png | Bin 0 -> 10668 bytes lib/assets/icons/a_note.png | Bin 0 -> 9812 bytes lib/assets/icons/a_people.png | Bin 0 -> 13590 bytes lib/assets/icons/b_people.png | Bin 0 -> 13148 bytes lib/assets/icons/h_hat.png | Bin 0 -> 9956 bytes lib/assets/icons/menu.png | Bin 0 -> 7065 bytes lib/assets/icons/w_add-p.png | Bin 0 -> 9346 bytes lib/assets/icons/w_bell.png | Bin 0 -> 8980 bytes lib/assets/icons/w_building.png | Bin 0 -> 8820 bytes lib/assets/icons/w_hat.png | Bin 0 -> 8502 bytes lib/assets/icons/w_note.png | Bin 0 -> 7738 bytes lib/assets/icons/w_people.png | Bin 0 -> 10742 bytes lib/closed_app/closed.dart | 36 + .../a_admin/bottom_bar/bottom_nav.dart | 162 +++ .../a_admin/bottom_bar/main_screen.dart | 62 + .../a_admin/dashboard/add_person.dart | 388 ++++++ .../a_admin/dashboard/announcement.dart | 469 +++++++ lib/dashboard/a_admin/dashboard/class.dart | 438 ++++++ lib/dashboard/a_admin/database/auth.dart | 94 ++ lib/dashboard/a_admin/database/db_absen.dart | 48 + .../a_admin/database/db_grup_sekolah.dart | 137 ++ lib/dashboard/a_admin/database/db_guru.dart | 330 +++++ lib/dashboard/a_admin/database/db_kelas.dart | 212 +++ .../a_admin/database/db_namasekolah.dart | 87 ++ .../a_admin/database/db_pengumuman.dart | 58 + .../a_admin/database/db_pesan_private.dart | 97 ++ lib/dashboard/a_admin/database/db_siswa.dart | 313 +++++ .../database/storage/doc_pengumuman.dart | 28 + .../a_admin/database/storage/image_doc.dart | 48 + .../database/storage/image_profile.dart | 41 + .../a_admin/function/f_alat/config_page.dart | 277 ++++ .../a_admin/function/f_alat/config_user.dart | 724 ++++++++++ .../a_admin/function/f_guru/detail_guru.dart | 370 +++++ .../function/f_guru/false_delete1.dart | 276 ++++ .../a_admin/function/f_guru/form_guru.dart | 345 +++++ .../a_admin/function/f_guru/get_guru.dart | 200 +++ .../a_admin/function/f_guru/update_guru.dart | 413 ++++++ .../function/f_kelas/content_kelas.dart | 594 ++++++++ .../a_admin/function/f_kelas/form_kelas..dart | 242 ++++ .../function/f_kelas/update_kelas.dart | 471 +++++++ .../a_admin/function/f_murid/detai_murid.dart | 493 +++++++ .../function/f_murid/false_delete.dart | 277 ++++ .../a_admin/function/f_murid/form_murid.dart | 375 +++++ .../a_admin/function/f_murid/get_murid.dart | 203 +++ .../function/f_murid/update_murid.dart | 451 ++++++ .../function/f_notif/notif_reddot.dart | 261 ++++ .../f_notif/preview_pesan/grup_sekolah_p.dart | 291 ++++ .../function/f_pesan/chat_private.dart | 454 +++++++ .../function/f_pesan/doc_image_page.dart | 31 + .../function/f_pesan/grup_sekolah.dart | 523 +++++++ .../function/f_pesan/member_sekolah.dart | 198 +++ .../a_admin/function/f_pesan/pengumuman.dart | 562 ++++++++ .../a_admin/function/user_admin/profil.dart | 445 ++++++ .../function/user_admin/update_profil.dart | 458 +++++++ .../a_admin/widget/custom_button.dart | 236 ++++ .../a_admin/widget/custom_textfield.dart | 102 ++ lib/dashboard/a_admin/widget/time_helper.dart | 19 + lib/dashboard/a_admin/widget/ui_jam.dart | 0 .../d_c_murid/bottom_bar/nav_bar.dart | 100 ++ .../d_c_murid/bottom_bar/nav_screen_o.dart | 90 ++ .../d_c_murid/dashboard/absensi.dart | 432 ++++++ .../d_c_murid/dashboard/leave_request.dart | 578 ++++++++ .../d_c_murid/database/auth_ortu.dart | 51 + .../d_c_murid/database/db_absensi.dart | 264 ++++ lib/dashboard/d_c_murid/database/db_alat.dart | 6 + .../d_c_murid/database/db_grup_kelas.dart | 184 +++ .../d_c_murid/database/db_grup_sekolah.dart | 167 +++ lib/dashboard/d_c_murid/database/db_guru.dart | 199 +++ lib/dashboard/d_c_murid/database/db_izin.dart | 28 + .../d_c_murid/database/db_kelas.dart | 136 ++ .../d_c_murid/database/db_murid.dart | 102 ++ .../d_c_murid/database/db_pengumuman.dart | 87 ++ .../d_c_murid/database/db_pesan_private.dart | 142 ++ .../d_c_murid/database/holiday_service.dart | 82 ++ .../d_c_murid/database/storage/image_doc.dart | 56 + .../FCM_absen.dart/chat_private_n.dart | 361 +++++ .../function/FCM_absen.dart/fcm_notif.dart | 501 +++++++ .../function/FCM_absen.dart/grup_kelas_n.dart | 159 +++ .../FCM_absen.dart/grup_sekolah_n.dart | 191 +++ .../function/absen/absen_history.dart | 765 +++++++++++ .../function/absen/absen_preview.dart | 248 ++++ .../function/f_Pesan/chat_admin.dart | 462 +++++++ .../function/f_Pesan/chat_private.dart | 909 +++++++++++++ .../function/f_Pesan/dash_pesan.dart | 428 ++++++ .../d_c_murid/function/f_Pesan/doc_image.dart | 44 + .../function/f_Pesan/grup_kelas.dart | 906 +++++++++++++ .../function/f_Pesan/grup_sekolah.dart | 475 +++++++ .../function/f_Pesan/grup_sekolah_p.dart | 1 + .../function/f_Pesan/member_kelas.dart | 177 +++ .../function/f_Pesan/member_sekolah.dart | 171 +++ .../f_Pesan/notif_pesan/preview_pesan.dart | 1205 +++++++++++++++++ .../function/f_Pesan/pengumuman_card.dart | 208 +++ .../d_c_murid/function/f_izin/form_izin.dart | 772 +++++++++++ .../function/p_pengumuman.dart/preview_p.dart | 417 ++++++ .../d_c_murid/function/setting/edit_data.dart | 447 ++++++ .../function/setting/setting_data.dart | 489 +++++++ .../d_c_murid/widget/custom_button.dart | 233 ++++ .../d_c_murid/widget/custom_textfiled.dart | 102 ++ lib/dashboard/d_guru/bottom_bar/nav_bar.dart | 201 +++ .../d_guru/bottom_bar/nav_screen_g.dart | 79 ++ lib/dashboard/d_guru/dashboard/absensi.dart | 406 ++++++ lib/dashboard/d_guru/dashboard/guru.dart | 386 ++++++ lib/dashboard/d_guru/dashboard/murid.dart | 274 ++++ .../d_guru/dashboard/pengumuman.dart | 697 ++++++++++ lib/dashboard/d_guru/database/auth_guru.dart | 50 + lib/dashboard/d_guru/database/db_absensi.dart | 1197 ++++++++++++++++ .../d_guru/database/db_grup_kelas.dart | 172 +++ .../d_guru/database/db_grup_sekolah.dart | 155 +++ lib/dashboard/d_guru/database/db_guru.dart | 199 +++ lib/dashboard/d_guru/database/db_izin.dart | 28 + lib/dashboard/d_guru/database/db_kelas.dart | 136 ++ lib/dashboard/d_guru/database/db_murid.dart | 102 ++ .../d_guru/database/db_namasekolah.dart | 39 + .../d_guru/database/db_pengumuman.dart | 87 ++ .../d_guru/database/db_pesan_private.dart | 126 ++ .../d_guru/database/holiday_service.dart | 82 ++ .../database/storage/doc_pengumuman.dart | 19 + .../d_guru/database/storage/image_doc.dart | 56 + .../function/absen_excel/daftar_absen.dart | 928 +++++++++++++ .../d_guru/function/absen_excel/download.dart | 429 ++++++ .../absen_excel/pdf/absen_baru_pdf.dart | 184 +++ .../absen_excel/pdf/absen_pdf_builder.dart | 281 ++++ .../absen_excel/pdf/export_pdf_button.dart | 115 ++ .../absen_excel/pdf/pdf_components.dart | 288 ++++ .../absen_excel/pdf/pdf_export_service.dart | 40 + .../setting_L/pengaturan_absen.dart | 645 +++++++++ .../function/absen_excel/storage_helper.dart | 47 + .../function/absensi_baru/absen_siswa.dart | 758 +++++++++++ .../function/absensi_baru/daftar_absen.dart | 180 +++ .../absensi_baru/form_daftar_absen.dart | 219 +++ .../d_guru/function/d_guru/daftar_guru.dart | 308 +++++ .../function/detail_murid/detail_murid.dart | 262 ++++ .../f_pesan_g/anggota_g/member_kelas_g.dart | 172 +++ .../f_pesan_g/anggota_g/member_sekolah_g.dart | 165 +++ .../function/f_pesan_g/chat_admin_g.dart | 462 +++++++ .../function/f_pesan_g/chat_private_g.dart | 927 +++++++++++++ .../d_guru/function/f_pesan_g/doc_image.dart | 31 + .../f_pesan_g/f_notif/chat_private_n.dart | 219 +++ .../function/f_pesan_g/f_notif/fcm_notif.dart | 148 ++ .../f_pesan_g/f_notif/grup_kelas_n.dart | 136 ++ .../f_pesan_g/f_notif/grup_sekolah_n.dart | 159 +++ .../function/f_pesan_g/grup_kelas_g.dart | 918 +++++++++++++ .../function/f_pesan_g/grup_sekolah_g.dart | 479 +++++++ .../d_guru/function/f_pesan_g/pengumuman.dart | 569 ++++++++ .../function/f_pesan_g/pengumuman_g.dart | 502 +++++++ .../d_guru/function/setting_p/setting_p.dart | 334 +++++ .../function/setting_p/update_data.dart | 248 ++++ lib/error_handler/connection.dart | 69 + lib/firebase_options.dart | 62 + lib/main.dart | 146 ++ lib/register/admin/login_screen.dart | 282 ++++ lib/register/admin/signup_screen.dart | 422 ++++++ lib/register/guru/login_guru.dart | 241 ++++ lib/register/murid/login_murid.dart | 242 ++++ lib/register/option_user.dart | 170 +++ lib/register/page1.dart | 203 +++ lib/session_timer/session_time.dart | 62 + lib/ui_custom/custom_button.dart | 236 ++++ lib/ui_custom/custom_textfield.dart | 102 ++ lib/ui_custom/time_helper.dart | 19 + lib/ui_custom/ui_jam.dart | 0 linux/.gitignore | 1 + linux/CMakeLists.txt | 128 ++ linux/flutter/CMakeLists.txt | 88 ++ linux/flutter/generated_plugin_registrant.cc | 23 + linux/flutter/generated_plugin_registrant.h | 15 + linux/flutter/generated_plugins.cmake | 27 + linux/runner/CMakeLists.txt | 26 + linux/runner/main.cc | 6 + linux/runner/my_application.cc | 148 ++ linux/runner/my_application.h | 21 + macos/.gitignore | 7 + macos/Flutter/Flutter-Debug.xcconfig | 1 + macos/Flutter/Flutter-Release.xcconfig | 1 + macos/Flutter/GeneratedPluginRegistrant.swift | 26 + macos/Runner.xcodeproj/project.pbxproj | 705 ++++++++++ .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../xcshareddata/xcschemes/Runner.xcscheme | 99 ++ .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + macos/Runner/AppDelegate.swift | 13 + .../AppIcon.appiconset/Contents.json | 68 + .../AppIcon.appiconset/app_icon_1024.png | Bin 0 -> 102994 bytes .../AppIcon.appiconset/app_icon_128.png | Bin 0 -> 5680 bytes .../AppIcon.appiconset/app_icon_16.png | Bin 0 -> 520 bytes .../AppIcon.appiconset/app_icon_256.png | Bin 0 -> 14142 bytes .../AppIcon.appiconset/app_icon_32.png | Bin 0 -> 1066 bytes .../AppIcon.appiconset/app_icon_512.png | Bin 0 -> 36406 bytes .../AppIcon.appiconset/app_icon_64.png | Bin 0 -> 2218 bytes macos/Runner/Base.lproj/MainMenu.xib | 343 +++++ macos/Runner/Configs/AppInfo.xcconfig | 14 + macos/Runner/Configs/Debug.xcconfig | 2 + macos/Runner/Configs/Release.xcconfig | 2 + macos/Runner/Configs/Warnings.xcconfig | 13 + macos/Runner/DebugProfile.entitlements | 12 + macos/Runner/Info.plist | 32 + macos/Runner/MainFlutterWindow.swift | 15 + macos/Runner/Release.entitlements | 8 + macos/RunnerTests/RunnerTests.swift | 12 + pubspec.lock | 1114 +++++++++++++++ pubspec.yaml | 101 ++ supabase/.temp/cli-latest | 1 + supabase/config.toml | 425 ++++++ .../functions/delete-unverified-users/.npmrc | 3 + .../delete-unverified-users/deno.json | 5 + .../delete-unverified-users/index.ts | 40 + supabase/functions/send-absen-fcm/.npmrc | 3 + supabase/functions/send-absen-fcm/deno.json | 5 + supabase/functions/send-absen-fcm/index.ts | 122 ++ test/widget_test.dart | 30 + web/favicon.png | Bin 0 -> 917 bytes web/icons/Icon-192.png | Bin 0 -> 5292 bytes web/icons/Icon-512.png | Bin 0 -> 8252 bytes web/icons/Icon-maskable-192.png | Bin 0 -> 5594 bytes web/icons/Icon-maskable-512.png | Bin 0 -> 20998 bytes web/index.html | 46 + web/manifest.json | 35 + windows/.gitignore | 17 + windows/CMakeLists.txt | 108 ++ windows/flutter/CMakeLists.txt | 109 ++ .../flutter/generated_plugin_registrant.cc | 26 + windows/flutter/generated_plugin_registrant.h | 15 + windows/flutter/generated_plugins.cmake | 29 + windows/runner/CMakeLists.txt | 40 + windows/runner/Runner.rc | 121 ++ windows/runner/flutter_window.cpp | 71 + windows/runner/flutter_window.h | 33 + windows/runner/main.cpp | 43 + windows/runner/resource.h | 16 + windows/runner/resources/app_icon.ico | Bin 0 -> 33772 bytes windows/runner/runner.exe.manifest | 14 + windows/runner/utils.cpp | 65 + windows/runner/utils.h | 19 + windows/runner/win32_window.cpp | 288 ++++ windows/runner/win32_window.h | 102 ++ 331 files changed, 48043 insertions(+) create mode 100644 .agents/workflows/apk.md create mode 100644 .gitignore create mode 100644 .metadata create mode 100644 .vscode/extensions.json create mode 100644 .vscode/settings.json create mode 100644 README.md create mode 100644 analysis_options.yaml create mode 100644 android/.gitignore create mode 100644 android/app/build.gradle.kts create mode 100644 android/app/google-services.json create mode 100644 android/app/src/debug/AndroidManifest.xml create mode 100644 android/app/src/main/AndroidManifest.xml create mode 100644 android/app/src/main/kotlin/com/example/apk_full/MainActivity.kt create mode 100644 android/app/src/main/res/drawable-v21/launch_background.xml create mode 100644 android/app/src/main/res/drawable/launch_background.xml create mode 100644 android/app/src/main/res/mipmap-hdpi/ic_launcher.png create mode 100644 android/app/src/main/res/mipmap-mdpi/ic_launcher.png create mode 100644 android/app/src/main/res/mipmap-xhdpi/ic_launcher.png create mode 100644 android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 android/app/src/main/res/values-night/styles.xml create mode 100644 android/app/src/main/res/values/styles.xml create mode 100644 android/app/src/profile/AndroidManifest.xml create mode 100644 android/build.gradle.kts create mode 100644 android/gradle.properties create mode 100644 android/gradle/wrapper/gradle-wrapper.properties create mode 100644 android/settings.gradle.kts create mode 100644 firebase.json create mode 100644 flutter_launcher_icons.yaml create mode 100644 ios/.gitignore create mode 100644 ios/Flutter/AppFrameworkInfo.plist create mode 100644 ios/Flutter/Debug.xcconfig create mode 100644 ios/Flutter/Release.xcconfig create mode 100644 ios/Runner.xcodeproj/project.pbxproj create mode 100644 ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings create mode 100644 ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme create mode 100644 ios/Runner.xcworkspace/contents.xcworkspacedata create mode 100644 ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings create mode 100644 ios/Runner/AppDelegate.swift create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@1x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-50x50@2x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@1x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@2x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@1x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@2x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png create mode 100644 ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png create mode 100644 ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json create mode 100644 ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png create mode 100644 ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png create mode 100644 ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png create mode 100644 ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md create mode 100644 ios/Runner/Base.lproj/LaunchScreen.storyboard create mode 100644 ios/Runner/Base.lproj/Main.storyboard create mode 100644 ios/Runner/Info.plist create mode 100644 ios/Runner/Runner-Bridging-Header.h create mode 100644 ios/Runner/SceneDelegate.swift create mode 100644 ios/RunnerTests/RunnerTests.swift create mode 100644 lib/.env create mode 100644 lib/assets/fonts/DS-DIGI.TTF create mode 100644 lib/assets/fonts/Inter_18pt-Bold.ttf create mode 100644 lib/assets/fonts/Inter_18pt-Medium.ttf create mode 100644 lib/assets/fonts/Inter_18pt-Regular.ttf create mode 100644 lib/assets/fonts/Inter_18pt-SemiBold.ttf create mode 100644 lib/assets/fonts/Inter_24pt-Bold.ttf create mode 100644 lib/assets/fonts/Inter_24pt-Medium.ttf create mode 100644 lib/assets/fonts/Inter_24pt-Regular.ttf create mode 100644 lib/assets/fonts/Inter_24pt-SemiBold.ttf create mode 100644 lib/assets/fonts/Inter_28pt-Bold.ttf create mode 100644 lib/assets/fonts/Inter_28pt-Medium.ttf create mode 100644 lib/assets/fonts/Inter_28pt-Regular.ttf create mode 100644 lib/assets/fonts/Inter_28pt-SemiBold.ttf create mode 100644 lib/assets/icon_app/icon_app.png create mode 100644 lib/assets/icons/Button.png create mode 100644 lib/assets/icons/a_add-p.png create mode 100644 lib/assets/icons/a_bell.png create mode 100644 lib/assets/icons/a_building.png create mode 100644 lib/assets/icons/a_hat.png create mode 100644 lib/assets/icons/a_mini-date.png create mode 100644 lib/assets/icons/a_mini-person.png create mode 100644 lib/assets/icons/a_note.png create mode 100644 lib/assets/icons/a_people.png create mode 100644 lib/assets/icons/b_people.png create mode 100644 lib/assets/icons/h_hat.png create mode 100644 lib/assets/icons/menu.png create mode 100644 lib/assets/icons/w_add-p.png create mode 100644 lib/assets/icons/w_bell.png create mode 100644 lib/assets/icons/w_building.png create mode 100644 lib/assets/icons/w_hat.png create mode 100644 lib/assets/icons/w_note.png create mode 100644 lib/assets/icons/w_people.png create mode 100644 lib/closed_app/closed.dart create mode 100644 lib/dashboard/a_admin/bottom_bar/bottom_nav.dart create mode 100644 lib/dashboard/a_admin/bottom_bar/main_screen.dart create mode 100644 lib/dashboard/a_admin/dashboard/add_person.dart create mode 100644 lib/dashboard/a_admin/dashboard/announcement.dart create mode 100644 lib/dashboard/a_admin/dashboard/class.dart create mode 100644 lib/dashboard/a_admin/database/auth.dart create mode 100644 lib/dashboard/a_admin/database/db_absen.dart create mode 100644 lib/dashboard/a_admin/database/db_grup_sekolah.dart create mode 100644 lib/dashboard/a_admin/database/db_guru.dart create mode 100644 lib/dashboard/a_admin/database/db_kelas.dart create mode 100644 lib/dashboard/a_admin/database/db_namasekolah.dart create mode 100644 lib/dashboard/a_admin/database/db_pengumuman.dart create mode 100644 lib/dashboard/a_admin/database/db_pesan_private.dart create mode 100644 lib/dashboard/a_admin/database/db_siswa.dart create mode 100644 lib/dashboard/a_admin/database/storage/doc_pengumuman.dart create mode 100644 lib/dashboard/a_admin/database/storage/image_doc.dart create mode 100644 lib/dashboard/a_admin/database/storage/image_profile.dart create mode 100644 lib/dashboard/a_admin/function/f_alat/config_page.dart create mode 100644 lib/dashboard/a_admin/function/f_alat/config_user.dart create mode 100644 lib/dashboard/a_admin/function/f_guru/detail_guru.dart create mode 100644 lib/dashboard/a_admin/function/f_guru/false_delete1.dart create mode 100644 lib/dashboard/a_admin/function/f_guru/form_guru.dart create mode 100644 lib/dashboard/a_admin/function/f_guru/get_guru.dart create mode 100644 lib/dashboard/a_admin/function/f_guru/update_guru.dart create mode 100644 lib/dashboard/a_admin/function/f_kelas/content_kelas.dart create mode 100644 lib/dashboard/a_admin/function/f_kelas/form_kelas..dart create mode 100644 lib/dashboard/a_admin/function/f_kelas/update_kelas.dart create mode 100644 lib/dashboard/a_admin/function/f_murid/detai_murid.dart create mode 100644 lib/dashboard/a_admin/function/f_murid/false_delete.dart create mode 100644 lib/dashboard/a_admin/function/f_murid/form_murid.dart create mode 100644 lib/dashboard/a_admin/function/f_murid/get_murid.dart create mode 100644 lib/dashboard/a_admin/function/f_murid/update_murid.dart create mode 100644 lib/dashboard/a_admin/function/f_notif/notif_reddot.dart create mode 100644 lib/dashboard/a_admin/function/f_notif/preview_pesan/grup_sekolah_p.dart create mode 100644 lib/dashboard/a_admin/function/f_pesan/chat_private.dart create mode 100644 lib/dashboard/a_admin/function/f_pesan/doc_image_page.dart create mode 100644 lib/dashboard/a_admin/function/f_pesan/grup_sekolah.dart create mode 100644 lib/dashboard/a_admin/function/f_pesan/member_sekolah.dart create mode 100644 lib/dashboard/a_admin/function/f_pesan/pengumuman.dart create mode 100644 lib/dashboard/a_admin/function/user_admin/profil.dart create mode 100644 lib/dashboard/a_admin/function/user_admin/update_profil.dart create mode 100644 lib/dashboard/a_admin/widget/custom_button.dart create mode 100644 lib/dashboard/a_admin/widget/custom_textfield.dart create mode 100644 lib/dashboard/a_admin/widget/time_helper.dart create mode 100644 lib/dashboard/a_admin/widget/ui_jam.dart create mode 100644 lib/dashboard/d_c_murid/bottom_bar/nav_bar.dart create mode 100644 lib/dashboard/d_c_murid/bottom_bar/nav_screen_o.dart create mode 100644 lib/dashboard/d_c_murid/dashboard/absensi.dart create mode 100644 lib/dashboard/d_c_murid/dashboard/leave_request.dart create mode 100644 lib/dashboard/d_c_murid/database/auth_ortu.dart create mode 100644 lib/dashboard/d_c_murid/database/db_absensi.dart create mode 100644 lib/dashboard/d_c_murid/database/db_alat.dart create mode 100644 lib/dashboard/d_c_murid/database/db_grup_kelas.dart create mode 100644 lib/dashboard/d_c_murid/database/db_grup_sekolah.dart create mode 100644 lib/dashboard/d_c_murid/database/db_guru.dart create mode 100644 lib/dashboard/d_c_murid/database/db_izin.dart create mode 100644 lib/dashboard/d_c_murid/database/db_kelas.dart create mode 100644 lib/dashboard/d_c_murid/database/db_murid.dart create mode 100644 lib/dashboard/d_c_murid/database/db_pengumuman.dart create mode 100644 lib/dashboard/d_c_murid/database/db_pesan_private.dart create mode 100644 lib/dashboard/d_c_murid/database/holiday_service.dart create mode 100644 lib/dashboard/d_c_murid/database/storage/image_doc.dart create mode 100644 lib/dashboard/d_c_murid/function/FCM_absen.dart/chat_private_n.dart create mode 100644 lib/dashboard/d_c_murid/function/FCM_absen.dart/fcm_notif.dart create mode 100644 lib/dashboard/d_c_murid/function/FCM_absen.dart/grup_kelas_n.dart create mode 100644 lib/dashboard/d_c_murid/function/FCM_absen.dart/grup_sekolah_n.dart create mode 100644 lib/dashboard/d_c_murid/function/absen/absen_history.dart create mode 100644 lib/dashboard/d_c_murid/function/absen/absen_preview.dart create mode 100644 lib/dashboard/d_c_murid/function/f_Pesan/chat_admin.dart create mode 100644 lib/dashboard/d_c_murid/function/f_Pesan/chat_private.dart create mode 100644 lib/dashboard/d_c_murid/function/f_Pesan/dash_pesan.dart create mode 100644 lib/dashboard/d_c_murid/function/f_Pesan/doc_image.dart create mode 100644 lib/dashboard/d_c_murid/function/f_Pesan/grup_kelas.dart create mode 100644 lib/dashboard/d_c_murid/function/f_Pesan/grup_sekolah.dart create mode 100644 lib/dashboard/d_c_murid/function/f_Pesan/grup_sekolah_p.dart create mode 100644 lib/dashboard/d_c_murid/function/f_Pesan/member_kelas.dart create mode 100644 lib/dashboard/d_c_murid/function/f_Pesan/member_sekolah.dart create mode 100644 lib/dashboard/d_c_murid/function/f_Pesan/notif_pesan/preview_pesan.dart create mode 100644 lib/dashboard/d_c_murid/function/f_Pesan/pengumuman_card.dart create mode 100644 lib/dashboard/d_c_murid/function/f_izin/form_izin.dart create mode 100644 lib/dashboard/d_c_murid/function/p_pengumuman.dart/preview_p.dart create mode 100644 lib/dashboard/d_c_murid/function/setting/edit_data.dart create mode 100644 lib/dashboard/d_c_murid/function/setting/setting_data.dart create mode 100644 lib/dashboard/d_c_murid/widget/custom_button.dart create mode 100644 lib/dashboard/d_c_murid/widget/custom_textfiled.dart create mode 100644 lib/dashboard/d_guru/bottom_bar/nav_bar.dart create mode 100644 lib/dashboard/d_guru/bottom_bar/nav_screen_g.dart create mode 100644 lib/dashboard/d_guru/dashboard/absensi.dart create mode 100644 lib/dashboard/d_guru/dashboard/guru.dart create mode 100644 lib/dashboard/d_guru/dashboard/murid.dart create mode 100644 lib/dashboard/d_guru/dashboard/pengumuman.dart create mode 100644 lib/dashboard/d_guru/database/auth_guru.dart create mode 100644 lib/dashboard/d_guru/database/db_absensi.dart create mode 100644 lib/dashboard/d_guru/database/db_grup_kelas.dart create mode 100644 lib/dashboard/d_guru/database/db_grup_sekolah.dart create mode 100644 lib/dashboard/d_guru/database/db_guru.dart create mode 100644 lib/dashboard/d_guru/database/db_izin.dart create mode 100644 lib/dashboard/d_guru/database/db_kelas.dart create mode 100644 lib/dashboard/d_guru/database/db_murid.dart create mode 100644 lib/dashboard/d_guru/database/db_namasekolah.dart create mode 100644 lib/dashboard/d_guru/database/db_pengumuman.dart create mode 100644 lib/dashboard/d_guru/database/db_pesan_private.dart create mode 100644 lib/dashboard/d_guru/database/holiday_service.dart create mode 100644 lib/dashboard/d_guru/database/storage/doc_pengumuman.dart create mode 100644 lib/dashboard/d_guru/database/storage/image_doc.dart create mode 100644 lib/dashboard/d_guru/function/absen_excel/daftar_absen.dart create mode 100644 lib/dashboard/d_guru/function/absen_excel/download.dart create mode 100644 lib/dashboard/d_guru/function/absen_excel/pdf/absen_baru_pdf.dart create mode 100644 lib/dashboard/d_guru/function/absen_excel/pdf/absen_pdf_builder.dart create mode 100644 lib/dashboard/d_guru/function/absen_excel/pdf/export_pdf_button.dart create mode 100644 lib/dashboard/d_guru/function/absen_excel/pdf/pdf_components.dart create mode 100644 lib/dashboard/d_guru/function/absen_excel/pdf/pdf_export_service.dart create mode 100644 lib/dashboard/d_guru/function/absen_excel/setting_L/pengaturan_absen.dart create mode 100644 lib/dashboard/d_guru/function/absen_excel/storage_helper.dart create mode 100644 lib/dashboard/d_guru/function/absensi_baru/absen_siswa.dart create mode 100644 lib/dashboard/d_guru/function/absensi_baru/daftar_absen.dart create mode 100644 lib/dashboard/d_guru/function/absensi_baru/form_daftar_absen.dart create mode 100644 lib/dashboard/d_guru/function/d_guru/daftar_guru.dart create mode 100644 lib/dashboard/d_guru/function/detail_murid/detail_murid.dart create mode 100644 lib/dashboard/d_guru/function/f_pesan_g/anggota_g/member_kelas_g.dart create mode 100644 lib/dashboard/d_guru/function/f_pesan_g/anggota_g/member_sekolah_g.dart create mode 100644 lib/dashboard/d_guru/function/f_pesan_g/chat_admin_g.dart create mode 100644 lib/dashboard/d_guru/function/f_pesan_g/chat_private_g.dart create mode 100644 lib/dashboard/d_guru/function/f_pesan_g/doc_image.dart create mode 100644 lib/dashboard/d_guru/function/f_pesan_g/f_notif/chat_private_n.dart create mode 100644 lib/dashboard/d_guru/function/f_pesan_g/f_notif/fcm_notif.dart create mode 100644 lib/dashboard/d_guru/function/f_pesan_g/f_notif/grup_kelas_n.dart create mode 100644 lib/dashboard/d_guru/function/f_pesan_g/f_notif/grup_sekolah_n.dart create mode 100644 lib/dashboard/d_guru/function/f_pesan_g/grup_kelas_g.dart create mode 100644 lib/dashboard/d_guru/function/f_pesan_g/grup_sekolah_g.dart create mode 100644 lib/dashboard/d_guru/function/f_pesan_g/pengumuman.dart create mode 100644 lib/dashboard/d_guru/function/f_pesan_g/pengumuman_g.dart create mode 100644 lib/dashboard/d_guru/function/setting_p/setting_p.dart create mode 100644 lib/dashboard/d_guru/function/setting_p/update_data.dart create mode 100644 lib/error_handler/connection.dart create mode 100644 lib/firebase_options.dart create mode 100644 lib/main.dart create mode 100644 lib/register/admin/login_screen.dart create mode 100644 lib/register/admin/signup_screen.dart create mode 100644 lib/register/guru/login_guru.dart create mode 100644 lib/register/murid/login_murid.dart create mode 100644 lib/register/option_user.dart create mode 100644 lib/register/page1.dart create mode 100644 lib/session_timer/session_time.dart create mode 100644 lib/ui_custom/custom_button.dart create mode 100644 lib/ui_custom/custom_textfield.dart create mode 100644 lib/ui_custom/time_helper.dart create mode 100644 lib/ui_custom/ui_jam.dart create mode 100644 linux/.gitignore create mode 100644 linux/CMakeLists.txt create mode 100644 linux/flutter/CMakeLists.txt create mode 100644 linux/flutter/generated_plugin_registrant.cc create mode 100644 linux/flutter/generated_plugin_registrant.h create mode 100644 linux/flutter/generated_plugins.cmake create mode 100644 linux/runner/CMakeLists.txt create mode 100644 linux/runner/main.cc create mode 100644 linux/runner/my_application.cc create mode 100644 linux/runner/my_application.h create mode 100644 macos/.gitignore create mode 100644 macos/Flutter/Flutter-Debug.xcconfig create mode 100644 macos/Flutter/Flutter-Release.xcconfig create mode 100644 macos/Flutter/GeneratedPluginRegistrant.swift create mode 100644 macos/Runner.xcodeproj/project.pbxproj create mode 100644 macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme create mode 100644 macos/Runner.xcworkspace/contents.xcworkspacedata create mode 100644 macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 macos/Runner/AppDelegate.swift create mode 100644 macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png create mode 100644 macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png create mode 100644 macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png create mode 100644 macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png create mode 100644 macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png create mode 100644 macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png create mode 100644 macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png create mode 100644 macos/Runner/Base.lproj/MainMenu.xib create mode 100644 macos/Runner/Configs/AppInfo.xcconfig create mode 100644 macos/Runner/Configs/Debug.xcconfig create mode 100644 macos/Runner/Configs/Release.xcconfig create mode 100644 macos/Runner/Configs/Warnings.xcconfig create mode 100644 macos/Runner/DebugProfile.entitlements create mode 100644 macos/Runner/Info.plist create mode 100644 macos/Runner/MainFlutterWindow.swift create mode 100644 macos/Runner/Release.entitlements create mode 100644 macos/RunnerTests/RunnerTests.swift create mode 100644 pubspec.lock create mode 100644 pubspec.yaml create mode 100644 supabase/.temp/cli-latest create mode 100644 supabase/config.toml create mode 100644 supabase/functions/delete-unverified-users/.npmrc create mode 100644 supabase/functions/delete-unverified-users/deno.json create mode 100644 supabase/functions/delete-unverified-users/index.ts create mode 100644 supabase/functions/send-absen-fcm/.npmrc create mode 100644 supabase/functions/send-absen-fcm/deno.json create mode 100644 supabase/functions/send-absen-fcm/index.ts create mode 100644 test/widget_test.dart create mode 100644 web/favicon.png create mode 100644 web/icons/Icon-192.png create mode 100644 web/icons/Icon-512.png create mode 100644 web/icons/Icon-maskable-192.png create mode 100644 web/icons/Icon-maskable-512.png create mode 100644 web/index.html create mode 100644 web/manifest.json create mode 100644 windows/.gitignore create mode 100644 windows/CMakeLists.txt create mode 100644 windows/flutter/CMakeLists.txt create mode 100644 windows/flutter/generated_plugin_registrant.cc create mode 100644 windows/flutter/generated_plugin_registrant.h create mode 100644 windows/flutter/generated_plugins.cmake create mode 100644 windows/runner/CMakeLists.txt create mode 100644 windows/runner/Runner.rc create mode 100644 windows/runner/flutter_window.cpp create mode 100644 windows/runner/flutter_window.h create mode 100644 windows/runner/main.cpp create mode 100644 windows/runner/resource.h create mode 100644 windows/runner/resources/app_icon.ico create mode 100644 windows/runner/runner.exe.manifest create mode 100644 windows/runner/utils.cpp create mode 100644 windows/runner/utils.h create mode 100644 windows/runner/win32_window.cpp create mode 100644 windows/runner/win32_window.h diff --git a/.agents/workflows/apk.md b/.agents/workflows/apk.md new file mode 100644 index 0000000..fdc1622 --- /dev/null +++ b/.agents/workflows/apk.md @@ -0,0 +1,4 @@ +--- +description: +--- + diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..3820a95 --- /dev/null +++ b/.gitignore @@ -0,0 +1,45 @@ +# Miscellaneous +*.class +*.log +*.pyc +*.swp +.DS_Store +.atom/ +.build/ +.buildlog/ +.history +.svn/ +.swiftpm/ +migrate_working_dir/ + +# IntelliJ related +*.iml +*.ipr +*.iws +.idea/ + +# The .vscode folder contains launch configuration and tasks you configure in +# VS Code which you may wish to be included in version control, so this line +# is commented out by default. +#.vscode/ + +# Flutter/Dart/Pub related +**/doc/api/ +**/ios/Flutter/.last_build_id +.dart_tool/ +.flutter-plugins-dependencies +.pub-cache/ +.pub/ +/build/ +/coverage/ + +# Symbolication related +app.*.symbols + +# Obfuscation related +app.*.map.json + +# Android Studio will place build artifacts here +/android/app/debug +/android/app/profile +/android/app/release diff --git a/.metadata b/.metadata new file mode 100644 index 0000000..51c0bb5 --- /dev/null +++ b/.metadata @@ -0,0 +1,45 @@ +# This file tracks properties of this Flutter project. +# Used by Flutter tool to assess capabilities and perform upgrades etc. +# +# This file should be version controlled and should not be manually edited. + +version: + revision: "db50e20168db8fee486b9abf32fc912de3bc5b6a" + channel: "stable" + +project_type: app + +# Tracks metadata for the flutter migrate command +migration: + platforms: + - platform: root + create_revision: db50e20168db8fee486b9abf32fc912de3bc5b6a + base_revision: db50e20168db8fee486b9abf32fc912de3bc5b6a + - platform: android + create_revision: db50e20168db8fee486b9abf32fc912de3bc5b6a + base_revision: db50e20168db8fee486b9abf32fc912de3bc5b6a + - platform: ios + create_revision: db50e20168db8fee486b9abf32fc912de3bc5b6a + base_revision: db50e20168db8fee486b9abf32fc912de3bc5b6a + - platform: linux + create_revision: db50e20168db8fee486b9abf32fc912de3bc5b6a + base_revision: db50e20168db8fee486b9abf32fc912de3bc5b6a + - platform: macos + create_revision: db50e20168db8fee486b9abf32fc912de3bc5b6a + base_revision: db50e20168db8fee486b9abf32fc912de3bc5b6a + - platform: web + create_revision: db50e20168db8fee486b9abf32fc912de3bc5b6a + base_revision: db50e20168db8fee486b9abf32fc912de3bc5b6a + - platform: windows + create_revision: db50e20168db8fee486b9abf32fc912de3bc5b6a + base_revision: db50e20168db8fee486b9abf32fc912de3bc5b6a + + # User provided section + + # List of Local paths (relative to this file) that should be + # ignored by the migrate tool. + # + # Files that are not part of the templates will be ignored by default. + unmanaged_files: + - 'lib/main.dart' + - 'ios/Runner.xcodeproj/project.pbxproj' diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 0000000..74baffc --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,3 @@ +{ + "recommendations": ["denoland.vscode-deno"] +} diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..85b52e2 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,25 @@ +{ + "[typescript]": { + "editor.defaultFormatter": "denoland.vscode-deno" + }, + "deno.enablePaths": [ + "supabase/functions" + ], + "deno.lint": true, + "deno.unstable": [ + "bare-node-builtins", + "byonm", + "sloppy-imports", + "unsafe-proto", + "webgpu", + "broadcast-channel", + "worker-options", + "cron", + "kv", + "ffi", + "fs", + "http", + "net" + ], + "java.configuration.updateBuildConfiguration": "interactive" +} diff --git a/README.md b/README.md new file mode 100644 index 0000000..56b826b --- /dev/null +++ b/README.md @@ -0,0 +1,17 @@ +# apk_full + +A new Flutter project. + +## Getting Started + +This project is a starting point for a Flutter application. + +A few resources to get you started if this is your first Flutter project: + +- [Learn Flutter](https://docs.flutter.dev/get-started/learn-flutter) +- [Write your first Flutter app](https://docs.flutter.dev/get-started/codelab) +- [Flutter learning resources](https://docs.flutter.dev/reference/learning-resources) + +For help getting started with Flutter development, view the +[online documentation](https://docs.flutter.dev/), which offers tutorials, +samples, guidance on mobile development, and a full API reference. diff --git a/analysis_options.yaml b/analysis_options.yaml new file mode 100644 index 0000000..0d29021 --- /dev/null +++ b/analysis_options.yaml @@ -0,0 +1,28 @@ +# This file configures the analyzer, which statically analyzes Dart code to +# check for errors, warnings, and lints. +# +# The issues identified by the analyzer are surfaced in the UI of Dart-enabled +# IDEs (https://dart.dev/tools#ides-and-editors). The analyzer can also be +# invoked from the command line by running `flutter analyze`. + +# The following line activates a set of recommended lints for Flutter apps, +# packages, and plugins designed to encourage good coding practices. +include: package:flutter_lints/flutter.yaml + +linter: + # The lint rules applied to this project can be customized in the + # section below to disable rules from the `package:flutter_lints/flutter.yaml` + # included above or to enable additional rules. A list of all available lints + # and their documentation is published at https://dart.dev/lints. + # + # Instead of disabling a lint rule for the entire project in the + # section below, it can also be suppressed for a single line of code + # or a specific dart file by using the `// ignore: name_of_lint` and + # `// ignore_for_file: name_of_lint` syntax on the line or in the file + # producing the lint. + rules: + # avoid_print: false # Uncomment to disable the `avoid_print` rule + # prefer_single_quotes: true # Uncomment to enable the `prefer_single_quotes` rule + +# Additional information about this file can be found at +# https://dart.dev/guides/language/analysis-options diff --git a/android/.gitignore b/android/.gitignore new file mode 100644 index 0000000..be3943c --- /dev/null +++ b/android/.gitignore @@ -0,0 +1,14 @@ +gradle-wrapper.jar +/.gradle +/captures/ +/gradlew +/gradlew.bat +/local.properties +GeneratedPluginRegistrant.java +.cxx/ + +# Remember to never publicly share your keystore. +# See https://flutter.dev/to/reference-keystore +key.properties +**/*.keystore +**/*.jks diff --git a/android/app/build.gradle.kts b/android/app/build.gradle.kts new file mode 100644 index 0000000..62a7a9c --- /dev/null +++ b/android/app/build.gradle.kts @@ -0,0 +1,47 @@ +plugins { + id("com.android.application") + // START: FlutterFire Configuration + id("com.google.gms.google-services") + // END: FlutterFire Configuration + id("kotlin-android") + // The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins. + id("dev.flutter.flutter-gradle-plugin") +} + +android { + namespace = "com.example.apk_full" + compileSdk = flutter.compileSdkVersion + ndkVersion = flutter.ndkVersion + + compileOptions { + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 + } + + kotlinOptions { + jvmTarget = JavaVersion.VERSION_17.toString() + } + + defaultConfig { + // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). + applicationId = "com.example.apk_full" + // You can update the following values to match your application needs. + // For more information, see: https://flutter.dev/to/review-gradle-config. + minSdk = flutter.minSdkVersion + targetSdk = flutter.targetSdkVersion + versionCode = flutter.versionCode + versionName = flutter.versionName + } + + buildTypes { + release { + // TODO: Add your own signing config for the release build. + // Signing with the debug keys for now, so `flutter run --release` works. + signingConfig = signingConfigs.getByName("debug") + } + } +} + +flutter { + source = "../.." +} diff --git a/android/app/google-services.json b/android/app/google-services.json new file mode 100644 index 0000000..29982e1 --- /dev/null +++ b/android/app/google-services.json @@ -0,0 +1,29 @@ +{ + "project_info": { + "project_number": "1078157366732", + "project_id": "fmc-firebasecloudmessaging", + "storage_bucket": "fmc-firebasecloudmessaging.firebasestorage.app" + }, + "client": [ + { + "client_info": { + "mobilesdk_app_id": "1:1078157366732:android:cff3b9bc3759762b76f969", + "android_client_info": { + "package_name": "com.example.apk_full" + } + }, + "oauth_client": [], + "api_key": [ + { + "current_key": "AIzaSyDDAyv2LzeOXJfyDEysM1XvrW8AuC4d2U0" + } + ], + "services": { + "appinvite_service": { + "other_platform_oauth_client": [] + } + } + } + ], + "configuration_version": "1" +} \ No newline at end of file diff --git a/android/app/src/debug/AndroidManifest.xml b/android/app/src/debug/AndroidManifest.xml new file mode 100644 index 0000000..399f698 --- /dev/null +++ b/android/app/src/debug/AndroidManifest.xml @@ -0,0 +1,7 @@ + + + + diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..f02ed77 --- /dev/null +++ b/android/app/src/main/AndroidManifest.xml @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/android/app/src/main/kotlin/com/example/apk_full/MainActivity.kt b/android/app/src/main/kotlin/com/example/apk_full/MainActivity.kt new file mode 100644 index 0000000..572bd0d --- /dev/null +++ b/android/app/src/main/kotlin/com/example/apk_full/MainActivity.kt @@ -0,0 +1,6 @@ +package com.example.apk_full + +import io.flutter.embedding.android.FlutterActivity + +class MainActivity: FlutterActivity() { +} diff --git a/android/app/src/main/res/drawable-v21/launch_background.xml b/android/app/src/main/res/drawable-v21/launch_background.xml new file mode 100644 index 0000000..f74085f --- /dev/null +++ b/android/app/src/main/res/drawable-v21/launch_background.xml @@ -0,0 +1,12 @@ + + + + + + + + diff --git a/android/app/src/main/res/drawable/launch_background.xml b/android/app/src/main/res/drawable/launch_background.xml new file mode 100644 index 0000000..304732f --- /dev/null +++ b/android/app/src/main/res/drawable/launch_background.xml @@ -0,0 +1,12 @@ + + + + + + + + diff --git a/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/android/app/src/main/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..ef77be8846b3fc55a299041c28725eb3c84890c8 GIT binary patch literal 5642 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 literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/android/app/src/main/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..4880cfa087fd0c5e3f85841399ddc4a516fda46f GIT binary patch literal 3172 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 KMNUMnLSTY;Wc^nF literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..ac94c83838834d8b9326093069f1a3fc4cafb43d GIT binary patch literal 8674 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%0ABB`=Gg~SS={oHO_IjT#+it@15`1d|pWP8EKhkI4 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 Q`;P}mipq)92pI(a51d|f?*IS* literal 0 HcmV?d00001 diff --git a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..e2634dd1cafe1c18ae575a9a318672f6c5cada5b GIT binary patch literal 25043 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 + + + + + + diff --git a/android/app/src/main/res/values/styles.xml b/android/app/src/main/res/values/styles.xml new file mode 100644 index 0000000..cb1ef88 --- /dev/null +++ b/android/app/src/main/res/values/styles.xml @@ -0,0 +1,18 @@ + + + + + + + diff --git a/android/app/src/profile/AndroidManifest.xml b/android/app/src/profile/AndroidManifest.xml new file mode 100644 index 0000000..399f698 --- /dev/null +++ b/android/app/src/profile/AndroidManifest.xml @@ -0,0 +1,7 @@ + + + + diff --git a/android/build.gradle.kts b/android/build.gradle.kts new file mode 100644 index 0000000..dbee657 --- /dev/null +++ b/android/build.gradle.kts @@ -0,0 +1,24 @@ +allprojects { + repositories { + google() + mavenCentral() + } +} + +val newBuildDir: Directory = + rootProject.layout.buildDirectory + .dir("../../build") + .get() +rootProject.layout.buildDirectory.value(newBuildDir) + +subprojects { + val newSubprojectBuildDir: Directory = newBuildDir.dir(project.name) + project.layout.buildDirectory.value(newSubprojectBuildDir) +} +subprojects { + project.evaluationDependsOn(":app") +} + +tasks.register("clean") { + delete(rootProject.layout.buildDirectory) +} diff --git a/android/gradle.properties b/android/gradle.properties new file mode 100644 index 0000000..fbee1d8 --- /dev/null +++ b/android/gradle.properties @@ -0,0 +1,2 @@ +org.gradle.jvmargs=-Xmx8G -XX:MaxMetaspaceSize=4G -XX:ReservedCodeCacheSize=512m -XX:+HeapDumpOnOutOfMemoryError +android.useAndroidX=true diff --git a/android/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..e4ef43f --- /dev/null +++ b/android/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,5 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-8.14-all.zip diff --git a/android/settings.gradle.kts b/android/settings.gradle.kts new file mode 100644 index 0000000..117581b --- /dev/null +++ b/android/settings.gradle.kts @@ -0,0 +1,29 @@ +pluginManagement { + val flutterSdkPath = + run { + val properties = java.util.Properties() + file("local.properties").inputStream().use { properties.load(it) } + val flutterSdkPath = properties.getProperty("flutter.sdk") + require(flutterSdkPath != null) { "flutter.sdk not set in local.properties" } + flutterSdkPath + } + + includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") + + repositories { + google() + mavenCentral() + gradlePluginPortal() + } +} + +plugins { + id("dev.flutter.flutter-plugin-loader") version "1.0.0" + id("com.android.application") version "8.11.1" apply false + // START: FlutterFire Configuration + id("com.google.gms.google-services") version("4.4.4") apply false + // END: FlutterFire Configuration + id("org.jetbrains.kotlin.android") version "2.2.20" apply false +} + +include(":app") diff --git a/firebase.json b/firebase.json new file mode 100644 index 0000000..57e0b5a --- /dev/null +++ b/firebase.json @@ -0,0 +1 @@ +{"flutter":{"platforms":{"android":{"default":{"projectId":"fmc-firebasecloudmessaging","appId":"1:1078157366732:android:cff3b9bc3759762b76f969","fileOutput":"android/app/google-services.json"}},"dart":{"lib/firebase_options.dart":{"projectId":"fmc-firebasecloudmessaging","configurations":{"android":"1:1078157366732:android:cff3b9bc3759762b76f969"}}}}}} \ No newline at end of file diff --git a/flutter_launcher_icons.yaml b/flutter_launcher_icons.yaml new file mode 100644 index 0000000..44776a7 --- /dev/null +++ b/flutter_launcher_icons.yaml @@ -0,0 +1,10 @@ +# flutter pub run flutter_launcher_icons +flutter_launcher_icons: + image_path: "lib/assets/icon_app/icon_app.png" + + android: "ic_launcher" + min_sdk_android: 21 + + ios: true + remove_alpha_ios: true + diff --git a/ios/.gitignore b/ios/.gitignore new file mode 100644 index 0000000..7a7f987 --- /dev/null +++ b/ios/.gitignore @@ -0,0 +1,34 @@ +**/dgph +*.mode1v3 +*.mode2v3 +*.moved-aside +*.pbxuser +*.perspectivev3 +**/*sync/ +.sconsign.dblite +.tags* +**/.vagrant/ +**/DerivedData/ +Icon? +**/Pods/ +**/.symlinks/ +profile +xcuserdata +**/.generated/ +Flutter/App.framework +Flutter/Flutter.framework +Flutter/Flutter.podspec +Flutter/Generated.xcconfig +Flutter/ephemeral/ +Flutter/app.flx +Flutter/app.zip +Flutter/flutter_assets/ +Flutter/flutter_export_environment.sh +ServiceDefinitions.json +Runner/GeneratedPluginRegistrant.* + +# Exceptions to above rules. +!default.mode1v3 +!default.mode2v3 +!default.pbxuser +!default.perspectivev3 diff --git a/ios/Flutter/AppFrameworkInfo.plist b/ios/Flutter/AppFrameworkInfo.plist new file mode 100644 index 0000000..391a902 --- /dev/null +++ b/ios/Flutter/AppFrameworkInfo.plist @@ -0,0 +1,24 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + App + CFBundleIdentifier + io.flutter.flutter.app + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + App + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1.0 + + diff --git a/ios/Flutter/Debug.xcconfig b/ios/Flutter/Debug.xcconfig new file mode 100644 index 0000000..592ceee --- /dev/null +++ b/ios/Flutter/Debug.xcconfig @@ -0,0 +1 @@ +#include "Generated.xcconfig" diff --git a/ios/Flutter/Release.xcconfig b/ios/Flutter/Release.xcconfig new file mode 100644 index 0000000..592ceee --- /dev/null +++ b/ios/Flutter/Release.xcconfig @@ -0,0 +1 @@ +#include "Generated.xcconfig" diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj new file mode 100644 index 0000000..6748f07 --- /dev/null +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -0,0 +1,620 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 54; + objects = { + +/* Begin PBXBuildFile section */ + 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; + 331C808B294A63AB00263BE5 /* RunnerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 331C807B294A618700263BE5 /* RunnerTests.swift */; }; + 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; + 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; }; + 7884E8682EC3CC0700C636F2 /* SceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7884E8672EC3CC0400C636F2 /* SceneDelegate.swift */; }; + 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; }; + 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; }; + 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 331C8085294A63A400263BE5 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 97C146E61CF9000F007C117D /* Project object */; + proxyType = 1; + remoteGlobalIDString = 97C146ED1CF9000F007C117D; + remoteInfo = Runner; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXCopyFilesBuildPhase section */ + 9705A1C41CF9048500538489 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; }; + 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; }; + 331C807B294A618700263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = ""; }; + 331C8081294A63A400263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; + 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = ""; }; + 74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 7884E8672EC3CC0400C636F2 /* SceneDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SceneDelegate.swift; sourceTree = ""; }; + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; }; + 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; }; + 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; }; + 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; + 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 97C146EB1CF9000F007C117D /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 331C8082294A63A400263BE5 /* RunnerTests */ = { + isa = PBXGroup; + children = ( + 331C807B294A618700263BE5 /* RunnerTests.swift */, + ); + path = RunnerTests; + sourceTree = ""; + }; + 9740EEB11CF90186004384FC /* Flutter */ = { + isa = PBXGroup; + children = ( + 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */, + 9740EEB21CF90195004384FC /* Debug.xcconfig */, + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */, + 9740EEB31CF90195004384FC /* Generated.xcconfig */, + ); + name = Flutter; + sourceTree = ""; + }; + 97C146E51CF9000F007C117D = { + isa = PBXGroup; + children = ( + 9740EEB11CF90186004384FC /* Flutter */, + 97C146F01CF9000F007C117D /* Runner */, + 97C146EF1CF9000F007C117D /* Products */, + 331C8082294A63A400263BE5 /* RunnerTests */, + ); + sourceTree = ""; + }; + 97C146EF1CF9000F007C117D /* Products */ = { + isa = PBXGroup; + children = ( + 97C146EE1CF9000F007C117D /* Runner.app */, + 331C8081294A63A400263BE5 /* RunnerTests.xctest */, + ); + name = Products; + sourceTree = ""; + }; + 97C146F01CF9000F007C117D /* Runner */ = { + isa = PBXGroup; + children = ( + 97C146FA1CF9000F007C117D /* Main.storyboard */, + 97C146FD1CF9000F007C117D /* Assets.xcassets */, + 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */, + 97C147021CF9000F007C117D /* Info.plist */, + 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */, + 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */, + 74858FAE1ED2DC5600515810 /* AppDelegate.swift */, + 7884E8672EC3CC0400C636F2 /* SceneDelegate.swift */, + 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */, + ); + path = Runner; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 331C8080294A63A400263BE5 /* RunnerTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */; + buildPhases = ( + 331C807D294A63A400263BE5 /* Sources */, + 331C807F294A63A400263BE5 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 331C8086294A63A400263BE5 /* PBXTargetDependency */, + ); + name = RunnerTests; + productName = RunnerTests; + productReference = 331C8081294A63A400263BE5 /* RunnerTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; + 97C146ED1CF9000F007C117D /* Runner */ = { + isa = PBXNativeTarget; + buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; + buildPhases = ( + 9740EEB61CF901F6004384FC /* Run Script */, + 97C146EA1CF9000F007C117D /* Sources */, + 97C146EB1CF9000F007C117D /* Frameworks */, + 97C146EC1CF9000F007C117D /* Resources */, + 9705A1C41CF9048500538489 /* Embed Frameworks */, + 3B06AD1E1E4923F5004D2608 /* Thin Binary */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Runner; + productName = Runner; + productReference = 97C146EE1CF9000F007C117D /* Runner.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 97C146E61CF9000F007C117D /* Project object */ = { + isa = PBXProject; + attributes = { + BuildIndependentTargetsInParallel = YES; + LastUpgradeCheck = 1510; + ORGANIZATIONNAME = ""; + TargetAttributes = { + 331C8080294A63A400263BE5 = { + CreatedOnToolsVersion = 14.0; + TestTargetID = 97C146ED1CF9000F007C117D; + }; + 97C146ED1CF9000F007C117D = { + CreatedOnToolsVersion = 7.3.1; + LastSwiftMigration = 1100; + }; + }; + }; + buildConfigurationList = 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 97C146E51CF9000F007C117D; + productRefGroup = 97C146EF1CF9000F007C117D /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 97C146ED1CF9000F007C117D /* Runner */, + 331C8080294A63A400263BE5 /* RunnerTests */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 331C807F294A63A400263BE5 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 97C146EC1CF9000F007C117D /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */, + 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */, + 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */, + 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { + isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + "${TARGET_BUILD_DIR}/${INFOPLIST_PATH}", + ); + name = "Thin Binary"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin"; + }; + 9740EEB61CF901F6004384FC /* Run Script */ = { + isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Run Script"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 331C807D294A63A400263BE5 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 331C808B294A63AB00263BE5 /* RunnerTests.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 97C146EA1CF9000F007C117D /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */, + 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */, + 7884E8682EC3CC0700C636F2 /* SceneDelegate.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 331C8086294A63A400263BE5 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 97C146ED1CF9000F007C117D /* Runner */; + targetProxy = 331C8085294A63A400263BE5 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin PBXVariantGroup section */ + 97C146FA1CF9000F007C117D /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 97C146FB1CF9000F007C117D /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; + 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 97C147001CF9000F007C117D /* Base */, + ); + name = LaunchScreen.storyboard; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 249021D3217E4FDB00AE95B9 /* Profile */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + SUPPORTED_PLATFORMS = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Profile; + }; + 249021D4217E4FDB00AE95B9 /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + ENABLE_BITCODE = NO; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.example.apkFull; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Profile; + }; + 331C8088294A63A400263BE5 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.example.apkFull.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; + }; + name = Debug; + }; + 331C8089294A63A400263BE5 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.example.apkFull.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; + }; + name = Release; + }; + 331C808A294A63A400263BE5 /* Profile */ = { + isa = XCBuildConfiguration; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.example.apkFull.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; + }; + name = Profile; + }; + 97C147031CF9000F007C117D /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = AppIcon; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 97C147041CF9000F007C117D /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = AppIcon; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = iphoneos; + SUPPORTED_PLATFORMS = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 97C147061CF9000F007C117D /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + ENABLE_BITCODE = NO; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.example.apkFull; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Debug; + }; + 97C147071CF9000F007C117D /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; + ENABLE_BITCODE = NO; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.example.apkFull; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; + SWIFT_VERSION = 5.0; + VERSIONING_SYSTEM = "apple-generic"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 331C8088294A63A400263BE5 /* Debug */, + 331C8089294A63A400263BE5 /* Release */, + 331C808A294A63A400263BE5 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 97C147031CF9000F007C117D /* Debug */, + 97C147041CF9000F007C117D /* Release */, + 249021D3217E4FDB00AE95B9 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 97C147061CF9000F007C117D /* Debug */, + 97C147071CF9000F007C117D /* Release */, + 249021D4217E4FDB00AE95B9 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 97C146E61CF9000F007C117D /* Project object */; +} diff --git a/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..919434a --- /dev/null +++ b/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings new file mode 100644 index 0000000..f9b0d7c --- /dev/null +++ b/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings @@ -0,0 +1,8 @@ + + + + + PreviewsEnabled + + + diff --git a/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme new file mode 100644 index 0000000..e3773d4 --- /dev/null +++ b/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -0,0 +1,101 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ios/Runner.xcworkspace/contents.xcworkspacedata b/ios/Runner.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..1d526a1 --- /dev/null +++ b/ios/Runner.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings new file mode 100644 index 0000000..f9b0d7c --- /dev/null +++ b/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings @@ -0,0 +1,8 @@ + + + + + PreviewsEnabled + + + diff --git a/ios/Runner/AppDelegate.swift b/ios/Runner/AppDelegate.swift new file mode 100644 index 0000000..c30b367 --- /dev/null +++ b/ios/Runner/AppDelegate.swift @@ -0,0 +1,16 @@ +import Flutter +import UIKit + +@main +@objc class AppDelegate: FlutterAppDelegate, FlutterImplicitEngineDelegate { + override func application( + _ application: UIApplication, + didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? + ) -> Bool { + return super.application(application, didFinishLaunchingWithOptions: launchOptions) + } + + func didInitializeImplicitFlutterEngine(_ engineBridge: FlutterImplicitEngineBridge) { + GeneratedPluginRegistrant.register(with: engineBridge.pluginRegistry) + } +} diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..d0d98aa --- /dev/null +++ b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1 @@ +{"images":[{"size":"20x20","idiom":"iphone","filename":"Icon-App-20x20@2x.png","scale":"2x"},{"size":"20x20","idiom":"iphone","filename":"Icon-App-20x20@3x.png","scale":"3x"},{"size":"29x29","idiom":"iphone","filename":"Icon-App-29x29@1x.png","scale":"1x"},{"size":"29x29","idiom":"iphone","filename":"Icon-App-29x29@2x.png","scale":"2x"},{"size":"29x29","idiom":"iphone","filename":"Icon-App-29x29@3x.png","scale":"3x"},{"size":"40x40","idiom":"iphone","filename":"Icon-App-40x40@2x.png","scale":"2x"},{"size":"40x40","idiom":"iphone","filename":"Icon-App-40x40@3x.png","scale":"3x"},{"size":"57x57","idiom":"iphone","filename":"Icon-App-57x57@1x.png","scale":"1x"},{"size":"57x57","idiom":"iphone","filename":"Icon-App-57x57@2x.png","scale":"2x"},{"size":"60x60","idiom":"iphone","filename":"Icon-App-60x60@2x.png","scale":"2x"},{"size":"60x60","idiom":"iphone","filename":"Icon-App-60x60@3x.png","scale":"3x"},{"size":"20x20","idiom":"ipad","filename":"Icon-App-20x20@1x.png","scale":"1x"},{"size":"20x20","idiom":"ipad","filename":"Icon-App-20x20@2x.png","scale":"2x"},{"size":"29x29","idiom":"ipad","filename":"Icon-App-29x29@1x.png","scale":"1x"},{"size":"29x29","idiom":"ipad","filename":"Icon-App-29x29@2x.png","scale":"2x"},{"size":"40x40","idiom":"ipad","filename":"Icon-App-40x40@1x.png","scale":"1x"},{"size":"40x40","idiom":"ipad","filename":"Icon-App-40x40@2x.png","scale":"2x"},{"size":"50x50","idiom":"ipad","filename":"Icon-App-50x50@1x.png","scale":"1x"},{"size":"50x50","idiom":"ipad","filename":"Icon-App-50x50@2x.png","scale":"2x"},{"size":"72x72","idiom":"ipad","filename":"Icon-App-72x72@1x.png","scale":"1x"},{"size":"72x72","idiom":"ipad","filename":"Icon-App-72x72@2x.png","scale":"2x"},{"size":"76x76","idiom":"ipad","filename":"Icon-App-76x76@1x.png","scale":"1x"},{"size":"76x76","idiom":"ipad","filename":"Icon-App-76x76@2x.png","scale":"2x"},{"size":"83.5x83.5","idiom":"ipad","filename":"Icon-App-83.5x83.5@2x.png","scale":"2x"},{"size":"1024x1024","idiom":"ios-marketing","filename":"Icon-App-1024x1024@1x.png","scale":"1x"}],"info":{"version":1,"author":"xcode"}} \ No newline at end of file diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..f20b4f9fea125c8405b34302dd35cb455b51d0fb GIT binary patch literal 227815 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%0A0ke{kko}(>$m^f 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 ( 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 N002ovPDHLkV1lQX!6^U$ literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..682316f32399c2236ad5ceafd9f33d8f83a769e9 GIT binary patch literal 3411 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 literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..eb7b0286ca322d6af94c7d687ea852aec75fd661 GIT binary patch literal 1242 zcmV<01SR{4P)n3!E6M(Lm>Kz5h?PZ$TJ_n z+v{<_g9~z#1MKiF*U2DPh?L_Vi}g5?8`MIC3QVM0NU<<5s7^sr7`8Ks-rr&()Ye(N zvDqrf?b_#Ll9DmR1o}08o+D6DpvKJGysIB8tElvx=}EWk>hC%srJ=dVP}`tX|H$qy z$hsyP_L2PD?jueXDhKRDhH-{IqGdzvIA&RE}%Yv7&Q~f9^@Q zM6EnrJHfaMLNzIvlsKC!0r2|(%TZn);3|_6Kmt-aq^<u@l=us(!(B7STGiyq&s7pGlo?W^QPw@oAK6~syet9$W3p%zEx#+=@o{YHTf@pI zO5~2!{+78#V}g9~DkLDTT~oV=d)AjOTwXF>rnXtRG;%H`+7H?6;lX()pw z)keN}6<6m8Wlh#uTXgT_@zAkWQHpnOiqzG5@B7F(bdg@D;Y+IX#+$WMCk^yarL8FV zw<3=`O5rsx#9HQi_jR#;8y5xeduy#|h4D|yIIgY)#a8vJzTAhlRV-OmHa59< zUN9IW5AKX5((=uNHc;a8%Xc3L)K^+Ln1a6-hEHy3tD3zak~1|o8rZX$tbKlPzy`|{ z?GJ|k literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..dc1a3c6328fac776f521a04c8384eee253a91b27 GIT binary patch literal 3270 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 LNkvXXu0mjf8j*P9 literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png new file mode 100644 index 0000000000000000000000000000000000000000..d7c9fe1346aab29c06ff7f57e2a094f57c16bb91 GIT binary patch literal 1927 zcmV;22YC32P)EO~&9;0HgE2x5sXOMrH@8 zRDehiqy!=v2&#l61y3ms1;RStQ5}b5O@n=V3!8bB2{1OkEU-NyUfG)KK0pOgQd5*b zB-K+W5TNuGI0z+$1br={dQZU*+r*9Y>}6k%7<>$NY4GqF?+-t)2TxKd^@}}1Bu*fj z&2TEcCPYX@3@x2>g;Jn^;ZzXoN>YEEYCvCP;%HI7S}%y|bk?Lg`239uJIm-TQcU@B^mx zTacb2sK%5v)RpbYD|9JF06)-&7-d8-kc{F}H}6Q1msZvrIvbi8tC&*T-ev4;cb3hK zlnd_eaF6Up^(xez@NL^Q+}mSi8097l5lRVV67UoK3nZ&wU(T3IK1yf@S| z@yP>~H%#{$s(EQJio1V@iv|<|EsG{3Cv)jOYk*UeGDLHN1~urc+0mwH;hZH8{5^O2 z46+%)C^|oh;y7vc^svLp_Jft1my`ic9WV5CDzvPWs9`dacY1OegPD|a!ca=uIL%o9 zL{no^MX>+Ag51%TdiHl&g~lFbbC5{j;11Zk4w?_lH>#to1o*_8F7l+nAVCwWQ%FSt zaX%OY|Af6qw_l!Yh>q?z47z+p@>Hg0@BTbcs(fur3QDuJZnCGXeO-~3=2GCEPET7` zQUp7~8_DNT$$(yj@1ihkZq=pKU|_CTdP{uw8ySpa1sG9)PM|a!Bc9@;w~yH^&1MPk z*;7h*7@%6$cEP2T=^W&{5+dRg$37UZVp>B$H5IhPdcVI=l=h{?=+2^GCnpqP%GWc> zj&b9IK@k*19Y16%E!D?UQs-d@&5t_>@jp;>To6nr=<1NmUu-&xd$raV(b)>ucwM5S z7T=|`zpH;7&hPnCX7R0)E6F%2(b8b0 zVW9n52BhGL|4h3P6g>Io=Z9ZrM)4Ly!kTN zxjIo>^$}Ka8~gsOe9;3ZmAV+h+Fvw&X?~*EDICeVP}`QzwXW+s^da6&U3Vqju_jR& zQNCe$V(HrSf*GN0_fHBL^j96u+Jp4F zS9w2O6fObwd4a^fBkS;B3%(IANe#w`C0gc%9=o@mGuZUH{quKCjN^`!9Nkd7EC#Wz z6M(+PZD{Xg{_=`p&Bt@zo2X|K41Wler}E)1$g@h8pC)jgyyrvu-qX zG$zBp*;;?kWBr}~#7YKTDR03;8LauP(oF~^_T>xt!%Jdg_VmTUK>YgT*C-*3h_`-Q z)9edM9vz8lbLXbyy+2O9aRh4$l^(_bFs}2@-SgQaw^V)NUlPFqU&UlXEnD}?sm-&- zP93o*Z(EyO`Lpz%chUa<`xXN7j``+>+v3HjUiMD1Q(*3|$2 N002ovPDHLkV1lQX!6^U$ literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..06e3c20baf9d83e8c2e65bdc502101648bb01a06 GIT binary patch literal 5156 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 be8ztO6g8Fqpn3^<00000NkvXXu0mjfno=)& literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..ff029d30cc0b23d66acbc8d2f4cc3abc92b529f5 GIT binary patch literal 8940 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 literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..48559d682aca5489765a7e7874625e38e8376eed GIT binary patch literal 13981 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 literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json b/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json new file mode 100644 index 0000000..0bedcf2 --- /dev/null +++ b/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "LaunchImage.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "LaunchImage@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "LaunchImage@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png b/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png new file mode 100644 index 0000000000000000000000000000000000000000..9da19eacad3b03bb08bbddbbf4ac48dd78b3d838 GIT binary patch literal 68 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx0wlM}@Gt=>Zci7-kcv6Uzs@r-FtIZ-&5|)J Q1PU{Fy85}Sb4q9e0B4a5jsO4v literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png b/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..9da19eacad3b03bb08bbddbbf4ac48dd78b3d838 GIT binary patch literal 68 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx0wlM}@Gt=>Zci7-kcv6Uzs@r-FtIZ-&5|)J Q1PU{Fy85}Sb4q9e0B4a5jsO4v literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png b/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..9da19eacad3b03bb08bbddbbf4ac48dd78b3d838 GIT binary patch literal 68 zcmeAS@N?(olHy`uVBq!ia0vp^j3CUx0wlM}@Gt=>Zci7-kcv6Uzs@r-FtIZ-&5|)J Q1PU{Fy85}Sb4q9e0B4a5jsO4v literal 0 HcmV?d00001 diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md b/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md new file mode 100644 index 0000000..89c2725 --- /dev/null +++ b/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md @@ -0,0 +1,5 @@ +# Launch Screen Assets + +You can customize the launch screen with your own desired assets by replacing the image files in this directory. + +You can also do it by opening your Flutter project's Xcode project with `open ios/Runner.xcworkspace`, selecting `Runner/Assets.xcassets` in the Project Navigator and dropping in the desired images. \ No newline at end of file diff --git a/ios/Runner/Base.lproj/LaunchScreen.storyboard b/ios/Runner/Base.lproj/LaunchScreen.storyboard new file mode 100644 index 0000000..f2e259c --- /dev/null +++ b/ios/Runner/Base.lproj/LaunchScreen.storyboard @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ios/Runner/Base.lproj/Main.storyboard b/ios/Runner/Base.lproj/Main.storyboard new file mode 100644 index 0000000..f3c2851 --- /dev/null +++ b/ios/Runner/Base.lproj/Main.storyboard @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ios/Runner/Info.plist b/ios/Runner/Info.plist new file mode 100644 index 0000000..4822e78 --- /dev/null +++ b/ios/Runner/Info.plist @@ -0,0 +1,70 @@ + + + + + CADisableMinimumFrameDurationOnPhone + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleDisplayName + Apk Full + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + apk_full + CFBundlePackageType + APPL + CFBundleShortVersionString + $(FLUTTER_BUILD_NAME) + CFBundleSignature + ???? + CFBundleVersion + $(FLUTTER_BUILD_NUMBER) + LSRequiresIPhoneOS + + UIApplicationSceneManifest + + UIApplicationSupportsMultipleScenes + + UISceneConfigurations + + UIWindowSceneSessionRoleApplication + + + UISceneClassName + UIWindowScene + UISceneConfigurationName + flutter + UISceneDelegateClassName + $(PRODUCT_MODULE_NAME).SceneDelegate + UISceneStoryboardFile + Main + + + + + UIApplicationSupportsIndirectInputEvents + + UILaunchStoryboardName + LaunchScreen + UIMainStoryboardFile + Main + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + + diff --git a/ios/Runner/Runner-Bridging-Header.h b/ios/Runner/Runner-Bridging-Header.h new file mode 100644 index 0000000..308a2a5 --- /dev/null +++ b/ios/Runner/Runner-Bridging-Header.h @@ -0,0 +1 @@ +#import "GeneratedPluginRegistrant.h" diff --git a/ios/Runner/SceneDelegate.swift b/ios/Runner/SceneDelegate.swift new file mode 100644 index 0000000..b9ce8ea --- /dev/null +++ b/ios/Runner/SceneDelegate.swift @@ -0,0 +1,6 @@ +import Flutter +import UIKit + +class SceneDelegate: FlutterSceneDelegate { + +} diff --git a/ios/RunnerTests/RunnerTests.swift b/ios/RunnerTests/RunnerTests.swift new file mode 100644 index 0000000..86a7c3b --- /dev/null +++ b/ios/RunnerTests/RunnerTests.swift @@ -0,0 +1,12 @@ +import Flutter +import UIKit +import XCTest + +class RunnerTests: XCTestCase { + + func testExample() { + // If you add code to the Runner application, consider adding tests here. + // See https://developer.apple.com/documentation/xctest for more information about using XCTest. + } + +} diff --git a/lib/.env b/lib/.env new file mode 100644 index 0000000..285aefa --- /dev/null +++ b/lib/.env @@ -0,0 +1,4 @@ +SUPABASE_URL=https://iiucrouixgueeyhyqujs.supabase.co +SUPABASE_ANON_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6ImlpdWNyb3VpeGd1ZWV5aHlxdWpzIiwicm9sZSI6ImFub24iLCJpYXQiOjE3Njg3MjAwMTYsImV4cCI6MjA4NDI5NjAxNn0.JoquYZ2qxsYk3RE4Ih_KJxoHPjYp53SPgbF71CX8nKc +SUPABASE_SERVICE_ROLE_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6ImlpdWNyb3VpeGd1ZWV5aHlxdWpzIiwicm9sZSI6InNlcnZpY2Vfcm9sZSIsImlhdCI6MTc2ODcyMDAxNiwiZXhwIjoyMDg0Mjk2MDE2fQ.QT2SL4hXI6E8U0dPXbRvcsSmby_fAcl8l2GgEVozAVM +ENTRIG_API_KEY=sk-proj-e44a3eff-88b577cdef1ef9cb1043ef507bb3423bfc9d3525638ff2415945791c73143d8a diff --git a/lib/assets/fonts/DS-DIGI.TTF b/lib/assets/fonts/DS-DIGI.TTF new file mode 100644 index 0000000000000000000000000000000000000000..09258773c7219ad9e60b92b918e3c50b58f43c9e GIT binary patch literal 24448 zcmeHv3y>Vux!!-KXS!#mXL{a`ou1vD-Br)(xg%+{T1kx95z-3S0V5;~f{TDfTD>el z7D7n)d4YR{1F>-`RLBD=g;NCy*uh|7D#i(A-%I2hLvoYrbpm#vQc22jZgKC$0m?UM zHs60v_e}3gfa_MOZq@c~&vc*Z?sNYC{O|woLxPABw3ak_^_o4k^^ZUF`^Sj(u0`u- zc5T1vx@Ya}r*QsNoNwHJ$K>%-FZb7ouES}dzW>z8iup?FzYyK<-_dZ@!Q+SSc>LyH zJVg}zOPn7#bnMK*Q+u)_M0${@dHvx7cbu-icinAx-pgn^e|T#0z<+w;wXfjXkFak% zj0WwraTSr+fb(UC?>Kq7c*$!eqU-Bud*;|(`zI-J_)Vf~Z^rp^cTAo>E^ej2!0}#O zU%7Mgj;S5L`nG}d(?r@m$M3rPWNe@LA<>>Ne*fV3iK*i^{p>Gr9%2B#O$VNdb9>yhnR*W)u4O8PUv)cHV90o78qxwj8D1 zWXXmAg{eVN93P;c;5Y6$Cj#nXe7-<8y2paDBIh0lC?)H5E>^h58Z8%>xW_?U^P+nkqSfM0-D91ifzN_EL@Q-Unp-~w|VoXp~|*n$11yz96EgR z?#k||yQfZ^nmRx`=`OmHPErMQdWMeE6dj~V+K=xoXxl-1XbnD(&>`$6@yjt9Li=_) zfh#7_GKER1(CxUFufB)wme*Bq-#vKRB+e)4UU_AOR=1zn>2)1##@{CS)NOeBF%*689;S{?m)lC<{-t7ye*aMr%v2`xR~S%;*=x2De`?N5_yeE-SPS(5$=oICt!+?7!>8ROKKh7Q+#9sW1Mfk_y|G3jZi441!(oD@yhd>Gd?hRxHxe5wjFC$x6jpSrSkI3tDDl_ZHSGV z)~v2no^NbQKQA_N>&k}bMyF=R_P!R--w9F^@cc^sElTJkt4 zuSv-RO_U%xDl###byD(L_2)e3}GWm1D9qxer5nStE!xn`}_ESH;2G2D8qdA`=1 zZnl0}Zv9~skk$iP`p_N4_C~iJG5}oIC`Cd+0>BsY<8Rn9>7j9z_~@d7r387&>kr&P!BDml_27cRHw`63L?IJ zv{x7dgQLR~fr4xA5U(bFX^0bAhYXhQ>{KDuW=l!eTG@9 z&wNh2tzFxOwi|RcNIz*D$ZJswimqZQlT907i*S^}y_KG9G8wbtG0U)*_xIVo%LeRf zK-idwT-Gk6O}k`w7e!a4+>?rxtVp;-rcRYi!s>CB^=XyT;6T6D)2r{R=1&Vt(aNc@ z4y`1AS+DcHPSIx)lmo)O0Mb>v+kC;D&tzTAD?XETY9G@O=nQkc+zPD{M&ICQpPaIS zBPU41dBMmO_=n7BAvcg3&KZN^ZKw67OzGJi(U=kPoi^=Za9Z4dQB*8Q>RAQQ7rd2eNk~A?WsYKC-`c)k}gQErUobwyU`ORJ% ze9E-3LQ;bWwLWAT5%>xJGgNiTHE|s1lmr6VRT~H0oRM_03O5!Nt^9~5pjv&iyH-Ra z+j%VA&PwSv)JQ?FL81mJ2&>C4&x)?_CI%89r>gvB`HT!jkPH@ z{W959BxFEr>WN&;&SNT=TT@9hs)b5cJggb8_0uU+81qo>DheQ2%5QY;vYFzryy0R~ z3c7+qW`?mVoF)WQT(MEP_T)DmXJ_CQ@K5V)g@_L%5?XINRo}>&!g%Bd8nsL!mWZda zX68{L<+2IQ%0rFjP7AT1XiWZc z9p(db!NPDF`mIgsZRtnQuTse}tuGVMb%Rh<1BKBVJ`#d;k^b_J2gXFfn6QS| zt!TbBY;9;R&oYto_6D`e7?DG;EbGI~gCTY`@%bHjiKS?Dp-@JbxYE(7og4 z%SzTT+%QnzOXA^x-j))l8}*p3M~w`WM*yCa9n9MqNo`DeT2#bJiAYIL;FdxfQwaoM zT7$uTne=IILTBp+z|Y_lR6FbnK2(#dpii)DfJpf4jD`4;dy|$0RQf-X94klq_zC z&;x5VW+%aur3W!`sg%S)$6S6X#2e55%ipMv{?Y{-oa=jzQS z+f2)#yr-di*mB#@NJm0iKre-%bqoPhO_--i;+D=1S$`z|K2qPrW06LZ=INUcUh;H^ zX!sQaa{$15TS}ZT?4~s3$)+=nt=UXCR0N#Sh#3{7RL-)?)MXjE9m?nIj9rLp5vYfl zW+oHN$!QDXE*zq4#uVl}PIj%x1!cVw>pbML=}!D0ggZogsvwD7>l+<*j1;8!+jecj zn)uDc)>^qK_D&-Gk9Bq8EJsp$Q=beq=Jlr3O zWzyMHA|4Azqjr%cIItO%HkW{vWk#)d3CP4Vf~JW2aR?fd7C#f)9P^23&&434uoz_& z4h#y$Sq?~Z*f<|lH2J4MojB{EOl+O7Hz>0RLcMumM|1i-O`P=)SUdzmJzv{AZ@?F&q7+k6JQ0hAt+|*tqoqhV znSeduB0lU#{HLIza0mOM1Ik<~YJme7qS;g=w)&tNmSp6UG9De}sZ3vN)Zuk#lqnXv z@{*eJu~gLV_E@9TWtR&=5)wcHQRT9wOnNZ}S%|JY^*V=3y618UM2$CJbAe>(QeFs7 z#VwoW0jq&$nA%=}tY?XOd82}ZpdJtB7_ex>(DYKwgc-q*fWBPrfWT>6$!xMIYfaf` zmd6flk`j`cACu(7?AyB6M@8%t&f!~@>V5QZV`oKTyt~}vVcZ7F`%5NU_fjDB_Sk)8 zKh}$doR%$>x-!~=xc8a$Qjc|nJeXsV3FyDb1S~4B+*z2%@bf3aFTxg~y)%tVB<+Fp z6f>prF>5aANq)+tlUf3XjioKfRSJBz0%nP{IdZ`jYuyVo)`B2=+%*s0Sq$a}HGohl z(UXD8L3sv^G`bK^3h}gtf{5;v3>}J^!#yz2RU}EVjG8bg4;e>-`JrLo0}}*+oR46L zKzHte9mUTLf}(dcdfA@WY!MFGx)(kIG2{93?J9p4t`?2J?~(Qu_wyusu1wN+h(gK3@<9#cxVRa2|mX z*NtLPBJDj^x3RXt7n*JMgEXY7oU~9S7OiZ+% zhr#|8H#D%TSu3|DWO(4|){ooafoICKs&3?%$M$4tFyMGAKAp5-D4|K;6)STgw_H5Nb(VN$81mxDe07*970HNSxFaC8;;E znUt0+<#X^dp*(c+w9wV$_?3riY`fxUYe}d^*UB2&g&w$Bk>2$-qEgrN12;015U43kVQY%XU@ow!AO_!c9&^ z^x7pYU+OM*X~p?*gQA~27gt7bG&|~ujb=r#ij|p{tHt@@1Oy#nNQ0nKh>Nrd7jZ_! zkQCvVfP>hje3K74)U3R2&jVAuikOcH5ia83P8IXX=29x= zldxG$CwY8LB)KSE&3E&h_@$NGj7mF>}{O`rHj^k92lDw`9Zi; zMZjbX#kDp3^Zd2O`0VIUdxk4zyW*SS-)(L?M#duZsx(056U^zwXY*rcaY0*su8%a& z-}4!@3)!ZBC}2?qW5(7_I39rOr*QwrLID(FPBT(1Fn@D zjfik5luso!vy{!iw5#-%`nwTAEf-7?_e&J^nv_&Q&s=p4j>$e zE7>~gk3_4`su&#{Fx)%_Tk+tq{_1s(bDauC%NR7th_q<3oKbxD6f}$*e(pqFtBxX1 z9}RM>$f6AN{oRdC#gv)L<}IZ8py`8|NLsTBdAlnM6N(K&X}cv8aRe?AIo6^&?F&Gq zxcR?X{%(gL7tkk&Rs!S_hqD(|C1)4VBBIaLARC}NHX~L84I)#9iX3IkhGg!NCCj!3 z=7((-5zYCuK#=ws3lEyw@otPR<_6nG-2nGFjt+B_n2n5&9OuH<9p|H3H*B+x=cIHr zVg)GV2*)EPJ8@~<&Pc;B2zxqVA^ufLK^{kv2*@E(>vF+Zy%Rp_ zmn#Y~t%Mqd z?&5;h8%vj8A}Ed>L2{0cW1m*BfF#Vg+4hU#x{Dfd(!`aKf>}n~FPQRW&|onW?sdm` zx>}u2V=Pw?wSinw^wpIu74rFlD_e?%ST5_Qu1_IbWO)GyOkmi(+#R2eC4EYZ;N&`Kn$odtCQXZIF*MXF&&V`kS=Qc64 z%d#E6sgvqdMw%vb%}5KOYQgiMWPY=g_ij4XS{Z%{s~69Wnw#^6B9Sq2CI|mqE1!|& z$$gDWx+3rwAy5<|pi5&SlcO}FAmU0C1g%ZT84i%RZet1(+0~-1XVMlYo)R6K9`hr? zHOE~+BDE)bX`Bgw&p6lq?%3XQt?o9k?L@$@*h{HN*Kv+d;?4OA`gY?6XVGb2u?*?$ z>LAa)W3P(h1A)M``NMWmgr7ie9Jz617SFJ+!ZcE$CmL7xGL@8VS3|SK zl`9nsg(4G6A>ZxNOHa35u|+;-W@nL1R}rj(U_+^E7TwfQ0Hn$WTnntNiDbRNG$N$! zz)!~%n?*={ix5(;km%7=(8i5Huq)@0)9}b&j+9&t<+0BkidsAJS0iqE&u4#iWXabX z+sg|T;B=~QdSHxl{wJ;cd{o<@$c8gPNWcb>P&K{s8n^C?d8p2Uq-}>nMYxcAWi;(9 zvXq-lI3Svyk1eA4_|ln+*UZe))Etqyu2Bs^PX~1~Yza2HHJyTqXhaJlyo3lidp!^m z3&g&Yzf?JLsJ^zr1Q?Ps1P-4;MsHLCoV}d)njd<}epYG7>pMTMmG{^~Kau$>&ze*7 z!cp+AH0n7>^JG^vZpAo~NdY6QN5gv1&I`MoHZ3^WF*yyz0!#K%7sxY1`%u_&G5e0? zdM6#!;b3JRsfj4V?oc8;sETCbAanB-sp zDldDEUX~>0+J1SD(=^z7V*)^?3QA4MtZm=>Bky0*`Y}gH7&ewT822sjk9;5yV*?-; zzNhT(j#l=p+9LGwHyc;vOJPhFl6G7JBg&b0E?J1$J!D(ZLb+U`yDNgIh=JlGK!nH{ zq9Z9Qim-G-8o_WAAa^>E5)Z<~4K9=@jm8!2$HA>~JZ49`iZ)m%u#1aq9SnPdTH!ObRfQ9)}T0>H{z!e`A!Es3n&P-Kca zuxaGS*-TPwh~g3m7vCIt@a=D`%vvE06wn#aG>YnfBC%*8f=^ z`Q|7Dw;a5vhL^uS`t#sr=Qg+_=Q=YlAA5acMJOoq`B6LV21$Zi3B_4l(O&{&zU zptnM?TtuNEm9#AsD4S8v+Qz|Jm^(^Xrl+}li8LP?{JGn-o4b{Yi(UMJ#wBWn=6Lge zf$ETEu-5^v=1+Qz$Q>4 z4LsqAY46)(g($Pa;7B0{U6V7!7r*>M>yhu=Cw}&&qu<@Ajr_}__aOyk&y0(2%{&U; zb?cl$WNU$>G&z{F+I3ED!s|=m6l6z^D<6U@A$#eE0j^nc8gUBBlpRO!gSY`T zhk%)kQ4^y-wAOEH1a=Qwp9fcUG=R#Vr=@4MlqG?k(vG1oWl3aZ>{6CQR?aS(0b9zF zcolI=SrT{!OIZ@n8&tl^$Vkt}F73nTzNtUuC{AQp(2)>jh zS;~?i3bd3ZQKfE6SrQI=_+Kzy%91Q)NxZO|FDL0$$Sh?^5dK`sk}PFO{#Im3LdZjq zI4I-qDtcn0BBoy80#h>)>natHi{uJzt}HEc(gcb80y0_2gg|OFpW-@gq z_3RlWvyfT98~dDEP)RMPHQml413a3V8K>{aOi(YfBfJ<3iY)O~K0^N9f&~}=znWY~ z4X38A{DF4wM_+SudtaK1n=TEhuT(BwC>34Y@Nxx=8x6QA;uVuTN)Ssa`3`wWu3mtI zN>_1_e99-ojZ7oRcmFxNqN;31C5C{f(cw3pq2`&rLuF3dm4}WyI~`}|mz^`sA8U?ShvvEdWKCkxRw! z`a*tq{l?LpKF~iT2CD=8dOf?kYei#urM$jexjNn3 zx?RMlv~M7L;^lnRDjjOIkue&_`{UPQXzt`Q34FR$M;2R`-?D@N!=$jbWwBsU==E0k1|C&Z6ERkj1(#Jfr?6 zp_o9GKH!m`a+QvGs~O=D;gB9d`GGD+hxeZM=^>=zQEK7ltqVxc)v=tCTT~&(sfHRw zO^6&Svbdv#4>8{3-k5ngBhCW;e_T6>S1Nb}Z;q`+O=P~I>!d{^T{JdEDyJJ`8sD&S zczr&X1$kHNU$}nneP6iYhWo@VH+S zcC5>o|F1+v9s6rUUD!+L%Lc!fCy2T$*#ACJ&!t4Y{n+uG3i|5%GEx86i3Uz!S;iNL zoIfF|VyuI=6D`M@i7U|8$};wMh*rHywE8}xHAU=SB^tsrhyEV+|43BJ6RpL|4eM58 z|8t`C*oR*t+JNVb9LLIwJF)*OqEX;%(-qj?AliJMXv;q%y5xIA^~Z^}{%4{~0ms;T zM2&}tww)ll46tp#jA#eo+VMY$#{VhNPT*_jD@2$76QV1UL{~1uekb;qi6*Mp0p|qp z*2I{a*Mqv{HuDfxTw7>6ibk+17#mIGdn}Vyc`q2gE?+2imF#kNPj98Ke_)wY9bCR* z<*L@86f5QSdFMWXd;WxeN^j7Az#mZcx0-eiV=>76kY>D`<{_SqKo#_i zO$6P&myU|{&=Nxw$14%_z(2%}Z~75zm`Qhk5#RsTZS%hWnwIf(0{6@NY?^St<^4Er zpVMD~!m*1-)N}Y-UVGa8=6)C1ea~O?n#Jz*w@X+sX8HZ+7{?F6<-c9LU+><(vHqVz z-)Wi>PoZ!0ul+lPPl;#XU(NyJV2DhtP-_N$03Fs0?8M?oq+KiCn0Zt@0li9r9M*@} zJoCuRI96tSi9U}SpIunNFG%mwBakaidXgTX=jeV&geGK%1=$20A$}paDkl(lCGdAJ z`QK3A;*V*)ln_i13vSzvoxGbG;Fh&og&@1WE z;lK>GG3;pHy%ytkZ-GpwV-YO%6F>nHDw2YDD?bZUOEUKe=1G-D|*=+?RJc|92ioM0J3*j$rX% zgYy!S&kbOewpo1v;*0bJn1PUs^aX&TvM)UvL!GzmONZGA5YSUV*EQYU81^83@=m>j z_ID7=O@%s_x7)n~9=6GS={gF44el$5r41JD3q$^xzVNo7_vH40*MQ$bI{FG?z%fhq z6$}~%iqp`d2k>X$RBf0@U^ncYw%ff118@Ni-s$|`xvv=aWf)jqE{vrUfc^1}cyjWitiVHOa@9pNPR6^SG>DXd6}zObqo z_Z1Ffji`vfFAxTPa<}=<($QP^Vts+KQnIfo))t5olXWy2i-MvUeZfdH6m>VAQzL46 zr|ovHA&R~r=DgGPf!7cPiX&;J?`Slg%b2n+Ga8SA`ofW5BpB`V#dyYAS>CPlpJha` z&Pcntec;_7`^w0^%uGJZeSxXXxQV_ZvM&>-YLk88CwFVNdkrS~f=KmF=l>44qOvd3 z%ocL+_|R9(v}9jc6ftPd>MI()XkX~wr6r{iB&0zJQKTDD5K&PvKqRGO zzH99{GYqKD3JWt;ONMne(v zah1At8mwGAXR)XaPet{8(p^5^DG>LJo?mdG2k>NLocKgH}0Yem!_q|&BA!*UIq zTrAs;>$zMvZ`Y%3c&#amZi^htCenUlr?!2x$0QLd^7_v1J=?VnsrSJTBBd^H zy}L)-f#D$&h*vL9GU|L?kjYs^0E52AZH2>wCVs z)>*7jq@{=(Py3-oAK_jI>+$_SB@?AmsEL@9)jZ4v>H_9P^$7EcQB{;t-57&8&RCAQ z(pZVP+Bk%H%s7d8+Bk#xrEvxGX9KM?o}0untD8+RTbS)JJDL432bzO0Bg_cQA?7U1 zIpzC1(g+m{cspsxsKF<*7en!cKt zwSDz58~S=+_Vo3{?B(l?+1E$zz5%|Wn8SVVV9xWc#oXZAgt^Uk5c8<-d(5AFzhGYV z-N3x%yM=kj_gs{vEXrerSRt74taz9Stb~|}t)!UAtu&aKt<0D?tQ?rRtUQ?cEXrvW zwhChwwMt-?vdUmqv8rHJv#Md%vT9-0vFc(rv6^5uvzlRcv^rsSx2TJ?$XbHA%6dD@kHE4!R9-?b<=NDf#U*LAOuRS&N<1hLANFjm=8O2FI@6-J4qFy{o_O5&Ik zgYG1f%f74DHicWOyxbPl@H z;I18Xr#=9`w&A0SUI9%FnFu zZqUB~8a5;7F36f7y6%Nu$X^v^z6uY9DMC6OgYKe|LZW3-jC?Bx{fpx+9dwt#T{!42 zi92`DT?%)Wpu05gbU}9++|hL`OW6WJ|8lsP_@t-wkhT&g)ubbbE7Eo}9Z&d%|>} z1YKgTYjNG4>wfsw$K45+j@?^o;@e3&6aPgjFZ>#ErwjEcN9ex9>y5ju=L+@86VBbJ z8iqrq;5)#( z?u@Gs_xcgGvR8|~#MW_j&V4CGZ_?`^jkpf?%KW-l);_pHN#W&mbe+1OD}PnP*fr|o zm9_^d>elQCTB4zpq9!>H_)|VLU&=?zs0%T5TXsN(p`hj3A(l@cd@d0}?SkzW)nZyMeQ1R)*zLR) z`nxa{3Dbvkd&rx(v}V1?BUG}HQ%_Rw# zlI~4?6Xx8 zqWZD+(Ylly-`?aD)kpeJ*2=+fx{vlGR$ufYx^=XSLSIQCN`G|CwJf4^SGQyX%B1z@ zMV(%xtovp=uT;7Wxd_$Ri>+&;OBpKpD48ZSR>@v2x$XtJG;O6nXuWJp+v#2yyKl7R zsxsPF&kNZXnS|1M{~Zav8cSZRci!Ybc3Gm+42?-Mb{h3*=~_@CR-EV+TrvFvCdQ1&x#MEP0)F>Xx z{Gv-(n7V4s)NL9&W?jPel&<(kjmzbbx*jvNE^D30_NO+E>Pwvo_a^m^>W_J1B$$Vs zqx(;GtE{T(E5uImnq>RGjh$HP*%_pc(_1P!@4yh4FBR>B@QqY_QNGA++HL2M&M*A9 z{)h41T#_v|Rs|XH59*Ht*tL*l1L%ZoKY?H11YE-}N90O<|4(^sq?{Wg*ZDkKYFm$y$3MW1Cr$nd z)^%j{FVJPx_w7tk;hbkO!u=uWZcW+S!9c0#o`na1uDFjO3zX(wiO7`>;dC1RF02k? z6r#RewH>(oV&wFO@wQ*Ue5JrEW14m+|&G#wA_fewYljfF ziNvu=O8x&b`-oc&-TPPUl=fClb?T)sCy93)wEaJc&f^tqJMxb8GxK5)w>b00-(Y0{znM73HV>?Uv7HMTcRI>hO=K zBprNnrNVzessA8ubiNU>({M^jh1mF>NX`FiJe3IF)5wQDZ9mfPS6D^az;dE&?fzSy zaxWTPC){>P;y#Y$AAKL&KNtd0wwp8hF6i@jbV zxL?Gx3FFk3#GGu`)L8wa?C9%1*#jiM?-#g+d_5v>`>tuCu33wC{#G|hZ1p5v?_T6c zY>-aDICG-IYugBwt`OlXtKE_FVIFLQok5mif3Cw|kAWMo1D*!ael~0-Or2nQJ-9vs zI&Ki1Pvm^^>1te;9QwYwoby4zt<%uxI7f6@d~;$GIp*bS@#*VenSLdX&SR9mHZO?J zY!lhboDh9qa+&EocQ?Y^1YQ1d-r8azHSykz8;awu`_CnCmun6?|yFl3!4QZcVM>z zeXn~Ik+*!a$w$*gs{J>q%yXg43Endyk}vzW(pnRs?H~ zAYS~Lq&ZZ2|5L0wGQ_tKJ^Ge42kT0nA9nKgX@lfVCnamow5%lyU{_|1s;LQWSgU*l zm*F7%0P!IUYtG2X8UHp6>DhUtxwVM2s<7t4wk}99D+B$GviNTBEayDw^^_d$cGg(w zq-D$=WE5q+8?_#`4&kQm_8QVl!+v6pmsSL8v4}$jmC|l1>k;h>noPfo! z4i0g@6!s3d0mWb&%tIej`#MQ=WS-^aF*x$DZzXciL46W4?)DvWf)#Kf~7Z8#ZSI5l&p(ONrlt z@QtvOp!eVmk}N#AkMO-G)$Q-FXG>b&M8XgA{A$`8kR59i>lx5Td_ORzv2XO&%wr^_ z6x>!F-Q!88w`NnZwOR6}J=x6UsZM&5eb1O?_9o9SN`&QQ5mZbI0o}$m= z_H&OtWyoCG=UW*_nWoxtWEfB4N3dU=;QKZ5cFZ|mbMkB>_1I%{)Oce@8)<<&8(W-z zSec{=`;&^utBH17I($9O7)T#iL{L)v$Z>h8BzDVYuxB*1E^pXlm<}2YA4I!5Nr*y z4_mVdcEZY_t?$o;S@7S9^QC!;PkXJ91se0Bl=X$l0zQ+mnYpnA^ZfE?7zb)uKDa8i z>{8OqN(_u+<}wL0*Rj66ETz&Wt2A@DWX9gmV za6QZ#B&~d(NM*CSR4}JVSF@qi!meeumRd$rK5y|h?&;E%G&`#gBOlN=yQ-bimHkFn z?a${lboj11j?o>vnA9`!5KrG5Ah~@XN*1%36f}oOZjY$cC?_w5|vStxJ z-;x0xPXza*l9^bln#mz=koeNdOhK4mV4oB*QxYe5ZDy8UW*YP%i}Y9DNGEt*-Iu<6 zBCxi4BCY8gZ~Y(1dps*n*LN+q6$RCS&}5;!KUoSfK6 zVGA6WR`w|=qVM_ZbNy7-2ky)IxVL1z(}%Ta0jWhCO$BEoI&oZP`Kr*rkIQ6Zy_{y9 z6=|=ONOKOdc_hot9x~hP$=ElQF{C_m!mrX%-?P?Br12eNTS}he3Qq<__ynd*4l)~i zxehP#^mFw!9|6SDhHz7*iZ0#g5Q&9x1C9D!i69=b)2~OqvC4YDG-Hy zNee0iQC0*f^ca2}n_3KhHdfdX^ z^(vgNc6y1CvfkBXk{L17mu=*+&HY3cM&oRgGj>Ng5JN+0OZaUX>iAhmH)pW$$BLl^H)pC1%tEPJP+8s^3rqOY|b`&s%+ z?&#;^dd(etuKicfh`n_=&riKG0&JdReiVgv;~%VpZ)D_y=x2N}&**~BtzLST6?_io zJ;RFqjOx|rPtnhm{?+p#{cK0y|M}%-IGhJWJ-3Pdd?xrzMaw<&~E-4KQ6)@Rb*xwCFx)-pOwfBbGnpV{ho z9xu*UUz}$~pR-aP^g%OF^H=AH#?8oIJzYUxV$zIGJC?1_+PwRmZ^b^-@WOFMK{#nb7eXF;})q7gbm^fe95S=&fO0Y5dTHExY#joN_ z#BY$yXOB}O`X1~0sBl@>1H1}pSi4n{Xw3C|+AQk3G85>l8vRWR58pMF#Hb(>?4>G+ zsh=;brwm-{d~|&8epktAo@3n#zUwOKUqU)MEbEPC9`|L53IAYR;d~~l-L)RQGOi3Y zipn59Hxz@ujz;@i1!M%DP#>W`?_$-G{+^wV_Nm5x`4Q)4d^XUdFXuTmIcqr2S|l@L z+-w;eSj*X5N1g@KuQ^A^hTVzJ6SQ%rF(-a2ORd^6nmBK=-l>a!3qEhNjc-j1<7}Xm zH^xNiUIcnj+&4j5v40N8Z2$WOJb zys=t;PC$?CdK}f~#f*s#YeUXplCmxyq2~hUSK7pq2!9XakCpZgXTSQ~GjNf3`V2NY zesCPs=c9Ve_xdMivZNUiyT5wGp1 z)aOxuNN1O4V!j$uR-e!5^Cho;>+x5g0S3?F_4$+6_x1S9IPj;jK<5!Xj>Z}jys>RL zX?;dLwVd?0qU(swzSw)l;ro(2S8?VV^(?rWuN?kbAN1a~mJD#-kfxkh^yYe@c@$mX zY}lvIVfDE0J)?{Kz{@*$UTJf_Xw;Pj8rrUjmY@C{lD!x?rlt&f?n;f!>q@pbV{q%w z*w9wkIRa%Qhh86eWn_-l^DF(agML?*qPkZ zd_N(S^6R>6;p~RzgVxtFg*os&r>P8QToUxMx$%umv=hp^zNYBcAetd8*n{P1TVizE;TVw9M4^p`XS$%(xgwHu#os zW&`GNdDFNoi()WuJ!#9T(dQM@+*7`d^_*S$M`o3qQkU->4anN_w*#B zg3X}A^nsnA)5(qfHZ*~bB9GR?AGk9B`8{g|VWh9qp!+;ctIMIzO5JE^%etmOZYVEx znPWs_u?N*KKfR%bNH+XVGiNL(ekAC1W!WHaV3RkWO%-)Gis$LMz6#}_EcqV-U3LrV z0eje|oG?B40xrQ_n1|nd!t?jE0Od}E9Uqp#Oc+m?queY4@mE>o?-&_409_Ead(>q`lneD%qmfD9nQ$HI#Q^kmbgH?swxHq#I}7-J}g? zaAo=2V_DC}Z8$Pt%gCrh-;ZJl_Hfdi<$>(fRL)l^SM+$GuaR*ovl3(C6Ta-4ggnm6 zX!SAUOJmLsuQ6ujmElHz#;9}hyYB*H-X*=x<}(->8NX7pUTlkB8}jE&TR%$_z7Xx3 zB46pg^LPD5{mSRK(KqBc-6Iv}j9nvtFuO__BfXR}+VYv1v60QlyDat_$cpdwJ^q3* zXow_vx)3=oltfPlVy{5n$0fzn=Zrh~kwt#KBPM1YXe{YC>sdrT`tS27R66=zVIY*E zKdPZH2R6V#_!*wlyOTj~s0^(E9X6)ID%cBO!VPkeAo;};Rhi7 z_=z9~l!xZf8)m@!@F`q`JAC&&02!b-5H0~SPjChp;}Sd(NthUNLIr36j71420pm}? zkKq*j0+Aw#k^|#gqIZCCD$ym8#7&?lUpr3$v_%rev?Of+y-Py7Bv}pn_|AJZXe*M8 zaLEXljBv>amyB@92$zg-$q1M1wn%aZUV|clmL^Az$r=BWlW+11e6I8)6}$S8rn1sZJLHQO+%Zep-t0Fgk|s%oP}#5X$>IFwB(zXbkjD3?l2k_ z!d4*Nw4|GsbkmV;I?_!?y6H$aU4KAE>6XAwpzYE<5_v5lWQ8)&1ZaoX#=&CP0jJ;> zh!hD;4tbyoya5B?ZFmnphVyV!B)tQ#K@q3}onQpe57MuN{lZs6AtmI4a!?PDa|Yy` z0Xb(t&KcuD7U%^NfcYxpRbgoep->d+LT4Bc)GZTr%XAWuLuMaPzRZ*_Gv&)n`7%?! z%#k8l;sa&OLK|n91LU2Byt9yZ7V^$Y-dV{zYiVc<-?LN+gVXS<@Rc)20eOKkWN!oE zFb$A@4&NY41&)d2sSMO3 z5B11{JoC(j)v!+_Z(fLinLr!niwgsRaQT+-SRfl9_X0VAaiBm8U>qng36{ey_#Ezv z6byl}K)DK`8--|(!pR{IRDm~O0MK@YX}iK718rCM0n051-W4f|T{JgP=Ax~kKTL&H zuou1*DMtGgqy37_f)nr!Uo=Nn#i>Ja>QH*k3eCscqI&<7^La@Yl*!*9GJ#DvsP0BQhbEA(h*XMznXnf2!;kPpq;g`&2^F9P z^Z~+ECR}C0RsI@o^Y$0ouu57e1ht?841w9O9u5F)R^^^ZRrIZDW~c24$&1S!z(08h1r%60RoUY7(wy z3+M&oU=eHs^rz-e@JysuQg|IGOD)P$s~=2(m9Pgs7pYwh=#RB&pE?s@DSQZL*xpoy z-6HiUcRgfY5B;y79MJ#zRRI03KMc_S`in&xkY5AxYrtI4kh~gFuSS%o5#?z_c^Y%S zG4~r&p2n1?F=3j-2hwY5L1tJ4TSS_bhQ<&E$f()7upQ8)W|Xzrb6%s91abjmSM!$8 z7be3B_zW(=A0jORkO7#FTGWTGFcHw}7U*@0!*E%oWiyxw--xuz3O#{5Tajlg@@#cq zq;(v~1SO#%++lgU2fl#cMcPo0Hff;{)PfE$1g?p+CC|1O;D*SXHcS<1huw}gZqK;X zzCZlRmT)l4fcN23xCrFaF#yz~BlYN59T)>U4ua{h1{g;>(vLba{&YgFose~>N`Rhp z>I0KtInchHC~qgq+nMrqro5dCKt1RJ^I#L40@}UvGm$Pyp#-!C%GU*Xb$KY#H33le zuC!NImZAmsyes~fu2jWTwljNK?>H|o)ybhJX;3&=VQ zS%)F(Fk~Ip5=c9Y_6;LU*d-vXp2(yp_3BBzdhUWVa8)E+L3$_#^?-7OqpRVMMS86e z>5UwFe*lNzJ3wZADg*iSIWN+;E)cdKa_ct=7Qhxb20y|R9uXymoKOMU!ABwk$a6pu zpzR0XH{cJEfz)Fl^%zJ!1|p+@-C-omhs|&nXm`XUgOWims0fs0P;VFyOJFCQ2Eq;| z?BEo@d^fl%bcW$D7dEoh9|5#u#15d25!5k)I=+QoyoGMRRR)?sPZ$TZ!4T>*BqJcR zA;@gVDfmTXXe%JkVaR#dazM_*ki+l_!2J>Uk2oPR5*--X7?9PdxKIcj{zX3$>`7IBk(;u5}A?^vO_s&2EAYcoEDi{2}pBl zKcEg%Noy+gp87fbCVW%{sKeWxU~#9lj0BJk%0g2JgR$@~5O&5%_!*vy%uE94$;|#R6{z#fNIvqA9P&UFp!~D? z0Ck$R6p-;OAnY8%zC(WR zG=}alT4b&RuK|5*?rt~-*G1;}APp1*^kd!@pe^Qo#Y?v8!&X3U3);dNxGJ(xK}yI6 z)qr~o2f=iB52(*VbaWwgU-(R95%pPwJQg93MXO*hd@1s7YN!rx0{)BXH;W0km~e~r zHQ^Q$Zt)F~B{m?pCDe7vT9Kt$0Nq$R0v?Ghi-7O>C<$Sf4*<%td<}d8U%_pW6@Ew$ z#h@N^gGoSoD~`c$A}d26C)9v$FiK<%I~ zFdwv=cG*}{WK$xb-8ScgaxfAIv!xJ_-xl)QLjAW=|E<)2EA`(>{kKwwts`I_Y=SdD zxNQj`AJl_hFda4l_1gBm$aV!OfpoT0zU@6kcA%F#8pCaooych?a{90oFa~^x9(+VT zyBYv8-Gxkdp=-M+^DgSP3%%d#i6?bDMY`)S+#O@RFOkAp`dpLK?HK!5w}Ec_~RKma{IKzkmj3TNKz}(r6;{DspuZfxA#%h9;vOjs zw965~9hn2$;Y+wLax@tfhQ@#{9wnWlq;vEj?>{8ZV<$w8bN@Jb9v=lSP-52oHBim96p~7_?^S=9PMz9c0TvL$QR`M#UYU|tHA=1^A>ah!d`e6ei8YK z_WEi9d?s?S3vlmi;(dKeV@0l^U)SD%^CG{s zh6f_oX~XO2!|&++@3%y5WC8T^26DNH&fYvIatpn_h3?)W%q{Y|#r<2$VGHbs&*4Xr z+oX9L{lEPId<@k2_IE&ExPvV3q=W)c3t9nfaOZcCyFFnTybZ*^OZ>aUzf1hP#J_t} z}} z@UbZ2&31hLQ3-Ej6y7x`y!TJ81Mg5&2_OR$gv!tqy24vPShWN;!%5)1n+9)OG(w>$ z@ODI=N+^S{#$4D4yrGb9$SKo;*MYa^nQdVNybIfbcMzI?i1H2O!$6n;D}Zpm z)4=;Kt@Ka~cqbrFewDQY?uxQ=LnC+_@Uy9xqo5T`7v&ZKZ7+vya0tEv>f!QMOMiSI zZGQo%1Wlj|M8E>r0@Njt5n8}1Q6bbn($$TMySQSnkhUs3US*JS(wz?(C9Ppe9B zRa8RWXPEGNQHe-95pOR{v|m(W6Uy>Y74l3<`ICMsDw!Yh!2~!WDmm?xe5R-rseyPY zNHZmElkx+&Co0uYI4BC$QmJbLbxgfZRGPFvnbMF?+N>}cj)_Xg+ZEFx*K`*}y_Os% z!Cg_IyvHz`(%bSGG5x7mR}0@E#!VY}6y$ zH*ix_cG@_5V#o|dpc>FV*?R!;%8op;F9+H@`yu!WegoP(M|_~oa}+9jLMpW)3K$&wt6qP3(>=l)_3Tyz< z%1hbvC4+h}0k#5ZG%;GL`mkZ}RhFOV0?Lqq5Y z^q&F~VIh!bfqigYR6%sMU@FK3D*hUjfj3|nEQXH(c@?M3B?3ShO5^}!RAMD;g9CtU zO8f-(M3uB4DWC%-M*wYElDd?n{YzdIRSJD6l@Er(G(b20Q%ctqRhm9q8o8IA3@d=T zm&p$^;Et%W838>h`+=x(aiJSf_j2EfDxV3^*YZDzs!##wD;28&a;;P!Xy?jFpf8~N zRmO>`ivCtz1nYr*QS}6%-&KDH^t2jzR7(r5Ln){Qt)K@Cfwy5PAp2^_u-bJ|)zd&> zs0-a;3?RGe=nhl1s*w%Cfx6YCztwCA)VbzGQMIbVb|7r+T+kZsi>h-;RNZ$()gx}b zen6V__K2#V8mMdikwCp0W`Wv(92%|_)u<-mZbX`mive^KumX0&Ik+yWwGYxjL8uAs;Vqa2>)KnBMxMOlF$&k!)RCtTj4ld zfv2L{B!OH|5n4iDm<%gmH=GmIb{%{s>P__g%{A}|FkZcRTU0wgAhUMJuU$Pr|Jsd! zd9VqN!1wS-RQrUG9m+v7=misCDSQZL;Hsz&3Q|Hos0M9e5KMoiym`vAS|dR;l{p)st{NL!m4*g>V=TOMtw3 zo`zpVv20i2DIhOYg*Gq{rol!y442`ds9p(xaJ>lEi*UUN*NbqyR>MBH0JlW-b|D*- zg{BY=gzHVX-h}H-xZZ^8L%2SnP!#GyXBZB1VIv%d%kWTC-vp2i%0g2Jhw-okcEV}+ zRa8HL6i^fh*AF@N8x0Eq{qJ`iuE0}K{n7vaxu7Pz34?*Y-2Z)`&-cFwcSH>cKq!#r zfVx1M1117_57-N|?Eurn<`B{xLYhNrLVI`%X2JWg4=%tBQA2$| zordOz>hLBE2IM)EutPtEi-0_b1t0?yhx*VPCIa#tMxBOHr(xtjoN^AQ{=>@BW40){Rrmf5f4R;q@E*30`t+xZ{UHb zQ4TO?kIDnY8`TzwJ8C=J7B!mjU~~tV3TuF|V)T!q#?UXvWQ8I?yfMsqV`js8U|lih z6fpOWA&s%=pb>O}MZjD$_Lit|1{4M4HI90XBad;&U>sx7c+wqDy5rw~0q{1w2c$jz zJlqsD!GW|;0BQhbpD+lf17Rm1n+de{MC3Rz1>}cLK$wXe06m*T`%Xf>lgb0_I*GQL zjC(TeGWmq4DW!n2PdOxNYEwXlQ^y14oVrug+vw!m{ed}iS}`Eq>1AN6s2Q}$4BBXB zR%iwN;F>7Tc-5?jqGr1=MAV!-Fjv$&g<%B{cP{R^yWzN~dB|oSvYAJl&#wwQL@lTX z^pS+WOr`q82BFCU9NU66WtEcSJ3vu1lYbS~eQaidv4Y zF6aJ=&On)0HW#%j5&R+Qy$hmN=Z4ZSUep@$Ttk`GOosiU-Y*J!MXk*ShefSJuh${R zb@xQA&jp*{3sD=8<%U{79vg-OGTiV?)CUbJUD+g%074-z zRE4HM{+qrQwK)vX^DVT&7TRiSZ&BMQ&o;`otuBz~HuBsy7dFB^Ank3pL~SSS?J0nC zx0CMnHZTyT!D=Av_RFGnpo=@S{ZQ1-1VH*b%R*BKhw<=O)Q7`>a39g;AN?w7*E^zi zqo2E50QK9=yt{iTdND;i$O4q(AZ>TBK6C~2 z=ipq}2#0|>9lS5*L!^D^0DJ+z^Rd{tkQvDPFztM}2h4``um=ct_@1aE79<72 z9w`LK<_K~*@*a@h5yBlI+)?fy?Es@-CTxKpf%+daAu(ixsiKa@fyO}=Vxt2muuq&8 zb&{|rt3Wg80uiE47cGHufAKRs6!oPG zDS))TWUTvg2V4?$p0b~(znyOl=+XJza7EOGc!2+fwlE23&kIjQeboeTfAy`Xi{0Qy zQC}10YsR`u=*gv4uu9Z7r27r^|7NqOZ!<$XVC?x8*?$*+nn0N^(~rK-3!jMkp%8o| z>PO`CBW>{`W5X57aRu33=?}>9%6(Bkq5nU9E$Zi5Fc#>?zYyn_FGX>#sjhB=uS8u- z10{hnU0WjRH_GuFb^5IujDQc}j;QNJfi$mEhu_KXchdYF+23dm=;@6IqHdxKH#0&3 zAneU`Kz_Fr5dYRR_zZ4~x}6TF-)-b}`wSo>&N9){e&`Dq z`30c#ut5yY84Vc;zly@EeW-uHH5=(xB&OW@P|TPC=biwB3y^(VgwREMIfKR zdiWT)7kDa0NIXaf#0_Z=i-EXt5<*5O1$Ce;^nv-X4)(%nG2&*1B2W!lzzEn3x5S87 z0&2k)G2*9$m9R~W1o5FJ%mm7xkn|Idhfl;v#JxlVfqRJvpJ*TaCPv~kP!;e?q98Hk zhO*EHMgek5S`3B&vQJ7mk{*Mf#7JgC7C^qqC}T4Gll>w_@;HzQ%D@148!m~FA~{g^ z6m#JZF;e;<2@p1AL8u4~p*{2k@=m!6s81^7nW`U3^->0Zh zu3@O`tyQOHsC2Dgr&g#W6Ml_JvJwM%i77s@#1=Mhw0!b)|B(Wrs zqGwDA_(?`8^S$RJ3kL&;M zYoEPs+wOghhwZd^y~0m_?1kn8l0??fU1-YsACMrygVGS3hGGP-ig%l?TorI7@ls9TnLO9w zeo0J2%1AlyDxqhFcxD{WjEfl;-A#(_rbKVkqOBG&|-``!&W-_nqiJ?birDtxwT^+OHvgnWH_hwO<4LGQHwgAHR&R_|?NN z!z+Gu@k{@TAJ6Di=qrA;@#EQ9%%9G;7JfX(jQP`kHSyzlXUw1WtASsd7$5Cmbo9mt zJvs!qR`NQgPjX8ho}}?SkNeuUS)<4Gw%4s$H%pnbWj2_uN%3IJVst4pON1vU=%b8 z8HJ4^Mp2`fQQRnDlr%~irHwL1S)-hh(VgqgbD4L=$1mX}rzuhzsraHn8Y7Lo=GJ!W zQim5MO2f$hj?9&LGG7+RLcZ_wF5e4Z;#MKPAyZ_Ih@03={8BBF@oQPttY&s4yT3iv zeve;JV-<&A8LO^c(e7tYu~#`0ox`zmsm`o$O@8C4>hE$xZptmWEqCOu{2}+`zC2*W zcqEVIi9D5OJavuKLRW?|m5(2>vw3LgD!*IRWqxB$I^ca+V{UI&UfF0 zUk2PHK6j)$@g*5&lK93=Qqcg{0M}uEwtFc|n9%|3AKX9fwCtrzC z!)jqywS{=`s%X$?pm(xy8OJN>H6J(8{)=s=5b$l^Sb%m{B8las9Vr2>=tngxh33UZgIDy zTgol%mT}9uW!>^_1-GJG$*t_xbZgPC>bP~?dhQ(eov8ljE^zC+4cvxqBe${J)NSTA zcbmA2+-q(Nx24c5Vmvs^8+51v~p~-RkbUen;zt+s*CncikRt zm>cf)bNjeG-M(&rzuz6;4s-|k1MXYy5O=T};STkOxWnBM?l6BGJq|G%jdaJkquep> zSa-BL(H-wj__N-+libPf6nCmS&3)UQ?#^&$y0hHb?x*f&?tb^Y`=xuqz36`Bo_5c; z$K7M@Dffi?g?rLH>mIe2*dMw-^Sg(?xR?BK-QV23?sfNb_iOhX_gnWn{R@BY5AKid z7569ij{DHP?>=$=aPPT~+`H}r_jmUOzm<5)z3o2LpE6)XFj-Y5Wi}4wmvAabZRXde z(oQ-`FBvG4WQNT2#-)|AO5T%0jL~Q5`&YfuB0n`@nQ&U$Bq^MSL` z+2m|?wm4gzZO(RQhqKf9(D}&O-r*p(P>Kt>9 zJ13lz{6gnxexLKK^SN`*`NH|qIqzKH|10OB^R;uy`NsLqx%|r2x6T#kC+B>R&}=R4m6>TG6V+7+i%>u$oofs=*korMlMIWbLu8S-)8~tXtM?>yCBTdSE@Y zo>;F5_ z(!W3TAFeR|evUTT>9Z65)5^n}vqQZ(JCiqOXJ%E|pSAFdRxB%N`3>2t&Nb&Z=eqN| zbHlmm+;VO^cbvPwb6j$AeFGitPAd>CO)(sL#=<_YVhb;>$zouM!P;Pu~M0!d?)qARQN|3T@X`%TcX zQ%EV~pG%2eRD$1$(Z3~}2dy0^dFks1Bz7OD%x|tn_o-%9bE^fbpGvGvs`x8&& z0;~+qqkVcukVegC&z8g6{p9p^KUKZmPj&WN<9LG>doJF8qu1NDy}n!D>$?rSzT3jv zzqR!CZ>_ymJ#WioRo|5nzod-Snk3^G^LaxS`czpaTD7g(GD&NeOh&gF$W*Jb)mYwU z?OTptEv{%+l<8<&W!^wr&8{Xh(YjhPi*<2t-d)qr?k985!2$9PdN^3-qKiXi9&6@_ zG9Rs+!h3Dr=JT5i(assN2o0Sh@7l}l<+2!EUB%ZgR@Wz zp*2`mqQg^otIjlMnyh9PJt%9mM$7x?^f6h-JbIG%PU_v=25%4bfww!{$O^TEZ1Hv< zTiL-*lQnaj(L3WL^eVkW_Suo_eUe$1a4SCe_hQ^*r>lSUJL;FeiOKKDt0%lO z$|eni^Fi-dait(J^m&VpR~C~{gyGo;r;4xK;ocKsnv5EpDbWt)aMP!~eO^?#49+lJ zJr>zz?Oyf-dzm*T>D@~StCn5H4!6hKOBrbnc=_oX7&4qUdDWr~`7LwChWfN%L#q)j z*vxvvTa#mbHMg8g9qz#Gf2*(UE<^7H1PqV`Su zmK3+2*iSeYd(kqw#(%YbsphQ%qgH_ntc5yHYZ3XcuvS{Dtu@vv>%Ev2&2{T{Ry8+c z)-``v_pJN2-&@~2vL3U>c^b3IQMO^5c0iYglIRw!MgI^a+>BbbLJA=-N|*V$^TWxsCcw)5C|?R<8AyMSHLE@T(Bi`Yf&Vs>%6gk91uWtXOP%ki7? zdR(tcKdWKaq@UHX>*`;aw;S0F?1t!|)>utp+_^ZBNWpnFI&5)PV)6V47f%7K=`ntD zWBg`&uIbiH)^*x9DkX#ci5WHSzVPEz(l90(6JPjnIv!$7_^Z)ZOT!zJ#2a;#H|m&Z zG{;nOLHN}PN~n87X^8G8MRDs`dKA<5GQ_%9m=ulJCs14`G#VMr>2xiPHewqcj1H7$ zoH1VF=yNE3Z&0U`z&LMw!*73o$Fr!EW<#?v@6>K?wwGdFS`{hRG^uQ!<^3^D&2zlr zrkVMb`4jJA{>8kf~{9 zIj=jpoor5aCx^q67Jk9~JD$#o*DsaVFMafpC4VYTDz3Ok-Hn_Rv}C5s&pCy#CppRfX9;Wf&Q3$8H2KG2ZpmRK zvwXfkd_VY3`gZ!3_@?^a@^$vr=ln916U_VOx12_8WNsR2wl}Mq@i<$$i1b!)qS@7` z&&gmK&NY8vPrH#lZ+}&g-LcEL+eP_QR?9Tn!r(;oA<|?f^{w+E({IdGXf zOSpsElX%pf!GVJTeUdYlPy0um=xBc>eIbm{Zw7d7N=>z|!CUHEbJbM40=m~k`xlhT zT%iYn;V*mxT?0IuMdOucM}>{ira;4BNPVLB9j#&O9awN4FuZxdVl7fr{EX#|88Mq$ zEji;i#j&5i_~+@X(r^EX$KEzBTc4tb3OIS=2wfL}eX~b;oDFum2@C{u^WY zo8By)4BxpizLeKm<&~p9YoXx3E(aPCyBtmJ;J;Un3$gB5jBwt+SB~AW?)dBs`rj+Z zvRM9lv<)y9Dr;hluP(=GT@J?Wn14?m`pH9d+t}fbBJwODr; zLG`~^j?=OHP3FFlUO9Hg`08@3pd8*9pa+Ct`np9|Snt!Kd#pp0@-lN;BI^OOSz@m? zq4d%`obRHa>JRk?F_m%fg`0Fd4P|$J!MMV`_gOD^u9!P})n4N$clacNwuAnLT4ij; zhml;ZigL%?nQWl7yuHd$o-4+`uQ42dbXeO#->7f;#|cL#i_5l5%q6miwUjooZ~eAoc=fToE4R}_TNp8yZOKWlJ6?=Tcs|) zpH( z76yBM1}i{D0=*7Y9X%f<%m_T=Q;O$auhK>64=?^zuZ^ z(@b4x;!XQ`@E%vX>^z6ochbc?j`Bu($!c^o#z@p!zpF9Dm?GUcm)k7eIgi^R z)0k)W@>a)v#sQhnJaa^rFw30cUH4~m6gh9=lC3-(cW+Q;}{+Mh5X%( z9{v^nL&i$~3I7%HG#ID!`cAxg#I*E0;`8Pa$D2n&ym=&%H;*Lt=8;fu9!XEkP#v4P zhj6Cm>hmg@#op(te8{=g1i7RptL3VtT8S3*<>NPx)n4;~`A8k1K=sveE45YBNWuEA zrBV2Q5%(T&Rut>rZdX-zuc;me69OW$)(lZVQ8A%nLPSJF#GEl_MMX@gm;>2>m=F^t zL`2Mrm~+B}iaJAbNMqc}Ho$$}e!G`pyZ1Tw-0wSg=J)i!R&`Z(^;=aPs;aA_G0_;i zA8l1P+Wn)c(Nudx+$wHmkBpy;pRz~A&&1EzW8!DyS@ziY<@jZLeEe$shCLyEJO0p~ z60eF^*)t2>3Y*!p3R@L=*kOg9g}(NJ!fu6u_KL#Zg@f(rij_XJ*Zbyv6FbqL>+i5n z`&a#&^lxw$VxW8ZKf8KxNUVuX|NK8VfLxYxqos3mlm632to^*=8=4yVr<52%8Nb`TW&PfeRkC|iDe>qE>mHEoOtNeGs@9@mevDcQ= z7DMZ~{K+xjL^+AL^SYF3a(QLRUQ*eqa&uZ`dsZG>*`@OM$`dLFk}Atpei-4KrLp9^ zB5`kKOw{>FJtgob9f~ccbzen?AXu zXFl4eEceNT$+l;C0=bJ{o?0=T>&~O;o!uxX_9F`4#DMY38$D>LbggY$xQa8@Y@7cKlrMMetGZI<}k=+)lsf=-?72 z4;f5v#3AYSdvhojj1+fzq!g5I;ZPbWV$rfMp7jHjnPu> zD?^EoPwvY7B$WE);n;5GCoT;qS8@#}uBGJndYm7mBs3{>NRPCs995xXmJU&gv6}9m z+R&Z+SdaVD*4S)yu@rZ}*rd>;fQ`5x#wxT?^R!O9#sbggvLEhfL;0QBu!6HxBlp+8 zaE2<#z4Y%n6G+LCr)BQi}iz?5mJh}47$^$9~RQ9gyQQ56> zy~<)`v&y70NPeUTWL`2Sc{_QLevxU(g0;#{A37swu6#=l730gq&vMR?UGi> z>PhT>_22mh|Aqg+zwT%GNBtCkyPx1k`%C;eey~5v`x{zuB7KSb(Sp;9e#(vL*=$YEXa#M{KhXAEM<2?+>HCPAo?*{MhnCo+M!>Jo{Xl^T5xl8HSHbe z(=u{AJx%-2E7CLS9(9e{afMtxio;*S@4|-gi|~W+^>7xwQd7d)!wEd)ToRrW4i1kF z58_#;Pq=NkY1o-3p5|eb(7F|_(Jf%~#=G>!KTX@^J#M1AmXR34X}dd-UbFpNf7i=x z<+{1fu8nKu)^v%p^s;|vm)LncAI;{O@_C*!r`!AN?e<1{HBagn*>mh^JTo0`58%0} zFZU2zF~*{^ZDU*6X7u@0SWB6<(X4biGhNO|m(y7~o;78SsH_uxCQ}I|zw>YprN3up z;b&&yXJ+ANMjC!*7Jg==;h)LE^JJUGr{yP84gX9Q{+TTNj4b?&Ec}ctJa_MDyct>e z8Cm%0S@`K$_~}`A&bn#%=~?*cS@?&t@DF9-scUICo`N&gL(V>U3pxwYVMcE70c#+d0ers`iXsWR~}bvocrZ*b30?HEUvgTuDCR= zxHPV~G_JUGzu2}MH@CC+<#BU6i(ei$w=<#2aixq(`ou4f`%HPixt(QgzTe!=?4cZ2 zN~~@rx3jFx_nX_9l$7@?WmjY5c9ymI@#c0GzkI*BojHnfTq()AmE6vzRZcIIfyadSJ1UmiENv-st4b30?7a@^d`;+MzG?JRzI zT+)!{5f&}S&Fw6HdEDI2;+MzG?aaDz+}zIMm&eWREPi?1+|F#R95=VK_~mhPJBy#j zWv^M9#ie!@m)coe8dqFuXL03mb32pba@^d`;+MzG?JRzI+}zF_V>xbaXYtG9=5`jp zJZ^4htWu7f+gbebxVfFhFON(5(>%hC<+!<>#V?PW+gbebxVfG2DaXz2EPi?1+|J^s zafzAjS6pgmajBifrE$fjb{1D2H@7o;EyvC6EPi?1+|J^c$Ib0bI?Hi$JBwc)H@CC+ z<#BU6b7bYXxt+x?kDJ?B{PMWDov}qZZf0p%@|<@g z&+S+7EOJh8T5vp1)d$e-(7#aNu5U)VoX*mvN2{9uekk>qBN2Z&4psG+RLXBjqv}Hi zdUj+xtjS%|%dUK_Y){w97IRm=R<^2svfbRJYl)ey6_>6RSH3pivXtn2t=L?)qNO)? zoX4_bV=4E3SNPzGcb7d~LpE%`e%qxbn4hIc@?bF<;-(x4*Yq?J!Zim_vxl7;A_P4#bN8gAM(yi^944YX=i|_}G;eL^J z&>3cmX%lqep8p%Wh%tAw=}DSN%in!=lI6R>-0h#mXuTu3*B@YeGj6&YW2}qZ=O>mI z#mq8#Oy-!k+0v8rn@Cw2Mmai>QG^GXy-c5=J1v9X*#`TC{eUNlS@uyz`rU3P*wOY9 zo+1X*@^}!>5PcYny(v!+HMTk92CZ2^TigQkDPs#?CWX@(Nj8x_nX71d9m=*3H~Z1z z)r%I4O&M|4&a^hoXu%38r)LGH71~h-R}^^bh-dBY_Ix{pCzU~VAKQ=TlNYmNGFGvHF^eD2<1>qKjZ@6+jA?&rp7d950+NfMp{`v zWg@tjgPGKXskCQJq*ZY={X6HUdvBZWy;Am0O5|B)MXED1eJ0ZxnNH92A+$+aW0s~m zo%r(mA+$Z^fHNT>)Fs*{qnffj?7Q4n7UT3f4M7XFt%i~II zR6n^2RUKPaIG0^rI(n}<* zkw)5YnUbF+eGq>PA+4?9$!Uy0dM)Xvx}5PPSJ6%)qshk67kF)a9qlF);v3={>sVQT&o=5X2`^R{jJ-w09sONi}hWgD3O zKcB8|{g?GMfuq&08&_kAE$@Y~Z;m5vA9nIKN;BGGWu3I`uMywIIHd(J_ z4_Ej@I1Tw%pWnkuS^49?r2b$1eh<%E(|`Gw7=P#cdz|DiF>)*Yz5nm=WYp2W{>%RU z-5QN+q6gA=mb0LYMKkGGG?R`&px1@I6G9NirlYfrw3Fk*2yoq78e2=YrR9B%zddKj z*oHa;#sK0YBnF+Pb_<5L)Y zcUn9o9dUa$V;zUZ=P}lCczhwP$`{9%#h1jFas*xI&Fx7W?B3i-T~6!lL`Da_!`P%c z`eGyQ4|jEYFgocN`eDb>^ZF4Zau&E>|844J^qSh{_x=XyBTM@myxdvM=a=El)4y47 zzslF!x^i7Nj9awyyvbIqS%)?BTwwQfOX;tGUW-5Yv2Dqh)zYQznSKs_IWv|P>kEG0 zGo@r3#yY)7>-01`+1||2U-5tMe$Od=+OU>4CYIzMd0O*F9y|U1isu zW!D{L*WG2;nVD-;*)_848c}v#Rd!ujc3n|+U0!xw zR(4%lc3o0-U0iluRCZlhb`3APE-1UsFT2hwyM~or=ayaPlwD_+U1ybDyxEW)<*OO(} z6J^)qW!Gb6*P~_EBW2f&vg_fpYkJu=t?YWR?3!A3aSxDLa!T2Cf9Bfe|Jr+05AbaE zr?<}j^q$#9g^ho&lQLp2tCRPo>H1Th5EP8 zYkF4G-c`e^hF0~cN}62OWLT4dO(9$g<%viTnLb@e{Ttk4>BIYalXKx^FlI`r?5@Qi}E-ON9|@GoFCX0=LYsf zEhjW*hq%FUW?<`_6_Qcewy5ufq^`%ycn(X`DPur*Z$o#B#ag4j>urs0XBhIzXx>;vUb}Xl?R?yP4%!zQ}EpG44jz zE_Gb5Ni)}Kj`{|cqa4?Kj{SO;iz%~z%9CJCo>3*_r7TyvOC)#Q#e`h$F2ZLd_gOZ% z&RvMlS8h1&(SNfAu4|R+xWQ?xQ_@%`Nl15c8tcS#3n#D~<&MXv;cvEZWV+wO(=8m9 zZebA174A@cmbgQ3k9G&ATRSM-f|i5b(~$jBpFif^miR1p-B~VkTM%ZP+Z^{|w^7Ja<>ld8(a;`A6$v$7+1u9scV6Iglma=nXAS<%C*Mb;MQfinCG`%jGF4svwgV^ z@)c~!sWnrJtwE^eZgqS{y456xYl?fctHS-2Yr?X@QDZ6FErlmepHvW(cycHp_sDs2x zYoDd|C8I61FDAa!WXqKmpV=%&@%tdgiOKk+zZ|pWnvyiy7g(;a&l7uzeJ+jnBFk}% zNyVD>8T^-8u0!!M%atb?VV`C>%07ipgME_a;@k#|Wu*o(id9lJi%{eLdKR${rfHwb zx}PmIo~=>;2u=OtxbI^*+De@s_2;vrr5=(BsfP_#>fUHets};GmSgO7X$-OV81YRl zKQ?u(@t@Bhat5_$rl}rE_?7l_me*P89TwqU5{sP6a+y5`pKH6JSj-}?(ya~mSZe6 zjdV~$E7!Hn@fm9?S&p!+@Ly)BNy#YlEA9rnI?KP9W7@p>BaHI{$6GMblD zf2lpon1oZ(Ma?8dQZpN9Vfc%tWj~D3<#&U5B-N#VJulFvEor?i&Dlw8 zak;q_pONMkmZQzhEUz;Y@&AgP?f*A9%Xy%(mAN*Jc}*H~TpIIgiNpH=5`PTKQD!tg z4Q4#)7|r&nGjRiX`7dW^#;r>!yFA_EW$6~>O1{Eeg3l6jG49dkqIByQ$`-S{E;ytKo+zU;j zo%_GYZL?>(-vKOFnBCdZ60;lb@unZk(dGb_`ymqZk2%;Z4Zl_z zeoa|x)*$?7v$}+rD~^$K*eF`thXq4vQ9quM=!fv8*}#7}6H)&wn*|>ddIdfH9WpNjW3E$t&iQAuYjsEXPw8$fe*N)-Da?oU)8}E6A(hEtaDK&Mc(#4VH^3GifdR z^O=bf#ML&qJB>4$aLa?caE}b`WH~yxgXO5d+K78^*&EkYwoR=f+%>qrq8v(0sas>X zJC~Roc`zdNZ9%Wi?>)Bv<-L1wN@|CbiMuj5f#r4BOl%_8%O%0-ESE9%L9B5q?&X~0 zBpt`F9M7|Wq=Py`I;3tb4X9h#MC#V4K(qSU$NJk!Y*)2j@3rgB8vrSZhR3G2r4oH&>A@@DWN?W8jp zBXZ||>$)xFb`9nil&w>4vF{pecL~qYlFsHV$1&59q@W7-c&>6{)5k4N7qX_B6@v>DQ_bPEN%=BsrJmh=ey&k{gp7Sx!tQvAk2h zW|iEZOkw$8@*vB{lE+y-l|0RIX7UQl*OO0J&Q0dB{37{+<+6lcp5%vw8Hn}m+T^!{ zIj)jbm87H6Rnl`;=_~1(s;purT~pbjvIR?KOJZ4+`I2};XLFW)EBmrMwDM4v$5bA} zQBYRt3*mhQ-jseUDDW2B6TAgJi#z|A_oZJ7BHovNjW@gBuy1f@{tj=nRq#gJdx2-9 z$_K>#koTt(dWEGL*Y@}Fib%``^o+{q{%?e{p@9?NK-gBa^F zfF7Y5KHr_Sb3->vUA7FMC=5C4N zvw7QPT-+xbi2F=tR~ZxcW@eX&e#^;>>*y5?z&(U<2P5Mhqup_z#wdiV;vJ&?xChhY zdPTe)XEaNHr(9P~j<;cXQrv^(iSgDfPl&f-d3?Mj7WmO~{xAH)%lZGfxI6A2JXarj zPPf4Qz2}NRKkDWzkB&EEc~s1M!t}3h67w`y_|7vng8tTZ;%=-vJl+_;Z#`Fw!Z%*7 z7KgdXL(TEh2?>9XO;)VomlQ4ug7w~ zxFgGb;||2#hgmteeia%$SEa&o&-t{l%yTX&EcKk73QKq;)fN_4tYX7CqvRNA!%Z!aWUt>O7<6q}$ z)R`LH$-mFk=q}Wm8voDC)5t6;e>XB<7a50;o`L?4&)`z=Ze^c}_n2wpk8|Su-JBbz zFk>WhMgE6*a7N^FNLDP>`EdR_GjXJIP5zH&nv|z5u5JH$uF0FZU;lUWOs-X)V^U_A z+~H4iOzI4iWB*rYn9S#wd@r3_QfHRT=au~HtdfVNb4s50hdCuL$mW!kIgJ0m&nUUe zf0#u{W>7ksnUti&$P7v{lakD$^zY|RI`2P~8Z9flw=T2s-0`Q8hSQ^m8I|~G^jP$G z^aSrAJ{3L973Oo9)$%{h08^gra=Fe@l)lMYQSgO?cVC+ns(34MwZiI!H41AM)+#hB ztX*hcXpzo}`9GNxGf3}DxyR~1mvf}tr82Ts&X@dlJblP-nXNqNFSBOw7mrp=mvUaM zQ5cUHFe63^vlhv?y_Dz;w5<}|kG4}HK8PB$SK_zP4oWlz?WjbrqcXQSbDr}Cc@T6~ zVwrKEixPc<%DfB^eTHtJFrGU|-@xsPzZ~0!O7sA_5p=^}W`dXb!8gOb9lAMeiF-$M zD}{HvgFwPTG!N~e@SbkKvr0AdqYcL%d<3FcLlIqL=U z2D+bOW~2KnW)8|MQG${DJy405qk^{1lxP}yu)>TA0r%D^aRn;&f;d74DY0zxFon6> z0@@2wtmMNHiWQq3saQ$-QHnhp&9Il_K1Q)uqsJg`T0fap+KmS+fFK zLQ>pEsDuNVO^SK5QrrSmW>Eq6D|)UHNf{faL{ri8l<0O;$^=9|qLY+Z@=oG_jEkmk zHzjI~-l0TA^iCz3g5IS>)#zj;dJw%^i6yR-Cx|~q?^WU^=zR+JhCy(@5;dT*U5GRlFSIdy3frmGblf^|Uwop+Z}7Kx<|S_c;OWn<>$E z=p4oLLO+4I#Fc#eT%pe;;C-l+uz*Ur1UD3|Q|KECf_laLiq2E$KMI2R3Oz~z?~|m^ z#}ovT2Vk3{ixgWzzf!E63#F_qA&k`HrHVZUT?UQ#OTK-r&?6c!gIP)_=f7_i7o&2V zlpVJ&`VWQv=zw;j6ndzG;3p;e9$lf(qa6hQgkOkzJu1fr?rQWmg;5(puu`$RpsN%{ zc4Ut^{N{L#QRs1_nMRQ-xuHy?uswsl1Zlf6kz$*n9D^X&3PTaP(b{}+2Mb6DejtA_C zsH7F-Jk6I_QtU}6c`V2|o3FN{&|fRxa!HZ%w_N`OdkRWf5#(G>FF=YNjJ8&2?+)lM zNU_v+Q&eaTPrqYgC`WcY?iz)*^1#$8mV7jA6k2}*(^jz)&~}QP3r%~4KJdVFP~_ZZ zIx6-abUj7tr|G2FN72rT)K}9*q4z%f_&LY*F76E!`t}3URgrpZHdO2^bR$LTG<_~9 zb~@Tk@p2rSDE2LM(+tV;%@iwfH_uod-9llELSVWpegL{Caq zg+mo5b#PFI)P=(ocM^Jd#?9yv3L~Ea`a_jlP^q`zhNDtf!Ap5RMseq($7W1Lk5d?r z6&OjY@E}O~z}<*SnuKW}=>T^VdUD1?=qZYmv<=RXa(=4fByFcMxQXbHj5pCU z6h^-VM)FDc49-*-a~IGftjtBv&iEERM+psjZpL@$Fon^7fjKYZdsJ)zj1A<2zzVa; z1x9QKR?4-M36N(6+M82+b5!yktd#dl6u%yNsp83dbD1Ld_4IwG$TNhwLb3hOD;2p1 zH&-d?{rw2s;MYM%Dptyxq!0X-sFX91d&;zIQNDaNZYfXT*F~ia0b~F8SgsOD9g+No zK+5E`O4tdNb1~RE(eaAhUzqEa;5BqYMho-?g>l?`I9IXr(3=#$2P$O(d>2&8fv`D9 z-h-<|Z_SW$F)3pw^ftw{LT^`m2lNib?}17C1{GityqV? zqtKhr2V)ic9Qs~HKXkU@YEcO%h%G-*7?aA!Uo*t6k|uCczCO+n8%x;*##6CYO zjBDXTtcsQW{;Eiu5M$s{Y%RJn<0y2M;TsyR>BKI#+J_Oeu zrQ8T|ow0HZ;0{G4tsvJNc_tCuAhekx=LWmB;_gJ7D{{UNI|}YDw51}~2Sz2PxRcRV zikzeEx(Z{g`9P`SvAL~Qe1Ej4NZW%v2d3PI)+l}hRN@E+KpVw(MJa!Rrz}~q1xOjO za{S=PTiZcl{6%0pW{CaPQ>0DEcFH&%?X1W>pzWeK*#>1!ko!R^X#ywPlXQUG8`=#O zC)?ggk^4luvEpPu-4r<6QRG=vo|#i#L;EUnKV>DY;KZK&6uFm?b^*cdgZ5YC{3p-7g8K>` zkRjzxj-R~pVoTYUAZe8R0KYdX+uAo{KNP&!a(|$#d9l-ha1i%~5tTfZHD(4j1AU+gzkLvBkxT-x|F{@lqBp zQ@oV@%N2JXdWGU-|5qw*JbD$3AkAV+DQDo`M@K1c4mw(KKcZt4_X|2!3B`t2D}H-a z@*en(b|BYa!S_M0Q@oUA**Exp==F;4j!sYtY*en(f|qi1qY_G<+>~((D&+~hU{Dw|aoRopv6fb!vyQ+z(UOzHIXW#rH<1!h;~&o~AJVAdt3u!BcLe?L&yWq7N(a=I9K?OP)TW__NSQ z6;D~Tk14T~lgE{K8}tcyG6ok(eO9U51f2!X1wo~x z?Rj{Sk85{CUs93|=*vnx7kx#ErJla3RBnvQ{@x(&m*|^H0XJ<$)9M8bchBw~k;l|+txjuK1S#9p707xn08 zO1ub_V}tl}G$WR6Ncn?g7gXXyB6XooNorBq7BDs?kmo=l-U1aHLEHmfpd@|Kg-Ws` zD*J{+%Gg&*vNPJCB)!qaO418m0!s-m`&kCdaf|&Ml}POUwUUTEzk#0!BYC|-NhGiT z39Im@T)9Ar*^e_y%>JEK7^xXJ0tqqubfFTH4r!+r81Wg%c~)SYXdrD^0wX>HxepK+ z%^ApfSztV9Anj!Wqeug}_Z4D}&#k2-SEFky$u;P@3ga3Bxpx<0j$iI?gcuvhJ&oMI zFh(|T>nq9iDEZ;K<39oI2|MDZ-nrgzIPM$KBj6O=yQ4$k4BWDxp^CH@%K2CDECi< zI|wBYZ%_g`F4+f2ySTeak^XII7ZXe;^cKZzhfY+&O7vF69F0y=Ldt|Zm!{9AVuw4F zQ0#f9B5fOTA1}zWqnoURO;K3~=4138xR*4qhTf+HpP~0F@@(m*DB<4d14?)rI#mfT zMCJG)l;e~9fROXFdq@fQLZ`zc_@9i*y2o%!S$G_tz%BNBQt@x0Pbs0KHHMzxD9B9Vw$2J64(hUGqyvUD4y~lTUC|a9vdxx?^reLBC}u0PRmR5X zx*40Itrh7P3ab_Aa}JA&w0Vam;C$wXqntOxcCZDIH-eY+P*zgp*gIxWw!`&ceb^r4 z7&ZhsMoBBk^LHp|+5{-up`=L=`){VmeRe3e6BdK)TaIrj$o|0JjmmKfjUf9LC~IMl zj33c$GFG75Dsrs|B`*caQJPlL>jvQ7L6K*(uxG|fbVo(Xci1aq6}pq+=Ap7(h@=e4 zF+(Kft`F>jyMXqEU2#j=uwKlA3a*}SE9!#ehPZ5;;%xFQ~U$y@roaTo}l=t=!uFS ziJqkR2ho!iKMFlX@zc=3iXV+iSqJ|RdRm5*!P6Bd`7AaS$dB+0C6c-|RPkfbGZjA_ zJxlRp(X$oT7agwn+fgas;9o%{k0EJ;UJTeTk^PCiuuUTA5?g?gvMk3hEC)Ge@OPkc zoDelZ<=8;_ltM`#xPGXlN$3LOG8Um%EB<`+8pTgWug#G3U#CQCq2n_)M6b_Sf=*Dp zZ2JbqKaAd}nC9qB8Q-8cXLLhv$@mtXq(~orcw5GIsMrpI`%yV&;h!M&0fGn6yE1-8 z5BOf6}v!WP}zsD707lWYJtkO1Ua8ce260S@eC;sPbg80KA9osxu+B>X?Z%M zKl+RkwM1tsemwfD;$_>j;5m-*dh~h4%YI(S*aUqs<7@OK#Y>*QobdxH#G^R zpsy)`*!A^{U(q)dFXiP;#mh0hrO0@P@a>GB(03Foao<&fjnVfMY2OWJD?vB(eMQ=O z!w-~TdsOlRq)j*cNC~b$KUSn&C!CY9JNk*@#m1j1Udr`niWhs&Rs7B9=ZY8Gf1&tW z&@UA)`B0ZJ0IgS|bcEL|VWn18--2I%fKKe_B9QUt^k^KBki2`(`;%`G& zDV{PLZKy~(nr^2=TLwWjaRh%7TBZ0?&~+6*7~N5c+oRZ8h&!NtU>Dq!+v?qvxC^?w z60^^0@>_^0x77ocnEF+{j}mW+?hE@7raO9|5^sebuEd9+M=0?z=#g*~;g3fte?r_5 z#dbp68GTBLw?!#Wf~V|M&jRu}k@e(Qtj6{U^}Cw9t6qhhx>dyXLeLB~iuCgo ztrGM^onm{Vp%RcMMKWBFw*O+R1ijFLBK-ix3MC*9ie8cS`eLF4*uGe)SdO>YL<#mo zDG!3>c#BPyV1INq#gZ?@)s^4?bPYw?>5FSB0r^>6ORS_r%1b9aeKvx{dQ2K z{jMnG9*o#h$~s7UUQx<77&*S36ene{w_@a2cUGK~$3BXYcrsz`fY zv7ci0Mt4)3Cd343+u@=5q8vMcN082Px(X^k7BW3yX&+=1TNX#T|(bQe?bQ zQML=xwpf&Hfw>ly_}~Vk5(mt6=uwJ06+K!pCM&DCq-fvn)!QK*k>xB^@B`mqpn(n5R(LA4uC#J-3fKx% z$_E6k(EAk`k5ZhX1nZ&?C{}DTRS8<7Vi%BcG{tF(+_)7VQY@P-PFLiHqWG{PV`_>s zl%Rw@qR7~q;-gAXgFdF1Rp{eNa4PzQBK^w6CzU|z)>De~GZ&>UK|mcVKBGu~b8)5; z3_+h&>@ake5}biPr`Yq*=apb6`hp_;)x{T;;7s%-Mf$CaFDt=W=qrjHj=rh{AEB=) z(qCAVx(C6>=o^ak9~R$K%>Jm#ugVpR9rVy(g!lmxF~4?w+T8&k#WbxPZYN)`l(_Dp`R&kGjy(E4nsdz+~(*P zia8wpQjz|pVx3}+Khsn zB$BR~il=Uso>h`z=qx1>`^d3DLb^-Tr4sc++Am9#`_e18$D^+T=eXcv^mTXxx8$$n z69mL5y`>}V5h3GpT7Z-`n8fs z9#Y>+KM+^a@+16&TlTp^F(;${RE(6*v~fOA7E`#BHJ$1Ul)K#9Ad!N4jnF%kNXp}# zO4JFxONll?Co9qV=-o=x9=%72Hb?JOqV>@GlxS1*e#IVzPEn#Z=mSdB5uFMTQf4+r zA5x+Y=yWC80DTx{5T-Nwh$3yVHByctYKK0dL{g8RRH7R6X(ieWeMX6>|1~p}XbbdN zCE5!8Oi5&WbCu*V^mF(k2nr{l4N4;W`9@*(G#PRe)Eeyn0qT^3_(e+mJ{l|WY}6|S z;?%CCB$ULLMZ;&uC@#5w)5)4#(iQWD;$PCtP~`@GnB#+=p#x&j!BN^DZ=lE zzN-`@KW8fi$*&KTg5;-^k1q*-G`av5;yw};TR@>dxxM!3DLJ`Dap;Dl{wBo9VK4M@rLYe=LMiNvzO57vLEljd2M0krY$qiBP>!kHv261S^id#O z;UpCM3k9~_o?~c#JML{z%7_qA4%<&x3Y(ym6QQsL%65dpX6R!|VM~;9BBcJ5m-bR- z#9y`rg>ESIM<{HL&Qc1SqR%OX?&yn3>i-gMNc~^N4TYZQD@vgk`nnRgL*GyeJy4ES zC~S=`QX)z3*Gl2IAi(@7g`H9IszXfpT~Xo-h2H34N`dmy;V7lB3yR%@!d5}haV@2= z5!ym2Y>e)s6m~?9R0@63;Xs~9zH}r#Led1KEDD7J`lC`1|DTk?+UN?Ukf8rm3ag<% zD+Tu7iS!7CRzc7in+gT;xC_T86gb~?q26?nFx#W8mBR5Tb`%Q72EqEnl$i6t`WGmM z{cNyGVFt{gYfB}%F$gB#sw8Iz!QF%r{Lmn{mvgX?R0cs^pcHmOE#Mbik8+%KU2rc! z*9Yum+oI%$U>`^ODfU^EV-W1iDCZQxzK-s$Sk6^-)VI2W@W;M&)D6MyjZ$X>N4=}# zm<4wxdIAim{8Jw4E`-Z*--(h>b>nbTcI&QIqB`^%xDJ2W_IM?tywu6@+=2g3sKkdj zLGOaexUpH?-Ea?X&Kq_2!u`1SMW?_6xFu~ zk}z^iVhe~lp1OLNhx7`U7xt%=P3=J>{n$X+A=UH$z`gqF2z_K-fYN#U?^!9~9fn zV||4~vGcq+xR;}!0Jg5+SQ?EY*QrLU1lXdHID(-(H-?Jkm>VO-{fuHy!Cj6Pl;k@U zy9x#Jtx>iG!OJMN70jJz6<||)1-hmp@7XjqQ!M4I5jzW(V{5F2_Uuc-cYvL6Qyv?4 zR-!>D$J}@-b>VRIG$sBFJzXi>g$_{)520r$h50Dw4x!M1o(bpTUV?I75(;9g^Wc2k zVv`HtBHVJk7b}Ht(My!VkEqxMDtAF8-PD7^3Un;ofPY`~MkS$~Hr}LE?uFj06n;W) zfysp58@(H5Q{H|+-&ZPoq94FVggF!?pBu4#rPx7i2Nh&NBlV$C%Es|Q@Z$?g{8bRF zT%{z;LHzB8DM4I?ZUmc?=KIhsfa54kM~_blV!nm@E#C%&AYLmlD+Z(l1!f6eF)$@4 z@J->hr;>*iRuUn}I6s)eSEpaFd)agOLiSi@_x;-by}0@x)vJm(6<3uCrPWGnm#Rx0OBZ z-_ri214{>&4lNy1I;C`8>GIN;()FcVOLvzZEX^prSbD$oap|+t*QFmyD{CriI@au6 zvv19zHK*2$uDQA9!J0>Eo~(Jc=8Kw!nr~`Nt*eb|eeGJcEo$4;cBt)A+qJe^?bfxs z)gD@VLG5L=SJqxvdqeGgwGY)kQu|cxyS1}xKdAk(c46&TwM*LAHgTKP+N{~8Rhwd) zE^Rh%)2Gd#Hb=FY&^Bt@vTet|C&j!;|@JK9M<8e4wE{r)v-m#eL5c5@rsULcl^22TAjOhiMy=T zrFEBf>knK1f(=%6Z8`bYyI0-YwT|mzU6;DPb-ULcRCh?-@pZ%NF0UI`H@@zUx@YR% ztXov~kNUVisb8&rt@@VrZR*?Acdp-}ew+Gz>JO+tr2dHd7wW&Pub=nIygBpcHWnI_ z#x)z8HMVGM-?&rb&W)!wUeb7ZwkP<<*HSbIR0vaNx@Xp z*Sy4h&ga|9m??ZRUua+9;y;yy4wQr~Tur{nPy#4i6{& zsU+-7N!Xo|un#5S@T?>}Tm44$`_*%*8>*L7|5~Isu0#uWY4uXeQcY>S(nh83rR__7 zN(0IzVNmJV(%{nY(iNq#r3s};rF%-#N{^OaE`3y*Q~JF0UFpXfTH9(iOiRMxnjtk~ zYbMn^RP%Vv(>0%^C4pzv+9)jv&1;L4gwExXFrao&?ZuRYv9;rC@2#Cy`*7`(SxNY! zc0pDWB1*yA6ZFQ^KVOnt!q-Ze%-Eh1L_W@B%DxpVcivVSJz!%cW2$Jb#v>!rzH6LCiQF7 zx2Ug8OG20W?)BT&?^}OhS`ud0QxxXCI`5N4)94$Uq$Q!cu>&QcPvdEngew}yHs08H zOXJ;*?>EkA{4y&ET!H@ePwrzm+g#*6D_l@Gzi_sDonI#u4&w`Pd&OLLMoC6y;-!*XlYZ%dRRRibgW&eaLVZk!i2EoF8>epR(Z2eIS z53j#+;Ysy(&i`#*&BEj6jh;7Z-pF|)7M{3(d!+?m*4@A0m-==KH(M}d!DA9@!TWNb zuwZErEaJS)R?c5^jp!f$7SCSXxbTC8zp-}3;_k9$-jaoL7JmHY0Si7}$W@|&E5pJ~ z;GBi0FXU>paN@!(7xq}#bKw;Whc7&4;ZX}(vxhaHV*aZ6KhD2@{sZ&J%;zeC4_jNX z;rtKgzcc?$QqXDsdh;HecT4>(b!*Dn{ICARFW;*_r+(-9-t|e{S9J^OZmg@WYxU*w zFBjES%;ReMMd9<~=k7eW>)ifxdwnwh!*f61;^T{s`1G(d2Yudgr<&_(zNqEO)8@M>2NepD3^D*qQjN#X15F5_v>^_ zhuRM9JFKp0X?AO~SJysa?U60kY0)YOT0g(e;MPx~kGI~9*bx^lpz<^IHVi^}La z-;l9H*Lc*gD+&`c*o6KtRLsgTi z&Q;y2Hm~X-e)3mE7?#~t#VvnTTwkjO!amvW162RGtm?;l_~T#I_Eo*{?UVae^~znM zRa^1Z#civ4RrUUByg!CYLvHj}pMU*b#SvB&bN~ETRsS^pAytF&HRPX{*0OP=kgWpznk0o%XIGi zMrO}v_TRt;I|RD~dj*FER|cbk+k%%&VpcQjn097;W@tXsoL~NO#jEBGGuzBD-!MD> zwCL8jB97uY|K@uDb^q~u)3-%aquZk&<8PROxOG&FrbN}zgK=wS5pEJUj~e1Iu8hBk z*N%ROcZ_?*AGzz|R?+-;VZ1}!B3c|j8$T7#iY5dU{h$zpf#XhTn_$;qP;gjqcyL7U zM(}3vR`7~%Wi~Lq&Cc9E?Pz*N-vG%%PoE;xr zZLbfmu@izj?7hLg_MYHv`)KeE?@_;NX9n-tS;1^O-M6uCnMym`tZqN?157L1VAi#Z zO>4Wvx3gcFT3c_rx+Z2rS7kPGP0bdr!tCOTrmriRU0sbC>iU=q-9hFecd)tG9b!hi z}^&G2eyOd>=YH%I+BS_RVcCzaBGj4Gj9)e!)S(-hLgsKQm{Y#C>}j0rp0 zJA*mFYo>*rW9Rujd>6C1t2C#Zom?y5!S89#b-Ve_<_33$Z|%2nXPZ0x{^l-oue&yE z?>m`K+#<8W{pO3l#_#BRMcYO_{Q2xJ3D&f02FKY`gX8UK z!3XyF;6wX@+1<4>16+G^i96I>>IRu7+@0o0cbB=^oopt$3wwtl;CNO(qg zW;oQoYOnD-+nd9AehYh-z1`knp9pW@8zS@VLc72Zbb&K=6;Buio-THByZF8QK5k#X zFJB-z!0qpja!0#k{nmbW-@~299p-p{yg$Lc@8*sm zc$?^x=+nv#qSq?duiUh9lgh4@8zvo-^^#6Whj?y0zjEW`%cL%;uiUJ%TjfTTohrLj zc1|`*HcWaZos$ic_2Vz&`gmTvDE>VDIN2rXlhno=#aqNZlD^4~$xg}6N$;drGB25* zY@Bq9-b%V8U6ZYo9?3Szw#jzM_Q?+MV!pM;*TDEv+?Zq}U$_~UjEx(U>yq(F+oYY@ z)-Uw$`uF_oXrZZ!KZzI6M7|&x7EB91H4FL9%Z)*8&?l^*o%~$$&)~r@2|h6`gC3@n z*)FU!M~6+!u&~P9Z5D)0&Bx(t^pSjK7KM9WBLa{YC!baEq|J zzck!3+&bJo+#&24?ilt8cMki6yV%y@{BS|IFl?|FhKs|c;WB@B*cg5v{ur)sy~E$! z0J~SX(tR7Qa`Pe^g;61@h?1x>^3m$i8qu2eB73pD&EFZV?S}B3oj2`=QPXHOJIUYc z?{VKn&R^#5^Or|e{tAD;ztT_fSNRA02tU=2^bh(`ewrWc9||{fy}~`BR(_11?#H^m z{&xRL(uS`WoskSp&P>iqPD@TV+l0&g9Z?f=j_Vh82^abE{p7H3v{txbxWte151Z!U zH(|H%TeEifU2s2dcRUdO9PS!53wMi}`>Xv7e~o{{U+W+B*ZIfHhmi@liduv{qA1*k zFEVdyr-l8amVUf{++Xh}_$R_m!ms@e;Sa%myc04d{MFy+pET=*KiOY{jcs+%%@%|0 zdE4g-dr7#vf6CwFpY}KVXZ$UGW;h^P$87DNH9h<+bDG=P4DrvIGyL;@qJP2tkDxc7jMs#yPrXHGw7Q>cn~y*7#!x12PvCD}cI zq9}qQ77WP(k&uKGiWPgq-h07bK(V3N6>Qjhz4l(Oy|M3iW}dTq5`y)2-+%HsJH0*g z%*<1!c>8$!dXv5Vyp`S)I0w;BTZh$X0jt$Uva~je?V^oiduV&JiP}DFPi;&x;c9wQNy8`?0uf(4FtFXWRGVNk^HTKOvhCT9+ zXt(k{+H1V8_B!vUy}{ShKIQ+`KI7|apYsj0FZf_x<3n_v57iBx)O+!i-kbY+A6};S zh=6My@8*ux9~IcR(_^Fi=U;p z@w4@IezATyzeGQRU#cI;FVm0W%k(SxUHVo0ZvAS0kA4lmSHG4&sz1*k(_i3E=&$l8 z_1E}Q`b+$2{dN9~{swCS?phY6nmz~&UIa@n~&Cw2JbG7;GMeQN>lD3@hsSo3m^sV?_dYtdAC-^>klJBdh_+;JZ z`{`x8PA}(E^a@_DSMmnEir=SS$M4s#=MU&N@CWrp{2_fYU#{QCSLiqK|LC9dxAZUg z+xnOM9sMge;ZAjv?ld>$PB->-Uo#GIUpJ0--!QIl-_&c}w~YJUw~goBca0`vCiYHk z!M0>uu@T9&+C?78^Gj%Z(NMQ~nwM94}NI>>cGD?Hy~pWxUOsd8@Im(c2j09fx<( z|Lv`h7b}+F&5B#S^}G$_Yf(>`Pn#>vC(I|!XDrLI@tVaQULW&K^9`@J^|kes^|bk{ z`JDN@`J(xf`Lb7Heqes+^)pX1&-MCxYk9rAQm@!tY8_)U)lae36>nj9 zYkU2@0p2>^&fY+8UGHDkcGi|wV2!dyTRU1~tevdgtnt{ZQ#l}@dna7 zypMDc-cC9MFGwAQ7o+CmHKyJ1PEdn2)18GEg!aQrLsRe$Q5Jk$qqmbe%#53r=B8%K z+`=4emYbWHzLqsNGKZQ8GieSnw=_31H#fI32bmk28<=J0hGvC1+`GfO9Xx-N^_=yr zm9t9t3H*4gm(|-UwH~%sT2EMaTlZM^TMt+dS`S&vtrgZI)}z*A*5lTlp6xbzj_2ad zjsbYBV;#KDv97(JU2jjeHa1*qee-MkBKu>moISzb%ii1G*WSlY*%fw~ zT_wMyU2gl3IEb&tPFsV(i`sbmqd(pNDYe(umePxKPwNx(z3>K>dhe^w5^t)lW9@2< z!#hb6@ov&ycui?4-g;`r3s8q!M}V(A9&bgRh0`CLwL+_*5NPD4uxqYR5m3_5+4W#uR|56*E|EwS5{TFif75s9% zkanDQymo@NKs(8L&A!6E$$r=V$o|Cs)c(x=-2TG;*#1)T$luuC+TYn<+uwWN#Kzk{ z#A@)S+p8ut(X$te$IJ=LR>q#chr! zzQAwAco8q=CE&Yy@!q@-@5}q~{(LRIHXi^^Y#?8k|4Y7{vp(N|ZwLx-V{m7K`4B#o zZvuK^Grl?B0=&*Jz7>!21Q&1X_`Hmr!pnIDuVjOH6(7z=@U8had|SR98^X6|4eU2? zcQq^r-blPp7_gy|QyL8k=E`D-<6N!yYcaS0^gnQ!6))P z`6Rv<-<$8l_vMrMe!PxP;q|<^_<`(4eh@zxeCDCxG!Ns4^CS3?{3x#813C`-OEw2CFW`6!m!Hf};ivM` zAeO{=?(rS{}0~Pdz-(*-{tS| z_xT6>L;ex}n13SXG`6Lj)xP9kv0?mc{$KtL-r@U>f6ss5KY~`=3h(m$!hhwz@l`wr z1bav0SPSBs4sO+i+{YGA!m$K+N(f`LBCQy&`ITzDwBA}DtuNm8>koc*ZEb+I4tU#j zahFAsO=F9}ajwUnV^4##{5QDW4YUoljkJxmLE2!v2sl*RMB7x`Oxs-BLfcXsrfsFg zwFKS@OliJWrj=_Icsa028?KGew$`@6JA&J3+iTTYjaI9rwTu>MBehZ5Xl)13zA0@- zZ47wnowc#xgne+rW!gAUo#V9$kXwTn(e~6PX?x*S!hKk|wl64!U)X!vep(&4f_kk% z%W6}>flp@@#Emy;Gqq-|MQhb&X>D3ND2hr@6fd&p*$d#MXKQn`x!OGK0BA=J(hi1P z{7`Mac9^6WkJOHWl>C^;NIy|KNjsTUL5p%K8xHyT>Dn3EnRqSnY&JqWM>|(LPdi_` zfNiZ^$UfCBV#~CPwM(>1C4Y1|_#|*B+SS@McwzB6?RxD7ZIQMZ?=9ZMw!s^lH?t2k z@s`wWcn@+ZUWB}prNJ2rDZ<^_J(&0I)9wd{_ki}G_7L8RT%kP-+UOCy8Tpv@IJn1^ z+7sZuo`Pmv@JY{V&w*;fJCfRq+Dq&baLupag~!+MLe(4Kq5gw+7T?z10k8HRxU~ji z@mLF6rE8$2a3)VTaj(`$&cX9J;5a=zv{|GV>m|@JiFdI2K-1Ju@6SfDc6}{2i?y;g zeQiiZ*1@}^N<#8)eSLiceM5aCePex)K3E^34~150Q++dib7&;C#EX?%>2W>5M(asE zrTcoBUJgA)rCx>CEJv^%^sV)6^ljNs`gVBVvKsn}T0O02*pAR+jMPWzqxBu|{^=Nf zCw*sqtiFrBE8fD~4ey~&(7~CqG3+IMBAWx=bdtW8zPG*)>tr2lHr~vftna7SK`U0T zH%Pv9nm!%8^Zxn_y-A;mmnmD=PIzB)mfohfLtE0R&t^O8bMRi}Jn*##;`Pmg^+VWL z_AWGP^YMn|;rbEKryK=}?ijqzc^tHCCqTP$BJ?XK z`FPFqLj5BBV*L`fE1L_g+-1z;*1uoTZ zWCyT$>_Gh{eTjavev5u9-Uhv0U#j1s->EOdOQCn`_vrWP_v!cJ-Ova1hxFz83jJZc zBKoNQnEtrFQhx$(iaw=3tv`d8VxQBW*I&RZqc4F&e?@L2MJ>!0YK;(gN3^)K`*Xwi`fz! z=vH`9H33d6W%x!J-d6?Z3BGeUIM1z(ZH#S=?IIj#2Ar(qLX91a9gQ)@PR7p0SYsDs zS7V&98@TKV#_nuSV-I7Zu_v2kOfvQ|_BQr0_BAFO`x$j?FJp>PZ!{QLNVo1ZrW(`O zXU24+(b(UZA*kIvkKSgqOZm!dNLc1V<9Yzw$2ib9$T-+IMDXwILvZzn8%MCujU$bt zjH8WXjAM=CjN^?Hj0MJt#!1G>#wo_B#%TpgS#bQud5{EL0PXEX#>K`Z#-+w(#zNzA z;|fJJ8`l`u8rK=uOId)Rm~YBU1a32KhaBJz<4$9lahGwoagTAYai4L&qOS#IZ9Hr| zB4q}T8!L?`j3?PA##6@A#xusV#&gE=#tX)a#!JS_#w*6F#%spw#v8_)#(xY@-^M${ z$$wycXnX`-{u9B?8=r%l{}R0M*T#Rr)qiVz2hRQn<45Bs@W;OxzZ$<8tDu2qCI@$~ zgTFUTOY-=xImz71+?%M?{meRZidkHFJJ~!1()`mP6F&oT z?IYP)>?n36Wb|i&2RX+)*E~|f9dERiq#-MZQvfA^U8n)jLan-7=|nh%-F z%@yXulAC%A`h}H}n|ca-)icC9y`Z=!A)$k=;dQ(a_@;c7_igAF-o;yi?+dQV{K))x z&9C%|_XL@1{)DT}er5~JUm!pG)%=ZJX09@GEXIo1wiaXCTjB-c{n*BqX6euin1Z9T z97z7}W__Tu_=s)Cda)&z%WlR_u4AA#D6)#J5^z0&_vvHxwfb58t+lMRC6_VKT9@6% zZpWS-lik8@Wy{$^&^oLK4chwF2G)kwM%KpGAiUE$gq5=1>^f^GTTe(z*uU9>)@Ih` z>>hS6yM|rM)`x8G40a~lfSt@r*q7`pwv?UDu3~l87T^enL9!BuY$b_zW__#7Du>ju zl3mVf*x~E}Xj_V{Dt0_O!5VIjU<<6Rt!=Dr!AWip-uOax5p*0i>{zQ7GP%>(IqY0^ z9>a^8R+`;mWx#8Wl-%YH#Bc5_c}>AP?It;%b^odmAz z6v>yJPMq1<);ZR>)_Kk@Elmw{iqTySjcF6%0AZP!S??Rw(eZp6FF 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≤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

jj+E<2xsH_UNV$%b>qxndl

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 F^gmZ!rZE5j literal 0 HcmV?d00001 diff --git a/lib/assets/fonts/Inter_18pt-Medium.ttf b/lib/assets/fonts/Inter_18pt-Medium.ttf new file mode 100644 index 0000000000000000000000000000000000000000..71d90172f10fab5ed0fd422a40cc09e7ef558072 GIT binary patch literal 343200 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 M#2c+wFW;w$4Cq|>)5%=|W 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

    =(yz@O*K8Sz}a-+D&3^4H!)XVVw(P>=y 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.aAeWmKV`DG&sXXuv!^w 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%0Dp20B>@C_f+r#Qpk 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 literal 0 HcmV?d00001 diff --git a/lib/assets/fonts/Inter_24pt-Medium.ttf b/lib/assets/fonts/Inter_24pt-Medium.ttf new file mode 100644 index 0000000000000000000000000000000000000000..5c88739bdf1b4aec798fb58c873483a08a538b2a GIT binary patch literal 342936 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�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 z%0A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

    (ooqSGyr+~wg7v7X~!Ms4b z)%{X={nAGtSuPg6Vl!jR7VBe4Mqj)jX<7B(;b%|$wx8c?ww;XBkskM6^k?Cu;s^JT zyMc3pw#;Eko_V0BxgLI?hl;k zXn%e!33v+T>lm^=F|^@pAnmx~sg|!ni0(Ck^bKE0sl^rTAY|kd-;f?5J-Fg|sAmVl zCbp)Kh+s&4qIZGXu=NfsI1d=!JYcaFX&`>a@)nGkEv>ek@tfk}8~A6Js4Tu`k|?XsenFm9DGM5i5xj>{yjOCCGppzZ3uIrvL+|` zYB|b=> z-3a^}`4U6xJ105KKdJu>J!b_``YKIJ!)(0qa?K?2Uvlp0C6 zk&5q8k-w$-1pb+Kl!E-s`TVsZWF(JznM=-#4*q8l-Z1w`(!@z z%xAKMS>`CepL^Um&l@5xa`L`~=Ryy81Ic4Eg5R)hVYXJ!nQhGhDhIRScvVU73RDBV zD^N|C6Yr>A<^!LtX84*}nbaaHi`&}nMx?#p-f#4<589s_J?$g*DWk6)Z^s)0 zo#IX@V~|tcsc5|JRCnqbBbA=05iOjJf^{{u0Jp{-OTm#>f7H{=+=q zU=&i3PyU0m2SwtJtr{i#OKWObx0^ugEUmnM&WIK3*?_N4h3S7H3<|3Ul&!3+B2j;CnJX=mC{y&wod>s6LDrZik_5V{jb5=d`nVgq-IWP5c zj-jLp|MV|mwDTmkDQUvLp67HA^U6$F1OIxI7!>r?YghfB2fvO%Ka*TDd8;a(^YW+5 zynuFMvGN*6H<=LnyfHR3e`sk=Wvhoqh87I%5!#bqc4Za7EdM&;(|NJ+zEHKcz5b}F_fMo67OvG?l32Maq1kjAWR zx5D?l{dOs=B)Ti%p+g(w2|@Da(B_VY2;Mofo+&|(wx0DVf?lO_wy^# z?b6JLc{2FOmRVUrSYYHSb8+8}%LQKq9|be9<)mN&NcZ29d+{x~ z(zP=-_^Hr}rF+BtU7Bhm#~1&`XesxVp~S~0cjbN(O8xS1 z>^JihmxhxoxrP(hQu2EP+6O5KO$zPOGi@qoRcN23LsVj{rpKo?bR|DF;Qq8FHd|dR z#T_secWSu`TB%0vum4F4Rgin>-*YCAk|R&q zk{3l%@?5%Qj5IB6zg!|^24lHb#_M!TS*>A0pfO>3%N zuNqu6xN=6&+ys^5E5}w2ue_x4?8=iXkE%SVvR`G-%5IfiDmSPsRyM0lDud)FMnL8z zbCP$Gml+qCoJ>q^ORi0>N-j*!;Ldhn(m&~wbWgf6iqa-oFIhc_{jdHz-{8OSv;9mz z!$0mP`3e3eKhj_3&-H`-G5!$0x9{b*_nZ5UzJ^w`3FDS47&}|QsN8!MuU0%;F_kgs zag5nr!`R=Dib0Ge9zYLH55_4sVPvxjA~Z|)(sVU9&d+sdwIn=$5B zVJ&6aMl;gw^mIEd-A-lec-E9(MCCWp=Q5R0@^>C?O8WQoEd2B={PZmR^hm=`&%#fS zH2iZ}c%E$2`1Jf_s^Oo@!atXVpO%H6mW7{|h3D=)jW;a|KP?MCH48sA3qLgrPpg}T zpPGfAnuVW|g`bjzr>>>pcnZ!`&zF9xLJjQ%_8~^@nqGE2S9VP+yQY?1d0erU#uaTEceUfirv&tESJ0TxMIEBFOMr0%>DAXVny{6JLaxDuGlj7%j1eY)lV#%yYjeV z)!Z+SE0)du^0;DM^%MK%t~{>TIQPrr=61$XSzK{xTybe!acNv}XL3#V?PW+nJP<xbaXYtG9=5`jpJZ^4he9CciJBwc)H@CC+Xqg@yMTN3_w1|oS?<*D zv*Yab+@}wl1W>(T8JexV(FVhb?%}g?_Xb`gq4>9|iUO`uS2EVfn_6s|kCy5#Mac25Wus7L}_A;I#2GjF+2+t6`n2WtR zPY^Y{*3*Pnv{uj;x4?YL+`?B$;Z$aljblva8hT!buBwEb-#o>RIq8?g;fDXZJq{K{O#2IefzX2fR( z^BO0a3Cw99X)ZJ8n!)B6(!aOqWwz%S9ZijC&JirVu8s7vej24*1VS4n|>Cr3Y=%hrRWmcp*J=5nhotEj;OsAkt(i*cg)v3gnzo(#WDF?KKgix34 zOI@-zb;{DE{gk@JAmzJ>Xm&c_gEc@kgX$dnwTEem`k1O{)dJMUP$z6F| zxw}w5xmUtF85<4O(9{qnd{8`V#)0=X-XD=l>Hm&cWw zm-|WFDr_aGTAH~e57bX`L0od&+?D?-$5lV6-MK6ORqC(wn^m9^TdX*P{-2-mlb#pp z>tR&3vR5Rt2L7*%$}%Q@-T!!0Hcz#TqE`iRb`JD?hKv$PZ={j_TbANy%NWETLr8CH zcybye2s-lnTJe?4FS&+(5}8dlhOxlw;~VHVxhcLmz9qgjzAe6;nR!qDVINqG@0ldj z{J;L6lpb}1KZkWI1DWgm=l?^~knR2wayB`!=#T$pJgErN`>A_;FdS zF582(GyY9@3HbzJAC;JYKB9~hrakI`j9`-czt21{b{ksFJbl(~NDKdsSwRW|dLh>~ zFPgi#0~th%+tt)yukVzSI8!=O<^(g(%&Vs+@!T zGgwE$$uV-*@4toVZ~E)+?%#ipvfnktAOHG2Ok575q5k~$@8Jr62&WhpV8DJy^c zFRA}mzu&|AKZVZE_wRgvkCXgM98J~V`~MzKW*zB7UO6yZjsi5crr`uUuT@l zEG?P4pUy8QRKC{@X^Ym0*ZtcX^5+syt7WIS=>O5)4`GH@|9F4qD;!8q@WJsR@uBg6 z_^^0je0Y3Bd?fwDN5{v+$HvFS$HyncC&q)~ljt=*h1qwf#b=~5ZqH$^lK_^CYyVD1|A9qq$(mOkj*+K6zH>r-X*ogbX-Q8ZyPCAxx*fET} ze#DHN1@6~>n|hhOrndQgyn$9*#~ZxdScrDQwiI=xKq^kh5H-p1Kq z_5a=do@vgQ=2T_^jbrrq8d@b8f#DtY!ilNtzOw6{vg_`$>#nlv-m+_A*)^f;y0h%M zqwE@2cJZcrcC_2dF2*b~Kj!3RuJL6Tv-2{)o64>m%dW9y*9~RY^<~#}W!JT3*O;|%CicC-;?*YL7ySlM+=*>!c!o@by?YUY1ws2*>!Q*HMH!y zsO-A1>|&jOET!j{UFVfu=ayaPlwD_+UA)7cW~Kt zO4-GHFn%r9EcYTMOGo-nN`Hy68sVfqxcjI#0rMKDkAIA1=luU(D`*D_gVI{DsO*|w zcFilh>dUT$W!HkTtFG)~_FA^T&&#g4W!GnA*QaIICuP^1vg?bo>*KQPqq6J6vTJtP z#flZ#ac7lXylI*Fy;pYe7DwjyPTBQ#+4WZ0^=8>Mv+R1K?0UWIdadkwwd{JO?0UKE zda3MsvFv)G?3z(_JzsWBFT0*AyPhq(o+-PYF1wy8yPhn&o+!H>FS{NqyQY<0kCt6i z%dW{~*CS=u!(|uu0GTBxm0b^JuI>Kx-r4`=dsGkcZ1$(O&i?eCnY?3Gu9GrjFRPOe zr0M!oo#cL0>STH!n4X8Brk3Nb_Hxj@XPJ(xgJx;z`EJ zsyysDO`W5?z@K&@8O~GK=Hx|r9)_cKa}3%C_C?#kk*MW_rgexL94!NTr&UNsWc#AN z6Oy_fFXK5ZO{dHOaZ^%%N-621gpxi=Cvhp6q@xATBoA{BFoE}L$MS4)4bN9;zfUlT z`7Q&s7xZ@vIPMRUZ)vG*veMm)1)I5vY^}QopB3(I_PNB}h5H*ff$cJPC)-9hp6znS z9Y8YDQ4dH1b%4~4!#&pB&h`g)8{5(DR<@(uE&RIFalIzZT&p?jo7s+VT=O~i8`&F4)f;D+Ym5`USUCH-D$z69TA(y*L@EOj1mQ8MO7vuAl8;X16-|T_wTIITKa2o5B zG}cKH(w&^f8kFwgM7AT`3HUVp%^r?Qk9$PAhr`o73}m~)9fr>mHvsoYcWAn|L()BH zIoLA|**Eq1W8Q6z&vMt5?J~C&VaB*EaW8gTq#-HmZkyEA?7x?LK}Xk#^c7u4_Vumn z!1ik=HDtJJ$9B1E%XWop!#*BuI)v*1+mDrAQMf{h# z7PyDGb#O0p)woBvmbe?-`fL|-Rqw&9sjfWR%dEAu4!X4nwbHGbT5JtMEqANqGu*8v zF-80RN+GYTJEII4ws$*aszu<>LIPbzmyGTbaE`aT#jX_ zxAAgYFCpa)KN)VRrSVrbt(lhkOxgHDF7Q@_#G(!oE3JK&+Lw&9)V`SbGPB8YWyNO} z+Y$VI2=l~be$rpg*>X)u8tqGLSJ)Scy~Mtd#(SCV80Ms6P5T`FOD)%-c$wwOlMJ)Z zvK?Wc!KcAK&318a1Lm?)1DVAtDVss4v43qv>?3K~ALh4TEH$3JQU3@{{o}kJU^~)E zogP6OU(Olc2%#R53aN(;R_fkJORXcuShl0=4QULq_bBmAEk8PSt?{4R4{1T|S!t?= z5PqdSo$U>ldWS{0m&79Hv0Y}*#b=B?2lsMIedPG3upMhpW;@(UtsG^kkEHQf+{0{I zD{WdU?eX|8{>%ADEnI1(7JenOxyetdh086qko_IZcI01T>?MA-U;6u=Y)9C>#AvX) zw3@lrF7?J^^^Zj7l*_w^;)#fEy73^Sjx9bvv^JJx)PKXp;+6?5L@SE*gY z|C~SO{d6Di$uH*JG}Jp1&%B-P^(}lxWc!$zhJ1tVpRSDN)zn{V&oYzNKts(WMN%^x z=wbZhh{#Qh4i0BbWGLf6o2)d{*2-q)8Mc;L_2ij(iv2AyQkO^a z4G%eg>MFK;6!%y&mF*8^3fs|UGTTw+5q@229%j4DJcQ3MGl}g8L!IUPsI#Q;`M||X z`DHq~4BsaMmkh)I2~m#299{lyFps6W^sns#ecF=NJJXyU&mNbXJMbB9Zf85v+{X3> zGY2cTIg;%% za|B_=n8R@|HUra;v|Q%s)U|%l5Y+LW-Fx)T&fq<$$=nN#r=R=3$ZfMvdfa|&SC~E7 z(-N}>?y;s1+mYrVwqwkJ_%G*e2iglGt;P?gH``HWH~g2H?zo4UopCQ?R8cG??MH*5 z{UDtONdEHI{;4je@1A@n{C=YN?~6T$vlr%X^Y>D-m*%q>fR12~hl-MhL(;z&n}btr z_`B<{;ckMmuz70#%{cmU(*>X5X45n!o8TU4Hpcyx>CCplY{a&F9X9RxYq@Ec#%L?Q z|4Uh`N%zma0{L5=hOWiuX6b$7DC^_%74L^g%s=K}vo!o#Y4|neSF;A;N1D|oyj*dN zv|%IYZ9hL4LXY|h%tRl+n`V3eOG`xkuWS~4Naz)e_>)(`2eKztkRj#F^d_%ZPlmJv z@3S3CSs<5!clmW`AZ^Mr-mM_7g16a@2xwVI>6>g9Q)bdy_UD#~62#RuxHpY6k#Ng{ zdvFgA?q)kOxQp$GzuJg?& z|K+`Va7t>2lZm@BIFaoQ*i399*UKfr>1>xV_d%?2D(>a9agvT>*^cE|K+-{-Aste; zmIl-ROx&+A59BrbT4fI`kca9?`}q^k6IJ-gTVsFsUvg5y>wg(D zvq33tz@8@AGhxNOgu^pE1W=e8PatqsW$#}MRCllE|m`q~(Nb(5VCz2=G zK9fAlc6#y}+nLEHZ09C(*?y6H!FE}~C{OZ3@*~^y?b_tG(D@&IP$@9p}yo^D5G=XYjq zesh=DmCU7C#7v)en3Ml3b7>|sOXqH8>FBt}$@VyA`y9etmwt>0^W zDvvWA%1G16j5V>&&VM=H^!tihGAbt{Pj^NW=!yH+^?ByXTTi?zA$@fJW*vp{3O=^* zO9j`f!q1-eB7QQKyU9CZxo1nF3)s5oe6}_^kFAN$WgA4?74cU5*}PMHIiuk>M=Rrf zqqF$yGRC-XihhgtiG~p3*XT_Au3+T*mgt}He$g5D{St8<;4OKs1H3KIb%3{e1~Y5t z@WMYTxE4kOD?a3}y6CWqw^`le@%Z*=K*gIu#0dJh=+MH73a*Y7fvn|MSmkL6D~zYz zt4P;*F8u0g2@C)9T)_(~JuPJ6H%|-643d-C-XC#w;SK(y*zcv$z46}BvA8aYCdPY3 z$B@p88K>ucu()4zB!3NMg#Xs)?s(6LD^N5~)|8IwDn4cVWyKt}b1Ob#`&q@ur0qgx z1&obl#fgX!$A_7b(I?su_xa2ixIW%J+86h^%pYKN7S?Ww;&XW0WlY>F+8g&-tgbRD z?#aq75#yEWBLb<{b==caHYNeHyb6u8DVw`r;nUi0f7H4zy^N@lLs}oE&e* z_N2HQ+d=WRY)_20VS7TnH5T~E)BYEJ^wRzxA9uz5gXikQ$mv$NzxP}b7)RZb?J@Bd zY>$q4Pnhx5&0?PB3g7t({yLIz-Y)!hM7$|}-+HbVg>SrEEe?-2!Tq(DYsSEMW5OO5 zcdj@ZyAGfo*r-CT*oVd&vOOg3#P;C0Bin=G4r~vMH(+}}+@9_JaXaGnXH^caUxh}` zRjIJt)1DTVdD@b~QcvqtSi&o*wy?Nj72Adic}Fj6t?f0Yd))lLT)}bIf4_QT#rpZm zjk0cI+~SWbH|n~L=Gyoy*qt=hO)R&3Pu8uQf}|GHMAuGHvG{(YrJcd@S2_`kDG zBde(V-OPa9WFA7=0{ySA;8O8kWv`0&S!v^sYvTOfnj5FEVkB!t{)csNhUIHWRxH)^ zaQ-_hainWa{*P9gl&3DPZU1?#$=kSJ|99(5u2o)RQdXGU=}&7+>I##i|F5nvnXfPT ze!8}#t}L0aEBV(|B@a*6lpOSjH6<^~)|8YrjQ`)SD7o8zSVc)zP&$T{l%&MS3QDq) zlB}Zi@7GSc;6IfbEi1gYF01j}^{1JJQ=>-J3TqbDDl{vsU1(ltk*>uS7FZS=*d7&v}D92s$dUtT@m~iM~N)T?U9gLpM^G z&mE+1;C9Ae&TV5QdI;SFy5KJ>!OQyKTj1US-4gglFYBoV^dF}1Zg&t!IEdz<^0q(l zo^HUiN=np-$_n$qjMRYVx0L7xbVnt+3*9M0?s>ash@Tu!*bRDQ$XWxtWE_U}%(xoe zHDd(IYV|31q7q+t1$rwcL3dZoYG@yYxj;d%hhij8`YJ|jxu;?zZT%E;7Rs9M0`Is7 z^lqe>p(ty{r|ZT`dL-RoZbeyhK3#WS*6v`HEy28wvSz(t-b4>j%q;Xk#mqrjB}y=o zzXvN3YgEwJnG#J#4^>!EA>iIRC9XilUJysz_z=P8ktvGbMaVe|qent)1~faoW5yb?>^NgR-Q(Twe;L@m*~l&FZ_twfX1dz7de zov1{Qp!X`V#Fg>{@u%qhO56l}K;hmn2p&|T22}P7afnK~A+AJazYu?cN_m2KZB+6P zq94$y@F@OLKc^|N*zGaJ-GDx>#Ot9?DA9cMNhMy0KBdGvp-(H^IS0WrO0*b#R*9cS zpHpJ_eYz6QK;<_`S9OxVUj!*LFJ;I%zMSFES28NlS2MOlU(1kk^*X!>1K}-r2juT} zGbHSLikEYIUojh@Ql4g0PkW*tD)c1>^k$}TpA*o(nG$`6&QVMc^b?p%T*MT#waWN|AN!fAhqdzK)M+fv1r7%Jr z1V1a$_vi|R5$%9)5AeZw;@*hLxq-VD{Y_!k1|NG@>~82Pg_#}MV-A0FzQ!nwxY13c z$dz1{xk_Pw273w8cV#F;f^CL!4uV`O40#~fz9?l#kn4u=iro`U6uE{NIW{m}85lVp z$o0g?F~IJHHdWH=!D_gHkxxFhu6S%kAA5@JkFKdm+ic`~zz#wstsw0*Ut&qIC!yrA zAZ<2ZZAoFgR=(wuBJH>bof_^oFP3F)@@Q zI~I41LSK1cY86X9npO(EKY?kj*qhKcinN8Mt-=_1VA?6twwd;dy${_$k@{&mDE4u* zqayXybW#|-=fmcT)Lp5o0%QAu>8waSHXAE;2D*tNb(%4k6gw5|qIfxv%@q4Kx_O4= z`4)72gltIzw!~jba0{zV? zzBwv+4_3`+CN{Q{)-KT&37P=+%ncgPUuV^!|PrZt&}(!xbxK zP0|N`YgEb^$US9RwkTh|8n=`u@av;ehJd+$d<<8Kq>e~_Lm*}HdL`_DN?Q!}Zgi|7 z_ZQ|yC3pk9DWe5?v%)-XK8mZ@dFZW*-wTy80lpI|EpHZUi(Px#YJNlgB4??FazBl^3;s>EK;6?T$_J2w7r=hPX@+`=lniP8^ z`kLZfqpxR(TgnI6kIvm@gIE1g%pT*A18>m0~5#JVp9A%zVYxpbL~>B)U+s*P~KCfH?$#`AT8_ z9v^MZSOZI=(3Ey=yJuiMjI7hLcdo0PUts^75jdxc&Yo}Dbi

    rife;5RpkCf%7@_EqLdp!t}|B70o-Azq!r|v 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 z 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

    ERBva=-o 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ૂ`3XTd_s$gG`pq+cNfzhxxM*6D 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 Duw-^W literal 0 HcmV?d00001 diff --git a/lib/assets/fonts/Inter_24pt-SemiBold.ttf b/lib/assets/fonts/Inter_24pt-SemiBold.ttf new file mode 100644 index 0000000000000000000000000000000000000000..ceb8576abcbf1ef3270f6531f8f1daaf3f974f3b GIT binary patch literal 343640 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 z%0A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 literal 0 HcmV?d00001 diff --git a/lib/assets/fonts/Inter_28pt-Bold.ttf b/lib/assets/fonts/Inter_28pt-Bold.ttf new file mode 100644 index 0000000000000000000000000000000000000000..14db99406ac15c12da63fd436e172e626fca4e5e GIT binary patch literal 343972 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

    R|XtbLXe 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 ?{nkWnD1I-V7)#SVyA&nRiDy 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

    f;fU8eX%-R0)U)#*LEPrdaAewMiEXwsbT-^x94 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


    >SiSAGOa#J%P#AELUvwyn&_gyA{7D(B`V_V2<~w zeK2YttT^nJ>|)Gy2j;p1bKQX+U5q*Iz#MmAjyo{N9mw?rYF~*QtKdEj_oXZ!*&J&% z+&|#1K`xKO6gh81&bi2WBXZ6~&berDF>>FC+;frpM&zEWbVHx!Aa}r?1hk$K5DVCc z7`+K7SonF_7cdhqn8olf%FgFAfLa375ZEZAY%SW`1^pk0->&!##`t&3ZpZe7yBFH7 zgjG5Wk1xZVL=?=TDC?*+FHAis_Bm^Bz< z*bP6~i^b>#ut=GxUjV$_hV^3u*{*CbVQ;{O0E6eSkzm7T`UU}v-Q*?eI2 zUF>eQlr3Y+*+cAM_5@qWo@7t4RqSc@QV!!kWS_Gy*q7`p_BH#C{lI=?zp~%h?`$>8 znyRUp1}MTbEz>p~(=|P_z$`M0&0gka<~;Ly^BK#rTx%O^TcVM{)^4DU->ucwAD|FW zJztUCUELVgxV@EO%4n<@6O~i3)?KaKqLe6$aW1w>ouST9#;Iqjmnh@a%hYR>Nm%V} zP@1&8wK2+cZIX79a+G$ZcC~W3cAa*ea+S6~yH&YbAF2;kZqg^~9m>u6EPb|ekAAd% zj&iRNGh)hf#wcTy^1Si6@wxH>>&<#AFS5S+`-&IdCT0{+*x_sEHlfMcg%6-IOSb)f;mBX&pgCDM0wwwVm2rrn9rLpEB~_i zruLcDY&9#NThp!S$`@9<)vkPL9c#@|zOoit3zcuIMb;waTWg86METCT&$?gv-ulY= zO8L?H!TL%0$@Xkd`PDA6yDPuh8`&ExYwTU@gsR$O>@likA81cdZTk>=qFP`dVIQX! z+gIE3)lKYM>|4}6_HFiU>Sp#bdzreqz1&`|Zs8b?p>FB8PJz0WGr$?3ZtLvf?4fSw z9PgZ<_I1v6&R6?8S2$OwJ2F5SLaD*l^S!Nb6!xB z&JWHHYN>0uhFYeU`?J>mOV%T%>hJs|5BIB*^O9#JTaq)9Mo(liGTunduo&J)S zM#2mHcl;CmZ~W8!bNmba%l&H*UV!wqV}D9s<$t)IzeWCpF8@~hUH$Fm|0jQw62Hj5 z|JV8(ZaXpCRTm_*P@Z zXuxkUtr&yA7d@ubgEM+n$tbU@jxs~7#JX{VdW?FE^0vA_eO!4*eNBB$S);z8eywEH z-?c5(UfOnArCOnl)5fXe_)4OV*KX66sI#>@v=!=++Edyy>RH-z+Vkpp`o{VYb)G(2 zAFZy?&(-ItkLwre&#O=AAL>78mj0Xmo7M-U;A)#0B}R$1xlwIYYg-t18Y{Fdna4aW z#=5iaTAZ&oTEg7e+(b*7IMA+@@Kr@CHFq(0(aOxEnbgY73bR71Fn2e1*9Msfmhwr<=b(7io_;S26&K95_NrIy zRco&S>rTRNH(*|+G87m%MmZR~`$X(m!?9yMrd*~x4*Xl97ONX6KdQZfg}-wwR41r& z)YH|2z_DMVPU1TmIQHv+lScs~e^qZ482KD9a;W+P-`li4951zgS`GgCYjyY=z;RUD zUOPoQLmR4{shy+ktDUFK*Y@W-AJP|SOSF36?&DfB$6f6Nj=RYHiuR#)n)Z>lTDw?V zqYu#*>-*^Av|sgu^m^Umd!*i-?~(e}*dyoZ+XA!S*9URT)=%M>tzW9I*8k8iGa!WN zS8y!XuQj?Eef8@M-zd@VG4?d})bHgOuis}3F^1^(8^erY`UA#rW4QjHG13^RKg4%j z{b6H_F-?EOm}6X|zs+ew|Iv8Tcn`A5_r_{tE2c8l*nv}vu_G&DMaE8?W{jOV%^17z z9oiVkcW5KVc4Rvmakewt#Ypgd+VEL98)TGlx-!Z^S9=(oat<}dn1`9o#vzt!8OAhD z8^(0dMw8KMwOAcSyEW4~(l`QCak6nNDB)(~H0u`YcH<1|PHUNQ9%$fE<09)5>nG!C zV83hJY8Tks8%ymS?J>s7!18*g*puzWtjJzs-@y*#c+4hnJZ6V*JZ6V-JZ2L)9|~Dj>@?>R=Mr|hbD47)JHxrsxsuHVC0xVKbnbBOVCQgp zVCQmrVCQjqVDmr^E7*n3v(5|bV&_%oRd%`art>Dd!gzyB+pV9-hgOTfvB2b$v;zdL&l0$P zw7~V_1g@VCTz_1fC$Rhuf#pjDmfs_=e5JthcR7~pI|?i>7g$~;uzY`k<)a0bPX(6$ zrY{xv{j9+6=MCGi_16TJzb>%+4WqxYz5cbald-e@oiWge>puYR%k*E23ZqhA&GFt~ z9PbSic)vHW8F&v?Yb0>qd87<5S}+<80#_{9Ryt2MW2+ScAW-1)W^O3}zei1+^>?)N&*125Py9 z^<+Jbg{&9rW!wVF+1ywpsO5H0%dW;9f?Ae>S_T`-*zRmk<37j;LyQO6FgDD1i0#Yv zH6CUo*?z_&>_B#)@faJ=#v3aHT|ExE+RIpJR-0+#UxKuIhuSF&E_)8^A`WAjb( zO|}X6WrOwRRLZshm7c=3v`({5XBF1D*12r3b-r~z+YMCu7~9=?+a-c4vumr+EZuZ^i$|-n)QFQC$81J>Ao@Gk}1Ih^Vl;vzM9K zMGZlsfQSYNF~+z=2{F1aF~+dIMu~Bi%YrK+Do&7i!HHLN4IxGuC5nVrgGP-aD#6QZ z6bUL4Bu4Ruib(%I=k)Z>%^hxMW;jYkKoxk1r z+o46BPwG52ls5lfHF&qp(yFEL+3~sYdGQ=`GFJTKkWy+65C|ST!!bI=-kn z6u&pVEWSMcczk7ib#qD!sxa}Fgtl$sn+UVE>cgr>t5#I4s#+6YU-hEK3yDwFg6bYS zH}TE!E%9v$vuaKvoamb9DKV->CHm;KwrY==#E3+3q9Re97?3zTF-+1;jL4>*I2QZx z-8AP{6*P&{aDP2hTnZ(&ur(>@9 z63m%ZV=`uIv(0yD-}U;c>l5cyL3hnmciFi~OsVdo{ji~3dCW;PR?SGvN+c6kB~po- z6SpVsNZg%Rl6WBTNaBgaGl}ODFDKR|HYDCoyv=w~n|MF*Nn-n`2daWqovONX?NxPP z)xfIKs#w**TysY&e+=>YJ)iSh^M>|ypTG0^vfrPwJtM!hTh+Z+OL_hHp#rrrjxnXS zs)6z0GJ4OPoDiqub7s{<+&3x@E~sj#n!%lflaSYFSb4Jf;LfUd=(CH#(yE8-yW=nJ zuBkX3)4ifs#eo&EiZd%p{q!nM_iTmyqf0$gF|i^hw#2rI^Ap>$rlK}6cUMeBLt-v( zGta2pQgJZvRL`lnrsDdF`F={#6=EtDBnA~QLldn`d`-ToxHEgtJJ?Gr9;$e>VnxNO ziWhmW`gM7;Ixg>5=efq$WOCi;T?^C1iMTg_#nExmN29gT)1zlbCq~cL(2Lb)MWP+Q zigzkLtk_y^mT(c#SXDa(vmL;}SnfWGhTf0qJVvm{1<0})D zhgJ@%99nryUgh}8Gb+!jJXb^4ow_d z)hBU$uBp5&aeP&uwoT&1%7vASD(|gaM*KWOoZ?)QTSlI&Rg1)i6{^=g?Uv}0HI>UN zmnYVG&sO<(<>Q5(GI4U-rgCLsd}4g%YN0L68Hv`WM?y{IOWw7^lp3oT-n!n}>k?gD zxt0-jaiVvkcjbDa&1Pl7Gkp^~HI8RvfFS+|ts8 zx#z}2S;eTtqQt^jb!-45?A*jl9XGi>xIOlE)zbPzhfM5nF^SojnayTp;_=w9*oee3 zM&Zk1$Hrg8cTi$(>;xH=V`F2d#7>J%h|Y=K96LL9UTjJ%6>E&miY24h#IC}AbL{rm z9oV0b-5pyJdm#2m?1|Vj+`SxI7rj2-J+>kCcI^Flr`RX4?a}%1V7ybjd%RctKy)Gqfk zaK9`*Cw@)*`uKce-5FnjSsY&)U!}H3;}1pej6bS&@mUdH#j_1%X5B(Njz*GUtY8#? zr|2W&6KD9+kX+^YRmRE4HqjM{L7qh6O9h&a&cZtH=Fg})=lL_6%ww(RE`Ki48AxXy znNcWT=9fE{$XFg-<&V}n&gzKd_a#P2f81jflirg*5+%BLqeTuccw<0@%d_0=aU8rR zJm&G2@K4V8CwXSZPH)u6@ymppOKpiXQkGZ<=Ohx#qpK2+=cI8cDeSN%DrzfgNkgO_ z;kdPlvzTqpO-xEmr{~VbWiz182y-JLB$v&Jd&y-P;mA$%TbWoLeF*zQ(MJ<6m8`@~ zO1hpnn+Uxnu?_htT-CLzXH}o*s;c6Wm7#m$iGCmUdoUhlWj3)63Fzpceaaj1AuahKvA#l4C1j)va~mG~|FNvk+f+_$)_I8k+Q z>GiC34lX{lc#vGH*NZ7$j#(xY`%qjq6(3VPy7>6&O`c&@{9=5NnBp6YPmB*LUEtjp z--wPQW8#CvR(x{t_~J9fCilf>fqBK}mMVlzO5w1 zIt)|12(vJAy*Ia9nesgz9~~cEyb`mT>q}s*xOk>`eetH^&Ba@ax0RSB;gYT;J-J^` zm=><_(ba29`jngoEe6l4sfZt6@;rCddWT>2+WukgPboRAWNgWRlEX`em5eAkw&aBV zgdptLl2hV`|eF_)C0=F|KrA>EP1grK3uZD;*;tO2+{&joQ-Fs~##nvvgwBL*?_aogW`x z6)SBJU}ltFRuzk%%ZfWzI)}b^P3bj4{a)!^OXvIjNBWtV(mT=6sVzP;KC|>8HA_n$ zEnQstkhqAOcU9k|zTNi|-_l3ru6lLpit5$zxuvVryjZ#>KDYX%($`BjR=*^sYE86v zw0G&&Xy4LzqP?ruRIMrfP-rxPn-L8~yF_~sqHnY;nn1_5FghrDC>Ru9*ld5PU&A!Hmqzc zbcEVZDLX;Uv1KRV=G}=e;q-niZl{$^C_7u@lfI-V_V^}3WOB=-t?vE9i3yqe^U9`_ zHI~hiIG&5|)4xyuK4n*7Qe`*y@6&5l`N2|NG1bc}#`juPF}`Aa+3mht*&Y46R!=W` zLh4!Sn|i-nYF!|<>gnQBw!~`}pO!sP_DD7c{>1m%$`6ryCHHf`MC1h>UoJ{%Nr8MLMLL*FF##udVi+6oiD!SGs-V3 zpHpGrK2}Wm_2t)q>&0HRI6l67P5FGxo#l(mmzFS(8mM>`KvZnm?@{Q&1 zR4p$5uzYLz)~Z#EKzFs?v&O6^B;6SbcAM zOvRvzp*i7}RbwiSsW?WiIc9lv$IRo^n2OOt^G(I^6(@Qw6(@T}TcAaoHn(i1eX3V> z(3DkUD$c4nt9od~xz&k^Nto#sGsU2%6m4b3R3B44ulhtW6|*sO=|4AC+(ztst4CKg z#FtkcT(K~os903hOQZ;-4Wyo`gX0S;?yb1DY8BUIRpTm_S3C|~S+Tm}rHZu`>npZZ zY~tS!w^VGaG%LfET`PNH`c#gnEUv7mtgakTd3fb8?vCXj8pl?iQh8eC1kBl$=T%Or zY^d$GaiD)Ohh^>mf7+VwD8v8JA zkk;$5jj?w!_7CGd$e~NThxp`}kh=Aj`V`5;)0lgsVy{&?nhdWRrSfbUXLM+3aQwZt&?+D0(0 zu;V2&H@jUE1^p|kx=YUFbvC;|qY9*PUSdk3v0b|x@Ao=C@riJ#SBk`TZ--;Y?WH?i zW7y-YWe4g^q^pTl=U1Pc*(>mN3D_T~K8C%4JHcYv9}sS;dK4*%9Zt0)8PSrjv(xYn zJD*#t4Gy4oVISnB>fY6T;mERTs-pT(T4E^k;4#&stB;3oPp%$ceMa?J)#p}ElG(9( zX7%jqx$yLj@av7$w^c91bz$`)_<0#)7|+$et2`Ow$=d4Gq`g*FD9FHDs<-twsl~4S zdon8*(}vak2lPLj^BqTXn&}GujP_dVTEpbLLxgt+

    dCPtk_#{+yyMvIp1$j81xr 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

    y88U~9ffOh$1EC4uPKLg~Q(KZj4MC%B(0|)2qRW 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 literal 0 HcmV?d00001 diff --git a/lib/assets/icon_app/icon_app.png b/lib/assets/icon_app/icon_app.png new file mode 100644 index 0000000000000000000000000000000000000000..9214385f5b31c11a43f33123d1d08ce4e9b8187b GIT binary patch literal 123580 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/macos/Runner/Configs/AppInfo.xcconfig b/macos/Runner/Configs/AppInfo.xcconfig new file mode 100644 index 0000000..0a838ab --- /dev/null +++ b/macos/Runner/Configs/AppInfo.xcconfig @@ -0,0 +1,14 @@ +// Application-level settings for the Runner target. +// +// This may be replaced with something auto-generated from metadata (e.g., pubspec.yaml) in the +// future. If not, the values below would default to using the project name when this becomes a +// 'flutter create' template. + +// The application's name. By default this is also the title of the Flutter window. +PRODUCT_NAME = apk_full + +// The application's bundle identifier +PRODUCT_BUNDLE_IDENTIFIER = com.example.apkFull + +// The copyright displayed in application information +PRODUCT_COPYRIGHT = Copyright © 2026 com.example. All rights reserved. diff --git a/macos/Runner/Configs/Debug.xcconfig b/macos/Runner/Configs/Debug.xcconfig new file mode 100644 index 0000000..36b0fd9 --- /dev/null +++ b/macos/Runner/Configs/Debug.xcconfig @@ -0,0 +1,2 @@ +#include "../../Flutter/Flutter-Debug.xcconfig" +#include "Warnings.xcconfig" diff --git a/macos/Runner/Configs/Release.xcconfig b/macos/Runner/Configs/Release.xcconfig new file mode 100644 index 0000000..dff4f49 --- /dev/null +++ b/macos/Runner/Configs/Release.xcconfig @@ -0,0 +1,2 @@ +#include "../../Flutter/Flutter-Release.xcconfig" +#include "Warnings.xcconfig" diff --git a/macos/Runner/Configs/Warnings.xcconfig b/macos/Runner/Configs/Warnings.xcconfig new file mode 100644 index 0000000..42bcbf4 --- /dev/null +++ b/macos/Runner/Configs/Warnings.xcconfig @@ -0,0 +1,13 @@ +WARNING_CFLAGS = -Wall -Wconditional-uninitialized -Wnullable-to-nonnull-conversion -Wmissing-method-return-type -Woverlength-strings +GCC_WARN_UNDECLARED_SELECTOR = YES +CLANG_UNDEFINED_BEHAVIOR_SANITIZER_NULLABILITY = YES +CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE +CLANG_WARN__DUPLICATE_METHOD_MATCH = YES +CLANG_WARN_PRAGMA_PACK = YES +CLANG_WARN_STRICT_PROTOTYPES = YES +CLANG_WARN_COMMA = YES +GCC_WARN_STRICT_SELECTOR_MATCH = YES +CLANG_WARN_OBJC_REPEATED_USE_OF_WEAK = YES +CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES +GCC_WARN_SHADOW = YES +CLANG_WARN_UNREACHABLE_CODE = YES diff --git a/macos/Runner/DebugProfile.entitlements b/macos/Runner/DebugProfile.entitlements new file mode 100644 index 0000000..dddb8a3 --- /dev/null +++ b/macos/Runner/DebugProfile.entitlements @@ -0,0 +1,12 @@ + + + + + com.apple.security.app-sandbox + + com.apple.security.cs.allow-jit + + com.apple.security.network.server + + + diff --git a/macos/Runner/Info.plist b/macos/Runner/Info.plist new file mode 100644 index 0000000..4789daa --- /dev/null +++ b/macos/Runner/Info.plist @@ -0,0 +1,32 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIconFile + + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + APPL + CFBundleShortVersionString + $(FLUTTER_BUILD_NAME) + CFBundleVersion + $(FLUTTER_BUILD_NUMBER) + LSMinimumSystemVersion + $(MACOSX_DEPLOYMENT_TARGET) + NSHumanReadableCopyright + $(PRODUCT_COPYRIGHT) + NSMainNibFile + MainMenu + NSPrincipalClass + NSApplication + + diff --git a/macos/Runner/MainFlutterWindow.swift b/macos/Runner/MainFlutterWindow.swift new file mode 100644 index 0000000..3cc05eb --- /dev/null +++ b/macos/Runner/MainFlutterWindow.swift @@ -0,0 +1,15 @@ +import Cocoa +import FlutterMacOS + +class MainFlutterWindow: NSWindow { + override func awakeFromNib() { + let flutterViewController = FlutterViewController() + let windowFrame = self.frame + self.contentViewController = flutterViewController + self.setFrame(windowFrame, display: true) + + RegisterGeneratedPlugins(registry: flutterViewController) + + super.awakeFromNib() + } +} diff --git a/macos/Runner/Release.entitlements b/macos/Runner/Release.entitlements new file mode 100644 index 0000000..852fa1a --- /dev/null +++ b/macos/Runner/Release.entitlements @@ -0,0 +1,8 @@ + + + + + com.apple.security.app-sandbox + + + diff --git a/macos/RunnerTests/RunnerTests.swift b/macos/RunnerTests/RunnerTests.swift new file mode 100644 index 0000000..61f3bd1 --- /dev/null +++ b/macos/RunnerTests/RunnerTests.swift @@ -0,0 +1,12 @@ +import Cocoa +import FlutterMacOS +import XCTest + +class RunnerTests: XCTestCase { + + func testExample() { + // If you add code to the Runner application, consider adding tests here. + // See https://developer.apple.com/documentation/xctest for more information about using XCTest. + } + +} diff --git a/pubspec.lock b/pubspec.lock new file mode 100644 index 0000000..f4f6e01 --- /dev/null +++ b/pubspec.lock @@ -0,0 +1,1114 @@ +# Generated by pub +# See https://dart.dev/tools/pub/glossary#lockfile +packages: + _flutterfire_internals: + dependency: transitive + description: + name: _flutterfire_internals + sha256: "460e9e684edb461d85498fc166ff8416f303f22216838d302d80676b348c6a4c" + url: "https://pub.dev" + source: hosted + version: "1.3.75" + app_links: + dependency: transitive + description: + name: app_links + sha256: "3462d9defc61565fde4944858b59bec5be2b9d5b05f20aed190adb3ad08a7abc" + url: "https://pub.dev" + source: hosted + version: "7.0.0" + app_links_linux: + dependency: transitive + description: + name: app_links_linux + sha256: f5f7173a78609f3dfd4c2ff2c95bd559ab43c80a87dc6a095921d96c05688c81 + url: "https://pub.dev" + source: hosted + version: "1.0.3" + app_links_platform_interface: + dependency: transitive + description: + name: app_links_platform_interface + sha256: "05f5379577c513b534a29ddea68176a4d4802c46180ee8e2e966257158772a3f" + url: "https://pub.dev" + source: hosted + version: "2.0.2" + app_links_web: + dependency: transitive + description: + name: app_links_web + sha256: af060ed76183f9e2b87510a9480e56a5352b6c249778d07bd2c95fc35632a555 + url: "https://pub.dev" + source: hosted + version: "1.0.4" + archive: + dependency: transitive + description: + name: archive + sha256: cb6a278ef2dbb298455e1a713bda08524a175630ec643a242c399c932a0a1f7d + url: "https://pub.dev" + source: hosted + version: "3.6.1" + args: + dependency: transitive + description: + name: args + sha256: d0481093c50b1da8910eb0bb301626d4d8eb7284aa739614d2b394ee09e3ea04 + url: "https://pub.dev" + source: hosted + version: "2.7.0" + async: + dependency: transitive + description: + name: async + sha256: e2eb0491ba5ddb6177742d2da23904574082139b07c1e33b8503b9f46f3e1a37 + url: "https://pub.dev" + source: hosted + version: "2.13.1" + barcode: + dependency: transitive + description: + name: barcode + sha256: "7b6729c37e3b7f34233e2318d866e8c48ddb46c1f7ad01ff7bb2a8de1da2b9f4" + url: "https://pub.dev" + source: hosted + version: "2.2.9" + bidi: + dependency: transitive + description: + name: bidi + sha256: "77f475165e94b261745cf1032c751e2032b8ed92ccb2bf5716036db79320637d" + url: "https://pub.dev" + source: hosted + version: "2.0.13" + boolean_selector: + dependency: transitive + description: + name: boolean_selector + sha256: "8aab1771e1243a5063b8b0ff68042d67334e3feab9e95b9490f9a6ebf73b42ea" + url: "https://pub.dev" + source: hosted + version: "2.1.2" + characters: + dependency: transitive + description: + name: characters + sha256: faf38497bda5ead2a8c7615f4f7939df04333478bf32e4173fcb06d428b5716b + url: "https://pub.dev" + source: hosted + version: "1.4.1" + checked_yaml: + dependency: transitive + description: + name: checked_yaml + sha256: "959525d3162f249993882720d52b7e0c833978df229be20702b33d48d91de70f" + url: "https://pub.dev" + source: hosted + version: "2.0.4" + cli_util: + dependency: transitive + description: + name: cli_util + sha256: ff6785f7e9e3c38ac98b2fb035701789de90154024a75b6cb926445e83197d1c + url: "https://pub.dev" + source: hosted + version: "0.4.2" + clock: + dependency: transitive + description: + name: clock + sha256: fddb70d9b5277016c77a80201021d40a2247104d9f4aa7bab7157b7e3f05b84b + url: "https://pub.dev" + source: hosted + version: "1.1.2" + code_assets: + dependency: transitive + description: + name: code_assets + sha256: bf394f466ba9205f1812a0433b392d6af280f155f56651eda7c18cc32ed493b8 + url: "https://pub.dev" + source: hosted + version: "1.2.1" + collection: + dependency: transitive + description: + name: collection + sha256: "2f5709ae4d3d59dd8f7cd309b4e023046b57d8a6c82130785d2b0e5868084e76" + url: "https://pub.dev" + source: hosted + version: "1.19.1" + convert: + dependency: transitive + description: + name: convert + sha256: b30acd5944035672bc15c6b7a8b47d773e41e2f17de064350988c5d02adb1c68 + url: "https://pub.dev" + source: hosted + version: "3.1.2" + cross_file: + dependency: transitive + description: + name: cross_file + sha256: "92c9c43c383bfa1c32079d3bc492d55d6d4318044b7b47edaff8971cbb555c51" + url: "https://pub.dev" + source: hosted + version: "0.3.5+4" + crypto: + dependency: transitive + description: + name: crypto + sha256: c8ea0233063ba03258fbcf2ca4d6dadfefe14f02fab57702265467a19f27fadf + url: "https://pub.dev" + source: hosted + version: "3.0.7" + cupertino_icons: + dependency: "direct main" + description: + name: cupertino_icons + sha256: "41e005c33bd814be4d3096aff55b1908d419fde52ca656c8c47719ec745873cd" + url: "https://pub.dev" + source: hosted + version: "1.0.9" + dart_jsonwebtoken: + dependency: transitive + description: + name: dart_jsonwebtoken + sha256: ad84e60181696513d04d5f2078e0bbc20365b911f46f647797317414bdc88fbe + url: "https://pub.dev" + source: hosted + version: "3.4.1" + dbus: + dependency: transitive + description: + name: dbus + sha256: "0ce9b0a839e6dee59a37a623d2fc26a35bbbe6404213e419b0d6411023d62645" + url: "https://pub.dev" + source: hosted + version: "0.7.14" + equatable: + dependency: transitive + description: + name: equatable + sha256: "3bce007a596ff8b3119c45d68aaef631272537c03d30e5d4534dd24bf4c5eaa2" + url: "https://pub.dev" + source: hosted + version: "2.1.0" + excel: + dependency: "direct main" + description: + name: excel + sha256: "1a15327dcad260d5db21d1f6e04f04838109b39a2f6a84ea486ceda36e468780" + url: "https://pub.dev" + source: hosted + version: "4.0.6" + fake_async: + dependency: transitive + description: + name: fake_async + sha256: "5368f224a74523e8d2e7399ea1638b37aecfca824a3cc4dfdf77bf1fa905ac44" + url: "https://pub.dev" + source: hosted + version: "1.3.3" + ffi: + dependency: transitive + description: + name: ffi + sha256: "6d7fd89431262d8f3125e81b50d3847a091d846eafcd4fdb88dd06f36d705a45" + url: "https://pub.dev" + source: hosted + version: "2.2.0" + file: + dependency: transitive + description: + name: file + sha256: a3b4f84adafef897088c160faf7dfffb7696046cb13ae90b508c2cbc95d3b8d4 + url: "https://pub.dev" + source: hosted + version: "7.0.1" + file_picker: + dependency: "direct main" + description: + name: file_picker + sha256: f13a03000d942e476bc1ff0a736d2e9de711d2f89a95cd4c1d88f861c3348387 + url: "https://pub.dev" + source: hosted + version: "11.0.2" + file_selector_linux: + dependency: transitive + description: + name: file_selector_linux + sha256: "2567f398e06ac72dcf2e98a0c95df2a9edd03c2c2e0cacd4780f20cdf56263a0" + url: "https://pub.dev" + source: hosted + version: "0.9.4" + file_selector_macos: + dependency: transitive + description: + name: file_selector_macos + sha256: "5e0bbe9c312416f1787a68259ea1505b52f258c587f12920422671807c4d618a" + url: "https://pub.dev" + source: hosted + version: "0.9.5" + file_selector_platform_interface: + dependency: transitive + description: + name: file_selector_platform_interface + sha256: "35e0bd61ebcdb91a3505813b055b09b79dfdc7d0aee9c09a7ba59ae4bb13dc85" + url: "https://pub.dev" + source: hosted + version: "2.7.0" + file_selector_windows: + dependency: transitive + description: + name: file_selector_windows + sha256: "62197474ae75893a62df75939c777763d39c2bc5f73ce5b88497208bc269abfd" + url: "https://pub.dev" + source: hosted + version: "0.9.3+5" + firebase_core: + dependency: "direct main" + description: + name: firebase_core + sha256: "6f22d1c62e0c20976f02cd842c7b7cd3c0f561cc2052586411871045c08860c9" + url: "https://pub.dev" + source: hosted + version: "4.12.1" + firebase_core_platform_interface: + dependency: transitive + description: + name: firebase_core_platform_interface + sha256: f74d1d6fabccf7743b0144c2ed363d81049e258e22428ebb6fb0faec2fa7d938 + url: "https://pub.dev" + source: hosted + version: "8.0.0" + firebase_core_web: + dependency: transitive + description: + name: firebase_core_web + sha256: ddab99d709b8c27dd47576eb05a1e719e07a2aa45c009a49ae92ac4d2a8ca555 + url: "https://pub.dev" + source: hosted + version: "3.9.1" + firebase_messaging: + dependency: "direct main" + description: + name: firebase_messaging + sha256: "30ad2d59bcd86117dc49d278c8998a0fb390c5a3202f6e43e4bd215d3f1d0556" + url: "https://pub.dev" + source: hosted + version: "16.4.3" + firebase_messaging_platform_interface: + dependency: transitive + description: + name: firebase_messaging_platform_interface + sha256: "4d144cb42b9a5a42855596be2d7682d32c50169f42e7df2cb3278ecf935e7d63" + url: "https://pub.dev" + source: hosted + version: "4.9.2" + firebase_messaging_web: + dependency: transitive + description: + name: firebase_messaging_web + sha256: fcd25d0b9da55766ef4d28ae05a7460f5189635d6b42607adcd9f08818fd35f0 + url: "https://pub.dev" + source: hosted + version: "4.2.3" + fixnum: + dependency: transitive + description: + name: fixnum + sha256: b6dc7065e46c974bc7c5f143080a6764ec7a4be6da1285ececdc37be96de53be + url: "https://pub.dev" + source: hosted + version: "1.1.1" + flutter: + dependency: "direct main" + description: flutter + source: sdk + version: "0.0.0" + flutter_dotenv: + dependency: "direct main" + description: + name: flutter_dotenv + sha256: d41da11fb497314fbf89811ec30af02d1d898b47980a129f0a8c0a1720460ba2 + url: "https://pub.dev" + source: hosted + version: "6.0.1" + flutter_launcher_icons: + dependency: "direct main" + description: + name: flutter_launcher_icons + sha256: "10f13781741a2e3972126fae08393d3c4e01fa4cd7473326b94b72cf594195e7" + url: "https://pub.dev" + source: hosted + version: "0.14.4" + flutter_lints: + dependency: "direct dev" + description: + name: flutter_lints + sha256: "3105dc8492f6183fb076ccf1f351ac3d60564bff92e20bfc4af9cc1651f4e7e1" + url: "https://pub.dev" + source: hosted + version: "6.0.0" + flutter_plugin_android_lifecycle: + dependency: transitive + description: + name: flutter_plugin_android_lifecycle + sha256: "3854fe5e3bff0b113c658f260b90c95dea17c92db0f2addeac2e343dd9969785" + url: "https://pub.dev" + source: hosted + version: "2.0.35" + flutter_test: + dependency: "direct dev" + description: flutter + source: sdk + version: "0.0.0" + flutter_web_plugins: + dependency: transitive + description: flutter + source: sdk + version: "0.0.0" + functions_client: + dependency: transitive + description: + name: functions_client + sha256: e9685e9ab852a8b8e0579c867f6c9155da27317b294b3df796a536b8b8e0d253 + url: "https://pub.dev" + source: hosted + version: "2.6.4" + gotrue: + dependency: transitive + description: + name: gotrue + sha256: "360bba9606e58d5acc59a033ab64ae3cf571a6868f7a7267cb8e9a204b7bf1b2" + url: "https://pub.dev" + source: hosted + version: "2.26.0" + gtk: + dependency: transitive + description: + name: gtk + sha256: "4ff85b2a16724029dd9e5bbb5a94b6918f9973f74ba571c949d2002801879cf5" + url: "https://pub.dev" + source: hosted + version: "2.2.0" + hooks: + dependency: transitive + description: + name: hooks + sha256: "9a62a50b50b769a737bc0a8ff381f333529df3ab746b2f6b02e83760231455ba" + url: "https://pub.dev" + source: hosted + version: "2.0.2" + http: + dependency: "direct main" + description: + name: http + sha256: "87721a4a50b19c7f1d49001e51409bddc46303966ce89a65af4f4e6004896412" + url: "https://pub.dev" + source: hosted + version: "1.6.0" + http_parser: + dependency: transitive + description: + name: http_parser + sha256: "178d74305e7866013777bab2c3d8726205dc5a4dd935297175b19a23a2e66571" + url: "https://pub.dev" + source: hosted + version: "4.1.2" + image: + dependency: transitive + description: + name: image + sha256: f31d52537dc417fdcde36088fdf11d191026fd5e4fae742491ebd40e5a8bea7d + url: "https://pub.dev" + source: hosted + version: "4.3.0" + image_picker: + dependency: "direct main" + description: + name: image_picker + sha256: d8402284df184bc05f4a2210c6c23983b0720f4cd87cbd05c5390a78af602667 + url: "https://pub.dev" + source: hosted + version: "1.2.3" + image_picker_android: + dependency: transitive + description: + name: image_picker_android + sha256: d5b3e1774af29c9ab00103afb0d4614070f924d2e0057ac867ec98800114793f + url: "https://pub.dev" + source: hosted + version: "0.8.13+17" + image_picker_for_web: + dependency: transitive + description: + name: image_picker_for_web + sha256: "66257a3191ab360d23a55c8241c91a6e329d31e94efa7be9cf7a212e65850214" + url: "https://pub.dev" + source: hosted + version: "3.1.1" + image_picker_ios: + dependency: transitive + description: + name: image_picker_ios + sha256: b9c4a438a9ff4f60808c9cf0039b93a42bb6c2211ef6ebb647394b2b3fa84588 + url: "https://pub.dev" + source: hosted + version: "0.8.13+6" + image_picker_linux: + dependency: transitive + description: + name: image_picker_linux + sha256: "1f81c5f2046b9ab724f85523e4af65be1d47b038160a8c8deed909762c308ed4" + url: "https://pub.dev" + source: hosted + version: "0.2.2" + image_picker_macos: + dependency: transitive + description: + name: image_picker_macos + sha256: "86f0f15a309de7e1a552c12df9ce5b59fe927e71385329355aec4776c6a8ec91" + url: "https://pub.dev" + source: hosted + version: "0.2.2+1" + image_picker_platform_interface: + dependency: transitive + description: + name: image_picker_platform_interface + sha256: "567e056716333a1647c64bb6bd873cff7622233a5c3f694be28a583d4715690c" + url: "https://pub.dev" + source: hosted + version: "2.11.1" + image_picker_windows: + dependency: transitive + description: + name: image_picker_windows + sha256: d248c86554a72b5495a31c56f060cf73a41c7ff541689327b1a7dbccc33adfae + url: "https://pub.dev" + source: hosted + version: "0.2.2" + intl: + dependency: "direct main" + description: + name: intl + sha256: "1ca20c894b1717686a2319b8548763d812bc0aabdac580420a44c5178c57a867" + url: "https://pub.dev" + source: hosted + version: "0.20.3" + jni: + dependency: transitive + description: + name: jni + sha256: c2230682d5bc2362c1c9e8d3c7f406d9cbba23ab3f2e203a025dd47e0fb2e68f + url: "https://pub.dev" + source: hosted + version: "1.0.0" + jni_flutter: + dependency: transitive + description: + name: jni_flutter + sha256: "8b59e590786050b1cd866677dddaf76b1ade5e7bc751abe04b86e84d379d3ba6" + url: "https://pub.dev" + source: hosted + version: "1.0.1" + json_annotation: + dependency: transitive + description: + name: json_annotation + sha256: "2a743920d81b7910627f68ee2c9ac1fc0bfee32b9fc3403587d7c6791ca12f80" + url: "https://pub.dev" + source: hosted + version: "4.12.0" + jwt_decode: + dependency: transitive + description: + name: jwt_decode + sha256: d2e9f68c052b2225130977429d30f187aa1981d789c76ad104a32243cfdebfbb + url: "https://pub.dev" + source: hosted + version: "0.3.1" + leak_tracker: + dependency: transitive + description: + name: leak_tracker + sha256: "33e2e26bdd85a0112ec15400c8cbffea70d0f9c3407491f672a2fad47915e2de" + url: "https://pub.dev" + source: hosted + version: "11.0.2" + leak_tracker_flutter_testing: + dependency: transitive + description: + name: leak_tracker_flutter_testing + sha256: "1dbc140bb5a23c75ea9c4811222756104fbcd1a27173f0c34ca01e16bea473c1" + url: "https://pub.dev" + source: hosted + version: "3.0.10" + leak_tracker_testing: + dependency: transitive + description: + name: leak_tracker_testing + sha256: "8d5a2d49f4a66b49744b23b018848400d23e54caf9463f4eb20df3eb8acb2eb1" + url: "https://pub.dev" + source: hosted + version: "3.0.2" + lints: + dependency: transitive + description: + name: lints + sha256: "12f842a479589fea194fe5c5a3095abc7be0c1f2ddfa9a0e76aed1dbd26a87df" + url: "https://pub.dev" + source: hosted + version: "6.1.0" + logging: + dependency: transitive + description: + name: logging + sha256: c8245ada5f1717ed44271ed1c26b8ce85ca3228fd2ffdb75468ab01979309d61 + url: "https://pub.dev" + source: hosted + version: "1.3.0" + matcher: + dependency: transitive + description: + name: matcher + sha256: dc0b7dc7651697ea4ff3e69ef44b0407ea32c487a39fff6a4004fa585e901861 + url: "https://pub.dev" + source: hosted + version: "0.12.19" + material_color_utilities: + dependency: transitive + description: + name: material_color_utilities + sha256: "9c337007e82b1889149c82ed242ed1cb24a66044e30979c44912381e9be4c48b" + url: "https://pub.dev" + source: hosted + version: "0.13.0" + meta: + dependency: transitive + description: + name: meta + sha256: "23f08335362185a5ea2ad3a4e597f1375e78bce8a040df5c600c8d3552ef2394" + url: "https://pub.dev" + source: hosted + version: "1.17.0" + mime: + dependency: transitive + description: + name: mime + sha256: "41a20518f0cb1256669420fdba0cd90d21561e560ac240f26ef8322e45bb7ed6" + url: "https://pub.dev" + source: hosted + version: "2.0.0" + objective_c: + dependency: transitive + description: + name: objective_c + sha256: "6cb691c686fa2838c6deb34980d426145c2a5d537491cb83d463c33cdbc726ed" + url: "https://pub.dev" + source: hosted + version: "9.4.1" + package_config: + dependency: transitive + description: + name: package_config + sha256: f096c55ebb7deb7e384101542bfba8c52696c1b56fca2eb62827989ef2353bbc + url: "https://pub.dev" + source: hosted + version: "2.2.0" + passkeys_platform_interface: + dependency: transitive + description: + name: passkeys_platform_interface + sha256: e810520c7b79dca629fdc266958564eedd77dc85a955f5e94430dfccb92eef68 + url: "https://pub.dev" + source: hosted + version: "2.9.0" + path: + dependency: transitive + description: + name: path + sha256: "75cca69d1490965be98c73ceaea117e8a04dd21217b37b292c9ddbec0d955bc5" + url: "https://pub.dev" + source: hosted + version: "1.9.1" + path_parsing: + dependency: transitive + description: + name: path_parsing + sha256: "883402936929eac138ee0a45da5b0f2c80f89913e6dc3bf77eb65b84b409c6ca" + url: "https://pub.dev" + source: hosted + version: "1.1.0" + path_provider: + dependency: "direct main" + description: + name: path_provider + sha256: a7f4874f987173da295a61c181b8ee71dab59b332a486b391babf26a1b884825 + url: "https://pub.dev" + source: hosted + version: "2.1.6" + path_provider_android: + dependency: transitive + description: + name: path_provider_android + sha256: "69cbd515a62b94d32a7944f086b2f82b4ac40a1d45bebfc00813a430ab2dabcd" + url: "https://pub.dev" + source: hosted + version: "2.3.1" + path_provider_foundation: + dependency: transitive + description: + name: path_provider_foundation + sha256: "2a376b7d6392d80cd3705782d2caa734ca4727776db0b6ec36ef3f1855197699" + url: "https://pub.dev" + source: hosted + version: "2.6.0" + path_provider_linux: + dependency: transitive + description: + name: path_provider_linux + sha256: "58c2005f147315b11e9b4a7bc889cd5203e250cba8e3f012dae259b4972b5c16" + url: "https://pub.dev" + source: hosted + version: "2.2.2" + path_provider_platform_interface: + dependency: transitive + description: + name: path_provider_platform_interface + sha256: "484838772624c3a4b94f1e44a3e19897fee738f2d5c4ce448443b0417f7c9dda" + url: "https://pub.dev" + source: hosted + version: "2.1.3" + path_provider_windows: + dependency: transitive + description: + name: path_provider_windows + sha256: bd6f00dbd873bfb70d0761682da2b3a2c2fccc2b9e84c495821639601d81afe7 + url: "https://pub.dev" + source: hosted + version: "2.3.0" + pdf: + dependency: "direct main" + description: + name: pdf + sha256: e47a275b267873d5944ad5f5ff0dcc7ac2e36c02b3046a0ffac9b72fd362c44b + url: "https://pub.dev" + source: hosted + version: "3.12.0" + petitparser: + dependency: transitive + description: + name: petitparser + sha256: "91bd59303e9f769f108f8df05e371341b15d59e995e6806aefab827b58336675" + url: "https://pub.dev" + source: hosted + version: "7.0.2" + platform: + dependency: transitive + description: + name: platform + sha256: "5d6b1b0036a5f331ebc77c850ebc8506cbc1e9416c27e59b439f917a902a4984" + url: "https://pub.dev" + source: hosted + version: "3.1.6" + plugin_platform_interface: + dependency: transitive + description: + name: plugin_platform_interface + sha256: "4820fbfdb9478b1ebae27888254d445073732dae3d6ea81f0b7e06d5dedc3f02" + url: "https://pub.dev" + source: hosted + version: "2.1.8" + pointycastle: + dependency: transitive + description: + name: pointycastle + sha256: "92aa3841d083cc4b0f4709b5c74fd6409a3e6ba833ffc7dc6a8fee096366acf5" + url: "https://pub.dev" + source: hosted + version: "4.0.0" + postgrest: + dependency: transitive + description: + name: postgrest + sha256: "10e3f195e131eec944fa872644aed89b33b5be998f3fc77c87325db3927bc646" + url: "https://pub.dev" + source: hosted + version: "2.8.0" + pub_semver: + dependency: transitive + description: + name: pub_semver + sha256: "5bfcf68ca79ef689f8990d1160781b4bad40a3bd5e5218ad4076ddb7f4081585" + url: "https://pub.dev" + source: hosted + version: "2.2.0" + qr: + dependency: transitive + description: + name: qr + sha256: "5a1d2586170e172b8a8c8470bbbffd5eb0cd38a66c0d77155ea138d3af3a4445" + url: "https://pub.dev" + source: hosted + version: "3.0.2" + realtime_client: + dependency: transitive + description: + name: realtime_client + sha256: "0cfbe0047e2591eba348938e9b4e620d5b1a8df6c374757e8eb8645252b8387f" + url: "https://pub.dev" + source: hosted + version: "2.11.0" + record_use: + dependency: transitive + description: + name: record_use + sha256: "2551bd8eecfe95d14ae75f6021ad0248be5c27f138c2ec12fcb52b500b3ba1ed" + url: "https://pub.dev" + source: hosted + version: "0.6.0" + retry: + dependency: transitive + description: + name: retry + sha256: "822e118d5b3aafed083109c72d5f484c6dc66707885e07c0fbcb8b986bba7efc" + url: "https://pub.dev" + source: hosted + version: "3.1.2" + rxdart: + dependency: transitive + description: + name: rxdart + sha256: "5c3004a4a8dbb94bd4bf5412a4def4acdaa12e12f269737a5751369e12d1a962" + url: "https://pub.dev" + source: hosted + version: "0.28.0" + scaled_app: + dependency: "direct main" + description: + name: scaled_app + sha256: e56145496f51d1f14cb48d8dfd71795ed37a2adabd5228dd21dad20be1914e69 + url: "https://pub.dev" + source: hosted + version: "2.3.1" + screenshot: + dependency: "direct main" + description: + name: screenshot + sha256: "63817697a7835e6ce82add4228e15d233b74d42975c143ad8cfe07009fab866b" + url: "https://pub.dev" + source: hosted + version: "3.0.0" + share_plus: + dependency: "direct main" + description: + name: share_plus + sha256: fce43200aa03ea87b91ce4c3ac79f0cecd52e2a7a56c7a4185023c271fbfa6da + url: "https://pub.dev" + source: hosted + version: "10.1.4" + share_plus_platform_interface: + dependency: transitive + description: + name: share_plus_platform_interface + sha256: cc012a23fc2d479854e6c80150696c4a5f5bb62cb89af4de1c505cf78d0a5d0b + url: "https://pub.dev" + source: hosted + version: "5.0.2" + shared_preferences: + dependency: "direct main" + description: + name: shared_preferences + sha256: c3025c5534b01739267eb7d76959bbc25a6d10f6988e1c2a3036940133dd10bf + url: "https://pub.dev" + source: hosted + version: "2.5.5" + shared_preferences_android: + dependency: transitive + description: + name: shared_preferences_android + sha256: e8d4762b1e2e8578fc4d0fd548cebf24afd24f49719c08974df92834565e2c53 + url: "https://pub.dev" + source: hosted + version: "2.4.23" + shared_preferences_foundation: + dependency: transitive + description: + name: shared_preferences_foundation + sha256: "4e7eaffc2b17ba398759f1151415869a34771ba11ebbccd1b0145472a619a64f" + url: "https://pub.dev" + source: hosted + version: "2.5.6" + shared_preferences_linux: + dependency: transitive + description: + name: shared_preferences_linux + sha256: "580abfd40f415611503cae30adf626e6656dfb2f0cee8f465ece7b6defb40f2f" + url: "https://pub.dev" + source: hosted + version: "2.4.1" + shared_preferences_platform_interface: + dependency: transitive + description: + name: shared_preferences_platform_interface + sha256: "649dc798a33931919ea356c4305c2d1f81619ea6e92244070b520187b5140ef9" + url: "https://pub.dev" + source: hosted + version: "2.4.2" + shared_preferences_web: + dependency: transitive + description: + name: shared_preferences_web + sha256: c49bd060261c9a3f0ff445892695d6212ff603ef3115edbb448509d407600019 + url: "https://pub.dev" + source: hosted + version: "2.4.3" + shared_preferences_windows: + dependency: transitive + description: + name: shared_preferences_windows + sha256: "94ef0f72b2d71bc3e700e025db3710911bd51a71cefb65cc609dd0d9a982e3c1" + url: "https://pub.dev" + source: hosted + version: "2.4.1" + sky_engine: + dependency: transitive + description: flutter + source: sdk + version: "0.0.0" + source_span: + dependency: transitive + description: + name: source_span + sha256: "56a02f1f4cd1a2d96303c0144c93bd6d909eea6bee6bf5a0e0b685edbd4c47ab" + url: "https://pub.dev" + source: hosted + version: "1.10.2" + stack_trace: + dependency: transitive + description: + name: stack_trace + sha256: "8b27215b45d22309b5cddda1aa2b19bdfec9df0e765f2de506401c071d38d1b1" + url: "https://pub.dev" + source: hosted + version: "1.12.1" + storage_client: + dependency: transitive + description: + name: storage_client + sha256: "221263cfbe0c01575b7d7fe7543e44abff380eb4d38d936372844a1caa85ba12" + url: "https://pub.dev" + source: hosted + version: "2.6.0" + stream_channel: + dependency: transitive + description: + name: stream_channel + sha256: "969e04c80b8bcdf826f8f16579c7b14d780458bd97f56d107d3950fdbeef059d" + url: "https://pub.dev" + source: hosted + version: "2.1.4" + string_scanner: + dependency: transitive + description: + name: string_scanner + sha256: "921cd31725b72fe181906c6a94d987c78e3b98c2e205b397ea399d4054872b43" + url: "https://pub.dev" + source: hosted + version: "1.4.1" + supabase: + dependency: transitive + description: + name: supabase + sha256: "3879996256325fcc9abb03b62b12c07e4eaae2e008e1bf043cc1525184159a43" + url: "https://pub.dev" + source: hosted + version: "2.14.0" + supabase_flutter: + dependency: "direct main" + description: + name: supabase_flutter + sha256: c9916c1cd512ebf3107ec0f83c9dca13d2e1e789629c2a5df896586bff46ce5f + url: "https://pub.dev" + source: hosted + version: "2.16.0" + term_glyph: + dependency: transitive + description: + name: term_glyph + sha256: "7f554798625ea768a7518313e58f83891c7f5024f88e46e7182a4558850a4b8e" + url: "https://pub.dev" + source: hosted + version: "1.2.2" + test_api: + dependency: transitive + description: + name: test_api + sha256: "8161c84903fd860b26bfdefb7963b3f0b68fee7adea0f59ef805ecca346f0c7a" + url: "https://pub.dev" + source: hosted + version: "0.7.10" + typed_data: + dependency: transitive + description: + name: typed_data + sha256: f9049c039ebfeb4cf7a7104a675823cd72dba8297f264b6637062516699fa006 + url: "https://pub.dev" + source: hosted + version: "1.4.0" + url_launcher: + dependency: "direct main" + description: + name: url_launcher + sha256: f6a7e5c4835bb4e3026a04793a4199ca2d14c739ec378fdfe23fc8075d0439f8 + url: "https://pub.dev" + source: hosted + version: "6.3.2" + url_launcher_android: + dependency: transitive + description: + name: url_launcher_android + sha256: "17bc677f0b301615530dd1d67e0a9828cafa2d0b6b6eae4cd3679b7eac4a273c" + url: "https://pub.dev" + source: hosted + version: "6.3.30" + url_launcher_ios: + dependency: transitive + description: + name: url_launcher_ios + sha256: "580fe5dfb51671ae38191d316e027f6b76272b026370708c2d898799750a02b0" + url: "https://pub.dev" + source: hosted + version: "6.4.1" + url_launcher_linux: + dependency: transitive + description: + name: url_launcher_linux + sha256: d5e14138b3bc193a0f63c10a53c94b91d399df0512b1f29b94a043db7482384a + url: "https://pub.dev" + source: hosted + version: "3.2.2" + url_launcher_macos: + dependency: transitive + description: + name: url_launcher_macos + sha256: "368adf46f71ad3c21b8f06614adb38346f193f3a59ba8fe9a2fd74133070ba18" + url: "https://pub.dev" + source: hosted + version: "3.2.5" + url_launcher_platform_interface: + dependency: transitive + description: + name: url_launcher_platform_interface + sha256: "552f8a1e663569be95a8190206a38187b531910283c3e982193e4f2733f01029" + url: "https://pub.dev" + source: hosted + version: "2.3.2" + url_launcher_web: + dependency: transitive + description: + name: url_launcher_web + sha256: "85c81589622fbc87c1c683aaea164d3604a7777495a79d91e39ffcdec39ddb34" + url: "https://pub.dev" + source: hosted + version: "2.4.3" + url_launcher_windows: + dependency: transitive + description: + name: url_launcher_windows + sha256: "712c70ab1b99744ff066053cbe3e80c73332b38d46e5e945c98689b2e66fc15f" + url: "https://pub.dev" + source: hosted + version: "3.1.5" + uuid: + dependency: transitive + description: + name: uuid + sha256: "9b129329f58692f6e6578329498a8fe9fbe98f090beb764ffbb8ee2eadd01dcd" + url: "https://pub.dev" + source: hosted + version: "4.6.0" + vector_math: + dependency: transitive + description: + name: vector_math + sha256: d530bd74fea330e6e364cda7a85019c434070188383e1cd8d9777ee586914c5b + url: "https://pub.dev" + source: hosted + version: "2.2.0" + vm_service: + dependency: transitive + description: + name: vm_service + sha256: "0016aef94fc66495ac78af5859181e3f3bf2026bd8eecc72b9565601e19ab360" + url: "https://pub.dev" + source: hosted + version: "15.2.0" + web: + dependency: transitive + description: + name: web + sha256: "868d88a33d8a87b18ffc05f9f030ba328ffefba92d6c127917a2ba740f9cfe4a" + url: "https://pub.dev" + source: hosted + version: "1.1.1" + web_socket: + dependency: transitive + description: + name: web_socket + sha256: "34d64019aa8e36bf9842ac014bb5d2f5586ca73df5e4d9bf5c936975cae6982c" + url: "https://pub.dev" + source: hosted + version: "1.0.1" + web_socket_channel: + dependency: transitive + description: + name: web_socket_channel + sha256: d645757fb0f4773d602444000a8131ff5d48c9e47adfe9772652dd1a4f2d45c8 + url: "https://pub.dev" + source: hosted + version: "3.0.3" + win32: + dependency: transitive + description: + name: win32 + sha256: d7cb55e04cd34096cd3a79b3330245f54cb96a370a1c27adb3c84b917de8b08e + url: "https://pub.dev" + source: hosted + version: "5.15.0" + xdg_directories: + dependency: transitive + description: + name: xdg_directories + sha256: "7a3f37b05d989967cdddcbb571f1ea834867ae2faa29725fd085180e0883aa15" + url: "https://pub.dev" + source: hosted + version: "1.1.0" + xml: + dependency: transitive + description: + name: xml + sha256: "971043b3a0d3da28727e40ed3e0b5d18b742fa5a68665cca88e74b7876d5e025" + url: "https://pub.dev" + source: hosted + version: "6.6.1" + yaml: + dependency: transitive + description: + name: yaml + sha256: b9da305ac7c39faa3f030eccd175340f968459dae4af175130b3fc47e40d76ce + url: "https://pub.dev" + source: hosted + version: "3.1.3" + yet_another_json_isolate: + dependency: transitive + description: + name: yet_another_json_isolate + sha256: eaa26beb5990b25a49d942374fd5a0c5aa67a837e03b14b4c26134aaa1ed01a9 + url: "https://pub.dev" + source: hosted + version: "2.1.1" +sdks: + dart: ">=3.11.4 <4.0.0" + flutter: ">=3.38.4" diff --git a/pubspec.yaml b/pubspec.yaml new file mode 100644 index 0000000..00b5e1e --- /dev/null +++ b/pubspec.yaml @@ -0,0 +1,101 @@ +name: apk +description: "A new Flutter project." +# The following line prevents the package from being accidentally published to +# pub.dev using `flutter pub publish`. This is preferred for private packages. +publish_to: 'none' # Remove this line if you wish to publish to pub.dev + +# The following defines the version and build number for your application. +# A version number is three numbers separated by dots, like 1.2.43 +# followed by an optional build number separated by a +. +# Both the version and the builder number may be overridden in flutter +# build by specifying --build-name and --build-number, respectively. +# In Android, build-name is used as versionName while build-number used as versionCode. +# Read more about Android versioning at https://developer.android.com/studio/publish/versioning +# In iOS, build-name is used as CFBundleShortVersionString while build-number is used as CFBundleVersion. +# Read more about iOS versioning at +# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html +# In Windows, build-name is used as the major, minor, and patch parts +# of the product and file versions while build-number is used as the build suffix. +version: 1.0.0+1 + +environment: + sdk: ^3.11.4 + +# Dependencies specify other packages that your package needs in order to work. +# To automatically upgrade your package dependencies to the latest versions +# consider running `flutter pub upgrade --major-versions`. Alternatively, +# dependencies can be manually updated by changing the version numbers below to +# the latest version available on pub.dev. To see which dependencies have newer +# versions available, run `flutter pub outdated`. +dependencies: + flutter: + sdk: flutter + + # The following adds the Cupertino Icons font to your application. + # Use with the CupertinoIcons class for iOS style icons. + cupertino_icons: ^1.0.8 + supabase_flutter: ^2.12.2 + intl: ^0.20.2 + flutter_dotenv: ^6.0.0 + shared_preferences: ^2.5.5 + image_picker: ^1.2.1 + file_picker: ^11.0.2 + url_launcher: ^6.3.2 + scaled_app: ^2.3.1 + flutter_launcher_icons: ^0.14.4 + http: ^1.6.0 + firebase_core: ^4.10.0 + firebase_messaging: ^16.4.3 + excel: ^4.0.6 + path_provider: ^2.1.4 + share_plus: ^10.1.4 + screenshot: ^3.0.0 + pdf: ^3.12.0 + + +dev_dependencies: + flutter_test: + sdk: flutter + + # The "flutter_lints" package below contains a set of recommended lints to + # encourage good coding practices. The lint set provided by the package is + # activated in the `analysis_options.yaml` file located at the root of your + # package. See that file for information about deactivating specific lint + # rules and activating additional ones. + flutter_lints: ^6.0.0 + +# For information on the generic Dart part of this file, see the +# following page: https://dart.dev/tools/pub/pubspec + +# The following section is specific to Flutter packages. +flutter: + + # The following line ensures that the Material Icons font is + # included with your application, so that you can use the icons in + # the material Icons class. + uses-material-design: true + + # To add assets to your application, add an assets section, like this: + assets: + - lib/assets/icons/ + - lib/.env + + fonts: + - family: Inter + fonts: + - asset: lib/assets/fonts/Inter_18pt-Regular.ttf + weight: 400 + - asset: lib/assets/fonts/Inter_18pt-Medium.ttf + weight: 500 + - asset: lib/assets/fonts/Inter_18pt-SemiBold.ttf + weight: 600 + - asset: lib/assets/fonts/Inter_18pt-Bold.ttf + weight: 700 + - family: Digital-7 + fonts: + - asset: lib/assets/fonts/DS-DIGI.ttf + + # + # For details regarding fonts from package dependencies, + # see https://flutter.dev/to/font-from-package + diff --git a/supabase/.temp/cli-latest b/supabase/.temp/cli-latest new file mode 100644 index 0000000..8403edf --- /dev/null +++ b/supabase/.temp/cli-latest @@ -0,0 +1 @@ +v2.109.1 \ No newline at end of file diff --git a/supabase/config.toml b/supabase/config.toml new file mode 100644 index 0000000..4201b59 --- /dev/null +++ b/supabase/config.toml @@ -0,0 +1,425 @@ +# For detailed configuration reference documentation, visit: +# https://supabase.com/docs/guides/local-development/cli/config +# A string used to distinguish different Supabase projects on the same host. Defaults to the +# working directory name when running `supabase init`. +project_id = "apk_full" + +[api] +enabled = true +# Port to use for the API URL. +port = 54321 +# Schemas to expose in your API. Tables, views and stored procedures in this schema will get API +# endpoints. `public` and `graphql_public` schemas are included by default. +schemas = ["public", "graphql_public"] +# Extra schemas to add to the search_path of every request. +extra_search_path = ["public", "extensions"] +# The maximum number of rows returns from a view, table, or stored procedure. Limits payload size +# for accidental or malicious requests. +max_rows = 1000 + +[api.tls] +# Enable HTTPS endpoints locally using a self-signed certificate. +enabled = false +# Paths to self-signed certificate pair. +# cert_path = "../certs/my-cert.pem" +# key_path = "../certs/my-key.pem" + +[db] +# Port to use for the local database URL. +port = 54322 +# Port used by db diff command to initialize the shadow database. +shadow_port = 54320 +# Maximum amount of time to wait for health check when starting the local database. +health_timeout = "2m" +# The database major version to use. This has to be the same as your remote database's. Run `SHOW +# server_version;` on the remote database to check. +major_version = 17 + +[db.pooler] +enabled = false +# Port to use for the local connection pooler. +port = 54329 +# Specifies when a server connection can be reused by other clients. +# Configure one of the supported pooler modes: `transaction`, `session`. +pool_mode = "transaction" +# How many server connections to allow per user/database pair. +default_pool_size = 20 +# Maximum number of client connections allowed. +max_client_conn = 100 + +# [db.vault] +# secret_key = "env(SECRET_VALUE)" + +[db.migrations] +# If disabled, migrations will be skipped during a db push or reset. +enabled = true +# Specifies an ordered list of schema files that describe your database. +# Supports glob patterns relative to supabase directory: "./schemas/*.sql" +schema_paths = [] + +[db.seed] +# If enabled, seeds the database after migrations during a db reset. +enabled = true +# Specifies an ordered list of seed files to load during db reset. +# Supports glob patterns relative to supabase directory: "./seeds/*.sql" +sql_paths = ["./seed.sql"] + +[db.network_restrictions] +# Enable management of network restrictions. +enabled = false +# List of IPv4 CIDR blocks allowed to connect to the database. +# Defaults to allow all IPv4 connections. Set empty array to block all IPs. +allowed_cidrs = ["0.0.0.0/0"] +# List of IPv6 CIDR blocks allowed to connect to the database. +# Defaults to allow all IPv6 connections. Set empty array to block all IPs. +allowed_cidrs_v6 = ["::/0"] + +# Uncomment to reject non-secure connections to the database. +# [db.ssl_enforcement] +# enabled = true + +[realtime] +enabled = true +# Bind realtime via either IPv4 or IPv6. (default: IPv4) +# ip_version = "IPv6" +# The maximum length in bytes of HTTP request headers. (default: 4096) +# max_header_length = 4096 + +[studio] +enabled = true +# Port to use for Supabase Studio. +port = 54323 +# External URL of the API server that frontend connects to. +api_url = "http://127.0.0.1" +# OpenAI API Key to use for Supabase AI in the Supabase Studio. +openai_api_key = "env(OPENAI_API_KEY)" + +# Email testing server. Emails sent with the local dev setup are not actually sent - rather, they +# are monitored, and you can view the emails that would have been sent from the web interface. +[inbucket] +enabled = true +# Port to use for the email testing server web interface. +port = 54324 +# Uncomment to expose additional ports for testing user applications that send emails. +# smtp_port = 54325 +# pop3_port = 54326 +# admin_email = "admin@email.com" +# sender_name = "Admin" + +[storage] +enabled = true +# The maximum file size allowed (e.g. "5MB", "500KB"). +file_size_limit = "50MiB" + +# Uncomment to configure local storage buckets +# [storage.buckets.images] +# public = false +# file_size_limit = "50MiB" +# allowed_mime_types = ["image/png", "image/jpeg"] +# objects_path = "./images" + +# Allow connections via S3 compatible clients +[storage.s3_protocol] +enabled = true + +# Image transformation API is available to Supabase Pro plan. +# [storage.image_transformation] +# enabled = true + +# Store analytical data in S3 for running ETL jobs over Iceberg Catalog +# This feature is only available on the hosted platform. +[storage.analytics] +enabled = false +max_namespaces = 5 +max_tables = 10 +max_catalogs = 2 + +# Analytics Buckets is available to Supabase Pro plan. +# [storage.analytics.buckets.my-warehouse] + +# Store vector embeddings in S3 for large and durable datasets +# This feature is only available on the hosted platform. +[storage.vector] +enabled = false +max_buckets = 10 +max_indexes = 5 + +# Vector Buckets is available to Supabase Pro plan. +# [storage.vector.buckets.documents-openai] + +[auth] +enabled = true +# The base URL of your website. Used as an allow-list for redirects and for constructing URLs used +# in emails. +site_url = "http://127.0.0.1:3000" +# A list of *exact* URLs that auth providers are permitted to redirect to post authentication. +additional_redirect_urls = ["https://127.0.0.1:3000"] +# How long tokens are valid for, in seconds. Defaults to 3600 (1 hour), maximum 604,800 (1 week). +jwt_expiry = 3600 +# JWT issuer URL. If not set, defaults to the local API URL (http://127.0.0.1:/auth/v1). +# jwt_issuer = "" +# Path to JWT signing key. DO NOT commit your signing keys file to git. +# signing_keys_path = "./signing_keys.json" +# If disabled, the refresh token will never expire. +enable_refresh_token_rotation = true +# Allows refresh tokens to be reused after expiry, up to the specified interval in seconds. +# Requires enable_refresh_token_rotation = true. +refresh_token_reuse_interval = 10 +# Allow/disallow new user signups to your project. +enable_signup = true +# Allow/disallow anonymous sign-ins to your project. +enable_anonymous_sign_ins = false +# Allow/disallow testing manual linking of accounts +enable_manual_linking = false +# Passwords shorter than this value will be rejected as weak. Minimum 6, recommended 8 or more. +minimum_password_length = 6 +# Passwords that do not meet the following requirements will be rejected as weak. Supported values +# are: `letters_digits`, `lower_upper_letters_digits`, `lower_upper_letters_digits_symbols` +password_requirements = "" + +# Configure passkey sign-ins. +# [auth.passkey] +# enabled = false +# rp_display_name = "Supabase" +# rp_id = "localhost" +# rp_origins = ["http://127.0.0.1:3000"] + +[auth.rate_limit] +# Number of emails that can be sent per hour. Requires auth.email.smtp to be enabled. +email_sent = 2 +# Number of SMS messages that can be sent per hour. Requires auth.sms to be enabled. +sms_sent = 30 +# Number of anonymous sign-ins that can be made per hour per IP address. Requires enable_anonymous_sign_ins = true. +anonymous_users = 30 +# Number of sessions that can be refreshed in a 5 minute interval per IP address. +token_refresh = 150 +# Number of sign up and sign-in requests that can be made in a 5 minute interval per IP address (excludes anonymous users). +sign_in_sign_ups = 30 +# Number of OTP / Magic link verifications that can be made in a 5 minute interval per IP address. +token_verifications = 30 +# Number of Web3 logins that can be made in a 5 minute interval per IP address. +web3 = 30 + +# Configure one of the supported captcha providers: `hcaptcha`, `turnstile`. +# [auth.captcha] +# enabled = true +# provider = "hcaptcha" +# secret = "" + +[auth.email] +# Allow/disallow new user signups via email to your project. +enable_signup = true +# If enabled, a user will be required to confirm any email change on both the old, and new email +# addresses. If disabled, only the new email is required to confirm. +double_confirm_changes = true +# If enabled, users need to confirm their email address before signing in. +enable_confirmations = false +# If enabled, users will need to reauthenticate or have logged in recently to change their password. +secure_password_change = false +# Controls the minimum amount of time that must pass before sending another signup confirmation or password reset email. +max_frequency = "1s" +# Number of characters used in the email OTP. +otp_length = 6 +# Number of seconds before the email OTP expires (defaults to 1 hour). +otp_expiry = 3600 + +# Use a production-ready SMTP server +# [auth.email.smtp] +# enabled = true +# host = "smtp.sendgrid.net" +# port = 587 +# user = "apikey" +# pass = "env(SENDGRID_API_KEY)" +# admin_email = "admin@email.com" +# sender_name = "Admin" + +# Uncomment to customize email template +# [auth.email.template.invite] +# subject = "You have been invited" +# content_path = "./supabase/templates/invite.html" + +# Uncomment to customize notification email template +# [auth.email.notification.password_changed] +# enabled = true +# subject = "Your password has been changed" +# content_path = "./templates/password_changed_notification.html" + +[auth.sms] +# Allow/disallow new user signups via SMS to your project. +enable_signup = false +# If enabled, users need to confirm their phone number before signing in. +enable_confirmations = false +# Template for sending OTP to users +template = "Your code is {{ .Code }}" +# Controls the minimum amount of time that must pass before sending another sms otp. +max_frequency = "5s" + +# Use pre-defined map of phone number to OTP for testing. +# [auth.sms.test_otp] +# 4152127777 = "123456" + +# Configure logged in session timeouts. +# [auth.sessions] +# Force log out after the specified duration. +# timebox = "24h" +# Force log out if the user has been inactive longer than the specified duration. +# inactivity_timeout = "8h" + +# This hook runs before a new user is created and allows developers to reject the request based on the incoming user object. +# [auth.hook.before_user_created] +# enabled = true +# uri = "pg-functions://postgres/auth/before-user-created-hook" + +# This hook runs before a token is issued and allows you to add additional claims based on the authentication method used. +# [auth.hook.custom_access_token] +# enabled = true +# uri = "pg-functions:////" + +# Configure one of the supported SMS providers: `twilio`, `twilio_verify`, `messagebird`, `textlocal`, `vonage`. +[auth.sms.twilio] +enabled = false +account_sid = "" +message_service_sid = "" +# DO NOT commit your Twilio auth token to git. Use environment variable substitution instead: +auth_token = "env(SUPABASE_AUTH_SMS_TWILIO_AUTH_TOKEN)" + +# Multi-factor-authentication is available to Supabase Pro plan. +[auth.mfa] +# Control how many MFA factors can be enrolled at once per user. +max_enrolled_factors = 10 + +# Control MFA via App Authenticator (TOTP) +[auth.mfa.totp] +enroll_enabled = false +verify_enabled = false + +# Configure MFA via Phone Messaging +[auth.mfa.phone] +enroll_enabled = false +verify_enabled = false +otp_length = 6 +template = "Your code is {{ .Code }}" +max_frequency = "5s" + +# Configure MFA via WebAuthn +# [auth.mfa.web_authn] +# enroll_enabled = true +# verify_enabled = true + +# Use an external OAuth provider. The full list of providers are: `apple`, `azure`, `bitbucket`, +# `discord`, `facebook`, `github`, `gitlab`, `google`, `keycloak`, `linkedin_oidc`, `notion`, `twitch`, +# `twitter`, `x`, `slack`, `spotify`, `workos`, `zoom`. +[auth.external.apple] +enabled = false +client_id = "" +# DO NOT commit your OAuth provider secret to git. Use environment variable substitution instead: +secret = "env(SUPABASE_AUTH_EXTERNAL_APPLE_SECRET)" +# Overrides the default auth redirectUrl. +redirect_uri = "" +# Overrides the default auth provider URL. Used to support self-hosted gitlab, single-tenant Azure, +# or any other third-party OIDC providers. +url = "" +# If enabled, the nonce check will be skipped. Required for local sign in with Google auth. +skip_nonce_check = false +# If enabled, it will allow the user to successfully authenticate when the provider does not return an email address. +email_optional = false + +# Allow Solana wallet holders to sign in to your project via the Sign in with Solana (SIWS, EIP-4361) standard. +# You can configure "web3" rate limit in the [auth.rate_limit] section and set up [auth.captcha] if self-hosting. +[auth.web3.solana] +enabled = false + +# Use Firebase Auth as a third-party provider alongside Supabase Auth. +[auth.third_party.firebase] +enabled = false +# project_id = "my-firebase-project" + +# Use Auth0 as a third-party provider alongside Supabase Auth. +[auth.third_party.auth0] +enabled = false +# tenant = "my-auth0-tenant" +# tenant_region = "us" + +# Use AWS Cognito (Amplify) as a third-party provider alongside Supabase Auth. +[auth.third_party.aws_cognito] +enabled = false +# user_pool_id = "my-user-pool-id" +# user_pool_region = "us-east-1" + +# Use Clerk as a third-party provider alongside Supabase Auth. +[auth.third_party.clerk] +enabled = false +# Obtain from https://clerk.com/setup/supabase +# domain = "example.clerk.accounts.dev" + +# OAuth server configuration +[auth.oauth_server] +# Enable OAuth server functionality +enabled = false +# Path for OAuth consent flow UI +authorization_url_path = "/oauth/consent" +# Allow dynamic client registration +allow_dynamic_registration = false + +[edge_runtime] +enabled = true +# Supported request policies: `oneshot`, `per_worker`. +# `per_worker` (default) — enables hot reload during local development. +# `oneshot` — fallback mode if hot reload causes issues (e.g. in large repos or with symlinks). +policy = "per_worker" +# Port to attach the Chrome inspector for debugging edge functions. +inspector_port = 8083 +# The Deno major version to use. +deno_version = 2 + +# [edge_runtime.secrets] +# secret_key = "env(SECRET_VALUE)" + +[analytics] +enabled = true +port = 54327 +# Configure one of the supported backends: `postgres`, `bigquery`. +backend = "postgres" + +# Experimental features may be deprecated any time +[experimental] +# Configures Postgres storage engine to use OrioleDB (S3) +orioledb_version = "" +# Configures S3 bucket URL, eg. .s3-.amazonaws.com +s3_host = "env(S3_HOST)" +# Configures S3 bucket region, eg. us-east-1 +s3_region = "env(S3_REGION)" +# Configures AWS_ACCESS_KEY_ID for S3 bucket +s3_access_key = "env(S3_ACCESS_KEY)" +# Configures AWS_SECRET_ACCESS_KEY for S3 bucket +s3_secret_key = "env(S3_SECRET_KEY)" + +# [experimental.pgdelta] +# When enabled, pg-delta becomes the active engine for supported schema flows. +# enabled = false +# Directory under `supabase/` where declarative files are written. +# declarative_schema_path = "./database" +# JSON string passed through to pg-delta SQL formatting. +# format_options = "{\"keywordCase\":\"upper\",\"indent\":2,\"maxWidth\":80,\"commaStyle\":\"trailing\"}" + +[functions.delete-unverified-users] +enabled = true +verify_jwt = true +import_map = "./functions/delete-unverified-users/deno.json" +# Uncomment to specify a custom file path to the entrypoint. +# Supported file extensions are: .ts, .js, .mjs, .jsx, .tsx +entrypoint = "./functions/delete-unverified-users/index.ts" +# Specifies static files to be bundled with the function. Supports glob patterns. +# For example, if you want to serve static HTML pages in your function: +# static_files = [ "./functions/delete-unverified-users/*.html" ] + +[functions.send-absen-fcm] +enabled = true +verify_jwt = true +import_map = "./functions/send-absen-fcm/deno.json" +# Uncomment to specify a custom file path to the entrypoint. +# Supported file extensions are: .ts, .js, .mjs, .jsx, .tsx +entrypoint = "./functions/send-absen-fcm/index.ts" +# Specifies static files to be bundled with the function. Supports glob patterns. +# For example, if you want to serve static HTML pages in your function: +# static_files = [ "./functions/send-absen-fcm/*.html" ] diff --git a/supabase/functions/delete-unverified-users/.npmrc b/supabase/functions/delete-unverified-users/.npmrc new file mode 100644 index 0000000..48c6388 --- /dev/null +++ b/supabase/functions/delete-unverified-users/.npmrc @@ -0,0 +1,3 @@ +# Configuration for private npm package dependencies +# For more information on using private registries with Edge Functions, see: +# https://supabase.com/docs/guides/functions/import-maps#importing-from-private-registries diff --git a/supabase/functions/delete-unverified-users/deno.json b/supabase/functions/delete-unverified-users/deno.json new file mode 100644 index 0000000..758d070 --- /dev/null +++ b/supabase/functions/delete-unverified-users/deno.json @@ -0,0 +1,5 @@ +{ + "imports": { + "@supabase/functions-js": "jsr:@supabase/functions-js@^2" + } +} diff --git a/supabase/functions/delete-unverified-users/index.ts b/supabase/functions/delete-unverified-users/index.ts new file mode 100644 index 0000000..e2269d5 --- /dev/null +++ b/supabase/functions/delete-unverified-users/index.ts @@ -0,0 +1,40 @@ +import "@supabase/functions-js/edge-runtime.d.ts"; +import { createClient } from "https://esm.sh/@supabase/supabase-js@2"; + +Deno.serve(async () => { + const supabase = createClient( + Deno.env.get("SUPABASE_URL")!, + Deno.env.get("SUPABASE_SERVICE_ROLE_KEY")!, + ); + + const fiveMinutesAgo = new Date(Date.now() - 24 * 60 * 60 * 1000); + + const { data, error } = await supabase.auth.admin.listUsers(); + + if (error) { + return new Response( + JSON.stringify({ error: error.message }), + { status: 500 }, + ); + } + + const users = data.users; + + const targetUsers = users.filter((user) => { + return ( + !user.email_confirmed_at && + new Date(user.created_at) < fiveMinutesAgo + ); + }); + + for (const user of targetUsers) { + await supabase.auth.admin.deleteUser(user.id); + } + + return new Response( + JSON.stringify({ + deleted: targetUsers.length, + }), + { headers: { "Content-Type": "application/json" } }, + ); +}); diff --git a/supabase/functions/send-absen-fcm/.npmrc b/supabase/functions/send-absen-fcm/.npmrc new file mode 100644 index 0000000..48c6388 --- /dev/null +++ b/supabase/functions/send-absen-fcm/.npmrc @@ -0,0 +1,3 @@ +# Configuration for private npm package dependencies +# For more information on using private registries with Edge Functions, see: +# https://supabase.com/docs/guides/functions/import-maps#importing-from-private-registries diff --git a/supabase/functions/send-absen-fcm/deno.json b/supabase/functions/send-absen-fcm/deno.json new file mode 100644 index 0000000..758d070 --- /dev/null +++ b/supabase/functions/send-absen-fcm/deno.json @@ -0,0 +1,5 @@ +{ + "imports": { + "@supabase/functions-js": "jsr:@supabase/functions-js@^2" + } +} diff --git a/supabase/functions/send-absen-fcm/index.ts b/supabase/functions/send-absen-fcm/index.ts new file mode 100644 index 0000000..40284e3 --- /dev/null +++ b/supabase/functions/send-absen-fcm/index.ts @@ -0,0 +1,122 @@ +import { serve } from "https://deno.land/std@0.168.0/http/server.ts" +import { createClient } from "https://esm.sh/@supabase/supabase-js@2.7.1" +import { GoogleAuth } from "https://esm.sh/google-auth-library@8.7.0" + +serve(async (req) => { + try { + const payload = await req.json() + console.log("Webhook Payload:", payload) + + const record = payload.record + if (!record) throw new Error("No record found in payload") + + const supabaseUrl = Deno.env.get("SUPABASE_URL") + const supabaseServiceKey = Deno.env.get("SUPABASE_SERVICE_ROLE_KEY") + if (!supabaseUrl || !supabaseServiceKey) throw new Error("Supabase credentials not set") + + const supabase = createClient(supabaseUrl, supabaseServiceKey) + + let muridId = record.id_murid + let namaUser = record.nama_user || "Siswa" + + if (!muridId) { + if (record.rfid) { + const { data: muridData } = await supabase.from("murid").select("id_tabel").eq("rfid", record.rfid).single() + if (muridData) muridId = muridData.id_tabel + } else { + const { data: muridData } = await supabase.from("murid").select("id_tabel").eq("nama", namaUser).single() + if (muridData) muridId = muridData.id_tabel + } + } + + let targetUserId = muridId; + + if (!targetUserId && namaUser && namaUser !== "Siswa") { + const { data: guruData } = await supabase.from("guru").select("id_tabel").eq("name", namaUser).maybeSingle() + if (guruData) targetUserId = guruData.id_tabel + } + + if (!targetUserId) { + return new Response(JSON.stringify({ message: "No target user to notify" }), { + headers: { "Content-Type": "application/json" }, + status: 200, + }) + } + + const query = supabase.from("fcm_tokens").select("token").eq("user_id", targetUserId) + + const { data: tokensData, error: tokenError } = await query + if (tokenError) throw tokenError + + const tokens = tokensData.map(t => t.token) + if (tokens.length === 0) { + return new Response(JSON.stringify({ message: "No devices to notify" }), { + headers: { "Content-Type": "application/json" }, + status: 200, + }) + } + + console.log(`Found ${tokens.length} tokens to notify.`) + + const fcmServiceAccountStr = Deno.env.get("FIREBASE_SERVICE_ACCOUNT") + if (!fcmServiceAccountStr) throw new Error("FIREBASE_SERVICE_ACCOUNT secret is missing") + + const serviceAccount = JSON.parse(fcmServiceAccountStr) + + const auth = new GoogleAuth({ + credentials: { + client_email: serviceAccount.client_email, + private_key: serviceAccount.private_key, + }, + scopes: ["https://www.googleapis.com/auth/firebase.messaging"], + }) + + const accessToken = await auth.getAccessToken() + + const message = { + message: { + notification: { + title: "Aplikasi Absensi", + body: `${namaUser} telah melakukan absensi.` + }, + data: { + id_murid: muridId || "", + nama_user: namaUser, + id_tabel: record.id_tabel || "", + type: "absen" + } + } + } + + const projectId = serviceAccount.project_id + const fcmUrl = `https://fcm.googleapis.com/v1/projects/${projectId}/messages:send` + + const promises = tokens.map(async (token) => { + const msg = { ...message, message: { ...message.message, token: token } } + const res = await fetch(fcmUrl, { + method: "POST", + headers: { + "Authorization": `Bearer ${accessToken}`, + "Content-Type": "application/json", + }, + body: JSON.stringify(msg), + }) + if (!res.ok) { + console.error(`Failed to send to ${token}:`, await res.text()) + } + }) + + await Promise.all(promises) + + return new Response(JSON.stringify({ success: true, notified: tokens.length }), { + headers: { "Content-Type": "application/json" }, + status: 200, + }) + } catch (error) { + console.error("Error:", error) + return new Response(JSON.stringify({ error: error.message }), { + headers: { "Content-Type": "application/json" }, + status: 500, + }) + } +}) diff --git a/test/widget_test.dart b/test/widget_test.dart new file mode 100644 index 0000000..9b7fbd6 --- /dev/null +++ b/test/widget_test.dart @@ -0,0 +1,30 @@ +// This is a basic Flutter widget test. +// +// To perform an interaction with a widget in your test, use the WidgetTester +// utility in the flutter_test package. For example, you can send tap and scroll +// gestures. You can also use WidgetTester to find child widgets in the widget +// tree, read text, and verify that the values of widget properties are correct. + +import 'package:flutter/material.dart'; +import 'package:flutter_test/flutter_test.dart'; + +import 'package:apk/main.dart'; + +void main() { + testWidgets('Counter increments smoke test', (WidgetTester tester) async { + // Build our app and trigger a frame. + await tester.pumpWidget(const MyApp()); + + // Verify that our counter starts at 0. + expect(find.text('0'), findsOneWidget); + expect(find.text('1'), findsNothing); + + // Tap the '+' icon and trigger a frame. + await tester.tap(find.byIcon(Icons.add)); + await tester.pump(); + + // Verify that our counter has incremented. + expect(find.text('0'), findsNothing); + expect(find.text('1'), findsOneWidget); + }); +} diff --git a/web/favicon.png b/web/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..8aaa46ac1ae21512746f852a42ba87e4165dfdd1 GIT binary patch literal 917 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|I14-?iy0X7 zltGxWVyS%@P(fs7NJL45ua8x7ey(0(N`6wRUPW#JP&EUCO@$SZnVVXYs8ErclUHn2 zVXFjIVFhG^g!Ppaz)DK8ZIvQ?0~DO|i&7O#^-S~(l1AfjnEK zjFOT9D}DX)@^Za$W4-*MbbUihOG|wNBYh(yU7!lx;>x^|#0uTKVr7USFmqf|i<65o z3raHc^AtelCMM;Vme?vOfh>Xph&xL%(-1c06+^uR^q@XSM&D4+Kp$>4P^%3{)XKjo zGZknv$b36P8?Z_gF{nK@`XI}Z90TzwSQO}0J1!f2c(B=V`5aP@1P1a|PZ!4!3&Gl8 zTYqUsf!gYFyJnXpu0!n&N*SYAX-%d(5gVjrHJWqXQshj@!Zm{!01WsQrH~9=kTxW#6SvuapgMqt>$=j#%eyGrQzr zP{L-3gsMA^$I1&gsBAEL+vxi1*Igl=8#8`5?A-T5=z-sk46WA1IUT)AIZHx1rdUrf zVJrJn<74DDw`j)Ki#gt}mIT-Q`XRa2-jQXQoI%w`nb|XblvzK${ZzlV)m-XcwC(od z71_OEC5Bt9GEXosOXaPTYOia#R4ID2TiU~`zVMl08TV_C%DnU4^+HE>9(CE4D6?Fz oujB08i7adh9xk7*FX66dWH6F5TM;?E2b5PlUHx3vIVCg!0Dx9vYXATM literal 0 HcmV?d00001 diff --git a/web/icons/Icon-192.png b/web/icons/Icon-192.png new file mode 100644 index 0000000000000000000000000000000000000000..b749bfef07473333cf1dd31e9eed89862a5d52aa GIT binary patch literal 5292 zcmZ`-2T+sGz6~)*FVZ`aW+(v>MIm&M-g^@e2u-B-DoB?qO+b1Tq<5uCCv>ESfRum& zp%X;f!~1{tzL__3=gjVJ=j=J>+nMj%ncXj1Q(b|Ckbw{Y0FWpt%4y%$uD=Z*c-x~o zE;IoE;xa#7Ll5nj-e4CuXB&G*IM~D21rCP$*xLXAK8rIMCSHuSu%bL&S3)8YI~vyp@KBu9Ph7R_pvKQ@xv>NQ`dZp(u{Z8K3yOB zn7-AR+d2JkW)KiGx0hosml;+eCXp6+w%@STjFY*CJ?udJ64&{BCbuebcuH;}(($@@ znNlgBA@ZXB)mcl9nbX#F!f_5Z=W>0kh|UVWnf!At4V*LQP%*gPdCXd6P@J4Td;!Ur z<2ZLmwr(NG`u#gDEMP19UcSzRTL@HsK+PnIXbVBT@oHm53DZr?~V(0{rsalAfwgo zEh=GviaqkF;}F_5-yA!1u3!gxaR&Mj)hLuj5Q-N-@Lra{%<4ONja8pycD90&>yMB` zchhd>0CsH`^|&TstH-8+R`CfoWqmTTF_0?zDOY`E`b)cVi!$4xA@oO;SyOjJyP^_j zx^@Gdf+w|FW@DMdOi8=4+LJl$#@R&&=UM`)G!y%6ZzQLoSL%*KE8IO0~&5XYR9 z&N)?goEiWA(YoRfT{06&D6Yuu@Qt&XVbuW@COb;>SP9~aRc+z`m`80pB2o%`#{xD@ zI3RAlukL5L>px6b?QW1Ac_0>ew%NM!XB2(H+1Y3AJC?C?O`GGs`331Nd4ZvG~bMo{lh~GeL zSL|tT*fF-HXxXYtfu5z+T5Mx9OdP7J4g%@oeC2FaWO1D{=NvL|DNZ}GO?O3`+H*SI z=grGv=7dL{+oY0eJFGO!Qe(e2F?CHW(i!!XkGo2tUvsQ)I9ev`H&=;`N%Z{L zO?vV%rDv$y(@1Yj@xfr7Kzr<~0{^T8wM80xf7IGQF_S-2c0)0D6b0~yD7BsCy+(zL z#N~%&e4iAwi4F$&dI7x6cE|B{f@lY5epaDh=2-(4N05VO~A zQT3hanGy_&p+7Fb^I#ewGsjyCEUmSCaP6JDB*=_()FgQ(-pZ28-{qx~2foO4%pM9e z*_63RT8XjgiaWY|*xydf;8MKLd{HnfZ2kM%iq}fstImB-K6A79B~YoPVa@tYN@T_$ zea+9)<%?=Fl!kd(Y!G(-o}ko28hg2!MR-o5BEa_72uj7Mrc&{lRh3u2%Y=Xk9^-qa zBPWaD=2qcuJ&@Tf6ue&)4_V*45=zWk@Z}Q?f5)*z)-+E|-yC4fs5CE6L_PH3=zI8p z*Z3!it{1e5_^(sF*v=0{`U9C741&lub89gdhKp|Y8CeC{_{wYK-LSbp{h)b~9^j!s z7e?Y{Z3pZv0J)(VL=g>l;<}xk=T*O5YR|hg0eg4u98f2IrA-MY+StQIuK-(*J6TRR z|IM(%uI~?`wsfyO6Tgmsy1b3a)j6M&-jgUjVg+mP*oTKdHg?5E`!r`7AE_#?Fc)&a z08KCq>Gc=ne{PCbRvs6gVW|tKdcE1#7C4e`M|j$C5EYZ~Y=jUtc zj`+?p4ba3uy7><7wIokM79jPza``{Lx0)zGWg;FW1^NKY+GpEi=rHJ+fVRGfXO zPHV52k?jxei_!YYAw1HIz}y8ZMwdZqU%ESwMn7~t zdI5%B;U7RF=jzRz^NuY9nM)&<%M>x>0(e$GpU9th%rHiZsIT>_qp%V~ILlyt^V`=d z!1+DX@ah?RnB$X!0xpTA0}lN@9V-ePx>wQ?-xrJr^qDlw?#O(RsXeAvM%}rg0NT#t z!CsT;-vB=B87ShG`GwO;OEbeL;a}LIu=&@9cb~Rsx(ZPNQ!NT7H{@j0e(DiLea>QD zPmpe90gEKHEZ8oQ@6%E7k-Ptn#z)b9NbD@_GTxEhbS+}Bb74WUaRy{w;E|MgDAvHw zL)ycgM7mB?XVh^OzbC?LKFMotw3r@i&VdUV%^Efdib)3@soX%vWCbnOyt@Y4swW925@bt45y0HY3YI~BnnzZYrinFy;L?2D3BAL`UQ zEj))+f>H7~g8*VuWQ83EtGcx`hun$QvuurSMg3l4IP8Fe`#C|N6mbYJ=n;+}EQm;< z!!N=5j1aAr_uEnnzrEV%_E|JpTb#1p1*}5!Ce!R@d$EtMR~%9# zd;h8=QGT)KMW2IKu_fA_>p_und#-;Q)p%%l0XZOXQicfX8M~7?8}@U^ihu;mizj)t zgV7wk%n-UOb z#!P5q?Ex+*Kx@*p`o$q8FWL*E^$&1*!gpv?Za$YO~{BHeGY*5%4HXUKa_A~~^d z=E*gf6&+LFF^`j4$T~dR)%{I)T?>@Ma?D!gi9I^HqvjPc3-v~=qpX1Mne@*rzT&Xw zQ9DXsSV@PqpEJO-g4A&L{F&;K6W60D!_vs?Vx!?w27XbEuJJP&);)^+VF1nHqHBWu z^>kI$M9yfOY8~|hZ9WB!q-9u&mKhEcRjlf2nm_@s;0D#c|@ED7NZE% zzR;>P5B{o4fzlfsn3CkBK&`OSb-YNrqx@N#4CK!>bQ(V(D#9|l!e9(%sz~PYk@8zt zPN9oK78&-IL_F zhsk1$6p;GqFbtB^ZHHP+cjMvA0(LqlskbdYE_rda>gvQLTiqOQ1~*7lg%z*&p`Ry& zRcG^DbbPj_jOKHTr8uk^15Boj6>hA2S-QY(W-6!FIq8h$<>MI>PYYRenQDBamO#Fv zAH5&ImqKBDn0v5kb|8i0wFhUBJTpT!rB-`zK)^SNnRmLraZcPYK7b{I@+}wXVdW-{Ps17qdRA3JatEd?rPV z4@}(DAMf5EqXCr4-B+~H1P#;t@O}B)tIJ(W6$LrK&0plTmnPpb1TKn3?f?Kk``?D+ zQ!MFqOX7JbsXfQrz`-M@hq7xlfNz;_B{^wbpG8des56x(Q)H)5eLeDwCrVR}hzr~= zM{yXR6IM?kXxauLza#@#u?Y|o;904HCqF<8yT~~c-xyRc0-vxofnxG^(x%>bj5r}N zyFT+xnn-?B`ohA>{+ZZQem=*Xpqz{=j8i2TAC#x-m;;mo{{sLB_z(UoAqD=A#*juZ zCv=J~i*O8;F}A^Wf#+zx;~3B{57xtoxC&j^ie^?**T`WT2OPRtC`xj~+3Kprn=rVM zVJ|h5ux%S{dO}!mq93}P+h36mZ5aZg1-?vhL$ke1d52qIiXSE(llCr5i=QUS?LIjc zV$4q=-)aaR4wsrQv}^shL5u%6;`uiSEs<1nG^?$kl$^6DL z43CjY`M*p}ew}}3rXc7Xck@k41jx}c;NgEIhKZ*jsBRZUP-x2cm;F1<5$jefl|ppO zmZd%%?gMJ^g9=RZ^#8Mf5aWNVhjAS^|DQO+q$)oeob_&ZLFL(zur$)); zU19yRm)z<4&4-M}7!9+^Wl}Uk?`S$#V2%pQ*SIH5KI-mn%i;Z7-)m$mN9CnI$G7?# zo`zVrUwoSL&_dJ92YhX5TKqaRkfPgC4=Q&=K+;_aDs&OU0&{WFH}kKX6uNQC6%oUH z2DZa1s3%Vtk|bglbxep-w)PbFG!J17`<$g8lVhqD2w;Z0zGsh-r zxZ13G$G<48leNqR!DCVt9)@}(zMI5w6Wo=N zpP1*3DI;~h2WDWgcKn*f!+ORD)f$DZFwgKBafEZmeXQMAsq9sxP9A)7zOYnkHT9JU zRA`umgmP9d6=PHmFIgx=0$(sjb>+0CHG)K@cPG{IxaJ&Ueo8)0RWgV9+gO7+Bl1(F z7!BslJ2MP*PWJ;x)QXbR$6jEr5q3 z(3}F@YO_P1NyTdEXRLU6fp?9V2-S=E+YaeLL{Y)W%6`k7$(EW8EZSA*(+;e5@jgD^I zaJQ2|oCM1n!A&-8`;#RDcZyk*+RPkn_r8?Ak@agHiSp*qFNX)&i21HE?yuZ;-C<3C zwJGd1lx5UzViP7sZJ&|LqH*mryb}y|%AOw+v)yc`qM)03qyyrqhX?ub`Cjwx2PrR! z)_z>5*!*$x1=Qa-0uE7jy0z`>|Ni#X+uV|%_81F7)b+nf%iz=`fF4g5UfHS_?PHbr zB;0$bK@=di?f`dS(j{l3-tSCfp~zUuva+=EWxJcRfp(<$@vd(GigM&~vaYZ0c#BTs z3ijkxMl=vw5AS&DcXQ%eeKt!uKvh2l3W?&3=dBHU=Gz?O!40S&&~ei2vg**c$o;i89~6DVns zG>9a*`k5)NI9|?W!@9>rzJ;9EJ=YlJTx1r1BA?H`LWijk(rTax9(OAu;q4_wTj-yj z1%W4GW&K4T=uEGb+E!>W0SD_C0RR91 literal 0 HcmV?d00001 diff --git a/web/icons/Icon-512.png b/web/icons/Icon-512.png new file mode 100644 index 0000000000000000000000000000000000000000..88cfd48dff1169879ba46840804b412fe02fefd6 GIT binary patch literal 8252 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 literal 0 HcmV?d00001 diff --git a/web/icons/Icon-maskable-192.png b/web/icons/Icon-maskable-192.png new file mode 100644 index 0000000000000000000000000000000000000000..eb9b4d76e525556d5d89141648c724331630325d GIT binary patch literal 5594 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 X>c!)3PgKfL&lX^$Z>Cpu&6)6jvi^Z! literal 0 HcmV?d00001 diff --git a/web/icons/Icon-maskable-512.png b/web/icons/Icon-maskable-512.png new file mode 100644 index 0000000000000000000000000000000000000000..d69c56691fbdb0b7efa65097c7cc1edac12a6d3e GIT binary patch literal 20998 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 MPgg&ebxsLQ025IeI{*Lx literal 0 HcmV?d00001 diff --git a/web/index.html b/web/index.html new file mode 100644 index 0000000..6f82fbc --- /dev/null +++ b/web/index.html @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + apk_full + + + + + + + diff --git a/web/manifest.json b/web/manifest.json new file mode 100644 index 0000000..8f111e6 --- /dev/null +++ b/web/manifest.json @@ -0,0 +1,35 @@ +{ + "name": "apk_full", + "short_name": "apk_full", + "start_url": ".", + "display": "standalone", + "background_color": "#0175C2", + "theme_color": "#0175C2", + "description": "A new Flutter project.", + "orientation": "portrait-primary", + "prefer_related_applications": false, + "icons": [ + { + "src": "icons/Icon-192.png", + "sizes": "192x192", + "type": "image/png" + }, + { + "src": "icons/Icon-512.png", + "sizes": "512x512", + "type": "image/png" + }, + { + "src": "icons/Icon-maskable-192.png", + "sizes": "192x192", + "type": "image/png", + "purpose": "maskable" + }, + { + "src": "icons/Icon-maskable-512.png", + "sizes": "512x512", + "type": "image/png", + "purpose": "maskable" + } + ] +} diff --git a/windows/.gitignore b/windows/.gitignore new file mode 100644 index 0000000..d492d0d --- /dev/null +++ b/windows/.gitignore @@ -0,0 +1,17 @@ +flutter/ephemeral/ + +# Visual Studio user-specific files. +*.suo +*.user +*.userosscache +*.sln.docstates + +# Visual Studio build-related files. +x64/ +x86/ + +# Visual Studio cache files +# files ending in .cache can be ignored +*.[Cc]ache +# but keep track of directories ending in .cache +!*.[Cc]ache/ diff --git a/windows/CMakeLists.txt b/windows/CMakeLists.txt new file mode 100644 index 0000000..a1b1d2e --- /dev/null +++ b/windows/CMakeLists.txt @@ -0,0 +1,108 @@ +# Project-level configuration. +cmake_minimum_required(VERSION 3.14) +project(apk_full LANGUAGES CXX) + +# The name of the executable created for the application. Change this to change +# the on-disk name of your application. +set(BINARY_NAME "apk_full") + +# Explicitly opt in to modern CMake behaviors to avoid warnings with recent +# versions of CMake. +cmake_policy(VERSION 3.14...3.25) + +# Define build configuration option. +get_property(IS_MULTICONFIG GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG) +if(IS_MULTICONFIG) + set(CMAKE_CONFIGURATION_TYPES "Debug;Profile;Release" + CACHE STRING "" FORCE) +else() + if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES) + set(CMAKE_BUILD_TYPE "Debug" CACHE + STRING "Flutter build mode" FORCE) + set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS + "Debug" "Profile" "Release") + endif() +endif() +# Define settings for the Profile build mode. +set(CMAKE_EXE_LINKER_FLAGS_PROFILE "${CMAKE_EXE_LINKER_FLAGS_RELEASE}") +set(CMAKE_SHARED_LINKER_FLAGS_PROFILE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE}") +set(CMAKE_C_FLAGS_PROFILE "${CMAKE_C_FLAGS_RELEASE}") +set(CMAKE_CXX_FLAGS_PROFILE "${CMAKE_CXX_FLAGS_RELEASE}") + +# Use Unicode for all projects. +add_definitions(-DUNICODE -D_UNICODE) + +# Compilation settings that should be applied to most targets. +# +# Be cautious about adding new options here, as plugins use this function by +# default. In most cases, you should add new options to specific targets instead +# of modifying this function. +function(APPLY_STANDARD_SETTINGS TARGET) + target_compile_features(${TARGET} PUBLIC cxx_std_17) + target_compile_options(${TARGET} PRIVATE /W4 /WX /wd"4100") + target_compile_options(${TARGET} PRIVATE /EHsc) + target_compile_definitions(${TARGET} PRIVATE "_HAS_EXCEPTIONS=0") + target_compile_definitions(${TARGET} PRIVATE "$<$:_DEBUG>") +endfunction() + +# Flutter library and tool build rules. +set(FLUTTER_MANAGED_DIR "${CMAKE_CURRENT_SOURCE_DIR}/flutter") +add_subdirectory(${FLUTTER_MANAGED_DIR}) + +# Application build; see runner/CMakeLists.txt. +add_subdirectory("runner") + + +# Generated plugin build rules, which manage building the plugins and adding +# them to the application. +include(flutter/generated_plugins.cmake) + + +# === Installation === +# Support files are copied into place next to the executable, so that it can +# run in place. This is done instead of making a separate bundle (as on Linux) +# so that building and running from within Visual Studio will work. +set(BUILD_BUNDLE_DIR "$") +# Make the "install" step default, as it's required to run. +set(CMAKE_VS_INCLUDE_INSTALL_TO_DEFAULT_BUILD 1) +if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) + set(CMAKE_INSTALL_PREFIX "${BUILD_BUNDLE_DIR}" CACHE PATH "..." FORCE) +endif() + +set(INSTALL_BUNDLE_DATA_DIR "${CMAKE_INSTALL_PREFIX}/data") +set(INSTALL_BUNDLE_LIB_DIR "${CMAKE_INSTALL_PREFIX}") + +install(TARGETS ${BINARY_NAME} RUNTIME DESTINATION "${CMAKE_INSTALL_PREFIX}" + COMPONENT Runtime) + +install(FILES "${FLUTTER_ICU_DATA_FILE}" DESTINATION "${INSTALL_BUNDLE_DATA_DIR}" + COMPONENT Runtime) + +install(FILES "${FLUTTER_LIBRARY}" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" + COMPONENT Runtime) + +if(PLUGIN_BUNDLED_LIBRARIES) + install(FILES "${PLUGIN_BUNDLED_LIBRARIES}" + DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" + COMPONENT Runtime) +endif() + +# Copy the native assets provided by the build.dart from all packages. +set(NATIVE_ASSETS_DIR "${PROJECT_BUILD_DIR}native_assets/windows/") +install(DIRECTORY "${NATIVE_ASSETS_DIR}" + DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" + COMPONENT Runtime) + +# Fully re-copy the assets directory on each build to avoid having stale files +# from a previous install. +set(FLUTTER_ASSET_DIR_NAME "flutter_assets") +install(CODE " + file(REMOVE_RECURSE \"${INSTALL_BUNDLE_DATA_DIR}/${FLUTTER_ASSET_DIR_NAME}\") + " COMPONENT Runtime) +install(DIRECTORY "${PROJECT_BUILD_DIR}/${FLUTTER_ASSET_DIR_NAME}" + DESTINATION "${INSTALL_BUNDLE_DATA_DIR}" COMPONENT Runtime) + +# Install the AOT library on non-Debug builds only. +install(FILES "${AOT_LIBRARY}" DESTINATION "${INSTALL_BUNDLE_DATA_DIR}" + CONFIGURATIONS Profile;Release + COMPONENT Runtime) diff --git a/windows/flutter/CMakeLists.txt b/windows/flutter/CMakeLists.txt new file mode 100644 index 0000000..903f489 --- /dev/null +++ b/windows/flutter/CMakeLists.txt @@ -0,0 +1,109 @@ +# This file controls Flutter-level build steps. It should not be edited. +cmake_minimum_required(VERSION 3.14) + +set(EPHEMERAL_DIR "${CMAKE_CURRENT_SOURCE_DIR}/ephemeral") + +# Configuration provided via flutter tool. +include(${EPHEMERAL_DIR}/generated_config.cmake) + +# TODO: Move the rest of this into files in ephemeral. See +# https://github.com/flutter/flutter/issues/57146. +set(WRAPPER_ROOT "${EPHEMERAL_DIR}/cpp_client_wrapper") + +# Set fallback configurations for older versions of the flutter tool. +if (NOT DEFINED FLUTTER_TARGET_PLATFORM) + set(FLUTTER_TARGET_PLATFORM "windows-x64") +endif() + +# === Flutter Library === +set(FLUTTER_LIBRARY "${EPHEMERAL_DIR}/flutter_windows.dll") + +# Published to parent scope for install step. +set(FLUTTER_LIBRARY ${FLUTTER_LIBRARY} PARENT_SCOPE) +set(FLUTTER_ICU_DATA_FILE "${EPHEMERAL_DIR}/icudtl.dat" PARENT_SCOPE) +set(PROJECT_BUILD_DIR "${PROJECT_DIR}/build/" PARENT_SCOPE) +set(AOT_LIBRARY "${PROJECT_DIR}/build/windows/app.so" PARENT_SCOPE) + +list(APPEND FLUTTER_LIBRARY_HEADERS + "flutter_export.h" + "flutter_windows.h" + "flutter_messenger.h" + "flutter_plugin_registrar.h" + "flutter_texture_registrar.h" +) +list(TRANSFORM FLUTTER_LIBRARY_HEADERS PREPEND "${EPHEMERAL_DIR}/") +add_library(flutter INTERFACE) +target_include_directories(flutter INTERFACE + "${EPHEMERAL_DIR}" +) +target_link_libraries(flutter INTERFACE "${FLUTTER_LIBRARY}.lib") +add_dependencies(flutter flutter_assemble) + +# === Wrapper === +list(APPEND CPP_WRAPPER_SOURCES_CORE + "core_implementations.cc" + "standard_codec.cc" +) +list(TRANSFORM CPP_WRAPPER_SOURCES_CORE PREPEND "${WRAPPER_ROOT}/") +list(APPEND CPP_WRAPPER_SOURCES_PLUGIN + "plugin_registrar.cc" +) +list(TRANSFORM CPP_WRAPPER_SOURCES_PLUGIN PREPEND "${WRAPPER_ROOT}/") +list(APPEND CPP_WRAPPER_SOURCES_APP + "flutter_engine.cc" + "flutter_view_controller.cc" +) +list(TRANSFORM CPP_WRAPPER_SOURCES_APP PREPEND "${WRAPPER_ROOT}/") + +# Wrapper sources needed for a plugin. +add_library(flutter_wrapper_plugin STATIC + ${CPP_WRAPPER_SOURCES_CORE} + ${CPP_WRAPPER_SOURCES_PLUGIN} +) +apply_standard_settings(flutter_wrapper_plugin) +set_target_properties(flutter_wrapper_plugin PROPERTIES + POSITION_INDEPENDENT_CODE ON) +set_target_properties(flutter_wrapper_plugin PROPERTIES + CXX_VISIBILITY_PRESET hidden) +target_link_libraries(flutter_wrapper_plugin PUBLIC flutter) +target_include_directories(flutter_wrapper_plugin PUBLIC + "${WRAPPER_ROOT}/include" +) +add_dependencies(flutter_wrapper_plugin flutter_assemble) + +# Wrapper sources needed for the runner. +add_library(flutter_wrapper_app STATIC + ${CPP_WRAPPER_SOURCES_CORE} + ${CPP_WRAPPER_SOURCES_APP} +) +apply_standard_settings(flutter_wrapper_app) +target_link_libraries(flutter_wrapper_app PUBLIC flutter) +target_include_directories(flutter_wrapper_app PUBLIC + "${WRAPPER_ROOT}/include" +) +add_dependencies(flutter_wrapper_app flutter_assemble) + +# === Flutter tool backend === +# _phony_ is a non-existent file to force this command to run every time, +# since currently there's no way to get a full input/output list from the +# flutter tool. +set(PHONY_OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/_phony_") +set_source_files_properties("${PHONY_OUTPUT}" PROPERTIES SYMBOLIC TRUE) +add_custom_command( + OUTPUT ${FLUTTER_LIBRARY} ${FLUTTER_LIBRARY_HEADERS} + ${CPP_WRAPPER_SOURCES_CORE} ${CPP_WRAPPER_SOURCES_PLUGIN} + ${CPP_WRAPPER_SOURCES_APP} + ${PHONY_OUTPUT} + COMMAND ${CMAKE_COMMAND} -E env + ${FLUTTER_TOOL_ENVIRONMENT} + "${FLUTTER_ROOT}/packages/flutter_tools/bin/tool_backend.bat" + ${FLUTTER_TARGET_PLATFORM} $ + VERBATIM +) +add_custom_target(flutter_assemble DEPENDS + "${FLUTTER_LIBRARY}" + ${FLUTTER_LIBRARY_HEADERS} + ${CPP_WRAPPER_SOURCES_CORE} + ${CPP_WRAPPER_SOURCES_PLUGIN} + ${CPP_WRAPPER_SOURCES_APP} +) diff --git a/windows/flutter/generated_plugin_registrant.cc b/windows/flutter/generated_plugin_registrant.cc new file mode 100644 index 0000000..3556b81 --- /dev/null +++ b/windows/flutter/generated_plugin_registrant.cc @@ -0,0 +1,26 @@ +// +// Generated file. Do not edit. +// + +// clang-format off + +#include "generated_plugin_registrant.h" + +#include +#include +#include +#include +#include + +void RegisterPlugins(flutter::PluginRegistry* registry) { + AppLinksPluginCApiRegisterWithRegistrar( + registry->GetRegistrarForPlugin("AppLinksPluginCApi")); + FileSelectorWindowsRegisterWithRegistrar( + registry->GetRegistrarForPlugin("FileSelectorWindows")); + FirebaseCorePluginCApiRegisterWithRegistrar( + registry->GetRegistrarForPlugin("FirebaseCorePluginCApi")); + SharePlusWindowsPluginCApiRegisterWithRegistrar( + registry->GetRegistrarForPlugin("SharePlusWindowsPluginCApi")); + UrlLauncherWindowsRegisterWithRegistrar( + registry->GetRegistrarForPlugin("UrlLauncherWindows")); +} diff --git a/windows/flutter/generated_plugin_registrant.h b/windows/flutter/generated_plugin_registrant.h new file mode 100644 index 0000000..dc139d8 --- /dev/null +++ b/windows/flutter/generated_plugin_registrant.h @@ -0,0 +1,15 @@ +// +// Generated file. Do not edit. +// + +// clang-format off + +#ifndef GENERATED_PLUGIN_REGISTRANT_ +#define GENERATED_PLUGIN_REGISTRANT_ + +#include + +// Registers Flutter plugins. +void RegisterPlugins(flutter::PluginRegistry* registry); + +#endif // GENERATED_PLUGIN_REGISTRANT_ diff --git a/windows/flutter/generated_plugins.cmake b/windows/flutter/generated_plugins.cmake new file mode 100644 index 0000000..8c271df --- /dev/null +++ b/windows/flutter/generated_plugins.cmake @@ -0,0 +1,29 @@ +# +# Generated file, do not edit. +# + +list(APPEND FLUTTER_PLUGIN_LIST + app_links + file_selector_windows + firebase_core + share_plus + url_launcher_windows +) + +list(APPEND FLUTTER_FFI_PLUGIN_LIST + jni +) + +set(PLUGIN_BUNDLED_LIBRARIES) + +foreach(plugin ${FLUTTER_PLUGIN_LIST}) + add_subdirectory(flutter/ephemeral/.plugin_symlinks/${plugin}/windows plugins/${plugin}) + target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin) + list(APPEND PLUGIN_BUNDLED_LIBRARIES $) + list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) +endforeach(plugin) + +foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST}) + add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/windows plugins/${ffi_plugin}) + list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries}) +endforeach(ffi_plugin) diff --git a/windows/runner/CMakeLists.txt b/windows/runner/CMakeLists.txt new file mode 100644 index 0000000..394917c --- /dev/null +++ b/windows/runner/CMakeLists.txt @@ -0,0 +1,40 @@ +cmake_minimum_required(VERSION 3.14) +project(runner LANGUAGES CXX) + +# Define the application target. To change its name, change BINARY_NAME in the +# top-level CMakeLists.txt, not the value here, or `flutter run` will no longer +# work. +# +# Any new source files that you add to the application should be added here. +add_executable(${BINARY_NAME} WIN32 + "flutter_window.cpp" + "main.cpp" + "utils.cpp" + "win32_window.cpp" + "${FLUTTER_MANAGED_DIR}/generated_plugin_registrant.cc" + "Runner.rc" + "runner.exe.manifest" +) + +# Apply the standard set of build settings. This can be removed for applications +# that need different build settings. +apply_standard_settings(${BINARY_NAME}) + +# Add preprocessor definitions for the build version. +target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION=\"${FLUTTER_VERSION}\"") +target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION_MAJOR=${FLUTTER_VERSION_MAJOR}") +target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION_MINOR=${FLUTTER_VERSION_MINOR}") +target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION_PATCH=${FLUTTER_VERSION_PATCH}") +target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION_BUILD=${FLUTTER_VERSION_BUILD}") + +# Disable Windows macros that collide with C++ standard library functions. +target_compile_definitions(${BINARY_NAME} PRIVATE "NOMINMAX") + +# Add dependency libraries and include directories. Add any application-specific +# dependencies here. +target_link_libraries(${BINARY_NAME} PRIVATE flutter flutter_wrapper_app) +target_link_libraries(${BINARY_NAME} PRIVATE "dwmapi.lib") +target_include_directories(${BINARY_NAME} PRIVATE "${CMAKE_SOURCE_DIR}") + +# Run the Flutter tool portions of the build. This must not be removed. +add_dependencies(${BINARY_NAME} flutter_assemble) diff --git a/windows/runner/Runner.rc b/windows/runner/Runner.rc new file mode 100644 index 0000000..21810ec --- /dev/null +++ b/windows/runner/Runner.rc @@ -0,0 +1,121 @@ +// Microsoft Visual C++ generated resource script. +// +#pragma code_page(65001) +#include "resource.h" + +#define APSTUDIO_READONLY_SYMBOLS +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 2 resource. +// +#include "winres.h" + +///////////////////////////////////////////////////////////////////////////// +#undef APSTUDIO_READONLY_SYMBOLS + +///////////////////////////////////////////////////////////////////////////// +// English (United States) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US + +#ifdef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// TEXTINCLUDE +// + +1 TEXTINCLUDE +BEGIN + "resource.h\0" +END + +2 TEXTINCLUDE +BEGIN + "#include ""winres.h""\r\n" + "\0" +END + +3 TEXTINCLUDE +BEGIN + "\r\n" + "\0" +END + +#endif // APSTUDIO_INVOKED + + +///////////////////////////////////////////////////////////////////////////// +// +// Icon +// + +// Icon with lowest ID value placed first to ensure application icon +// remains consistent on all systems. +IDI_APP_ICON ICON "resources\\app_icon.ico" + + +///////////////////////////////////////////////////////////////////////////// +// +// Version +// + +#if defined(FLUTTER_VERSION_MAJOR) && defined(FLUTTER_VERSION_MINOR) && defined(FLUTTER_VERSION_PATCH) && defined(FLUTTER_VERSION_BUILD) +#define VERSION_AS_NUMBER FLUTTER_VERSION_MAJOR,FLUTTER_VERSION_MINOR,FLUTTER_VERSION_PATCH,FLUTTER_VERSION_BUILD +#else +#define VERSION_AS_NUMBER 1,0,0,0 +#endif + +#if defined(FLUTTER_VERSION) +#define VERSION_AS_STRING FLUTTER_VERSION +#else +#define VERSION_AS_STRING "1.0.0" +#endif + +VS_VERSION_INFO VERSIONINFO + FILEVERSION VERSION_AS_NUMBER + PRODUCTVERSION VERSION_AS_NUMBER + FILEFLAGSMASK VS_FFI_FILEFLAGSMASK +#ifdef _DEBUG + FILEFLAGS VS_FF_DEBUG +#else + FILEFLAGS 0x0L +#endif + FILEOS VOS__WINDOWS32 + FILETYPE VFT_APP + FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904e4" + BEGIN + VALUE "CompanyName", "com.example" "\0" + VALUE "FileDescription", "apk_full" "\0" + VALUE "FileVersion", VERSION_AS_STRING "\0" + VALUE "InternalName", "apk_full" "\0" + VALUE "LegalCopyright", "Copyright (C) 2026 com.example. All rights reserved." "\0" + VALUE "OriginalFilename", "apk_full.exe" "\0" + VALUE "ProductName", "apk_full" "\0" + VALUE "ProductVersion", VERSION_AS_STRING "\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x409, 1252 + END +END + +#endif // English (United States) resources +///////////////////////////////////////////////////////////////////////////// + + + +#ifndef APSTUDIO_INVOKED +///////////////////////////////////////////////////////////////////////////// +// +// Generated from the TEXTINCLUDE 3 resource. +// + + +///////////////////////////////////////////////////////////////////////////// +#endif // not APSTUDIO_INVOKED diff --git a/windows/runner/flutter_window.cpp b/windows/runner/flutter_window.cpp new file mode 100644 index 0000000..955ee30 --- /dev/null +++ b/windows/runner/flutter_window.cpp @@ -0,0 +1,71 @@ +#include "flutter_window.h" + +#include + +#include "flutter/generated_plugin_registrant.h" + +FlutterWindow::FlutterWindow(const flutter::DartProject& project) + : project_(project) {} + +FlutterWindow::~FlutterWindow() {} + +bool FlutterWindow::OnCreate() { + if (!Win32Window::OnCreate()) { + return false; + } + + RECT frame = GetClientArea(); + + // The size here must match the window dimensions to avoid unnecessary surface + // creation / destruction in the startup path. + flutter_controller_ = std::make_unique( + frame.right - frame.left, frame.bottom - frame.top, project_); + // Ensure that basic setup of the controller was successful. + if (!flutter_controller_->engine() || !flutter_controller_->view()) { + return false; + } + RegisterPlugins(flutter_controller_->engine()); + SetChildContent(flutter_controller_->view()->GetNativeWindow()); + + flutter_controller_->engine()->SetNextFrameCallback([&]() { + this->Show(); + }); + + // Flutter can complete the first frame before the "show window" callback is + // registered. The following call ensures a frame is pending to ensure the + // window is shown. It is a no-op if the first frame hasn't completed yet. + flutter_controller_->ForceRedraw(); + + return true; +} + +void FlutterWindow::OnDestroy() { + if (flutter_controller_) { + flutter_controller_ = nullptr; + } + + Win32Window::OnDestroy(); +} + +LRESULT +FlutterWindow::MessageHandler(HWND hwnd, UINT const message, + WPARAM const wparam, + LPARAM const lparam) noexcept { + // Give Flutter, including plugins, an opportunity to handle window messages. + if (flutter_controller_) { + std::optional result = + flutter_controller_->HandleTopLevelWindowProc(hwnd, message, wparam, + lparam); + if (result) { + return *result; + } + } + + switch (message) { + case WM_FONTCHANGE: + flutter_controller_->engine()->ReloadSystemFonts(); + break; + } + + return Win32Window::MessageHandler(hwnd, message, wparam, lparam); +} diff --git a/windows/runner/flutter_window.h b/windows/runner/flutter_window.h new file mode 100644 index 0000000..6da0652 --- /dev/null +++ b/windows/runner/flutter_window.h @@ -0,0 +1,33 @@ +#ifndef RUNNER_FLUTTER_WINDOW_H_ +#define RUNNER_FLUTTER_WINDOW_H_ + +#include +#include + +#include + +#include "win32_window.h" + +// A window that does nothing but host a Flutter view. +class FlutterWindow : public Win32Window { + public: + // Creates a new FlutterWindow hosting a Flutter view running |project|. + explicit FlutterWindow(const flutter::DartProject& project); + virtual ~FlutterWindow(); + + protected: + // Win32Window: + bool OnCreate() override; + void OnDestroy() override; + LRESULT MessageHandler(HWND window, UINT const message, WPARAM const wparam, + LPARAM const lparam) noexcept override; + + private: + // The project to run. + flutter::DartProject project_; + + // The Flutter instance hosted by this window. + std::unique_ptr flutter_controller_; +}; + +#endif // RUNNER_FLUTTER_WINDOW_H_ diff --git a/windows/runner/main.cpp b/windows/runner/main.cpp new file mode 100644 index 0000000..07f2cea --- /dev/null +++ b/windows/runner/main.cpp @@ -0,0 +1,43 @@ +#include +#include +#include + +#include "flutter_window.h" +#include "utils.h" + +int APIENTRY wWinMain(_In_ HINSTANCE instance, _In_opt_ HINSTANCE prev, + _In_ wchar_t *command_line, _In_ int show_command) { + // Attach to console when present (e.g., 'flutter run') or create a + // new console when running with a debugger. + if (!::AttachConsole(ATTACH_PARENT_PROCESS) && ::IsDebuggerPresent()) { + CreateAndAttachConsole(); + } + + // Initialize COM, so that it is available for use in the library and/or + // plugins. + ::CoInitializeEx(nullptr, COINIT_APARTMENTTHREADED); + + flutter::DartProject project(L"data"); + + std::vector command_line_arguments = + GetCommandLineArguments(); + + project.set_dart_entrypoint_arguments(std::move(command_line_arguments)); + + FlutterWindow window(project); + Win32Window::Point origin(10, 10); + Win32Window::Size size(1280, 720); + if (!window.Create(L"apk_full", origin, size)) { + return EXIT_FAILURE; + } + window.SetQuitOnClose(true); + + ::MSG msg; + while (::GetMessage(&msg, nullptr, 0, 0)) { + ::TranslateMessage(&msg); + ::DispatchMessage(&msg); + } + + ::CoUninitialize(); + return EXIT_SUCCESS; +} diff --git a/windows/runner/resource.h b/windows/runner/resource.h new file mode 100644 index 0000000..66a65d1 --- /dev/null +++ b/windows/runner/resource.h @@ -0,0 +1,16 @@ +//{{NO_DEPENDENCIES}} +// Microsoft Visual C++ generated include file. +// Used by Runner.rc +// +#define IDI_APP_ICON 101 + +// Next default values for new objects +// +#ifdef APSTUDIO_INVOKED +#ifndef APSTUDIO_READONLY_SYMBOLS +#define _APS_NEXT_RESOURCE_VALUE 102 +#define _APS_NEXT_COMMAND_VALUE 40001 +#define _APS_NEXT_CONTROL_VALUE 1001 +#define _APS_NEXT_SYMED_VALUE 101 +#endif +#endif diff --git a/windows/runner/resources/app_icon.ico b/windows/runner/resources/app_icon.ico new file mode 100644 index 0000000000000000000000000000000000000000..c04e20caf6370ebb9253ad831cc31de4a9c965f6 GIT binary patch literal 33772 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 literal 0 HcmV?d00001 diff --git a/windows/runner/runner.exe.manifest b/windows/runner/runner.exe.manifest new file mode 100644 index 0000000..153653e --- /dev/null +++ b/windows/runner/runner.exe.manifest @@ -0,0 +1,14 @@ + + + + + PerMonitorV2 + + + + + + + + + diff --git a/windows/runner/utils.cpp b/windows/runner/utils.cpp new file mode 100644 index 0000000..3a0b465 --- /dev/null +++ b/windows/runner/utils.cpp @@ -0,0 +1,65 @@ +#include "utils.h" + +#include +#include +#include +#include + +#include + +void CreateAndAttachConsole() { + if (::AllocConsole()) { + FILE *unused; + if (freopen_s(&unused, "CONOUT$", "w", stdout)) { + _dup2(_fileno(stdout), 1); + } + if (freopen_s(&unused, "CONOUT$", "w", stderr)) { + _dup2(_fileno(stdout), 2); + } + std::ios::sync_with_stdio(); + FlutterDesktopResyncOutputStreams(); + } +} + +std::vector GetCommandLineArguments() { + // Convert the UTF-16 command line arguments to UTF-8 for the Engine to use. + int argc; + wchar_t** argv = ::CommandLineToArgvW(::GetCommandLineW(), &argc); + if (argv == nullptr) { + return std::vector(); + } + + std::vector command_line_arguments; + + // Skip the first argument as it's the binary name. + for (int i = 1; i < argc; i++) { + command_line_arguments.push_back(Utf8FromUtf16(argv[i])); + } + + ::LocalFree(argv); + + return command_line_arguments; +} + +std::string Utf8FromUtf16(const wchar_t* utf16_string) { + if (utf16_string == nullptr) { + return std::string(); + } + unsigned int target_length = ::WideCharToMultiByte( + CP_UTF8, WC_ERR_INVALID_CHARS, utf16_string, + -1, nullptr, 0, nullptr, nullptr) + -1; // remove the trailing null character + int input_length = (int)wcslen(utf16_string); + std::string utf8_string; + if (target_length == 0 || target_length > utf8_string.max_size()) { + return utf8_string; + } + utf8_string.resize(target_length); + int converted_length = ::WideCharToMultiByte( + CP_UTF8, WC_ERR_INVALID_CHARS, utf16_string, + input_length, utf8_string.data(), target_length, nullptr, nullptr); + if (converted_length == 0) { + return std::string(); + } + return utf8_string; +} diff --git a/windows/runner/utils.h b/windows/runner/utils.h new file mode 100644 index 0000000..3879d54 --- /dev/null +++ b/windows/runner/utils.h @@ -0,0 +1,19 @@ +#ifndef RUNNER_UTILS_H_ +#define RUNNER_UTILS_H_ + +#include +#include + +// Creates a console for the process, and redirects stdout and stderr to +// it for both the runner and the Flutter library. +void CreateAndAttachConsole(); + +// Takes a null-terminated wchar_t* encoded in UTF-16 and returns a std::string +// encoded in UTF-8. Returns an empty std::string on failure. +std::string Utf8FromUtf16(const wchar_t* utf16_string); + +// Gets the command line arguments passed in as a std::vector, +// encoded in UTF-8. Returns an empty std::vector on failure. +std::vector GetCommandLineArguments(); + +#endif // RUNNER_UTILS_H_ diff --git a/windows/runner/win32_window.cpp b/windows/runner/win32_window.cpp new file mode 100644 index 0000000..60608d0 --- /dev/null +++ b/windows/runner/win32_window.cpp @@ -0,0 +1,288 @@ +#include "win32_window.h" + +#include +#include + +#include "resource.h" + +namespace { + +/// Window attribute that enables dark mode window decorations. +/// +/// Redefined in case the developer's machine has a Windows SDK older than +/// version 10.0.22000.0. +/// See: https://docs.microsoft.com/windows/win32/api/dwmapi/ne-dwmapi-dwmwindowattribute +#ifndef DWMWA_USE_IMMERSIVE_DARK_MODE +#define DWMWA_USE_IMMERSIVE_DARK_MODE 20 +#endif + +constexpr const wchar_t kWindowClassName[] = L"FLUTTER_RUNNER_WIN32_WINDOW"; + +/// Registry key for app theme preference. +/// +/// A value of 0 indicates apps should use dark mode. A non-zero or missing +/// value indicates apps should use light mode. +constexpr const wchar_t kGetPreferredBrightnessRegKey[] = + L"Software\\Microsoft\\Windows\\CurrentVersion\\Themes\\Personalize"; +constexpr const wchar_t kGetPreferredBrightnessRegValue[] = L"AppsUseLightTheme"; + +// The number of Win32Window objects that currently exist. +static int g_active_window_count = 0; + +using EnableNonClientDpiScaling = BOOL __stdcall(HWND hwnd); + +// Scale helper to convert logical scaler values to physical using passed in +// scale factor +int Scale(int source, double scale_factor) { + return static_cast(source * scale_factor); +} + +// Dynamically loads the |EnableNonClientDpiScaling| from the User32 module. +// This API is only needed for PerMonitor V1 awareness mode. +void EnableFullDpiSupportIfAvailable(HWND hwnd) { + HMODULE user32_module = LoadLibraryA("User32.dll"); + if (!user32_module) { + return; + } + auto enable_non_client_dpi_scaling = + reinterpret_cast( + GetProcAddress(user32_module, "EnableNonClientDpiScaling")); + if (enable_non_client_dpi_scaling != nullptr) { + enable_non_client_dpi_scaling(hwnd); + } + FreeLibrary(user32_module); +} + +} // namespace + +// Manages the Win32Window's window class registration. +class WindowClassRegistrar { + public: + ~WindowClassRegistrar() = default; + + // Returns the singleton registrar instance. + static WindowClassRegistrar* GetInstance() { + if (!instance_) { + instance_ = new WindowClassRegistrar(); + } + return instance_; + } + + // Returns the name of the window class, registering the class if it hasn't + // previously been registered. + const wchar_t* GetWindowClass(); + + // Unregisters the window class. Should only be called if there are no + // instances of the window. + void UnregisterWindowClass(); + + private: + WindowClassRegistrar() = default; + + static WindowClassRegistrar* instance_; + + bool class_registered_ = false; +}; + +WindowClassRegistrar* WindowClassRegistrar::instance_ = nullptr; + +const wchar_t* WindowClassRegistrar::GetWindowClass() { + if (!class_registered_) { + WNDCLASS window_class{}; + window_class.hCursor = LoadCursor(nullptr, IDC_ARROW); + window_class.lpszClassName = kWindowClassName; + window_class.style = CS_HREDRAW | CS_VREDRAW; + window_class.cbClsExtra = 0; + window_class.cbWndExtra = 0; + window_class.hInstance = GetModuleHandle(nullptr); + window_class.hIcon = + LoadIcon(window_class.hInstance, MAKEINTRESOURCE(IDI_APP_ICON)); + window_class.hbrBackground = 0; + window_class.lpszMenuName = nullptr; + window_class.lpfnWndProc = Win32Window::WndProc; + RegisterClass(&window_class); + class_registered_ = true; + } + return kWindowClassName; +} + +void WindowClassRegistrar::UnregisterWindowClass() { + UnregisterClass(kWindowClassName, nullptr); + class_registered_ = false; +} + +Win32Window::Win32Window() { + ++g_active_window_count; +} + +Win32Window::~Win32Window() { + --g_active_window_count; + Destroy(); +} + +bool Win32Window::Create(const std::wstring& title, + const Point& origin, + const Size& size) { + Destroy(); + + const wchar_t* window_class = + WindowClassRegistrar::GetInstance()->GetWindowClass(); + + const POINT target_point = {static_cast(origin.x), + static_cast(origin.y)}; + HMONITOR monitor = MonitorFromPoint(target_point, MONITOR_DEFAULTTONEAREST); + UINT dpi = FlutterDesktopGetDpiForMonitor(monitor); + double scale_factor = dpi / 96.0; + + HWND window = CreateWindow( + window_class, title.c_str(), WS_OVERLAPPEDWINDOW, + Scale(origin.x, scale_factor), Scale(origin.y, scale_factor), + Scale(size.width, scale_factor), Scale(size.height, scale_factor), + nullptr, nullptr, GetModuleHandle(nullptr), this); + + if (!window) { + return false; + } + + UpdateTheme(window); + + return OnCreate(); +} + +bool Win32Window::Show() { + return ShowWindow(window_handle_, SW_SHOWNORMAL); +} + +// static +LRESULT CALLBACK Win32Window::WndProc(HWND const window, + UINT const message, + WPARAM const wparam, + LPARAM const lparam) noexcept { + if (message == WM_NCCREATE) { + auto window_struct = reinterpret_cast(lparam); + SetWindowLongPtr(window, GWLP_USERDATA, + reinterpret_cast(window_struct->lpCreateParams)); + + auto that = static_cast(window_struct->lpCreateParams); + EnableFullDpiSupportIfAvailable(window); + that->window_handle_ = window; + } else if (Win32Window* that = GetThisFromHandle(window)) { + return that->MessageHandler(window, message, wparam, lparam); + } + + return DefWindowProc(window, message, wparam, lparam); +} + +LRESULT +Win32Window::MessageHandler(HWND hwnd, + UINT const message, + WPARAM const wparam, + LPARAM const lparam) noexcept { + switch (message) { + case WM_DESTROY: + window_handle_ = nullptr; + Destroy(); + if (quit_on_close_) { + PostQuitMessage(0); + } + return 0; + + case WM_DPICHANGED: { + auto newRectSize = reinterpret_cast(lparam); + LONG newWidth = newRectSize->right - newRectSize->left; + LONG newHeight = newRectSize->bottom - newRectSize->top; + + SetWindowPos(hwnd, nullptr, newRectSize->left, newRectSize->top, newWidth, + newHeight, SWP_NOZORDER | SWP_NOACTIVATE); + + return 0; + } + case WM_SIZE: { + RECT rect = GetClientArea(); + if (child_content_ != nullptr) { + // Size and position the child window. + MoveWindow(child_content_, rect.left, rect.top, rect.right - rect.left, + rect.bottom - rect.top, TRUE); + } + return 0; + } + + case WM_ACTIVATE: + if (child_content_ != nullptr) { + SetFocus(child_content_); + } + return 0; + + case WM_DWMCOLORIZATIONCOLORCHANGED: + UpdateTheme(hwnd); + return 0; + } + + return DefWindowProc(window_handle_, message, wparam, lparam); +} + +void Win32Window::Destroy() { + OnDestroy(); + + if (window_handle_) { + DestroyWindow(window_handle_); + window_handle_ = nullptr; + } + if (g_active_window_count == 0) { + WindowClassRegistrar::GetInstance()->UnregisterWindowClass(); + } +} + +Win32Window* Win32Window::GetThisFromHandle(HWND const window) noexcept { + return reinterpret_cast( + GetWindowLongPtr(window, GWLP_USERDATA)); +} + +void Win32Window::SetChildContent(HWND content) { + child_content_ = content; + SetParent(content, window_handle_); + RECT frame = GetClientArea(); + + MoveWindow(content, frame.left, frame.top, frame.right - frame.left, + frame.bottom - frame.top, true); + + SetFocus(child_content_); +} + +RECT Win32Window::GetClientArea() { + RECT frame; + GetClientRect(window_handle_, &frame); + return frame; +} + +HWND Win32Window::GetHandle() { + return window_handle_; +} + +void Win32Window::SetQuitOnClose(bool quit_on_close) { + quit_on_close_ = quit_on_close; +} + +bool Win32Window::OnCreate() { + // No-op; provided for subclasses. + return true; +} + +void Win32Window::OnDestroy() { + // No-op; provided for subclasses. +} + +void Win32Window::UpdateTheme(HWND const window) { + DWORD light_mode; + DWORD light_mode_size = sizeof(light_mode); + LSTATUS result = RegGetValue(HKEY_CURRENT_USER, kGetPreferredBrightnessRegKey, + kGetPreferredBrightnessRegValue, + RRF_RT_REG_DWORD, nullptr, &light_mode, + &light_mode_size); + + if (result == ERROR_SUCCESS) { + BOOL enable_dark_mode = light_mode == 0; + DwmSetWindowAttribute(window, DWMWA_USE_IMMERSIVE_DARK_MODE, + &enable_dark_mode, sizeof(enable_dark_mode)); + } +} diff --git a/windows/runner/win32_window.h b/windows/runner/win32_window.h new file mode 100644 index 0000000..e901dde --- /dev/null +++ b/windows/runner/win32_window.h @@ -0,0 +1,102 @@ +#ifndef RUNNER_WIN32_WINDOW_H_ +#define RUNNER_WIN32_WINDOW_H_ + +#include + +#include +#include +#include + +// A class abstraction for a high DPI-aware Win32 Window. Intended to be +// inherited from by classes that wish to specialize with custom +// rendering and input handling +class Win32Window { + public: + struct Point { + unsigned int x; + unsigned int y; + Point(unsigned int x, unsigned int y) : x(x), y(y) {} + }; + + struct Size { + unsigned int width; + unsigned int height; + Size(unsigned int width, unsigned int height) + : width(width), height(height) {} + }; + + Win32Window(); + virtual ~Win32Window(); + + // Creates a win32 window with |title| that is positioned and sized using + // |origin| and |size|. New windows are created on the default monitor. Window + // sizes are specified to the OS in physical pixels, hence to ensure a + // consistent size this function will scale the inputted width and height as + // as appropriate for the default monitor. The window is invisible until + // |Show| is called. Returns true if the window was created successfully. + bool Create(const std::wstring& title, const Point& origin, const Size& size); + + // Show the current window. Returns true if the window was successfully shown. + bool Show(); + + // Release OS resources associated with window. + void Destroy(); + + // Inserts |content| into the window tree. + void SetChildContent(HWND content); + + // Returns the backing Window handle to enable clients to set icon and other + // window properties. Returns nullptr if the window has been destroyed. + HWND GetHandle(); + + // If true, closing this window will quit the application. + void SetQuitOnClose(bool quit_on_close); + + // Return a RECT representing the bounds of the current client area. + RECT GetClientArea(); + + protected: + // Processes and route salient window messages for mouse handling, + // size change and DPI. Delegates handling of these to member overloads that + // inheriting classes can handle. + virtual LRESULT MessageHandler(HWND window, + UINT const message, + WPARAM const wparam, + LPARAM const lparam) noexcept; + + // Called when CreateAndShow is called, allowing subclass window-related + // setup. Subclasses should return false if setup fails. + virtual bool OnCreate(); + + // Called when Destroy is called. + virtual void OnDestroy(); + + private: + friend class WindowClassRegistrar; + + // OS callback called by message pump. Handles the WM_NCCREATE message which + // is passed when the non-client area is being created and enables automatic + // non-client DPI scaling so that the non-client area automatically + // responds to changes in DPI. All other messages are handled by + // MessageHandler. + static LRESULT CALLBACK WndProc(HWND const window, + UINT const message, + WPARAM const wparam, + LPARAM const lparam) noexcept; + + // Retrieves a class instance pointer for |window| + static Win32Window* GetThisFromHandle(HWND const window) noexcept; + + // Update the window frame's theme to match the system theme. + static void UpdateTheme(HWND const window); + + bool quit_on_close_ = false; + + // window handle for top level window. + HWND window_handle_ = nullptr; + + // window handle for hosted content. + HWND child_content_ = nullptr; +}; + +#endif // RUNNER_WIN32_WINDOW_H_

    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 literal 0 HcmV?d00001 diff --git a/lib/assets/icons/a_add-p.png b/lib/assets/icons/a_add-p.png new file mode 100644 index 0000000000000000000000000000000000000000..9feb5756383e7b569d645366bcd6160abd5b128c GIT binary patch literal 12100 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 AJOBUy literal 0 HcmV?d00001 diff --git a/lib/assets/icons/a_bell.png b/lib/assets/icons/a_bell.png new file mode 100644 index 0000000000000000000000000000000000000000..cffc12c0001c4ffdcac23337020136bb6ac6133d GIT binary patch literal 11368 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 RE%Dp08XKI_FViDO{2zl$*$n^y literal 0 HcmV?d00001 diff --git a/lib/assets/icons/a_building.png b/lib/assets/icons/a_building.png new file mode 100644 index 0000000000000000000000000000000000000000..feeaf6754f61e7c7d4b5cefab3d371f25b171d82 GIT binary patch literal 10918 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 Ty%nEdxmDCa7v5{swhjI-&c&}* literal 0 HcmV?d00001 diff --git a/lib/assets/icons/a_hat.png b/lib/assets/icons/a_hat.png new file mode 100644 index 0000000000000000000000000000000000000000..7ed49b66ae9e724948b73b87761826496c553f6d GIT binary patch literal 10085 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 literal 0 HcmV?d00001 diff --git a/lib/assets/icons/a_note.png b/lib/assets/icons/a_note.png new file mode 100644 index 0000000000000000000000000000000000000000..f8ba3fc084b68e9ed0e348947ce051f5ccba2537 GIT binary patch literal 9812 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 literal 0 HcmV?d00001 diff --git a/lib/assets/icons/h_hat.png b/lib/assets/icons/h_hat.png new file mode 100644 index 0000000000000000000000000000000000000000..10b46b3eeac9b381b6649bd36b30c4797cc63af3 GIT binary patch literal 9956 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 literal 0 HcmV?d00001 diff --git a/lib/assets/icons/menu.png b/lib/assets/icons/menu.png new file mode 100644 index 0000000000000000000000000000000000000000..2da284b4f140033dc020cc669ed5a8a21b5c12ab GIT binary patch literal 7065 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 literal 0 HcmV?d00001 diff --git a/lib/assets/icons/w_bell.png b/lib/assets/icons/w_bell.png new file mode 100644 index 0000000000000000000000000000000000000000..f61bd7068a34010297131dfe1bee3ff6ee3f0415 GIT binary patch literal 8980 zcmbt)cT`i$*XW!>LI8mXUIdh81L;jgdQbtCD!mf~MUWDt3z&m=<=Q|lT|lsaNJqMq z1icD^3W5|V60aaAAV?=9Iq&%WzHhC!-XHJ%@y=RV=ggixGkedTy=Rx)u(mW6;M>Iq z01!BJ@`MclF!l)p9&YTl67`XZy?7}nokIcGw&V8?0{3#oFd!6aV|ol!yqEZnHE_O0 z7DfP6CvRhU;jy-0n6XosZSeW9NUuxhfQg@Ppx6EC3~vDTCZ9TCWETa^kI$yN9bVI7 zj4v>$(tnY=gvh2OZCD1r$3qt~*Zr>#HK9g{czvOb?a+N5X1beyf7^PYO5fmeS$NUg zs;t9dL)y%|a%K77^#0$Uzf!^Vu#k{n#+$`MCGMVXO`Pzlo(~+3h0+3RlR9;IpknGr zzLlk=2VPAA0y+-doA#TH(kTBDn$$pGNx5CWdYL_7;Q0}4yOtmdg`EP3U~R+Z);v>z zBfb(NJ{eqkJwbGS*?DVun?2W20|*GtaV4;If;=8dy9>Z(wbs^fyDX9*49Gnd{2LRm z4TIMo(LOD_EOJAYhf=K%Agwz9nb=i8Q<3)USew5hIrdt%UgYW>K4|Vf0J^=Omu7c! zhUWWsbAptAS;<5_)B%xlfUaC;gx0!ETx(z*A5EKGA9f&QfFN^#>{gqJ^xN?QjAa2Z z)cb7(-LY%qvg2+Zs;Uv=6v*EX=%#LdlUwrq%ty{=UB#oy6o9lWpo^6MLsJ<_e(+EJ zE7^Mc_+{{UJCOOz&kFBdug@P69+ki9X^$rX@}=^(RF{f{gzVhJ?~tq9x1jsrK+##o^u7$NwTztN0p{)Wp2Ny}c+_|yCWNH%v*tRB z+zc=5-2Vs_y?au8!*PoFi1o`)jMdZ}-sF+7@G*F`S>*0td_dl*qbEN1RfIJ3L`Xvq zLcXN8qqVUt3GOR`-n@6N?w0{-Wg3e^3DH03G{K`SqEk#uDtOe#MW^^T(cJ3V7ox>j z+V^*nJnI+s@|)t32em&r6J2$DGabUC18@#vR1DOvtqpp1v+J6vBE6aRP4@>EE?hkM z=g+60S3j7|f1Y;$a2LR&hL%;$V*6Tu5~;%u%-GB>R_D&$M=0 z&^KFMmLuft`e!;Eb{dZa)qZ=*9Ha?$PV3e0=23#EVc@MF z0t5rAP#MA=P~~`JJ>E51c$Di;5B%H>K>s|mlBgSfredLNJJ}Nl)*cFQ?y(s`8CB+Y z^@YH&c7oyDN8w{2Mg~;ba#M$I9k>P}%mLY#pHt;%#skgW1$0X>))$$K?eMS=gy?E+ zyfjkYgRA0#LFC!R#79oYco<1I5cG~gG_AX~oi51(#!ioZ`7NI>Ss9n~tGs0zzNpCr zl?iY@v%YLNRO?#~L#|_4d_c=V>If}8xxc`anqJx_pfbNakWOo>jh)PQk7M+dMhrmT zCcfg0gtJenxsIP;!F}nY!%lo2j%Ypi_U>fp7R@y|Bff?&{3&T zO-7>BqG93TlJai*mp%eqrDW+J>(lX5@v%vOF6TT;(+cKhFBN?L=bB46wJkMZwDI(EvUM-(<>LF(Xrj1p49nW z)iI{*y38H%MO2Y%13Lsn1>(Q?T^&8`fzhM1NA)EISBNy?&wp!U2~=WKBA~|{VvnDa z+@Ri>&&h0HOJ11h=*N`To??3s-jsomhT*U1AU}&>-Io7k>XD^I`PCe!W41C2l$~H< ziPDY$ir+)&-k`Bs78Vz6iu)67(E6bxob9-R18 zqjs3Gg9$}poE=`~XxR|11aIYCm>93=Rf>}QZ}=>`vQTAu>#3feCvM!&s36F3K8EGD zMqnJ)2W}PX>%FW-=HSZl=nEAB9Ck@?-PGmnOfCc8@r+FkZ4u;6T|-f3d&j|bVrMPA zPH+2#X<1-ip?7eWLF4;e_s?26bq9ZGpt{>`SI72dkJ_8OsTz2-Y6qq#exW3oP2}f% zy-0hhGf}?Gj$0p9;FB$c)#M9N;`7|u$c)R!jtDVjN?}=S%G2Lb{koUv#{@MkMZ7_0 z334hM&a#f#;eyY+5-7~r^rMBj@$D-QS#FQ1-cy$Idy>*GanM&n}2V5^7xO)eTN7YqcvA~ zv*0XJ(}P)-hcdhJtVj5w;kJ$2_1f>>2EW(^%RPYA5~W`bF^UWHe2MXHMoOT|C zM3Bk3jrGgEv}I(s|HZG=B<-iLISDUAtI5i2&v#Xv$n!iKQ@eOuX?BIV;lMt zDUGRb6ruI9tT$$OnTDFIe(was=Ds$wnl)T8yuS#(`|+P(bQfp%)(uAj1}KE@4mrQ= zVDx;hT^OuXm$pY9+X3NwEA!~7XcASl%6E!WqU(QUcjy`X$&+}QCpB5!!pjjCL!(xk z*YO zR$qu$y8Vdzqj(W~ew0`J03?%GxsTRy8eOS~Gxg;u$-v3V0REuAztLQnhD0%v>#oKd zV?P))!Rti?G9~q`w$5MI9@MtwK0l*|q?}h%eGV@l25OnR7}pT7+Ii;t~e0Ym!>Zw&a>?I%f}w-2`g)%a&2B zzcQ{vE5-I(`YCx{@b%5}WruIv@{I}?3uoK>kZK;l<)<5TuBF|>>DWI?!V7{<`4-Mw zsW#Ybf7h|{*&h!@4dtiw>xf+kY8jP#^IzRZ&1YKND)&k!atWLOVkdH3T}=&gkT{;cTIB}^HA!y0}OYhre8 z`ouaEPAVZrY0-7JIy>4>^YV9@sAN-%!uo2a(YhVr?oC49eamjo|5SILZZWxJ+~@0{ z1JlI@Q>+HL4>mr%9Rrso{KSORnN@@b!(CCTGhAW_P`e(W)xT|uI_$sx!ZYQTJOc4x zC=r_H=3=imcRJvm@Z&pxPG)Vk$)@z@jQRV;caYM8i!cdwNV%PgGW5fbmj(E8l_ga0 z0=6wDadPAmJ)rsQ53ZS9&`S%@`XGxC-|S3sG#bJo9JcPIPq@WBIi0U;=7%(#`2r`J3^WMyW(kvSxz+9{BJkBK( zYtn40A;}-6I+Fo<8_aD1x{aZuVc&%h67odahk)rP=RMQOe)HI$JowE(sMA%!~uj; ze6KnZ28j$WZY^)V-@ZMw?xvnby5^Vd8h@Ve2D%3TsItnoJZxbM0K&@)fZ84i0NMQj z(68YD$hwO~GdqL}vo)z!VEMmILE$k2 zTGhC@Y|vX71F0DZyvzHanHCkm47Sac=I1ma5On^Ao)Xtw8n&hZFZgd9Qlg5AibG1b zFx^5a<>U)r7d~tS^OInvU*XaR98YLJp?432wCZYW3jqdqmwwF&6_}KWLkyan5pxHl zNbKtzA20(AzZ~gOm;hYxB&m{nlEPqED_EVPOEs1H4|+MAq)Y7L2QApuo@n$ z9|kc8K-lY32q{%TPgkhQ5GGL_Qf~2qvG>AF#c-Gjn6awQIRTK-HxUbC#OHg#im%9x z{dxoZf-i0$b2*?l-+uDTy!21me*Id$|8z$yL1V^6cWO11gDs7~OtL$OH_NW?8|3O0 zhYAd{gM_C6ecVTfNFtJaF}?74eoEpz99eThs`S>aZF>s#!6ehJcPZs3ig>sGlpWRI z55i7>8MFGFuf`y<`h*G-=wMVB<3XeU4L1iPEgaHTwm0(t((JT1)4o>#Dp2(_ma4?g zpdDZcj_CVn%B&s3#urH;2N3tp+I*9u%-k=S;4XA~Ypen%n5Q}AY4)HEJ&6afos3n? zKy%dzmC}N3Fv;-01gfHxa;p%@+YXr3Np5oxXvS!ONpjdx_qmu<4TFe%u2~*<_oKYe zDIp<|2@ zIC{e=2dv4vb`BCKCt&)o*xj2-&|JUlk~6_{50J2`UqyETub#h;z~^Ij3LXbXui7lR z7`HX43Lq4*?-95FUr7oXriYa6%eMfDi%Lsxjvg4%hZsjSu6)vhBwola34tVf2;J1W z%YD_UC*XjpY0L{~zy7X91Kpp|*CjIe=<(?}4YK0_380CR2pyIjB36`OR zL!SZCb%+jOD1ADSnpc`M-y6T+vH3~BuHKhIKu~U$HJA#L_Iz!1Bv4xcVK0!d?CNun zHx7c2Uf03j4Pm}JM33hIgx)odr>Q{~O4)y73*-t=WMH~iuCXNsaHE=78scN*fP~55 zR~3xce%VV*b-drr&G*2b3Y%`Z%onFlRhAexo#sK}!U0|>TY#jh|L(Y>cT}y^DCWBK*`hobE{b24?%vKL`YJg3|)B>uh z;I7hSU}k75bZ7LrxM6znkrZ1=mNM^HYAShpWEAc1{KWQ*`wnDgOk>Qhh-+KzF7LS) zb6>mp30x&zw?ey_%L&_e%u{%Q&*>?Q#l}_M^YiGTB@L7q*VUpiZQ2T&<-nZBw+3{C zO_d@g`ycIb$+N`|b3x?97B*MM-?4{Dg?v@sFg+;G_;Ul=_06!iVY$;xgxpaE52viH zp&CmiG3dm$f{RnmE0L3K0@ecx9SKWHE?0GJq2aum&cGdX9u3DI{#79+^rT`iN5=)D z16)r~BXoqbX|=B*v3?&-R|FaFyi(Juw((MIgpPTGc2EQfG(P&f-fCauSI^apVBecI z_egzt>*EZ`Y`8Ijx1QA+X4Nlnd*9|DJu^Tk)>HvRhVI-XprHwdw+jVse#)Hp=V{p| zg1Fv${Gq6iMc}$OBVM>?F$0IVUYM$zPC@5sM^Jqp^2sS@doH@pCD*fC56>zvuA4(+ zmdd*2dkx=F)#~ToAp;8L__3RObO8%Hhni(+%xyhSH!FgJPU0EdE<Q04@icHlvzrn8U3$NIyL!7L z+wT5Ajoy<5b39|0%XeA?yT`_3X^nWp{A077w))~dY{Zk#M{D>o$8k^gsrQ6NyZiy_ z3}HhLVrX_{&P-={znLiPfP4=1x5gPN39ytP#*PuM9h#Cyf4vF6uRiAEf52~lgWp=lqt?)0LkU#n&7Rs%J@%hDUdK`^!b-~c zFBDaR+8jo5R_NmT8Zp&>oued&_c(Wsq#2H9bX}s^zxBNl$maoP_4&x*+b-UClONyj z07gVEfkeKta|}lRUyl+AJK>Lc`zs$!l?1LD3L5{rUPEg>Q%E zr65}e&?U-g$ckL7R7!w6F4`l~XFX<*$eQ~;2fc&L{MRl1Unio$p&hE*TEcX`ni$zy zK;|tUdh9dU(1M@Ehj0b*i1x3nfJX&>3V<6OlG@FRCuT=EGwgi>%d%elAp#Q6i@Q+7 zs&D(o>p#+w6%l0VPmVkm8An2kyu09uqZhqR{hxA?MwdVFT8|z^`-5Y6V?8eN%x{Szv6K`BU5d|^RoMWK19-=%YEEDUiY`1)6C)kHwcr;9=C*Q`%r~qmCQmhR(xweaq+&rc=2p@7BAvcv%xczilxL^@%L+e`yLfA z)w$JA;OV32?(iqH8Zcw+DyU^A9&6Pm;pMk>Py`8I{D(nYDbs&+A9p-JNDs@Nthu8Z zRsGUxK#tIMEjQ!nG9#L$ zQWgfwx4Lz7w2pxd*>C3-3D-Z~ch_8S>|+lPgo6vAr)u8sbN)%-FE3BbU(H(D3gn-4 zSinel`@LG96VKmOGuINUm!uu8|EDro>2RUSq_3IhsN=%i+kfhVSdq}p0S3|MF3f|_kBuBk>`dVu-L+Hf2F3}bFnaK;@f|XsN?Cu%62B_e$6-zR-_}!I3 zCf9e1#xuRG9*&`_dU&<&OmE%rZ`P58jRRZt9r-cnD~U98dv3c$V;)>9o)0E~_6 z-&r*OVm{J92{6Qg6|c@#|Lfa;Juj4_CIaZc242&a#d;~WAk!QVC_ZLQQb|YFseZ%2 zI(<9Euzn9#@+yyD6JvbXcQKq1BIgXCd+AF>FIHZ!0B#EDh-X(vG6c39Gg<6E63m1^ zi7k(bPf{oDyKzVaDJkbKPDi#df4$}(x+E(7 zw*s&`hLwcYnD1zTCo)ZnCDU3BevlC$tC%%iDfT8c6}f8|jQ>IJNP8OJzjUUu zk_)-*{}e6bXXcPVl;f;Wv6*2TZz(r0S$AxDKYQ3LbRwJ=eqF-^C=MYbp939{)UE8#8YU2S(58B3uAoSIM;_UmlW?3*t$~m&J_Zo!6 zx&ELYoaVw}?EkNaem@siWh*Kw>Y0{o-}JMghdG4$Q@5~cqJ4$v>hk2I&yLikP?#Kb zPR%ua_Q@rE<)H~tt>s#FP3g%BmTpD&YW~_ntgV&rrZ&{ubfiGPbvSQ&O6QKx4_bc` z)zV6nlM80XUPUmd(ba~kn*0>e(Rg&~6{qFxVkle?DmrR|_TPFL9j#7&v&CchWWt1{ z4XGg-^jK=h@+RATQ=U7dI`4_$>z?mZfBFN^99A9Zrdyx?D0CJ5`sx>34lpWI>ZhhW zSRvK!21Dsg^!vY62hg7H21-zG^(}+X7baE@>4a7b$hK}O14fYw^WYZMTr0RyH17Ii zvm!3g*mi4vsqV96tNP-@g}Y(jx4>s_MRHWfs|amp<(kTe!QrK2iE?sss{itg^n5?J zQpw4cO3UvTrtd~ok;pt_G=XZL10`#V^t!9QF#VXHdIey$2;k@zFqD#Pr%|CREETIz zz|M70Phy6;5Eie?gT{ya!gY^ZZ&pjx{-fXf$D8IOQ@$%|$dDZdZTS@wTEDW*+kdb&If|MJ*p8=8XlVyB?Es>r+6<`T5@d%1#fDd-M8bQopq|^!MhnSo0iO5e%#0fxY+)Cn-?V{fJr9ktyct^WEHaCQX&y_L-vRS=lWL zhPPC?ewR#J6%YKJ%eXYKeX)$ac}Xf(WHg>rI&Ar8*xCF#hdU0G|H=3^MJYZ@(t6Y{~@=|M?IpL>?6X_|P!*b%D$+2w$~^kfAQb zI`hxKt8@3oSzcxUq3Q`f(I`#ETukJF3 zVu7LAj-Il#CDVQ|P%|)emJb9Kn-e}7ed{QY`&}7fj9`hTKZW7<-5u*j#4D-^s2|YU zi`CqDA$Kg)QsxB|!ZG?8an={XL(mJ!TBx(#DA9K@Q5PdBsf)B?>m*4znJmDeL>2+E zX;&ECd2_?6$|_lDHDP=^ASa&Y*{F|Y?Tp|bt9$-(BJ$kg1g>fa4Cb78q0-@?-7S0( zUc50|FW-NM5Xp;N0|~tnjoVgzF9cJExkSM5BO8IEcYYh|#v3k6)Q|O^+-oF&=wGyj zeZ6SN>}7`v+hBH;C$@CY57J;pIeYu)W`IFi+bU{(#o;1W!_5a+#NYLa*u5IFSfMjS zwR$5h*zpIDi1&-vO56H!5|a^6h55FRH|aH5R_w?t#bd;dM=+2)C=wsOdGroTBwlAR z|5Gm^$qFDzZrQswbe5DP%ihJ+EqrO=XQ{$7R{@Yzz{++9+!{m-?gWa7orxQz3S%bB z9=HpEg3xk>swDLnh>Oag;I4V8@W)c_tEwaUj`P8l2FuB+)si!wb%vgt)ols- f|8M*Lokf*GuXfZ|Ui;b?)69aHu@MG~p=NkOr2|0Ky6aYTq&3^>^nI!>1B-Gy06qJ6HnSc$f zpUDvu0LpLivAj89TOiEbHOwLSR9K|!usX# z5~t!;y;J*hCoZp)PEO)rfB&z4u0`%h*tb^+TWj8XJGBf(u*x?I*5;@6G#A)y%o^F@ zY`NgUx~2V;ARKr~%IhtA=PkQ_0(CGNNpAX2Zy!B(t5?& zPBJ~3%ifIHOPxC@-|&F+w_C^X-T8nYiR`Sv_ZI}$wV(2ls<9ybf%9UIukr7z;u~dO z@6A8N#wt+03IdXa+en!?>TRu`Mm}BNn-JSthXElLs;nuUIc%LD39=fK@nk>Ntxm)SA_rrh_DY!Z`v>&Q(m-+ zUjawYg(*;)2!ASIk@RZ-?67Al>t2%wkAwgT%Zt9;0x2q3P>aN&r{nQhh6S{_;>dcN zwi~oDapdYv`w+CTapc{bwmlXwA*X!P&V)FnY4|1#Uz-Aep9*VmGn;lC!1I!~AHZSe zZUdq}FWC*6ipn76k0x8#J<%Qm3RPIq&G;+eEe_=7%!OKQ5){CvJ#o|k7$GMV13c}S zl5Zj7z7QC{(bR4R`x{RJL~)TAfs;5BiVY5^|Jl@j8xG-V2nHnP&glxnAnJDk{h^rf^cUVepFFxi8mY)~5~ulCwyR;T}k7gOn>xwn8vU z+ciM9Q)MY`!nb*VOkC5}ZO}7B5d*mM=3d3YTnw}k%GIOH5&KOWk5H^sSs@zG)!G`6 zgm?)_Ct!}(aUki?NP-p2QCkP0*r~8W@Q{*Z1{fA1F$Ona0zn4>!%ZY6Jr3HXR)BE` z+IgEc#O+05T(3b}6XKa7?9v9Uv00snz=mL-u9iWa82@b*XJNGH1VE1yVFz_$(1%HB zc@k%}eiABsVjNm#Uw(!;&xv9H)s9(j$A?zvWZ%1kuGhvd9CuB9Wrf4+lQ6|IWDv?N z=sr+8M^(m!`NFgfl2!ULm@`N%@Qih6QtxJ`w*3GbjuU^B}VPUqlEPK7z=(|006G@Bu{T z|BK*(7)-|^@;^wTGElz@zjZVJ=}YV|aFu}hOz{4@cQH%girYl~%Q*nj_dyCM0iK~&Loy9>+ukYx@Z z`QFc0Ul==(96Ofy;gRn-*x2U&yP&C@|3S^m;3*^c zoJhe45LL=N_M2?1`Qz{RjE=SM&M*SX518$@cg57@?0AX`Z|$k{q}-LI z+-sW}K&MHX9`j%J$i{v>)X({*4{=QxC5V?YtxPOQ)&3g2W~RrCfHQj=bytl27s2$@ zyOG#jJ}{j&;~ApPOUP2dwYA(oyN)@Tg_$G%KK5xcfiGPu{bpE|f)8-zPFOY+iDBl4 znlJ)GP7};^(Cg7LTLh->H<3N^K6r>5-q(!wy!`Ff3xe$Nvav#woQC7*weUj;)yXGy zxB$&DtnkCmo|VXb?9SxyEDd(rM*XCBvF)9n&!CJ-F8pgls(wa!uur!MIE=-j1)oGyBDasbA3}8Uuw+F zGrVlyuJ-z%F}o?TvpzIRVCDu-fO?nB0q;# z9FneufK&OR8{yGvtiz!-HHCuAT2k53~fFGDs`C`pF*)5H8R5NOTlXE#b+BWsv^SGJJl8>;Sl2qO#xjlN+3P9>LS~v+-snQ_oI7rOnJ^3B>9`K;+@?f zH|qA@Qu|N-nY80eWmjjv-km?BPubCHp)-LYy8l(qpYEDDRp!D9e?W~uzm=HkQ(j%l zJolyO$vS8dNI$CTG1cp}R1np|{9Uhnmg_=1w?mW|k1s!1$_}W(>Rj($DEqll%*b~h zu|e{y5_3IA?jkvZ0_i&QyGtUx&^x5F%F}*)K2f)qGDI_KFx{M_-vS$H)hylN9zs>Z zlHWjfD)8w|-EC%nhJ!eTF&3zOP<^ySj2znarI;|LFUGC&M{5SvHDk@2_${u?6ApAw zmFdYw^r>^XmrN~hZDY?@s{OV)}H0(D{2Z{ep>GR9;IZB18CRZSJ+#aT+QTr&gEN? z839HV`_2AY@;!LiaTjqd;CRBr2rzE*%XTg&2Qs!VWwA3y(Y**GYk{k9E8p7QqJZjusAAQbpO-CW5-3 zhs!)i%kAke%GS^dNMyhX)Mr9?5hb@uF0Zw+}2V7}uzTWPiNx zFx52WnKZU2skQQMm=@86UdGUO-oN;TjbC@?nv&UYN?fMRPw=l@ZKC0ny*q}5;OZyW z=4@23Kk!S*$_aAplC8&w^<}gxbYVgi)vLXWVqHG-E`Mq{6Lq1hWt!RG`r~6#&5ey` zcY7in1Zdoc!)c}5rz2OieM(OE2$qDx$En}XqAKxnM_Fr4=|ZptfVca>wIe$Xzqp~! zceREeEx0v0s@!|zsS@}q)J@5c7idNZQA-V7OV_0SY_ z;a8*Ah)3rWCpgPgi;CwDB~&W7i~z#f`Y%7^KNKE9Y- zC6IFeIoc4096SQ#ORAZ{vL~ymB~se3K<5jlHisSxh=26?leOmCFS3U1@^4qNO^~MAAz;z_$CLrn+kGp8FZGE145z5(1``!|=pE0Ta)UjiWXGBwe|HW%B^}N5$Ec3(#>5WxYc|pjFNn#HqzM49x z#z>%;VZpQK!j~mA>&nRf(*jom7tOgTju4zE;RtD4We&~oK9$ujga_`9k(k-=8T54M zd84B3GJ>YXxjUj1@qThvovSSpFBv^YrCRk9%DjII3dnjrxYyccekVe* z__aT*&Ur3I`i6&n`|CId(N=-vG^90U@W=9V7i8GEplB#{<$b6L={S}mY2d=NZQ`9( z-3VU%W+&6GwD!5bG(NO~$AsjJr9l02Yt(bm_i~aZ(I^&`yF8&G^RY__8+!~7l8GaP zqHH;@s7WiCq2lpd0(9>{Q@nv1vMI8Tjn6B3i64_y$5yV)sjXG;C3_2Bq1)jAcg|e< zJI%Glrwy%gEwB65nTl(<93dWX6B0NC(o>oUhxbwcqE@c-D;jFCyEN0U9>HO_6@WEy zgjyCsjcm_+k!3B2=@WTnwK(-+A2{U)!{%Zsf~u^ps(xw`^s75adIT^$w#nmKbTWgoX)1ziP1N2m^7Vl!oB6fp3IJYm&~y+bFr_PC8ojHhfQ!DX15{X9 z4>+@W@F%OU|79ZY1dcMF)AiP34DjOpsl}**{5kwVK_C*-n16(09P`)Mp6?Au6!|co z+#rs6xF`_`N6wdT#d=j-S2W3a5105)rzFmT(`MO z6i0|7-}A$e&ml|g;eih;blJp`gRUVQ@cnQQn%99McC2z zy6GzYAqGN7rzTx<{K$)0RFM>&>3SOPY6cVDd$*gDsXKnNo8Zv@dOyzC?GQfwGEgDB zNq8_9O5BO8+aC39iq4)kvzG+m*~{b=eUB-E&l zSrvNE{yo5-4wvI;w%ejt>N$M|uJ6R|IG=mMtSilaidQb-lKaqsA+ERRBYbwehxv>9Nu@*8J-B-(Lfh~m zcfqGVb|&T9s)jmm)+0~J70f-qFaD!1WsO1Q#jUFM&HWQG0S~@%hL$I8JS0f#mpg8~ zRj$OyL2?3bUJ!ap3XILbYj3T8I!fK&xd)-OBC_hBk{^HSxwMc+Dqfqf{wQnW{TKUP zTdT!CnqY{7L;A}`tmp02ARJ;@#n((_cS^0g6ldHqa^%iAzFLMc+<}#8))XPHRo&nS zf3Lh11oj_DWRE-VG9#qT>!tTi>BKm*COkYvYLl7x0&Lc71 z&g*wx|12!PDDi{o>UbxjP~Z-!tq&xJsd}pl8BW#%`=~HMCsY}ETUl~CK%XQ&(5bns zffgXE#_0=!O%4&j2J?p+XK^X_<3tWGY|oO;a`SK>@3SHYaOcP)TOr_fV()l7m$rWR z12@UcUV_a9aS!MFV`UoXaNEkO){-kOyJHItfie>9c%v6zhoptqz4Lm%ZGXl|4f;4j z?;=E7=`-ph%4s#^X)yw`Y1UytP}`iFBukI;*Uw2ZDyKORqoPpV$ArX7T{M2i_A2JB zARK?H>Ic+)HGe(`6~)A+o##uP&P`+xL%Yi=oq7I*ZrV_H^Z(FL;sW zIsKE+hiYzY9F|<;b`~bbLni}0kQtI=j-M>!99b>k@l}Iy&ip8y(ges=hUK&gIq( zW1lm#d39aWRzD(Bs;&>L+;k4Gs95r2aMvjk+`t2nQ-~G9pO$_FkxK6Qf3{Ph?u+`-nAJAD+Zg5gO-f*Sc;Y^ z3&<7zY57C5$mm8F6`d* zFXyJZOIDDuBYu=HWeKK~#oGmm{J+?ORz4Sp&d~A>J*~9X^Tu%)k$*jJK=G9U*Kk<$&G5OuI zX8v(FU$t+;@0aC!IklrOpv|@ZGZ|0io$)B?f9w@HEnv*&4Nk#4B-PBrJOyr@7&1o# z{3Ay%ZsbI7>py?N?g|}Ge^Lt zJ%nVqAq}X4F=0S5%RAZ?@o#wy>#G#O%2jsX0$IZPoA-uf4YwkquL$V;RdN1R%*^8K z;~SE+aszyj4WLM$j(Zc0dY7D_8H9+^t9U@jksGL8i7AdE4O5pAL65n{;X#iQpo^-q zE1vNxfKqcn*>#lVcSdv_&zONlas-s-2Tj-W{(VYxy@#t7z9`Tv3^W^armed5tK&3n z0p;*%_l~~5{Md5UCF!xVux@YE_v*CGmAnh1i0RyAsHhIOFZu;tyvTm0f^USkFxZGE zk$vy9Q_D}#cnH8^oJ&gPdFDRXqV;YLI#i<}vE6GcTh_isoxCGo3+G+jh^GXV>kJ3^ z7zPFdvK}oB->)Ok4L2+Cb302=wsE8jh=!xp?TaTA=jazdy)6tMMM}Pgn1kZl5>XuN zhl9Oyr&mkrk?m5I=v^7_aL)f`n+gJKHF80U|BaZs<;eX`bC0bvU^Np4E9#z)&s*gl| z@f43QRT$gEoXj}YCsZHz#Kl-{>O)6F6YdWY@j1W|`f47dezc6T!E5O9y z4w?b^%pox#AU+67I}r&l_0}G85Y;f?>!Kd#{}(y;)Ed5%f=Ui3Dgr<>{aou+OXmn{3xr>enrqKAub-0z>TY|} z%HEBvjK5d$j6@hyVF5<5y0sm20 zPTGkDZC+D--J`S{`!|GlNa}(g550>~3ZIPPz@g zAWQ1(uYUhHj#kQ?y{z2RQ8$gDcXf&8&AQ>o&xNbfe{^Z|w~Me1yKleJvsj=?Sb5$( zdi?i4t)D&lv#c47SQVqb4zZqOLB z*KOUa(9Yzq+5HO}vnZ-y@tZ$)&W9rn0)S-wsHYpALe5G--#wQCWy5)Mboc>ywC>$z1d2M0 zz%*a9AfQXcmnV|Z^@H;KF7nlFtzfP#09^vpLEs(9FsODTKyH8y_|IFh+Ri100+ z?eIXY&V{8+^}_`u3`FdXeQO8;Up7?$Q0imkG+(AP1sv-D2nmeL-vS&;kx!g}G9{U> z&hE;Ur5qB6v>zWk5z=P?Vjdp=E(;eXN4<^=A&=pWXV^#V9(jjWD9r*#SZDDAVEBAW zF*+$POL52(o-2~+MnIPS*HW_h-Z0>rdSGySuOk4_Ganz6vWu@;BU%2#>721(?s;nh z?9Rjp6j*ZtI$5@Ii9DGjOVMSk_$>NKbI_YQ-7aV)GgOeAs=Z24O@cuE^-FiOAX$eq zq{y1nSR;WO0jtKlno)0=x8)qf7t%SU+_lmmrPc25jdsIsDax%rE)!aF%=aDO4N2Vc z&lSSd<6kKrH3C(_Br*V(oVB9K`@0*^W0un(OO5b*P5CSq5Zl@52jpj;}53 zWg-~2(_m})D4i09&{awJ&NYWXu9ni5u5jfD8A{l?P4C;BF(9q7)7_z;Bv4ZT6oIy9 zOqU9N;KYMWooDVEkOlN-(G4G7lmuty9pk1H?K7<%+Fr{G(rKPQ64Czj@?#p9hJ*E< z4};RRr?x4A*Nx7DnNcv@Hc%vmdB=Pn%~S`ZZ2y~e`f2Mdnx7!TaEv;kf0&SKh zR!e%cguujg^YjfVN}{Vcpj$@|yp2$G+3?dS;s_}^!qZuxvQGdQB)5iNx^%sn=5~^s z@uZvoaSiXKTy2mrSC{m`o)0ZFj{qMHD~L~n6dL$Iy2btBGU@dvX~$W`&5_`v+90LQ z`>3Z1Qw5M@s^)q`*|uqwZ)T(FctJs5CEZGr#tl4d)8bIaG=$NaAwPGx)(24DPt?s( zCk;WCzX?fpy)f1Z(9OeerRvgzTw&DG8>r94e-R70Q z<~Dk51#ui;Z|6g=;BQgKEaQte5@FfIZ*%M7SYkSWPj@zd%FsAY`{1_NE(A0`1t~v~ z<|`Ri9eKG*gi96Vyq+7Bx{Q`YhFufY?Trb*>@!*OPeJ#W+J4NdL>Gj-m(-~s@E1~ z?2#-ke> z+XH}vMI;c|0)LjHKCi)dpJ82}W@j~_NW9fg?v&iQxek(@0I`4|?@ zcNb0^5rMiXpe^3H7io?1uq4Y~pAab9U3L>lAZ$=kyXT#%Pt==pYvjMb`u%d!sNk+< zqS5rfd;13+!<;SQeE+}y($;p7^J}A*&ZT+H_W@-QeJrIuvlZulHlJonw}gMvTo4 zeoZY=Y}KCMb%!X3vH(R2z;vSHIqyu0^ZH=nARe}O;K(%?VE0t_m-q7p&(9{mNS*jQ z0Xm7-zamZ_0pwfHlTDZtuxZ4Qx5z!cILPZ~ z_rj#FN`P_U0)o~!?2*2%=~o+48eoy)&i4*%+Y4ysca^wFyWya2eX-}10nK_i#lJH5OkL$d_MqmS09An*zRV{8NbFy*)y&mfJ!}i|;YcV+ z_BNdxjSALB0r{Za%)#4=B^CUMAQU?6ZZ}iZswuhUhZ71^A=vExZwZYGLpK5V>NDzn zhnQmKvz?}l0rTQvB{}aiR#puf9t%I!7RcQLXqcAz{LQlb9$p_wxGbv=X6WHL_6GbKO}HG zHS^32j`E2~$i0L?XX^~bBtXvmjoBgic>QtU-t zUL6pHqn!0cf;SE`@xeRIeeWd*fX;kL_F{j1vV7>dn?#*nzdOlpgE#dt^(Q6C7Ys90`~zEVDO>IHCA% z2V9ga772VulkURRI;IG&SeKU`B( zWY_$yysoS>tX@y;;wjXbT*AIDGHW!Ij|eh$z|EwB9=Q5*GD_UG%I`~uu62)>RbkvR zoD*|Ygjp6K@Ck=AxACww^taZ+GQLK@jI!OL>M}(LY5L51<9oXVZ(`^}l|Oq*w{;fr zO~1K68fnoZgP`b42(9mG&5Qk3d3*oN$iv-FwVK$)+uzyYF5Cq@0xk6=L(wFXnx&bk zZ<*MpH4&6u@(*(=FBR*z-YBrb(i3w`wOBe^u6vfbA!&jGBh0RSE%ntZ!V&%g2@U;Q zfm3tyNcNFi#LK5}GaXpxK|YHzLD*4+bv0nS$m|<6;fR3kg7I+IpN1h)@1JAZ9`P+Z z2&XE34D1x419~P4x%Rl3E|`u*d%)>NnBz{4Gg-GAeVkz?6yE~j=ajf}#Wi$;jAf(u z-7<#8DPqkgp2!=I`=^G*T)7(65dbX#EaLyf2rVYouQb{#Qf2J_+>9S+GK@&CJ zf&oIOW~Of?lXeNle;-I{WcZ=TJK)RQ^&3f%-11KMMk8YeS~6GPJ)>7rwxSkcC`RtJ zj_G+#VXSRI<~={}NU!FqPO8|p41Cy%pYQ-aj7U#tWIRWaG4NemxUv32Mm^b{(zc%_ znU3MgNSf@Xx!JoK4i=4!W`{_;4TT#vau*o72UoIIgO#^1)J&BVjQ4~&Iq!rb2g5yW zSze0Rw0w$s(CTH&xP~Hk8>+F4?mZW~MHI2`nYHqI5d$B|-3tge{JfoKn33k2(Zr(g zR>1I-oYmhM>y>8H)*IPsW{h2}3S}6#%G8Cf>yr%!k*4$!<~=`o=Kn2SWQ{0*aaCb0 zocdoE%DMrC{#91OX8HL5iGVzA;Q_C=u=r^euY? z?BqnQiI3@KCsT<^v0W#9%hWCOoNyjQUf9cfe{Fi|7k}723@x3Epv>+yL>_Mt}W&c2h;+?QyH<3am z@PJcpycQO>ZD1s+yC?em@V!>sUorF1rx~PwkpAsF|ERu7726G?KcP0<`JigOhpo=P z+QRyx#NVDvYb_1xVjHQ2v!uw2{1HT~8Xt_T=Rw-Giuo}**3YR!>>+7h^R@1v=$*-AI%oj!(mFFm3vhJI=h`RJy z;ywC}qDwqMZ@JHfHlq&qCUAFrKKV>u+WD>rHRWOqxn^Q_ynI{ALjmxRJDo@8m$k=v zBn(s{&wWR#1Z;%GeH%A$3Vr<3pPQsanmREcS9Q$f=j?TYxKB|j{!JLVvjR!^<&nJI*cZQwMQAL^~C(PR(`-kcGkpXW&OhUy6oEu5GR zp}OPUh+|=i#tT^+lM|{v`%l0FW4!^DE!y`=CpN9C0&0Ig&q2Gv78wV^p5(5>!wM~77QWFc%=Pn zzwx%L?g#7S;pawYcEZDZsFS05@>=#;H024m5>qm^daBkWbK|<)1hYQPa_eQ{U?%Of zJ9L6qJC;1c#hcbnV?3I1sKv-}ETQYG4g%p5o8&h_wb=mj`Pxyt(>kji&}5r%t8y{M zHpwj}!G9;|*w`ZpOFwOL7)tN{@@)-00z=76d&SKK2D zgcH|3=OwXL5WgMbOzRKLoeI}L(*8^sd|`$S*G4~TJp%0RY}7rW=JutU@PCCz@{sq0znv)F(-#N5;wD#DTtr_q+;6K{U zW=9)}Xt%m6j@``{1Qy{la3SYk%lKkwA`kqzx1S}GcFI^^>eT?9!C9>*63occMgt?x zGwibCNZM&JzHiN|87&1OI>XOua{bn}P^6+qZM97D7qr)h2dQ_T%EVq#PD7E4hZ28i z&0b5?V+9#+MUivTLp~WVmr`NE*fr#}0(9S(JX zLU+zk<)bYzG%Fz1)H_yQdeR{REOJTQ5B+?Zt=KcZ^VMx4e8HzH43>!OTg1MXMSONj zs)xwGE;M4|X@at|%oW1vus`{+xSlsY=d<9LPK@XDN|BfP1KUi`?ex*94qMpss%D0d zk}474J54Mi}`HtODC{_d7Lwrst$6 zRu(C?ibH7A+Jog?Ufrv7ZUH;$NgZL=zHza3=yWy_8up~aMj)*<>NM^3USFBnCuJetZ>MixTQtZsZ z0Y1}*OwnVzM`Rh*h>)6_Is&!(ob_nQP0jMo{3{ob=dQ3c$PWH-QPRU38W7}ThwW#^ zwtb@`4ISkUFNH{V$2oeUL>IuG{k~@~R(yDJZ9ib@DgX3S(E{{dht}FDU6P(|tz21u|Iy)Mm z#6gq!%qZ#**1y)x>m=N7jr1K2xW?H6?T>-kbRsTHg6JiuhVH)@E+!-nM6GUb z=(Y|91`hrQaZS;ZY?n+BZiSudf(*+@g3W$%AI$6Q6_DAw1~Cexje_y}8k%jz3!(H6-7*119=tdDPPe(AMZ<>kP5h%s zvc16f8=g!Fo1p8d_WJ<(NWfkcS@nTJxHv>ys8@rKR4Q9<6sG{~zaX^wFM%oU6)4vi z`ttmQlhL{=q(YPD3+_FyLu3y9Z8+7@`z&fnd#zH7lxrf$Z4jg>R~?w@fL!sT!_2f5 zUU$P)I&~?ahLB55(WfI_ZvF4PbYV7olU=0Yl(~`JBI00J84Q_XkZULQnEVKan0EVE zgL!FOzs^Erz|D)JBgCoezDODyMRtcEt^;Cv=cX^7k&9gJ#N^xze7XP?bwW9zK{0SZ zAL9K2`qymZ1yWXhQf26Loh*WJ_ih{wa(V%`isWYsb`>`apVfAHb2UXJc=~|@z9gQy z1n>I*G7|z7=f#X(NJ~97X%V4}9w||=>00Nwiokf1SV-KLS#xYA1egb_$ys3&gWn@Y zO|W1%K*&cade^bBU7RSBWz@Cs`$vbRqg?9)GwlXOcz{hctmi;WJsL6!__aB3zA6MJeytS5o#RDpf_16iNaGdI zb!-#Urc7d{FoYY>!J%sC-~qst0BR7;Wkbrze6T_iZBXLk$NRepE1h$<(JL%8c?AQc zRK0HuhBx~BN4kht3JHpnE9?4G4ga2moCwV0Wy!Z59OM^0gh&$nH*BZuwk@`|h=Y`? z5S2L|2Zb4fUhCz_q-|TW+_z}8)F%aP$SHA$XKXgEZUq#%EWMokg_y@GxfS7)rjJ&a zba}Z!8-KUfftOH}A?jbeTGpc$Z^}I+Z?lo{bcnxS98f~HL+8GL=|_=H((>>SH`Ublq!>xsPd~ zi~>_9au}6}E8W`wfWinMi(&xiQA7Z6U=IMMNhkoO?mT##G@5K zGkn_=Kw05dR7B9Y6vB+0Gm*?YCGDNp-PEM#h2D1zFfQDUGxd^M)u4!3c)$P$(V3I` zP@qdwEBa?%chzr<>Fwb;=44OsXaQ6=`VD_$Wa7wL$K1j*S7(_HQV8;I2tn9TmpP!y zI&}y^h8X;{`7L5`BA}_k7A90b)`f#MB%$dhpuK#q^<@%jF5^}76?${`V*yb7iC-|j zY)=c`$rkwZpM<`|$s&JVRACYQM+?wMV54HjC~s8QZ>Yf%L5N^MU{`xKRBeX7K)9&~ zWhU3X0vFC0pLek(PutHt6GDQI>Xstj5JTkV(=DA*pyr}It}~{_qURuFOnX63_Ewap z)RuR!aRoL)PMHnCIzs~iAYXKUV-h=rdYvuv(?&tJGKoyE`;wfy5Ynw0E{ zASb6wArcziwSU-H>plqy)h<9wfo|QE=GKmJIN8baKX(Hf(#kh{r(nE%8Z+N+CLSIG zWeO0O8cMRc+01=6EEE; zde6mrKkn`?$`D)-xFmI!S@sp+(x_Bb{z-y9ajFI>*0HMe`++iNGCFGONH#~==N!_s z&dp7!E<>qIOM^4)^~g?s@;-0hnSG)^wZpaUl#Us5Z(VF0nf$?wl(r;MU#(ILo3OK) z<8PF}=b}8VzKw(k@iA1ZYTvl0sr8>RZqj=W-L-UN0pUX$3)Z-40$fBd`d z&u?Il7s}|(|0?zH*w@&OpJ%Bg1SM1>luu@yJ-|d?DJE=*=q-`9EhorL|79KhG9TDg zDt=361FZybEq$0hxV)(Q&FT9Q>qn+5@DN`rVX8`gR?EDaP^Q593cKZd1Z2>_Ln##5QXa@FM4&Q@s!r>IWJ=T)hR4It@83A zufc6lde`kA=`A2in?zL@2cIrkUuw@7oa%E9UYp6M7I}V-#`cL_#+$SVnob-bQ9kGw zZz(gkbmqV=VZnlPzgDh^|B=P&O^@edz;us;7~}Kc=;?KHPTwQMXU&np+@m?Gmj_BG z`MqcT{H+8Ee{_)vy$0;@+ySJ^^{z_9$yvWz2OojL!>)7PY20`P_m7Lb7t4{+J0@e) z#_qMQI2@Xpyj%>5$&)p_rX$kPe=%OXLmO7gbbTOl)*^J%cvCHp`L3vI}b=*{O;56PD z;}BdfWCo82{+02)TtZQ1GH)!_aPo$JpE!?4B0*V^Z&?$H&OE;a++tw(}~ML!I6W(ga=6nV+#|ycw<{ zc``o>dJL)+4}4>XC4(~iiQ)zCI8_mN?Lt^yjQtgJ=}}wnV*PQFoQ(m`T?rJs7+oG( zTU{DxbHo+Ctou-q9#gq=gXih-@7qUSmsdC|hk;A^>j!JPE{)hT3h$F5tDaGG{ToMG zqeu}st2V12sa ztyCGN>sL6vOzY@Wxeucd#T zvA*x?(t(w(J{J=NMI4f>39N8pl^}nZ<@67V^Tr2QlF9V8{ekgGCV)nbA01WYPpkBlTD>>yxe#Y`AXZ@lP}BDGA^*a z+8hlHxs%kp+^iqtr2Wm4#2rj3N#Bw;=WR)4O|(-&);L#3>PZJt`mq1X%uge0?S?d;Y6|EEvAF^z)f5?egd{2NcfdVJE1gOC%r)ymQpvT=wa~t2w<9Fi{ZfOAgiwhW!=kg@0 zrVPwy4boB4rQ7mfebMA#^&-R?>nRgic;_E^132KOp?dqgh2c@$`HO^p6O>1q6ug!* z058jKUtFvl>b|piN7NM0*tcjwi2XD_sd)hruKY`A%2C=oAq3&l=v&RJZ_j=A8c92Q zL5Nno_`@SrV`V=CVC@*B_6twxRLPCZ$AESLg{Vp+xR2!J#s1s{v=5qr(B|guT@WPh z7N99VT6KK@Xrm~^YLcgPxAn$8oBseH&ESU&V*T%|4O{b~-2GcYp}8R6_Fof|SX7|9 z*H2PTYgco3H3ppCi@qLmty*A^?`;bg53zHh{eT=j(Gl@QUH&V3*S;kORfq>=UkQ%4 zVM#meN{xF>PK;F-5zj;9s+OmIPyYCZr|F@^tvt=v4$fDwm2Wf=)ZZpt=IL;0Yz0+c>J#E@Gg2{7l_PIUh^0qOqw7{?*=_@?G=nsaix5C zE$<1Y#r@P)47f5DSfn6UAa;qNma7S?>gc$bUwcz)&F?w$>zj#*O2pRNn%J&dY{G1n z4#5UR?6|Z0mJq{zza}xHu*RhO0LY&bOh|H!3rSH&nVWs*-YRP6&XzqFlUD*X5dpMg zyECh_@vK-SgkUJETptPN9}2vU-0+>Fo)efu-u;u9Sd}JSytOGH?@0GDlQWVeL@%#j z72xM@OWT+pbCx*NX$i>t)ztZo1TJ)}E{^~4E+3}cQ(oZRE>d6l>Ms);d$8BNB54T= ze9#?MjTy>k9JqgeWc`GqEZD!ngUUzL`0Ad0vY5LRGNrDs6mjXC?LHi zihu%2Q<^jjO;CCbNp^HU?0(w)zB|t|&)jo!o;#Dd_nzPXoVjmqc9x4>kR1TPWq3~C z5&#s^L;+T2S#C__%;GcsI{0+2twD00>tZ>Yug>f_{xrllRwDvrL`}+-Afa z)-b?eF*hX?<0+zS$D zTJ;``%6v-$5j7tfH%aVjJADEj(SV%?!lnLgyGLCJ?g%^FW6YQ4VQ+5yq zK3~|fOLGw1^v4v9F)&urrOSo4Qkp{r9_Y-M8-Di;S=5#b%*7`Afg;O#@9A}#)_hG{ zcX}LN%Ww?VK}jD5=E*0VLj+xSD_!_fn2KTnR<*;Pv8p&1Y1e6hdsQr;Z+im{f>6B}1u)$M~FHJ+DE9lT+1#XV3Y$#A6(@vc>CFlXCq)lk_ zmK*S`z)<$C4Ab?%VB+GVU_nJ?2)4@~W~gZmu{3`!(Au-l)tL<*cBi$RUa_Q@)-a#o z69&_Mf)8{;OJioPQDpr9(IAaR=9)C$hI1S!ZxK5tjl-m67wnbSF9IGG8awxWQHcTsNr-qfr+#~SXm&j;;w&W!dW7A zf!2~6D~@~nGDzriJ%Iuj>iH;{;atRfM}cILCSbe`PeFBkcd$ooDdA9vf9@!?bgQND z=HqTbArpX;&HyR6;y6QAU@}z*QoLnws12aVHqR*Irvl=?+l)+lbpmNEpH7rSr1l?hk&v_3Z$%&U^I=_PyB_zwCYZb|BiTpi_HmH58_uX zcsDkp@wGQ+{iHk`^*HWyoiNGC*P>bD{lUnx{g9gg z#8sV^2@G~DK%BGW4lpl%^?JtQ*bXJ+S6@)d9g3Z~Fq9*a>PqF&y)EkAPHYp!?-t9L z^FTQ$cAcKY3KbC!RJ#-qN_@lPw;+p&$lD9zv0qC^T80+g3r=l+Oq+;IkHu%^^Db%F zW`eS^S9Obc4ec81z_G#6f|cRh0-xMt!_+5bZDZXa*(0RB)HBUnKa?eSAS5{Fvt@*t+vrtY&U%5a2w25A!U!peP57 z<|mYkpn>^By*n=@!R22nm2_x8b`f2+-#t$uIQr zM;@F?Bi$6``<uDxOdA+L;~$(w#9^T1q<(ZmHp)|}a)#oP-`i_j1T zG>x2T58(l7cfi{G%&cvVF&JS0{q|09DiEka*v0DJ;%qdW!~nAa0y#5B;Z?DkCiUm(C{oOg9T;5E?gESE>J@Kz>JP-`ZH6KCjk6$&m^j1xkMoc$6)+#jCX0L*_gyn_2XTh<~Rb}UjGK#EG+oj%nm zl@V@8-NyJ;WC>2&cJ=SCtWZbPm_R; zE_~avzs$a+^tam+Jvpp2fYz~YW}yO{0-)E8)`j=+bBAD6Zo2sb&sqV_;jO^wakswcP{N|DIIr@Tsus3lu$j zuCyEFuFKWH(6KgSy0M#MUi+cur0mLQ6dja zo;|40c25A5%YM+Lw=>auyrAd|H-x{@@(6goUz`d}U=(Oc z9(pDQ%(IM*QT0&CSZm3|DZ15JkYkiu4`qu}1mnt`<|i~pQtgrP&Mo)5}nft56vq`rMt)21*?3S;^-Vf`2G_pKQ9(!QWSVV2MVL z59{gL{Jl8Za^4sN(ke5lw_4_NHigy8A4Dk!u= z5({P@A`(-0F911uh&=W?2LQ~?20)KE1c2rd0I<;*@PE(gi6~0i2YJQF3+$^+Zi`d7 zNth<96)elgk^6#@+J67|@xx)sZZ0sLkg$1`(Xe}7P;Y@y(>3qVNFc?R6G+W$MgIay zZ$7H(eptkg>Ps79)Jn)=pN?~?V|FWD;^dhbqh5yG#+B>)g!-qy#jFJi^mod~xy^;u zb7)8y10mCT{+sN6RNwAa zmy__Gc~|CUZa;K%jDAD5)?0|g)?~@V>mi%X#n(yRa`UR4-h#qQ@>yr2oQ^Bfj2mj} zFDBGBBK%oxVL(~vW0Ldwed+oDA(>^48Z_3?TD2?WO8X^nl^nY6LFxLl!{x8JS+sMi z28vtjv`9}d%Fzc_HTR*28Gv#_{s1GLvz!Ndej`nW?yv_%Oa>HLqbHg%np}9TgyiE- z43-x=MO_%2CT0NVlj>Tm+F2u^{lNeI#3Jw7k?7_bk6*SH>Ja=-W}7DaXZ$~R%R;8C z+gMH~L=BPBprpNkXm#Am!@j13zCr1;u)9=q2S0Yn*w*C~1{73R>-skcJ-tvNR1}pH zSPx8$0Pcj#hR)j^t!MsmRbBM+=svg3#MdT<0B7Xkd12-oIZjh9%tylC_mWr=64>0 z9{*vc(4QCOvZM!05&7SJb*#wL+_E3`Vn<&?;u zb`%T-NLoDjoMcX4d#tWzo(hK`YX&L1IrzHnK zZAFaS9YwLQ>g!z3N|FHOlMf#*cD;z6o8C+gjc!d(wb8ijNY&vYBKgBpBfiO0+vw1f zpX~>R&bKU6PBk1-RD$65$pRj~Jm;0-JWKT1tm{~7<;rvts_1Ev$ZG89svoFcCp$c- zazG)@qLQSFM><9Dliai@YugA zG?2pI+3C4@(!-PLl>cv<5Gvp_hrFg$A;f_o!NiXIk;$Vt4C2e6h2z)f@WIYF!R^5G z#d`k8s*cWU>X+us%ehe?Mw-bZqq$LFl_?_T@CC1wp58{E!B&G>pXZYyKcY`f*)bxm z^`zJL0*wdVmYK&K zb4@X{+v^V4yBP2+@j<_2)2Q)xYrz_4r=piTi_@v<_*ndITASIiEvubVT;+@``hM!f z9Ivc2jmrnTTl|cGEOETB0cOwCKWh~6XJVCOGRl2YAJ9ve@7^JpHmGFhPjuS(m2|BT zjGZqq`wKWT9K%L+-A^gt8}|g>W_RBJ-uvs83KLswMe1yY?RP6o1<&{EYO^O zp$D&aXEldrwBe7@s|5Ro3KAy@&l{&QACv-RMV3#)6T-euyw!>t;-d`CF+2_lpVOI% z4076PVAqzZ;W`Z;-h(W6{N{|rx>$!Ic=FiYrgm!qviA^8(yKMAJ~{WUDtw^L{x5_WszClO}&y*qW$V(|DuOe zbuJQ*eQi7OF&R}|FOAN+u!gKx)s;yTKaCop?Br`9xJd+21Xw-MU+)UNU_B?vLp9zPQ zXp)Zcj0qrkis>NIRt4&|Zaab`UO?;^Q7}@MZv1?G-_r3X5C8IM2H}%#Y?=tk_sa=z zffs1l>P0{PR2_Zg#cgS#jXd2{>(hhp2ugJk4qSJ&p0Zq@*N!`4aghBq{jow2;e1 zFgR+-`#$R)8LjQb_op*5+0K_E_-<}~yCC*Q_esNvPdc+rt|v0Um$h@A^pLnH$0- zT|RhIgyj#JPUPQcKTtmW$R17q4$RI}CVRd}b0;rn*@oGa)^n>MVwh;e;Fa#T3+zO4P89GBQn<)5__4{cB!0 zJzZQ?8JJQL+B2Hh;KBB+B<9b$Gj!p}GjlE}%MU+p8+Tgaw+y`t$%fQiKD?^dJ=qq1 zrmDl#KcD|c7>9FDJ#~PVhAh?+X%47PrhF&h8E;P`K|M^G-i44kU`jVYIsQ`F3Uj^d zfThA+(9PlA$xq#!v->064&Exp$%WZZw%+*p+WrgO<~_MzWhEPK9DMT+G@sfsDtvy& z`8dLv<4hihI>#i5ZZ!2vB-4D7g6MufDXk-}FWQE>cL;d7rUzLxF`iLnu7$V!&G^^$w-AkHSBp;AG+}qvd4M(B%I! zPwXKs5^eK&B*fAHH*cnBfu?8)C7pW?Q~b0nrv_nkz>*>lVTZ zoGWK6cCg%#VujBOyypffu2(=9R{P;!JHyS4nznkWq>$G%Oi(-H<_AU+7u#v4z;sfn zl3rzT>-(>K>p_QbW@QZh2FItjCSF8PtUCNx@s(kNy$MYY>J9VYv5t3V#;FySwW?DP zWq-#la%tYLZ;XO=!waQS(C=JNJwdO2mceQ4WWx_TLUYvH<}IGy>fa*_yHY48Rc8Y) zsL&t1RU93F6!u>p$gtd+Xrl}EMcVW}`Mm+IxmfS2?I^ct?>0(1eUSo4T{CIcdZBwm zG*>6EZ!c^LH@W}f^Z?DB#0QKIv*z9B(YwlEc1&LLvo8qR1J+)Cd5`Nh26Z&jCS=PD zW^DpD8BVj+Xmk3c!}tzFA=4MOdn&V2!7C{UTUzhP{yTt8tb!Btyto;NIM$=h?RC0Q z@c2TmuR|bsg~;^LT z8AHL!lf0m^g!+NN=Lg1pjm5B3zfcZg_>Eiy_@GQB>$Bt>tHEe<0(+MY!hLSa*##!x z{%DwS)(>d=>j3vSq=|tOH26TyKW=j);Ri!0dns;DU10I1M(#r>$i9bGOd#cxkkCcz`HiGLJzd{s!@E&0hFByjFe#mP7fb_&nWZVkBh6M zli%#6s6NeycWWn2K^b%KAo)@~Sr@4b`Y@Hxj}3-DQajG)eW;F}HiIvr zp`VX8Z;V;&mbQz)9@11uO9tdP4$#OEV2P{4&{B;F^+}44p>xNh0<$FC=YtJTq8$XE z#P}HflNqdF;`m*-Vr|6(c$;)vE>AE|m;eo!7kFDeU_clc%?5$9PqswQ0V2{_cC3|v z`i&xDgAdoA1i0{o0}T8uFgfOrGVAZm12}G;v7hR~5bo-6%&4)#`Ih?;;KF;UUD~4u z40&QKP>kGEW1Pt~yU59fg^GsQc7;PK7TFR)DRZ))GSAmVzFz zH4jdo98<|=0(>j>j1N9>*Thpm{M%Om4qzzF0ipN#E)k=9f(`)MyTQhW5n6jb+Wh{f zJws1ZJ!e_Lua3KnPZ8Swyg=F)kDr|JP8TZ+5B7B$-}FmiXJq6EqOkdvyzg3dL}eOH zzZU}ARIM-Fo69qA81hBPM+{WHjCU#L6;PC%OO`-UIvy*Q-4ElhJz&O1PBp@Ii)KHFe1W}5BBy?=_CMZM%DT0874hc<>&Orr~E=ccE6d@6% zsK*0HFVaLQf^-OwWWU?z`S|6J`SdaGW>R zw*UYM|3v~;X85)hIIs`j4*42ixeEY>=g$uTo@EKbnTWdX z$r##oCiwaAJp;RYmOeM{1zf-53Jg8myszifKD_~ejNf^E9jidZ%D2^2-q&AO*RiG( zyPxfAVwgVL;cp-a?+)`Hts#WS+jSy^F@o}WwWKSUk_Ipo`TA37R?$3h_f^@23t>3! zILVxl+aJ!pkd=9Iq4Y1f#sAX_e>545zU%KlRFvB_sR7{vM4;5E+k4P{Pbc}HoSc08 z+!7Pe;R1OY9+BjXk=)>e4x*YAt(IoIGC+iexJ2zVFC*GH5%?3V!0e3Em+`r_-kLj2 z!~ofT1K+g{qUlFrAkBvWakD&(&jaDZN{azy4%K3U)Iu>)bv|9=o+Sgqm$)Ee*RsCyEpP zLWAyqch4(IG8RJiZ~Rh0ql_xpichVVLE2%S{OF_oP)0>4-)K!j|n-Su-nrbvXVJLCUdd z+1QVZG&W~ePqJ_7d#hcTy+w~vGmhxeq)iV4a!WgC$h2^Tv0WVU5y0PI< z(T?`^H>2D+-})kF?cr;lxs@fUjIL|lU|M);zR3y_5kr=9sLxLB<%T-bUaHDlPGJu< zM*@(Z@|&|pgZ@7cTX-oUzYp`#I0i2}-5r|t0%kVULlQKt`|m)AD&iEC7|HP?Iz zg2WN4x;Reip2JS%KcLU(HQXxoA8nj;>)FcpLj#U_YoaHyh#1ambYTD0L;8qUgYk0a z*pLS+l5yl&CqMqh$ghXLEJG$QTu>i*4IK?u8GxD-*zr*`U2M|MyL+W!o8xQtHC(Fq zh4*uLa2(>mJ+_#p@Xd6I(^f&`wOZcx7Ua#SQ$Q#(8%m5I-Swv(dQxnwDKax#$3q3S zPX;V@JjI{x24_S$g8e7=$}?zwsET#@KUc9Qbd&`ktDpTBvg#tSUR(e2`CeA(hF6Oq>xxa z%5ZbQQ}}?B6#sZ3J8DLEoi3fo!Uye9Ley ztB6YAbIH*F*$m?E49(wN>$2O>BQq@|iLLP65>40yv0YO@Dd?Ff-d%cLQX~{Lc;%?C zx!K+bQaTG;yDy!05-X>EoN6x^#TRu)s|JY%KVVbmF-tdzDIRI%pSBa!lWMe!GXiEx ziY588*amwmGod!#VN~*uqT!SIW&?mXPW%LVW5RaaVAkeKAKy1fK>|o~p^ik#v`Hrf z+_q|!eJxX`;)Qtp(T0&t608uc*a{|T)3pS4Q3?4xMj7$?z)Wyz*NHXO)qFo(NrzIh z{C7#Zt~vaMvBhHKL$RfCn=|2|-kD=ibXGGqPss&*+PH$h+Tp__I9_h@rH;?v6t6gE zVE{Env*X2@mjbLBH>kGn35@sSmo=b#lUw`+?dSB^i3pEB?y$A^#EJ}D(|qASkv>|Ccq(Uyo!xNCS} zJDbIM&g-_Sq|mQxVY}N_JaH^u7#~%kd+k*fhbooikfcn% znVx?c=e>)rBd?SLM(xY@1CFr-f`Hh`*z1*V==?&P`xO~IAohV`B9SL`glt;f|A`X5Zwm_EOn^7tDiYe+LP}f`98T!YgBBG zeWm6umo<5;?us5%-3db|18vkZm??Ckb zOpp>xV){3louc)$J>~|7B6J~f4XU)E-IKpcwM<;Qm{I}ZSS3UGORQXgWakouYkh#s zYY;Y6=sxkq1#yzfa;Ji;*>b!a`45Smvh_5wGL%ytr4<_S@9x9o=$mywfOcU5mC7NC zQ9>yL9_MZ1@gHR8S+Y?1ySrap5hnw^W4DRrYM8&7G6aQ49twk1mbFXdv}$Gt=y+It zIlh{s)(c;)n);vOM`zmho3?(6h##z+VVv9lX&W&K`Jba+Yb$!w;1-h(Yri8FRDr<{NR|KM-DphLjN)sN{$tJgtdCU!l-x2??_L&xWz~;jODL zbnthLbmuAjlx|^phQtc)Z|44YJ!e%mETia<+&KQbI7+FlXzbk_u7KG#(hKF~UIU#y zqOPnAByN>ZS4ZTAPt|Q*8hwh#7@=jD-|8&EFFPWhFX-!n1`-?3ziG?1^=}m%XH7fb z^E3=c$fu4lH@B}Is$mezs0$ExEt66ezeNUoq(zrDYxVApJ-B#Q_M=Kd{>*!RaDA+GT1G{9l7osSo9Dea(2}x)#(DTgxF~r0nU(70W zqhlvS6Va&$lyVlLh6H38^Ya1d3ON8jzrnu z#_fg4w`R+oaXwzC3Gr<*A1d7XsuwB&HZ9h-`?w{7S5hYJ^Gq1`UTAacMFp$3xLBX} z29sVV!EmDXdAjI>6sNh?PeX0SHZQuJ zI9x=g!&9gFVp8}J_;7QUQob1Ck4^3Uyo_*x-@ICwS6p?of`pq9IL2l)$U7W?)A{08 zqkwJ`OYuo^F=Q5fK{{=+vnG{ULKwfkEjQxrKs+BAX;s5%7A?POhG`LhnSay zrvlj3`P2BY?s}HRo>OjjIex}*65{qTDTGdogKjzJ)Fb6ku)zfLv=((oysZTzCK3lu zUpTOIi;K}5k^6a2WWz4#G4)uNqQFG|>-9JNef{o8cD$q`5d3l|joA8jwZIi2jh^^> z7qYLt$BX=_2U1Ln1I1saIMiEcVXixHPhDRE%3`2fYD{nMeKo(qw+hl}d;Vgc#s&*5 zG|1!vb37~gG;yn*eoEi|hT3&G^Cm>JJS*6Eq$*vzpM0az&JOWg(jJT)x&qhjmwDR2 zW$=nn#p7RVBOl5m&Xa_=$+gzZVdNcozQ?`V?n;@{+5EcJ0Z3IlrZmSitY_j0LWrbQ zQ1lnXUvNe4smX{z$+*^8wr4B|{PDhji>hMW3$D#i9BPT>AGj-khhb^Zy||bb==-Cg z;!B|A(GbKNc@qy(j9$Hq1)|55fwuz&23w-Z?g5pSSNRflJqp8roFpA9WUTUClv+-N zOHBOCfS|47t7UA54#+^j?U1Dp+dzH>Y`@iCzG?A6s=~0c%rQ1@y2?9M8H66uKp{z5 zx`Tk#d^;|RckQ=$>v$IOBMDYz+~=;SZ{Rzux{pog0st=(+@ZrP4a3Q+gBbH|Brt;g z5_}XZoVs%%;1q^f6zika2of{gge;QOtdZ}UI=Nz;F8t*ITs(&NO}+>ZEwxHrL#)ii z&$sl;Z&u)Y2!6%Tn|vy4BQ*oYK&eDcI(DIIF#qzx1Y;y_GcopWck?; z--BM-WdMJkmF(X!t>=#H{A5y1O)8=VZY^+kAyDUgO3vk`dV=uFJ<>W9e!*N{5oI7m z#q%!S_LM_kWfco_dLRp2Hl{x6)^6$YqrskjONO(UKDRft>vLT|kq?7Keu@U7x$aRG zug-mc+G-|$75VD9`|6!n&&o&tYn)f9lVY+z12p7$F+wDTJvwK$Gu*d7LXPW4*%}+aYcEfg&8w)EM@QY`d!PY&F**%O4-il@PMBg9@F==_as^7MjF@=oA73Wz; zp3=6u+&b<&+lTOf)|8_YZ;wd6&Bc!Q3~1*tA7?p~08iBtUk?;*Z=m(DmjCyU(cIW^ z96UMPV6MSN%U`B9-;8gy-ekQZ##^4Z-@f~SFew4)_&Vr%_RhB)%%E{k!3sSf?%}h? z3g{K$5>8nHm10hji%^tr7H&QsVG9*sV(eljAb2m30Ntzlr|2>R;+{_CpfS6Ij=k@d z%>i#uw>tFs^N-T%1+GrjKtvX7NSo|Us2;*0 zl|kknXt23-P1vPbAkS=4E!%m&eU7N8SvM~8GB%*%pCmvynu;C5?HQW|(Ix`sG)0Em zE8jxtaq)DBn+qh|sBHGyASyn-S=wBVdyn>QT3DU4?}nw&GS;t6aH;)I6#L`87nz|I zX>ozS#$$3gDHH!Th4aUKZX^baX(CDMp=MsIqih+u#o;foeOEDRo`ujyMnW_oX!T+3 zpVM$`cMmSsT0)Y+O0Ap+V@_N6EbwRRm+&BnP~_G5lybM4nw~gqRc1_1owzzfpOR^` z{0e;+gO@c%E}h&g>K?r4!?3C?Z&R#@x%KwqU4;F6wmqGkDq*@`Ir z*B>Xv6E$@#6TnC99{qlF1A9h&?|Flg29o4aF~A>5N)XPXakxQ) z%X2;>j7)%_poL|bCtP$Www}o2|1$hbN2iG;jahegAd7cSx6*KF-f;=Nf#GVa4Z zxudqd4#(2|7YuO92cKL{A5*L1Xv>8X?KPI}Tla^MMd(vYLqclMO|G$+q+Mr3UAs%laS4_5Pke`z|6wb2Ut4I&TxTyGmcQ@_7S>9L_>W{~AjW(p!B!VNLW z_WZC)7H=T7R-3|5D{A~&v*g73yuF&?HM@H;+rD*t=41uKO_!Nqs4XfV{k(!#RAO4L z?fn3Q>-Lf0?XEb;G1mfWa-^w?z%YDodhJT{XN?9=$1NaAi^`T&ncN9NiB@=7W+^t*>>E(j9@8S8{$5!aXQ|tZE?)Ux~cwuK` zt_F;^DWN)df;n>Sv@;K0oDzv*U>ZU~ru3{^_cx!k@!eNmT&)rqj_OGQdB8*Til?!_ zjQ|@n51|NCMu^6cLX-%qtwDhCIS*2@nX0vNr3tC?(#h4s4c@;DU~h|6lT*9#^2dZokyJ(jAKD)| zyJ)E?O~05D?(p4c{rJz$L}H8>%8Uyuc$Pn^B*#{1&q0M;xvwcE^=o%t*PIoweRn`y zO?>1YXG(whacXDZwxEv4UdX_F;K%1Ti?T-WI&H6{K^B520S0dz$TPdj6)hUf7d~?_ zcz9VnH@RIf*l)(P7S_|*hew-jU4zhLFEpjMmu{P(%+4$!%wE6vTZ-t0P)&o>lQL+Z z4Vm+h1E@S*r?1mwvv(uA*eBn1*9@hF5qPF%EO@eL&1fS^B^@Ld*)r{(BPoz%sqrpu z?m_uxZ#LZ;A`7aEGH6}B<&g)+l|)fy+;K?ri23B34E@cp&~4~)_lh|6#uOQLA!KJ! zzZ?**!4CU#tNiVPlgfL;F(6NQktsyVggH;kh~YIfZ7Qbr3wmP42fOb@0^Tx_;PLnF z+>f(+55qOYialXe!40fFIW==4e{Sd3y(5aveVB7Pg(Srl39Oo-5g9!!MCMy{Tz9T- zR3Am)f3PBz(uAdmo6l49yfd*Aq#Goi!qzX=`+Is6YFQSIu3Nd<-sZ`{@MRJriFTt2 z;wqes?3!vA)vLo%mvw=(euUs>zaLRJEPa$Sgz=6Gpx<-rB+SJox134*h|7bdqHidA zj;+2T-kCXcC(xnq1g?8kC7t#`pIKBodC2JzC+p12@@UYPxv7fy7P_sjaTby_sV8SP zVt>HV;LUh;GFU0JJ?3=(!*Nz1JdK*_8pvU5&b_=}Eq<8c)~5DAGwl4ziQKKkWCarQ z2tH>_XMety)N-W=(wTlTg=@c7G2-)XZi*R6dJxFh6lRi^O>>nO>Ql4rV-m+Fjbvn6KJFIPaO(J#5cneP4;uS1lP(_CkN5c$$3T>F|r zeOcmwNPxe;f5}W6$;AC*2RHerni>1HV-5tL@n$R$8 zIY=Ja)v??Denc5GbE~mFxSsw-UWlrAOBzFr|F!9r$Op-z_5WV1Vs>3FpkU56c zePknCb!R1}5-#tYYdyJniw-4)98G~q0>f11uQ3nOP+pu`S(mp2P>_9wzD`WU5acg2e2AWWiVF~| zv@=egL8E%2y=%r4@xlJ-&*m3?1@)$nJ!5obz#(cOPG+z8X{Cm#n9HgQ)g6%s7Bh;#r~i2oQk*J z+Vg)Nt9nPeOf7ac#loQ=ykBU8>);3msywCVTif1*AS&$K)!UdJ%;_^3j*7reE(FEjSA3s$cMsqng7$Kin?7-tB00uV(Z3FaLsAQ;s9))&jpqJ;$ zojq9T_;eUvihwJJh3)yuNqPsa*;xPv_y4c2FF}7r|8G(PeRcN_Cy_XX9Xft4cmRVJ zL<7DHJhYAvi~%BXljvhYr3ePo+1VH-D+5s2Gh{RtX~uyhwePu*dzET&{XOTg(uqu{ z)&~@VLL@TJ9SvgEx9Ga>U3|#dq~Pq}gTKd~c}J_OcFHG5;CqkHq z(9y19AY-(XZE6g2YDS{bQO|!mErY8pt+U)rdAXt1A_RaeM;+)xS;d};ikj=Jx;+R zo`inL6YCe)Ujt{A(-80vtORDtfAF_zBSAuiU681uqY|8!Ot zeR_4|N<;-K*qQTS#Fvf4fP~6nxH#I2EtjTNse(qzT~|Z{&R6C_7oTA>j1-X(^0Lop zYTE_St}dvNkPOdLZ_QvmUh(xK(Nb|A(qRSuO6#eDpk=W`zb5U>%Tbx4>bQIXI++Ja zQV8_Ry-YJ@%DV@Pz`n($=QPcZuf;oXytmZ17~;9@+O=nKkj3yw{D>{lOCLMf`rWoG z@wz#)h@sihU$patLBwlgEsoSB$>A zzoVy;<0|u3uYBQ5cp}zhE6;L!tKXKdMU5h1==q&>Q<(Q8l#_$BG&}QEu6B!^vzaeadf{r z_1b{uw<23T2jpcJ@Kw)e{@VFHRI_Pu{spaxN1{&Ol=r48`^`j~%~0(upslIt2&Xn_ zWyEg%6ai)zyk1yJ6r*)nK==nA88GtgYgdZ29eU-a&^cCCArM%byRxfxW%Q8fb2Sh7 zy|INbgkU78X4fDZ161Sa{74dgwC{B_M-~_5%V8C-L(v$dE)x(*!?|5U%nf*Cpfv{L z4_2`!UAP1#0ZdeoQty{(vWkKc)8hRo%0=A?6lIQ+pxY{YPA;eO)9LF@t&tOaW?{^v zk66kFjlq^9G@}vQV$n=e845@e!RbY-`M+xT?=0|&vX-amfk(W3Sp_GK+0^2en3SeC z)ts;FB&c!7{BV{CTx(C2KD`x{95cbM;wW;>8cgphW7)u`yLRutt;=A1#ebs(-#-`L zCt9i?@cZw_S{WA+_}5RhZJs2_Q`Da__V#40%+VQ)y!l}zHn2o6h$xn|6SgHkvM)Pj z=l>&Uk?s@M1E}2bvKV=A=GP6TuJ?|Z8#T_o$tt`tLp4l&HTqepbirs1U#+uT&WiC&oOuVmWywITdPdnfC9Mq{63PjKU!!Xe2%hrztLHfz@E*v z0?i@;PVc}1aCH@I9UxedhTC-?7>b@4iY4SfnR|wpre;ie^KqZCx5TtTMsVi+RmE40X5wt#cONx_D);r_Pgw9e-kHkNZwkj8o|b z=lV#K<>!1Uq5N>uR19v==DhCq5U^UW*d_ao#wQ?`ooo85YY ziMwCihX7^waa?s=wt4l;jbm~<>*hSw*qTR_-@2>O<5t#O%?eYJcCid{PX!(40Pr(Y z*%c{1A3d?$fq6apzV*&*?VY;Nl*bSwck?(2dc-nYw)wpI>-!qQh7s@L6~~~m=XZY$ zUwK)$AcEXA_;1A%sOfUZr=2ODktF^S8BuP>?Z~5zsrk4XdL2RS_oCx$nF%siYtAvG zE-~C=Dp^$~&JyJX9hg+_9(tC1e+a^&Pdo4vHrPQq1Z|bJN)9GJHOJihm^So#LsVod z_eveO>jM5T7>6@xeHzc#LWxvkm;)K@W^Tyg$T)#f@?eG?)S$<^agVUgNrTg`ogB_> z{G$6fh*eHvPX+N4me?s4D|Ku{8#+Zn)h4QSjBj6`a_ud|IdB^?&0)%r|I>kL&(m+} zw}zhENQ4js!XNco=oJOtdZxkc%d<*s5&c~>cG?3n%|zIheEB$)w0lf>4>i8N+Bbfo zq~i@~Z5KJwbugvpp!=Hb>ofrmK;3T-|wP;5gA&s!*Lt zi=b0A&m6c}O6`o`$_BLlLuRCHLskx;GE8WxLEse_Npm{7Y47dv+j!brm;))f2=z4q zVXb|mF|43Y)FMGs<(_QTts2M(cSOU0nNaEv9}f~9z9&YU`Dm5G%TQlDqPQEpvY-Vl zKluy{A9wPOA90_F740CY8PmxYBIBQ4>_RZFKfNTqUS?K7PoB+XukQ|$sXW%s7I zDZ>apvxI2Z5<<1J$|F{%>DVAS!Yc;$7Dn{WK3Qs;^Kr+2D2vy;3%7@$)>+{qsEZBc z$W#se{)@$v`?cs=jIUhv-^p64$zLIOB~B$jvTt}ZYjHU5661CipXK}wx!Zks$Zg67 zD}kypyIL8R%2slD&U#w6*>vud#(^pvCfc##WguKP1Gb`^((ms)%49Gm~L1za-1uG^d+cx9UBGd6xNKyr5`(Sinw zfSY@wDUm^rR3QBdG$v)h^a2OvcL}0d92Qx$|Kte7#hZN`6tA}P!|nylE;LsOkYa=L zU0Y$&;J-NlntPdyui=6oXtMX$x05d7Uh}aU_qqyj6 z+i?;Xp?NmIFz5QuCt9Kf#%Vvv?Nxt9n+dc!tMidkEPQ=<@Q*v#ZVVK@^W&XL zne0H#UhYA|8rQ9k8XM-63;fffFeR-+Ip!H(*URiwG4O1?{C|58 z^JswA{HngKP7l4fQoD4$oIKnkt#*DFq<0DNR_R5Ie5<-3X8Y74n1Fn z!s=OocIME=L;By0gCWPatkVeEH>dK$@>a^_6;N{L0<`P^1Y}3p77UiK?)JjPZ?-nA zU5g_t4HuuJT>C}G-2?=p*};2%*|f`yTL`#DIsf8({ilKWm`^44zoAo};NQLDpYJ}| z%g-CW!~hA&OegqbvPZ z`!POxFEAf0%O{F_u3t>amuIKr{;n5m7d}XCFBMC3op3;)5|Og;uL%O_j|9T@`67NpEoekuhJz%{ttP^VVeK| literal 0 HcmV?d00001 diff --git a/lib/closed_app/closed.dart b/lib/closed_app/closed.dart new file mode 100644 index 0000000..72f0543 --- /dev/null +++ b/lib/closed_app/closed.dart @@ -0,0 +1,36 @@ +import 'package:flutter/material.dart'; + +DateTime? _currentBackPressTime; + +Future handleDoubleTapToExit(BuildContext context) async { + final now = DateTime.now(); + + if (_currentBackPressTime == null || + now.difference(_currentBackPressTime!) > const Duration(seconds: 2)) { + // Jika belum pernah ditekan atau sudah lewat 2 detik + _currentBackPressTime = now; + + // Tampilkan warning + ScaffoldMessenger.of(context).clearSnackBars(); + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + content: const Text( + 'Tekan tombol kembali sekali lagi untuk keluar', + style: TextStyle(color: Colors.white, fontFamily: 'Inter'), + textAlign: TextAlign.center, + ), + backgroundColor: const Color(0xFF334155), // Slate 700 + behavior: SnackBarBehavior.floating, + margin: const EdgeInsets.only(bottom: 20, left: 40, right: 40), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(20), + ), + duration: const Duration(seconds: 2), + ), + ); + return false; + } + + // Jika ditekan dua kali dalam rentang 2 detik, izinkan keluar + return true; +} diff --git a/lib/dashboard/a_admin/bottom_bar/bottom_nav.dart b/lib/dashboard/a_admin/bottom_bar/bottom_nav.dart new file mode 100644 index 0000000..296d288 --- /dev/null +++ b/lib/dashboard/a_admin/bottom_bar/bottom_nav.dart @@ -0,0 +1,162 @@ +import 'package:flutter/material.dart'; +import 'package:apk/dashboard/a_admin/function/f_notif/notif_reddot.dart'; + +class BottomNav extends StatelessWidget { + final int selectedIndex; + final Function(int) onTap; + + const BottomNav({ + super.key, + required this.selectedIndex, + required this.onTap, + }); + + @override + Widget build(BuildContext context) { + return SizedBox( + height: 50, // Mengatur tinggi bar + child: BottomNavigationBar( + showSelectedLabels: false, + showUnselectedLabels: false, + selectedFontSize: 0, + unselectedFontSize: 0, + type: BottomNavigationBarType.fixed, + currentIndex: selectedIndex, + onTap: onTap, + + items: [ + BottomNavigationBarItem( + icon: Column( + mainAxisSize: MainAxisSize.min, + children: [ + Container( + padding: EdgeInsets.symmetric(horizontal: 10, vertical: 2), + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10), + color: selectedIndex == 0 + ? Colors.blue + : Color(0xFFF1F5F9), + ), + child: Image.asset( + selectedIndex == 0 + ? 'lib/assets/icons/w_building.png' + : 'lib/assets/icons/a_building.png', + width: 24, + height: 24, + ), + ), + if (selectedIndex == 0) SizedBox(height: 2), + if (selectedIndex == 0) + Text( + 'Daftar Kelas', + style: TextStyle( + fontSize: 10, + fontWeight: FontWeight.w500, + color: Colors.blue, + ), + ), + ], + ), + label: '', + ), + + BottomNavigationBarItem( + icon: Column( + mainAxisSize: MainAxisSize.min, + children: [ + ValueListenableBuilder( + valueListenable: NotifRedDot.grupSekolahHasUnread, + builder: (context, unreadGS, child) { + return ValueListenableBuilder( + valueListenable: NotifRedDot.chatPrivateHasUnread, + builder: (context, unreadPrivate, child) { + final bool hasAnyUnread = unreadGS || unreadPrivate; + return Stack( + clipBehavior: Clip.none, + children: [ + Container( + padding: const EdgeInsets.symmetric(horizontal: 10, vertical: 2), + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10), + color: selectedIndex == 1 + ? Colors.blue + : const Color(0xFFF1F5F9), + ), + child: Image.asset( + selectedIndex == 1 + ? 'lib/assets/icons/w_bell.png' + : 'lib/assets/icons/a_bell.png', + width: 24, + height: 24, + ), + ), + if (hasAnyUnread) + Positioned( + top: -2, + right: -2, + child: Container( + width: 10, + height: 10, + decoration: BoxDecoration( + color: Colors.red, + shape: BoxShape.circle, + border: Border.all(color: Colors.white, width: 1.5), + ), + ), + ), + ], + ); + }, + ); + }, + ), + if (selectedIndex == 1) SizedBox(height: 2), + if (selectedIndex == 1) + Text('Pengumuman', + style: TextStyle( + fontSize: 10, + fontWeight: FontWeight.w500, + color: Colors.blue, + )), + ], + ), + label: '', + ), + + BottomNavigationBarItem( + icon: Column( + mainAxisSize: MainAxisSize.min, + children: [ + Container( + padding: EdgeInsets.symmetric(horizontal: 10, vertical: 2), + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10), + color: selectedIndex == 2 + ? Colors.blue + : Color(0xFFF1F5F9), + ), + child: Image.asset( + selectedIndex == 2 + ? 'lib/assets/icons/w_add-p.png' + : 'lib/assets/icons/a_add-p.png', + width: 24, + height: 24, + ), + ), + if (selectedIndex == 2) SizedBox(height: 2), + if (selectedIndex == 2) + Text('Tambah', + style: TextStyle( + fontSize: 10, + fontWeight: FontWeight.w500, + color: Colors.blue, + )), + ], + ), + label: '', + ), + ], + ), + ); + } +} \ No newline at end of file diff --git a/lib/dashboard/a_admin/bottom_bar/main_screen.dart b/lib/dashboard/a_admin/bottom_bar/main_screen.dart new file mode 100644 index 0000000..701458c --- /dev/null +++ b/lib/dashboard/a_admin/bottom_bar/main_screen.dart @@ -0,0 +1,62 @@ +import 'package:apk/dashboard/a_admin/bottom_bar/bottom_nav.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; +import 'package:apk/closed_app/closed.dart'; +import '../dashboard/class.dart'; +import '../dashboard/announcement.dart'; +import '../dashboard/add_person.dart'; +import 'package:apk/dashboard/a_admin/function/f_notif/notif_reddot.dart'; + +class MainScreen extends StatefulWidget { + const MainScreen({super.key}); + + @override + State createState() => _MainScreenState(); +} + +class _MainScreenState extends State { + int selectedIndex = 0; + + @override + void initState() { + super.initState(); + NotificationFCM.init(); + } + + final List pages = [ + const DaftarKelas(), + const Pengumuman(), + const TambahPengguna(), + ]; + + void onItemTapped(int index) { + setState(() { + selectedIndex = index; + }); + } + + @override + Widget build(BuildContext context) { + return PopScope( + canPop: false, + onPopInvoked: (bool didPop) async { + if (didPop) return; + final bool shouldPop = await handleDoubleTapToExit(context); + if (shouldPop) { + SystemNavigator.pop(); + } + }, + child: Scaffold( + body: IndexedStack( + index: selectedIndex, + children: pages, + ), + + bottomNavigationBar: BottomNav( + selectedIndex: selectedIndex, + onTap: onItemTapped, + ), + ), + ); + } +} \ No newline at end of file diff --git a/lib/dashboard/a_admin/dashboard/add_person.dart b/lib/dashboard/a_admin/dashboard/add_person.dart new file mode 100644 index 0000000..f59522b --- /dev/null +++ b/lib/dashboard/a_admin/dashboard/add_person.dart @@ -0,0 +1,388 @@ +// import 'package:apk/funtion/daftar_murid.dart'; +import 'package:apk/dashboard/a_admin/function/f_murid/form_murid.dart'; +import 'package:flutter/material.dart'; +//import 'package:apk/dashboard/a_admin/bottom_bar/bottom_nav.dart'; +import 'package:apk/dashboard/a_admin/widget/custom_button.dart'; +import 'package:apk/dashboard/a_admin/function/f_murid/get_murid.dart'; +import 'package:apk/dashboard/a_admin/function/f_guru/form_guru.dart'; +import 'package:apk/dashboard/a_admin/function/f_guru/get_guru.dart'; +import 'package:apk/dashboard/a_admin/function/f_kelas/form_kelas..dart'; +import 'package:apk/dashboard/a_admin/function/user_admin/profil.dart'; +import 'package:apk/dashboard/a_admin/function/f_alat/config_page.dart'; +import 'package:apk/dashboard/a_admin/function/f_alat/config_user.dart'; +import 'package:apk/error_handler/connection.dart'; + +class TambahPengguna extends StatefulWidget { + const TambahPengguna({super.key}); + + @override + State createState() => _TambahPenggunaState(); +} + +class _TambahPenggunaState extends State { + bool _isLoading = false; + + Future _loadData() async { + if (!await ConnectionHandler.checkConnection()) { + if (mounted) { + setState(() => _isLoading = false); + ConnectionHandler.showNoConnectionDialog( + context: context, + onRetry: () { + setState(() => _isLoading = true); + _loadData(); + }, + ); + } + return; + } + + // Karena menggunakan StreamBuilder, cukup trigger re-render dengan delay simulasi + await Future.delayed(const Duration(milliseconds: 500)); + if (mounted) { + setState(() { + _isLoading = false; + }); + } + } + + @override + Widget build(BuildContext context) { + return Scaffold( + //bottomNavigationBar: const BottomNav(selectedIndex: 2), + appBar: AppBar( + titleSpacing: 20, + title: Column( + //crossAxisAlignment: CrossAxisAlignment.start, + children: [ + const Text( + "Tambah Pengguna", + style: TextStyle( + fontFamily: "Inter", + fontSize: 16, + fontWeight: FontWeight.w700, + color: Colors.white, + ), + ), + ], + ), + backgroundColor: Color(0xFF2563EB), + elevation: 0, + automaticallyImplyLeading: false, + actions: [ + Padding( + padding: const EdgeInsets.only(right: 10.0), + child: IconButton( + icon: const Icon(Icons.refresh, color: Colors.white), + onPressed: () { + setState(() { + _isLoading = true; + }); + _loadData(); + }, + ), + ), + ], + ), + + body: _isLoading + ? const Center(child: CircularProgressIndicator()) + : Column( + children: [ + //const SizedBox(height: 20), + Expanded( + child: Align( + alignment: Alignment.centerLeft, + child: ListView( + padding: EdgeInsets.zero, + children: [ + CustomCard( + width: 350, + height: 95, + title: "Tambahkan Akun Murid", + gradient: const LinearGradient( + colors: [ + Color.fromARGB(255, 255, 255, 255), + Colors.lightBlueAccent, + ], + begin: Alignment.topLeft, + end: Alignment.bottomRight, + ), + borderColor: Colors.transparent, + boxShadow: [ + BoxShadow( + // ignore: deprecated_member_use + color: const Color.fromARGB(255, 3, 3, 3).withOpacity(0.3), + blurRadius: 10, + offset: const Offset(0, 4), + ), + ], + titleStyle: const TextStyle( + fontFamily: "Inter", + fontSize: 14, + fontWeight: FontWeight.w700, + color: Colors.black, + ), + customIcon: Image.asset('lib/assets/icons/b_people.png', + width: 35, + height: 35, + ), + iconDecoration: BoxDecoration( + color: Colors.lightBlueAccent[100], + borderRadius: BorderRadius.circular(12), + ), + iconPosition: IconPosition.left, + onTap: () { + Navigator.push( + context, + MaterialPageRoute(builder: (context) => const FormMuridPage()), + ); + }, + ), + CustomCard( + width: 350, + height: 95, + title: "Tambahkan Akun Guru", + gradient: const LinearGradient( + colors: [ + Color.fromARGB(255, 255, 255, 255), + Colors.greenAccent, + ], + begin: Alignment.topLeft, + end: Alignment.bottomRight, + ), + borderColor: Colors.transparent, + boxShadow: [ + BoxShadow( + // ignore: deprecated_member_use + color: const Color.fromARGB(255, 3, 3, 3).withOpacity(0.3), + blurRadius: 10, + offset: const Offset(0, 4), + ), + ], + titleStyle: const TextStyle( + fontFamily: "Inter", + fontSize: 14, + fontWeight: FontWeight.w700, + color: Colors.black, + ), + customIcon: Image.asset('lib/assets/icons/h_hat.png', + width: 35, + height: 35, + ), + iconDecoration: BoxDecoration( + color: Colors.greenAccent[100], + borderRadius: BorderRadius.circular(12), + ), + iconPosition: IconPosition.left, + onTap: () { + Navigator.push( + context, + MaterialPageRoute(builder: (context) => const FormGuruPage()), + ); + }, + ), + CustomCard( + width: 350, + height: 95, + title: "Tambahkan Kelas", + gradient: const LinearGradient( + colors: [ + Color.fromARGB(255, 255, 255, 255), + Colors.orangeAccent, + ], + begin: Alignment.topLeft, + end: Alignment.bottomRight, + ), + borderColor: Colors.transparent, + boxShadow: [ + BoxShadow( + // ignore: deprecated_member_use + color: const Color.fromARGB(255, 3, 3, 3).withOpacity(0.3), + blurRadius: 10, + offset: const Offset(0, 4), + ), + ], + titleStyle: const TextStyle( + fontFamily: "Inter", + fontSize: 14, + fontWeight: FontWeight.w700, + color: Colors.black, + ), + customIcon: Image.asset('lib/assets/icons/menu.png', + width: 35, + height: 35, + ), + iconDecoration: BoxDecoration( + color: Colors.amber[100], + borderRadius: BorderRadius.circular(12), + ), + iconPosition: IconPosition.left, + onTap: () { + Navigator.push( + context, + MaterialPageRoute(builder: (context) => const FormKelasPage()), + ); + }, + ), + + const SizedBox(height: 30), + + const Divider( + thickness: 0.8, + color: Colors.black26, + indent: 10, + endIndent: 10, + ), + + const SizedBox(height: 15), + + Padding( + padding: const EdgeInsets.symmetric(horizontal: 20), + child: Row( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Column( + children: [ + CustomCard( + width: 180, + height: 60, + margin: const EdgeInsets.only(bottom: 16), + title: "Daftar Murid", + backgroundColor: Colors.white, + padding: const EdgeInsets.symmetric(horizontal: 7), + borderColor: Colors.lightBlue, + titleStyle: const TextStyle( + fontFamily: "Inter", + fontSize: 12, + fontWeight: FontWeight.w600, + color: Color.fromARGB(255, 56, 59, 238), + ), + customIcon: Image.asset('lib/assets/icons/a_note.png', + width: 40, + height: 40, + ), + iconPosition: IconPosition.left, + onTap: () { + Navigator.push( + context, + MaterialPageRoute(builder: (context) => const MuridPage()), + ); + }, + ), + CustomCard( + width: 180, + height: 60, + margin: const EdgeInsets.only(bottom: 16), + title: "Daftar Guru", + backgroundColor: Colors.white, + padding: const EdgeInsets.symmetric(horizontal: 7), + borderColor: Colors.lightBlue, + titleStyle: const TextStyle( + fontFamily: "Inter", + fontSize: 12, + fontWeight: FontWeight.w600, + color: Color.fromARGB(255, 56, 59, 238), + ), + customIcon: Image.asset('lib/assets/icons/a_note.png', + width: 40, + height: 40, + ), + iconPosition: IconPosition.left, + onTap: () { + Navigator.push( + context, + MaterialPageRoute(builder: (context) => const GuruPage()), + ); + }, + ), + CustomCard( + width: 180, + height: 60, + margin: EdgeInsets.zero, + title: "Profil Admin", + backgroundColor: Colors.white, + padding: const EdgeInsets.symmetric(horizontal: 7), + borderColor: Colors.lightBlue, + titleStyle: const TextStyle( + fontFamily: "Inter", + fontSize: 12, + fontWeight: FontWeight.w600, + color: Color.fromARGB(255, 56, 59, 238), + ), + customIcon: const Icon(Icons.manage_accounts, color: Color(0xFF2563EB), size: 36), + iconPosition: IconPosition.left, + onTap: () { + Navigator.push( + context, + MaterialPageRoute(builder: (context) => const ProfilScreen()), + ); + }, + ), + ], + ), + const SizedBox(width: 16), + Expanded( + child: Column( + children: [ + CustomCard( + width: double.infinity, + height: 98, + margin: const EdgeInsets.only(bottom: 16), + title: "Daftar Alat\nTerhubung", + backgroundColor: Colors.white, + padding: const EdgeInsets.symmetric(horizontal: 7), + borderColor: Colors.lightBlue, + titleStyle: const TextStyle( + fontFamily: "Inter", + fontSize: 12, + fontWeight: FontWeight.w600, + color: Color.fromARGB(255, 56, 59, 238), + ), + showIcon: false, + titleAlign: TextAlign.left, + onTap: () { + Navigator.push( + context, + MaterialPageRoute(builder: (context) => const ConfigPage()), + ); + }, + ), + CustomCard( + width: double.infinity, + height: 98, + margin: EdgeInsets.zero, + title: "Pendaftaran\nRFID", + backgroundColor: Colors.white, + padding: const EdgeInsets.symmetric(horizontal: 7), + borderColor: Colors.lightBlue, + titleStyle: const TextStyle( + fontFamily: "Inter", + fontSize: 12, + fontWeight: FontWeight.w600, + color: Color.fromARGB(255, 56, 59, 238), + ), + showIcon: false, + titleAlign: TextAlign.left, + onTap: () { + Navigator.push( + context, + MaterialPageRoute(builder: (context) => const ConfigUser()), + ); + }, + ), + ], + ), + ), + ], + ), + ), + ], + ), + ), + ), + ], + ), + ); + } +} \ No newline at end of file diff --git a/lib/dashboard/a_admin/dashboard/announcement.dart b/lib/dashboard/a_admin/dashboard/announcement.dart new file mode 100644 index 0000000..a61a160 --- /dev/null +++ b/lib/dashboard/a_admin/dashboard/announcement.dart @@ -0,0 +1,469 @@ +import 'package:flutter/material.dart'; +import 'package:apk/dashboard/a_admin/widget/custom_button.dart'; +import 'package:apk/dashboard/a_admin/function/f_pesan/grup_sekolah.dart'; +import 'package:apk/dashboard/a_admin/database/db_guru.dart'; +import 'package:apk/dashboard/a_admin/database/db_siswa.dart'; +import 'package:apk/dashboard/a_admin/function/f_pesan/chat_private.dart'; +import 'package:apk/error_handler/connection.dart'; +import 'package:apk/dashboard/a_admin/database/db_grup_sekolah.dart'; +import 'package:shared_preferences/shared_preferences.dart'; +import 'package:supabase_flutter/supabase_flutter.dart'; +import 'package:apk/dashboard/a_admin/function/f_notif/preview_pesan/grup_sekolah_p.dart'; +import 'package:apk/dashboard/a_admin/function/f_notif/notif_reddot.dart'; + +class Pengumuman extends StatefulWidget { + const Pengumuman({super.key}); + + @override + State createState() => _PengumumanState(); +} + +class _PengumumanState extends State { + final MuridService _muridService = MuridService(); + bool _isLoading = true; + List> _listGuru = []; + List> _listMurid = []; + DateTime? _lastVisitedGrupSekolah; + + @override + void initState() { + super.initState(); + _loadData(); + } + + Future _loadData() async { + if (!await ConnectionHandler.checkConnection()) { + if (mounted) { + setState(() => _isLoading = false); + ConnectionHandler.showNoConnectionDialog( + context: context, + onRetry: () { + setState(() => _isLoading = true); + _loadData(); + }, + ); + } + return; + } + + try { + final prefs = await SharedPreferences.getInstance(); + final lastVisitedStr = prefs.getString('last_visited_grup_sekolah'); + + final guruRes = await GuruService.getGuru(); + final muridRes = await _muridService.getMurid(); + if (mounted) { + setState(() { + _lastVisitedGrupSekolah = lastVisitedStr != null ? DateTime.tryParse(lastVisitedStr) : null; + _listGuru = guruRes; + _listMurid = muridRes; + _isLoading = false; + }); + } + } catch (e) { + if (mounted) { + setState(() => _isLoading = false); + ScaffoldMessenger.of(context).showSnackBar(SnackBar(content: Text('Error: $e'))); + } + } + } + + Widget _buildBellIcon() { + if (Supabase.instance.client.auth.currentUser == null) { + return const SizedBox.shrink(); + } + + return StreamBuilder>>( + stream: DbGrupSekolah().getGrupSekolahStream(), + builder: (context, snapshot) { + int unreadCount = 0; + + if (snapshot.hasData && snapshot.data!.isNotEmpty) { + final currentUserId = Supabase.instance.client.auth.currentUser?.id; + for (final msg in snapshot.data!) { + final lastMessageTimeStr = msg['created_at']?.toString(); + final senderUserId = msg['user_id']?.toString(); + if (lastMessageTimeStr != null && senderUserId != currentUserId) { + final lastMessageTime = DateTime.tryParse(lastMessageTimeStr); + if (lastMessageTime != null) { + if (_lastVisitedGrupSekolah == null || lastMessageTime.isAfter(_lastVisitedGrupSekolah!)) { + unreadCount++; + } + } + } + } + } + + return Stack( + alignment: Alignment.center, + children: [ + IconButton( + icon: const Icon(Icons.notifications_outlined, color: Colors.white, size: 24), + tooltip: 'Notifikasi', + onPressed: () { + Navigator.push( + context, + MaterialPageRoute(builder: (context) => const GrupSekolahP()), + ).then((_) { + _loadData(); + // Re-evaluate notification state after returning + setState(() {}); + }); + }, + ), + if (unreadCount > 0) + Positioned( + right: 8, + top: 8, + child: Container( + width: 10, + height: 10, + decoration: BoxDecoration( + color: Colors.red, + shape: BoxShape.circle, + border: Border.all(color: const Color(0xFF2563EB), width: 1.5), + ), + ), + ), + ], + ); + }, + ); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + // bottomNavigationBar: const BottomNav(selectedIndex: 1), + appBar: AppBar( + //toolbarHeight: 100, + titleSpacing: 20, + title: const Text('Pengumuman Sekolah'), + titleTextStyle: const TextStyle( + fontFamily: 'Inter', + fontSize: 16, + fontWeight: FontWeight.w700, + color: Colors.white, + ), + backgroundColor: Color(0xFF2563EB), + elevation: 0, + actions: [ + //_buildBellIcon(), + Padding( + padding: const EdgeInsets.only(right: 10.0), + child: IconButton( + icon: const Icon(Icons.refresh, + color: Colors.white), + onPressed: () { + setState(() { + _isLoading = true; + }); + _loadData(); + }, + ), + ), + ], + ), + body: _isLoading + ? const Center(child: CircularProgressIndicator()) + : ListView( + padding: const EdgeInsets.symmetric(vertical: 10.0), + children: [ + Padding( + padding: const EdgeInsets.symmetric(horizontal: 16.0, vertical: 6.0), + child: ValueListenableBuilder( + valueListenable: NotificationFCM.hasUnread, + builder: (context, hasUnread, child) { + return Stack( + children: [ + CustomCard( + title: 'Grup Sekolah', + titleStyle: const TextStyle( + fontFamily: 'Inter', + fontSize: 14, + fontWeight: FontWeight.w700, + color: Color(0xFF1E293B), + ), + customSubtitle: Row( + children: [ + const Text( + 'Forum', + style: TextStyle( + fontFamily: 'Inter', + fontSize: 12, + fontWeight: FontWeight.w500, + color: Color(0xFF64748B), + ), + ), + const SizedBox(width: 8), + Container( + width: 4, + height: 4, + decoration: const BoxDecoration( + color: Color(0xFFCBD5E1), + shape: BoxShape.circle, + ), + ), + const SizedBox(width: 8), + const Flexible( + child: Text( + 'Informasi & Diskusi', + style: TextStyle( + fontFamily: 'Inter', + fontSize: 12, + fontWeight: FontWeight.w500, + color: Color(0xFF64748B), + ), + overflow: TextOverflow.ellipsis, + ), + ), + ], + ), + showIcon: false, + backgroundColor: Colors.white, + borderColor: Colors.transparent, + borderWidth: 0, + margin: EdgeInsets.zero, + onTap: () async { + final prefs = await SharedPreferences.getInstance(); + final nowStr = DateTime.now().toIso8601String(); + await prefs.setString('last_visited_grup_sekolah', nowStr); + if (mounted) { + setState(() { + _lastVisitedGrupSekolah = DateTime.tryParse(nowStr); + }); + NotifRedDot.setGrupSekolahUnread(false); + Navigator.push( + context, + MaterialPageRoute(builder: (context) => const GrupSekolah()), + ).then((_) { + _loadData(); + }); + } + }, + ), + if (hasUnread) + Positioned( + top: 12, + right: 16, + child: Container( + width: 8, + height: 8, + decoration: const BoxDecoration( + color: Colors.red, + shape: BoxShape.circle, + ), + ), + ), + ], + ); + }, + ), + ), + const SizedBox(height: 20), + const Padding( + padding: EdgeInsets.symmetric(horizontal: 16.0), + child: Text('List Guru', style: TextStyle(fontSize: 14, fontWeight: FontWeight.bold, fontFamily: 'Inter')), + ), + const SizedBox(height: 10), + ..._listGuru.map((guru) { + final nama = guru['name'] ?? '-'; + final isWali = guru['wali'] == true; + final roleText = isWali ? 'Wali Kelas' : 'Guru Mapel'; + final kelas = guru['class_name']?['name_class'] ?? 'Belum ada kelas'; + final String guruId = guru['id_tabel']?.toString() ?? ''; + + return Padding( + padding: const EdgeInsets.symmetric(horizontal: 16.0, vertical: 6.0), + child: ValueListenableBuilder>( + valueListenable: ChatPrivateNotification.unreadSenderIds, + builder: (context, unreadSenders, child) { + final bool hasUnread = unreadSenders.contains(guruId); + return Stack( + children: [ + CustomCard( + title: nama, + titleStyle: const TextStyle( + fontFamily: 'Inter', + fontSize: 14, + fontWeight: FontWeight.w700, + color: Color(0xFF1E293B), + ), + customSubtitle: Row( + children: [ + Text( + roleText, + style: const TextStyle( + fontFamily: 'Inter', + fontSize: 12, + fontWeight: FontWeight.w500, + color: Color(0xFF64748B), + ), + ), + const SizedBox(width: 8), + Container( + width: 4, + height: 4, + decoration: const BoxDecoration( + color: Color(0xFFCBD5E1), + shape: BoxShape.circle, + ), + ), + const SizedBox(width: 8), + Flexible( + child: Text( + kelas, + style: const TextStyle( + fontFamily: 'Inter', + fontSize: 12, + fontWeight: FontWeight.w500, + color: Color(0xFF64748B), + ), + overflow: TextOverflow.ellipsis, + ), + ), + ], + ), + showIcon: false, + backgroundColor: Colors.white, + borderColor: Colors.transparent, + borderWidth: 0, + margin: EdgeInsets.zero, + onTap: () { + NotifRedDot.setChatPrivateSenderUnread(guruId, false); + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => ChatPrivate( + receiverId: guruId, + receiverType: 'guru', + receiverName: nama, + ), + ), + ); + }, + ), + if (hasUnread) + Positioned( + top: 12, + right: 16, + child: Container( + width: 8, + height: 8, + decoration: const BoxDecoration( + color: Colors.red, + shape: BoxShape.circle, + ), + ), + ), + ], + ); + }, + ), + ); + }).toList(), + const SizedBox(height: 20), + const Padding( + padding: EdgeInsets.symmetric(horizontal: 16.0), + child: Text('List Murid', style: TextStyle(fontSize: 14, fontWeight: FontWeight.bold, fontFamily: 'Inter')), + ), + const SizedBox(height: 10), + ..._listMurid.map((murid) { + final nama = murid['nama'] ?? '-'; + final kelas = murid['class_name']?['name_class'] ?? 'Belum ada kelas'; + final String muridId = murid['id_tabel']?.toString() ?? ''; + + return Padding( + padding: const EdgeInsets.symmetric(horizontal: 16.0, vertical: 6.0), + child: ValueListenableBuilder>( + valueListenable: NotifRedDot.chatPrivateUnreadSenderIds, + builder: (context, unreadSenders, child) { + final bool hasUnread = unreadSenders.contains(muridId); + return Stack( + children: [ + CustomCard( + title: nama, + titleStyle: const TextStyle( + fontFamily: 'Inter', + fontSize: 14, + fontWeight: FontWeight.w700, + color: Color(0xFF1E293B), + ), + customSubtitle: Row( + children: [ + const Text( + 'Siswa', + style: TextStyle( + fontFamily: 'Inter', + fontSize: 12, + fontWeight: FontWeight.w500, + color: Color(0xFF64748B), + ), + ), + const SizedBox(width: 8), + Container( + width: 4, + height: 4, + decoration: const BoxDecoration( + color: Color(0xFFCBD5E1), + shape: BoxShape.circle, + ), + ), + const SizedBox(width: 8), + Flexible( + child: Text( + kelas, + style: const TextStyle( + fontFamily: 'Inter', + fontSize: 12, + fontWeight: FontWeight.w500, + color: Color(0xFF64748B), + ), + overflow: TextOverflow.ellipsis, + ), + ), + ], + ), + showIcon: false, + backgroundColor: Colors.white, + borderColor: Colors.transparent, + borderWidth: 0, + margin: EdgeInsets.zero, + onTap: () { + NotifRedDot.setChatPrivateSenderUnread(muridId, false); + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => ChatPrivate( + receiverId: muridId, + receiverType: 'murid', + receiverName: nama, + ), + ), + ); + }, + ), + if (hasUnread) + Positioned( + top: 12, + right: 16, + child: Container( + width: 8, + height: 8, + decoration: const BoxDecoration( + color: Colors.red, + shape: BoxShape.circle, + ), + ), + ), + ], + ); + }, + ), + ); + }).toList(), + ], + ), + ); + } +} diff --git a/lib/dashboard/a_admin/dashboard/class.dart b/lib/dashboard/a_admin/dashboard/class.dart new file mode 100644 index 0000000..7753898 --- /dev/null +++ b/lib/dashboard/a_admin/dashboard/class.dart @@ -0,0 +1,438 @@ +import 'package:flutter/foundation.dart' show kDebugMode; +import 'package:flutter/material.dart'; +import 'package:apk/dashboard/a_admin/widget/custom_button.dart'; +import 'package:apk/dashboard/a_admin/database/db_kelas.dart'; +import 'package:apk/dashboard/a_admin/function/f_kelas/content_kelas.dart'; +import 'package:apk/dashboard/a_admin/database/db_namasekolah.dart'; +import 'package:apk/error_handler/connection.dart'; + +class DaftarKelas extends StatefulWidget { + const DaftarKelas({super.key}); + + @override + State createState() => _DaftarKelasState(); +} + +class _DaftarKelasState extends State { + List> allData = []; + bool isLoading = true; + String? searchQuery; + String namaSekolah = "Nama Sekolah"; + bool isSearchActive = false; + + @override + void initState() { + super.initState(); + fetchData(); + } + + Future fetchData() async { + if (!await ConnectionHandler.checkConnection()) { + if (mounted) { + setState(() => isLoading = false); + ConnectionHandler.showNoConnectionDialog( + context: context, + onRetry: () { + setState(() => isLoading = true); + fetchData(); + }, + ); + } + return; + } + + try { + final res = await ClassService.getClasses(); + final sekolah = await NamaSekolahService.getNamaSekolah() ?? "Nama Sekolah"; + + if (!mounted) return; + + setState(() { + allData = res ?? []; + namaSekolah = sekolah; + isLoading = false; + }); + } catch (e) { + if (kDebugMode) print(e); + + if (!mounted) return; + + setState(() { + isLoading = false; + }); + } + } + + String _safe(dynamic value) { + if (value == null || value.toString().isEmpty) return "-"; + return value.toString(); + } + + String _waliName(Map item) { + final guruData = item['guru']; + + if (guruData is List && guruData.isNotEmpty) { + final waliGuru = guruData.firstWhere( + (g) => g is Map && g['wali'] == true, + orElse: () => null, + ); + + if (waliGuru != null) { + return waliGuru['name']?.toString() ?? "-"; + } + + return guruData.first['name']?.toString() ?? "-"; + } + + return "-"; + } + + List> get _filteredData { + final query = (searchQuery ?? "").toLowerCase(); + + if (query.isEmpty) return allData; + + return allData.where((item) { + final name = _safe(item['name_class']).toLowerCase(); + final wali = _waliName(item).toLowerCase(); + final tahun = _safe(item['tahun']).toLowerCase(); + + return name.contains(query) || + wali.contains(query) || + tahun.contains(query); + }).toList(); + } + + int _muridCount(Map item) { + final muridData = item['murid']; + if (muridData is List) return muridData.length; + return 0; + } + + Color _levelColor(int level) { + switch (level) { + case 1: + return const Color(0xFF2563EB); + case 2: + return const Color(0xFF059669); + case 3: + return const Color(0xFF7C3AED); + case 4: + return const Color(0xFFDC2626); + case 5: + return const Color(0xFFEA580C); + case 6: + return const Color(0xFF0891B2); + default: + return const Color(0xFF64748B); + } + } + + Color _softLevelColor(int level) { + switch (level) { + case 1: + return const Color(0xFFDBEAFE); + case 2: + return const Color(0xFFD1FAE5); + case 3: + return const Color(0xFFEDE9FE); + case 4: + return const Color(0xFFFEE2E2); + case 5: + return const Color(0xFFFFEDD5); + case 6: + return const Color(0xFFCFFAFE); + default: + return const Color(0xFFF1F5F9); + } + } + + Widget _levelBadge(int level) { + final color = _levelColor(level); + return Container( + width: 50, + height: 50, + decoration: BoxDecoration( + color: _softLevelColor(level), + borderRadius: BorderRadius.circular(12), + border: Border.all(color: color.withOpacity(0.25), width: 1), + ), + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Icon(Icons.school_outlined, color: color, size: 18), + const SizedBox(height: 2), + Text( + level == 7 ? "LAIN" : "KLS $level", + style: TextStyle( + fontSize: 10, + fontWeight: FontWeight.w700, + color: color, + ), + ), + ], + ), + ); + } + + Widget _classCard(Map item) { + final level = int.tryParse(item['id_class']?.toString() ?? "") ?? 7; + final nameClass = _safe(item['name_class']); + final wali = _waliName(item); + final tahun = _safe(item['tahun']); + final muridCount = _muridCount(item); + + return Padding( + padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 6), + child: SizedBox( + height: 100, + child: Stack( + alignment: Alignment.center, + children: [ + CustomCard( + title: "", + showIcon: false, + height: 100, + backgroundColor: Colors.white, + borderColor: const Color(0xFFE8EEF6), + borderWidth: 1, + borderRadius: 14, + margin: EdgeInsets.zero, + padding: EdgeInsets.zero, + onTap: () { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => ContentKelas(classData: item), + ), + ); + }, + ), + Padding( + padding: const EdgeInsets.symmetric(horizontal: 16), + child: Row( + children: [ + _levelBadge(level), + const SizedBox(width: 12), + Expanded( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + nameClass, + maxLines: 1, + overflow: TextOverflow.ellipsis, + style: const TextStyle( + fontSize: 16, + fontWeight: FontWeight.w700, + ), + ), + const SizedBox(height: 2), + Text( + "Wali: $wali", + maxLines: 1, + overflow: TextOverflow.ellipsis, + style: const TextStyle( + fontSize: 12, + color: Color(0xFF64748B), + ), + ), + const SizedBox(height: 6), + Row( + children: [ + const Icon(Icons.groups_2_outlined, size: 14), + const SizedBox(width: 4), + Text("$muridCount murid", + style: const TextStyle(fontSize: 12)), + const SizedBox(width: 10), + const Icon(Icons.calendar_month_outlined, size: 14), + const SizedBox(width: 4), + Flexible( + child: Text( + tahun, + overflow: TextOverflow.ellipsis, + style: const TextStyle(fontSize: 12), + ), + ), + ], + ), + ], + ), + ), + const Icon(Icons.chevron_right, size: 20, color: Color(0xFFCBD5E1)), + ], + ), + ), + ], + ), + ), + ); + } + + @override + Widget build(BuildContext context) { + final dataCount = allData.length; + final visibleData = _filteredData; + + return Scaffold( + backgroundColor: const Color(0xFFF4F7FB), + + appBar: AppBar( + elevation: 0, + backgroundColor: const Color(0xFF2563EB), + automaticallyImplyLeading: false, + bottom: PreferredSize( + preferredSize: const Size.fromHeight(0), + child: Container( + height: 45, + width: double.infinity, + color: const Color(0xFF2563EB), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Padding( + padding: const EdgeInsets.symmetric(horizontal: 20), + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + const Text( + "Daftar Kelas", + style: TextStyle( + fontSize: 16, + fontWeight: FontWeight.w700, + color: Colors.white, + ), + ), + const SizedBox(height: 4), + Text( + "$dataCount kelas terdaftar", + style: const TextStyle( + fontSize: 11, + color: Colors.white70, + ), + ), + ], + ), + ), + IconButton( + icon: const Icon(Icons.refresh, color: Colors.white), + onPressed: () { + setState(() => isLoading = true); + fetchData(); + }, + ), + ], + ), + ), + ), + ), + + body: Column( + children: [ + // SEARCH BAR + Container( + height: 70, + color: const Color(0xFF2563EB), + child: Center( + child: Padding( + padding: const EdgeInsets.symmetric(horizontal: 20), + child: isSearchActive + ? TextField( + autofocus: true, + onChanged: (value) { + setState(() => searchQuery = value); + }, + decoration: InputDecoration( + hintText: "Cari kelas atau wali kelas...", + hintStyle: const TextStyle( + fontSize: 14, + color: Color(0xFFCCCCCC), + ), + filled: true, + fillColor: Colors.grey[200], + contentPadding: const EdgeInsets.symmetric( + horizontal: 16, + vertical: 12, + ), + prefixIcon: IconButton( + icon: const Icon(Icons.arrow_back, size: 18), + onPressed: () { + setState(() { + isSearchActive = false; + searchQuery = null; + }); + }, + ), + border: OutlineInputBorder( + borderRadius: BorderRadius.circular(12), + borderSide: BorderSide.none, + ), + ), + ) + : Row( + children: [ + Transform.translate( + offset: const Offset(-12, 0), + child: IconButton( + icon: const Icon(Icons.search, color: Colors.white), + onPressed: () { + setState(() { + isSearchActive = true; + }); + }, + ), + ), + Expanded( + child: Text( + namaSekolah, + textAlign: TextAlign.right, + style: const TextStyle( + fontFamily: "Inter", + fontSize: 18, + fontWeight: FontWeight.bold, + color: Colors.white, + ), + overflow: TextOverflow.ellipsis, + ), + ), + ], + ), + ), + ), + ), + + const SizedBox(height: 0), + + // LIST + Expanded( + child: isLoading + ? const Center(child: CircularProgressIndicator()) + : RefreshIndicator( + onRefresh: fetchData, + child: visibleData.isEmpty + ? ListView( + physics: const AlwaysScrollableScrollPhysics(), + children: [ + SizedBox( + height: MediaQuery.of(context).size.height * 0.5, + child: const Center(child: Text("Belum ada kelas")), + ), + ], + ) + : ListView.builder( + physics: const AlwaysScrollableScrollPhysics(), + padding: const EdgeInsets.only(top: 10, bottom: 20), + itemCount: visibleData.length, + itemBuilder: (context, index) { + return _classCard(visibleData[index]); + }, + ), + ), + ), + ], + ), + ); + } +} \ No newline at end of file diff --git a/lib/dashboard/a_admin/database/auth.dart b/lib/dashboard/a_admin/database/auth.dart new file mode 100644 index 0000000..155be6e --- /dev/null +++ b/lib/dashboard/a_admin/database/auth.dart @@ -0,0 +1,94 @@ +import 'package:supabase_flutter/supabase_flutter.dart'; +import 'package:shared_preferences/shared_preferences.dart'; + +class AuthService { + final supabase = Supabase.instance.client; + + Future signUp( + String email, + String password, + ) async { + return await supabase.auth.signUp( + email: email, + password: password, + emailRedirectTo: 'io.supabase.flutter://login-callback', + ); + } + + Future signIn( + String email, + String password, + ) async { + return await supabase.auth.signInWithPassword( + email: email, + password: password, + ); + } + + Future insertUser({ + required String id, + required String email, + }) async { + await supabase.from('user_admin').insert({ + 'id': id, + 'email': email, + 'name': null, + 'nomor_induk': null, + 'role': 'admin', + }); + } + + Future?> getProfile() async { + final userId = supabase.auth.currentUser?.id; + + if (userId == null) return null; + + final data = await supabase + .from('user_admin') + .select() + .eq('id', userId) + .single(); + + return data; + } + + Future updateProfile({ + required String name, + required String nomorInduk, + }) async { + final userId = supabase.auth.currentUser?.id; + + await supabase.from('user_admin').update({ + 'name': name, + 'nomor_induk': nomorInduk, + }).eq('id', userId!); + } + + Future signOut() async { + await supabase.auth.signOut(); + final prefs = await SharedPreferences.getInstance(); + await prefs.remove('user_email'); + } + +Future verifyOtp( + String email, + String otp, +) async { + return await supabase.auth.verifyOTP( + email: email, + token: otp, + type: OtpType.signup, + ); +} + +Future deleteUserPublic(String email) async { + await supabase + .from('user_admin') + .delete() + .eq('email', email); +} + + Session? get session => supabase.auth.currentSession; + User? get currentUser => supabase.auth.currentUser; + String? get userId => supabase.auth.currentUser?.id; +} \ No newline at end of file diff --git a/lib/dashboard/a_admin/database/db_absen.dart b/lib/dashboard/a_admin/database/db_absen.dart new file mode 100644 index 0000000..62bbf09 --- /dev/null +++ b/lib/dashboard/a_admin/database/db_absen.dart @@ -0,0 +1,48 @@ +import 'package:supabase_flutter/supabase_flutter.dart'; + +class AbsenService { + static final supabase = Supabase.instance.client; + + /// Naik tingkat kelas: + /// 1. Pindahkan murid-murid ke kelas tujuan (targetClassId) + /// 2. Hapus seluruh data absen murid-murid tersebut + /// 3. Hapus seluruh chat private murid-murid tersebut + static Future promoteClass({ + required String sourceClassId, + required String targetClassId, + required List studentIds, + }) async { + if (studentIds.isEmpty) return; + + // 1. Pindahkan murid ke kelas tujuan + print("promoteClass Step 1: Updating murid.id_class to targetClassId..."); + await supabase + .from('murid') + .update({'id_class': targetClassId}) + .inFilter('id_tabel', studentIds); + print("promoteClass Step 1 completed."); + + // 2. Hapus data absen murid-murid tersebut + print("promoteClass Step 2: Deleting murid records from 'absen'..."); + await supabase + .from('absen') + .delete() + .inFilter('id_murid', studentIds); + print("promoteClass Step 2 completed."); + + // 3. Hapus data chat private murid-murid tersebut (baik sebagai pengirim maupun penerima) + print("promoteClass Step 3a: Deleting chat_private where pengirim_murid in studentIds..."); + await supabase + .from('chat_private') + .delete() + .inFilter('pengirim_murid', studentIds); + print("promoteClass Step 3a completed."); + + print("promoteClass Step 3b: Deleting chat_private where penerima_murid in studentIds..."); + await supabase + .from('chat_private') + .delete() + .inFilter('penerima_murid', studentIds); + print("promoteClass Step 3b completed."); + } +} diff --git a/lib/dashboard/a_admin/database/db_grup_sekolah.dart b/lib/dashboard/a_admin/database/db_grup_sekolah.dart new file mode 100644 index 0000000..53d3fb9 --- /dev/null +++ b/lib/dashboard/a_admin/database/db_grup_sekolah.dart @@ -0,0 +1,137 @@ +import 'package:flutter/foundation.dart'; +import 'package:supabase_flutter/supabase_flutter.dart'; + +class DbGrupSekolah { + static final supabase = Supabase.instance.client; + + static String get userId { + final id = supabase.auth.currentUser?.id; + if (id == null) { + throw Exception('User belum login'); + } + return id; + } + + // Determine current user's role and corresponding table ID + static Future?> getCurrentUserRoleAndId() async { + try { + // 1. Cek Admin + final adminRes = await supabase + .from('user_admin') + .select('id') + .eq('id', userId) + .maybeSingle(); + if (adminRes != null) { + return {'role': 'admin', 'id': adminRes['id'].toString()}; + } + + // 2. Cek Guru + final guruRes = await supabase + .from('guru') + .select('id_tabel') + .eq('user_id', userId) + .or('status_akun.is.null,status_akun.eq.true') + .maybeSingle(); + if (guruRes != null) { + return {'role': 'guru', 'id': guruRes['id_tabel'].toString()}; + } + + // 3. Cek Murid + final muridRes = await supabase + .from('murid') + .select('id_tabel') + .eq('user_id', userId) + .or('status_akun.is.null,status_akun.eq.true') + .maybeSingle(); + if (muridRes != null) { + return {'role': 'murid', 'id': muridRes['id_tabel'].toString()}; + } + } catch (e) { + if (kDebugMode) print('Check Role Error: $e'); + } + return null; + } + + // Ambil semua nama (Admin, Guru, Murid) untuk ditampilkan di chat + static Future> fetchAllNames() async { + final Map namesMap = {}; + try { + // Fetch Admin names + final admins = await supabase + .from('user_admin') + .select('id, name') + .eq('id', userId); // user_admin table uses id as user_id + + for (var a in admins) { + if (a['id'] != null && a['name'] != null) { + namesMap[a['id'].toString()] = a['name'].toString(); + } + } + + // Fetch Guru names + final gurus = await supabase + .from('guru') + .select('id_tabel, name') + .eq('user_id', userId) + .or('status_akun.is.null,status_akun.eq.true'); + + for (var g in gurus) { + if (g['id_tabel'] != null && g['name'] != null) { + namesMap[g['id_tabel'].toString()] = g['name'].toString(); + } + } + + // Fetch Murid names + final murids = await supabase + .from('murid') + .select('id_tabel, nama') + .eq('user_id', userId) + .or('status_akun.is.null,status_akun.eq.true'); + + for (var m in murids) { + if (m['id_tabel'] != null && m['nama'] != null) { + namesMap[m['id_tabel'].toString()] = m['nama'].toString(); + } + } + } catch (e) { + if (kDebugMode) print('Fetch Names Error: $e'); + } + return namesMap; + } + + // Stream chat global + Stream>> getGrupSekolahStream() { + return supabase + .from('grup_sekolah') + .stream(primaryKey: ['id_tabel']) + .eq('user_id', userId) + .order('created_at', ascending: true); + } + + // Kirim Pesan + Future sendMessage({ + required String text, + required String senderId, + required String role, + }) async { + try { + final Map insertData = { + 'text': text, + 'user_id': userId, + }; + + if (role == 'admin') { + insertData['pengirim_admin'] = senderId; + } else if (role == 'guru') { + insertData['pengirim_guru'] = senderId; + } else if (role == 'murid') { + insertData['pengirim_murid'] = senderId; + } + + await supabase.from('grup_sekolah').insert(insertData); + } catch (e) { + if (kDebugMode) print('Send Message Error: $e'); + throw Exception('Gagal mengirim pesan: $e'); + } + } +} diff --git a/lib/dashboard/a_admin/database/db_guru.dart b/lib/dashboard/a_admin/database/db_guru.dart new file mode 100644 index 0000000..ce9abf4 --- /dev/null +++ b/lib/dashboard/a_admin/database/db_guru.dart @@ -0,0 +1,330 @@ +import 'package:flutter/foundation.dart'; +import 'package:supabase_flutter/supabase_flutter.dart'; + +class GuruService { + static final supabase = Supabase.instance.client; + + static String get userId { + final id = supabase.auth.currentUser?.id; + if (id == null) { + throw Exception('User belum login'); + } + return id; + } + + // =============================== + // 🔹 GET DATA GURU + // =============================== + static Future>> getGuru() async { + try { + final response = await supabase + .from('guru') + .select(''' + id_tabel, + nik, + name, + bidang, + wali, + id_class, + created_at, + class_name!guru_id_class_fkey ( + id_tabel, + name_class + ) + ''') + .eq('user_id', userId) + .or('status_akun.is.null,status_akun.eq.true') + .order('name', ascending: true); + + return List>.from(response); + } catch (e) { + if (kDebugMode) { + print('GET GURU ERROR: $e'); + } + throw Exception('Gagal memuat data guru: $e'); + } + } + + // =============================== + // 🔹 GET DATA KELAS + // =============================== + static Future>> getKelas() async { + try { + final response = await supabase + .from('class_name') + .select('id_tabel, name_class') + .eq('user_id', userId) + .order('name_class'); + + return List>.from(response); + } catch (e) { + if (kDebugMode) { + print('GET KELAS ERROR: $e'); + } + return []; + } + } + + // =============================== + // 🔹 CHECK WALI KELAS + // =============================== + static Future checkWaliExists(String idClass, {String? excludeGuruId}) async { + try { + var query = supabase + .from('guru') + .select('id_tabel') + .eq('user_id', userId) + .eq('id_class', idClass) + .eq('wali', true) + .or('status_akun.is.null,status_akun.eq.true'); + + if (excludeGuruId != null) { + query = query.neq('id_tabel', excludeGuruId); + } + + final res = await query.limit(1); + return res.isNotEmpty; + } catch (e) { + if (kDebugMode) { + print('CHECK WALI ERROR: $e'); + } + throw Exception('Gagal mengecek status wali kelas'); + } + } + + static Future checkNikDuplicate(String nik, {String? excludeGuruId}) async { + try { + var query = supabase + .from('guru') + .select('id_tabel, status_akun') + .eq('user_id', userId) + .eq('nik', nik); + + if (excludeGuruId != null) { + query = query.neq('id_tabel', excludeGuruId); + } + + final res = await query.limit(1); + if (res.isEmpty) return null; + + final bool statusAkun = res.first['status_akun'] == true; + return statusAkun ? 'active' : 'deleted'; + } catch (e) { + if (kDebugMode) { + print('CHECK NIK DUPLICATE ERROR: $e'); + } + throw Exception('Gagal mengecek NIK guru'); + } + } + + static Future checkNameDuplicate(String name, {String? excludeGuruId}) async { + try { + var query = supabase + .from('guru') + .select('id_tabel, status_akun') + .eq('user_id', userId) + .eq('name', name); + + if (excludeGuruId != null) { + query = query.neq('id_tabel', excludeGuruId); + } + + final res = await query.limit(1); + if (res.isEmpty) return null; + + final bool statusAkun = res.first['status_akun'] == true; + return statusAkun ? 'active' : 'deleted'; + } catch (e) { + if (kDebugMode) { + print('CHECK NAME DUPLICATE ERROR: $e'); + } + throw Exception('Gagal mengecek nama guru'); + } + } + + // =============================== + // 🔹 INSERT DATA GURU + // =============================== + static Future tambahGuru({ + required String nik, + required String name, + String? bidang, + String? idClass, + required bool wali, + }) async { + try { + if (wali && idClass == null) { + throw Exception('Kelas harus dipilih jika menjadi Wali Kelas'); + } + + final nikDup = await checkNikDuplicate(nik); + if (nikDup == 'active') { + throw Exception('NIK sudah terdaftar!'); + } else if (nikDup == 'deleted') { + throw Exception('NIK sudah terdaftar di Tempat Sampah! Silakan periksa Tempat Sampah untuk memulihkannya.'); + } + + final nameDup = await checkNameDuplicate(name); + if (nameDup == 'active') { + throw Exception('Nama guru sudah terdaftar!'); + } else if (nameDup == 'deleted') { + throw Exception('Nama guru sudah terdaftar di Tempat Sampah! Silakan periksa Tempat Sampah untuk memulihkannya.'); + } + + if (wali && idClass != null) { + final exists = await checkWaliExists(idClass); + if (exists) { + throw Exception('Kelas ini sudah memiliki wali kelas!'); + } + } + + await supabase.from('guru').insert({ + 'user_id': userId, + 'nik': nik, + 'name': name, + 'bidang': bidang, + 'id_class': idClass, + 'wali': wali, + 'status_akun': true, + }); + } catch (e) { + if (kDebugMode) { + print('ADD GURU ERROR: $e'); + } + rethrow; + } + } + + // =============================== + // 🔹 UPDATE DATA GURU + // =============================== + static Future updateGuru({ + required String idTabel, + required String nik, + required String name, + String? bidang, + String? idClass, + required bool wali, + }) async { + try { + if (wali && idClass == null) { + throw Exception('Kelas harus dipilih jika menjadi Wali Kelas'); + } + + final nikDup = await checkNikDuplicate(nik, excludeGuruId: idTabel); + if (nikDup == 'active') { + throw Exception('NIK sudah terdaftar!'); + } else if (nikDup == 'deleted') { + throw Exception('NIK sudah terdaftar di Tempat Sampah! Silakan periksa Tempat Sampah untuk memulihkannya.'); + } + + final nameDup = await checkNameDuplicate(name, excludeGuruId: idTabel); + if (nameDup == 'active') { + throw Exception('Nama guru sudah terdaftar!'); + } else if (nameDup == 'deleted') { + throw Exception('Nama guru sudah terdaftar di Tempat Sampah! Silakan periksa Tempat Sampah untuk memulihkannya.'); + } + + if (wali && idClass != null) { + final exists = await checkWaliExists(idClass, excludeGuruId: idTabel); + if (exists) { + throw Exception('Kelas ini sudah memiliki wali kelas!'); + } + } + + await supabase.from('guru').update({ + 'nik': nik, + 'name': name, + 'bidang': bidang, + 'id_class': idClass, + 'wali': wali, + }).eq('id_tabel', idTabel).eq('user_id', userId); + } catch (e) { + if (kDebugMode) { + print('UPDATE GURU ERROR: $e'); + } + rethrow; + } + } + + // =============================== + // 🔹 DELETE DATA GURU + // =============================== + static Future deleteGuru(String idTabel) async { + try { + await supabase.from('guru').update({ + 'status_akun': false, + 'id_class': null, + 'wali': false, + }).eq('id_tabel', idTabel).eq('user_id', userId); + } catch (e) { + if (kDebugMode) { + print('DELETE GURU ERROR: $e'); + } + rethrow; + } + } + + // =============================== + // 🔹 GET DELETED GURU + // =============================== + static Future>> getDeletedGuru() async { + try { + final response = await supabase + .from('guru') + .select(''' + id_tabel, + nik, + name, + bidang, + wali, + id_class, + created_at, + class_name!guru_id_class_fkey ( + id_tabel, + name_class + ) + ''') + .eq('user_id', userId) + .eq('status_akun', false) + .order('name', ascending: true); + + return List>.from(response); + } catch (e) { + if (kDebugMode) { + print('GET DELETED GURU ERROR: $e'); + } + throw Exception('Gagal memuat data guru yang dihapus: $e'); + } + } + + // =============================== + // 🔹 RESTORE DATA GURU + // =============================== + static Future restoreGuru(String idTabel) async { + try { + await supabase.from('guru').update({ + 'status_akun': true, + }).eq('id_tabel', idTabel).eq('user_id', userId); + } catch (e) { + if (kDebugMode) { + print('RESTORE GURU ERROR: $e'); + } + rethrow; + } + } + + // =============================== + // 🔹 DELETE DATA GURU PERMANENTLY + // =============================== + static Future deleteGuruPermanently(String idTabel) async { + try { + await supabase.from('guru').delete().eq('id_tabel', idTabel).eq('user_id', userId); + } catch (e) { + if (kDebugMode) { + print('DELETE GURU PERMANENTLY ERROR: $e'); + } + rethrow; + } + } +} \ No newline at end of file diff --git a/lib/dashboard/a_admin/database/db_kelas.dart b/lib/dashboard/a_admin/database/db_kelas.dart new file mode 100644 index 0000000..8b70aca --- /dev/null +++ b/lib/dashboard/a_admin/database/db_kelas.dart @@ -0,0 +1,212 @@ +import 'package:supabase_flutter/supabase_flutter.dart'; + +class ClassService { + + static final supabase = Supabase.instance.client; + + static Future>> getClasses() async { + final userId = supabase.auth.currentUser?.id; + if (userId == null) return []; + + try { + final response = await supabase + .from('class_name') + .select(''' + *, + guru!guru_id_class_fkey(name, wali, status_akun), + murid!murid_id_class_fkey(id_tabel, status_akun) + ''') + .eq('user_id', userId) + .order('id_class'); + + final list = List>.from(response); + for (var cls in list) { + if (cls['guru'] != null) { + final rawGurus = cls['guru'] as List; + cls['guru'] = rawGurus.where((g) => g['status_akun'] != false).toList(); + } + if (cls['murid'] != null) { + final rawMurids = cls['murid'] as List; + cls['murid'] = rawMurids.where((m) => m['status_akun'] != false).toList(); + } + } + return list; + } catch (e) { + print("Error fetching with relations: $e"); + + // Fallback if the relationship queries throw error (e.g. FK not yet reflected) + try { + final response2 = await supabase + .from('class_name') + .select('*') + .eq('user_id', userId) + .order('id_class'); + return List>.from(response2); + } catch (eFallback) { + print("Fallback fetching failed: $eFallback"); + return []; + } + } + } + + static Future>> getGuru() async { + final response = await supabase + .from('guru') + .select('id_tabel, name') + .or('status_akun.is.null,status_akun.eq.true') + .order('name'); + return List>.from(response); + } + + static Future>> getMurid() async { + final response = await supabase + .from('murid') + .select('id_tabel, nama') + .or('status_akun.is.null,status_akun.eq.true') + .order('nama'); + return List>.from(response); + } + + static Future>> getMuridByClass(String idTabelClass) async { + final response = await supabase + .from('murid') + .select('id_tabel, nis, nama, gender') + .eq('id_class', idTabelClass) + .or('status_akun.is.null,status_akun.eq.true') + .order('nama'); + return List>.from(response); + } + + static Future>> getGuruByClass(String idTabelClass) async { + final response = await supabase + .from('guru') + .select('id_tabel, nik, name, bidang, wali') + .eq('id_class', idTabelClass) + .or('status_akun.is.null,status_akun.eq.true') + .order('wali', ascending: false); // Wali kelas will be at the top + return List>.from(response); + } + + static Future tambahKelas({ + required num idClass, + required String nameClass, + String? idGuru, + String? idMurid, + String? tahun, + }) async { + final userId = supabase.auth.currentUser?.id; + if (userId == null) throw Exception("User not logged in"); + + await supabase.from('class_name').insert({ + 'id_class': idClass, + 'name_class': nameClass, + 'user_id': userId, + if (idGuru != null) 'id_guru': idGuru, + if (idMurid != null) 'id_murid': idMurid, + if (tahun != null) 'tahun': tahun, + }); + } + + static Future updateKelas({ + required String idTabel, + required num idClass, + required String nameClass, + String? tahun, + }) async { + final userId = supabase.auth.currentUser?.id; + if (userId == null) throw Exception("User not logged in"); + + await supabase.from('class_name').update({ + 'id_class': idClass, + 'name_class': nameClass, + 'tahun': tahun, // can be null to clear + }).eq('id_tabel', idTabel).eq('user_id', userId); + } + + + static Future deleteKelas(String idTabel) async { + final userId = supabase.auth.currentUser?.id; + if (userId == null) throw Exception("User not logged in"); + + // Cari semua murid yang ada di kelas ini + final murids = await supabase + .from('murid') + .select('id_tabel') + .eq('id_class', idTabel) + .eq('user_id', userId); + + if (murids.isNotEmpty) { + final listIdMurid = murids.map((m) => m['id_tabel'].toString()).toList(); + // Hapus data absen untuk semua murid di kelas ini + await supabase.from('absen').delete().inFilter('id_murid', listIdMurid); + } + + // Remove relationships first: set id_class to null for guru and murid + await supabase.from('guru').update({'id_class': null, 'wali': false}).eq('id_class', idTabel).eq('user_id', userId); + await supabase.from('murid').update({'id_class': null}).eq('id_class', idTabel).eq('user_id', userId); + + // Then delete the class + await supabase.from('class_name').delete().eq('id_tabel', idTabel).eq('user_id', userId); + } + + + static Future>> getGuruUnassigned() async { + final userId = supabase.auth.currentUser?.id; + if (userId == null) return []; + final response = await supabase + .from('guru') + .select('id_tabel, nik, name, bidang') + .filter('id_class', 'is', null) + .eq('user_id', userId) + .or('status_akun.is.null,status_akun.eq.true') + .order('name'); + return List>.from(response); + } + + static Future>> getMuridUnassigned() async { + final userId = supabase.auth.currentUser?.id; + if (userId == null) return []; + final response = await supabase + .from('murid') + .select('id_tabel, nis, nama, gender') + .filter('id_class', 'is', null) + .eq('user_id', userId) + .or('status_akun.is.null,status_akun.eq.true') + .order('nama'); + return List>.from(response); + } + + static Future assignGuruToClass(String idGuru, String idTabelClass, {bool isWali = false}) async { + final userId = supabase.auth.currentUser?.id; + if (userId == null) throw Exception("User not logged in"); + await supabase.from('guru').update({ + 'id_class': idTabelClass, + 'wali': isWali, + }).eq('id_tabel', idGuru).eq('user_id', userId); + } + + static Future removeGuruFromClass(String idGuru) async { + final userId = supabase.auth.currentUser?.id; + if (userId == null) throw Exception("User not logged in"); + await supabase.from('guru').update({ + 'id_class': null, + 'wali': false, + }).eq('id_tabel', idGuru).eq('user_id', userId); + } + + static Future assignMuridToClass(String idMurid, String idTabelClass) async { + final userId = supabase.auth.currentUser?.id; + if (userId == null) throw Exception("User not logged in"); + await supabase.from('murid').update({ + 'id_class': idTabelClass, + }).eq('id_tabel', idMurid).eq('user_id', userId); + } + + static Future removeMuridFromClass(String idMurid) async { + final userId = supabase.auth.currentUser?.id; + if (userId == null) throw Exception("User not logged in"); + await supabase.from('murid').update({ + 'id_class': null, + }).eq('id_tabel', idMurid).eq('user_id', userId); + } +} diff --git a/lib/dashboard/a_admin/database/db_namasekolah.dart b/lib/dashboard/a_admin/database/db_namasekolah.dart new file mode 100644 index 0000000..6e21160 --- /dev/null +++ b/lib/dashboard/a_admin/database/db_namasekolah.dart @@ -0,0 +1,87 @@ +import 'package:supabase_flutter/supabase_flutter.dart'; + +class NamaSekolahService { + static final supabase = Supabase.instance.client; + + static Future getNamaSekolah() async { + final userId = supabase.auth.currentUser?.id; + if (userId == null) return null; + + try { + final response = await supabase + .from('nama_sekolah') + .select('sekolah') + .eq('user_id', userId) + .maybeSingle(); + + if (response != null) { + return response['sekolah'] as String; + } + return null; + } catch (e) { + print("Error fetching school name: $e"); + return null; + } + } + + static Future?> getSchoolDetails() async { + final userId = supabase.auth.currentUser?.id; + if (userId == null) return null; + + try { + final response = await supabase + .from('nama_sekolah') + .select('sekolah, wilayah') + .eq('user_id', userId) + .maybeSingle(); + + if (response != null) { + return { + 'sekolah': response['sekolah'] as String?, + 'wilayah': response['wilayah'] as String?, + }; + } + return null; + } catch (e) { + print("Error fetching school details: $e"); + return null; + } + } + + static Future updateNamaSekolah(String newName, String? newWilayah) async { + final userId = supabase.auth.currentUser?.id; + if (userId == null) throw Exception("User not logged in"); + + try { + final existing = await supabase + .from('nama_sekolah') + .select('id_tabel') + .eq('user_id', userId) + .maybeSingle(); + + if (existing != null) { + // Update existing record + await supabase + .from('nama_sekolah') + .update({ + 'sekolah': newName, + 'wilayah': newWilayah, + }) + .eq('id_tabel', existing['id_tabel']) + .eq('user_id', userId); + } else { + // Insert new record + await supabase + .from('nama_sekolah') + .insert({ + 'user_id': userId, + 'sekolah': newName, + 'wilayah': newWilayah, + }); + } + } catch (e) { + print("Error updating school name: $e"); + rethrow; + } + } +} diff --git a/lib/dashboard/a_admin/database/db_pengumuman.dart b/lib/dashboard/a_admin/database/db_pengumuman.dart new file mode 100644 index 0000000..e57cbbe --- /dev/null +++ b/lib/dashboard/a_admin/database/db_pengumuman.dart @@ -0,0 +1,58 @@ +import 'package:supabase_flutter/supabase_flutter.dart'; + +/* +create table public.pengumuman ( + id_tabel uuid not null default gen_random_uuid (), + created_at timestamp with time zone not null default now(), + user_id uuid null, + title text not null, + tanggal_mulai date not null, + tanggal_selesai date not null, + keterangan text null, + id_guru uuid null, + constraint pengumuman_pkey primary key (id_tabel), + constraint pengumuman_id_guru_fkey foreign KEY (id_guru) references guru (id_tabel), + constraint pengumuman_user_id_fkey foreign KEY (user_id) references auth.users (id) +) TABLESPACE pg_default; +*/ + +class DbPengumuman { + static final supabase = Supabase.instance.client; + + static String get userId { + final id = supabase.auth.currentUser?.id; + if (id == null) throw Exception('User belum login'); + return id; + } + + // Insert pengumuman baru + static Future> insertPengumuman({ + required String title, + required String tanggalMulai, + required String tanggalSelesai, + String? keterangan, + String? idGuru, + }) async { + final data = { + 'user_id': userId, + 'title': title, + 'tanggal_mulai': tanggalMulai, + 'tanggal_selesai': tanggalSelesai, + if (keterangan != null && keterangan.isNotEmpty) 'keterangan': keterangan, + if (idGuru != null && idGuru.isNotEmpty) 'id_guru': idGuru, + }; + + final res = await supabase.from('pengumuman').insert(data).select().single(); + return res; + } + + // Get pengumuman berdasarkan ID + static Future?> getPengumumanById(String id) async { + try { + final res = await supabase.from('pengumuman').select().eq('id_tabel', id).eq('user_id', userId).maybeSingle(); + return res; + } catch (e) { + return null; + } + } +} diff --git a/lib/dashboard/a_admin/database/db_pesan_private.dart b/lib/dashboard/a_admin/database/db_pesan_private.dart new file mode 100644 index 0000000..5aa9771 --- /dev/null +++ b/lib/dashboard/a_admin/database/db_pesan_private.dart @@ -0,0 +1,97 @@ +import 'package:flutter/foundation.dart'; +import 'package:supabase_flutter/supabase_flutter.dart'; + +class DbPesanPrivate { + static final supabase = Supabase.instance.client; + + static String get userId { + final id = supabase.auth.currentUser?.id; + if (id == null) { + throw Exception('User belum login'); + } + return id; + } + + // Get Admin ID (for the current logged in user) + Future getAdminId() async { + try { + final res = await supabase + .from('user_admin') + .select('id') + .eq('id', userId) + .single(); + return res['id']?.toString(); + } catch (e) { + if (kDebugMode) print('Get Admin ID Error: $e'); + return null; + } + } + + // Stream chat between Admin and Guru + Stream>> getChatWithGuruStream(String idAdmin, String idGuru) { + return supabase + .from('chat_private') + .stream(primaryKey: ['id_tabel']) + .eq('user_id', userId) + .order('created_at', ascending: true) + .map((data) => data + .where((e) => + (e['pengirim_admin'] == idAdmin && e['penerima_guru'] == idGuru) || + (e['pengirim_guru'] == idGuru && e['penerima_admin'] == idAdmin)) + .map((e) => e as Map) + .toList()); + } + + // Stream chat between Admin and Murid + Stream>> getChatWithMuridStream(String idAdmin, String idMurid) { + return supabase + .from('chat_private') + .stream(primaryKey: ['id_tabel']) + .eq('user_id', userId) + .order('created_at', ascending: true) + .map((data) => data + .where((e) => + (e['pengirim_admin'] == idAdmin && e['penerima_murid'] == idMurid) || + (e['pengirim_murid'] == idMurid && e['penerima_admin'] == idAdmin)) + .map((e) => e as Map) + .toList()); + } + + // Send Message to Guru + Future sendMessageToGuru({ + required String text, + required String idAdmin, + required String idGuru, + }) async { + try { + await supabase.from('chat_private').insert({ + 'text': text, + 'pengirim_admin': idAdmin, + 'penerima_guru': idGuru, + 'user_id': userId, + }); + } catch (e) { + if (kDebugMode) print('Send Message Error: $e'); + throw Exception('Gagal mengirim pesan: $e'); + } + } + + // Send Message to Murid + Future sendMessageToMurid({ + required String text, + required String idAdmin, + required String idMurid, + }) async { + try { + await supabase.from('chat_private').insert({ + 'text': text, + 'pengirim_admin': idAdmin, + 'penerima_murid': idMurid, + 'user_id': userId, + }); + } catch (e) { + if (kDebugMode) print('Send Message Error: $e'); + throw Exception('Gagal mengirim pesan: $e'); + } + } +} diff --git a/lib/dashboard/a_admin/database/db_siswa.dart b/lib/dashboard/a_admin/database/db_siswa.dart new file mode 100644 index 0000000..6d45444 --- /dev/null +++ b/lib/dashboard/a_admin/database/db_siswa.dart @@ -0,0 +1,313 @@ +import 'package:flutter/foundation.dart'; +import 'package:supabase_flutter/supabase_flutter.dart'; + +class MuridService { + final supabase = Supabase.instance.client; + + String get userId { + final id = supabase.auth.currentUser?.id; + if (id == null) { + throw Exception('User belum login'); + } + return id; + } + + // =============================== + // 🔹 GET DATA MURID + // =============================== + Future>> getMurid() async { + try { + final res = await supabase + .from('murid') + .select(''' + id_tabel, + nis, + nama, + id_class, + gender, + tanggal_lahir, + alamat, + orang_tua, + no_tele, + created_at, + class_name!murid_id_class_fkey ( + id_tabel, + name_class + ) + ''') + .eq('user_id', userId) + .or('status_akun.is.null,status_akun.eq.true') + .order('nis', ascending: true); + + return List>.from(res); + } catch (e) { + if (kDebugMode) { + print('GET MURID ERROR: $e'); + } + throw Exception('Gagal memuat data murid: $e'); + } + } + + // =============================== + // 🔹 GET DATA KELAS + // =============================== + Future>> getKelas() async { + try { + final res = await supabase + .from('class_name') + .select('id_tabel, name_class') + .eq('user_id', userId) + .order('name_class', ascending: true); + + return List>.from(res); + } catch (e) { + if (kDebugMode) { + print('GET KELAS ERROR: $e'); + } + return []; + } + } + + Future checkNisDuplicate(String nis, {String? excludeMuridId}) async { + try { + var query = supabase + .from('murid') + .select('id_tabel, status_akun') + .eq('user_id', userId) + .eq('nis', nis); + + if (excludeMuridId != null) { + query = query.neq('id_tabel', excludeMuridId); + } + + final res = await query.limit(1); + if (res.isEmpty) return null; + + final bool statusAkun = res.first['status_akun'] == true; + return statusAkun ? 'active' : 'deleted'; + } catch (e) { + if (kDebugMode) { + print('CHECK NIS DUPLICATE ERROR: $e'); + } + throw Exception('Gagal mengecek NIS murid'); + } + } + + Future checkNamaDuplicate(String nama, {String? excludeMuridId}) async { + try { + var query = supabase + .from('murid') + .select('id_tabel, status_akun') + .eq('user_id', userId) + .eq('nama', nama); + + if (excludeMuridId != null) { + query = query.neq('id_tabel', excludeMuridId); + } + + final res = await query.limit(1); + if (res.isEmpty) return null; + + final bool statusAkun = res.first['status_akun'] == true; + return statusAkun ? 'active' : 'deleted'; + } catch (e) { + if (kDebugMode) { + print('CHECK NAMA DUPLICATE ERROR: $e'); + } + throw Exception('Gagal mengecek nama murid'); + } + } + + // =============================== + // 🔹 INSERT DATA MURID + // =============================== + Future addMurid({ + required String nis, + required String nama, + String? idClass, + String? gender, + DateTime? tanggalLahir, + String? alamat, + String? orangTua, + num? noTele, + }) async { + try { + final nisDup = await checkNisDuplicate(nis); + if (nisDup == 'active') { + throw Exception('NIS sudah terdaftar!'); + } else if (nisDup == 'deleted') { + throw Exception('NIS sudah terdaftar di Tempat Sampah! Silakan periksa Tempat Sampah untuk memulihkannya.'); + } + + final namaDup = await checkNamaDuplicate(nama); + if (namaDup == 'active') { + throw Exception('Nama murid sudah terdaftar!'); + } else if (namaDup == 'deleted') { + throw Exception('Nama murid sudah terdaftar di Tempat Sampah! Silakan periksa Tempat Sampah untuk memulihkannya.'); + } + + await supabase.from('murid').insert({ + 'user_id': userId, + 'nis': nis, + 'nama': nama, + 'id_class': idClass, + 'gender': gender, + 'tanggal_lahir': tanggalLahir?.toIso8601String().split('T').first, + 'alamat': alamat, + 'orang_tua': orangTua, + 'no_tele': noTele, + 'status_akun': true, + }); + } catch (e) { + if (kDebugMode) { + print('ADD MURID ERROR: $e'); + } + rethrow; + } + } + + // =============================== + // 🔹 UPDATE DATA MURID + // pakai primary key id_tabel + // =============================== + Future updateMurid({ + required String idTabel, + required String nis, + required String nama, + String? idClass, + String? gender, + DateTime? tanggalLahir, + String? alamat, + String? orangTua, + num? noTele, + }) async { + try { + final nisDup = await checkNisDuplicate(nis, excludeMuridId: idTabel); + if (nisDup == 'active') { + throw Exception('NIS sudah terdaftar!'); + } else if (nisDup == 'deleted') { + throw Exception('NIS sudah terdaftar di Tempat Sampah! Silakan periksa Tempat Sampah untuk memulihkannya.'); + } + + final namaDup = await checkNamaDuplicate(nama, excludeMuridId: idTabel); + if (namaDup == 'active') { + throw Exception('Nama murid sudah terdaftar!'); + } else if (namaDup == 'deleted') { + throw Exception('Nama murid sudah terdaftar di Tempat Sampah! Silakan periksa Tempat Sampah untuk memulihkannya.'); + } + + await supabase + .from('murid') + .update({ + 'nis': nis, + 'nama': nama, + 'id_class': idClass, + 'gender': gender, + 'tanggal_lahir': + tanggalLahir?.toIso8601String().split('T').first, + 'alamat': alamat, + 'orang_tua': orangTua, + 'no_tele': noTele, + }) + .eq('id_tabel', idTabel) + .eq('user_id', userId); + } catch (e) { + if (kDebugMode) { + print('UPDATE MURID ERROR: $e'); + } + rethrow; + } + } + + // =============================== + // 🔹 DELETE DATA MURID + // pakai primary key id_tabel + // =============================== + Future deleteMurid(String idTabel) async { + try { + await supabase + .from('murid') + .update({ + 'status_akun': false, + 'id_class': null, + }) + .eq('id_tabel', idTabel) + .eq('user_id', userId); + } catch (e) { + if (kDebugMode) { + print('DELETE MURID ERROR: $e'); + } + rethrow; + } + } + + // =============================== + // 🔹 GET DELETED MURID + // =============================== + Future>> getDeletedMurid() async { + try { + final res = await supabase + .from('murid') + .select(''' + id_tabel, + nis, + nama, + id_class, + gender, + tanggal_lahir, + alamat, + orang_tua, + no_tele, + created_at, + class_name!murid_id_class_fkey ( + id_tabel, + name_class + ) + ''') + .eq('user_id', userId) + .eq('status_akun', false) + .order('nis', ascending: true); + + return List>.from(res); + } catch (e) { + if (kDebugMode) { + print('GET DELETED MURID ERROR: $e'); + } + throw Exception('Gagal memuat data murid yang dihapus: $e'); + } + } + + // =============================== + // 🔹 RESTORE DATA MURID + // =============================== + Future restoreMurid(String idTabel) async { + try { + await supabase + .from('murid') + .update({ + 'status_akun': true, + }) + .eq('id_tabel', idTabel) + .eq('user_id', userId); + } catch (e) { + if (kDebugMode) { + print('RESTORE MURID ERROR: $e'); + } + rethrow; + } + } + + // =============================== + // 🔹 DELETE DATA MURID PERMANENTLY + // =============================== + Future deleteMuridPermanently(String idTabel) async { + try { + await supabase.from('murid').delete().eq('id_tabel', idTabel).eq('user_id', userId); + } catch (e) { + if (kDebugMode) { + print('DELETE MURID PERMANENTLY ERROR: $e'); + } + rethrow; + } + } +} \ No newline at end of file diff --git a/lib/dashboard/a_admin/database/storage/doc_pengumuman.dart b/lib/dashboard/a_admin/database/storage/doc_pengumuman.dart new file mode 100644 index 0000000..450d5b5 --- /dev/null +++ b/lib/dashboard/a_admin/database/storage/doc_pengumuman.dart @@ -0,0 +1,28 @@ +import 'dart:typed_data'; +import 'package:supabase_flutter/supabase_flutter.dart'; + +class DocPengumuman { + static final supabase = Supabase.instance.client; + + static Future uploadDoc(Uint8List bytes, String title, String ext) async { + try { + final userId = supabase.auth.currentUser?.id; + if (userId == null) return null; + + final fileName = '${DateTime.now().millisecondsSinceEpoch}.$ext'; + final path = '$userId/$title/$fileName'; + + // Asumsikan bucket bernama 'pengumuman' + await supabase.storage.from('pengumuman').uploadBinary( + path, + bytes, + fileOptions: const FileOptions(upsert: true) + ); + + return supabase.storage.from('pengumuman').getPublicUrl(path); + } catch (e) { + print('Upload Doc Pengumuman Error: $e'); + return null; + } + } +} diff --git a/lib/dashboard/a_admin/database/storage/image_doc.dart b/lib/dashboard/a_admin/database/storage/image_doc.dart new file mode 100644 index 0000000..b6442e1 --- /dev/null +++ b/lib/dashboard/a_admin/database/storage/image_doc.dart @@ -0,0 +1,48 @@ +import 'dart:io'; +import 'dart:typed_data'; +import 'package:supabase_flutter/supabase_flutter.dart'; + +class ImageDocStorage { + static final supabase = Supabase.instance.client; + + static Future uploadFile(Uint8List bytes, String fileName) async { + try { + final userId = supabase.auth.currentUser?.id; + if (userId == null) return null; + + // path: userId/doc_image/fileName (di dalam bucket chat_file) + final path = '$userId/doc_image/${DateTime.now().millisecondsSinceEpoch}_$fileName'; + + await supabase.storage.from('chat_file').uploadBinary( + path, + bytes, + fileOptions: const FileOptions(upsert: true), + ); + + return supabase.storage.from('chat_file').getPublicUrl(path); + } catch (e) { + print('Upload Image/Doc Error: $e'); + return null; + } + } + + static Future uploadFileObject(File file, String fileName) async { + try { + final userId = supabase.auth.currentUser?.id; + if (userId == null) return null; + + final path = '$userId/doc_image/${DateTime.now().millisecondsSinceEpoch}_$fileName'; + + await supabase.storage.from('chat_file').upload( + path, + file, + fileOptions: const FileOptions(upsert: true), + ); + + return supabase.storage.from('chat_file').getPublicUrl(path); + } catch (e) { + print('Upload File Error: $e'); + return null; + } + } +} diff --git a/lib/dashboard/a_admin/database/storage/image_profile.dart b/lib/dashboard/a_admin/database/storage/image_profile.dart new file mode 100644 index 0000000..4e18cf8 --- /dev/null +++ b/lib/dashboard/a_admin/database/storage/image_profile.dart @@ -0,0 +1,41 @@ +import 'dart:typed_data'; +import 'package:supabase_flutter/supabase_flutter.dart'; + +class ImageProfileStorage { + final _supabase = Supabase.instance.client; + final String _bucketName = 'image_profil'; + + // Mendapatkan Signed URL untuk gambar profil + Future getProfileImageUrl(String userId) async { + try { + final url = await _supabase.storage + .from(_bucketName) + .createSignedUrl('$userId/profile_admin', 60 * 60); // Expired dalam 1 jam + return url; + } catch (e) { + // Abaikan jika gambar belum ada atau RLS menolak akses + return null; + } + } + + // Mengupload gambar profil dan mengembalikan URL baru + Future uploadProfileImage(String userId, Uint8List bytes) async { + final path = '$userId/profile_admin'; + + await _supabase.storage + .from(_bucketName) + .uploadBinary(path, bytes, fileOptions: const FileOptions(upsert: true)); + + final newUrl = await _supabase.storage + .from(_bucketName) + .createSignedUrl(path, 60 * 60); + + return newUrl; + } + + // Menghapus gambar profil + Future deleteProfileImage(String userId) async { + final path = '$userId/profile_admin'; + await _supabase.storage.from(_bucketName).remove([path]); + } +} diff --git a/lib/dashboard/a_admin/function/f_alat/config_page.dart b/lib/dashboard/a_admin/function/f_alat/config_page.dart new file mode 100644 index 0000000..b7c88ed --- /dev/null +++ b/lib/dashboard/a_admin/function/f_alat/config_page.dart @@ -0,0 +1,277 @@ +import 'dart:convert'; +import 'package:flutter/material.dart'; +import 'package:http/http.dart' as http; +import 'package:shared_preferences/shared_preferences.dart'; + +class ConfigPage extends StatefulWidget { + const ConfigPage({super.key}); + + @override + State createState() => _ConfigPageState(); +} + +class _ConfigPageState extends State { + final ssidController = TextEditingController(); + final passwordController = TextEditingController(); + final urlController = TextEditingController(); + final espIPController = TextEditingController(); + + bool loading = false; + String espIP = "192.168.4.1"; + + @override + void initState() { + super.initState(); + loadESPIP(); + } + + @override + void dispose() { + ssidController.dispose(); + passwordController.dispose(); + urlController.dispose(); + espIPController.dispose(); + super.dispose(); + } + + Future loadESPIP() async { + final prefs = await SharedPreferences.getInstance(); + espIP = prefs.getString('esp_ip') ?? "192.168.4.1"; + espIPController.text = espIP; + if (mounted) setState(() {}); + } + + Future saveESPIP() async { + final prefs = await SharedPreferences.getInstance(); + espIP = espIPController.text.trim(); + await prefs.setString('esp_ip', espIP); + + if (mounted) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text('ESP IP: $espIP')), + ); + } + if (mounted) setState(() {}); + } + + Future saveConfig() async { + setState(() => loading = true); + try { + final response = await http.post( + Uri.parse('http://$espIP/save'), + body: { + 'ssid': ssidController.text, + 'password': passwordController.text, + 'url': urlController.text, + }, + ).timeout(const Duration(seconds: 7)); + if (response.statusCode == 200) { + if (mounted) { + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text('CONFIG SAVED')), + ); + } + } + } catch (e) { + if (mounted) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text('Error: $e')), + ); + } + } + if (mounted) setState(() => loading = false); + } + + Future resetServer() async { + setState(() => loading = true); + try { + final response = await http.post(Uri.parse('http://$espIP/reset_server')).timeout(const Duration(seconds: 7)); + if (mounted) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text(response.body)), + ); + } + } catch (e) { + if (mounted) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text('Error: $e')), + ); + } + } + if (mounted) setState(() => loading = false); + } + + Widget field( + String label, + TextEditingController controller, { + bool obscureText = false, + String? hintText, + }) { + return Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + label, + style: const TextStyle( + fontFamily: 'Inter', + fontWeight: FontWeight.w600, + fontSize: 14, + color: Color(0xFF1E293B), + ), + ), + const SizedBox(height: 6), + TextField( + controller: controller, + obscureText: obscureText, + style: const TextStyle(fontFamily: 'Inter'), + decoration: InputDecoration( + hintText: hintText ?? "Masukkan $label", + hintStyle: const TextStyle(color: Color(0xFFC4C4C4), fontFamily: 'Inter'), + filled: true, + fillColor: const Color(0xFFF1F5F9), + contentPadding: const EdgeInsets.symmetric(horizontal: 20, vertical: 18), + border: OutlineInputBorder( + borderRadius: BorderRadius.circular(16), + borderSide: const BorderSide(color: Color(0xFFE2E8F0)), + ), + enabledBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(16), + borderSide: const BorderSide(color: Color(0xFFE2E8F0)), + ), + ), + ), + const SizedBox(height: 16), + ], + ); + } + + Widget _actionButton({ + required String label, + required Color color, + required VoidCallback? onPressed, + bool loading = false, + }) { + final bool isWhite = color == Colors.white; + return SizedBox( + width: double.infinity, + child: ElevatedButton( + onPressed: onPressed, + style: ElevatedButton.styleFrom( + backgroundColor: color, + foregroundColor: isWhite ? const Color(0xFF64748B) : Colors.white, + elevation: 0, + padding: const EdgeInsets.symmetric(vertical: 16), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(24), + side: isWhite ? const BorderSide(color: Color(0xFF94A3B8)) : BorderSide.none, + ), + ), + child: loading + ? SizedBox( + width: 20, + height: 20, + child: CircularProgressIndicator( + color: isWhite ? const Color(0xFF64748B) : Colors.white, + strokeWidth: 2, + ), + ) + : Text( + label, + style: const TextStyle( + fontFamily: 'Inter', + fontSize: 16, + fontWeight: FontWeight.w700, + ), + ), + ), + ); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: Colors.white, + appBar: AppBar( + backgroundColor: const Color(0xFF2563EB), + elevation: 0, + automaticallyImplyLeading: true, + leading: IconButton( + icon: Image.asset('lib/assets/icons/Button.png', width: 30, height: 30), + onPressed: () => Navigator.pop(context), + ), + titleSpacing: -5, + title: const Text("ESP32-S3 CONFIG"), + titleTextStyle: const TextStyle( + fontFamily: "Inter", + fontSize: 16, + fontWeight: FontWeight.w700, + color: Colors.white, + ), + ), + body: SingleChildScrollView( + padding: const EdgeInsets.all(24), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Container( + padding: const EdgeInsets.all(20), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(20), + border: Border.all(color: const Color(0xFFE2E8F0)), + ), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + field("ESP IP", espIPController, hintText: "192.168.4.1"), + _actionButton( + label: "SIMPAN IP ESP", + color: Colors.white, + onPressed: saveESPIP, + ), + ], + ), + ), + + const SizedBox(height: 24), + + Container( + padding: const EdgeInsets.all(20), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(20), + border: Border.all(color: const Color(0xFFE2E8F0)), + ), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + field("WiFi SSID", ssidController), + field("Password", passwordController, obscureText: true), + field("Server URL", urlController, hintText: "http://192.168.100.16:8000"), + + const SizedBox(height: 8), + + _actionButton( + label: "SAVE CONFIG", + color: const Color(0xFF2563EB), + onPressed: loading ? null : saveConfig, + loading: loading, + ), + + const SizedBox(height: 12), + + _actionButton( + label: "RESET SERVER CONNECTION", + color: const Color(0xFFDC2626), // Red color + onPressed: loading ? null : resetServer, + loading: loading, + ), + ], + ), + ), + ], + ), + ), + ); + } +} \ No newline at end of file diff --git a/lib/dashboard/a_admin/function/f_alat/config_user.dart b/lib/dashboard/a_admin/function/f_alat/config_user.dart new file mode 100644 index 0000000..6865099 --- /dev/null +++ b/lib/dashboard/a_admin/function/f_alat/config_user.dart @@ -0,0 +1,724 @@ +import 'dart:convert'; +import 'package:flutter/material.dart'; +import 'package:http/http.dart' as http; +import 'package:shared_preferences/shared_preferences.dart'; +import 'package:apk/dashboard/a_admin/function/f_murid/get_murid.dart'; + +class ConfigUser extends StatefulWidget { + final String? initialUid; + const ConfigUser({super.key, this.initialUid}); + + @override + State createState() => _ConfigUserState(); +} + +class _ConfigUserState extends State { + // Server URL terpisah — diset sendiri di halaman ini + final _serverUrlController = TextEditingController(); + + // Step 1 — Set Identitas (ARM) + final _uidController = TextEditingController(); + + // Step 3 — Detek / Absen + final _thresholdController = TextEditingController(text: '0.38'); + + bool _loadingArm = false; + bool _loadingEnroll = false; + bool _loadingDetect = false; + + String _statusArm = '-'; + String _statusEnroll = '-'; + String _statusDetect = '-'; + String _statusESP = '-'; + + String _serverUrl = 'http://192.168.100.16:8000'; + + /// Header wajib untuk melewati halaman peringatan ngrok. + /// Aman juga dipakai ke server non-ngrok (header tak dikenal diabaikan). + Map get _headers => { + 'ngrok-skip-browser-warning': 'true', + 'Content-Type': 'application/x-www-form-urlencoded', + }; + + @override + void initState() { + super.initState(); + _loadPrefs(); + if (widget.initialUid != null) { + _uidController.text = widget.initialUid!; + } + } + + @override + void dispose() { + _serverUrlController.dispose(); + _uidController.dispose(); + _thresholdController.dispose(); + super.dispose(); + } + + Future _loadPrefs() async { + final prefs = await SharedPreferences.getInstance(); + // Hapus trailing slash agar tidak jadi double-slash saat digabung dengan path + final raw = prefs.getString('face_server_url') ?? 'http://192.168.100.16:8000'; + _serverUrl = raw.replaceAll(RegExp(r'/+$'), ''); + if (mounted) { + setState(() { + _serverUrlController.text = _serverUrl; + }); + } + } + + Future _saveServerUrl() async { + final prefs = await SharedPreferences.getInstance(); + // Hapus trailing slash agar tidak jadi double-slash saat digabung dengan path + _serverUrl = _serverUrlController.text.trim().replaceAll(RegExp(r'/+$'), ''); + _serverUrlController.text = _serverUrl; + await prefs.setString('face_server_url', _serverUrl); + if (mounted) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + content: Text('Server URL disimpan: $_serverUrl'), + backgroundColor: Colors.green, + ), + ); + setState(() {}); + } + } + Future _arm() async { + final input = _uidController.text.trim(); + if (input.isEmpty) { + setState(() => _statusArm = 'UID / Nama tidak boleh kosong'); + return; + } + setState(() { + _loadingArm = true; + _statusArm = 'Mengirim...'; + }); + try { + // /arm/enroll menerima query param ?name=... (bukan body) + final uri = Uri.parse('$_serverUrl/arm/enroll') + .replace(queryParameters: {'name': input}); + final resp = await http.post(uri, headers: _headers) + .timeout(const Duration(seconds: 10)); + final body = _tryPrettyJson(resp.body); + setState(() => _statusArm = body); + } catch (e) { + setState(() => _statusArm = 'Error: $e'); + } finally { + setState(() => _loadingArm = false); + } + } + + Future _clearArm() async { + _uidController.clear(); + setState(() => _statusArm = '-'); + try { + // DELETE /arm/enroll untuk clear armed identity + final uri = Uri.parse('$_serverUrl/arm/enroll'); + final req = http.Request('DELETE', uri); + req.headers.addAll(_headers); + final streamedResp = await req.send().timeout(const Duration(seconds: 5)); + await streamedResp.stream.drain(); + } catch (_) {} + } + + Future _enroll() async { + setState(() { + _loadingEnroll = true; + _statusEnroll = 'Mengirim perintah Jepret & Daftar...'; + }); + try { + // /job/capture_enroll — pakai armed identity yang sudah di-SET sebelumnya + final resp = await http.post( + Uri.parse('$_serverUrl/job/capture_enroll'), + headers: _headers, + ).timeout(const Duration(seconds: 30)); + final body = _tryPrettyJson(resp.body); + setState(() => _statusEnroll = body); + _fetchESPStatus(); + } catch (e) { + setState(() => _statusEnroll = 'Error: $e'); + } finally { + setState(() => _loadingEnroll = false); + } + } + + Future _detect({bool quick = false}) async { + setState(() { + _loadingDetect = true; + _statusDetect = 'Mendeteksi wajah...'; + }); + try { + final threshold = _thresholdController.text.trim(); + + // /job/recog menerima query param ?threshold=...&uid=... + final params = {}; + if (threshold.isNotEmpty) params['threshold'] = threshold; + final uri = Uri.parse('$_serverUrl/job/recog') + .replace(queryParameters: params.isNotEmpty ? params : null); + + final resp = await http.post(uri, headers: _headers) + .timeout(const Duration(seconds: 30)); + final respBody = _tryPrettyJson(resp.body); + setState(() => _statusDetect = respBody); + _fetchESPStatus(); + } catch (e) { + setState(() => _statusDetect = 'Error: $e'); + } finally { + setState(() => _loadingDetect = false); + } + } + + Future _fetchESPStatus() async { + try { + // /job/last — status pekerjaan terakhir yang dikerjakan ESP32 + final resp = await http.get( + Uri.parse('$_serverUrl/job/last'), + headers: _headers, + ).timeout(const Duration(seconds: 8)); + setState(() => _statusESP = _tryPrettyJson(resp.body)); + } catch (e) { + setState(() => _statusESP = 'Tidak dapat mengambil status: $e'); + } + } + + String _tryPrettyJson(String raw) { + try { + final decoded = json.decode(raw); + return const JsonEncoder.withIndent(' ').convert(decoded); + } catch (_) { + return raw; + } + } + + // ────────────────────────────────────────────────────────────────────────── + // Widget helpers + // ────────────────────────────────────────────────────────────────────────── + + + final _cleanupNameController = TextEditingController(); + final _cleanupUidController = TextEditingController(); + bool _loadingCleanup = false; + String _statusCleanup = '-'; + + Future _deleteByName() async { + final name = _cleanupNameController.text.trim(); + if (name.isEmpty) return; + setState(() { + _loadingCleanup = true; + _statusCleanup = 'Menghapus...'; + }); + try { + final uri = Uri.parse('$_serverUrl/person/delete').replace(queryParameters: {'name': name}); + final req = http.Request('DELETE', uri)..headers.addAll(_headers); + final resp = await req.send().timeout(const Duration(seconds: 10)); + final body = await resp.stream.bytesToString(); + setState(() => _statusCleanup = _tryPrettyJson(body)); + } catch (e) { + setState(() => _statusCleanup = 'Error: $e'); + } finally { + setState(() => _loadingCleanup = false); + } + } + + Future _deleteByUid() async { + final uid = _cleanupUidController.text.trim(); + if (uid.isEmpty) return; + setState(() { + _loadingCleanup = true; + _statusCleanup = 'Menghapus...'; + }); + try { + final uri = Uri.parse('$_serverUrl/person/delete').replace(queryParameters: {'uid': uid}); + final req = http.Request('DELETE', uri)..headers.addAll(_headers); + final resp = await req.send().timeout(const Duration(seconds: 10)); + final body = await resp.stream.bytesToString(); + setState(() => _statusCleanup = _tryPrettyJson(body)); + } catch (e) { + setState(() => _statusCleanup = 'Error: $e'); + } finally { + setState(() => _loadingCleanup = false); + } + } + + Future _cleanupUnused() async { + setState(() { + _loadingCleanup = true; + _statusCleanup = 'Menghapus data kosong...'; + }); + try { + final resp = await http.post( + Uri.parse('$_serverUrl/cleanup/unused'), + headers: _headers, + ).timeout(const Duration(seconds: 15)); + setState(() => _statusCleanup = _tryPrettyJson(resp.body)); + } catch (e) { + setState(() => _statusCleanup = 'Error: $e'); + } finally { + setState(() => _loadingCleanup = false); + } + } + + Widget _sectionTitle(String text) => Text( + text, + style: const TextStyle( + fontFamily: 'Inter', + fontWeight: FontWeight.w700, + fontSize: 15, + color: Color(0xFF2563EB), + ), + ); + + Widget _subLabel(String text) => Text( + text, + style: const TextStyle( + fontFamily: 'Inter', + fontSize: 12, + color: Color(0xFF64748B), + ), + ); + + Widget _fieldLabel(String text) => Padding( + padding: const EdgeInsets.only(bottom: 6), + child: Text( + text, + style: const TextStyle( + fontFamily: 'Inter', + fontWeight: FontWeight.w600, + fontSize: 13, + color: Color(0xFF1E293B), + ), + ), + ); + + InputDecoration _inputDeco(String hint) => InputDecoration( + hintText: hint, + hintStyle: const TextStyle(color: Color(0xFFC4C4C4), fontFamily: 'Inter', fontSize: 13), + filled: true, + fillColor: const Color(0xFFF1F5F9), + contentPadding: const EdgeInsets.symmetric(horizontal: 14, vertical: 14), + border: OutlineInputBorder( + borderRadius: BorderRadius.circular(12), + borderSide: const BorderSide(color: Color(0xFFE2E8F0)), + ), + enabledBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(12), + borderSide: const BorderSide(color: Color(0xFFE2E8F0)), + ), + focusedBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(12), + borderSide: const BorderSide(color: Color(0xFF2563EB), width: 1.5), + ), + ); + + Widget _actionBtn({ + required String label, + required Color color, + required VoidCallback? onPressed, + bool loading = false, + double? width, + Color? textColor, + Color? borderColor, + }) { + final isOutlined = color == Colors.white || color == Colors.transparent; + return SizedBox( + width: width ?? double.infinity, + child: ElevatedButton( + onPressed: loading ? null : onPressed, + style: ElevatedButton.styleFrom( + backgroundColor: color, + foregroundColor: textColor ?? (isOutlined ? const Color(0xFF64748B) : Colors.white), + elevation: 0, + padding: const EdgeInsets.symmetric(vertical: 13), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(10), + side: borderColor != null + ? BorderSide(color: borderColor) + : isOutlined + ? const BorderSide(color: Color(0xFFCBD5E1)) + : BorderSide.none, + ), + ), + child: loading + ? SizedBox( + width: 18, + height: 18, + child: CircularProgressIndicator( + color: isOutlined ? const Color(0xFF64748B) : Colors.white, + strokeWidth: 2, + ), + ) + : Text( + label, + style: TextStyle( + fontFamily: 'Inter', + fontSize: 13, + fontWeight: FontWeight.w700, + color: textColor ?? (isOutlined ? const Color(0xFF64748B) : Colors.white), + ), + ), + ), + ); + } + + Widget _statusBox(String text) => Container( + width: double.infinity, + constraints: const BoxConstraints(minHeight: 48), + padding: const EdgeInsets.all(12), + decoration: BoxDecoration( + color: const Color(0xFFF8FAFC), + borderRadius: BorderRadius.circular(10), + border: Border.all(color: const Color(0xFFE2E8F0)), + ), + child: SelectableText( + text, + style: const TextStyle( + fontFamily: 'Inter', + fontSize: 12, + color: Color(0xFF475569), + ), + ), + ); + + Widget _card({required Widget child}) => Container( + width: double.infinity, + padding: const EdgeInsets.all(16), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(16), + border: Border.all(color: const Color(0xFFE2E8F0)), + boxShadow: [ + BoxShadow( + // ignore: deprecated_member_use + color: Colors.black.withOpacity(0.04), + blurRadius: 8, + offset: const Offset(0, 2), + ), + ], + ), + child: child, + ); + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: const Color(0xFFF4F7FB), + appBar: AppBar( + backgroundColor: const Color(0xFF2563EB), + elevation: 0, + automaticallyImplyLeading: true, + leading: IconButton( + icon: Image.asset('lib/assets/icons/Button.png', width: 30, height: 30), + onPressed: () => Navigator.pop(context), + ), + titleSpacing: -5, + title: const Text("ESP32 FACE CONTROL"), + titleTextStyle: const TextStyle( + fontFamily: "Inter", + fontSize: 16, + fontWeight: FontWeight.w700, + color: Colors.white, + ), + actions: [ + IconButton( + icon: const Icon(Icons.refresh, color: Colors.white), + tooltip: 'Refresh Status', + onPressed: _fetchESPStatus, + ), + ], + ), + body: SingleChildScrollView( + padding: const EdgeInsets.all(16), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + // ── Server URL ────────────────────────────────────────────────── + _card( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + _sectionTitle('Server URL'), + const SizedBox(height: 4), + _subLabel('URL server Python / ngrok yang sedang berjalan'), + const SizedBox(height: 12), + TextField( + controller: _serverUrlController, + style: const TextStyle(fontFamily: 'Inter', fontSize: 13), + decoration: _inputDeco('https://xxxx.ngrok-free.app atau http://192.168.x.x:8000'), + ), + const SizedBox(height: 10), + _actionBtn( + label: 'SIMPAN URL', + color: Colors.white, + onPressed: _saveServerUrl, + borderColor: const Color(0xFF2563EB), + textColor: const Color(0xFF2563EB), + ), + ], + ), + ), + + const SizedBox(height: 14), + + // ── Step 1 + Step 2 + Step 3 ───────────────────────────────── + // On narrow screen: vertical; on wide: row (handled with LayoutBuilder) + LayoutBuilder(builder: (context, constraints) { + final isWide = constraints.maxWidth > 600; + if (isWide) { + return Row( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Expanded(child: _step1Card()), + const SizedBox(width: 12), + Expanded(child: _step2Card()), + const SizedBox(width: 12), + Expanded(child: _step3Card()), + const SizedBox(width: 12), + Expanded(child: _cleanupCard()), + ], + ); + } + return Column( + children: [ + _step1Card(), + const SizedBox(height: 14), + _step2Card(), + const SizedBox(height: 14), + _step3Card(), + const SizedBox(height: 14), + _cleanupCard(), + ], + ); + }), + + const SizedBox(height: 14), + + // ── Status ESP32 ───────────────────────────────────────────── + _card( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + _sectionTitle('Status terakhir dari ESP32'), + TextButton.icon( + onPressed: _fetchESPStatus, + icon: const Icon(Icons.sync, size: 16), + label: const Text( + 'Refresh', + style: TextStyle(fontFamily: 'Inter', fontSize: 12), + ), + ), + ], + ), + const SizedBox(height: 4), + _subLabel('ESP32 akan kirim hasil ke server setelah selesai.'), + const SizedBox(height: 10), + _statusBox(_statusESP), + ], + ), + ), + ], + ), + ), + ); + } + + // ── Panel Step 1 ───────────────────────────────────────────────────────── + Widget _step1Card() => _card( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + _sectionTitle('Step 1 — Set Identitas (ARM)'), + const SizedBox(height: 4), + _subLabel( + 'Isi UID RFID (atau nama). Ini belum jepret.\nHanya "ngunci" identitas dulu.', + ), + const SizedBox(height: 14), + _fieldLabel('UID / Name'), + InkWell( + onTap: () async { + final selected = await Navigator.push( + context, + MaterialPageRoute( + builder: (_) => const MuridPage(isSelectionMode: true), + ), + ); + if (selected != null && selected is Map) { + setState(() { + _uidController.text = selected['nama']?.toString() ?? ''; + }); + } + }, + child: IgnorePointer( + child: TextField( + controller: _uidController, + readOnly: true, + style: const TextStyle(fontFamily: 'Inter', fontSize: 13), + decoration: _inputDeco('Pilih Murid dari Daftar...').copyWith( + suffixIcon: const Icon(Icons.arrow_drop_down), + ), + ), + ), + ), + const SizedBox(height: 10), + Row( + children: [ + Expanded( + child: _actionBtn( + label: 'SET', + color: const Color(0xFF2563EB), + onPressed: _arm, + loading: _loadingArm, + ), + ), + const SizedBox(width: 8), + Expanded( + child: _actionBtn( + label: 'CLEAR', + color: Colors.white, + onPressed: _clearArm, + borderColor: const Color(0xFFCBD5E1), + ), + ), + ], + ), + const SizedBox(height: 10), + _statusBox(_statusArm), + ], + ), + ); + + // ── Panel Step 2 ───────────────────────────────────────────────────────── + Widget _step2Card() => _card( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + _sectionTitle('Step 2 — Jepret & Daftar Wajah'), + const SizedBox(height: 4), + _subLabel( + 'Setelah UID/name di Step 1, pencet ini\nuntuk jepret dan enroll.', + ), + const SizedBox(height: 14), + _actionBtn( + label: 'JEPRET & DAFTAR', + color: const Color(0xFF059669), + onPressed: _enroll, + loading: _loadingEnroll, + ), + const SizedBox(height: 10), + _statusBox(_statusEnroll), + ], + ), + ); + + // ── Panel Step 3 ───────────────────────────────────────────────────────── + + // ── Panel Cleanup ──────────────────────────────────────────────────────── + Widget _cleanupCard() => _card( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + _sectionTitle('Manajemen Data & Cleanup'), + const SizedBox(height: 4), + _subLabel('Hapus pengguna spesifik atau bersihkan baris data kosong tanpa wajah & kartu.'), + const SizedBox(height: 14), + + _fieldLabel('Nama Pengguna'), + TextField( + controller: _cleanupNameController, + style: const TextStyle(fontFamily: 'Inter', fontSize: 13), + decoration: _inputDeco('Andi'), + ), + const SizedBox(height: 10), + _actionBtn( + label: 'HAPUS BY NAMA', + color: const Color(0xFFDC2626), + onPressed: _deleteByName, + loading: _loadingCleanup, + ), + + const Padding( + padding: EdgeInsets.symmetric(vertical: 12), + child: Divider(color: Color(0xFFE2E8F0)), + ), + + _fieldLabel('UID RFID'), + TextField( + controller: _cleanupUidController, + style: const TextStyle(fontFamily: 'Inter', fontSize: 13), + decoration: _inputDeco('04 AB:12 CD'), + ), + const SizedBox(height: 10), + _actionBtn( + label: 'HAPUS BY RFID', + color: const Color(0xFFDC2626), + onPressed: _deleteByUid, + loading: _loadingCleanup, + ), + + const Padding( + padding: EdgeInsets.symmetric(vertical: 12), + child: Divider(color: Color(0xFFE2E8F0)), + ), + + _actionBtn( + label: 'BERSIHKAN DATA KOSONG', + color: const Color(0xFFF59E0B), + onPressed: _cleanupUnused, + loading: _loadingCleanup, + ), + + const SizedBox(height: 10), + _statusBox(_statusCleanup), + ], + ), + ); + + Widget _step3Card() => _card( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + _sectionTitle('Detek / Absen (Recognize)'), + const SizedBox(height: 4), + _subLabel( + 'Pencet untuk mulai deteksi.\nESP32 ambil foto dan kirim ke server.', + ), + const SizedBox(height: 14), + Row( + children: [ + Expanded( + child: _actionBtn( + label: 'DETEK SEKARANG', + color: const Color(0xFF7C3AED), + onPressed: () => _detect(quick: true), + loading: _loadingDetect, + ), + ), + const SizedBox(width: 8), + _subLabel('1 klik,\npakai\nthreshold\ndefault'), + ], + ), + const SizedBox(height: 14), + _fieldLabel('Threshold'), + TextField( + controller: _thresholdController, + keyboardType: TextInputType.number, + style: const TextStyle(fontFamily: 'Inter', fontSize: 13), + decoration: _inputDeco('0.38'), + ), + const SizedBox(height: 10), + _actionBtn( + label: 'DETEK', + color: const Color(0xFF2563EB), + onPressed: _detect, + loading: _loadingDetect, + ), + const SizedBox(height: 10), + _statusBox(_statusDetect), + ], + ), + ); +} diff --git a/lib/dashboard/a_admin/function/f_guru/detail_guru.dart b/lib/dashboard/a_admin/function/f_guru/detail_guru.dart new file mode 100644 index 0000000..bacc71a --- /dev/null +++ b/lib/dashboard/a_admin/function/f_guru/detail_guru.dart @@ -0,0 +1,370 @@ +import 'package:flutter/material.dart'; +import 'package:apk/dashboard/a_admin/database/db_guru.dart'; +import 'package:apk/dashboard/a_admin/widget/custom_button.dart'; +import 'package:apk/dashboard/a_admin/function/f_guru/update_guru.dart'; + +class DetailGuruPage extends StatefulWidget { + final Map data; + + const DetailGuruPage({ + super.key, + required this.data, + }); + + @override + State createState() => _DetailGuruPageState(); +} + +class _DetailGuruPageState extends State { + late Map currentData; + + @override + void initState() { + super.initState(); + currentData = Map.from(widget.data); + } + + Future deleteData() async { + try { + await GuruService.deleteGuru(currentData['id_tabel']); + if (!mounted) return; + Navigator.pop(context, true); + } catch (e) { + if (!mounted) return; + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text(e.toString().replaceAll('Exception: ', ''))), + ); + } + } + + String get _nama => currentData['name']?.toString().isEmpty ?? true ? "Belum diisi" : currentData['name']; + String get _nik => currentData['nik']?.toString().isEmpty ?? true ? "Belum diisi" : currentData['nik'].toString(); + bool get _isWali => currentData['wali'] == true; + String get _bidang => currentData['bidang']?.toString() ?? ""; + + String get _badge { + final kelas = currentData['class_name']?['name_class']?.toString() ?? ""; + if (_isWali) { + return kelas.isEmpty ? "Wali Kelas" : kelas; + } + return _bidang.isEmpty ? "Guru" : _bidang; + } + + IconData _iconForLabel(String label) { + switch (label) { + case "NIK": + return Icons.badge_outlined; + case "Nama": + return Icons.person_outline; + case "Bidang": + return Icons.menu_book_outlined; + default: + return Icons.info_outline; + } + } + + Widget _infoCard({ + required IconData icon, + required String title, + required String value, + bool isEmpty = false, + }) { + return CustomCard( + title: title, + subtitle: value, + icon: icon, + iconPosition: IconPosition.left, + iconColor: const Color(0xFF2563EB), + iconSize: 24, + iconContainerSize: 46, + iconDecoration: BoxDecoration( + color: const Color(0xFFEFF6FF), + borderRadius: BorderRadius.circular(9), + ), + backgroundColor: Colors.white, + borderColor: Colors.transparent, + borderWidth: 0, + borderRadius: 0, + margin: EdgeInsets.zero, + padding: const EdgeInsets.symmetric(horizontal: 20, vertical: 16), + boxShadow: const [], + titleStyle: const TextStyle( + fontFamily: 'Inter', + fontSize: 14, + fontWeight: FontWeight.w500, + color: Color(0xFF8FA0BA), + ), + subtitleStyle: TextStyle( + fontFamily: 'Inter', + fontSize: 14, + fontWeight: FontWeight.w700, + fontStyle: isEmpty ? FontStyle.italic : FontStyle.normal, + color: isEmpty ? const Color(0xFFC8D2E0) : const Color(0xFF172033), + ), + showIcon: true, + ); + } + + Widget _sectionCard(List children) { + return Container( + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(20), + border: Border.all(color: const Color(0xFFE8EEF6)), + boxShadow: [ + BoxShadow( + color: Colors.black.withOpacity(0.04), + blurRadius: 10, + offset: const Offset(0, 3), + ), + ], + ), + child: ClipRRect( + borderRadius: BorderRadius.circular(20), + child: Column( + children: [ + for (int i = 0; i < children.length; i++) ...[ + children[i], + if (i != children.length - 1) + const Divider( + height: 1, + thickness: 1, + color: Color(0xFFF0F4FA), + indent: 82, + endIndent: 20, + ), + ], + ], + ), + ), + ); + } + + Widget _sectionTitle(String title) { + return Padding( + padding: const EdgeInsets.only(left: 4, bottom: 12), + child: Text( + title, + style: const TextStyle( + fontFamily: 'Inter', + fontSize: 14, + fontWeight: FontWeight.w800, + color: Color(0xFF64748B), + ), + ), + ); + } + + Widget _profileHeader() { + return Container( + width: double.infinity, + padding: const EdgeInsets.symmetric(vertical: 24, horizontal: 16), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(18), + border: Border.all(color: const Color(0xFFE8EEF6)), + boxShadow: [ + BoxShadow( + color: Colors.black.withOpacity(0.04), + blurRadius: 12, + offset: const Offset(0, 5), + ), + ], + ), + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + Text( + _nama, + textAlign: TextAlign.center, + style: const TextStyle( + fontFamily: 'Inter', + fontSize: 14, + fontWeight: FontWeight.w800, + color: Color(0xFF172033), + ), + ), + const SizedBox(height: 16), + Wrap( + alignment: WrapAlignment.center, + crossAxisAlignment: WrapCrossAlignment.center, + spacing: 16, + runSpacing: 10, + children: [ + Row( + mainAxisSize: MainAxisSize.min, + children: [ + const Icon( + Icons.badge_outlined, + size: 18, + color: Color(0xFF8FA0BA), + ), + const SizedBox(width: 6), + Text( + "NIK: $_nik", + style: const TextStyle( + fontFamily: 'Inter', + fontSize: 14, + fontWeight: FontWeight.w600, + color: Color(0xFF64748B), + ), + ), + ], + ), + Container( + padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 7), + decoration: BoxDecoration( + color: const Color(0xFFEFF6FF), + borderRadius: BorderRadius.circular(18), + ), + child: Row( + mainAxisSize: MainAxisSize.min, + children: [ + const Icon( + Icons.school_outlined, + size: 18, + color: Color(0xFF2563EB), + ), + const SizedBox(width: 6), + Text( + _badge, + style: const TextStyle( + fontFamily: 'Inter', + fontSize: 14, + fontWeight: FontWeight.w700, + color: Color(0xFF2563EB), + ), + ), + ], + ), + ), + ], + ), + ], + ), + ); + } + + Widget _actionButton({ + required String label, + required Color color, + required VoidCallback? onPressed, + bool loading = false, + }) { + final bool isWhite = color == Colors.white; + return Expanded( + child: ElevatedButton( + onPressed: onPressed, + style: ElevatedButton.styleFrom( + backgroundColor: color, + foregroundColor: isWhite ? const Color(0xFF64748B) : Colors.white, + elevation: 0, + padding: const EdgeInsets.symmetric(vertical: 16), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(24), + side: isWhite ? const BorderSide(color: Color(0xFF94A3B8)) : BorderSide.none, + ), + ), + child: loading + ? SizedBox( + width: 20, + height: 20, + child: CircularProgressIndicator( + color: isWhite ? const Color(0xFF64748B) : Colors.white, + strokeWidth: 2, + ), + ) + : Text( + label, + style: const TextStyle( + fontFamily: 'Inter', + fontSize: 16, + fontWeight: FontWeight.w700, + ), + ), + ), + ); + } + + @override + Widget build(BuildContext context) { + final kelas = currentData['class_name']?['name_class']?.toString() ?? ""; + + return Scaffold( + backgroundColor: const Color(0xFFF4F7FB), + appBar: AppBar( + backgroundColor: const Color(0xFF2563EB), + elevation: 0, + automaticallyImplyLeading: true, + leading: IconButton( + icon: Image.asset('lib/assets/icons/Button.png', width: 30, height: 30), + onPressed: () => Navigator.pop(context), + ), + titleSpacing: -5, + title: const Text("Detail Guru"), + titleTextStyle: const TextStyle( + fontFamily: "Inter", + fontSize: 16, + fontWeight: FontWeight.w700, + color: Colors.white, + ), + ), + body: ListView( + padding: const EdgeInsets.fromLTRB(24, 18, 24, 28), + children: [ + _profileHeader(), + const SizedBox(height: 20), + _sectionTitle("Identitas"), + _sectionCard([ + _infoCard( + icon: _iconForLabel("Bidang"), + title: "Bidang", + value: _bidang.isEmpty ? "Belum diisi" : _bidang, + isEmpty: _bidang.isEmpty, + ), + _infoCard( + icon: Icons.verified_user_outlined, + title: "Wali Kelas", + value: _isWali ? "Ya" : "Tidak", + ), + if (_isWali || currentData['id_class'] != null) + _infoCard( + icon: Icons.school_outlined, + title: "Kelas", + value: kelas.isEmpty ? "Belum diisi" : kelas, + isEmpty: kelas.isEmpty, + ), + ]), + const SizedBox(height: 24), + Row( + children: [ + _actionButton( + label: "Edit", + color: const Color(0xFF2563EB), + onPressed: () async { + final result = await Navigator.push( + context, + MaterialPageRoute( + builder: (_) => UpdateGuruPage(data: currentData), + ), + ); + if (result != null && mounted) { + setState(() { + currentData = result; + }); + } + }, + ), + const SizedBox(width: 10), + _actionButton( + label: "Delete", + color: Colors.red, + onPressed: deleteData, + ), + ], + ), + ], + ), + ); + } +} diff --git a/lib/dashboard/a_admin/function/f_guru/false_delete1.dart b/lib/dashboard/a_admin/function/f_guru/false_delete1.dart new file mode 100644 index 0000000..bbfdc4f --- /dev/null +++ b/lib/dashboard/a_admin/function/f_guru/false_delete1.dart @@ -0,0 +1,276 @@ +import 'package:flutter/material.dart'; +import 'package:apk/dashboard/a_admin/database/db_guru.dart'; +import 'package:apk/dashboard/a_admin/widget/custom_button.dart'; + +class FalseDeleteGuruPage extends StatefulWidget { + const FalseDeleteGuruPage({super.key}); + + @override + State createState() => _FalseDeleteGuruPageState(); +} + +class _FalseDeleteGuruPageState extends State { + List> deletedGuruList = []; + bool isLoading = true; + String? errorMessage; + + @override + void initState() { + super.initState(); + loadData(); + } + + Future loadData() async { + try { + final data = await GuruService.getDeletedGuru(); + if (mounted) { + setState(() { + deletedGuruList = data; + isLoading = false; + errorMessage = null; + }); + } + } catch (e) { + if (mounted) { + setState(() { + isLoading = false; + errorMessage = e.toString().replaceAll('Exception: ', ''); + }); + } + } + } + + Future restoreGuru(String idTabel, String name) async { + final confirm = await showDialog( + context: context, + builder: (context) => AlertDialog( + title: const Text("Pulihkan Guru"), + content: Text("Apakah Anda yakin ingin memulihkan data guru $name?"), + actions: [ + TextButton( + onPressed: () => Navigator.pop(context, false), + child: const Text("Batal"), + ), + ElevatedButton( + onPressed: () => Navigator.pop(context, true), + style: ElevatedButton.styleFrom(backgroundColor: const Color(0xFF2563EB)), + child: const Text("Pulihkan", style: TextStyle(color: Colors.white)), + ), + ], + ), + ); + + if (confirm != true) return; + + setState(() => isLoading = true); + try { + await GuruService.restoreGuru(idTabel); + if (mounted) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text("Data guru $name berhasil dipulihkan")), + ); + } + loadData(); + } catch (e) { + if (mounted) { + setState(() => isLoading = false); + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text("Gagal memulihkan: ${e.toString().replaceAll('Exception: ', '')}")), + ); + } + } + } + + Future deletePermanentlyGuru(String idTabel, String name) async { + final confirm = await showDialog( + context: context, + builder: (context) => AlertDialog( + title: const Text("Hapus Permanen"), + content: Text("Apakah Anda yakin ingin menghapus permanen data guru $name? Tindakan ini tidak dapat dibatalkan."), + actions: [ + TextButton( + onPressed: () => Navigator.pop(context, false), + child: const Text("Batal"), + ), + ElevatedButton( + onPressed: () => Navigator.pop(context, true), + style: ElevatedButton.styleFrom(backgroundColor: Colors.red), + child: const Text("Hapus", style: TextStyle(color: Colors.white)), + ), + ], + ), + ); + + if (confirm != true) return; + + setState(() => isLoading = true); + try { + await GuruService.deleteGuruPermanently(idTabel); + if (mounted) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text("Data guru $name berhasil dihapus permanen")), + ); + } + loadData(); + } catch (e) { + if (mounted) { + setState(() => isLoading = false); + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text("Gagal menghapus: ${e.toString().replaceAll('Exception: ', '')}")), + ); + } + } + } + + String safe(dynamic value) { + if (value == null || value.toString().isEmpty) return "N/A"; + return value.toString(); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: const Color(0xFFF4F7FB), + appBar: AppBar( + backgroundColor: const Color(0xFF2563EB), + elevation: 0, + automaticallyImplyLeading: true, + leading: IconButton( + icon: Image.asset('lib/assets/icons/Button.png', width: 30, height: 30), + onPressed: () => Navigator.pop(context), + ), + titleSpacing: -5, + title: const Text("Tempat Sampah Guru"), + titleTextStyle: const TextStyle( + fontFamily: "Inter", + fontSize: 16, + fontWeight: FontWeight.w700, + color: Colors.white, + ), + ), + body: RefreshIndicator( + onRefresh: loadData, + child: isLoading + ? const Center(child: CircularProgressIndicator()) + : errorMessage != null + ? ListView( + children: [ + SizedBox(height: MediaQuery.of(context).size.height * 0.3), + Center( + child: Text( + "Terjadi Kesalahan:\n$errorMessage", + textAlign: TextAlign.center, + style: const TextStyle(color: Colors.red), + ), + ), + ], + ) + : deletedGuruList.isEmpty + ? ListView( + children: [ + SizedBox(height: MediaQuery.of(context).size.height * 0.35), + const Center( + child: Text( + "Tidak ada data guru yang dihapus", + style: TextStyle( + fontFamily: 'Inter', + fontSize: 14, + color: Colors.grey, + ), + ), + ), + ], + ) + : ListView.builder( + itemCount: deletedGuruList.length, + itemBuilder: (context, index) { + final g = deletedGuruList[index]; + final nama = safe(g['name']); + final nik = safe(g['nik']); + final bidang = safe(g['bidang']); + + return Column( + children: [ + if (index == 0) const SizedBox(height: 12), + CustomCard( + title: nama, + titleStyle: const TextStyle( + fontFamily: 'Inter', + fontSize: 14, + fontWeight: FontWeight.w700, + color: Color(0xFF1E293B), + ), + customSubtitle: Row( + children: [ + Text( + 'NIK: $nik', + style: const TextStyle( + fontFamily: 'Inter', + fontSize: 12, + fontWeight: FontWeight.w500, + color: Color(0xFF64748B), + ), + ), + const SizedBox(width: 8), + Container( + width: 4, + height: 4, + decoration: const BoxDecoration( + color: Color(0xFFCBD5E1), + shape: BoxShape.circle, + ), + ), + const SizedBox(width: 8), + Flexible( + child: Text( + 'Bidang: $bidang', + style: const TextStyle( + fontFamily: 'Inter', + fontSize: 12, + fontWeight: FontWeight.w500, + color: Color(0xFF64748B), + ), + overflow: TextOverflow.ellipsis, + ), + ), + ], + ), + customIcon: Row( + mainAxisSize: MainAxisSize.min, + children: [ + InkWell( + onTap: () => restoreGuru(g['id_tabel'], nama), + borderRadius: BorderRadius.circular(20), + child: const Padding( + padding: EdgeInsets.all(6.0), + child: Icon(Icons.restore, color: Colors.green, size: 22), + ), + ), + const SizedBox(width: 4), + InkWell( + onTap: () => deletePermanentlyGuru(g['id_tabel'], nama), + borderRadius: BorderRadius.circular(20), + child: const Padding( + padding: EdgeInsets.all(6.0), + child: Icon(Icons.delete_forever, color: Colors.red, size: 22), + ), + ), + ], + ), + showIcon: true, + iconContainerSize: 80, + iconPadding: EdgeInsets.zero, + iconDecoration: const BoxDecoration(), + backgroundColor: Colors.white, + borderColor: Colors.transparent, + borderWidth: 0, + margin: const EdgeInsets.symmetric(horizontal: 20, vertical: 6), + ), + ], + ); + }, + ), + ), + ); + } +} diff --git a/lib/dashboard/a_admin/function/f_guru/form_guru.dart b/lib/dashboard/a_admin/function/f_guru/form_guru.dart new file mode 100644 index 0000000..3c2de95 --- /dev/null +++ b/lib/dashboard/a_admin/function/f_guru/form_guru.dart @@ -0,0 +1,345 @@ +import 'package:flutter/material.dart'; +import 'package:apk/dashboard/a_admin/database/db_guru.dart'; +import 'package:apk/dashboard/a_admin/function/f_kelas/form_kelas..dart'; + +class FormGuruPage extends StatefulWidget { + const FormGuruPage({super.key}); + + @override + State createState() => _FormGuruPageState(); +} + +class _FormGuruPageState extends State { + final nikController = TextEditingController(); + final namaController = TextEditingController(); + final bidangController = TextEditingController(); + + List> kelasList = []; + String? selectedClass; + bool isWali = false; + + bool isLoading = false; + + @override + void initState() { + super.initState(); + loadKelas(); + } + + Future loadKelas() async { + final data = await GuruService.getKelas(); + setState(() { + kelasList = data; + }); + } + + Future simpan() async { + if (nikController.text.isEmpty || namaController.text.isEmpty) { + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text("NIK dan Nama wajib diisi!")), + ); + return; + } + + if (isWali && selectedClass == null) { + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text("Kelas wajib dipilih jika menjadi Wali Kelas!")), + ); + return; + } + + setState(() => isLoading = true); + + try { + await GuruService.tambahGuru( + nik: nikController.text, + name: namaController.text, + bidang: bidangController.text.isEmpty ? null : bidangController.text, + idClass: selectedClass, + wali: isWali, + ); + + if (!mounted) return; + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text("Data guru berhasil disimpan")), + ); + + // reset form + nikController.clear(); + namaController.clear(); + bidangController.clear(); + + setState(() { + selectedClass = null; + isWali = false; + }); + + } catch (e) { + if (!mounted) return; + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text(e.toString().replaceAll('Exception: ', ''))), + ); + } + + if (mounted) setState(() => isLoading = false); + } + + Widget _buildLabel(String text) { + return Text( + text, + style: const TextStyle( + fontFamily: 'Inter', + fontSize: 14, + fontWeight: FontWeight.w600, + color: Color(0xFF1E293B), + ), + ); + } + + InputDecoration _buildDecoration(String hintText) { + return InputDecoration( + hintText: hintText, + hintStyle: const TextStyle( + fontFamily: 'Inter', + fontSize: 14, + color: Color(0xFFC4C4C4), + ), + filled: true, + fillColor: const Color(0xFFF1F5F9), + contentPadding: const EdgeInsets.symmetric(horizontal: 20, vertical: 14), + border: OutlineInputBorder( + borderRadius: BorderRadius.circular(16), + borderSide: const BorderSide(color: Color(0xFFE2E8F0)), + ), + enabledBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(16), + borderSide: const BorderSide(color: Color(0xFFE2E8F0)), + ), + ); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + backgroundColor: const Color(0xFF2563EB), + elevation: 0, + automaticallyImplyLeading: true, + leading: IconButton( + icon: Image.asset('lib/assets/icons/Button.png', width: 30, height: 30), + onPressed: () => Navigator.pop(context), + ), + titleSpacing: -5, + title: const Text("Form Guru"), + titleTextStyle: const TextStyle( + fontFamily: "Inter", + fontSize: 16, + fontWeight: FontWeight.w700, + color: Colors.white, + ), + ), + body: Padding( + padding: const EdgeInsets.symmetric(horizontal: 2, vertical: 10), + child: ListView( + children: [ + // NIK + _buildLabel("NIK *"), + const SizedBox(height: 6), + TextField( + controller: nikController, + keyboardType: TextInputType.number, + style: const TextStyle(fontFamily: 'Inter', fontSize: 14), + decoration: _buildDecoration("Masukkan NIK Guru"), + ), + const SizedBox(height: 16), + + // Nama + _buildLabel("Nama Lengkap *"), + const SizedBox(height: 6), + TextField( + controller: namaController, + style: const TextStyle(fontFamily: 'Inter', fontSize: 14), + decoration: _buildDecoration("Nama Lengkap Guru"), + ), + const SizedBox(height: 16), + + // Bidang + _buildLabel("Bidang Mata Pelajaran"), + const SizedBox(height: 6), + TextField( + controller: bidangController, + style: const TextStyle(fontFamily: 'Inter', fontSize: 14), + decoration: _buildDecoration("Contoh: Matematika"), + ), + const SizedBox(height: 16), + + // Pilih sebagai + _buildLabel("Pilih sebagai"), + const SizedBox(height: 6), + Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Expanded( + child: Card( + color: const Color(0xFFF1F5F9), + elevation: 0, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(16), + side: const BorderSide(color: Color(0xFFE2E8F0)), + ), + child: InkWell( + borderRadius: BorderRadius.circular(16), + onTap: () { + setState(() { + isWali = true; + }); + }, + child: Padding( + padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 14), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + const Text("Wali Kelas", style: TextStyle(fontFamily: 'Inter', fontSize: 14, fontWeight: FontWeight.w600)), + Checkbox( + value: isWali, + activeColor: const Color(0xFF2563EB), + onChanged: (val) { + setState(() { + isWali = true; + }); + }, + ), + ], + ), + ), + ), + ), + ), + const SizedBox(width: 12), + Expanded( + child: Card( + color: const Color(0xFFF1F5F9), + elevation: 0, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(16), + side: const BorderSide(color: Color(0xFFE2E8F0)), + ), + child: InkWell( + borderRadius: BorderRadius.circular(16), + onTap: () { + setState(() { + isWali = false; + }); + }, + child: Padding( + padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 14), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + const Text("Guru", style: TextStyle(fontFamily: 'Inter', fontSize: 14, fontWeight: FontWeight.w600)), + Checkbox( + value: !isWali, + activeColor: const Color(0xFF2563EB), + onChanged: (val) { + setState(() { + isWali = false; + }); + }, + ), + ], + ), + ), + ), + ), + ), + ], + ), + const SizedBox(height: 16), + + // Kelas + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + _buildLabel("Pilih Kelas (Wajib jika Wali Kelas)"), + TextButton( + onPressed: () async { + await Navigator.push( + context, + MaterialPageRoute(builder: (context) => const FormKelasPage()), + ); + loadKelas(); + }, + style: TextButton.styleFrom( + padding: EdgeInsets.zero, + minimumSize: const Size(0, 0), + tapTargetSize: MaterialTapTargetSize.shrinkWrap, + ), + child: const Text( + "Buat Kelas", + style: TextStyle( + fontFamily: 'Inter', + fontSize: 12, + fontWeight: FontWeight.w600, + color: Color(0xFF2563EB), + ), + ), + ), + ], + ), + const SizedBox(height: 6), + DropdownButtonFormField( + value: selectedClass, + hint: const Text( + "Pilih Kelas", + style: TextStyle(fontFamily: 'Inter', fontSize: 14, color: Color(0xFFC4C4C4)), + ), + decoration: _buildDecoration("").copyWith(hintText: null), + items: kelasList.map((kelas) { + return DropdownMenuItem( + value: kelas['id_tabel'], + child: Text( + kelas['name_class'], + style: const TextStyle(fontFamily: 'Inter', fontSize: 14), + ), + ); + }).toList(), + onChanged: (value) { + setState(() { + selectedClass = value; + }); + }, + ), + const SizedBox(height: 24), + + ElevatedButton( + onPressed: isLoading ? null : simpan, + style: ElevatedButton.styleFrom( + backgroundColor: const Color(0xFF2563EB), + padding: const EdgeInsets.symmetric(vertical: 16), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(24), + ), + elevation: 0, + ), + child: isLoading + ? const SizedBox( + width: 20, + height: 20, + child: CircularProgressIndicator(color: Colors.white, strokeWidth: 2), + ) + : const Text( + "Simpan", + style: TextStyle( + fontFamily: 'Inter', + fontSize: 14, + fontWeight: FontWeight.w700, + color: Colors.white, + ), + ), + ), + ], + ), + ), + ); + } +} diff --git a/lib/dashboard/a_admin/function/f_guru/get_guru.dart b/lib/dashboard/a_admin/function/f_guru/get_guru.dart new file mode 100644 index 0000000..fd0e189 --- /dev/null +++ b/lib/dashboard/a_admin/function/f_guru/get_guru.dart @@ -0,0 +1,200 @@ +import 'package:flutter/material.dart'; +import 'package:apk/dashboard/a_admin/database/db_guru.dart'; +import 'package:apk/dashboard/a_admin/widget/custom_button.dart'; +import 'package:apk/dashboard/a_admin/function/f_guru/detail_guru.dart'; + +import 'package:apk/dashboard/a_admin/function/f_guru/false_delete1.dart'; + +class GuruPage extends StatefulWidget { + const GuruPage({super.key}); + + @override + State createState() => _GuruPageState(); +} + +class _GuruPageState extends State { + List> guruList = []; + bool isLoading = true; + String? errorMessage; + + @override + void initState() { + super.initState(); + loadData(); + } + + Future loadData() async { + try { + final data = await GuruService.getGuru(); + setState(() { + guruList = data; + isLoading = false; + errorMessage = null; + }); + } catch (e) { + setState(() { + isLoading = false; + errorMessage = e.toString().replaceAll('Exception: ', ''); + }); + } + } + + String safe(dynamic value) { + if (value == null || value.toString().isEmpty) return "N/A"; + return value.toString(); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + backgroundColor: const Color(0xFF2563EB), + elevation: 0, + automaticallyImplyLeading: true, + leading: IconButton( + icon: Image.asset('lib/assets/icons/Button.png', width: 30, height: 30), + onPressed: () => Navigator.pop(context), + ), + titleSpacing: -5, + title: const Text("Manajemen Guru"), + titleTextStyle: const TextStyle( + fontFamily: "Inter", + fontSize: 16, + fontWeight: FontWeight.w700, + color: Colors.white, + ), + actions: [ + IconButton( + icon: const Icon(Icons.restore_from_trash, color: Colors.white), + tooltip: 'Tempat Sampah', + onPressed: () async { + await Navigator.push( + context, + MaterialPageRoute(builder: (_) => const FalseDeleteGuruPage()), + ); + loadData(); + }, + ), + ], + ), + body: isLoading + ? const Center(child: CircularProgressIndicator()) + : errorMessage != null + ? Center( + child: Padding( + //padding: const EdgeInsets.all(16.0), + padding: const EdgeInsets.symmetric(horizontal: 0, vertical: 10), + child: Text( + "Terjadi Kesalahan:\n$errorMessage", + textAlign: TextAlign.center, + style: const TextStyle(color: Colors.red), + ), + ), + ) + : guruList.isEmpty + ? const Center( + child: Text( + "Belum ada data guru", + style: TextStyle( + fontFamily: 'Inter', + fontSize: 14, + color: Colors.grey, + ), + ), + ) + : Column( + children: [ + const SizedBox(height: 12), + Expanded( + child: ListView.builder( + itemCount: guruList.length, + itemBuilder: (context, index) { + final g = guruList[index]; + final nama = safe(g['name']); + final nik = safe(g['nik']); + final isWali = g['wali'] == true; + final kelas = g['class_name']?['name_class'] ?? + 'Belum ada kelas'; + final bidang = safe(g['bidang']); + final detail = isWali + ? 'Wali Kelas: $kelas' + : 'Bidang: $bidang'; + + return Column( + children: [ + Padding( + padding: const EdgeInsets.symmetric( + horizontal: 0, + vertical: 0, + ), + child: CustomCard( + title: nama, + titleStyle: const TextStyle( + fontFamily: 'Inter', + fontSize: 14, + fontWeight: FontWeight.w700, + color: Color(0xFF1E293B), + ), + customSubtitle: Row( + children: [ + Text( + 'NIK: $nik', + style: const TextStyle( + fontFamily: 'Inter', + fontSize: 12, + fontWeight: FontWeight.w500, + color: Color(0xFF64748B), + ), + ), + const SizedBox(width: 8), + Container( + width: 4, + height: 4, + decoration: const BoxDecoration( + color: Color(0xFFCBD5E1), + shape: BoxShape.circle, + ), + ), + const SizedBox(width: 8), + Flexible( + child: Text( + detail, + style: const TextStyle( + fontFamily: 'Inter', + fontSize: 12, + fontWeight: FontWeight.w500, + color: Color(0xFF64748B), + ), + overflow: TextOverflow.ellipsis, + ), + ), + ], + ), + showIcon: false, + backgroundColor: Colors.white, + borderColor: Colors.transparent, + borderWidth: 0, + margin: EdgeInsets.zero, + onTap: () async { + await Navigator.push( + context, + MaterialPageRoute( + builder: (_) => + DetailGuruPage(data: g), + ), + ); + loadData(); + }, + ), + ), + const SizedBox(height: 12), + ], + ); + }, + ), + ), + ], + ), + ); + } +} diff --git a/lib/dashboard/a_admin/function/f_guru/update_guru.dart b/lib/dashboard/a_admin/function/f_guru/update_guru.dart new file mode 100644 index 0000000..e2eee54 --- /dev/null +++ b/lib/dashboard/a_admin/function/f_guru/update_guru.dart @@ -0,0 +1,413 @@ +import 'package:flutter/material.dart'; +import 'package:apk/dashboard/a_admin/database/db_guru.dart'; + +class UpdateGuruPage extends StatefulWidget { + final Map data; + + const UpdateGuruPage({ + super.key, + required this.data, + }); + + @override + State createState() => _UpdateGuruPageState(); +} + +class _UpdateGuruPageState extends State { + bool isSaving = false; + + late TextEditingController nikC; + late TextEditingController nameC; + late TextEditingController bidangC; + + List> kelasList = []; + String? selectedKelas; + late bool isWali; + + @override + void initState() { + super.initState(); + + nikC = TextEditingController(text: widget.data['nik']?.toString() ?? ""); + nameC = TextEditingController(text: widget.data['name'] ?? ""); + bidangC = TextEditingController(text: widget.data['bidang'] ?? ""); + + selectedKelas = widget.data['id_class']; + isWali = widget.data['wali'] == true; + + loadKelas(); + } + + Future loadKelas() async { + final data = await GuruService.getKelas(); + if (mounted) { + setState(() => kelasList = data); + } + } + + Future updateData() async { + if (nikC.text.isEmpty || nameC.text.isEmpty) { + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text("NIK dan Nama wajib diisi!")), + ); + return; + } + + if (isWali && selectedKelas == null) { + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar( + content: Text("Kelas wajib dipilih jika menjadi Wali Kelas!"), + ), + ); + return; + } + + setState(() => isSaving = true); + + try { + await GuruService.updateGuru( + idTabel: widget.data['id_tabel'], + nik: nikC.text, + name: nameC.text, + bidang: bidangC.text.isEmpty ? null : bidangC.text, + idClass: selectedKelas, + wali: isWali, + ); + + final selectedKelasData = kelasList.where( + (kelas) => kelas['id_tabel'] == selectedKelas, + ); + + if (mounted) { + final Map updatedData = Map.from(widget.data); + updatedData['nik'] = nikC.text; + updatedData['name'] = nameC.text; + updatedData['bidang'] = bidangC.text; + updatedData['id_class'] = selectedKelas; + updatedData['wali'] = isWali; + updatedData['class_name'] = selectedKelasData.isEmpty + ? null + : { + 'id_tabel': selectedKelasData.first['id_tabel'], + 'name_class': selectedKelasData.first['name_class'], + }; + + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text('Data guru berhasil diperbarui')), + ); + Navigator.pop(context, updatedData); + } + } catch (e) { + if (mounted) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + content: Text( + "Gagal menyimpan: ${e.toString().replaceAll('Exception: ', '')}", + ), + ), + ); + } + } finally { + if (mounted) { + setState(() => isSaving = false); + } + } + } + + Widget field( + String label, + TextEditingController c, { + TextInputType? keyboardType, + String hint = "", + }) { + return Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + label, + style: const TextStyle( + fontFamily: 'Inter', + fontWeight: FontWeight.w600, + fontSize: 14, + color: Color(0xFF1E293B), + ), + ), + const SizedBox(height: 6), + TextField( + controller: c, + keyboardType: keyboardType, + style: const TextStyle(fontFamily: 'Inter'), + decoration: InputDecoration( + hintText: hint, + hintStyle: const TextStyle(color: Color(0xFFC4C4C4), fontFamily: 'Inter'), + filled: true, + fillColor: const Color(0xFFF1F5F9), + contentPadding: const EdgeInsets.symmetric(horizontal: 20, vertical: 18), + border: OutlineInputBorder( + borderRadius: BorderRadius.circular(16), + borderSide: const BorderSide(color: Color(0xFFE2E8F0)), + ), + enabledBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(16), + borderSide: const BorderSide(color: Color(0xFFE2E8F0)), + ), + ), + ), + const SizedBox(height: 16), + ], + ); + } + + Widget kelasField() { + return Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + const Text( + "Kelas", + style: TextStyle( + fontFamily: 'Inter', + fontWeight: FontWeight.w600, + fontSize: 14, + color: Color(0xFF1E293B), + ), + ), + const SizedBox(height: 6), + DropdownButtonFormField( + value: selectedKelas, + decoration: InputDecoration( + hintText: "Pilih Kelas", + hintStyle: const TextStyle(color: Color(0xFFC4C4C4), fontFamily: 'Inter'), + filled: true, + fillColor: const Color(0xFFF1F5F9), + contentPadding: const EdgeInsets.symmetric(horizontal: 20, vertical: 18), + border: OutlineInputBorder( + borderRadius: BorderRadius.circular(16), + borderSide: const BorderSide(color: Color(0xFFE2E8F0)), + ), + enabledBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(16), + borderSide: const BorderSide(color: Color(0xFFE2E8F0)), + ), + ), + items: kelasList.map((e) { + return DropdownMenuItem( + value: e['id_tabel'], + child: Text(e['name_class'], style: const TextStyle(fontFamily: 'Inter')), + ); + }).toList(), + onChanged: (v) => setState(() => selectedKelas = v), + ), + const SizedBox(height: 16), + ], + ); + } + + Widget waliField() { + return Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + const Text( + "Wali Kelas", + style: TextStyle( + fontFamily: 'Inter', + fontWeight: FontWeight.w600, + fontSize: 14, + color: Color(0xFF1E293B), + ), + ), + const SizedBox(height: 6), + Container( + padding: const EdgeInsets.symmetric(horizontal: 20, vertical: 4), + decoration: BoxDecoration( + color: const Color(0xFFF1F5F9), + borderRadius: BorderRadius.circular(16), + border: Border.all(color: const Color(0xFFE2E8F0)), + ), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + const Text( + "Jadikan Wali Kelas", + style: TextStyle(fontFamily: 'Inter', fontSize: 14, color: Color(0xFF1E293B)), + ), + Switch( + value: isWali, + activeColor: const Color(0xFF2563EB), + onChanged: (val) => setState(() => isWali = val), + ), + ], + ), + ), + const SizedBox(height: 16), + ], + ); + } + + Widget _actionButton({ + required String label, + required Color color, + required VoidCallback? onPressed, + bool loading = false, + }) { + final bool isWhite = color == Colors.white; + return Expanded( + child: ElevatedButton( + onPressed: onPressed, + style: ElevatedButton.styleFrom( + backgroundColor: color, + foregroundColor: isWhite ? const Color(0xFF64748B) : Colors.white, + elevation: 0, + padding: const EdgeInsets.symmetric(vertical: 16), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(24), + side: isWhite ? const BorderSide(color: Color(0xFF94A3B8)) : BorderSide.none, + ), + ), + child: loading + ? SizedBox( + width: 20, + height: 20, + child: CircularProgressIndicator( + color: isWhite ? const Color(0xFF64748B) : Colors.white, + strokeWidth: 2, + ), + ) + : Text( + label, + style: const TextStyle( + fontFamily: 'Inter', + fontSize: 16, + fontWeight: FontWeight.w700, + ), + ), + ), + ); + } + + @override + void dispose() { + nikC.dispose(); + nameC.dispose(); + bidangC.dispose(); + super.dispose(); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: Colors.white, + appBar: AppBar( + backgroundColor: const Color(0xFF2563EB), + elevation: 0, + automaticallyImplyLeading: true, + leading: IconButton( + icon: Image.asset('lib/assets/icons/Button.png', width: 30, height: 30), + onPressed: () => Navigator.pop(context), + ), + titleSpacing: -5, + title: const Text("Edit Data Guru"), + titleTextStyle: const TextStyle( + fontFamily: "Inter", + fontSize: 14, + fontWeight: FontWeight.w700, + color: Colors.white, + ), + ), + body: Container( + color: Colors.white, + padding: const EdgeInsets.all(24), + child: Column( + children: [ + Expanded( + child: ListView( + children: [ + Row( + children: const [ + Text("👩‍🏫", style: TextStyle(fontSize: 14)), + SizedBox(width: 8), + Text( + "Data Guru", + style: TextStyle( + fontFamily: 'Inter', + fontSize: 14, + fontWeight: FontWeight.w800, + color: Color(0xFF1E293B), + ), + ), + ], + ), + const SizedBox(height: 16), + Container( + padding: const EdgeInsets.all(20), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(20), + border: Border.all(color: const Color(0xFFE2E8F0)), + ), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + field("NIK *", nikC, keyboardType: TextInputType.number, hint: "Contoh: 33111"), + field("Nama *", nameC, hint: "Contoh: Budi Santoso"), + field("Bidang", bidangC, hint: "Contoh: Matematika"), + ], + ), + ), + const SizedBox(height: 24), + Row( + children: const [ + Text("🏫", style: TextStyle(fontSize: 14)), + SizedBox(width: 8), + Text( + "Wali Kelas & Kelas", + style: TextStyle( + fontFamily: 'Inter', + fontSize: 14, + fontWeight: FontWeight.w800, + color: Color(0xFF1E293B), + ), + ), + ], + ), + const SizedBox(height: 16), + Container( + padding: const EdgeInsets.all(20), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(20), + border: Border.all(color: const Color(0xFFE2E8F0)), + ), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + waliField(), + if (isWali || selectedKelas != null) kelasField(), + ], + ), + ), + ], + ), + ), + const SizedBox(height: 16), + Row( + children: [ + _actionButton( + label: "Simpan", + color: const Color(0xFF2563EB), + onPressed: isSaving ? null : updateData, + loading: isSaving, + ), + const SizedBox(width: 10), + _actionButton( + label: "Batal", + color: Colors.white, + onPressed: isSaving ? null : () => Navigator.pop(context), + ), + ], + ), + ], + ), + ), + ); + } +} diff --git a/lib/dashboard/a_admin/function/f_kelas/content_kelas.dart b/lib/dashboard/a_admin/function/f_kelas/content_kelas.dart new file mode 100644 index 0000000..f643e1b --- /dev/null +++ b/lib/dashboard/a_admin/function/f_kelas/content_kelas.dart @@ -0,0 +1,594 @@ +import 'package:flutter/material.dart'; +import 'package:apk/dashboard/a_admin/database/db_kelas.dart'; +import 'package:apk/dashboard/a_admin/database/db_absen.dart'; +import 'package:apk/dashboard/a_admin/widget/custom_button.dart'; +import 'package:apk/dashboard/a_admin/function/f_kelas/update_kelas.dart'; +import 'package:apk/dashboard/a_admin/function/f_murid/detai_murid.dart'; +import 'package:apk/dashboard/a_admin/function/f_guru/detail_guru.dart'; + +class ContentKelas extends StatefulWidget { + final Map classData; + + const ContentKelas({super.key, required this.classData}); + + @override + State createState() => _ContentKelasState(); +} + +class _ContentKelasState extends State { + List> muridList = []; + List> guruList = []; + bool isLoading = true; + + @override + void initState() { + super.initState(); + loadData(); + } + + Future loadData() async { + try { + final String classId = widget.classData['id_tabel']; + final resMurid = await ClassService.getMuridByClass(classId); + final resGuru = await ClassService.getGuruByClass(classId); + + setState(() { + muridList = resMurid ?? []; + guruList = resGuru ?? []; + isLoading = false; + }); + } catch (e) { + print(e); + setState(() { + isLoading = false; + }); + } + } + + void _showPromoteDialog() async { + if (muridList.isEmpty) { + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text("Tidak ada murid di kelas ini untuk dinaikkan tingkat.")), + ); + return; + } + + final confirm = await showDialog( + context: context, + builder: (context) => AlertDialog( + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(16)), + title: const Text( + "Peringatan Naik Tingkat", + style: TextStyle(fontFamily: 'Inter', fontWeight: FontWeight.bold, fontSize: 18, color: Colors.red), + ), + content: const Text( + "Proses naik tingkat kelas akan memindahkan seluruh murid ke kelas baru dan me-reset seluruh data absensi serta riwayat chat private mereka secara permanen.\n\nApakah Anda yakin ingin melanjutkan?", + style: TextStyle(fontFamily: 'Inter', fontSize: 13, color: Color(0xFF1E293B)), + ), + actions: [ + TextButton( + onPressed: () => Navigator.pop(context, false), + child: const Text("Batal", style: TextStyle(fontFamily: 'Inter', color: Color(0xFF64748B))), + ), + ElevatedButton( + onPressed: () => Navigator.pop(context, true), + style: ElevatedButton.styleFrom( + backgroundColor: Colors.red, + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(10)), + ), + child: const Text( + "Lanjut", + style: TextStyle(fontFamily: 'Inter', fontWeight: FontWeight.bold, color: Colors.white), + ), + ), + ], + ), + ); + + if (confirm != true) return; + + setState(() => isLoading = true); + try { + final classes = await ClassService.getClasses(); + final currentClassId = widget.classData['id_tabel']; + final otherClasses = classes.where((c) => c['id_tabel'] != currentClassId).toList(); + + setState(() => isLoading = false); + + if (otherClasses.isEmpty) { + if (!mounted) return; + showDialog( + context: context, + builder: (context) => AlertDialog( + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(16)), + title: const Text("Kelas Tujuan Tidak Ditemukan", style: TextStyle(fontFamily: 'Inter', fontWeight: FontWeight.bold)), + content: const Text("Silakan buat kelas tujuan baru terlebih dahulu untuk menaikkan tingkat kelas ini."), + actions: [ + TextButton( + onPressed: () => Navigator.pop(context), + child: const Text("OK", style: TextStyle(fontFamily: 'Inter', color: Color(0xFF2563EB))), + ) + ], + ), + ); + return; + } + + String? selectedTargetClass; + if (!mounted) return; + + showDialog( + context: context, + builder: (context) { + return StatefulBuilder( + builder: (context, setDialogState) { + return AlertDialog( + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(16)), + title: const Text( + "Naik Tingkat Kelas", + style: TextStyle(fontFamily: 'Inter', fontWeight: FontWeight.bold, fontSize: 18), + ), + content: Column( + mainAxisSize: MainAxisSize.min, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + const Text( + "Pilih kelas tujuan untuk memindahkan seluruh murid di kelas ini:", + style: TextStyle(fontFamily: 'Inter', fontSize: 13, color: Color(0xFF64748B)), + ), + const SizedBox(height: 16), + DropdownButtonFormField( + isExpanded: true, + value: selectedTargetClass, + hint: const Text( + "Pilih Kelas Tujuan", + style: TextStyle(fontFamily: 'Inter', fontSize: 13, color: Color(0xFFC4C4C4)), + ), + decoration: InputDecoration( + filled: true, + fillColor: const Color(0xFFF1F5F9), + contentPadding: const EdgeInsets.symmetric(horizontal: 16, vertical: 12), + border: OutlineInputBorder( + borderRadius: BorderRadius.circular(12), + borderSide: const BorderSide(color: Color(0xFFE2E8F0)), + ), + enabledBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(12), + borderSide: const BorderSide(color: Color(0xFFE2E8F0)), + ), + ), + items: otherClasses.map((c) { + return DropdownMenuItem( + value: c['id_tabel'].toString(), + child: Text( + c['name_class'] ?? 'Tanpa Nama', + style: const TextStyle(fontFamily: 'Inter', fontSize: 14), + ), + ); + }).toList(), + onChanged: (val) { + setDialogState(() { + selectedTargetClass = val; + }); + }, + ), + ], + ), + actions: [ + TextButton( + onPressed: () => Navigator.pop(context), + child: const Text("Batal", style: TextStyle(fontFamily: 'Inter', color: Color(0xFF64748B))), + ), + ElevatedButton( + onPressed: selectedTargetClass == null + ? null + : () { + Navigator.pop(context); + final targetClassObj = otherClasses.firstWhere((c) => c['id_tabel'].toString() == selectedTargetClass); + final targetStudentCount = (targetClassObj['murid'] as List? ?? []).length; + _confirmPromotion( + selectedTargetClass!, + targetClassObj['name_class'] ?? '', + targetStudentCount, + ); + }, + style: ElevatedButton.styleFrom( + backgroundColor: const Color(0xFF2563EB), + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(10)), + ), + child: const Text( + "Lanjut", + style: TextStyle(fontFamily: 'Inter', fontWeight: FontWeight.bold, color: Colors.white), + ), + ), + ], + ); + }, + ); + }, + ); + } catch (e) { + setState(() => isLoading = false); + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text("Gagal memuat kelas tujuan: $e")), + ); + } + } + + void _confirmPromotion(String targetClassId, String targetClassName, int targetStudentCount) { + showDialog( + context: context, + builder: (context) { + return AlertDialog( + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(16)), + title: const Text( + "Konfirmasi Naik Tingkat", + style: TextStyle(fontFamily: 'Inter', fontWeight: FontWeight.bold, fontSize: 18, color: Colors.red), + ), + content: Column( + mainAxisSize: MainAxisSize.min, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + "Apakah Anda yakin ingin memindahkan seluruh murid ke kelas '$targetClassName'?\n\nTindakan ini akan me-reset seluruh data absen dan riwayat chat private murid-murid tersebut secara permanen. Data murid itu sendiri tidak akan dihapus.", + style: const TextStyle(fontFamily: 'Inter', fontSize: 13, color: Color(0xFF1E293B)), + ), + if (targetStudentCount > 0) ...[ + const SizedBox(height: 16), + Container( + padding: const EdgeInsets.all(12), + decoration: BoxDecoration( + color: const Color(0xFFFEF2F2), + borderRadius: BorderRadius.circular(10), + border: Border.all(color: const Color(0xFFFCA5A5)), + ), + child: Row( + children: [ + const Icon(Icons.warning, color: Colors.red, size: 20), + const SizedBox(width: 8), + Expanded( + child: Text( + "Peringatan: Kelas tujuan '$targetClassName' saat ini masih memiliki $targetStudentCount murid. Murid baru akan digabungkan dengan murid yang sudah ada di kelas tersebut.", + style: const TextStyle( + fontFamily: 'Inter', + fontSize: 12, + fontWeight: FontWeight.w600, + color: Color(0xFF991B1B), + ), + ), + ), + ], + ), + ), + ], + ], + ), + actions: [ + TextButton( + onPressed: () => Navigator.pop(context), + child: const Text("Batal", style: TextStyle(fontFamily: 'Inter', color: Color(0xFF64748B))), + ), + ElevatedButton( + onPressed: () async { + Navigator.pop(context); + setState(() => isLoading = true); + try { + final studentIds = muridList.map((m) => m['id_tabel'].toString()).toList(); + debugPrint("Promoting class for student IDs: $studentIds"); + await AbsenService.promoteClass( + sourceClassId: widget.classData['id_tabel'].toString(), + targetClassId: targetClassId, + studentIds: studentIds, + ); + debugPrint("AbsenService.promoteClass completed successfully"); + + if (!mounted) return; + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + content: Text("Berhasil menaikkan tingkat murid ke kelas '$targetClassName'"), + backgroundColor: Colors.green, + ), + ); + debugPrint("Refreshing murid/guru lists..."); + await loadData(); + debugPrint("loadData completed"); + } catch (e) { + debugPrint("Exception during class promotion: $e"); + if (!mounted) return; + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text("Gagal menaikkan tingkat kelas: $e")), + ); + } finally { + if (mounted) { + setState(() => isLoading = false); + } + } + }, + style: ElevatedButton.styleFrom( + backgroundColor: Colors.red, + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(10)), + ), + child: const Text( + "Ya, Proses", + style: TextStyle(fontFamily: 'Inter', fontWeight: FontWeight.bold, color: Colors.white), + ), + ), + ], + ); + }, + ); + } + + @override + Widget build(BuildContext context) { + final nameClass = widget.classData['name_class'] ?? 'Tanpa Nama'; + + String guruName = '-'; + if (widget.classData['guru'] is List) { + final List gurus = widget.classData['guru'] as List; + final waliGuru = gurus.firstWhere((g) => g['wali'] == true, orElse: () => null); + if (waliGuru != null) { + guruName = waliGuru['name']?.toString() ?? '-'; + } + } + + return Scaffold( + appBar: AppBar( + backgroundColor: const Color(0xFF2563EB), + elevation: 0, + automaticallyImplyLeading: true, + leading: IconButton( + icon: Image.asset('lib/assets/icons/Button.png', width: 30, height: 30), + onPressed: () => Navigator.pop(context), + ), + titleSpacing: -5, + title: Text(nameClass), + titleTextStyle: const TextStyle( + fontFamily: "Inter", + fontSize: 16, + fontWeight: FontWeight.w700, + color: Colors.white, + ), + actions: [ + Row( + children: [ + const Icon(Icons.calendar_today, color: Colors.white, size: 16), + const SizedBox(width: 6), + Text( + widget.classData['tahun'] ?? '-', + style: const TextStyle(fontSize: 14, color: Colors.white), + ), + IconButton( + icon: const Icon(Icons.edit, color: Colors.white, size: 20), + onPressed: () { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => UpdateKelasPage(classData: widget.classData), + ), + ).then((result) { + if (result != null && result is Map) { + setState(() { + widget.classData['name_class'] = result['name_class']; + widget.classData['id_class'] = result['id_class']; + widget.classData['tahun'] = result['tahun']; + }); + } + loadData(); // Refresh data after returning + }); + }, + ), + ], + ), + ], + ), + body: isLoading + ? const Center(child: CircularProgressIndicator()) + : ListView( + padding: const EdgeInsets.only(bottom: 20), + children: [ + // --- BAGIAN GURU --- + if (guruList.isNotEmpty) ...[ + const Padding( + padding: EdgeInsets.symmetric(horizontal: 20.0, vertical: 10), + child: Align( + alignment: Alignment.centerLeft, + child: Text( + "Daftar Guru", + style: TextStyle( + fontSize: 18, + fontWeight: FontWeight.bold, + color: Color(0xFF1E293B), + ), + ), + ), + ), + ...guruList.map((g) { + final isWali = g['wali'] == true; + return Padding( + padding: const EdgeInsets.symmetric(horizontal: 20, vertical: 6), + child: CustomCard( + title: g['name'] ?? 'Tanpa Nama', + titleStyle: const TextStyle( + fontFamily: 'Inter', + fontSize: 14, + fontWeight: FontWeight.w700, + color: Color(0xFF1E293B), + ), + customSubtitle: Row( + children: [ + Text( + isWali ? "Wali Kelas" : "Guru Mapel", + style: const TextStyle( + fontFamily: 'Inter', + fontSize: 12, + fontWeight: FontWeight.w500, + color: Color(0xFF64748B), + ), + ), + const SizedBox(width: 8), + Container( + width: 4, + height: 4, + decoration: const BoxDecoration( + color: Color(0xFFCBD5E1), + shape: BoxShape.circle, + ), + ), + const SizedBox(width: 8), + Flexible( + child: Text( + 'NIK: ${g['nik'] ?? '-'}', + style: const TextStyle( + fontFamily: 'Inter', + fontSize: 12, + fontWeight: FontWeight.w500, + color: Color(0xFF64748B), + ), + overflow: TextOverflow.ellipsis, + ), + ), + ], + ), + showIcon: false, + backgroundColor: Colors.white, + borderColor: Colors.transparent, + borderWidth: 0, + margin: EdgeInsets.zero, + onTap: () async { + await Navigator.push( + context, + MaterialPageRoute( + builder: (_) => DetailGuruPage(data: g), + ), + ); + loadData(); + }, + ), + ); + }), + ], + + // --- BAGIAN MURID --- + const Padding( + padding: EdgeInsets.only(left: 20.0, right: 20.0, top: 20, bottom: 10), + child: Align( + alignment: Alignment.centerLeft, + child: Text( + "Daftar Murid", + style: TextStyle( + fontSize: 18, + fontWeight: FontWeight.bold, + color: Color(0xFF1E293B), + ), + ), + ), + ), + if (muridList.isEmpty) + const Padding( + padding: EdgeInsets.all(20), + child: Center( + child: Text( + "Belum ada murid di kelas ini", + style: TextStyle(color: Colors.grey), + ), + ), + ) + else + ...muridList.map((m) { + return Padding( + padding: const EdgeInsets.symmetric(horizontal: 20, vertical: 6), + child: CustomCard( + title: m['nama'] ?? 'Tanpa Nama', + titleStyle: const TextStyle( + fontFamily: 'Inter', + fontSize: 14, + fontWeight: FontWeight.w700, + color: Color(0xFF1E293B), + ), + customSubtitle: Row( + children: [ + Text( + 'NIS: ${m['nis'] ?? '-'}', + style: const TextStyle( + fontFamily: 'Inter', + fontSize: 12, + fontWeight: FontWeight.w500, + color: Color(0xFF64748B), + ), + ), + const SizedBox(width: 8), + Container( + width: 4, + height: 4, + decoration: const BoxDecoration( + color: Color(0xFFCBD5E1), + shape: BoxShape.circle, + ), + ), + const SizedBox(width: 8), + const Flexible( + child: Text( + 'Siswa', + style: TextStyle( + fontFamily: 'Inter', + fontSize: 12, + fontWeight: FontWeight.w500, + color: Color(0xFF64748B), + ), + overflow: TextOverflow.ellipsis, + ), + ), + ], + ), + showIcon: false, + backgroundColor: Colors.white, + borderColor: Colors.transparent, + borderWidth: 0, + margin: EdgeInsets.zero, + onTap: () async { + await Navigator.push( + context, + MaterialPageRoute( + builder: (_) => DetailMuridPage(data: m), + ), + ); + loadData(); + }, + ), + ); + }), + if (muridList.isNotEmpty) ...[ + const SizedBox(height: 24), + Padding( + padding: const EdgeInsets.symmetric(horizontal: 20), + child: ElevatedButton.icon( + onPressed: _showPromoteDialog, + icon: const Icon(Icons.arrow_upward, color: Colors.white, size: 18), + label: const Text( + "Naik Tingkat Kelas", + style: TextStyle( + fontFamily: 'Inter', + fontSize: 14, + fontWeight: FontWeight.w700, + color: Colors.white, + ), + ), + style: ElevatedButton.styleFrom( + backgroundColor: const Color(0xFF2563EB), + foregroundColor: Colors.white, + elevation: 0, + padding: const EdgeInsets.symmetric(vertical: 14), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(12), + ), + minimumSize: const Size(double.infinity, 50), + ), + ), + ), + ], + ], + ), + ); + } +} diff --git a/lib/dashboard/a_admin/function/f_kelas/form_kelas..dart b/lib/dashboard/a_admin/function/f_kelas/form_kelas..dart new file mode 100644 index 0000000..5d26ce1 --- /dev/null +++ b/lib/dashboard/a_admin/function/f_kelas/form_kelas..dart @@ -0,0 +1,242 @@ +import 'package:flutter/material.dart'; +import 'package:apk/dashboard/a_admin/database/db_kelas.dart'; + +class FormKelasPage extends StatefulWidget { + const FormKelasPage({super.key}); + + @override + State createState() => _FormKelasPageState(); +} + +class _FormKelasPageState extends State { + final nameClassController = TextEditingController(); + final tahunAwalController = TextEditingController(); + final tahunAkhirController = TextEditingController(); + + int? selectedTingkat; + + bool isLoading = false; + + @override + void initState() { + super.initState(); + loadData(); + } + + Future loadData() async { + // Intentionally left empty if we don't load guru/murid here anymore. + // If needed in the future, load other class-related data here. + } + + Future simpan() async { + if (nameClassController.text.isEmpty || selectedTingkat == null) { + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text("Nama Kelas dan Tingkat wajib diisi!")), + ); + return; + } + + setState(() => isLoading = true); + + try { + String tahunStr = ""; + if (tahunAwalController.text.isNotEmpty && tahunAkhirController.text.isNotEmpty) { + tahunStr = "${tahunAwalController.text} / ${tahunAkhirController.text}"; + } + + await ClassService.tambahKelas( + idClass: selectedTingkat!, + nameClass: nameClassController.text, + idGuru: null, + idMurid: null, + tahun: tahunStr.isEmpty ? null : tahunStr, + ); + + if (!mounted) return; + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text("Kelas berhasil disimpan")), + ); + + // reset form + nameClassController.clear(); + tahunAwalController.clear(); + tahunAkhirController.clear(); + + setState(() { + selectedTingkat = null; + }); + + } catch (e) { + if (!mounted) return; + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text("Error: $e")), + ); + } + + if (mounted) setState(() => isLoading = false); + } + + Widget _buildLabel(String text) { + return Text( + text, + style: const TextStyle( + fontFamily: 'Inter', + fontSize: 14, + fontWeight: FontWeight.w600, + color: Color(0xFF1E293B), + ), + ); + } + + InputDecoration _buildDecoration(String hintText) { + return InputDecoration( + hintText: hintText, + hintStyle: const TextStyle( + fontFamily: 'Inter', + fontSize: 14, + color: Color(0xFFC4C4C4), + ), + filled: true, + fillColor: const Color(0xFFF1F5F9), + contentPadding: const EdgeInsets.symmetric(horizontal: 20, vertical: 14), + border: OutlineInputBorder( + borderRadius: BorderRadius.circular(16), + borderSide: const BorderSide(color: Color(0xFFE2E8F0)), + ), + enabledBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(16), + borderSide: const BorderSide(color: Color(0xFFE2E8F0)), + ), + ); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + backgroundColor: const Color(0xFF2563EB), + elevation: 0, + automaticallyImplyLeading: true, + leading: IconButton( + icon: Image.asset('lib/assets/icons/Button.png', width: 30, height: 30), + onPressed: () => Navigator.pop(context), + ), + titleSpacing: -5, + title: const Text("Form Kelas"), + titleTextStyle: const TextStyle( + fontFamily: "Inter", + fontSize: 16, + fontWeight: FontWeight.w700, + color: Colors.white, + ), + ), + body: Padding( + padding: const EdgeInsets.symmetric(horizontal: 2, vertical: 10), + child: ListView( + children: [ + // Nama Kelas + _buildLabel("Nama Kelas *"), + const SizedBox(height: 6), + TextField( + controller: nameClassController, + style: const TextStyle(fontFamily: 'Inter', fontSize: 14), + decoration: _buildDecoration("Contoh: Kelas 1A"), + ), + const SizedBox(height: 16), + + // Tingkat + _buildLabel("Tingkat Kelas *"), + const SizedBox(height: 6), + DropdownButtonFormField( + value: selectedTingkat, + hint: const Text( + "Pilih Tingkat / Lain-lain", + style: TextStyle(fontFamily: 'Inter', fontSize: 14, color: Color(0xFFC4C4C4)), + ), + decoration: _buildDecoration("").copyWith(hintText: null), + items: [ + for (int i = 1; i <= 6; i++) + DropdownMenuItem(value: i, child: Text("Tingkat $i", style: const TextStyle(fontFamily: 'Inter', fontSize: 14))), + const DropdownMenuItem(value: 7, child: Text("Lain-lain", style: TextStyle(fontFamily: 'Inter', fontSize: 14))), + ], + onChanged: (value) { + setState(() { + selectedTingkat = value; + }); + }, + ), + const SizedBox(height: 16), + + + + // Tahun Ajaran + _buildLabel("Tahun Ajaran"), + const SizedBox(height: 6), + Row( + children: [ + Expanded( + child: TextField( + controller: tahunAwalController, + keyboardType: TextInputType.number, + style: const TextStyle(fontFamily: 'Inter', fontSize: 14), + decoration: _buildDecoration("2024"), + textAlign: TextAlign.center, + ), + ), + const Padding( + padding: EdgeInsets.symmetric(horizontal: 16), + child: Text( + "/", + style: TextStyle( + fontFamily: 'Inter', + fontSize: 24, + fontWeight: FontWeight.w600, + color: Color(0xFF64748B), + ), + ), + ), + Expanded( + child: TextField( + controller: tahunAkhirController, + keyboardType: TextInputType.number, + style: const TextStyle(fontFamily: 'Inter', fontSize: 14), + decoration: _buildDecoration("2025"), + textAlign: TextAlign.center, + ), + ), + ], + ), + const SizedBox(height: 24), + + ElevatedButton( + onPressed: isLoading ? null : simpan, + style: ElevatedButton.styleFrom( + backgroundColor: const Color(0xFF2563EB), + padding: const EdgeInsets.symmetric(vertical: 16), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(24), + ), + elevation: 0, + ), + child: isLoading + ? const SizedBox( + width: 20, + height: 20, + child: CircularProgressIndicator(color: Colors.white, strokeWidth: 2), + ) + : const Text( + "Simpan", + style: TextStyle( + fontFamily: 'Inter', + fontSize: 14, + fontWeight: FontWeight.w700, + color: Colors.white, + ), + ), + ), + ], + ), + ), + ); + } +} diff --git a/lib/dashboard/a_admin/function/f_kelas/update_kelas.dart b/lib/dashboard/a_admin/function/f_kelas/update_kelas.dart new file mode 100644 index 0000000..9e1f05b --- /dev/null +++ b/lib/dashboard/a_admin/function/f_kelas/update_kelas.dart @@ -0,0 +1,471 @@ +import 'package:flutter/material.dart'; +import 'package:apk/dashboard/a_admin/database/db_kelas.dart'; +import 'package:apk/dashboard/a_admin/function/f_murid/form_murid.dart'; +import 'package:apk/dashboard/a_admin/function/f_guru/form_guru.dart'; + +class UpdateKelasPage extends StatefulWidget { + final Map classData; + + const UpdateKelasPage({super.key, required this.classData}); + + @override + State createState() => _UpdateKelasPageState(); +} + +class _UpdateKelasPageState extends State { + final nameController = TextEditingController(); + final levelController = TextEditingController(); + final tahunController = TextEditingController(); + + bool isLoading = false; + + List> muridInClass = []; + List> guruInClass = []; + + List> muridUnassigned = []; + List> guruUnassigned = []; + + @override + void initState() { + super.initState(); + nameController.text = widget.classData['name_class']?.toString() ?? ''; + levelController.text = widget.classData['id_class']?.toString() ?? ''; + tahunController.text = widget.classData['tahun']?.toString() ?? ''; + + fetchData(); + } + + Future fetchData() async { + setState(() => isLoading = true); + try { + final idTabel = widget.classData['id_tabel']; + final mc = await ClassService.getMuridByClass(idTabel); + final gc = await ClassService.getGuruByClass(idTabel); + final mu = await ClassService.getMuridUnassigned(); + final gu = await ClassService.getGuruUnassigned(); + + setState(() { + muridInClass = mc; + guruInClass = gc; + muridUnassigned = mu; + guruUnassigned = gu; + }); + } catch (e) { + print("Error fetching update data: $e"); + } finally { + if (mounted) setState(() => isLoading = false); + } + } + + Future simpanInfoKelas() async { + if (nameController.text.isEmpty || levelController.text.isEmpty) { + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text("Nama Kelas dan Tingkat Kelas wajib diisi!")), + ); + return; + } + + setState(() => isLoading = true); + try { + await ClassService.updateKelas( + idTabel: widget.classData['id_tabel'], + idClass: int.tryParse(levelController.text) ?? 1, + nameClass: nameController.text, + tahun: tahunController.text.isEmpty ? null : tahunController.text, + ); + if (!mounted) return; + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text("Info kelas berhasil diupdate")), + ); + Navigator.pop(context, { + 'name_class': nameController.text, + 'id_class': int.tryParse(levelController.text) ?? 1, + 'tahun': tahunController.text.isEmpty ? null : tahunController.text, + }); + } catch (e) { + if (!mounted) return; + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text("Gagal mengupdate info: $e")), + ); + } finally { + if (mounted) setState(() => isLoading = false); + } + } + + Future hapusKelas() async { + bool confirm = await showDialog( + context: context, + builder: (context) => AlertDialog( + title: const Text("Hapus Kelas"), + content: const Text("Yakin ingin menghapus kelas ini? Semua guru dan murid di kelas ini akan dikeluarkan dari kelas."), + actions: [ + TextButton( + onPressed: () => Navigator.pop(context, false), + child: const Text("Batal"), + ), + TextButton( + onPressed: () => Navigator.pop(context, true), + child: const Text("Hapus", style: TextStyle(color: Colors.red)), + ), + ], + ), + ) ?? false; + + if (!confirm) return; + + setState(() => isLoading = true); + try { + await ClassService.deleteKelas(widget.classData['id_tabel']); + if (!mounted) return; + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text("Kelas berhasil dihapus")), + ); + Navigator.pop(context); // close update page + Navigator.pop(context); // close detail page, back to list + } catch (e) { + if (!mounted) return; + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text("Gagal menghapus kelas: $e")), + ); + setState(() => isLoading = false); + } + } + + void assignGuru(String idGuru, bool asWali) async { + setState(() => isLoading = true); + try { + await ClassService.assignGuruToClass(idGuru, widget.classData['id_tabel'], isWali: asWali); + await fetchData(); + } catch (e) { + ScaffoldMessenger.of(context).showSnackBar(SnackBar(content: Text("Gagal assign guru: $e"))); + setState(() => isLoading = false); + } + } + + void unassignGuru(String idGuru) async { + setState(() => isLoading = true); + try { + await ClassService.removeGuruFromClass(idGuru); + await fetchData(); + } catch (e) { + ScaffoldMessenger.of(context).showSnackBar(SnackBar(content: Text("Gagal remove guru: $e"))); + setState(() => isLoading = false); + } + } + + void assignMurid(String idMurid) async { + setState(() => isLoading = true); + try { + await ClassService.assignMuridToClass(idMurid, widget.classData['id_tabel']); + await fetchData(); + } catch (e) { + ScaffoldMessenger.of(context).showSnackBar(SnackBar(content: Text("Gagal assign murid: $e"))); + setState(() => isLoading = false); + } + } + + void unassignMurid(String idMurid) async { + setState(() => isLoading = true); + try { + await ClassService.removeMuridFromClass(idMurid); + await fetchData(); + } catch (e) { + ScaffoldMessenger.of(context).showSnackBar(SnackBar(content: Text("Gagal remove murid: $e"))); + setState(() => isLoading = false); + } + } + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: const Color(0xFFF8FAFC), + appBar: AppBar( + backgroundColor: const Color(0xFF2563EB), + elevation: 0, + automaticallyImplyLeading: true, + leading: IconButton( + icon: Image.asset('lib/assets/icons/Button.png', width: 30, height: 30), + onPressed: () => Navigator.pop(context), + ), + titleSpacing: -5, + title: const Text("Update Kelas"), + titleTextStyle: const TextStyle( + fontFamily: "Inter", + fontSize: 16, + fontWeight: FontWeight.w700, + color: Colors.white, + ), + ), + body: isLoading + ? const Center(child: CircularProgressIndicator()) + : ListView( + padding: const EdgeInsets.all(20), + children: [ + _buildSectionTitle("Informasi Kelas"), + _buildInfoForm(), + const SizedBox(height: 30), + + _buildSectionTitle( + "Kelola Guru", + onAdd: () { + Navigator.push(context, MaterialPageRoute(builder: (_) => const FormGuruPage())).then((_) => fetchData()); + }, + ), + _buildGuruList(), + + const SizedBox(height: 30), + _buildSectionTitle( + "Kelola Murid", + onAdd: () { + Navigator.push(context, MaterialPageRoute(builder: (_) => const FormMuridPage())).then((_) => fetchData()); + }, + ), + _buildMuridList(), + + const SizedBox(height: 40), + ElevatedButton( + onPressed: hapusKelas, + style: ElevatedButton.styleFrom( + backgroundColor: Colors.red[50], + foregroundColor: Colors.red[700], + padding: const EdgeInsets.symmetric(vertical: 16), + elevation: 0, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(12), + side: BorderSide(color: Colors.red[200]!), + ), + ), + child: const Text("Hapus Kelas", style: TextStyle(fontSize: 16, fontWeight: FontWeight.bold)), + ), + const SizedBox(height: 20), + ], + ), + ); + } + + Widget _buildSectionTitle(String title, {VoidCallback? onAdd}) { + return Padding( + padding: const EdgeInsets.only(bottom: 12.0), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text( + title, + style: const TextStyle( + fontSize: 18, + fontWeight: FontWeight.bold, + color: Color(0xFF1E293B), + ), + ), + if (onAdd != null) + TextButton.icon( + onPressed: onAdd, + icon: const Icon(Icons.add, size: 18), + label: const Text("Buat Baru"), + style: TextButton.styleFrom( + foregroundColor: const Color(0xFF2563EB), + padding: EdgeInsets.zero, + minimumSize: const Size(50, 30), + tapTargetSize: MaterialTapTargetSize.shrinkWrap, + ), + ), + ], + ), + ); + } + + Widget _buildInfoForm() { + return Container( + padding: const EdgeInsets.all(20), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(16), + boxShadow: [ + BoxShadow( + color: Colors.black.withOpacity(0.05), + blurRadius: 10, + offset: const Offset(0, 4), + ) + ], + ), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + const Text("Nama Kelas"), + const SizedBox(height: 6), + TextField( + controller: nameController, + decoration: _inputDecoration("Contoh: Kelas 1A"), + ), + const SizedBox(height: 16), + + const Text("Tingkat Kelas (Angka)"), + const SizedBox(height: 6), + TextField( + controller: levelController, + keyboardType: TextInputType.number, + decoration: _inputDecoration("Contoh: 1"), + ), + const SizedBox(height: 16), + + const Text("Tahun Ajaran"), + const SizedBox(height: 6), + TextField( + controller: tahunController, + decoration: _inputDecoration("Contoh: 2023/2024"), + ), + const SizedBox(height: 24), + + SizedBox( + width: double.infinity, + child: ElevatedButton( + onPressed: simpanInfoKelas, + style: ElevatedButton.styleFrom( + backgroundColor: const Color(0xFF2563EB), + padding: const EdgeInsets.symmetric(vertical: 14), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(12), + ), + ), + child: const Text("Simpan Perubahan", style: TextStyle(color: Colors.white, fontSize: 16)), + ), + ), + ], + ), + ); + } + + InputDecoration _inputDecoration(String hint) { + return InputDecoration( + hintText: hint, + filled: true, + fillColor: const Color(0xFFF1F5F9), + contentPadding: const EdgeInsets.symmetric(horizontal: 16, vertical: 14), + border: OutlineInputBorder( + borderRadius: BorderRadius.circular(12), + borderSide: BorderSide.none, + ), + ); + } + + Widget _buildGuruList() { + return Container( + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(16), + boxShadow: [ + BoxShadow( + color: Colors.black.withOpacity(0.05), + blurRadius: 10, + offset: const Offset(0, 4), + ) + ], + ), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + if (guruInClass.isNotEmpty) ...[ + const Padding( + padding: EdgeInsets.all(16.0), + child: Text("Guru di kelas ini:", style: TextStyle(fontWeight: FontWeight.bold, color: Colors.blue)), + ), + ...guruInClass.map((g) => ListTile( + title: Text(g['name'] ?? ''), + subtitle: Text(g['wali'] == true ? "Wali Kelas" : "Guru Mapel"), + trailing: IconButton( + icon: const Icon(Icons.remove_circle, color: Colors.red), + onPressed: () => unassignGuru(g['id_tabel']), + ), + )), + const Divider(), + ], + + if (guruUnassigned.isNotEmpty) ...[ + const Padding( + padding: EdgeInsets.all(16.0), + child: Text("Tambahkan Guru:", style: TextStyle(fontWeight: FontWeight.bold, color: Colors.green)), + ), + ...guruUnassigned.map((g) => ListTile( + title: Text(g['name'] ?? ''), + subtitle: Text("Mapel: ${g['bidang'] ?? '-'}"), + trailing: Row( + mainAxisSize: MainAxisSize.min, + children: [ + TextButton( + onPressed: () => assignGuru(g['id_tabel'], true), + child: const Text("Jadikan Wali"), + ), + IconButton( + icon: const Icon(Icons.add_circle, color: Colors.green), + onPressed: () => assignGuru(g['id_tabel'], false), + ), + ], + ), + )), + ] else if (guruInClass.isEmpty) ...[ + const Padding( + padding: EdgeInsets.all(16), + child: Text("Tidak ada guru yang tersedia."), + ) + ] + ], + ), + ); + } + + Widget _buildMuridList() { + return Container( + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(16), + boxShadow: [ + BoxShadow( + color: Colors.black.withOpacity(0.05), + blurRadius: 10, + offset: const Offset(0, 4), + ) + ], + ), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + if (muridInClass.isNotEmpty) ...[ + const Padding( + padding: EdgeInsets.all(16.0), + child: Text("Murid di kelas ini:", style: TextStyle(fontWeight: FontWeight.bold, color: Colors.blue)), + ), + ...muridInClass.map((m) => ListTile( + title: Text(m['nama'] ?? ''), + subtitle: Text("NIS: ${m['nis'] ?? '-'}"), + trailing: IconButton( + icon: const Icon(Icons.remove_circle, color: Colors.red), + onPressed: () => unassignMurid(m['id_tabel']), + ), + )), + const Divider(), + ], + + if (muridUnassigned.isNotEmpty) ...[ + const Padding( + padding: EdgeInsets.all(16.0), + child: Text("Tambahkan Murid:", style: TextStyle(fontWeight: FontWeight.bold, color: Colors.green)), + ), + ...muridUnassigned.map((m) => ListTile( + title: Text(m['nama'] ?? ''), + subtitle: Text("NIS: ${m['nis'] ?? '-'}"), + trailing: IconButton( + icon: const Icon(Icons.add_circle, color: Colors.green), + onPressed: () => assignMurid(m['id_tabel']), + ), + )), + ] else if (muridInClass.isEmpty) ...[ + const Padding( + padding: EdgeInsets.all(16), + child: Text("Tidak ada murid yang tersedia."), + ) + ] + ], + ), + ); + } +} diff --git a/lib/dashboard/a_admin/function/f_murid/detai_murid.dart b/lib/dashboard/a_admin/function/f_murid/detai_murid.dart new file mode 100644 index 0000000..680c739 --- /dev/null +++ b/lib/dashboard/a_admin/function/f_murid/detai_murid.dart @@ -0,0 +1,493 @@ +import 'dart:convert'; +import 'package:http/http.dart' as http; +import 'package:shared_preferences/shared_preferences.dart'; +import 'package:flutter/material.dart'; +import 'package:apk/dashboard/a_admin/database/db_siswa.dart'; +import 'package:apk/dashboard/a_admin/widget/custom_button.dart'; +import 'package:apk/dashboard/a_admin/function/f_murid/update_murid.dart'; +import 'package:apk/dashboard/a_admin/function/f_alat/config_user.dart'; + +class DetailMuridPage extends StatefulWidget { + final Map data; + + const DetailMuridPage({ + super.key, + required this.data, + }); + + @override + State createState() => _DetailMuridPageState(); +} + +class _DetailMuridPageState extends State { + final service = MuridService(); + late Map currentData; + + bool _isLoadingStatus = true; + bool _hasFace = false; + bool _hasRFID = false; + String _rfidUid = ''; + String _serverUrl = 'http://192.168.100.16:8000'; + + @override + void initState() { + super.initState(); + currentData = Map.from(widget.data); + _fetchStatus(); + } + + Future _fetchStatus() async { + try { + final prefs = await SharedPreferences.getInstance(); + _serverUrl = (prefs.getString('face_server_url') ?? 'http://192.168.100.16:8000').replaceAll(RegExp(r'/+$'), ''); + + final res = await http.get(Uri.parse('$_serverUrl/api/persons')).timeout(const Duration(seconds: 7)); + if (res.statusCode == 200) { + final data = json.decode(res.body); + final items = data['items'] as List; + final nameToFind = currentData['nama']?.toString() ?? ""; + final match = items.where((e) => e['person'] == nameToFind).toList(); + if (match.isNotEmpty) { + _hasFace = match.first['has_face'] == true; + _rfidUid = match.first['rfid_uid']?.toString() ?? ''; + _hasRFID = _rfidUid.isNotEmpty; + } + } + } catch (e) { + debugPrint('Error fetch status alat: $e'); + } + if (mounted) { + setState(() { + _isLoadingStatus = false; + }); + } + } + + Future deleteData() async { + try { + await service.deleteMurid(currentData['id_tabel']); + if (!mounted) return; + Navigator.pop(context, true); + } catch (e) { + if (!mounted) return; + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text(e.toString().replaceAll('Exception: ', ''))), + ); + } + } + + String get _nama => currentData['nama']?.toString().isEmpty ?? true ? "Belum diisi" : currentData['nama']; + String get _nis => currentData['nis']?.toString().isEmpty ?? true ? "Belum diisi" : currentData['nis'].toString(); + String get _kelas { + final kelas = currentData['class_name']?['name_class']?.toString() ?? ""; + return kelas.isEmpty ? "Belum ada kelas" : kelas; + } + + String _displayValue(String label, String? value) { + if (value == null || value.isEmpty) return "Belum diisi"; + if (label != "Tanggal Lahir") return value; + + final date = DateTime.tryParse(value); + if (date == null) return value; + + final day = date.day.toString().padLeft(2, '0'); + final month = date.month.toString().padLeft(2, '0'); + return "$day-$month-${date.year}"; + } + + IconData _iconForLabel(String label) { + switch (label) { + case "Wajah": + return Icons.face; + case "RFID": + return Icons.credit_card; + case "NIS": + return Icons.badge_outlined; + case "Nama": + return Icons.person_outline; + case "Gender": + return Icons.person_pin_outlined; + case "Tanggal Lahir": + return Icons.calendar_month_outlined; + case "Alamat": + return Icons.location_on_outlined; + case "Orang Tua": + return Icons.groups_2_outlined; + case "No Telepon": + return Icons.phone_outlined; + default: + return Icons.info_outline; + } + } + + Widget _infoCard({ + required IconData icon, + required String title, + required String value, + bool isEmpty = false, + }) { + return CustomCard( + title: title, + subtitle: value, + icon: icon, + iconPosition: IconPosition.left, + iconColor: const Color(0xFF2563EB), + iconSize: 24, + iconContainerSize: 46, + iconDecoration: BoxDecoration( + color: const Color(0xFFEFF6FF), + borderRadius: BorderRadius.circular(9), + ), + backgroundColor: Colors.white, + borderColor: Colors.transparent, + borderWidth: 0, + borderRadius: 0, + margin: EdgeInsets.zero, + padding: const EdgeInsets.symmetric(horizontal: 20, vertical: 16), + boxShadow: const [], + titleStyle: const TextStyle( + fontFamily: 'Inter', + fontSize: 14, + fontWeight: FontWeight.w500, + color: Color(0xFF8FA0BA), + ), + subtitleStyle: TextStyle( + fontFamily: 'Inter', + fontSize: 16, + fontWeight: FontWeight.w700, + fontStyle: isEmpty ? FontStyle.italic : FontStyle.normal, + color: isEmpty ? const Color(0xFFC8D2E0) : const Color(0xFF172033), + ), + showIcon: true, + ); + } + + Widget _sectionCard(List children) { + return Container( + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(20), + border: Border.all(color: const Color(0xFFE8EEF6)), + boxShadow: [ + BoxShadow( + color: Colors.black.withOpacity(0.04), + blurRadius: 10, + offset: const Offset(0, 3), + ), + ], + ), + child: ClipRRect( + borderRadius: BorderRadius.circular(20), + child: Column( + children: [ + for (int i = 0; i < children.length; i++) ...[ + children[i], + if (i != children.length - 1) + const Divider( + height: 1, + thickness: 1, + color: Color(0xFFF0F4FA), + indent: 82, + endIndent: 20, + ), + ], + ], + ), + ), + ); + } + + Widget _sectionTitle(String title) { + return Padding( + padding: const EdgeInsets.only(left: 4, bottom: 12), + child: Text( + title, + style: const TextStyle( + fontFamily: 'Inter', + fontSize: 15, + fontWeight: FontWeight.w800, + color: Color(0xFF64748B), + ), + ), + ); + } + + Widget _profileHeader() { + return Container( + width: double.infinity, + padding: const EdgeInsets.symmetric(vertical: 24, horizontal: 16), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(18), + border: Border.all(color: const Color(0xFFE8EEF6)), + boxShadow: [ + BoxShadow( + color: Colors.black.withOpacity(0.04), + blurRadius: 12, + offset: const Offset(0, 5), + ), + ], + ), + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + Text( + _nama, + textAlign: TextAlign.center, + style: const TextStyle( + fontFamily: 'Inter', + fontSize: 16, + fontWeight: FontWeight.w800, + color: Color(0xFF172033), + ), + ), + const SizedBox(height: 16), + Wrap( + alignment: WrapAlignment.center, + crossAxisAlignment: WrapCrossAlignment.center, + spacing: 16, + runSpacing: 10, + children: [ + Row( + mainAxisSize: MainAxisSize.min, + children: [ + const Icon( + Icons.badge_outlined, + size: 18, + color: Color(0xFF8FA0BA), + ), + const SizedBox(width: 6), + Text( + "NIS: $_nis", + style: const TextStyle( + fontFamily: 'Inter', + fontSize: 15, + fontWeight: FontWeight.w600, + color: Color(0xFF64748B), + ), + ), + ], + ), + Container( + padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 7), + decoration: BoxDecoration( + color: const Color(0xFFEFF6FF), + borderRadius: BorderRadius.circular(18), + ), + child: Row( + mainAxisSize: MainAxisSize.min, + children: [ + const Icon( + Icons.school_outlined, + size: 18, + color: Color(0xFF2563EB), + ), + const SizedBox(width: 6), + Text( + _kelas, + style: const TextStyle( + fontFamily: 'Inter', + fontSize: 15, + fontWeight: FontWeight.w700, + color: Color(0xFF2563EB), + ), + ), + ], + ), + ), + ], + ), + ], + ), + ); + } + + Widget _actionButton({ + required String label, + required Color color, + required VoidCallback? onPressed, + bool loading = false, + }) { + final bool isWhite = color == Colors.white; + return Expanded( + child: ElevatedButton( + onPressed: onPressed, + style: ElevatedButton.styleFrom( + backgroundColor: color, + foregroundColor: isWhite ? const Color(0xFF64748B) : Colors.white, + elevation: 0, + padding: const EdgeInsets.symmetric(vertical: 16), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(24), + side: isWhite ? const BorderSide(color: Color(0xFF94A3B8)) : BorderSide.none, + ), + ), + child: loading + ? SizedBox( + width: 20, + height: 20, + child: CircularProgressIndicator( + color: isWhite ? const Color(0xFF64748B) : Colors.white, + strokeWidth: 2, + ), + ) + : Text( + label, + style: const TextStyle( + fontFamily: 'Inter', + fontSize: 16, + fontWeight: FontWeight.w700, + ), + ), + ), + ); + } + + @override + Widget build(BuildContext context) { + final gender = currentData['gender']?.toString() ?? ""; + final tglLahir = currentData['tanggal_lahir']?.toString() ?? ""; + final alamat = currentData['alamat']?.toString() ?? ""; + final ortu = currentData['orang_tua']?.toString() ?? ""; + final tele = currentData['no_tele']?.toString() ?? ""; + + return Scaffold( + backgroundColor: const Color(0xFFF4F7FB), + appBar: AppBar( + backgroundColor: const Color(0xFF2563EB), + elevation: 0, + automaticallyImplyLeading: true, + leading: IconButton( + icon: Image.asset('lib/assets/icons/Button.png', width: 30, height: 30), + onPressed: () => Navigator.pop(context), + ), + titleSpacing: -5, + title: const Text("Detail Murid"), + titleTextStyle: const TextStyle( + fontFamily: "Inter", + fontSize: 16, + fontWeight: FontWeight.w700, + color: Colors.white, + ), + ), + body: ListView( + padding: const EdgeInsets.fromLTRB(24, 18, 24, 28), + children: [ + _profileHeader(), + const SizedBox(height: 20), + _sectionTitle("Identitas"), + _sectionCard([ + _infoCard( + icon: _iconForLabel("Gender"), + title: "Gender", + value: _displayValue("Gender", gender), + isEmpty: gender.isEmpty, + ), + _infoCard( + icon: _iconForLabel("Tanggal Lahir"), + title: "Tanggal Lahir", + value: _displayValue("Tanggal Lahir", tglLahir), + isEmpty: tglLahir.isEmpty, + ), + _infoCard( + icon: _iconForLabel("Alamat"), + title: "Alamat", + value: _displayValue("Alamat", alamat), + isEmpty: alamat.isEmpty, + ), + ]), + const SizedBox(height: 18), + _sectionTitle("Status Registrasi Alat"), + _sectionCard([ + _infoCard( + icon: _iconForLabel("Wajah"), + title: "Wajah", + value: _isLoadingStatus ? "Loading..." : (_hasFace ? "Terdaftar" : "Belum Terdaftar"), + isEmpty: !_hasFace && !_isLoadingStatus, + ), + _infoCard( + icon: _iconForLabel("RFID"), + title: "RFID", + value: _isLoadingStatus ? "Loading..." : (_hasRFID ? _rfidUid : "Belum Terdaftar"), + isEmpty: !_hasRFID && !_isLoadingStatus, + ), + ]), + const SizedBox(height: 18), + _sectionTitle("Kontak Orang Tua"), + _sectionCard([ + _infoCard( + icon: _iconForLabel("Orang Tua"), + title: "Orang Tua", + value: _displayValue("Orang Tua", ortu), + isEmpty: ortu.isEmpty, + ), + _infoCard( + icon: _iconForLabel("No Telepon"), + title: "No Telepon", + value: _displayValue("No Telepon", tele), + isEmpty: tele.isEmpty, + ), + ]), + const SizedBox(height: 24), + ElevatedButton.icon( + onPressed: () { + Navigator.push( + context, + MaterialPageRoute( + builder: (_) => ConfigUser(initialUid: currentData['nama']?.toString()), + ), + ); + }, + icon: const Icon(Icons.face_retouching_natural, color: Colors.white, size: 20), + label: const Text( + "Hubungkan ke Alat (Set Identitas)", + style: TextStyle( + fontFamily: 'Inter', + fontSize: 15, + fontWeight: FontWeight.bold, + color: Colors.white, + ), + ), + style: ElevatedButton.styleFrom( + backgroundColor: const Color(0xFF10B981), // Emerald green + elevation: 0, + padding: const EdgeInsets.symmetric(vertical: 14), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(24), + ), + minimumSize: const Size(double.infinity, 50), + ), + ), + const SizedBox(height: 12), + Row( + children: [ + _actionButton( + label: "Edit", + color: const Color(0xFF2563EB), + onPressed: () async { + final result = await Navigator.push( + context, + MaterialPageRoute( + builder: (_) => UpdateMuridPage(data: currentData), + ), + ); + if (result != null && mounted) { + setState(() { + currentData = result; + }); + } + }, + ), + const SizedBox(width: 10), + _actionButton( + label: "Delete", + color: Colors.red, + onPressed: deleteData, + ), + ], + ), + ], + ), + ); + } +} diff --git a/lib/dashboard/a_admin/function/f_murid/false_delete.dart b/lib/dashboard/a_admin/function/f_murid/false_delete.dart new file mode 100644 index 0000000..c123e76 --- /dev/null +++ b/lib/dashboard/a_admin/function/f_murid/false_delete.dart @@ -0,0 +1,277 @@ +import 'package:flutter/material.dart'; +import 'package:apk/dashboard/a_admin/database/db_siswa.dart'; +import 'package:apk/dashboard/a_admin/widget/custom_button.dart'; + +class FalseDeleteMuridPage extends StatefulWidget { + const FalseDeleteMuridPage({super.key}); + + @override + State createState() => _FalseDeleteMuridPageState(); +} + +class _FalseDeleteMuridPageState extends State { + final service = MuridService(); + List> deletedMuridList = []; + bool isLoading = true; + String? errorMessage; + + @override + void initState() { + super.initState(); + loadData(); + } + + Future loadData() async { + try { + final data = await service.getDeletedMurid(); + if (mounted) { + setState(() { + deletedMuridList = data; + isLoading = false; + errorMessage = null; + }); + } + } catch (e) { + if (mounted) { + setState(() { + isLoading = false; + errorMessage = e.toString().replaceAll('Exception: ', ''); + }); + } + } + } + + Future restoreMurid(String idTabel, String name) async { + final confirm = await showDialog( + context: context, + builder: (context) => AlertDialog( + title: const Text("Pulihkan Murid"), + content: Text("Apakah Anda yakin ingin memulihkan data murid $name?"), + actions: [ + TextButton( + onPressed: () => Navigator.pop(context, false), + child: const Text("Batal"), + ), + ElevatedButton( + onPressed: () => Navigator.pop(context, true), + style: ElevatedButton.styleFrom(backgroundColor: const Color(0xFF2563EB)), + child: const Text("Pulihkan", style: TextStyle(color: Colors.white)), + ), + ], + ), + ); + + if (confirm != true) return; + + setState(() => isLoading = true); + try { + await service.restoreMurid(idTabel); + if (mounted) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text("Data murid $name berhasil dipulihkan")), + ); + } + loadData(); + } catch (e) { + if (mounted) { + setState(() => isLoading = false); + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text("Gagal memulihkan: ${e.toString().replaceAll('Exception: ', '')}")), + ); + } + } + } + + Future deletePermanentlyMurid(String idTabel, String name) async { + final confirm = await showDialog( + context: context, + builder: (context) => AlertDialog( + title: const Text("Hapus Permanen"), + content: Text("Apakah Anda yakin ingin menghapus permanen data murid $name? Tindakan ini tidak dapat dibatalkan."), + actions: [ + TextButton( + onPressed: () => Navigator.pop(context, false), + child: const Text("Batal"), + ), + ElevatedButton( + onPressed: () => Navigator.pop(context, true), + style: ElevatedButton.styleFrom(backgroundColor: Colors.red), + child: const Text("Hapus", style: TextStyle(color: Colors.white)), + ), + ], + ), + ); + + if (confirm != true) return; + + setState(() => isLoading = true); + try { + await service.deleteMuridPermanently(idTabel); + if (mounted) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text("Data murid $name berhasil dihapus permanen")), + ); + } + loadData(); + } catch (e) { + if (mounted) { + setState(() => isLoading = false); + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text("Gagal menghapus: ${e.toString().replaceAll('Exception: ', '')}")), + ); + } + } + } + + String safe(dynamic value) { + if (value == null || value.toString().isEmpty) return "N/A"; + return value.toString(); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: const Color(0xFFF4F7FB), + appBar: AppBar( + backgroundColor: const Color(0xFF2563EB), + elevation: 0, + automaticallyImplyLeading: true, + leading: IconButton( + icon: Image.asset('lib/assets/icons/Button.png', width: 30, height: 30), + onPressed: () => Navigator.pop(context), + ), + titleSpacing: -5, + title: const Text("Tempat Sampah Murid"), + titleTextStyle: const TextStyle( + fontFamily: "Inter", + fontSize: 16, + fontWeight: FontWeight.w700, + color: Colors.white, + ), + ), + body: RefreshIndicator( + onRefresh: loadData, + child: isLoading + ? const Center(child: CircularProgressIndicator()) + : errorMessage != null + ? ListView( + children: [ + SizedBox(height: MediaQuery.of(context).size.height * 0.3), + Center( + child: Text( + "Terjadi Kesalahan:\n$errorMessage", + textAlign: TextAlign.center, + style: const TextStyle(color: Colors.red), + ), + ), + ], + ) + : deletedMuridList.isEmpty + ? ListView( + children: [ + SizedBox(height: MediaQuery.of(context).size.height * 0.35), + const Center( + child: Text( + "Tidak ada data murid yang dihapus", + style: TextStyle( + fontFamily: 'Inter', + fontSize: 14, + color: Colors.grey, + ), + ), + ), + ], + ) + : ListView.builder( + itemCount: deletedMuridList.length, + itemBuilder: (context, index) { + final m = deletedMuridList[index]; + final nama = safe(m['nama']); + final nis = safe(m['nis']); + final kelas = m['class_name']?['name_class'] ?? 'Belum ada kelas'; + + return Column( + children: [ + if (index == 0) const SizedBox(height: 12), + CustomCard( + title: nama, + titleStyle: const TextStyle( + fontFamily: 'Inter', + fontSize: 14, + fontWeight: FontWeight.w700, + color: Color(0xFF1E293B), + ), + customSubtitle: Row( + children: [ + Text( + 'NIS: $nis', + style: const TextStyle( + fontFamily: 'Inter', + fontSize: 12, + fontWeight: FontWeight.w500, + color: Color(0xFF64748B), + ), + ), + const SizedBox(width: 8), + Container( + width: 4, + height: 4, + decoration: const BoxDecoration( + color: Color(0xFFCBD5E1), + shape: BoxShape.circle, + ), + ), + const SizedBox(width: 8), + Flexible( + child: Text( + 'Kelas: $kelas', + style: const TextStyle( + fontFamily: 'Inter', + fontSize: 12, + fontWeight: FontWeight.w500, + color: Color(0xFF64748B), + ), + overflow: TextOverflow.ellipsis, + ), + ), + ], + ), + customIcon: Row( + mainAxisSize: MainAxisSize.min, + children: [ + InkWell( + onTap: () => restoreMurid(m['id_tabel'], nama), + borderRadius: BorderRadius.circular(20), + child: const Padding( + padding: EdgeInsets.all(6.0), + child: Icon(Icons.restore, color: Colors.green, size: 22), + ), + ), + const SizedBox(width: 4), + InkWell( + onTap: () => deletePermanentlyMurid(m['id_tabel'], nama), + borderRadius: BorderRadius.circular(20), + child: const Padding( + padding: EdgeInsets.all(6.0), + child: Icon(Icons.delete_forever, color: Colors.red, size: 22), + ), + ), + ], + ), + showIcon: true, + iconContainerSize: 80, + iconPadding: EdgeInsets.zero, + iconDecoration: const BoxDecoration(), + backgroundColor: Colors.white, + borderColor: Colors.transparent, + borderWidth: 0, + margin: const EdgeInsets.symmetric(horizontal: 20, vertical: 6), + ), + ], + ); + }, + ), + ), + ); + } +} diff --git a/lib/dashboard/a_admin/function/f_murid/form_murid.dart b/lib/dashboard/a_admin/function/f_murid/form_murid.dart new file mode 100644 index 0000000..b89882b --- /dev/null +++ b/lib/dashboard/a_admin/function/f_murid/form_murid.dart @@ -0,0 +1,375 @@ +import 'package:flutter/material.dart'; +import 'package:apk/dashboard/a_admin/database/db_siswa.dart'; +import 'package:apk/dashboard/a_admin/function/f_kelas/form_kelas..dart'; + +class FormMuridPage extends StatefulWidget { + const FormMuridPage({super.key}); + + @override + State createState() => _FormMuridPageState(); +} + +class _FormMuridPageState extends State { + final MuridService service = MuridService(); + + final nisController = TextEditingController(); + final namaController = TextEditingController(); + final alamatController = TextEditingController(); + final orangTuaController = TextEditingController(); + final noTeleController = TextEditingController(); + final tempatLahirController = TextEditingController(); + + List> kelasList = []; + String? selectedClass; + String? selectedGender; + DateTime? selectedDate; + + bool isLoading = false; + + @override + void initState() { + super.initState(); + loadKelas(); + } + + Future loadKelas() async { + final data = await service.getKelas(); + setState(() { + kelasList = data; + }); + } + + Future pickDate() async { + final picked = await showDatePicker( + context: context, + initialDate: DateTime(2010), + firstDate: DateTime(1990), + lastDate: DateTime.now(), + ); + + if (picked != null) { + setState(() { + selectedDate = picked; + }); + } + } + + Future simpan() async { + if (nisController.text.isEmpty || + namaController.text.isEmpty || + selectedClass == null || + selectedGender == null) { + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text("Field wajib belum diisi!")), + ); + return; + } + + setState(() => isLoading = true); + + try { + await service.addMurid( + nis: nisController.text, + nama: namaController.text, + idClass: selectedClass, + gender: selectedGender, + tanggalLahir: selectedDate, + alamat: alamatController.text, + orangTua: orangTuaController.text, + noTele: num.tryParse(noTeleController.text), + ); + + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text("Data berhasil disimpan")), + ); + + // reset form + nisController.clear(); + namaController.clear(); + alamatController.clear(); + orangTuaController.clear(); + noTeleController.clear(); + tempatLahirController.clear(); + + setState(() { + selectedClass = null; + selectedGender = null; + selectedDate = null; + }); + + } catch (e) { + if (!mounted) return; + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text(e.toString().replaceAll('Exception: ', ''))), + ); + } + + setState(() => isLoading = false); + } + + Widget _buildLabel(String text) { + return Text( + text, + style: const TextStyle( + fontFamily: 'Inter', + fontSize: 14, + fontWeight: FontWeight.w600, + color: Color(0xFF1E293B), + ), + ); + } + + InputDecoration _buildDecoration(String hintText) { + return InputDecoration( + hintText: hintText, + hintStyle: const TextStyle( + fontFamily: 'Inter', + fontSize: 14, + color: Color(0xFFC4C4C4), + ), + filled: true, + fillColor: const Color(0xFFF1F5F9), + contentPadding: const EdgeInsets.symmetric(horizontal: 20, vertical: 14), + border: OutlineInputBorder( + borderRadius: BorderRadius.circular(16), + borderSide: const BorderSide(color: Color(0xFFE2E8F0)), + ), + enabledBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(16), + borderSide: const BorderSide(color: Color(0xFFE2E8F0)), + ), + ); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + backgroundColor: const Color(0xFF2563EB), + elevation: 0, + automaticallyImplyLeading: true, + leading: IconButton( + icon: Image.asset('lib/assets/icons/Button.png', + width: 30, height: 30), + onPressed: () => Navigator.pop(context), + ), + titleSpacing: -5, + title: const Text("Form Murid"), + titleTextStyle: const TextStyle( + fontFamily: "Inter", + fontSize: 16, + fontWeight: FontWeight.w700, + color: Colors.white, + ), + ), + body: Padding( + padding: const EdgeInsets.symmetric(horizontal: 2, vertical: 10), + child: ListView( + children: [ + // NIS + _buildLabel("NIS *"), + const SizedBox(height: 6), + TextField( + controller: nisController, + keyboardType: TextInputType.number, + style: const TextStyle(fontFamily: 'Inter', fontSize: 14), + decoration: _buildDecoration("Masukkan Nomor Induk Siswa"), + ), + const SizedBox(height: 16), + + // Nama + _buildLabel("Nama Lengkap *"), + const SizedBox(height: 6), + TextField( + controller: namaController, + style: const TextStyle(fontFamily: 'Inter', fontSize: 14), + decoration: _buildDecoration("Nama lengkap sesuai akta"), + ), + const SizedBox(height: 16), + + // Kelas + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + _buildLabel("Kelas *"), + TextButton( + onPressed: () async { + await Navigator.push( + context, + MaterialPageRoute(builder: (context) => const FormKelasPage()), + ); + loadKelas(); + }, + style: TextButton.styleFrom( + padding: EdgeInsets.zero, + minimumSize: const Size(0, 0), + tapTargetSize: MaterialTapTargetSize.shrinkWrap, + ), + child: const Text( + "Buat Kelas", + style: TextStyle( + fontFamily: 'Inter', + fontSize: 12, + fontWeight: FontWeight.w600, + color: Color(0xFF2563EB), + ), + ), + ), + ], + ), + const SizedBox(height: 6), + DropdownButtonFormField( + isExpanded: true, + value: selectedClass, + hint: const Text( + "Pilih Kelas", + style: TextStyle(fontFamily: 'Inter', fontSize: 12, color: Color(0xFFC4C4C4)), + ), + decoration: _buildDecoration("").copyWith(hintText: null), + items: kelasList.map((kelas) { + return DropdownMenuItem( + value: kelas['id_tabel'], + child: Text( + kelas['name_class'], + style: const TextStyle(fontFamily: 'Inter', fontSize: 14), + ), + ); + }).toList(), + onChanged: (value) { + setState(() { + selectedClass = value; + }); + }, + ), + const SizedBox(height: 16), + + // Gender + _buildLabel("Jenis Kelamin *"), + const SizedBox(height: 6), + DropdownButtonFormField( + value: selectedGender, + hint: const Text( + "Pilih Jenis Kelamin", + style: TextStyle(fontFamily: 'Inter', fontSize: 12, color: Color(0xFFC4C4C4)), + ), + decoration: _buildDecoration("").copyWith(hintText: null), + items: const [ + DropdownMenuItem( + value: 'L', + child: Text("Laki-laki", style: TextStyle(fontFamily: 'Inter', fontSize: 14)), + ), + DropdownMenuItem( + value: 'P', + child: Text("Perempuan", style: TextStyle(fontFamily: 'Inter', fontSize: 14)), + ), + ], + onChanged: (value) { + setState(() { + selectedGender = value; + }); + }, + ), + const SizedBox(height: 16), + + // Tempat Lahir + _buildLabel("Tempat Lahir"), + const SizedBox(height: 6), + TextField( + controller: tempatLahirController, + style: const TextStyle(fontFamily: 'Inter', fontSize: 14), + decoration: _buildDecoration("Kota/Kabupaten kelahiran"), + ), + const SizedBox(height: 16), + + // Tanggal Lahir + _buildLabel("Tanggal Lahir"), + const SizedBox(height: 6), + InkWell( + onTap: pickDate, + child: InputDecorator( + decoration: _buildDecoration(""), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text( + selectedDate == null + ? "mm/dd/yyyy" + : selectedDate.toString().split(' ')[0], + style: TextStyle( + fontFamily: 'Inter', + fontSize: selectedDate == null ? 12 : 14, + color: selectedDate == null ? const Color(0xFFC4C4C4) : Colors.black, + ), + ), + const Icon(Icons.calendar_today, size: 18, color: Color(0xFF64748B)), + ], + ), + ), + ), + const SizedBox(height: 16), + + + + // Alamat + _buildLabel("Alamat"), + const SizedBox(height: 6), + TextField( + controller: alamatController, + style: const TextStyle(fontFamily: 'Inter', fontSize: 14), + decoration: _buildDecoration("Masukkan alamat"), + ), + const SizedBox(height: 16), + + // Orang Tua + _buildLabel("Orang Tua"), + const SizedBox(height: 6), + TextField( + controller: orangTuaController, + style: const TextStyle(fontFamily: 'Inter', fontSize: 14), + decoration: _buildDecoration("Nama orang tua"), + ), + const SizedBox(height: 16), + + // No HP + _buildLabel("No Telepon"), + const SizedBox(height: 6), + TextField( + controller: noTeleController, + keyboardType: TextInputType.number, + style: const TextStyle(fontFamily: 'Inter', fontSize: 14), + decoration: _buildDecoration("Masukkan nomor telepon"), + ), + const SizedBox(height: 24), + + ElevatedButton( + onPressed: isLoading ? null : simpan, + style: ElevatedButton.styleFrom( + backgroundColor: const Color(0xFF2563EB), + padding: const EdgeInsets.symmetric(vertical: 16), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(24), + ), + elevation: 0, + ), + child: isLoading + ? const SizedBox( + width: 20, + height: 20, + child: CircularProgressIndicator(color: Colors.white, strokeWidth: 2), + ) + : const Text( + "Simpan", + style: TextStyle( + fontFamily: 'Inter', + fontSize: 14, + fontWeight: FontWeight.w700, + color: Colors.white, + ), + ), + ), + ], + ), + ), + ); + } +} \ No newline at end of file diff --git a/lib/dashboard/a_admin/function/f_murid/get_murid.dart b/lib/dashboard/a_admin/function/f_murid/get_murid.dart new file mode 100644 index 0000000..452df10 --- /dev/null +++ b/lib/dashboard/a_admin/function/f_murid/get_murid.dart @@ -0,0 +1,203 @@ +import 'package:apk/dashboard/a_admin/function/f_murid/detai_murid.dart'; +import 'package:flutter/material.dart'; +import 'package:apk/dashboard/a_admin/database/db_siswa.dart'; +import 'package:apk/dashboard/a_admin/widget/custom_button.dart'; + +import 'package:apk/dashboard/a_admin/function/f_murid/false_delete.dart'; + +class MuridPage extends StatefulWidget { + final bool isSelectionMode; + const MuridPage({super.key, this.isSelectionMode = false}); + + @override + State createState() => _MuridPageState(); +} + +class _MuridPageState extends State { + final MuridService service = MuridService(); + + List> muridList = []; + bool isLoading = true; + + @override + void initState() { + super.initState(); + loadData(); + } + + String? errorMessage; + + Future loadData() async { + try { + final data = await service.getMurid(); + setState(() { + muridList = data; + isLoading = false; + errorMessage = null; + }); + } catch (e) { + setState(() { + isLoading = false; + errorMessage = e.toString(); + }); + } + } + + String safe(dynamic value) { + if (value == null || value.toString().isEmpty) return "N/A"; + return value.toString(); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + backgroundColor: const Color(0xFF2563EB), + elevation: 0, + automaticallyImplyLeading: true, + leading: IconButton( + icon: Image.asset('lib/assets/icons/Button.png', width: 30, height: 30), + onPressed: () => Navigator.pop(context), + ), + titleSpacing: -5, + title: const Text("Manajemen Murid"), + titleTextStyle: const TextStyle( + fontFamily: "Inter", + fontSize: 16, + fontWeight: FontWeight.w700, + color: Colors.white, + ), + actions: [ + IconButton( + icon: const Icon(Icons.restore_from_trash, color: Colors.white), + tooltip: 'Tempat Sampah', + onPressed: () async { + await Navigator.push( + context, + MaterialPageRoute(builder: (_) => const FalseDeleteMuridPage()), + ); + loadData(); + }, + ), + ], + ), + body: isLoading + ? const Center(child: CircularProgressIndicator()) + : errorMessage != null + ? Center( + child: Padding( + padding: const EdgeInsets.symmetric(horizontal: 16.0), + child: Text( + "Terjadi Kesalahan:\n$errorMessage", + textAlign: TextAlign.center, + style: const TextStyle(color: Colors.red), + ), + ), + ) + : muridList.isEmpty + ? const Center( + child: Text( + "Belum ada data murid", + style: TextStyle( + fontFamily: 'Inter', + fontSize: 14, + color: Colors.grey, + ), + ), + ) + : Column( + children: [ + const SizedBox(height: 12), + Expanded( + child: ListView.builder( + itemCount: muridList.length, + itemBuilder: (context, index) { + final m = muridList[index]; + final nama = safe(m['nama']); + final nis = safe(m['nis']); + final kelas = + m['class_name']?['name_class'] ?? + 'Belum ada kelas'; + + return Column( + children: [ + Padding( + padding: const EdgeInsets.symmetric(horizontal: 0, vertical: 0), + child: CustomCard( + title: nama, + titleStyle: const TextStyle( + fontFamily: 'Inter', + fontSize: 14, + fontWeight: FontWeight.w700, + color: Color(0xFF1E293B), + ), + customSubtitle: Row( + children: [ + Text( + 'NIS: $nis', + style: const TextStyle( + fontFamily: 'Inter', + fontSize: 12, + fontWeight: FontWeight.w500, + color: Color(0xFF64748B), + ), + ), + const SizedBox(width: 8), + Container( + width: 4, + height: 4, + decoration: const BoxDecoration( + color: Color(0xFFCBD5E1), + shape: BoxShape.circle, + ), + ), + const SizedBox(width: 8), + Flexible( + child: Text( + 'Kelas: $kelas', + style: const TextStyle( + fontFamily: 'Inter', + fontSize: 12, + fontWeight: FontWeight.w500, + color: Color(0xFF64748B), + ), + overflow: TextOverflow.ellipsis, + ), + ), + ], + ), + showIcon: false, + backgroundColor: Colors.white, + borderColor: Colors.transparent, + borderWidth: 0, + margin: EdgeInsets.zero, + //padding: const EdgeInsets.all(20), + onTap: () async { + if (widget.isSelectionMode) { + Navigator.pop(context, m); + return; + } + await Navigator.push( + context, + MaterialPageRoute( + builder: (_) => + DetailMuridPage(data: m), + ), + ); + + // refresh setelah balik + loadData(); + }, + ), + ), + const SizedBox(height: 12), + ], + ); + }, + ), + ), + ], + ), + ); + } +} \ No newline at end of file diff --git a/lib/dashboard/a_admin/function/f_murid/update_murid.dart b/lib/dashboard/a_admin/function/f_murid/update_murid.dart new file mode 100644 index 0000000..985ac09 --- /dev/null +++ b/lib/dashboard/a_admin/function/f_murid/update_murid.dart @@ -0,0 +1,451 @@ +import 'package:flutter/material.dart'; +import 'package:apk/dashboard/a_admin/database/db_siswa.dart'; + +class UpdateMuridPage extends StatefulWidget { + final Map data; + + const UpdateMuridPage({ + super.key, + required this.data, + }); + + @override + State createState() => _UpdateMuridPageState(); +} + +class _UpdateMuridPageState extends State { + final service = MuridService(); + + bool isSaving = false; + + late TextEditingController nisC; + late TextEditingController namaC; + late TextEditingController genderC; + late TextEditingController tglC; + late TextEditingController alamatC; + late TextEditingController ortuC; + late TextEditingController teleC; + + List> kelasList = []; + String? selectedKelas; + + @override + void initState() { + super.initState(); + + nisC = TextEditingController(text: widget.data['nis']?.toString() ?? ""); + namaC = TextEditingController(text: widget.data['nama'] ?? ""); + genderC = TextEditingController(text: widget.data['gender'] ?? ""); + tglC = TextEditingController( + text: widget.data['tanggal_lahir']?.toString() ?? "", + ); + alamatC = TextEditingController(text: widget.data['alamat'] ?? ""); + ortuC = TextEditingController(text: widget.data['orang_tua'] ?? ""); + teleC = TextEditingController( + text: widget.data['no_tele']?.toString() ?? "", + ); + + selectedKelas = widget.data['id_class']; + + loadKelas(); + } + + Future loadKelas() async { + final data = await service.getKelas(); + if (mounted) { + setState(() => kelasList = data); + } + } + + Future updateData() async { + setState(() => isSaving = true); + + try { + await service.updateMurid( + idTabel: widget.data['id_tabel'], + nis: nisC.text, + nama: namaC.text, + idClass: selectedKelas, + gender: genderC.text, + tanggalLahir: tglC.text.isEmpty ? null : DateTime.tryParse(tglC.text), + alamat: alamatC.text, + orangTua: ortuC.text, + noTele: num.tryParse(teleC.text), + ); + + final selectedKelasData = kelasList.where( + (kelas) => kelas['id_tabel'] == selectedKelas, + ); + + if (mounted) { + final Map updatedData = Map.from(widget.data); + updatedData['nis'] = nisC.text; + updatedData['nama'] = namaC.text; + updatedData['id_class'] = selectedKelas; + updatedData['gender'] = genderC.text; + updatedData['tanggal_lahir'] = tglC.text; + updatedData['alamat'] = alamatC.text; + updatedData['orang_tua'] = ortuC.text; + updatedData['no_tele'] = num.tryParse(teleC.text); + updatedData['class_name'] = selectedKelasData.isEmpty + ? null + : { + 'id_tabel': selectedKelasData.first['id_tabel'], + 'name_class': selectedKelasData.first['name_class'], + }; + + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text('Data murid berhasil diperbarui')), + ); + Navigator.pop(context, updatedData); + } + } catch (e) { + if (mounted) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + content: Text( + "Gagal menyimpan: ${e.toString().replaceAll('Exception: ', '')}", + ), + ), + ); + } + } finally { + if (mounted) { + setState(() => isSaving = false); + } + } + } + + Future _pickDate() async { + final initialDate = DateTime.tryParse(tglC.text) ?? DateTime.now(); + final picked = await showDatePicker( + context: context, + initialDate: initialDate, + firstDate: DateTime(1900), + lastDate: DateTime.now(), + ); + if (picked != null) { + setState(() { + tglC.text = "${picked.year}-${picked.month.toString().padLeft(2, '0')}-${picked.day.toString().padLeft(2, '0')}"; + }); + } + } + + Widget field(String label, TextEditingController c, {String hint = "", VoidCallback? onTap, bool readOnly = false}) { + return Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + label, + style: const TextStyle( + fontFamily: 'Inter', + fontWeight: FontWeight.w600, + fontSize: 14, + color: Color(0xFF1E293B), + ), + ), + const SizedBox(height: 6), + TextField( + controller: c, + onTap: onTap, + readOnly: readOnly, + style: const TextStyle(fontFamily: 'Inter'), + decoration: InputDecoration( + hintText: hint, + hintStyle: const TextStyle(color: Color(0xFFC4C4C4), fontFamily: 'Inter'), + filled: true, + fillColor: const Color(0xFFF1F5F9), + contentPadding: const EdgeInsets.symmetric(horizontal: 20, vertical: 18), + border: OutlineInputBorder( + borderRadius: BorderRadius.circular(16), + borderSide: const BorderSide(color: Color(0xFFE2E8F0)), + ), + enabledBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(16), + borderSide: const BorderSide(color: Color(0xFFE2E8F0)), + ), + ), + ), + const SizedBox(height: 16), + ], + ); + } + + Widget kelasField() { + return Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + const Text( + "Kelas", + style: TextStyle( + fontFamily: 'Inter', + fontWeight: FontWeight.w600, + fontSize: 14, + color: Color(0xFF1E293B), + ), + ), + const SizedBox(height: 6), + DropdownButtonFormField( + value: selectedKelas, + decoration: InputDecoration( + hintText: "Pilih Kelas", + hintStyle: const TextStyle(color: Color(0xFFC4C4C4), fontFamily: 'Inter'), + filled: true, + fillColor: const Color(0xFFF1F5F9), + contentPadding: const EdgeInsets.symmetric(horizontal: 20, vertical: 18), + border: OutlineInputBorder( + borderRadius: BorderRadius.circular(16), + borderSide: const BorderSide(color: Color(0xFFE2E8F0)), + ), + enabledBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(16), + borderSide: const BorderSide(color: Color(0xFFE2E8F0)), + ), + ), + items: kelasList.map((e) { + return DropdownMenuItem( + value: e['id_tabel'], + child: Text(e['name_class'], style: const TextStyle(fontFamily: 'Inter')), + ); + }).toList(), + onChanged: (v) => setState(() => selectedKelas = v), + ), + const SizedBox(height: 16), + ], + ); + } + + Widget genderField() { + return Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + const Text( + "Gender", + style: TextStyle( + fontFamily: 'Inter', + fontWeight: FontWeight.w600, + fontSize: 14, + color: Color(0xFF1E293B), + ), + ), + const SizedBox(height: 6), + DropdownButtonFormField( + isExpanded: true, + value: genderC.text.isEmpty ? null : genderC.text, + decoration: InputDecoration( + hintText: "Pilih Gender", + hintStyle: const TextStyle(color: Color(0xFFC4C4C4), fontFamily: 'Inter'), + filled: true, + fillColor: const Color(0xFFF1F5F9), + contentPadding: const EdgeInsets.symmetric(horizontal: 20, vertical: 18), + border: OutlineInputBorder( + borderRadius: BorderRadius.circular(16), + borderSide: const BorderSide(color: Color(0xFFE2E8F0)), + ), + enabledBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(16), + borderSide: const BorderSide(color: Color(0xFFE2E8F0)), + ), + ), + items: const [ + DropdownMenuItem(value: "L", child: Text("L", style: TextStyle(fontFamily: 'Inter'))), + DropdownMenuItem(value: "P", child: Text("P", style: TextStyle(fontFamily: 'Inter'))), + ], + onChanged: (v) => setState(() => genderC.text = v ?? ""), + ), + const SizedBox(height: 16), + ], + ); + } + + Widget _actionButton({ + required String label, + required Color color, + required VoidCallback? onPressed, + bool loading = false, + }) { + final bool isWhite = color == Colors.white; + return Expanded( + child: ElevatedButton( + onPressed: onPressed, + style: ElevatedButton.styleFrom( + backgroundColor: color, + foregroundColor: isWhite ? const Color(0xFF64748B) : Colors.white, + elevation: 0, + padding: const EdgeInsets.symmetric(vertical: 16), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(24), + side: isWhite ? const BorderSide(color: Color(0xFF94A3B8)) : BorderSide.none, + ), + ), + child: loading + ? SizedBox( + width: 20, + height: 20, + child: CircularProgressIndicator( + color: isWhite ? const Color(0xFF64748B) : Colors.white, + strokeWidth: 2, + ), + ) + : Text( + label, + style: const TextStyle( + fontFamily: 'Inter', + fontSize: 16, + fontWeight: FontWeight.w700, + ), + ), + ), + ); + } + + @override + void dispose() { + nisC.dispose(); + namaC.dispose(); + genderC.dispose(); + tglC.dispose(); + alamatC.dispose(); + ortuC.dispose(); + teleC.dispose(); + super.dispose(); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: Colors.white, + appBar: AppBar( + backgroundColor: const Color(0xFF2563EB), + elevation: 0, + automaticallyImplyLeading: true, + leading: IconButton( + icon: Image.asset('lib/assets/icons/Button.png', width: 30, height: 30), + onPressed: () => Navigator.pop(context), + ), + titleSpacing: -5, + title: const Text("Edit Data Murid"), + titleTextStyle: const TextStyle( + fontFamily: "Inter", + fontSize: 16, + fontWeight: FontWeight.w700, + color: Colors.white, + ), + ), + body: Container( + color: Colors.white, + padding: const EdgeInsets.all(24), + child: Column( + children: [ + Expanded( + child: ListView( + children: [ + Row( + children: const [ + Text("📋", style: TextStyle(fontSize: 16)), + SizedBox(width: 8), + Text( + "Data Utama", + style: TextStyle( + fontFamily: 'Inter', + fontSize: 16, + fontWeight: FontWeight.w800, + color: Color(0xFF1E293B), + ), + ), + ], + ), + const SizedBox(height: 16), + Container( + padding: const EdgeInsets.all(20), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(20), + border: Border.all(color: const Color(0xFFE2E8F0)), + ), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + field("NIS *", nisC, hint: "Contoh: 332817"), + field("Nama *", namaC, hint: "Contoh: Budi Santoso"), + Row( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Expanded(child: genderField()), + const SizedBox(width: 16), + Expanded( + child: field( + "Tanggal Lahir", + tglC, + hint: "YYYY-MM-DD", + readOnly: true, + onTap: _pickDate, + ), + ), + ], + ), + kelasField(), + ], + ), + ), + + const SizedBox(height: 24), + + Row( + children: const [ + Text("📚", style: TextStyle(fontSize: 16)), + SizedBox(width: 8), + Text( + "Kontak & Orang Tua", + style: TextStyle( + fontFamily: 'Inter', + fontSize: 16, + fontWeight: FontWeight.w800, + color: Color(0xFF1E293B), + ), + ), + ], + ), + const SizedBox(height: 16), + Container( + padding: const EdgeInsets.all(20), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(20), + border: Border.all(color: const Color(0xFFE2E8F0)), + ), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + field("Alamat", alamatC, hint: "Masukkan alamat"), + field("Orang Tua", ortuC, hint: "Nama orang tua"), + field("No Telepon", teleC, hint: "Nomor telepon"), + ], + ), + ), + ], + ), + ), + const SizedBox(height: 16), + Row( + children: [ + _actionButton( + label: "Simpan", + color: const Color(0xFF2563EB), + onPressed: isSaving ? null : updateData, + loading: isSaving, + ), + const SizedBox(width: 10), + _actionButton( + label: "Batal", + color: Colors.white, + onPressed: isSaving ? null : () => Navigator.pop(context), + ), + ], + ), + ], + ), + ), + ); + } +} diff --git a/lib/dashboard/a_admin/function/f_notif/notif_reddot.dart b/lib/dashboard/a_admin/function/f_notif/notif_reddot.dart new file mode 100644 index 0000000..aa62f55 --- /dev/null +++ b/lib/dashboard/a_admin/function/f_notif/notif_reddot.dart @@ -0,0 +1,261 @@ +import 'dart:async'; +import 'package:flutter/material.dart'; +import 'package:supabase_flutter/supabase_flutter.dart'; +import 'package:shared_preferences/shared_preferences.dart'; +import 'package:apk/dashboard/a_admin/database/db_grup_sekolah.dart'; +import 'package:apk/dashboard/a_admin/database/db_pesan_private.dart'; + +class NotifRedDot { + static final GlobalKey navigatorKey = GlobalKey(); + + // Notifiers untuk indikator titik merah (red dot) + static final ValueNotifier grupSekolahHasUnread = ValueNotifier(false); + static final ValueNotifier chatPrivateHasUnread = ValueNotifier(false); + static final ValueNotifier> chatPrivateUnreadSenderIds = ValueNotifier>({}); + + static String? _currentUserId; + static String? _currentAdminId; + + static StreamSubscription>>? _grupSekolahSubscription; + static StreamSubscription>>? _chatPrivateSubscription; + + static DateTime? _grupSekolahLastSeenAt; + static DateTime? _chatPrivateLastSeenAt; + + /// Inisialisasi listener realtime Supabase untuk titik merah (Grup Sekolah & Chat Private) + static Future init({GlobalKey? key}) async { + await dispose(); + + // Load saved unread state + try { + final prefs = await SharedPreferences.getInstance(); + grupSekolahHasUnread.value = prefs.getBool('grup_sekolah_has_unread') ?? false; + + final unreadList = prefs.getStringList('chat_private_unread_senders') ?? []; + chatPrivateUnreadSenderIds.value = unreadList.toSet(); + chatPrivateHasUnread.value = chatPrivateUnreadSenderIds.value.isNotEmpty || (prefs.getBool('chat_private_has_unread') ?? false); + } catch (e) { + debugPrint('[NotifRedDot] load state error: $e'); + } + + // Init Grup Sekolah Realtime + try { + final info = await DbGrupSekolah.getCurrentUserRoleAndId(); + if (info != null) { + _currentUserId = info['id']; + } + _subscribeGrupSekolahRealtime(); + } catch (e) { + debugPrint('[NotifRedDot] GrupSekolah init error: $e'); + } + + // Init Chat Private Realtime + try { + final dbPesan = DbPesanPrivate(); + _currentAdminId = await dbPesan.getAdminId(); + if (_currentAdminId != null) { + _subscribeChatPrivateRealtime(); + } + } catch (e) { + debugPrint('[NotifRedDot] ChatPrivate init error: $e'); + } + } + + // Setters state titik merah + static Future setGrupSekolahUnread(bool value) async { + grupSekolahHasUnread.value = value; + try { + final prefs = await SharedPreferences.getInstance(); + await prefs.setBool('grup_sekolah_has_unread', value); + if (!value) { + await prefs.setString('grup_sekolah_last_read', DateTime.now().toUtc().toIso8601String()); + _grupSekolahLastSeenAt = DateTime.now().toUtc(); + } + if (!value) { + await prefs.setString('grup_sekolah_last_read', DateTime.now().toUtc().toIso8601String()); + _grupSekolahLastSeenAt = DateTime.now().toUtc(); + } + } catch (e) { + debugPrint('[NotifRedDot] setGrupSekolahUnread error: $e'); + } + } + + static Future setChatPrivateSenderUnread(String senderId, bool isUnread) async { + final current = Set.from(chatPrivateUnreadSenderIds.value); + if (isUnread) { + current.add(senderId); + } else { + current.remove(senderId); + } + chatPrivateUnreadSenderIds.value = current; + chatPrivateHasUnread.value = current.isNotEmpty; + + try { + final prefs = await SharedPreferences.getInstance(); + await prefs.setStringList('chat_private_unread_senders', current.toList()); + await prefs.setBool('chat_private_has_unread', current.isNotEmpty); + if (!isUnread) { + await prefs.setString('chat_private_last_read_$senderId', DateTime.now().toUtc().toIso8601String()); + } + if (!isUnread) { + await prefs.setString('chat_private_last_read_$senderId', DateTime.now().toUtc().toIso8601String()); + } + } catch (e) { + debugPrint('[NotifRedDot] setChatPrivateSenderUnread error: $e'); + } + } + + static Future setChatPrivateUnread(bool value) async { + if (!value) { + chatPrivateUnreadSenderIds.value = {}; + chatPrivateHasUnread.value = false; + try { + final prefs = await SharedPreferences.getInstance(); + await prefs.remove('chat_private_unread_senders'); + await prefs.setBool('chat_private_has_unread', false); + } catch (e) { + debugPrint('[NotifRedDot] setChatPrivateUnread error: $e'); + } + } else { + chatPrivateHasUnread.value = true; + } + } + + static void _subscribeGrupSekolahRealtime() { + final supabase = Supabase.instance.client; + final user = supabase.auth.currentUser; + if (user == null) return; + + _subscribeGrupSekolahRealtimeInternal(); + } + + static void _subscribeGrupSekolahRealtimeInternal() async { + final supabase = Supabase.instance.client; + final prefs = await SharedPreferences.getInstance(); + final user = supabase.auth.currentUser; + if (user == null) return; + final lastReadStr = prefs.getString('grup_sekolah_last_read'); + _grupSekolahLastSeenAt = lastReadStr != null ? DateTime.parse(lastReadStr) : DateTime.now().toUtc(); + + _grupSekolahSubscription = supabase + .from('grup_sekolah') + .stream(primaryKey: ['id_tabel']) + .eq('user_id', user.id) + .order('created_at', ascending: false) + .listen( + (rows) { + final newMsgs = rows.where((row) { + final t = DateTime.tryParse(row['created_at']?.toString() ?? ''); + return t != null && t.isAfter(_grupSekolahLastSeenAt!.subtract(const Duration(minutes: 5))); + }).toList(); + + for (final row in rows) { + final pengirimGuru = row['pengirim_guru']?.toString(); + final pengirimMurid = row['pengirim_murid']?.toString(); + final senderId = pengirimGuru ?? pengirimMurid; + + if (senderId != null && senderId != _currentAdminId) { + final lastReadStr = prefs.getString('chat_private_last_read_$senderId'); + final lastRead = lastReadStr != null ? DateTime.parse(lastReadStr) : DateTime.fromMillisecondsSinceEpoch(0); + final t = DateTime.tryParse(row['created_at']?.toString() ?? ''); + + if (t != null && t.isAfter(lastRead) && !chatPrivateUnreadSenderIds.value.contains(senderId)) { + setChatPrivateSenderUnread(senderId, true); + } + } + } + + + if (newMsgs.isEmpty) return; + + for (final row in newMsgs) { + final t = DateTime.tryParse(row['created_at'].toString()); + if (t != null && t.isAfter(_grupSekolahLastSeenAt!)) _grupSekolahLastSeenAt = t; + } + + final lastRow = newMsgs.first; + final pengirimAdmin = lastRow['pengirim_admin']?.toString(); + final pengirimGuru = lastRow['pengirim_guru']?.toString(); + final pengirimMurid = lastRow['pengirim_murid']?.toString(); + final senderId = pengirimAdmin ?? pengirimGuru ?? pengirimMurid; + + if (senderId != null && senderId == _currentUserId) { + return; + } + + setGrupSekolahUnread(true); + }, + onError: (e) { + debugPrint('[NotifRedDot] GrupSekolah stream error: $e'); + }, + ); + } + + static void _subscribeChatPrivateRealtime() { + final supabase = Supabase.instance.client; + _chatPrivateLastSeenAt = DateTime.now().toUtc(); + + _chatPrivateSubscription = supabase + .from('chat_private') + .stream(primaryKey: ['id_tabel']) + .order('created_at', ascending: false) + .listen( + (rows) { + final filtered = rows.where((row) { + return row['penerima_admin']?.toString() == _currentAdminId; + }).toList(); + + final newMsgs = filtered.where((row) { + final t = DateTime.tryParse(row['created_at']?.toString() ?? ''); + return t != null && t.isAfter(_chatPrivateLastSeenAt!); + }).toList(); + + if (newMsgs.isEmpty) return; + + for (final row in newMsgs) { + final t = DateTime.tryParse(row['created_at'].toString()); + if (t != null && t.isAfter(_chatPrivateLastSeenAt!)) _chatPrivateLastSeenAt = t; + } + + final lastRow = newMsgs.first; + final senderGuru = lastRow['pengirim_guru']?.toString(); + final senderMurid = lastRow['pengirim_murid']?.toString(); + final senderId = senderGuru ?? senderMurid; + + if (senderId != null) { + setChatPrivateSenderUnread(senderId, true); + } + }, + onError: (e) { + debugPrint('[NotifRedDot] ChatPrivate stream error: $e'); + }, + ); + } + + static Future dispose() async { + _grupSekolahSubscription?.cancel(); + _grupSekolahSubscription = null; + _chatPrivateSubscription?.cancel(); + _chatPrivateSubscription = null; + _grupSekolahLastSeenAt = null; + _chatPrivateLastSeenAt = null; + } +} + +/// Backward-compatibility wrappers for NotificationFCM & ChatPrivateNotification +class NotificationFCM { + static GlobalKey get navigatorKey => NotifRedDot.navigatorKey; + static ValueNotifier get hasUnread => NotifRedDot.grupSekolahHasUnread; + static Future setUnread(bool value) => NotifRedDot.setGrupSekolahUnread(value); + static Future init() => NotifRedDot.init(); + static Future dispose() => NotifRedDot.dispose(); +} + +class ChatPrivateNotification { + static ValueNotifier get hasUnread => NotifRedDot.chatPrivateHasUnread; + static ValueNotifier> get unreadSenderIds => NotifRedDot.chatPrivateUnreadSenderIds; + static Future setSenderUnread(String senderId, bool isUnread) => NotifRedDot.setChatPrivateSenderUnread(senderId, isUnread); + static Future setUnread(bool value) => NotifRedDot.setChatPrivateUnread(value); + static Future init({GlobalKey? key}) => NotifRedDot.init(key: key); + static Future dispose() => NotifRedDot.dispose(); +} \ No newline at end of file diff --git a/lib/dashboard/a_admin/function/f_notif/preview_pesan/grup_sekolah_p.dart b/lib/dashboard/a_admin/function/f_notif/preview_pesan/grup_sekolah_p.dart new file mode 100644 index 0000000..c6ef811 --- /dev/null +++ b/lib/dashboard/a_admin/function/f_notif/preview_pesan/grup_sekolah_p.dart @@ -0,0 +1,291 @@ +import 'package:flutter/material.dart'; +import 'package:supabase_flutter/supabase_flutter.dart'; +import 'package:shared_preferences/shared_preferences.dart'; +import 'package:apk/dashboard/a_admin/database/db_grup_sekolah.dart'; +import 'package:apk/dashboard/a_admin/function/f_pesan/grup_sekolah.dart'; + +class GrupSekolahP extends StatefulWidget { + const GrupSekolahP({super.key}); + + @override + State createState() => _GrupSekolahPState(); +} + +class _GrupSekolahPState extends State { + late Future _lastVisitedFuture; + + @override + void initState() { + super.initState(); + _lastVisitedFuture = _loadLastVisited(); + } + + Future _loadLastVisited() async { + final prefs = await SharedPreferences.getInstance(); + final lastVisitedStr = prefs.getString('last_visited_grup_sekolah'); + if (lastVisitedStr != null) { + return DateTime.tryParse(lastVisitedStr); + } + return null; + } + + Future _markAsReadAndNavigate() async { + final prefs = await SharedPreferences.getInstance(); + final nowStr = DateTime.now().toIso8601String(); + await prefs.setString('last_visited_grup_sekolah', nowStr); + if (!mounted) return; + // Update the future so the UI reacts + setState(() { + _lastVisitedFuture = Future.value(DateTime.tryParse(nowStr)); + }); + Navigator.pushReplacement( + context, + MaterialPageRoute(builder: (context) => const GrupSekolah()), + ); + } + + @override + Widget build(BuildContext context) { + if (Supabase.instance.client.auth.currentUser == null) { + return const Scaffold( + body: Center(child: Text('Harap login terlebih dahulu.')), + ); + } + + return Scaffold( + backgroundColor: const Color(0xFFF1F5F9), + appBar: AppBar( + title: const Text( + 'Notifikasi', + style: TextStyle( + fontFamily: 'Inter', + fontWeight: FontWeight.bold, + fontSize: 18, + ), + ), + backgroundColor: const Color(0xFF2563EB), + foregroundColor: Colors.white, + elevation: 0, + ), + body: FutureBuilder( + future: _lastVisitedFuture, + builder: (context, prefSnapshot) { + // Tampilkan loading saat SharedPreferences belum siap + if (prefSnapshot.connectionState == ConnectionState.waiting) { + return const Center(child: CircularProgressIndicator()); + } + + final lastVisited = prefSnapshot.data; + + return StreamBuilder>>( + stream: DbGrupSekolah().getGrupSekolahStream(), + builder: (context, snapshot) { + if (snapshot.connectionState == ConnectionState.waiting && + !snapshot.hasData) { + return const Center(child: CircularProgressIndicator()); + } + + if (snapshot.hasError) { + return Center( + child: Text('Error: ${snapshot.error}'), + ); + } + + int unreadCount = 0; + String? latestMessagePreview; + String? latestMessageTime; + + final currentUserId = + Supabase.instance.client.auth.currentUser?.id; + + if (snapshot.hasData && snapshot.data!.isNotEmpty) { + for (final msg in snapshot.data!) { + final createdAtStr = msg['created_at']?.toString(); + final senderId = msg['pengirim_admin']?.toString() ?? + msg['pengirim_guru']?.toString() ?? + msg['pengirim_murid']?.toString(); + + // Hanya hitung pesan dari orang lain + if (createdAtStr != null && senderId != currentUserId) { + final createdAt = DateTime.tryParse(createdAtStr); + if (createdAt != null) { + if (lastVisited == null || + createdAt.isAfter(lastVisited)) { + unreadCount++; + latestMessagePreview = msg['text']?.toString(); + latestMessageTime = createdAtStr; + } + } + } + } + } + + if (unreadCount == 0) { + return Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Icon( + Icons.notifications_none_rounded, + size: 64, + color: Colors.grey.shade400, + ), + const SizedBox(height: 16), + Text( + 'Tidak ada notifikasi baru', + style: TextStyle( + color: Colors.grey.shade500, + fontSize: 16, + fontFamily: 'Inter', + ), + ), + ], + ), + ); + } + + // Format waktu pesan terakhir + String timeLabel = ''; + if (latestMessageTime != null) { + final dt = DateTime.tryParse(latestMessageTime)?.toLocal(); + if (dt != null) { + final now = DateTime.now(); + final diff = now.difference(dt); + if (diff.inMinutes < 1) { + timeLabel = 'Baru saja'; + } else if (diff.inHours < 1) { + timeLabel = '${diff.inMinutes} menit lalu'; + } else if (diff.inDays < 1) { + timeLabel = '${diff.inHours} jam lalu'; + } else { + timeLabel = '${diff.inDays} hari lalu'; + } + } + } + + return ListView( + padding: const EdgeInsets.all(16), + children: [ + const Padding( + padding: EdgeInsets.only(bottom: 12), + child: Text( + 'Pesan Masuk', + style: TextStyle( + fontSize: 13, + fontWeight: FontWeight.w600, + color: Color(0xFF64748B), + fontFamily: 'Inter', + letterSpacing: 0.5, + ), + ), + ), + Card( + elevation: 0, + color: Colors.white, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(14), + side: const BorderSide(color: Color(0xFFE2E8F0)), + ), + child: InkWell( + borderRadius: BorderRadius.circular(14), + onTap: _markAsReadAndNavigate, + child: Padding( + padding: const EdgeInsets.all(16), + child: Row( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + // Icon + Container( + padding: const EdgeInsets.all(10), + decoration: BoxDecoration( + color: const Color(0xFFEFF6FF), + borderRadius: BorderRadius.circular(12), + ), + child: const Icon( + Icons.groups_rounded, + color: Color(0xFF2563EB), + size: 26, + ), + ), + const SizedBox(width: 14), + // Text content + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + mainAxisAlignment: + MainAxisAlignment.spaceBetween, + children: [ + const Text( + 'Grup Sekolah', + style: TextStyle( + fontWeight: FontWeight.bold, + fontSize: 15, + color: Color(0xFF1E293B), + fontFamily: 'Inter', + ), + ), + Text( + timeLabel, + style: const TextStyle( + fontSize: 11, + color: Color(0xFF94A3B8), + fontFamily: 'Inter', + ), + ), + ], + ), + const SizedBox(height: 5), + Container( + padding: const EdgeInsets.symmetric( + horizontal: 8, vertical: 3), + decoration: BoxDecoration( + color: const Color(0xFFFEF2F2), + borderRadius: BorderRadius.circular(20), + ), + child: Text( + '$unreadCount pesan baru', + style: const TextStyle( + fontSize: 11, + color: Color(0xFFDC2626), + fontWeight: FontWeight.w600, + fontFamily: 'Inter', + ), + ), + ), + if (latestMessagePreview != null) ...[ + const SizedBox(height: 6), + Text( + latestMessagePreview, + maxLines: 2, + overflow: TextOverflow.ellipsis, + style: const TextStyle( + fontSize: 13, + color: Color(0xFF64748B), + fontFamily: 'Inter', + ), + ), + ], + ], + ), + ), + const SizedBox(width: 8), + const Icon( + Icons.chevron_right, + color: Color(0xFFCBD5E1), + ), + ], + ), + ), + ), + ), + ], + ); + }, + ); + }, + ), + ); + } +} diff --git a/lib/dashboard/a_admin/function/f_pesan/chat_private.dart b/lib/dashboard/a_admin/function/f_pesan/chat_private.dart new file mode 100644 index 0000000..b3a76a2 --- /dev/null +++ b/lib/dashboard/a_admin/function/f_pesan/chat_private.dart @@ -0,0 +1,454 @@ +import 'dart:io'; +import 'package:flutter/material.dart'; +import 'package:supabase_flutter/supabase_flutter.dart'; +import 'package:apk/dashboard/a_admin/database/db_pesan_private.dart'; +import 'package:intl/intl.dart'; +import 'package:file_picker/file_picker.dart'; +import 'package:image_picker/image_picker.dart'; +import 'package:url_launcher/url_launcher.dart'; +import 'package:apk/dashboard/a_admin/database/storage/image_doc.dart'; +import 'package:apk/dashboard/a_admin/function/f_pesan/doc_image_page.dart'; +import 'package:apk/dashboard/a_admin/function/f_notif/notif_reddot.dart'; + +class ChatPrivate extends StatefulWidget { + final String receiverId; + final String receiverType; // 'guru' or 'murid' + final String receiverName; + + const ChatPrivate({ + super.key, + required this.receiverId, + required this.receiverType, + required this.receiverName, + }); + + @override + State createState() => _ChatPrivateState(); +} + +class _ChatPrivateState extends State { + final TextEditingController _messageController = TextEditingController(); + final DbPesanPrivate _dbPesan = DbPesanPrivate(); + + bool _isLoading = true; + String? _errorMessage; + String? _idAdmin; + String? _currentUserId; + + Stream>>? _chatStream; + + @override + void initState() { + super.initState(); + _initChat(); + NotifRedDot.setChatPrivateSenderUnread(widget.receiverId, false); + } + + Future _initChat() async { + try { + _currentUserId = DbPesanPrivate.userId; + _idAdmin = await _dbPesan.getAdminId(); + + if (_idAdmin != null) { + if (widget.receiverType == 'guru') { + _chatStream = _dbPesan.getChatWithGuruStream(_idAdmin!, widget.receiverId); + } else if (widget.receiverType == 'murid') { + _chatStream = _dbPesan.getChatWithMuridStream(_idAdmin!, widget.receiverId); + } + } else { + _errorMessage = 'Gagal memuat profil Admin. Pastikan Anda login sebagai Admin.'; + } + } catch (e) { + _errorMessage = 'Error: $e'; + } finally { + if (mounted) { + setState(() { + _isLoading = false; + }); + } + } + } + + Future _pickAndSendImage() async { + final picker = ImagePicker(); + final pickedFile = await picker.pickImage(source: ImageSource.gallery); + if (pickedFile != null) { + final file = File(pickedFile.path); + final name = pickedFile.name; + setState(() => _isLoading = true); + final url = await ImageDocStorage.uploadFileObject(file, name); + if (url != null) { + if (widget.receiverType == 'guru') { + await _dbPesan.sendMessageToGuru(text: 'IMAGE_URL:$url', idAdmin: _idAdmin!, idGuru: widget.receiverId); + } else if (widget.receiverType == 'murid') { + await _dbPesan.sendMessageToMurid(text: 'IMAGE_URL:$url', idAdmin: _idAdmin!, idMurid: widget.receiverId); + } + await _initChat(); + } else { + setState(() => _isLoading = false); + if (mounted) ScaffoldMessenger.of(context).showSnackBar(const SnackBar(content: Text('Gagal unggah gambar'))); + } + } + } + + Future _pickAndSendDoc() async { + final result = await FilePicker.pickFiles( + type: FileType.custom, + allowedExtensions: ['pdf', 'doc', 'docx', 'xls', 'xlsx', 'txt', 'zip', 'rar'], + withData: true, + ); + if (result != null && result.files.single.bytes != null) { + final bytes = result.files.single.bytes!; + final name = result.files.single.name; + setState(() => _isLoading = true); + final url = await ImageDocStorage.uploadFile(bytes, name); + if (url != null) { + if (widget.receiverType == 'guru') { + await _dbPesan.sendMessageToGuru(text: 'DOC_URL:$url', idAdmin: _idAdmin!, idGuru: widget.receiverId); + } else if (widget.receiverType == 'murid') { + await _dbPesan.sendMessageToMurid(text: 'DOC_URL:$url', idAdmin: _idAdmin!, idMurid: widget.receiverId); + } + await _initChat(); + } else { + setState(() => _isLoading = false); + if (mounted) ScaffoldMessenger.of(context).showSnackBar(const SnackBar(content: Text('Gagal unggah dokumen'))); + } + } + } + + Future _sendMessage() async { + final text = _messageController.text.trim(); + if (text.isEmpty || _idAdmin == null) return; + + _messageController.clear(); + + try { + if (widget.receiverType == 'guru') { + await _dbPesan.sendMessageToGuru( + text: text, + idAdmin: _idAdmin!, + idGuru: widget.receiverId, + ); + } else if (widget.receiverType == 'murid') { + await _dbPesan.sendMessageToMurid( + text: text, + idAdmin: _idAdmin!, + idMurid: widget.receiverId, + ); + } + + // Reload stream dari database setelah mengirim pesan + if (mounted) { + setState(() { + _isLoading = true; + }); + await _initChat(); + } + } catch (e) { + if (mounted) { + ScaffoldMessenger.of(context).showSnackBar(SnackBar(content: Text('Error: $e'))); + } + } + } + + String _formatTime(String isoString) { + try { + final date = DateTime.parse(isoString).toLocal(); + return DateFormat('HH:mm').format(date); + } catch (_) { + return ''; + } + } + + @override + Widget build(BuildContext context) { + final appBar = AppBar( + backgroundColor: const Color(0xFF2563EB), + elevation: 0, + automaticallyImplyLeading: true, + leading: IconButton( + icon: Image.asset('lib/assets/icons/Button.png', width: 30, height: 30), + onPressed: () => Navigator.pop(context), + ), + titleSpacing: -5, + title: Text('Chat: ${widget.receiverName}'), + titleTextStyle: const TextStyle( + fontFamily: "Inter", + fontSize: 16, + fontWeight: FontWeight.w700, + color: Colors.white, + ), + ); + + if (_isLoading) { + return Scaffold( + appBar: appBar, + body: const Center(child: CircularProgressIndicator()), + ); + } + + return Scaffold( + appBar: appBar, + body: _errorMessage != null + ? Center( + child: Padding( + padding: const EdgeInsets.all(16), + child: Text( + _errorMessage!, + style: const TextStyle(color: Colors.red), + ), + ), + ) + : Column( + children: [ + Expanded( + child: _chatStream == null + ? const Center(child: Text('Gagal memuat ruang obrolan')) + : StreamBuilder>>( + stream: _chatStream, + builder: (context, snapshot) { + if (snapshot.hasError) { + return Center(child: Text('Error: ${snapshot.error}')); + } + if (snapshot.connectionState == ConnectionState.waiting) { + return const Center(child: CircularProgressIndicator()); + } + + final messages = snapshot.data ?? []; + + if (messages.isEmpty) { + return const Center(child: Text('Belum ada pesan')); + } + + return ListView.builder( + reverse: true, + padding: const EdgeInsets.all(16), + itemCount: messages.length, + itemBuilder: (context, index) { + final msg = messages[messages.length - 1 - index]; + final isMe = msg['pengirim_admin'] == _idAdmin; + + return Align( + alignment: isMe ? Alignment.centerRight : Alignment.centerLeft, + child: Container( + margin: const EdgeInsets.symmetric(vertical: 4), + padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 10), + decoration: BoxDecoration( + color: isMe ? const Color(0xFF2563EB) : Colors.grey[200], + borderRadius: BorderRadius.only( + topLeft: const Radius.circular(16), + topRight: const Radius.circular(16), + bottomLeft: isMe ? const Radius.circular(16) : const Radius.circular(0), + bottomRight: isMe ? const Radius.circular(0) : const Radius.circular(16), + ), + ), + child: Column( + crossAxisAlignment: isMe ? CrossAxisAlignment.end : CrossAxisAlignment.start, + children: [ + if (msg['text']?.toString().startsWith('IMAGE_URL:') == true) + GestureDetector( + onTap: () { + Navigator.push(context, MaterialPageRoute(builder: (_) => DocImagePreviewPage(imageUrl: msg['text'].toString().replaceFirst('IMAGE_URL:', '')))); + }, + child: ClipRRect( + borderRadius: BorderRadius.circular(8), + child: Image.network( + msg['text'].toString().replaceFirst('IMAGE_URL:', ''), + width: 200, + height: 200, + fit: BoxFit.cover, + ), + ), + ) + else if (msg['text']?.toString().startsWith('DOC_URL:') == true) + Builder( + builder: (context) { + final url = msg['text'].toString().replaceFirst('DOC_URL:', ''); + final uri = Uri.tryParse(url); + String fileName = 'Dokumen'; + String extension = 'FILE'; + + if (uri != null && uri.pathSegments.isNotEmpty) { + fileName = Uri.decodeComponent(uri.pathSegments.last); + final regex = RegExp(r'^\d{13}_'); + fileName = fileName.replaceFirst(regex, ''); + final extIndex = fileName.lastIndexOf('.'); + if (extIndex != -1 && extIndex < fileName.length - 1) { + extension = fileName.substring(extIndex + 1).toUpperCase(); + } + } + + return GestureDetector( + onTap: () async { + final parsedUrl = Uri.parse(url); + try { + await launchUrl(parsedUrl, mode: LaunchMode.externalApplication); + } catch (e) { + if (context.mounted) { + ScaffoldMessenger.of(context).showSnackBar(const SnackBar(content: Text('Tidak dapat membuka dokumen'))); + } + } + }, + child: Container( + constraints: const BoxConstraints(maxWidth: 240), + padding: const EdgeInsets.all(8), + decoration: BoxDecoration( + color: isMe ? Colors.black.withOpacity(0.1) : Colors.white.withOpacity(0.5), + borderRadius: BorderRadius.circular(8), + ), + child: Row( + mainAxisSize: MainAxisSize.min, + children: [ + Container( + width: 42, + height: 52, + decoration: BoxDecoration( + color: isMe ? Colors.white.withOpacity(0.2) : Colors.black.withOpacity(0.05), + borderRadius: BorderRadius.circular(6), + ), + child: Center( + child: Text( + extension.length > 4 ? extension.substring(0, 4) : extension, + style: TextStyle( + fontSize: 12, + fontWeight: FontWeight.bold, + color: isMe ? Colors.white : Colors.black87, + ), + ), + ), + ), + const SizedBox(width: 12), + Flexible( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + fileName, + maxLines: 2, + overflow: TextOverflow.ellipsis, + style: TextStyle( + fontSize: 14, + color: isMe ? Colors.white : Colors.black87, + fontWeight: FontWeight.w500, + ), + ), + const SizedBox(height: 4), + Text( + '$extension • Dokumen', + style: TextStyle( + fontSize: 12, + color: isMe ? Colors.white70 : Colors.black54, + ), + ), + ], + ), + ), + ], + ), + ), + ); + }, + ) + else + Text( + msg['text'] ?? '', + style: TextStyle( + color: isMe ? Colors.white : Colors.black87, + ), + ), + const SizedBox(height: 4), + Text( + _formatTime(msg['created_at']), + style: TextStyle( + fontSize: 10, + color: isMe ? Colors.white70 : Colors.black54, + ), + ), + ], + ), + ), + ); + }, + ); + }, + ), + ), + Container( + padding: const EdgeInsets.all(8), + decoration: BoxDecoration( + color: Colors.white, + boxShadow: [ + BoxShadow( + color: Colors.black.withOpacity(0.05), + offset: const Offset(0, -2), + blurRadius: 4, + ), + ], + ), + child: Row( + children: [ + PopupMenuButton( + icon: const Icon(Icons.attach_file, color: Colors.orange), + tooltip: 'Lampiran', + offset: const Offset(0, -120), + onSelected: (value) { + if (value == 'image') { + _pickAndSendImage(); + } else if (value == 'document') { + _pickAndSendDoc(); + } + }, + itemBuilder: (BuildContext context) => >[ + const PopupMenuItem( + value: 'image', + child: Row( + children: [ + Icon(Icons.image, color: Colors.blue), + SizedBox(width: 8), + Text('Gambar'), + ], + ), + ), + const PopupMenuItem( + value: 'document', + child: Row( + children: [ + Icon(Icons.insert_drive_file, color: Colors.red), + SizedBox(width: 8), + Text('Dokumen'), + ], + ), + ), + ], + ), + Expanded( + child: TextField( + controller: _messageController, + decoration: InputDecoration( + hintText: 'Tulis pesan...', + contentPadding: const EdgeInsets.symmetric(horizontal: 16, vertical: 10), + filled: true, + fillColor: Colors.grey[100], + border: OutlineInputBorder( + borderRadius: BorderRadius.circular(20), + borderSide: BorderSide.none, + ), + ), + ), + ), + const SizedBox(width: 8), + CircleAvatar( + backgroundColor: const Color(0xFF2563EB), + child: IconButton( + icon: const Icon(Icons.send, color: Colors.white, size: 20), + onPressed: _sendMessage, + ), + ), + ], + ), + ), + ], + ), + ); + } +} diff --git a/lib/dashboard/a_admin/function/f_pesan/doc_image_page.dart b/lib/dashboard/a_admin/function/f_pesan/doc_image_page.dart new file mode 100644 index 0000000..8ed03a3 --- /dev/null +++ b/lib/dashboard/a_admin/function/f_pesan/doc_image_page.dart @@ -0,0 +1,31 @@ +import 'package:flutter/material.dart'; + +class DocImagePreviewPage extends StatelessWidget { + final String imageUrl; + + const DocImagePreviewPage({super.key, required this.imageUrl}); + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: Colors.black, + appBar: AppBar( + backgroundColor: Colors.black, + iconTheme: const IconThemeData(color: Colors.white), + ), + body: Center( + child: InteractiveViewer( + child: Image.network( + imageUrl, + fit: BoxFit.contain, + loadingBuilder: (context, child, loadingProgress) { + if (loadingProgress == null) return child; + return const Center(child: CircularProgressIndicator(color: Colors.white)); + }, + errorBuilder: (context, error, stackTrace) => const Icon(Icons.broken_image, color: Colors.white, size: 50), + ), + ), + ), + ); + } +} diff --git a/lib/dashboard/a_admin/function/f_pesan/grup_sekolah.dart b/lib/dashboard/a_admin/function/f_pesan/grup_sekolah.dart new file mode 100644 index 0000000..8bb29ee --- /dev/null +++ b/lib/dashboard/a_admin/function/f_pesan/grup_sekolah.dart @@ -0,0 +1,523 @@ +import 'dart:io'; +import 'package:flutter/material.dart'; +import 'package:intl/intl.dart'; +import 'package:apk/dashboard/a_admin/database/db_grup_sekolah.dart'; +import 'package:apk/dashboard/a_admin/function/f_pesan/member_sekolah.dart'; +import 'package:apk/dashboard/a_admin/function/f_pesan/pengumuman.dart'; +import 'package:file_picker/file_picker.dart'; +import 'package:image_picker/image_picker.dart'; +import 'package:url_launcher/url_launcher.dart'; +import 'package:apk/dashboard/a_admin/database/storage/image_doc.dart'; +import 'package:apk/dashboard/a_admin/function/f_pesan/doc_image_page.dart'; +import 'package:shared_preferences/shared_preferences.dart'; +import 'package:apk/dashboard/a_admin/function/f_notif/notif_reddot.dart'; + +class GrupSekolah extends StatefulWidget { + const GrupSekolah({super.key}); + + @override + State createState() => _GrupSekolahState(); +} + +class _GrupSekolahState extends State { + final TextEditingController _messageController = TextEditingController(); + + bool _isLoading = true; + String? _errorMessage; + + String? _currentUserId; + String? _currentUserRole; // 'admin', 'guru', or 'murid' + + Stream>>? _chatStream; + Map _userNames = {}; // mapping ID ke Nama + + @override + void initState() { + super.initState(); + _initChat(); + NotifRedDot.setGrupSekolahUnread(false); + } + + @override + void dispose() { + _updateLastVisited(); + _messageController.dispose(); + super.dispose(); + } + + Future _updateLastVisited() async { + try { + final prefs = await SharedPreferences.getInstance(); + await prefs.setString('last_visited_grup_sekolah', DateTime.now().toIso8601String()); + } catch (e) { + debugPrint('Error updating last visited: $e'); + } + } + + Future _initChat() async { + try { + // Fetch mapping nama semua user + _userNames = await DbGrupSekolah.fetchAllNames(); + + // Fetch current user info + final currentUserInfo = await DbGrupSekolah.getCurrentUserRoleAndId(); + + if (currentUserInfo != null) { + _currentUserId = currentUserInfo['id']; + _currentUserRole = currentUserInfo['role']; + _chatStream = DbGrupSekolah().getGrupSekolahStream(); + await _updateLastVisited(); + } else { + _errorMessage = 'Gagal memuat profil. Pastikan Anda telah login dengan benar.'; + } + } catch (e) { + _errorMessage = 'Error: $e'; + } finally { + if (mounted) { + setState(() { + _isLoading = false; + }); + } + } + } + + Future _pickAndSendImage() async { + final picker = ImagePicker(); + final pickedFile = await picker.pickImage(source: ImageSource.gallery); + if (pickedFile != null) { + final file = File(pickedFile.path); + final name = pickedFile.name; + setState(() => _isLoading = true); + final url = await ImageDocStorage.uploadFileObject(file, name); + if (url != null) { + await DbGrupSekolah().sendMessage( + text: 'IMAGE_URL:$url', + senderId: _currentUserId!, + role: _currentUserRole!, + ); + await _initChat(); + } else { + setState(() => _isLoading = false); + if (mounted) ScaffoldMessenger.of(context).showSnackBar(const SnackBar(content: Text('Gagal unggah gambar'))); + } + } + } + + Future _pickAndSendDoc() async { + final result = await FilePicker.pickFiles( + type: FileType.custom, + allowedExtensions: ['pdf', 'doc', 'docx', 'xls', 'xlsx', 'txt', 'zip', 'rar'], + withData: true, + ); + if (result != null && result.files.single.bytes != null) { + final bytes = result.files.single.bytes!; + final name = result.files.single.name; + setState(() => _isLoading = true); + final url = await ImageDocStorage.uploadFile(bytes, name); + if (url != null) { + await DbGrupSekolah().sendMessage( + text: 'DOC_URL:$url', + senderId: _currentUserId!, + role: _currentUserRole!, + ); + await _initChat(); + } else { + setState(() => _isLoading = false); + if (mounted) ScaffoldMessenger.of(context).showSnackBar(const SnackBar(content: Text('Gagal unggah dokumen'))); + } + } + } + + Future _sendMessage() async { + final text = _messageController.text.trim(); + if (text.isEmpty || _currentUserId == null || _currentUserRole == null) return; + + _messageController.clear(); + + try { + await DbGrupSekolah().sendMessage( + text: text, + senderId: _currentUserId!, + role: _currentUserRole!, + ); + + // Reload stream dari database setelah mengirim pesan + if (mounted) { + setState(() { + _isLoading = true; + }); + await _initChat(); + } + } catch (e) { + if (mounted) { + ScaffoldMessenger.of(context).showSnackBar(SnackBar(content: Text('Error: $e'))); + } + } + } + + String _formatTime(String isoString) { + try { + final date = DateTime.parse(isoString).toLocal(); + return DateFormat('HH:mm').format(date); + } catch (_) { + return ''; + } + } + + String _getSenderId(Map msg) { + if (msg['pengirim_admin'] != null) return msg['pengirim_admin'].toString(); + if (msg['pengirim_guru'] != null) return msg['pengirim_guru'].toString(); + if (msg['pengirim_murid'] != null) return msg['pengirim_murid'].toString(); + return ''; + } + + @override + Widget build(BuildContext context) { + final appBar = AppBar( + backgroundColor: const Color(0xFF2563EB), + elevation: 0, + automaticallyImplyLeading: true, + leading: IconButton( + icon: Image.asset('lib/assets/icons/Button.png', width: 30, height: 30), + onPressed: () => Navigator.pop(context), + ), + titleSpacing: -5, + title: const Text('Grup Sekolah'), + titleTextStyle: const TextStyle( + fontFamily: "Inter", + fontSize: 16, + fontWeight: FontWeight.w700, + color: Colors.white, + ), + actions: [ + IconButton( + icon: const Icon(Icons.people), + tooltip: 'Anggota Grup', + onPressed: () { + Navigator.push( + context, + MaterialPageRoute(builder: (context) => const MemberSekolah()), + ); + }, + ) + ], + ); + + if (_isLoading) { + return Scaffold( + appBar: appBar, + body: const Center(child: CircularProgressIndicator()), + ); + } + + return Scaffold( + appBar: appBar, + body: _errorMessage != null + ? Center( + child: Padding( + padding: const EdgeInsets.all(16), + child: Text( + _errorMessage!, + style: const TextStyle(color: Colors.red), + ), + ), + ) + : Column( + children: [ + Expanded( + child: _chatStream == null + ? const Center(child: Text('Gagal memuat ruang obrolan')) + : StreamBuilder>>( + stream: _chatStream, + builder: (context, snapshot) { + if (snapshot.hasError) { + return Center(child: Text('Error: ${snapshot.error}')); + } + if (snapshot.connectionState == ConnectionState.waiting) { + return const Center(child: CircularProgressIndicator()); + } + + final messages = snapshot.data ?? []; + + if (messages.isEmpty) { + return const Center(child: Text('Belum ada pesan. Mulai obrolan!')); + } + + return ListView.builder( + reverse: true, + padding: const EdgeInsets.all(16), + itemCount: messages.length, + itemBuilder: (context, index) { + final msg = messages[messages.length - 1 - index]; + bool isMe = false; + if (_currentUserRole == 'admin') { + isMe = msg['pengirim_admin']?.toString() == _currentUserId; + } else if (_currentUserRole == 'guru') { + isMe = msg['pengirim_guru']?.toString() == _currentUserId; + } else if (_currentUserRole == 'murid') { + isMe = msg['pengirim_murid']?.toString() == _currentUserId; + } + final senderId = _getSenderId(msg); + final senderName = _userNames[senderId] ?? 'Pengguna'; + + return Align( + alignment: isMe ? Alignment.centerRight : Alignment.centerLeft, + child: Container( + margin: const EdgeInsets.symmetric(vertical: 6), + child: Column( + crossAxisAlignment: isMe ? CrossAxisAlignment.end : CrossAxisAlignment.start, + children: [ + if (!isMe) + Padding( + padding: const EdgeInsets.only(left: 4, bottom: 2), + child: Text( + senderName, + style: const TextStyle( + fontSize: 12, + color: Colors.black54, + fontWeight: FontWeight.bold, + ), + ), + ), + Container( + padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 10), + decoration: BoxDecoration( + color: isMe ? const Color(0xFF2563EB) : Colors.grey[200], + borderRadius: BorderRadius.only( + topLeft: const Radius.circular(16), + topRight: const Radius.circular(16), + bottomLeft: isMe ? const Radius.circular(16) : const Radius.circular(0), + bottomRight: isMe ? const Radius.circular(0) : const Radius.circular(16), + ), + ), + child: Column( + crossAxisAlignment: isMe ? CrossAxisAlignment.end : CrossAxisAlignment.start, + children: [ + if (msg['text']?.toString().startsWith('PENGUMUMAN_ID:') == true) + PengumumanCard(pengumumanId: msg['text'].toString().split(':')[1]) + else if (msg['text']?.toString().startsWith('IMAGE_URL:') == true) + GestureDetector( + onTap: () { + Navigator.push(context, MaterialPageRoute(builder: (_) => DocImagePreviewPage(imageUrl: msg['text'].toString().replaceFirst('IMAGE_URL:', '')))); + }, + child: ClipRRect( + borderRadius: BorderRadius.circular(8), + child: Image.network( + msg['text'].toString().replaceFirst('IMAGE_URL:', ''), + width: 200, + height: 200, + fit: BoxFit.cover, + ), + ), + ) + else if (msg['text']?.toString().startsWith('DOC_URL:') == true) + Builder( + builder: (context) { + final url = msg['text'].toString().replaceFirst('DOC_URL:', ''); + final uri = Uri.tryParse(url); + String fileName = 'Dokumen'; + String extension = 'FILE'; + + if (uri != null && uri.pathSegments.isNotEmpty) { + fileName = Uri.decodeComponent(uri.pathSegments.last); + final regex = RegExp(r'^\d{13}_'); + fileName = fileName.replaceFirst(regex, ''); + final extIndex = fileName.lastIndexOf('.'); + if (extIndex != -1 && extIndex < fileName.length - 1) { + extension = fileName.substring(extIndex + 1).toUpperCase(); + } + } + + return GestureDetector( + onTap: () async { + final parsedUrl = Uri.parse(url); + try { + await launchUrl(parsedUrl, mode: LaunchMode.externalApplication); + } catch (e) { + if (context.mounted) { + ScaffoldMessenger.of(context).showSnackBar(const SnackBar(content: Text('Tidak dapat membuka dokumen'))); + } + } + }, + child: Container( + constraints: const BoxConstraints(maxWidth: 240), + padding: const EdgeInsets.all(8), + decoration: BoxDecoration( + color: isMe ? Colors.black.withOpacity(0.1) : Colors.white.withOpacity(0.5), + borderRadius: BorderRadius.circular(8), + ), + child: Row( + mainAxisSize: MainAxisSize.min, + children: [ + Container( + width: 42, + height: 52, + decoration: BoxDecoration( + color: isMe ? Colors.white.withOpacity(0.2) : Colors.black.withOpacity(0.05), + borderRadius: BorderRadius.circular(6), + ), + child: Center( + child: Text( + extension.length > 4 ? extension.substring(0, 4) : extension, + style: TextStyle( + fontSize: 12, + fontWeight: FontWeight.bold, + color: isMe ? Colors.white : Colors.black87, + ), + ), + ), + ), + const SizedBox(width: 12), + Flexible( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + fileName, + maxLines: 2, + overflow: TextOverflow.ellipsis, + style: TextStyle( + fontSize: 14, + color: isMe ? Colors.white : Colors.black87, + fontWeight: FontWeight.w500, + ), + ), + const SizedBox(height: 4), + Text( + '$extension • Dokumen', + style: TextStyle( + fontSize: 12, + color: isMe ? Colors.white70 : Colors.black54, + ), + ), + ], + ), + ), + ], + ), + ), + ); + }, + ) + else + Text( + msg['text'] ?? '', + style: TextStyle( + color: isMe ? Colors.white : Colors.black87, + ), + ), + const SizedBox(height: 4), + Text( + _formatTime(msg['created_at']), + style: TextStyle( + fontSize: 10, + color: isMe ? Colors.white70 : Colors.black54, + ), + ), + ], + ), + ), + ], + ), + ), + ); + }, + ); + }, + ), + ), + Container( + padding: const EdgeInsets.all(8), + decoration: BoxDecoration( + color: Colors.white, + boxShadow: [ + BoxShadow( + color: Colors.black.withOpacity(0.05), + offset: const Offset(0, -2), + blurRadius: 4, + ), + ], + ), + child: Row( + children: [ + if (_currentUserRole == 'admin' || _currentUserRole == 'guru') + PopupMenuButton( + icon: const Icon(Icons.attach_file, color: Colors.orange), + tooltip: 'Lampiran', + offset: const Offset(0, -160), + onSelected: (value) { + if (value == 'pengumuman') { + Navigator.push( + context, + MaterialPageRoute(builder: (context) => const PengumumanPage()), + ); + } else if (value == 'image') { + _pickAndSendImage(); + } else if (value == 'document') { + _pickAndSendDoc(); + } + }, + itemBuilder: (BuildContext context) => >[ + const PopupMenuItem( + value: 'pengumuman', + child: Row( + children: [ + Icon(Icons.campaign, color: Colors.orange), + SizedBox(width: 8), + Text('Pengumuman'), + ], + ), + ), + const PopupMenuItem( + value: 'image', + child: Row( + children: [ + Icon(Icons.image, color: Colors.blue), + SizedBox(width: 8), + Text('Gambar'), + ], + ), + ), + const PopupMenuItem( + value: 'document', + child: Row( + children: [ + Icon(Icons.insert_drive_file, color: Colors.red), + SizedBox(width: 8), + Text('Dokumen'), + ], + ), + ), + ], + ), + Expanded( + child: TextField( + controller: _messageController, + decoration: InputDecoration( + hintText: 'Tulis pesan...', + contentPadding: const EdgeInsets.symmetric(horizontal: 16, vertical: 10), + filled: true, + fillColor: Colors.grey[100], + border: OutlineInputBorder( + borderRadius: BorderRadius.circular(20), + borderSide: BorderSide.none, + ), + ), + ), + ), + const SizedBox(width: 8), + CircleAvatar( + backgroundColor: const Color(0xFF2563EB), + child: IconButton( + icon: const Icon(Icons.send, color: Colors.white, size: 20), + onPressed: _sendMessage, + ), + ), + ], + ), + ), + ], + ), + ); + } +} diff --git a/lib/dashboard/a_admin/function/f_pesan/member_sekolah.dart b/lib/dashboard/a_admin/function/f_pesan/member_sekolah.dart new file mode 100644 index 0000000..379e9b0 --- /dev/null +++ b/lib/dashboard/a_admin/function/f_pesan/member_sekolah.dart @@ -0,0 +1,198 @@ +import 'package:flutter/material.dart'; +import 'package:apk/dashboard/a_admin/database/db_guru.dart'; +import 'package:apk/dashboard/a_admin/database/db_siswa.dart'; +import 'package:apk/dashboard/a_admin/database/db_kelas.dart'; +import 'package:apk/dashboard/a_admin/widget/custom_button.dart'; // Jika ingin menggunakan CustomCard, opsional. + +class MemberSekolah extends StatefulWidget { + const MemberSekolah({super.key}); + + @override + State createState() => _MemberSekolahState(); +} + +class _MemberSekolahState extends State { + bool _isLoading = true; + List> _listClass = []; + List> _listGuru = []; + List> _listMurid = []; + + @override + void initState() { + super.initState(); + _loadData(); + } + + Future _loadData() async { + try { + final classRes = await ClassService.getClasses(); + final guruRes = await GuruService.getGuru(); + final muridRes = await MuridService().getMurid(); + + if (mounted) { + setState(() { + _listClass = classRes; + _listGuru = guruRes; + _listMurid = muridRes; + _isLoading = false; + }); + } + } catch (e) { + if (mounted) { + setState(() => _isLoading = false); + ScaffoldMessenger.of(context) + .showSnackBar(SnackBar(content: Text('Error: $e'))); + } + } + } + + @override + Widget build(BuildContext context) { + final appBar = AppBar( + backgroundColor: const Color(0xFF2563EB), + elevation: 0, + automaticallyImplyLeading: true, + leading: IconButton( + icon: Image.asset('lib/assets/icons/Button.png', width: 30, height: 30), + onPressed: () => Navigator.pop(context), + ), + titleSpacing: -5, + title: const Text('Anggota Grup Sekolah'), + titleTextStyle: const TextStyle( + fontFamily: "Inter", + fontSize: 16, + fontWeight: FontWeight.w700, + color: Colors.white, + ), + ); + + if (_isLoading) { + return Scaffold( + appBar: appBar, + body: const Center(child: CircularProgressIndicator()), + ); + } + + return Scaffold( + appBar: appBar, + body: _buildMemberList(), + ); + } + + Widget _buildMemberList() { + // Kita bisa mengelompokkan berdasarkan id_class + // Tambahkan 1 kelas "Tanpa Kelas" jika ada yang id_class nya null + List> allClasses = List.from(_listClass); + allClasses.add({ + 'id_tabel': null, + 'name_class': 'Tanpa Kelas (Belum Dimasukkan Kelas)' + }); + + return ListView.builder( + padding: const EdgeInsets.all(16), + itemCount: allClasses.length, + itemBuilder: (context, index) { + final currentClass = allClasses[index]; + final classId = currentClass['id_tabel']; + final className = currentClass['name_class']; + + // Filter Guru dan Murid untuk kelas ini + final gurusInClass = _listGuru + .where((g) => g['id_class'] == classId) + .toList(); + final muridsInClass = _listMurid + .where((m) => m['id_class'] == classId) + .toList(); + + if (gurusInClass.isEmpty && muridsInClass.isEmpty && classId == null) { + return const SizedBox.shrink(); // Jangan tampilkan 'Tanpa Kelas' jika kosong + } + + return ExpansionTile( + title: Text( + className, + style: const TextStyle( + fontWeight: FontWeight.bold, + fontFamily: 'Inter', + ), + ), + children: [ + if (gurusInClass.isNotEmpty) + const Padding( + padding: EdgeInsets.symmetric(vertical: 8.0, horizontal: 16.0), + child: Align( + alignment: Alignment.centerLeft, + child: Text( + 'Daftar Guru:', + style: TextStyle( + fontFamily: 'Inter', + color: Color(0xFF2563EB), + fontWeight: FontWeight.w600), + ), + ), + ), + ...gurusInClass.map((g) { + final isWali = g['wali'] == true; + final name = g['name'] ?? '-'; + final initial = name.isNotEmpty ? name[0].toUpperCase() : '-'; + return ListTile( + leading: CircleAvatar( + backgroundColor: const Color(0xFF2563EB), + child: Text( + initial, + style: const TextStyle( + color: Colors.white, + fontWeight: FontWeight.bold, + fontFamily: 'Inter', + ), + ), + ), + title: Text(name), + subtitle: Text(isWali ? 'Guru / Wali Kelas' : 'Guru'), + ); + }).toList(), + + if (muridsInClass.isNotEmpty) + const Padding( + padding: EdgeInsets.symmetric(vertical: 8.0, horizontal: 16.0), + child: Align( + alignment: Alignment.centerLeft, + child: Text( + 'Daftar Murid:', + style: TextStyle( + fontFamily: 'Inter', + color: Color(0xFF2563EB), + fontWeight: FontWeight.w600), + ), + ), + ), + ...muridsInClass.map((m) { + final nama = m['nama'] ?? '-'; + final initial = nama.isNotEmpty ? nama[0].toUpperCase() : '-'; + return ListTile( + leading: CircleAvatar( + backgroundColor: Colors.orange[400], + child: Text( + initial, + style: const TextStyle( + color: Colors.white, + fontWeight: FontWeight.bold, + fontFamily: 'Inter', + ), + ), + ), + title: Text(nama), + subtitle: const Text('Murid'), + ); + }).toList(), + if (gurusInClass.isEmpty && muridsInClass.isEmpty) + const Padding( + padding: EdgeInsets.all(16.0), + child: Text('Belum ada anggota di kelas ini.'), + ) + ], + ); + }, + ); + } +} diff --git a/lib/dashboard/a_admin/function/f_pesan/pengumuman.dart b/lib/dashboard/a_admin/function/f_pesan/pengumuman.dart new file mode 100644 index 0000000..56b45c7 --- /dev/null +++ b/lib/dashboard/a_admin/function/f_pesan/pengumuman.dart @@ -0,0 +1,562 @@ +import 'dart:typed_data'; +import 'package:flutter/material.dart'; +import 'package:intl/intl.dart'; +import 'package:file_picker/file_picker.dart'; +import 'package:apk/dashboard/a_admin/database/db_pengumuman.dart'; +import 'package:apk/dashboard/a_admin/database/storage/doc_pengumuman.dart'; +import 'package:apk/dashboard/a_admin/database/db_grup_sekolah.dart'; +import 'package:url_launcher/url_launcher.dart'; +import 'package:apk/dashboard/a_admin/function/f_pesan/doc_image_page.dart'; + +class PengumumanPage extends StatefulWidget { + const PengumumanPage({super.key}); + + @override + State createState() => _PengumumanPageState(); +} + +class _PengumumanPageState extends State { + final _titleController = TextEditingController(); + final _keteranganController = TextEditingController(); + DateTime? _tanggalMulai; + DateTime? _tanggalSelesai; + List _selectedFiles = []; + bool _isLoading = false; + + Future _pickFile() async { + FilePickerResult? result = await FilePicker.pickFiles( + type: FileType.any, + allowMultiple: true, + withData: true, + ); + + if (result != null) { + setState(() { + for (var file in result.files) { + if (file.bytes != null) { + _selectedFiles.add(file); + } + } + }); + } + } + + Future _selectDate(BuildContext context, bool isStart) async { + final picked = await showDatePicker( + context: context, + initialDate: DateTime.now(), + firstDate: DateTime(2000), + lastDate: DateTime(2101), + ); + if (picked != null) { + setState(() { + if (isStart) { + _tanggalMulai = picked; + } else { + _tanggalSelesai = picked; + } + }); + } + } + + Future _submit() async { + if (_titleController.text.isEmpty || _tanggalMulai == null || _tanggalSelesai == null) { + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text('Harap lengkapi Title, Tanggal Mulai, dan Tanggal Selesai')), + ); + return; + } + + setState(() => _isLoading = true); + + try { + // 1. Upload File if any + List uploadedUrls = []; + for (var file in _selectedFiles) { + if (file.bytes != null && file.extension != null) { + await Future.delayed(const Duration(milliseconds: 10)); // Ensure unique timestamp + final url = await DocPengumuman.uploadDoc(file.bytes!, _titleController.text, file.extension!); + if (url != null) uploadedUrls.add(url); + } + } + + // 2. Determine Guru ID if sender is guru + final roleInfo = await DbGrupSekolah.getCurrentUserRoleAndId(); + String? idGuru; + if (roleInfo != null && roleInfo['role'] == 'guru') { + idGuru = roleInfo['id']; + } + + // 3. Insert Pengumuman + String keterangan = _keteranganController.text; + if (uploadedUrls.isNotEmpty) { + keterangan += '\n\nLampiran: ${uploadedUrls.join(' ')}'; + } + + final pengumuman = await DbPengumuman.insertPengumuman( + title: _titleController.text, + tanggalMulai: DateFormat('yyyy-MM-dd').format(_tanggalMulai!), + tanggalSelesai: DateFormat('yyyy-MM-dd').format(_tanggalSelesai!), + keterangan: keterangan, + idGuru: idGuru, + ); + + final pengumumanId = pengumuman['id_tabel']; + + // 4. Send to Grup Sekolah + if (roleInfo != null) { + await DbGrupSekolah().sendMessage( + text: 'PENGUMUMAN_ID:$pengumumanId', + senderId: roleInfo['id']!, + role: roleInfo['role']!, + ); + } + + if (mounted) { + Navigator.pop(context); + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text('Pengumuman berhasil dikirim ke Grup Sekolah')), + ); + } + } catch (e) { + if (mounted) { + ScaffoldMessenger.of(context).showSnackBar(SnackBar(content: Text('Error: $e'))); + } + } finally { + if (mounted) setState(() => _isLoading = false); + } + } + + @override + Widget build(BuildContext context) { + final appBar = AppBar( + backgroundColor: const Color(0xFF2563EB), + elevation: 0, + automaticallyImplyLeading: true, + leading: IconButton( + icon: Image.asset('lib/assets/icons/Button.png', width: 30, height: 30), + onPressed: () => Navigator.pop(context), + ), + titleSpacing: -5, + title: const Text('Buat Pengumuman'), + titleTextStyle: const TextStyle( + fontFamily: "Inter", + fontSize: 16, + fontWeight: FontWeight.w700, + color: Colors.white, + ), + ); + + if (_isLoading) { + return Scaffold( + appBar: appBar, + body: const Center(child: CircularProgressIndicator()), + ); + } + + return Scaffold( + backgroundColor: Colors.white, + appBar: appBar, + body: SingleChildScrollView( + padding: const EdgeInsets.all(20.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.stretch, + children: [ + // Title + const Text("Title", style: TextStyle(fontFamily: 'Inter', fontWeight: FontWeight.bold, fontSize: 16)), + const SizedBox(height: 8), + TextField( + controller: _titleController, + style: const TextStyle(fontFamily: 'Inter'), + decoration: InputDecoration( + hintText: "Judul Pengumuman (Title)", + hintStyle: const TextStyle(color: Color(0xFFC4C4C4), fontFamily: 'Inter'), + filled: true, + fillColor: const Color(0xFFF1F5F9), + contentPadding: const EdgeInsets.symmetric(horizontal: 20, vertical: 18), + border: OutlineInputBorder( + borderRadius: BorderRadius.circular(16), + borderSide: const BorderSide(color: Color(0xFFE2E8F0)), + ), + enabledBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(16), + borderSide: const BorderSide(color: Color(0xFFE2E8F0)), + ), + ), + ), + const SizedBox(height: 16), + + // Dates + Row( + children: [ + Expanded(child: _buildDateCard("Tanggal Mulai", _tanggalMulai, true)), + const SizedBox(width: 12), + Expanded(child: _buildDateCard("Tanggal Selesai", _tanggalSelesai, false)), + ], + ), + const SizedBox(height: 16), + + // Keterangan + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + const Text("Keterangan", style: TextStyle(fontFamily: 'Inter', fontWeight: FontWeight.bold, fontSize: 16)), + Row( + children: const [ + Icon(Icons.format_size, size: 16, color: Colors.grey), + SizedBox(width: 4), + Icon(Icons.edit, size: 16, color: Colors.grey), + ], + ) + ], + ), + const SizedBox(height: 8), + TextField( + controller: _keteranganController, + maxLines: 5, + style: const TextStyle(fontFamily: 'Inter'), + decoration: InputDecoration( + hintText: "Tuliskan isi pengumuman secara detail di sini...", + hintStyle: const TextStyle(color: Color(0xFFC4C4C4), fontFamily: 'Inter'), + filled: true, + fillColor: const Color(0xFFF1F5F9), + contentPadding: const EdgeInsets.symmetric(horizontal: 20, vertical: 18), + border: OutlineInputBorder( + borderRadius: BorderRadius.circular(16), + borderSide: const BorderSide(color: Color(0xFFE2E8F0)), + ), + enabledBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(16), + borderSide: const BorderSide(color: Color(0xFFE2E8F0)), + ), + ), + ), + const SizedBox(height: 16), + + // Upload + Align( + alignment: Alignment.centerLeft, + child: OutlinedButton.icon( + onPressed: _pickFile, + icon: const Icon(Icons.upload_file, color: Colors.purple), + label: const Text('Upload Doc/Image', style: TextStyle(fontFamily: 'Inter', color: Colors.purple)), + style: OutlinedButton.styleFrom( + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(12)), + side: const BorderSide(color: Colors.purple, width: 1), + padding: const EdgeInsets.symmetric(horizontal: 32, vertical: 14), + ), + ), + ), + if (_selectedFiles.isNotEmpty) ...[ + const SizedBox(height: 16), + const Text("Uploaded Files : ", style: TextStyle(fontFamily: 'Inter', fontWeight: FontWeight.bold)), + const SizedBox(height: 8), + Wrap( + spacing: 8, + runSpacing: 8, + children: _selectedFiles.map((file) { + final ext = file.extension?.toLowerCase() ?? ''; + final isImage = ['jpg', 'jpeg', 'png', 'gif', 'webp'].contains(ext); + return Container( + padding: const EdgeInsets.symmetric(horizontal: 8, vertical: 4), + decoration: BoxDecoration( + color: Colors.grey[200], + borderRadius: BorderRadius.circular(16), + ), + child: Row( + mainAxisSize: MainAxisSize.min, + children: [ + Icon( + isImage ? Icons.image : Icons.picture_as_pdf, + color: isImage ? Colors.green : Colors.red, + size: 16, + ), + const SizedBox(width: 4), + Flexible( + child: Text( + file.name, + style: const TextStyle(fontFamily: 'Inter', fontSize: 12), + maxLines: 1, + overflow: TextOverflow.ellipsis, + ), + ), + const SizedBox(width: 4), + GestureDetector( + onTap: () { + setState(() { + _selectedFiles.remove(file); + }); + }, + child: const Icon(Icons.close, size: 14, color: Colors.grey), + ), + ], + ), + ); + }).toList(), + ), + ], + const SizedBox(height: 32), + + // Submit Button + ElevatedButton( + onPressed: _submit, + style: ElevatedButton.styleFrom( + backgroundColor: const Color(0xFF1E3A8A), // Dark blue + padding: const EdgeInsets.symmetric(vertical: 16), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(12), + ), + ), + child: const Text('Tulis Pengumuman', style: TextStyle(fontFamily: 'Inter', fontSize: 16, fontWeight: FontWeight.bold, color: Colors.white)), + ), + ], + ), + ), + ); + } + + Widget _buildDateCard(String title, DateTime? date, bool isStart) { + return GestureDetector( + onTap: () => _selectDate(context, isStart), + child: Container( + padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 12), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(12), + border: Border.all(color: const Color(0xFFE2E8F0)), + boxShadow: [ + BoxShadow( + color: Colors.black.withOpacity(0.05), + blurRadius: 4, + offset: const Offset(0, 2), + ) + ] + ), + child: Row( + children: [ + const Icon(Icons.calendar_today, color: Color(0xFF2563EB)), + const SizedBox(width: 8), + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text(title, style: const TextStyle(fontFamily: 'Inter', fontWeight: FontWeight.bold, fontSize: 12)), + const SizedBox(height: 4), + Text( + date == null ? '-' : DateFormat('dd MMM yyyy').format(date), + style: const TextStyle(fontFamily: 'Inter', fontSize: 12, color: Colors.black87), + ), + ], + ), + ), + ], + ), + ), + ); + } +} + +// Widget untuk menampilkan Pengumuman di dalam obrolan Grup Sekolah +class PengumumanCard extends StatelessWidget { + final String pengumumanId; + const PengumumanCard({super.key, required this.pengumumanId}); + + @override + Widget build(BuildContext context) { + return FutureBuilder?>( + future: DbPengumuman.getPengumumanById(pengumumanId), + builder: (context, snapshot) { + if (snapshot.connectionState == ConnectionState.waiting) { + return const Card( + child: Padding( + padding: EdgeInsets.all(16), + child: SizedBox( + height: 50, + width: 50, + child: Center(child: CircularProgressIndicator()), + ), + ), + ); + } + if (!snapshot.hasData || snapshot.data == null) { + return const Card( + child: Padding( + padding: EdgeInsets.all(16), + child: Text('Pengumuman tidak ditemukan'), + ), + ); + } + + final data = snapshot.data!; + + // Memisahkan keterangan dan URL lampiran jika ada + String textKeterangan = data['keterangan'] ?? ''; + List lampiranUrls = []; + + if (textKeterangan.contains('Lampiran: ')) { + final parts = textKeterangan.split('Lampiran: '); + textKeterangan = parts[0].trim(); + final urlsString = parts.length > 1 ? parts[1].trim() : ''; + lampiranUrls = urlsString.split(RegExp(r'\s+')).where((s) => s.startsWith('http')).toList(); + } + + return Card( + color: Colors.amber[50], + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(12)), + elevation: 2, + child: Padding( + padding: const EdgeInsets.all(16), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + children: [ + const Icon(Icons.campaign, color: Colors.amber, size: 28), + const SizedBox(width: 8), + Expanded( + child: Text( + data['title'] ?? 'Pengumuman', + style: const TextStyle( + fontWeight: FontWeight.bold, + fontSize: 16, + ), + ), + ), + ], + ), + const Divider(), + Row( + children: [ + const Icon(Icons.date_range, size: 16, color: Colors.grey), + const SizedBox(width: 4), + Text( + '${data['tanggal_mulai']} s/d ${data['tanggal_selesai']}', + style: const TextStyle(fontSize: 12, color: Colors.black87), + ), + ], + ), + if (textKeterangan.isNotEmpty) ...[ + const SizedBox(height: 8), + Text(textKeterangan, style: const TextStyle(fontSize: 14)), + ], + if (lampiranUrls.isNotEmpty) ...[ + const SizedBox(height: 8), + Wrap( + spacing: 8, + runSpacing: 8, + children: lampiranUrls.map((lampiranUrl) { + return Builder( + builder: (context) { + final uri = Uri.tryParse(lampiranUrl); + String extension = 'FILE'; + String fileName = 'Lampiran'; + if (uri != null && uri.pathSegments.isNotEmpty) { + final fullName = Uri.decodeComponent(uri.pathSegments.last); + fileName = fullName.replaceFirst(RegExp(r'^\d{13}_'), ''); + final extIndex = fullName.lastIndexOf('.'); + if (extIndex != -1 && extIndex < fullName.length - 1) { + extension = fullName.substring(extIndex + 1).toLowerCase(); + } + } + bool isImage = ['jpg', 'jpeg', 'png', 'gif', 'webp'].contains(extension); + + if (isImage) { + return GestureDetector( + onTap: () { + Navigator.push(context, MaterialPageRoute(builder: (_) => DocImagePreviewPage(imageUrl: lampiranUrl))); + }, + child: ClipRRect( + borderRadius: BorderRadius.circular(8), + child: Image.network( + lampiranUrl, + width: 200, + height: 200, + fit: BoxFit.cover, + ), + ), + ); + } else { + return GestureDetector( + onTap: () async { + final parsedUrl = Uri.parse(lampiranUrl); + try { + await launchUrl(parsedUrl, mode: LaunchMode.externalApplication); + } catch (e) { + if (context.mounted) { + ScaffoldMessenger.of(context).showSnackBar(const SnackBar(content: Text('Tidak dapat membuka lampiran'))); + } + } + }, + child: Container( + constraints: const BoxConstraints(maxWidth: 240), + padding: const EdgeInsets.all(8), + decoration: BoxDecoration( + color: Colors.white.withOpacity(0.8), + borderRadius: BorderRadius.circular(8), + border: Border.all(color: Colors.black12), + ), + child: Row( + mainAxisSize: MainAxisSize.min, + children: [ + Container( + width: 42, + height: 52, + decoration: BoxDecoration( + color: Colors.black.withOpacity(0.05), + borderRadius: BorderRadius.circular(6), + ), + child: Center( + child: Text( + extension.length > 4 ? extension.substring(0, 4).toUpperCase() : extension.toUpperCase(), + style: const TextStyle( + fontSize: 12, + fontWeight: FontWeight.bold, + color: Colors.black87, + ), + ), + ), + ), + const SizedBox(width: 12), + Flexible( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + fileName, + maxLines: 2, + overflow: TextOverflow.ellipsis, + style: const TextStyle( + fontSize: 14, + color: Colors.black87, + fontWeight: FontWeight.w500, + ), + ), + const SizedBox(height: 4), + Text( + '${extension.toUpperCase()} • Dokumen', + style: const TextStyle( + fontSize: 12, + color: Colors.black54, + ), + ), + ], + ), + ), + ], + ), + ), + ); + } + }, + ); + }).toList(), + ) + ] + ], + ), + ), + ); + }, + ); + } +} diff --git a/lib/dashboard/a_admin/function/user_admin/profil.dart b/lib/dashboard/a_admin/function/user_admin/profil.dart new file mode 100644 index 0000000..94d134a --- /dev/null +++ b/lib/dashboard/a_admin/function/user_admin/profil.dart @@ -0,0 +1,445 @@ +import 'package:flutter/material.dart'; +import 'package:apk/dashboard/a_admin/database/auth.dart'; +import 'package:apk/dashboard/a_admin/database/storage/image_profile.dart'; +import 'package:apk/dashboard/a_admin/widget/custom_button.dart'; +import 'package:apk/register/page1.dart'; +import 'package:supabase_flutter/supabase_flutter.dart'; +import 'package:apk/dashboard/a_admin/database/db_namasekolah.dart'; +import 'package:apk/dashboard/a_admin/function/user_admin/update_profil.dart'; + +class ProfilScreen extends StatefulWidget { + const ProfilScreen({super.key}); + + @override + State createState() => _ProfilScreenState(); +} + +class _ProfilScreenState extends State { + final AuthService _authService = AuthService(); + final ImageProfileStorage _storageService = ImageProfileStorage(); + + final nameController = TextEditingController(); + final nomorIndukController = TextEditingController(); + final emailController = TextEditingController(); + final roleController = TextEditingController(); + final namaSekolahController = TextEditingController(); + final wilayahController = TextEditingController(); + + bool isLoading = true; + String? _avatarUrl; + + @override + void initState() { + super.initState(); + _loadProfile(); + } + + Future _loadProfile() async { + final data = await _authService.getProfile(); + final userId = Supabase.instance.client.auth.currentUser?.id; + String? loadedAvatarUrl; + + if (userId != null) { + loadedAvatarUrl = await _storageService.getProfileImageUrl(userId); + } + + final schoolData = await NamaSekolahService.getSchoolDetails(); + final schoolName = schoolData?['sekolah'] ?? ''; + final schoolWilayah = schoolData?['wilayah'] ?? ''; + + if (mounted) { + setState(() { + if (data != null) { + nameController.text = data['name'] ?? ''; + nomorIndukController.text = data['nomor_induk'] ?? ''; + emailController.text = data['email'] ?? ''; + roleController.text = data['role'] ?? ''; + namaSekolahController.text = schoolName; + wilayahController.text = schoolWilayah; + } + + _avatarUrl = loadedAvatarUrl; + isLoading = false; + }); + } + } + + Future _logout() async { + await _authService.signOut(); + if (mounted) { + Navigator.of(context).pushAndRemoveUntil( + MaterialPageRoute(builder: (context) => const Home()), + (route) => false, + ); + } + } + + IconData _iconForLabel(String label) { + switch (label) { + case "Email": + return Icons.email_outlined; + case "Peran": + return Icons.verified_user_outlined; + case "Nama Lengkap": + return Icons.person_outline; + case "Nomor Induk": + return Icons.badge_outlined; + case "Nama Sekolah": + return Icons.account_balance_outlined; + case "Wilayah": + return Icons.location_on_outlined; + default: + return Icons.info_outline; + } + } + + String _displayValue(String value) { + return value.isEmpty ? "Belum diisi" : value; + } + + String get _nama => + nameController.text.isEmpty ? "Belum diisi" : nameController.text; + String get _nomorInduk => nomorIndukController.text.isEmpty + ? "Belum diisi" + : nomorIndukController.text; + String get _role => + roleController.text.isEmpty ? "Admin" : roleController.text; + + Widget _infoCard({ + required IconData icon, + required String title, + required String value, + bool isEmpty = false, + }) { + return CustomCard( + title: title, + subtitle: value, + icon: icon, + iconPosition: IconPosition.left, + iconColor: const Color(0xFF2563EB), + iconSize: 24, + iconContainerSize: 46, + iconDecoration: BoxDecoration( + color: const Color(0xFFEFF6FF), + borderRadius: BorderRadius.circular(9), + ), + backgroundColor: Colors.white, + borderColor: Colors.transparent, + borderWidth: 0, + borderRadius: 0, + margin: EdgeInsets.zero, + padding: const EdgeInsets.symmetric(horizontal: 20, vertical: 16), + boxShadow: const [], + titleStyle: const TextStyle( + fontFamily: 'Inter', + fontSize: 14, + fontWeight: FontWeight.w500, + color: Color(0xFF8FA0BA), + ), + subtitleStyle: TextStyle( + fontFamily: 'Inter', + fontSize: 16, + fontWeight: FontWeight.w700, + fontStyle: isEmpty ? FontStyle.italic : FontStyle.normal, + color: isEmpty ? const Color(0xFFC8D2E0) : const Color(0xFF172033), + ), + showIcon: true, + ); + } + + Widget field( + String label, + TextEditingController controller, { + bool readOnly = false, + TextInputType? keyboardType, + }) { + return _infoCard( + icon: _iconForLabel(label), + title: label, + value: _displayValue(controller.text), + isEmpty: controller.text.isEmpty, + ); + } + + Widget _sectionCard(List children) { + return Container( + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(20), + border: Border.all(color: const Color(0xFFE8EEF6)), + boxShadow: [ + BoxShadow( + color: Colors.black.withOpacity(0.04), + blurRadius: 10, + offset: const Offset(0, 3), + ), + ], + ), + child: ClipRRect( + borderRadius: BorderRadius.circular(20), + child: Column( + children: [ + for (int i = 0; i < children.length; i++) ...[ + children[i], + if (i != children.length - 1) + const Divider( + height: 1, + thickness: 1, + color: Color(0xFFF0F4FA), + indent: 82, + endIndent: 20, + ), + ], + ], + ), + ), + ); + } + + Widget _sectionTitle(String title) { + return Padding( + padding: const EdgeInsets.only(left: 4, bottom: 12), + child: Text( + title, + style: const TextStyle( + fontFamily: 'Inter', + fontSize: 15, + fontWeight: FontWeight.w800, + color: Color(0xFF64748B), + ), + ), + ); + } + + Widget _profileHeader() { + return Container( + width: double.infinity, + padding: const EdgeInsets.symmetric(vertical: 24, horizontal: 16), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(18), + border: Border.all(color: const Color(0xFFE8EEF6)), + boxShadow: [ + BoxShadow( + color: Colors.black.withOpacity(0.04), + blurRadius: 12, + offset: const Offset(0, 5), + ), + ], + ), + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + CircleAvatar( + radius: 36, + backgroundColor: const Color(0xFF2563EB), + backgroundImage: + _avatarUrl != null ? NetworkImage(_avatarUrl!) : null, + onBackgroundImageError: _avatarUrl != null + ? (exception, stackTrace) { + if (mounted) { + setState(() => _avatarUrl = null); + } + } + : null, + child: _avatarUrl == null + ? const Icon(Icons.person, size: 36, color: Colors.white) + : null, + ), + const SizedBox(height: 16), + Text( + _nama, + textAlign: TextAlign.center, + style: const TextStyle( + fontFamily: 'Inter', + fontSize: 23, + fontWeight: FontWeight.w800, + color: Color(0xFF172033), + ), + ), + const SizedBox(height: 16), + Wrap( + alignment: WrapAlignment.center, + crossAxisAlignment: WrapCrossAlignment.center, + spacing: 16, + runSpacing: 10, + children: [ + Row( + mainAxisSize: MainAxisSize.min, + children: [ + const Icon( + Icons.badge_outlined, + size: 18, + color: Color(0xFF8FA0BA), + ), + const SizedBox(width: 6), + Text( + "No. Induk: $_nomorInduk", + style: const TextStyle( + fontFamily: 'Inter', + fontSize: 15, + fontWeight: FontWeight.w600, + color: Color(0xFF64748B), + ), + ), + ], + ), + Container( + padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 7), + decoration: BoxDecoration( + color: const Color(0xFFEFF6FF), + borderRadius: BorderRadius.circular(18), + ), + child: Row( + mainAxisSize: MainAxisSize.min, + children: [ + const Icon( + Icons.admin_panel_settings_outlined, + size: 18, + color: Color(0xFF2563EB), + ), + const SizedBox(width: 6), + Text( + _role, + style: const TextStyle( + fontFamily: 'Inter', + fontSize: 15, + fontWeight: FontWeight.w700, + color: Color(0xFF2563EB), + ), + ), + ], + ), + ), + ], + ), + ], + ), + ); + } + + + + @override + void dispose() { + nameController.dispose(); + nomorIndukController.dispose(); + emailController.dispose(); + roleController.dispose(); + namaSekolahController.dispose(); + wilayahController.dispose(); + super.dispose(); + } + + @override + Widget build(BuildContext context) { + final appBar = AppBar( + backgroundColor: const Color(0xFF2563EB), + elevation: 0, + automaticallyImplyLeading: true, + leading: IconButton( + icon: Image.asset('lib/assets/icons/Button.png', width: 30, height: 30), + onPressed: () => Navigator.pop(context), + ), + titleSpacing: -5, + title: const Text("Profil Admin"), + titleTextStyle: const TextStyle( + fontFamily: "Inter", + fontSize: 16, + fontWeight: FontWeight.w700, + color: Colors.white, + ), + ); + + if (isLoading) { + return Scaffold( + appBar: appBar, + body: const Center(child: CircularProgressIndicator()), + ); + } + + return Scaffold( + backgroundColor: const Color(0xFFF4F7FB), + appBar: appBar, + body: ListView( + padding: const EdgeInsets.fromLTRB(24, 18, 24, 28), + children: [ + _profileHeader(), + const SizedBox(height: 20), + _sectionTitle("Akun"), + _sectionCard([ + field("Email", emailController), + field("Peran", roleController), + ]), + const SizedBox(height: 18), + _sectionTitle("Identitas"), + _sectionCard([ + field("Nama Lengkap", nameController), + field("Nomor Induk", nomorIndukController), + field("Nama Sekolah", namaSekolahController), + field("Wilayah", wilayahController), + ]), + const SizedBox(height: 24), + Row( + children: [ + Expanded( + child: ElevatedButton( + onPressed: () async { + final result = await Navigator.push( + context, + MaterialPageRoute(builder: (context) => const UpdateProfilScreen()), + ); + if (result == true) { + setState(() => isLoading = true); + _loadProfile(); + } + }, + style: ElevatedButton.styleFrom( + backgroundColor: const Color(0xFF2563EB), + foregroundColor: Colors.white, + elevation: 0, + padding: const EdgeInsets.symmetric(vertical: 16), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(24), + ), + ), + child: const Text( + "Edit", + style: TextStyle( + fontFamily: 'Inter', + fontSize: 16, + fontWeight: FontWeight.w700, + ), + ), + ), + ), + const SizedBox(width: 10), + Expanded( + child: ElevatedButton( + onPressed: _logout, + style: ElevatedButton.styleFrom( + backgroundColor: Colors.red, + foregroundColor: Colors.white, + elevation: 0, + padding: const EdgeInsets.symmetric(vertical: 16), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(24), + ), + ), + child: const Text( + "Logout", + style: TextStyle( + fontFamily: 'Inter', + fontSize: 16, + fontWeight: FontWeight.w700, + ), + ), + ), + ), + ], + ), + ], + ), + ); + } +} diff --git a/lib/dashboard/a_admin/function/user_admin/update_profil.dart b/lib/dashboard/a_admin/function/user_admin/update_profil.dart new file mode 100644 index 0000000..50eeeeb --- /dev/null +++ b/lib/dashboard/a_admin/function/user_admin/update_profil.dart @@ -0,0 +1,458 @@ +import 'package:flutter/material.dart'; +import 'package:apk/dashboard/a_admin/database/auth.dart'; +import 'package:apk/dashboard/a_admin/database/storage/image_profile.dart'; +import 'package:image_picker/image_picker.dart'; +import 'package:supabase_flutter/supabase_flutter.dart'; +import 'package:apk/dashboard/a_admin/database/db_namasekolah.dart'; + +class UpdateProfilScreen extends StatefulWidget { + const UpdateProfilScreen({super.key}); + + @override + State createState() => _UpdateProfilScreenState(); +} + +class _UpdateProfilScreenState extends State { + final AuthService _authService = AuthService(); + final ImageProfileStorage _storageService = ImageProfileStorage(); + + final nameController = TextEditingController(); + final nomorIndukController = TextEditingController(); + final emailController = TextEditingController(); + final roleController = TextEditingController(); + final namaSekolahController = TextEditingController(); + final wilayahController = TextEditingController(); + + bool isLoading = true; + bool isSaving = false; + String? _avatarUrl; + + @override + void initState() { + super.initState(); + _loadProfile(); + } + + Future _loadProfile() async { + final data = await _authService.getProfile(); + final userId = Supabase.instance.client.auth.currentUser?.id; + String? loadedAvatarUrl; + + if (userId != null) { + loadedAvatarUrl = await _storageService.getProfileImageUrl(userId); + } + + final schoolData = await NamaSekolahService.getSchoolDetails(); + final schoolName = schoolData?['sekolah'] ?? ''; + final schoolWilayah = schoolData?['wilayah'] ?? ''; + + if (mounted) { + setState(() { + if (data != null) { + nameController.text = data['name'] ?? ''; + nomorIndukController.text = data['nomor_induk'] ?? ''; + emailController.text = data['email'] ?? ''; + roleController.text = data['role'] ?? ''; + namaSekolahController.text = schoolName; + wilayahController.text = schoolWilayah; + } + + _avatarUrl = loadedAvatarUrl; + isLoading = false; + }); + } + } + + Future _updateProfile() async { + setState(() => isSaving = true); + + try { + await _authService.updateProfile( + name: nameController.text, + nomorInduk: nomorIndukController.text, + ); + await NamaSekolahService.updateNamaSekolah( + namaSekolahController.text, + wilayahController.text, + ); + + if (mounted) { + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text('Profil berhasil diperbarui')), + ); + Navigator.pop(context, true); // return true to indicate success + } + } catch (e) { + if (mounted) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text('Gagal menyimpan: $e')), + ); + } + } finally { + if (mounted) { + setState(() => isSaving = false); + } + } + } + + Future _uploadImage() async { + final picker = ImagePicker(); + final pickedFile = await picker.pickImage(source: ImageSource.gallery); + if (pickedFile == null) return; + + setState(() => isLoading = true); + + try { + final bytes = await pickedFile.readAsBytes(); + final userId = Supabase.instance.client.auth.currentUser?.id; + if (userId == null) throw 'User belum login'; + + final newUrl = await _storageService.uploadProfileImage(userId, bytes); + + if (mounted) { + setState(() => _avatarUrl = newUrl); + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text('Foto profil berhasil diperbarui')), + ); + } + } catch (e) { + if (mounted) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text('Gagal mengupload foto: $e')), + ); + } + } finally { + if (mounted) { + setState(() => isLoading = false); + } + } + } + + Future _deleteImage() async { + setState(() => isLoading = true); + + try { + final userId = Supabase.instance.client.auth.currentUser?.id; + if (userId == null) throw 'User belum login'; + + await _storageService.deleteProfileImage(userId); + + if (mounted) { + setState(() => _avatarUrl = null); + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text('Foto profil berhasil dihapus')), + ); + } + } catch (e) { + if (mounted) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text('Gagal menghapus foto: $e')), + ); + } + } finally { + if (mounted) { + setState(() => isLoading = false); + } + } + } + + void _showEditProfileSheet() { + showModalBottomSheet( + context: context, + shape: const RoundedRectangleBorder( + borderRadius: BorderRadius.vertical(top: Radius.circular(20)), + ), + builder: (BuildContext context) { + return Padding( + padding: const EdgeInsets.symmetric(vertical: 20), + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + ListTile( + leading: const Icon(Icons.photo_library, color: Color(0xFF2563EB)), + title: const Text('Upload foto dari galeri'), + onTap: () { + Navigator.pop(context); + _uploadImage(); + }, + ), + if (_avatarUrl != null) + ListTile( + leading: const Icon(Icons.delete, color: Colors.red), + title: const Text('Hapus foto profil', style: TextStyle(color: Colors.red)), + onTap: () { + Navigator.pop(context); + _deleteImage(); + }, + ), + ], + ), + ); + }, + ); + } + + Widget _avatarEditor() { + return Column( + children: [ + CircleAvatar( + radius: 50, + backgroundColor: const Color(0xFF2563EB), + backgroundImage: _avatarUrl != null ? NetworkImage(_avatarUrl!) : null, + onBackgroundImageError: _avatarUrl != null + ? (exception, stackTrace) { + if (mounted) { + setState(() => _avatarUrl = null); + } + } + : null, + child: _avatarUrl == null + ? const Icon(Icons.person, size: 50, color: Colors.white) + : null, + ), + const SizedBox(height: 8), + TextButton.icon( + onPressed: isSaving ? null : _showEditProfileSheet, + icon: const Icon(Icons.edit, size: 16, color: Color(0xFF2563EB)), + label: const Text( + 'Edit Foto', + style: TextStyle(color: Color(0xFF2563EB), fontWeight: FontWeight.w600), + ), + ), + ], + ); + } + + Widget field( + String label, + TextEditingController controller, { + bool readOnly = false, + TextInputType? keyboardType, + }) { + return Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + label, + style: const TextStyle( + fontFamily: 'Inter', + fontWeight: FontWeight.w600, + fontSize: 14, + color: Color(0xFF1E293B), + ), + ), + const SizedBox(height: 6), + TextField( + controller: controller, + readOnly: readOnly, + keyboardType: keyboardType, + style: const TextStyle(fontFamily: 'Inter'), + decoration: InputDecoration( + hintText: "Masukkan $label", + hintStyle: const TextStyle(color: Color(0xFFC4C4C4), fontFamily: 'Inter'), + filled: true, + fillColor: readOnly ? const Color(0xFFE8EEF6) : const Color(0xFFF1F5F9), + contentPadding: const EdgeInsets.symmetric(horizontal: 20, vertical: 18), + border: OutlineInputBorder( + borderRadius: BorderRadius.circular(16), + borderSide: const BorderSide(color: Color(0xFFE2E8F0)), + ), + enabledBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(16), + borderSide: const BorderSide(color: Color(0xFFE2E8F0)), + ), + ), + ), + const SizedBox(height: 16), + ], + ); + } + + Widget _actionButton({ + required String label, + required Color color, + required VoidCallback? onPressed, + bool loading = false, + }) { + final bool isWhite = color == Colors.white; + return Expanded( + child: ElevatedButton( + onPressed: onPressed, + style: ElevatedButton.styleFrom( + backgroundColor: color, + foregroundColor: isWhite ? const Color(0xFF64748B) : Colors.white, + elevation: 0, + padding: const EdgeInsets.symmetric(vertical: 16), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(24), + side: isWhite ? const BorderSide(color: Color(0xFF94A3B8)) : BorderSide.none, + ), + ), + child: loading + ? SizedBox( + width: 20, + height: 20, + child: CircularProgressIndicator( + color: isWhite ? const Color(0xFF64748B) : Colors.white, + strokeWidth: 2, + ), + ) + : Text( + label, + style: const TextStyle( + fontFamily: 'Inter', + fontSize: 16, + fontWeight: FontWeight.w700, + ), + ), + ), + ); + } + + @override + void dispose() { + nameController.dispose(); + nomorIndukController.dispose(); + emailController.dispose(); + roleController.dispose(); + namaSekolahController.dispose(); + wilayahController.dispose(); + super.dispose(); + } + + @override + Widget build(BuildContext context) { + final customAppBar = AppBar( + backgroundColor: const Color(0xFF2563EB), + elevation: 0, + automaticallyImplyLeading: true, + leading: IconButton( + icon: Image.asset('lib/assets/icons/Button.png', width: 30, height: 30), + onPressed: () => Navigator.pop(context), + ), + titleSpacing: -5, + title: const Text("Edit Profil"), + titleTextStyle: const TextStyle( + fontFamily: "Inter", + fontSize: 16, + fontWeight: FontWeight.w700, + color: Colors.white, + ), + ); + + if (isLoading) { + return Scaffold( + backgroundColor: Colors.white, + appBar: customAppBar, + body: const Center(child: CircularProgressIndicator()), + ); + } + + return Scaffold( + backgroundColor: Colors.white, + appBar: customAppBar, + body: Container( + color: Colors.white, + padding: const EdgeInsets.all(24), + child: Column( + children: [ + Expanded( + child: ListView( + children: [ + _avatarEditor(), + const SizedBox(height: 24), + Row( + children: const [ + Icon(Icons.person, color: Color(0xFF1E293B), size: 24), + SizedBox(width: 8), + Text( + "Akun", + style: TextStyle( + fontFamily: 'Inter', + fontSize: 18, + fontWeight: FontWeight.w800, + color: Color(0xFF1E293B), + ), + ), + ], + ), + const SizedBox(height: 16), + Container( + padding: const EdgeInsets.all(20), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(20), + border: Border.all(color: const Color(0xFFE2E8F0)), + ), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + field("Email", emailController, readOnly: true), + field("Peran", roleController, readOnly: true), + ], + ), + ), + const SizedBox(height: 24), + Row( + children: const [ + Icon(Icons.person, color: Color(0xFF1E293B), size: 24), + SizedBox(width: 8), + Text( + "Profil", + style: TextStyle( + fontFamily: 'Inter', + fontSize: 18, + fontWeight: FontWeight.w800, + color: Color(0xFF1E293B), + ), + ), + ], + ), + const SizedBox(height: 16), + Container( + padding: const EdgeInsets.all(20), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(20), + border: Border.all(color: const Color(0xFFE2E8F0)), + ), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + field("Nama Lengkap", nameController), + field( + "Nomor Induk", + nomorIndukController, + keyboardType: TextInputType.number, + ), + field("Nama Sekolah", namaSekolahController), + field("Wilayah", wilayahController), + ], + ), + ), + ], + ), + ), + const SizedBox(height: 16), + Row( + children: [ + _actionButton( + label: "Simpan", + color: const Color(0xFF2563EB), + onPressed: isSaving ? null : _updateProfile, + loading: isSaving, + ), + const SizedBox(width: 10), + _actionButton( + label: "Batal", + color: Colors.white, + onPressed: isSaving ? null : () => Navigator.pop(context), + ), + ], + ), + ], + ), + ), + ); + } +} diff --git a/lib/dashboard/a_admin/widget/custom_button.dart b/lib/dashboard/a_admin/widget/custom_button.dart new file mode 100644 index 0000000..64d3a6d --- /dev/null +++ b/lib/dashboard/a_admin/widget/custom_button.dart @@ -0,0 +1,236 @@ +import 'package:flutter/material.dart'; + +enum IconPosition { + left, + right, +} + +class CustomCard extends StatelessWidget { + final String title; + final String? subtitle; + final Widget? customSubtitle; + + // SIZE + final double? width; + final double? height; + + // ACTION + final VoidCallback? onTap; + + // CARD ALIGNMENT + final AlignmentGeometry alignment; + + // STYLE + final Color backgroundColor; + final Color borderColor; + final double borderWidth; + final double borderRadius; + + // TEXT STYLE + final TextStyle? titleStyle; + final TextStyle? subtitleStyle; + + // TEXT DEFAULT + final TextAlign titleAlign; + final TextAlign subtitleAlign; + final int? titleMaxLines; + final int? subtitleMaxLines; + final TextOverflow? titleOverflow; + final TextOverflow? subtitleOverflow; + + // ICON + final IconData? icon; + final Color iconColor; + final double iconSize; + final bool showIcon; + + // SPACING + final EdgeInsetsGeometry padding; + final EdgeInsetsGeometry margin; + + // SHADOW + final List? boxShadow; + + final Widget? customIcon; + + final IconPosition iconPosition; + final BoxDecoration? iconDecoration; + final Gradient? iconGradient; + final EdgeInsetsGeometry iconPadding; + final double iconContainerSize; + final Gradient? gradient; + + const CustomCard({ + super.key, + required this.title, + this.subtitle, + this.customSubtitle, + + this.width, + this.height, + this.onTap, + + this.alignment = Alignment.centerLeft, + + this.backgroundColor = const Color(0xFFF1F5F9), + this.borderColor = const Color(0xFFBFDBFE), + this.borderWidth = 1, + this.borderRadius = 16, + + this.titleStyle, + this.subtitleStyle, + + //TEXT DEFAULT + this.titleAlign = TextAlign.left, + this.subtitleAlign = TextAlign.left, + this.titleMaxLines, + this.subtitleMaxLines, + this.titleOverflow, + this.subtitleOverflow, + + this.icon = Icons.chevron_right, + this.iconColor = const Color(0xFF94A3B8), + this.iconSize = 24, + this.showIcon = true, + + this.padding = const EdgeInsets.all(16), + this.margin = const EdgeInsets.symmetric(horizontal: 20, vertical: 8), + + this.boxShadow, + + this.customIcon, + + this.iconPosition = IconPosition.right, + this.iconDecoration, + this.iconGradient, + this.iconPadding = const EdgeInsets.all(8), + this.iconContainerSize = 40, + this.gradient, + }); + + Widget _buildIcon() { + if (!showIcon) return const SizedBox(); + + Widget iconWidget = customIcon ?? + (icon != null + ? Icon( + icon, + color: iconColor, + size: iconSize, + ) + : const SizedBox()); + + return Container( + width: iconContainerSize, + height: iconContainerSize, + padding: iconPadding, + decoration: iconDecoration ?? + BoxDecoration( + gradient: iconGradient, + borderRadius: BorderRadius.circular(12), + ), + child: Center(child: iconWidget), + ); + } + + @override + Widget build(BuildContext context) { + return Align( + alignment: alignment, + child: InkWell( + borderRadius: BorderRadius.circular(borderRadius), + onTap: onTap, + child: Container( + width: width ?? double.infinity, + height: height, + margin: margin, + padding: padding, + decoration: BoxDecoration( + color: gradient == null ? backgroundColor : null, + gradient: gradient, + borderRadius: BorderRadius.circular(borderRadius), + border: Border.all( + color: borderColor, + width: borderWidth, + ), + boxShadow: boxShadow ?? + [ + BoxShadow( + // ignore: deprecated_member_use + color: Colors.black.withOpacity(0.05), + blurRadius: 10, + offset: const Offset(0, 4), + ), + ], + ), + + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + // ICON + if (iconPosition == IconPosition.left) ...[ + _buildIcon(), + const SizedBox(width: 8), + ], + + // TEXT + Expanded( + child: SingleChildScrollView( + physics: const NeverScrollableScrollPhysics(), + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + + // 🔥 ini ikut textAlign + crossAxisAlignment: titleAlign == TextAlign.right + ? CrossAxisAlignment.end + : titleAlign == TextAlign.center + ? CrossAxisAlignment.center + : CrossAxisAlignment.start, + + children: [ + Text( + title, + textAlign: titleAlign, + maxLines: titleMaxLines, + overflow: titleOverflow, + style: titleStyle ?? + const TextStyle( + fontFamily: 'Inter', + fontSize: 16, + fontWeight: FontWeight.w700, + color: Color(0xFF1E293B), + ), + ), + if (customSubtitle != null) ...[ + const SizedBox(height: 4), + customSubtitle!, + ] else if (subtitle != null) ...[ + const SizedBox(height: 4), + Text( + subtitle!, + textAlign: subtitleAlign, + maxLines: subtitleMaxLines, + overflow: subtitleOverflow, + style: subtitleStyle ?? + const TextStyle( + fontFamily: 'Inter', + fontSize: 14, + color: Color(0xFF64748B), + ), + ), + ], + ], + ), + ), + ), + if (iconPosition == IconPosition.right) ...[ + const SizedBox(width: 8), + _buildIcon(), + ], + ], + ), + ), + ), + ); + } +} \ No newline at end of file diff --git a/lib/dashboard/a_admin/widget/custom_textfield.dart b/lib/dashboard/a_admin/widget/custom_textfield.dart new file mode 100644 index 0000000..4d3053b --- /dev/null +++ b/lib/dashboard/a_admin/widget/custom_textfield.dart @@ -0,0 +1,102 @@ +import 'package:flutter/material.dart'; + +class CustomTextField extends StatefulWidget { + final TextEditingController controller; + final String label; + final String? hint; + final IconData? prefixIcon; + final Widget? suffixIcon; + + final bool isPassword; + final bool readOnly; + final bool enabled; + final TextInputType keyboardType; + final int maxLines; + + final String? Function(String?)? validator; + final void Function(String)? onChanged; + final VoidCallback? onTap; + + final Color borderColor; + final Color focusColor; + + const CustomTextField({ + super.key, + required this.controller, + required this.label, + this.hint, + this.prefixIcon, + this.suffixIcon, + this.isPassword = false, + this.readOnly = false, + this.enabled = true, + this.keyboardType = TextInputType.text, + this.maxLines = 1, + this.validator, + this.onChanged, + this.onTap, + this.borderColor = Colors.grey, + this.focusColor = Colors.blue, + }); + + @override + State createState() => _CustomTextFieldState(); +} + +class _CustomTextFieldState extends State { + bool obscureText = true; + + @override + Widget build(BuildContext context) { + return TextFormField( + controller: widget.controller, + obscureText: widget.isPassword ? obscureText : false, + readOnly: widget.readOnly, + enabled: widget.enabled, + keyboardType: widget.keyboardType, + maxLines: widget.isPassword ? 1 : widget.maxLines, + validator: widget.validator, + onChanged: widget.onChanged, + onTap: widget.onTap, + + decoration: InputDecoration( + labelText: widget.label, + hintText: widget.hint, + + prefixIcon: widget.prefixIcon != null + ? Icon(widget.prefixIcon) + : null, + + suffixIcon: widget.isPassword + ? IconButton( + icon: Icon( + obscureText + ? Icons.visibility_off + : Icons.visibility, + ), + onPressed: () { + setState(() { + obscureText = !obscureText; + }); + }, + ) + : widget.suffixIcon, + + border: OutlineInputBorder( + borderRadius: BorderRadius.circular(12), + borderSide: BorderSide(color: widget.borderColor), + ), + + enabledBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(12), + borderSide: BorderSide(color: widget.borderColor), + ), + + focusedBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(12), + borderSide: BorderSide(color: widget.focusColor, width: 2), + ), + ), + ); + } +} \ No newline at end of file diff --git a/lib/dashboard/a_admin/widget/time_helper.dart b/lib/dashboard/a_admin/widget/time_helper.dart new file mode 100644 index 0000000..2473897 --- /dev/null +++ b/lib/dashboard/a_admin/widget/time_helper.dart @@ -0,0 +1,19 @@ +import 'package:intl/intl.dart'; + +class TimeHelper { + static DateTime now() { + return DateTime.now(); + } + + static String getTime() { + return DateFormat('HH:mm').format(DateTime.now()); + } + + static String getDate() { + return DateFormat('dd-MM-yyyy').format(DateTime.now()); + } + + static String getDateTime() { + return DateFormat('dd MMM yyyy, HH:mm:ss').format(DateTime.now()); + } +} \ No newline at end of file diff --git a/lib/dashboard/a_admin/widget/ui_jam.dart b/lib/dashboard/a_admin/widget/ui_jam.dart new file mode 100644 index 0000000..e69de29 diff --git a/lib/dashboard/d_c_murid/bottom_bar/nav_bar.dart b/lib/dashboard/d_c_murid/bottom_bar/nav_bar.dart new file mode 100644 index 0000000..31a5d09 --- /dev/null +++ b/lib/dashboard/d_c_murid/bottom_bar/nav_bar.dart @@ -0,0 +1,100 @@ +import 'package:flutter/material.dart'; + +class BottomNavO extends StatelessWidget { + final int selectedIndex; + final Function(int) onTap; + + const BottomNavO({ + super.key, + required this.selectedIndex, + required this.onTap, + }); + + @override + Widget build(BuildContext context) { + return SizedBox( + height: 50, // Mengatur tinggi bar + child: BottomNavigationBar( + showSelectedLabels: false, + showUnselectedLabels: false, + selectedFontSize: 0, + unselectedFontSize: 0, + type: BottomNavigationBarType.fixed, + currentIndex: selectedIndex, + onTap: onTap, + + items: [ + BottomNavigationBarItem( + icon: Column( + mainAxisSize: MainAxisSize.min, + children: [ + Container( + padding: const EdgeInsets.symmetric(horizontal: 10, vertical: 2), + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10), + color: selectedIndex == 0 + ? Colors.blue + : const Color(0xFFF1F5F9), + ), + child: Image.asset( + selectedIndex == 0 + ? 'lib/assets/icons/w_note.png' + : 'lib/assets/icons/a_note.png', + width: 24, + height: 24, + ), + ), + if (selectedIndex == 0) const SizedBox(height: 2), + if (selectedIndex == 0) + const Text( + 'Absensi', + style: TextStyle( + fontSize: 10, + fontWeight: FontWeight.w500, + color: Colors.blue, + ), + ), + ], + ), + label: '', + ), + + BottomNavigationBarItem( + icon: Column( + mainAxisSize: MainAxisSize.min, + children: [ + Container( + padding: const EdgeInsets.symmetric(horizontal: 10, vertical: 2), + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10), + color: selectedIndex == 1 + ? Colors.blue + : const Color(0xFFF1F5F9), + ), + child: Image.asset( + selectedIndex == 1 + ? 'lib/assets/icons/w_add-p.png' + : 'lib/assets/icons/a_add-p.png', + width: 24, + height: 24, + ), + ), + if (selectedIndex == 1) const SizedBox(height: 2), + if (selectedIndex == 1) + const Text( + 'Izin', + style: TextStyle( + fontSize: 10, + fontWeight: FontWeight.w500, + color: Colors.blue, + ), + ), + ], + ), + label: '', + ), + ], + ), + ); + } +} diff --git a/lib/dashboard/d_c_murid/bottom_bar/nav_screen_o.dart b/lib/dashboard/d_c_murid/bottom_bar/nav_screen_o.dart new file mode 100644 index 0000000..b3fc602 --- /dev/null +++ b/lib/dashboard/d_c_murid/bottom_bar/nav_screen_o.dart @@ -0,0 +1,90 @@ +import 'package:flutter/material.dart'; +import 'package:shared_preferences/shared_preferences.dart'; +import 'package:apk/dashboard/d_c_murid/bottom_bar/nav_bar.dart'; +import 'package:apk/dashboard/d_c_murid/dashboard/absensi.dart'; +import 'package:apk/dashboard/d_c_murid/function/f_izin/form_izin.dart'; +import 'package:apk/dashboard/d_c_murid/function/FCM_absen.dart/fcm_notif.dart'; +import 'package:apk/dashboard/d_c_murid/function/FCM_absen.dart/grup_kelas_n.dart'; +import 'package:apk/dashboard/d_c_murid/function/FCM_absen.dart/grup_sekolah_n.dart'; +import 'package:apk/dashboard/d_c_murid/function/FCM_absen.dart/chat_private_n.dart'; +import 'package:apk/error_handler/connection.dart'; +import 'package:apk/session_timer/session_time.dart'; +import 'package:apk/closed_app/closed.dart'; + +typedef NavScreenM = MainScreenOrtu; +typedef MainScreenMurid = MainScreenOrtu; + +class MainScreenOrtu extends StatefulWidget { + const MainScreenOrtu({super.key}); + + @override + State createState() => _MainScreenOrtuState(); +} + +class _MainScreenOrtuState extends State { + int selectedIndex = 0; + + final List pages = [ + const AbsensiOrtu(), + const FormIzin(), + ]; + + @override + void initState() { + super.initState(); + NotificationFCM.init(); + _subscribeOutputAlat(); // filter ke user saat ini + GrupKelasNotification.init(); + GrupSekolahNotification.init(); + ChatPrivateNotification.init(); + + WidgetsBinding.instance.addPostFrameCallback((_) { + _checkInternetConnection(); + }); + } + + /// Subscribe output_alat hanya untuk user yang sedang login + Future _subscribeOutputAlat() async { + final prefs = await SharedPreferences.getInstance(); + // Prioritas: nama murid → nama guru + final nama = prefs.getString('murid_nama') ?? prefs.getString('guru_nama') ?? ''; + if (nama.isNotEmpty) { + NotificationFCM.subscribeOutputAlatForCurrentUser(nama); + } + } + + Future _checkInternetConnection() async { + bool hasConnection = await ConnectionHandler.checkConnection(); + if (!hasConnection && mounted) { + ConnectionHandler.showNoConnectionDialog( + context: context, + onRetry: () => _checkInternetConnection(), + ); + } + } + + void onItemTapped(int index) { + setState(() { + selectedIndex = index; + }); + } + + @override + Widget build(BuildContext context) { + return SessionTimeManager( + child: WillPopScope( + onWillPop: () => handleDoubleTapToExit(context), + child: Scaffold( + body: IndexedStack( + index: selectedIndex, + children: pages, + ), + bottomNavigationBar: BottomNavO( + selectedIndex: selectedIndex, + onTap: onItemTapped, + ), + ), + ), + ); + } +} diff --git a/lib/dashboard/d_c_murid/dashboard/absensi.dart b/lib/dashboard/d_c_murid/dashboard/absensi.dart new file mode 100644 index 0000000..ad598f2 --- /dev/null +++ b/lib/dashboard/d_c_murid/dashboard/absensi.dart @@ -0,0 +1,432 @@ +import 'dart:async'; +import 'package:flutter/material.dart'; +import 'package:shared_preferences/shared_preferences.dart'; +import 'package:supabase_flutter/supabase_flutter.dart'; +import 'package:apk/dashboard/d_c_murid/function/f_Pesan/dash_pesan.dart'; +import 'package:apk/dashboard/d_c_murid/function/setting/setting_data.dart'; +import 'package:apk/dashboard/d_c_murid/function/FCM_absen.dart/fcm_notif.dart'; +import 'package:apk/dashboard/d_c_murid/function/absen/absen_preview.dart'; +import 'package:apk/dashboard/d_c_murid/function/absen/absen_history.dart'; +import 'package:apk/dashboard/d_c_murid/function/p_pengumuman.dart/preview_p.dart'; +import 'package:apk/dashboard/d_c_murid/function/FCM_absen.dart/grup_sekolah_n.dart'; +import 'package:apk/dashboard/d_c_murid/function/FCM_absen.dart/grup_kelas_n.dart'; +import 'package:apk/dashboard/d_c_murid/function/FCM_absen.dart/chat_private_n.dart'; +import 'package:apk/session_timer/session_time.dart'; +import 'package:apk/closed_app/closed.dart'; +import 'package:apk/error_handler/connection.dart'; + +class AbsensiOrtu extends StatefulWidget { + const AbsensiOrtu({super.key}); + + @override + State createState() => _AbsensiOrtuState(); +} + +class _AbsensiOrtuState extends State { + String studentName = 'Memuat...'; + String studentNis = '...'; + bool isLoading = false; + int _refreshKey = 0; + StreamSubscription>>? _scanSubscription; + + @override + void initState() { + super.initState(); + _fetchStudentData(); + _listenToNewScans(); + } + + @override + void dispose() { + _scanSubscription?.cancel(); + super.dispose(); + } + + final Set _knownScanIds = {}; + + /// Dengarkan scan baru dari output_alat agar tampilan Rekap Kehadiran langsung ter-update otomatis + void _listenToNewScans() { + try { + _scanSubscription = Supabase.instance.client + .from('output_alat') + .stream(primaryKey: ['id']) + .order('created_at', ascending: false) + .listen((rows) { + if (rows.isEmpty || !mounted) return; + + if (_knownScanIds.isEmpty) { + for (final r in rows) { + final id = r['id']?.toString(); + if (id != null) _knownScanIds.add(id); + } + return; + } + + bool hasNew = false; + for (final r in rows) { + final id = r['id']?.toString(); + if (id != null && !_knownScanIds.contains(id)) { + _knownScanIds.add(id); + hasNew = true; + } + } + + if (hasNew && mounted) { + setState(() { + _refreshKey++; + }); + } + }); + } catch (e) { + debugPrint('[AbsensiOrtu] Stream scan error: $e'); + } + } + + Future _fetchStudentData() async { + final hasConn = await ConnectionHandler.checkConnection(); + if (!hasConn) { + if (mounted) { + setState(() { + studentName = 'Tidak ada koneksi internet'; + studentNis = '-'; + isLoading = false; + }); + ConnectionHandler.showNoConnectionDialog( + context: context, + onRetry: () { + setState(() { + isLoading = true; + }); + _fetchStudentData(); + }, + ); + } + return; + } + + try { + final prefs = await SharedPreferences.getInstance(); + final nis = prefs.getString('murid_nis'); + final userId = prefs.getString('user_id_admin'); + + if (nis != null && userId != null) { + final response = await Supabase.instance.client + .from('murid') + .select() + .eq('user_id', userId) + .eq('nis', nis) + .single(); + + setState(() { + _refreshKey = _refreshKey + 1; + // Cari kolom yang mengandung 'nama' atau 'name' + String? nameValue; + for (var key in response.keys) { + if (key.toLowerCase().contains('nama') || key.toLowerCase().contains('name')) { + nameValue = response[key].toString(); + break; + } + } + studentName = nameValue ?? 'Tanpa Nama'; + studentNis = response['nis']?.toString() ?? nis; + + if (nameValue != null) { + prefs.setString('murid_nama', nameValue); + } + }); + } else { + setState(() { + studentName = 'Belum login (NIS/User ID kosong)'; + studentNis = '-'; + }); + } + } catch (e) { + setState(() { + studentName = 'Error: $e'; + studentNis = '-'; + }); + } finally { + if (mounted) { + setState(() { + isLoading = false; + }); + } + } + } + + @override + Widget build(BuildContext context) { + return SessionTimeManager( + child: WillPopScope( + onWillPop: () => handleDoubleTapToExit(context), + child: Scaffold( + backgroundColor: const Color(0xFFF8FAFC), + appBar: AppBar( + //toolbarHeight: 100, + titleSpacing: 20, + title: const Text('Info Siswa'), + titleTextStyle: const TextStyle( + fontFamily: 'Inter', + fontSize: 14, + fontWeight: FontWeight.w700, + color: Colors.white, + ), + backgroundColor: const Color(0xFF2563EB), + elevation: 0, + actions: [ + Padding( + padding: const EdgeInsets.only(right: 10.0), + child: IconButton( + icon: isLoading + ? const SizedBox(width: 20, height: 20, child: CircularProgressIndicator(color: Colors.white, strokeWidth: 2)) + : const Icon(Icons.refresh, color: Colors.white), + onPressed: isLoading + ? null + : () { + setState(() { + isLoading = true; + }); + _fetchStudentData(); + }, + ), + ), + ], + ), + body: SingleChildScrollView( + child: Padding( + padding: const EdgeInsets.all(24.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + const SizedBox(height: 10), + // Menu Buttons Row + Row( + crossAxisAlignment: CrossAxisAlignment.start, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + _buildMenuButton( + icon: Icons.assignment_turned_in_outlined, + label: 'Info Absen Siswa', + onTap: () { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => AbsenHistory(nis: studentNis), + ), + ); + }, + ), + const SizedBox(width: 32), + ValueListenableBuilder( + valueListenable: GrupSekolahNotification.hasUnread, + builder: (context, unreadSekolah, child) { + return ValueListenableBuilder( + valueListenable: GrupKelasNotification.hasUnread, + builder: (context, unreadKelas, child) { + return ValueListenableBuilder( + valueListenable: ChatPrivateNotification.hasUnread, + builder: (context, unreadPrivate, child) { + final hasAnyUnread = unreadSekolah || unreadKelas || unreadPrivate; + return _buildMenuButton( + icon: Icons.chat_bubble_outline_rounded, + label: 'Grup Chat', + showBadge: hasAnyUnread, + onTap: () { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => const DashPesan(), + ), + ); + }, + ); + }, + ); + }, + ); + }, + ), + ], + ), + const SizedBox(height: 40), + // Student Info Card + Container( + padding: const EdgeInsets.all(20), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(20), + boxShadow: [ + BoxShadow( + color: Colors.black.withOpacity(0.05), + blurRadius: 10, + offset: const Offset(0, 4), + ), + ], + ), +child: Row( + children: [ + // Avatar + + + // Info + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + studentName, + style: const TextStyle( + fontFamily: 'Inter', + fontSize: 12, + fontWeight: FontWeight.bold, + color: Color(0xFF1E293B), + ), + ), + const SizedBox(height: 8), + Row( + children: [ + const Text( + 'NIS:', + style: TextStyle( + fontFamily: 'Inter', + fontSize: 12, + color: Color(0xFF64748B), + ), + ), + const SizedBox(width: 8), + Container( + padding: const EdgeInsets.symmetric( + horizontal: 10, + vertical: 4, + ), + decoration: BoxDecoration( + color: const Color(0xFFEFF6FF), + borderRadius: BorderRadius.circular(8), + ), + child: Text( + studentNis, + style: const TextStyle( + fontFamily: 'Inter', + fontSize: 12, + fontWeight: FontWeight.bold, + color: Color(0xFF2563EB), + ), + ), + ), + ], + ), + ], + ), + ), + + const SizedBox(width: 8), + + // Setting icon di kanan + IconButton( + icon: const Icon(Icons.settings_outlined, color: Color(0xFF64748B)), + tooltip: 'Pengaturan Profil', + onPressed: () { + Navigator.push( + context, + MaterialPageRoute(builder: (context) => const SettingDataOrtu()), + ).then((_) => _fetchStudentData()); + }, + ), + ], +), + ), + const SizedBox(height: 30), + // Rekap Kehadiran + const Text( + 'Rekap Kehadiran', + style: TextStyle( + fontFamily: 'Inter', + fontSize: 12, + fontWeight: FontWeight.bold, + color: Color(0xFF1E293B), + ), + ), + const SizedBox(height: 16), + AbsenPreview( + key: ValueKey('${studentNis}_$_refreshKey'), + nis: studentNis, + ), + ], + ), + ), + ), + ), + ), + ); + } + + + + Widget _buildMenuButton({ + required IconData icon, + required String label, + required VoidCallback onTap, + bool showBadge = false, + }) { + return GestureDetector( + onTap: onTap, + child: SizedBox( + width: 100, // Fixed width to handle wrapping consistently + child: Column( + children: [ + Stack( + clipBehavior: Clip.none, + children: [ + Container( + width: 64, + height: 64, + decoration: BoxDecoration( + color: const Color(0xFF8C9DCD), + borderRadius: BorderRadius.circular(20), + boxShadow: [ + BoxShadow( + color: const Color(0xFF8C9DCD).withOpacity(0.5), + blurRadius: 15, + offset: const Offset(0, 5), + ), + ], + ), + child: Icon( + icon, + color: Colors.white, + size: 32, + ), + ), + if (showBadge) + Positioned( + top: -2, + right: -2, + child: Container( + width: 14, + height: 14, + decoration: BoxDecoration( + color: Colors.red, + shape: BoxShape.circle, + border: Border.all(color: Colors.white, width: 2), + ), + ), + ), + ], + ), + const SizedBox(height: 12), + Text( + label, + textAlign: TextAlign.center, + style: const TextStyle( + fontFamily: 'Inter', + fontSize: 12, + fontWeight: FontWeight.w700, + color: Color(0xFF1E293B), + ), + ), + ], + ), + ), + ); + } +} diff --git a/lib/dashboard/d_c_murid/dashboard/leave_request.dart b/lib/dashboard/d_c_murid/dashboard/leave_request.dart new file mode 100644 index 0000000..988ad2b --- /dev/null +++ b/lib/dashboard/d_c_murid/dashboard/leave_request.dart @@ -0,0 +1,578 @@ +// Removed dart:io +import 'package:flutter/material.dart'; +import 'package:intl/intl.dart'; +import 'package:shared_preferences/shared_preferences.dart'; +import 'package:supabase_flutter/supabase_flutter.dart'; +import 'package:file_picker/file_picker.dart'; +import 'package:apk/dashboard/d_c_murid/database/db_izin.dart'; +import 'package:apk/dashboard/d_c_murid/bottom_bar/nav_screen_o.dart'; +import 'package:apk/session_timer/session_time.dart'; +import 'package:apk/closed_app/closed.dart'; +import 'package:apk/error_handler/connection.dart'; + +class LeaveRequest extends StatefulWidget { + const LeaveRequest({super.key}); + + @override + State createState() => _LeaveRequestState(); +} + +class _LeaveRequestState extends State { + final TextEditingController _keteranganController = TextEditingController(); + + DateTime? _startDate; + DateTime? _endDate; + PlatformFile? _selectedFile; + String _ketOpsi = 'izin'; // 'izin' or 'sakit' + + bool _isLoadingData = true; + bool _isSubmitting = false; + + String? _userIdAdmin; + String? _studentNis; + String? _idMurid; + String? _idGuru; + String? _idClass; + String _studentName = ''; + + @override + void initState() { + super.initState(); + _fetchUserData(); + } + + Future _fetchUserData() async { + final hasConn = await ConnectionHandler.checkConnection(); + if (!hasConn) { + if (mounted) { + setState(() => _isLoadingData = false); + ConnectionHandler.showNoConnectionDialog( + context: context, + onRetry: () { + setState(() => _isLoadingData = true); + _fetchUserData(); + }, + ); + } + return; + } + + try { + final prefs = await SharedPreferences.getInstance(); + _studentNis = prefs.getString('murid_nis'); + _userIdAdmin = prefs.getString('user_id_admin'); + + if (_studentNis != null && _userIdAdmin != null) { + final response = await Supabase.instance.client + .from('murid') + .select() + .eq('user_id', _userIdAdmin!) + .eq('nis', _studentNis!) + .single(); + + String? nameValue; + for (var key in response.keys) { + if (key.toLowerCase().contains('nama') || key.toLowerCase().contains('name')) { + nameValue = response[key].toString(); + break; + } + } + final resolvedStudentName = nameValue ?? 'Tanpa Nama'; + final resolvedIdMurid = response['id_tabel']?.toString(); + final resolvedIdClass = response['id_class']?.toString(); + + String? resolvedIdGuru; + + debugPrint("DIAGNOSTICS: Murid Row fetched from Supabase: $response"); + + // 1. Coba cari Wali Kelas dari tabel class_name + if (resolvedIdClass != null) { + try { + final classRes = await Supabase.instance.client + .from('class_name') + .select('id_guru') + .eq('id_tabel', resolvedIdClass) + .maybeSingle(); + debugPrint("DIAGNOSTICS: class_name search result for class ID $resolvedIdClass: $classRes"); + if (classRes != null && classRes['id_guru'] != null) { + resolvedIdGuru = classRes['id_guru']?.toString(); + } + } catch (err) { + debugPrint("Error looking up Wali Kelas from class_name: $err"); + } + } + + // 2. Fallback: Coba cari dari tabel guru di mana id_class = resolvedIdClass + if (resolvedIdGuru == null && resolvedIdClass != null) { + try { + final guruRes = await Supabase.instance.client + .from('guru') + .select('id_tabel') + .eq('id_class', resolvedIdClass) + .eq('wali', true) + .maybeSingle(); + debugPrint("DIAGNOSTICS: guru search result for class ID $resolvedIdClass: $guruRes"); + if (guruRes != null) { + resolvedIdGuru = guruRes['id_tabel']?.toString(); + } + } catch (err) { + debugPrint("Error looking up Wali Kelas from guru table: $err"); + } + } + + if (resolvedIdGuru == null) { + debugPrint("DIAGNOSTICS WARNING: Wali kelas is still null. Murid ID: $resolvedIdMurid, Class ID: $resolvedIdClass"); + } + + setState(() { + _studentName = resolvedStudentName; + _idMurid = resolvedIdMurid; + _idGuru = resolvedIdGuru; + _idClass = resolvedIdClass; + _isLoadingData = false; + }); + } else { + setState(() { + _studentName = 'Belum login (NIS tidak ditemukan)'; + _isLoadingData = false; + }); + } + } catch (e) { + debugPrint("DIAGNOSTICS ERROR: _fetchUserData failed with: $e"); + setState(() { + _studentName = 'Error memuat data profil: $e'; + _isLoadingData = false; + }); + } + } + + Future _pickDate(BuildContext context, bool isStart) async { + final DateTime? picked = await showDatePicker( + context: context, + initialDate: DateTime.now(), + firstDate: DateTime.now().subtract(const Duration(days: 30)), + lastDate: DateTime.now().add(const Duration(days: 365)), + builder: (context, child) { + return Theme( + data: Theme.of(context).copyWith( + colorScheme: const ColorScheme.light( + primary: Color(0xFF2563EB), + ), + ), + child: child!, + ); + }, + ); + + if (picked != null) { + setState(() { + if (isStart) { + _startDate = picked; + // Validasi jika tanggal akhir lebih kecil dari tanggal mulai + if (_endDate != null && _endDate!.isBefore(_startDate!)) { + _endDate = null; + } + } else { + _endDate = picked; + } + }); + } + } + + Future _pickFile() async { + FilePickerResult? result = await FilePicker.pickFiles( + type: FileType.custom, + allowedExtensions: ['jpg', 'png', 'jpeg', 'pdf'], + withData: true, // Sangat penting untuk support Web + ); + + if (result != null && result.files.isNotEmpty) { + setState(() { + _selectedFile = result.files.first; + }); + } + } + + Future _submitData() async { + final hasConn = await ConnectionHandler.checkConnection(); + if (!hasConn) { + if (mounted) { + ConnectionHandler.showNoConnectionDialog( + context: context, + onRetry: () { + // Can be retried by clicking submit again + }, + ); + } + return; + } + + if (_idMurid == null || _userIdAdmin == null) { + ScaffoldMessenger.of(context).showSnackBar(const SnackBar(content: Text('Gagal: Data profil tidak lengkap! Coba muat ulang aplikasi.'))); + return; + } + + if (_startDate == null || _endDate == null || _keteranganController.text.isEmpty) { + ScaffoldMessenger.of(context).showSnackBar(const SnackBar(content: Text('Harap lengkapi isi tanggal dan keterangan izin'))); + return; + } + + if (_selectedFile == null) { + ScaffoldMessenger.of(context).showSnackBar(const SnackBar(content: Text('Harap unggah foto/dokumen surat izin'))); + return; + } + + setState(() { + _isSubmitting = true; + }); + + try { + final dbIzin = DbIzin(); + + // Pastikan file memiliki bytes (khususnya untuk Web) + if (_selectedFile!.bytes == null) { + throw Exception("Gagal membaca data file."); + } + + // Ambil Supabase Current User ID agar lolos dari RLS Policy + final currentUserId = Supabase.instance.client.auth.currentUser?.id ?? _userIdAdmin!; + + // Upload File ke Supabase Storage (doc_izin/auth_id/nis/filename) + final lampiranUrl = await dbIzin.uploadIzinFile(currentUserId, _studentNis!, _selectedFile!.bytes!, _selectedFile!.name); + + // Insert to Table leave_request + final data = { + 'tanggal_mulai': DateFormat('yyyy-MM-dd').format(_startDate!), + 'tanggal_selesai': DateFormat('yyyy-MM-dd').format(_endDate!), + 'keterangan': _keteranganController.text, + 'verif': null, // default is null (pending) + 'id_murid': _idMurid, + 'nama_murid': _studentName, + 'id_guru': _idGuru, // Memasukkan ID Guru dari tabel murid untuk verifikasi wali kelas + 'user_id': currentUserId, + 'id_kelas': _idClass, + 'ket_opsi': _ketOpsi, + }; + + final inserted = await dbIzin.submitIzin(data); + final idIzin = inserted['id_tabel']; + + // Kirim pesan privat ke Wali Kelas + if (_idGuru == null || _idGuru!.isEmpty) { + throw Exception("Wali kelas tidak ditemukan. (Debug: id_murid=$_idMurid, id_class=$_idClass, id_guru=$_idGuru)"); + } + + final startDateStr = DateFormat('dd MMM yyyy').format(_startDate!); + final endDateStr = DateFormat('dd MMM yyyy').format(_endDate!); + final jenisLabel = _ketOpsi == 'sakit' ? 'Sakit' : 'Izin'; + final textPesanPrivate = "📋 *Pengajuan Izin*\nJenis: $jenisLabel\nNama: $_studentName\nTanggal: $startDateStr s/d $endDateStr\nKeterangan: ${_keteranganController.text}\nLampiran: $lampiranUrl\nID_IZIN: $idIzin"; + + await Supabase.instance.client.from('chat_private').insert({ + 'text': textPesanPrivate, + 'pengirim_murid': _idMurid, + 'penerima_guru': _idGuru, + 'user_id': currentUserId, + 'id_izin': idIzin, + }); + + if (mounted) { + ScaffoldMessenger.of(context).showSnackBar(const SnackBar(content: Text('Izin berhasil diajukan!'))); + + // Reload halaman dengan kembali ke MainScreenOrtu (beranda) + Navigator.pushAndRemoveUntil( + context, + MaterialPageRoute(builder: (context) => MainScreenOrtu()), + (route) => false, + ); + } + } catch (e) { + if (mounted) { + ScaffoldMessenger.of(context).showSnackBar(SnackBar(content: Text('Terjadi kesalahan: $e'))); + } + } finally { + if (mounted) { + setState(() { + _isSubmitting = false; + }); + } + } + } + + @override + Widget build(BuildContext context) { + return SessionTimeManager( + child: WillPopScope( + onWillPop: () => handleDoubleTapToExit(context), + child: Scaffold( + backgroundColor: const Color(0xFFF8FAFC), + appBar: AppBar( + titleSpacing: 20, + title: const Text('Pengajuan Izin'), + titleTextStyle: const TextStyle( + fontFamily: 'Inter', + fontSize: 16, + fontWeight: FontWeight.w700, + color: Colors.white, + ), + backgroundColor: const Color(0xFF2563EB), + elevation: 0, + iconTheme: const IconThemeData(color: Colors.white), + ), + body: _isLoadingData + ? const Center(child: CircularProgressIndicator()) + : SingleChildScrollView( + padding: const EdgeInsets.all(24.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + // Nama Field (Read Only) + _buildLabel('Nama'), + _buildReadOnlyField(_studentName), + const SizedBox(height: 20), + + // Tanggal Mulai + _buildLabel('Tanggal Mulai'), + GestureDetector( + onTap: () => _pickDate(context, true), + child: _buildDateBox(_startDate), + ), + const SizedBox(height: 20), + + // Tanggal Selesai + _buildLabel('Tanggal Selesai'), + GestureDetector( + onTap: () => _pickDate(context, false), + child: _buildDateBox(_endDate), + ), + const SizedBox(height: 20), + + // Pilihan Izin / Sakit (ket_opsi) + _buildLabel('Pilihan Izin (Izin / Sakit)'), + Row( + children: [ + Expanded( + child: ChoiceChip( + label: const Center(child: Text('Izin')), + selected: _ketOpsi == 'izin', + selectedColor: const Color(0xFF2563EB), + checkmarkColor: Colors.white, + labelStyle: TextStyle( + fontFamily: 'Inter', + color: _ketOpsi == 'izin' ? Colors.white : Colors.black87, + fontWeight: FontWeight.bold, + ), + onSelected: (selected) { + if (selected) setState(() => _ketOpsi = 'izin'); + }, + ), + ), + const SizedBox(width: 12), + Expanded( + child: ChoiceChip( + label: const Center(child: Text('Sakit')), + selected: _ketOpsi == 'sakit', + selectedColor: const Color(0xFF2563EB), + checkmarkColor: Colors.white, + labelStyle: TextStyle( + fontFamily: 'Inter', + color: _ketOpsi == 'sakit' ? Colors.white : Colors.black87, + fontWeight: FontWeight.bold, + ), + onSelected: (selected) { + if (selected) setState(() => _ketOpsi = 'sakit'); + }, + ), + ), + ], + ), + const SizedBox(height: 20), + + // Keterangan Izin + _buildLabel('Keterangan Izin'), + TextFormField( + controller: _keteranganController, + maxLines: 4, + decoration: InputDecoration( + hintText: 'Jelaskan alasan izin...', + hintStyle: const TextStyle(color: Color(0xFF94A3B8), fontSize: 14), + filled: true, + fillColor: Colors.white, + border: OutlineInputBorder( + borderRadius: BorderRadius.circular(12), + borderSide: const BorderSide(color: Color(0xFFE2E8F0)), + ), + enabledBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(12), + borderSide: const BorderSide(color: Color(0xFFE2E8F0)), + ), + focusedBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(12), + borderSide: const BorderSide(color: Color(0xFF2563EB)), + ), + ), + ), + const SizedBox(height: 24), + + // Upload Surat Izin + _buildLabel('Foto Surat Izin'), + GestureDetector( + onTap: _pickFile, + child: Container( + width: double.infinity, + padding: const EdgeInsets.symmetric(vertical: 30), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(16), + border: Border.all( + color: const Color(0xFFE2E8F0), + style: BorderStyle.solid, + width: 1, + ), + ), + child: Column( + children: [ + Container( + padding: const EdgeInsets.all(12), + decoration: const BoxDecoration( + color: Color(0xFFEFF6FF), + shape: BoxShape.circle, + ), + child: const Icon( + Icons.file_upload_outlined, + color: Color(0xFF2563EB), + size: 32, + ), + ), + const SizedBox(height: 16), + Text( + _selectedFile != null + ? _selectedFile!.name + : 'Upload Foto / Dokumen', + textAlign: TextAlign.center, + style: TextStyle( + fontFamily: 'Inter', + fontSize: 14, + fontWeight: FontWeight.w600, + color: _selectedFile != null ? const Color(0xFF1E293B) : const Color(0xFF475569), + ), + ), + const SizedBox(height: 4), + const Text( + 'Tap untuk memilih file', + style: TextStyle( + fontFamily: 'Inter', + fontSize: 12, + color: Color(0xFF94A3B8), + ), + ), + ], + ), + ), + ), + const SizedBox(height: 40), + + // Submit Button + SizedBox( + width: double.infinity, + height: 52, + child: ElevatedButton( + onPressed: _isSubmitting ? null : _submitData, + style: ElevatedButton.styleFrom( + backgroundColor: const Color(0xFF2563EB), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(12), + ), + ), + child: _isSubmitting + ? const SizedBox( + width: 24, + height: 24, + child: CircularProgressIndicator(color: Colors.white, strokeWidth: 2), + ) + : const Text( + 'Ajukan Izin', + style: TextStyle( + fontFamily: 'Inter', + fontSize: 16, + fontWeight: FontWeight.bold, + color: Colors.white, + ), + ), + ), + ), + const SizedBox(height: 20), + ], + ), + ), + ), + ), + ); + } + + Widget _buildLabel(String text) { + return Padding( + padding: const EdgeInsets.only(bottom: 8.0), + child: Text( + text, + style: const TextStyle( + fontFamily: 'Inter', + fontSize: 14, + fontWeight: FontWeight.bold, + color: Color(0xFF334155), + ), + ), + ); + } + + Widget _buildReadOnlyField(String text) { + return Container( + width: double.infinity, + padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 16), + decoration: BoxDecoration( + color: const Color(0xFFF1F5F9), + borderRadius: BorderRadius.circular(12), + border: Border.all(color: const Color(0xFFE2E8F0)), + ), + child: Text( + text, + style: const TextStyle( + fontFamily: 'Inter', + fontSize: 14, + color: Color(0xFF475569), + ), + ), + ); + } + + Widget _buildDateBox(DateTime? date) { + return Container( + width: double.infinity, + padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 16), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(12), + border: Border.all(color: const Color(0xFFE2E8F0)), + ), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Row( + children: [ + const Icon(Icons.calendar_today_outlined, color: Color(0xFF94A3B8), size: 20), + const SizedBox(width: 12), + Text( + date != null ? DateFormat('MM/dd/yyyy').format(date) : 'mm/dd/yyyy', + style: TextStyle( + fontFamily: 'Inter', + fontSize: 14, + color: date != null ? const Color(0xFF1E293B) : const Color(0xFF94A3B8), + ), + ), + ], + ), + const Icon(Icons.calendar_month, color: Color(0xFF1E293B), size: 20), + ], + ), + ); + } +} diff --git a/lib/dashboard/d_c_murid/database/auth_ortu.dart b/lib/dashboard/d_c_murid/database/auth_ortu.dart new file mode 100644 index 0000000..acd7542 --- /dev/null +++ b/lib/dashboard/d_c_murid/database/auth_ortu.dart @@ -0,0 +1,51 @@ +import 'package:supabase_flutter/supabase_flutter.dart'; +import 'package:shared_preferences/shared_preferences.dart'; +import 'package:apk/dashboard/d_c_murid/function/FCM_absen.dart/fcm_notif.dart'; + +class AuthOrtu { + final _supabase = Supabase.instance.client; + + Future> signInOrtu(String email, String nis) async { + try { + // 1. Resolve user_id (UUID) from the admin's email in user_admin + final adminRes = await _supabase + .from('user_admin') + .select('id') + .eq('email', email.trim()) + .maybeSingle(); + + if (adminRes == null) { + throw Exception('Email admin tidak ditemukan.'); + } + + final userId = adminRes['id'].toString(); + + // 2. Query murid with the resolved user_id and nis + final response = await _supabase + .from('murid') + .select() + .eq('user_id', userId) + .eq('nis', nis) + .single(); + + if (response['status_akun'] == false) { + throw Exception('Akun murid telah dinonaktifkan.'); + } + + final prefs = await SharedPreferences.getInstance(); + await prefs.setString('user_role', 'ortu'); + await prefs.setString('murid_nis', nis); + await prefs.setString('user_id_admin', userId); + + final nameValue = response['nama'] ?? ''; + await prefs.setString('murid_nama', nameValue); + await prefs.setString('murid_id_tabel', response['id_tabel'].toString()); + return response; + } catch (e) { + if (e.toString().contains('dinonaktifkan')) { + rethrow; + } + throw Exception('Login gagal: Periksa Email Admin dan NIS'); + } + } +} diff --git a/lib/dashboard/d_c_murid/database/db_absensi.dart b/lib/dashboard/d_c_murid/database/db_absensi.dart new file mode 100644 index 0000000..d460c6c --- /dev/null +++ b/lib/dashboard/d_c_murid/database/db_absensi.dart @@ -0,0 +1,264 @@ +import 'package:supabase_flutter/supabase_flutter.dart'; +import 'package:intl/intl.dart'; + +import 'holiday_service.dart'; + +class DbAbsensi { + final SupabaseClient _supabase = Supabase.instance.client; + + Future>> getAbsensi(String nisOrId) async { + try { + String idMurid = nisOrId; + String? studentNis; + String? userId; + String? studentName; + + final isNumeric = RegExp(r'^\d+$').hasMatch(nisOrId); + if (isNumeric) { + final res = await _supabase + .from('murid') + .select('id_tabel, user_id, nis, nama') + .eq('nis', nisOrId) + .maybeSingle(); + if (res != null) { + idMurid = res['id_tabel'].toString(); + userId = res['user_id']?.toString(); + studentNis = res['nis']?.toString(); + studentName = res['nama']?.toString(); + } + } else { + final res = await _supabase + .from('murid') + .select('user_id, nis, nama') + .eq('id_tabel', nisOrId) + .maybeSingle(); + if (res != null) { + userId = res['user_id']?.toString(); + studentNis = res['nis']?.toString(); + studentName = res['nama']?.toString(); + } + } + + // Query absen tanpa join access_bridge (tidak dipakai lagi) + final response = await _supabase + .from('absen') + .select('*, leave_request:id_izin(*), output_alat:id_output_alat(*), murid:id_murid(*), pengumuman:id_pengumuman(*)') + .eq('id_murid', idMurid) + .order('date', ascending: false); + + // Fetch approved leave requests + List> leaveResponse = []; + if (idMurid.isNotEmpty) { + try { + final res = await _supabase + .from('leave_request') + .select('*') + .eq('id_murid', idMurid) + .eq('verif', true); + leaveResponse = List>.from(res); + } catch (_) {} + } + + final Map> consolidatedLeave = {}; + for (var req in leaveResponse) { + final startStr = req['tanggal_mulai']?.toString(); + final endStr = req['tanggal_selesai']?.toString(); + if (startStr == null || endStr == null) continue; + try { + final start = DateTime.parse(startStr); + final end = DateTime.parse(endStr); + for (int d = 0; d <= end.difference(start).inDays; d++) { + final currentDate = start.add(Duration(days: d)); + final dateKey = DateFormat('yyyy-MM-dd').format(currentDate); + consolidatedLeave[dateKey] = { + 'id_tabel': req['id_tabel']?.toString(), + 'ket_opsi': req['ket_opsi']?.toString() ?? 'izin', + }; + } + } catch (_) {} + } + + final Map studentMuridMap = { + 'id_tabel': idMurid, + 'user_id': userId, + 'nis': studentNis, + 'nama': studentName, + }; + + return _mergeAbsenData(response, idMurid, studentMuridMap, consolidatedLeave); + } catch (e) { + throw Exception('Gagal memuat data absensi: $e'); + } + } + + List> _mergeAbsenData( + List absenResponse, + String idMurid, + Map studentMuridMap, + Map> consolidatedLeave) { + + final List> mergedList = []; + final Set processedDates = {}; + + for (var item in absenResponse) { + final row = Map.from(item); + final dateKey = row['date']?.toString(); + + if (dateKey != null) { + processedDates.add(dateKey); + + // Ambil jam masuk dari output_alat.created_at + final outputAlat = row['output_alat']; + if (outputAlat != null && outputAlat['created_at'] != null) { + final formattedMasuk = _formatTime(outputAlat['created_at']); + if (formattedMasuk != null) { + row['masuk'] = formattedMasuk; + } + } + + // Inject leave_request jika belum ada dari FK + if (row['leave_request'] == null && consolidatedLeave.containsKey(dateKey)) { + final leave = consolidatedLeave[dateKey]!; + row['leave_request'] = { + 'id_tabel': leave['id_tabel'], + 'ket_opsi': leave['ket_opsi'], + 'verif': true, + }; + } + } + mergedList.add(row); + } + + // Tambahkan record izin yang tidak punya row absen + consolidatedLeave.forEach((dateKey, leave) { + if (!processedDates.contains(dateKey)) { + processedDates.add(dateKey); + mergedList.add({ + 'date': dateKey, + 'id_murid': idMurid, + 'masuk': null, + 'keluar': null, + 'output_alat': null, + 'murid': studentMuridMap, + 'leave_request': { + 'id_tabel': leave['id_tabel'], + 'ket_opsi': leave['ket_opsi'], + 'verif': true, + }, + 'pengumuman': null, + }); + } + }); + + mergedList.sort((a, b) { + final dateA = a['date']?.toString() ?? ''; + final dateB = b['date']?.toString() ?? ''; + return dateB.compareTo(dateA); + }); + + return mergedList; + } + + static String? _formatTime(dynamic timeVal) { + if (timeVal == null) return null; + final str = timeVal.toString().trim(); + if (str.isEmpty) return null; + + final parsed = DateTime.tryParse(str); + if (parsed != null) { + return DateFormat('HH:mm').format(parsed.toLocal()); + } + + final parts = str.split(':'); + if (parts.length >= 2) { + var hour = parts[0]; + if (hour.contains('T')) hour = hour.split('T').last; + hour = hour.padLeft(2, '0'); + var minute = parts[1]; + if (minute.length > 2) minute = minute.substring(0, 2); + minute = minute.padLeft(2, '0'); + return '$hour:$minute'; + } + return str; + } + + static String getStatus(Map row) { + // 0. Manual override (prioritas tertinggi) + if (row['Null_data']?.toString() == 'Belum Absen') return 'Belum Absen'; + if (row['ket_sakit']?.toString().startsWith('MANUAL_') ?? false) return 'Sakit'; + if (row['ket_izin']?.toString().startsWith('MANUAL_') ?? false) return 'Izin'; + if (row['ket_libur']?.toString().startsWith('MANUAL_') ?? false) return 'Libur'; + if (row['ket_alpha']?.toString().startsWith('MANUAL_') ?? false) return 'Alpha'; + if (row['ket_hadir']?.toString().startsWith('MANUAL_') ?? false) { + final kh = row['ket_hadir'].toString(); + if (kh.toLowerCase().contains('terlambat')) return 'Terlambat'; + return 'Hadir'; + } + + // 1. Izin dan Sakit dari leave_request yang terverifikasi + if (row['leave_request'] != null && row['leave_request']['verif'] == true) { + final ketOpsi = (row['leave_request']['ket_opsi'] ?? '').toString().toLowerCase(); + if (ketOpsi == 'sakit') return 'Sakit'; + if (ketOpsi == 'izin') return 'Izin'; + final ket = (row['leave_request']['keterangan'] ?? '').toString().toLowerCase(); + if (ket.contains('sakit')) return 'Sakit'; + return 'Izin'; + } + + if (row['ket_sakit'] != null && row['ket_sakit'].toString().isNotEmpty) return 'Sakit'; + if (row['ket_izin'] != null && row['ket_izin'].toString().isNotEmpty) return 'Izin'; + + // 2. Libur dari hari Minggu / pengumuman / tabel absen + final dateStr = row['date']?.toString() ?? ''; + bool isSundayOrHoliday = false; + if (dateStr.isNotEmpty) { + try { + final date = DateTime.parse(dateStr); + if (date.weekday == DateTime.sunday || HolidayService.isHoliday(date)) { + isSundayOrHoliday = true; + } + } catch (_) {} + } + + bool isPengumumanLibur = false; + if (row['pengumuman'] != null) { + final title = (row['pengumuman']['title'] ?? '').toString().toLowerCase(); + final keterangan = (row['pengumuman']['keterangan'] ?? '').toString().toLowerCase(); + if (title.contains('libur') || keterangan.contains('libur')) { + isPengumumanLibur = true; + } + } + + if (isSundayOrHoliday || isPengumumanLibur) return 'Libur'; + if (row['ket_libur'] != null && row['ket_libur'].toString().isNotEmpty) return 'Libur'; + + // 3. Hadir / Terlambat dari output_alat.created_at + final outputAlat = row['output_alat']; + if (outputAlat != null && outputAlat['created_at'] != null) { + final formattedMasuk = _formatTime(outputAlat['created_at']) ?? '07:00'; + if (formattedMasuk.trim().isNotEmpty) { + final parts = formattedMasuk.split(':'); + if (parts.length >= 2) { + final hour = int.tryParse(parts[0]) ?? 0; + final minute = int.tryParse(parts[1]) ?? 0; + if (hour > 7 || (hour == 7 && minute > 0)) return 'Terlambat'; + } + return 'Hadir'; + } + } + + // Fallback dari kolom absen langsung + if (row['ket_hadir'] != null && row['ket_hadir'].toString().isNotEmpty) { + final kh = row['ket_hadir'].toString(); + if (kh.toLowerCase().contains('terlambat')) return 'Terlambat'; + return 'Hadir'; + } + if (row['terlambat'] != null && row['terlambat'].toString().isNotEmpty) return 'Terlambat'; + if (row['masuk'] != null && row['masuk'].toString().isNotEmpty) return 'Hadir'; + + // 4. Alpha + if (row['ket_alpha'] != null && row['ket_alpha'].toString().isNotEmpty) return 'Alpha'; + + return 'Belum Absen'; + } +} diff --git a/lib/dashboard/d_c_murid/database/db_alat.dart b/lib/dashboard/d_c_murid/database/db_alat.dart new file mode 100644 index 0000000..031764e --- /dev/null +++ b/lib/dashboard/d_c_murid/database/db_alat.dart @@ -0,0 +1,6 @@ +import 'package:supabase_flutter/supabase_flutter.dart'; +import 'package:intl/intl.dart'; + +class DbAlat { + final SupabaseClient _supabase = Supabase.instance.client; +} diff --git a/lib/dashboard/d_c_murid/database/db_grup_kelas.dart b/lib/dashboard/d_c_murid/database/db_grup_kelas.dart new file mode 100644 index 0000000..3a1f76d --- /dev/null +++ b/lib/dashboard/d_c_murid/database/db_grup_kelas.dart @@ -0,0 +1,184 @@ +import 'package:apk/dashboard/d_c_murid/function/f_Pesan/doc_image.dart'; +import 'package:flutter/foundation.dart'; +import 'package:supabase_flutter/supabase_flutter.dart'; +import 'package:shared_preferences/shared_preferences.dart'; + +class DbGrupKelas { + static final supabase = Supabase.instance.client; + + static Future getUserIdAsync() async { + final prefs = await SharedPreferences.getInstance(); + final ortuId = prefs.getString('user_id_admin'); + if (ortuId != null) return ortuId; + + final id = supabase.auth.currentUser?.id; + if (id != null) return id; + + throw Exception('User belum login'); + } + + // Determine current user's role and corresponding table ID + static Future?> getCurrentUserRoleAndId() async { + try { + final prefs = await SharedPreferences.getInstance(); + final role = prefs.getString('user_role'); + + // 1. Cek Ortu/Murid (menggunakan SharedPreferences) + if (role == 'ortu' || role == 'murid') { + final nis = prefs.getString('murid_nis'); + final adminId = prefs.getString('user_id_admin'); + if (nis != null && adminId != null) { + final muridRes = await supabase + .from('murid') + .select('id_tabel, id_class, status_akun') + .eq('user_id', adminId) + .eq('nis', nis) + .maybeSingle(); + if (muridRes != null && muridRes['status_akun'] != false) { + return {'role': 'murid', 'id': muridRes['id_tabel'].toString(), 'id_class': muridRes['id_class']?.toString() ?? ''}; + } + } + return null; + } + + // 2. Cek Guru (menggunakan SharedPreferences) + if (role == 'guru') { + final nik = prefs.getString('guru_nik'); + final adminId = prefs.getString('user_id_admin'); + if (nik != null && adminId != null) { + final guruRes = await supabase + .from('guru') + .select('id_tabel, id_class, status_akun') + .eq('user_id', adminId) + .eq('nik', nik) + .maybeSingle(); + if (guruRes != null && guruRes['status_akun'] != false) { + String classId = guruRes['id_class']?.toString() ?? ''; + if (classId.isEmpty) { + // Fallback: look up class from class_name table where this teacher is Wali Kelas + final classRes = await supabase + .from('class_name') + .select('id_tabel') + .eq('id_guru', guruRes['id_tabel']) + .maybeSingle(); + if (classRes != null) { + classId = classRes['id_tabel']?.toString() ?? ''; + } + } + return {'role': 'guru', 'id': guruRes['id_tabel'].toString(), 'id_class': classId}; + } + } + return null; + } + + // 3. Cek Admin (menggunakan Supabase Auth) + final userId = supabase.auth.currentUser?.id; + if (userId == null) return null; + + final adminRes = await supabase + .from('user_admin') + .select('id') + .eq('id', userId) + .maybeSingle(); + if (adminRes != null) { + return {'role': 'admin', 'id': adminRes['id'].toString()}; + } + + } catch (e) { + if (kDebugMode) print('Check Role Error: $e'); + } + return null; + } + + // Ambil semua nama (Admin, Guru, Murid) untuk ditampilkan di chat + static Future> fetchAllNames() async { + final Map namesMap = {}; + try { + // Fetch Admin names + final admins = await supabase.from('user_admin').select('id, name'); + for (var a in admins) { + if (a['id'] != null && a['name'] != null) { + namesMap[a['id'].toString()] = a['name'].toString(); + } + } + + // Fetch Guru names + final gurus = await supabase + .from('guru') + .select('id_tabel, name') + .or('status_akun.is.null,status_akun.eq.true'); + for (var g in gurus) { + if (g['id_tabel'] != null && g['name'] != null) { + namesMap[g['id_tabel'].toString()] = g['name'].toString(); + } + } + + // Fetch Murid names + // Fetch Murid names + final murids = await supabase + .from('murid') + .select('id_tabel, nama') + .or('status_akun.is.null,status_akun.eq.true'); + for (var m in murids) { + if (m['id_tabel'] != null && m['nama'] != null) { + namesMap[m['id_tabel'].toString()] = m['nama'].toString(); + } + } + } catch (e) { + if (kDebugMode) print('Fetch Names Error: $e'); + } + return namesMap; + } + + Stream>> getGrupKelasStream(String idClass) { + deleteExpiredMessages(); + return supabase + .from('grup_kelas') + .stream(primaryKey: ['id_tabel']) + .order('created_at', ascending: true) + .map((data) => data + .where((msg) => msg['id_class']?.toString() == idClass) + .toList()); + } + + // Kirim Pesan + Future sendMessage({ + required String text, + required String senderId, + required String role, + required String idClass, + }) async { + try { + await deleteExpiredMessages(); + final userId = await getUserIdAsync(); + final Map insertData = { + 'text': text, + 'user_id': userId, + 'id_class': idClass, + }; + + if (role == 'admin') { + insertData['pengirim_admin'] = senderId; + } else if (role == 'guru') { + insertData['pengirim_guru'] = senderId; + } else if (role == 'murid') { + insertData['pengirim_murid'] = senderId; + } + + await supabase.from('grup_kelas').insert(insertData); + } catch (e) { + if (kDebugMode) print('Send Message Error: $e'); + throw Exception('Gagal mengirim pesan: $e'); + } + } + + // Hapus pesan grup kelas yang lebih lama dari 24 jam + static Future deleteExpiredMessages() async { + try { + final cutOff = DateTime.now().subtract(const Duration(hours: 24)).toUtc().toIso8601String(); + await supabase.from('grup_kelas').delete().lt('created_at', cutOff); + } catch (e) { + if (kDebugMode) print('Clean Group Class Messages Error: $e'); + } + } +} diff --git a/lib/dashboard/d_c_murid/database/db_grup_sekolah.dart b/lib/dashboard/d_c_murid/database/db_grup_sekolah.dart new file mode 100644 index 0000000..46960e5 --- /dev/null +++ b/lib/dashboard/d_c_murid/database/db_grup_sekolah.dart @@ -0,0 +1,167 @@ +import 'package:apk/dashboard/d_c_murid/function/f_Pesan/doc_image.dart'; +import 'package:flutter/foundation.dart'; +import 'package:supabase_flutter/supabase_flutter.dart'; +import 'package:shared_preferences/shared_preferences.dart'; + +class DbGrupSekolah { + static final supabase = Supabase.instance.client; + + static Future getUserIdAsync() async { + final prefs = await SharedPreferences.getInstance(); + final ortuId = prefs.getString('user_id_admin'); + if (ortuId != null) return ortuId; + + final id = supabase.auth.currentUser?.id; + if (id != null) return id; + + throw Exception('User belum login'); + } + + // Determine current user's role and corresponding table ID + static Future?> getCurrentUserRoleAndId() async { + try { + final prefs = await SharedPreferences.getInstance(); + final role = prefs.getString('user_role'); + + // 1. Cek Ortu/Murid (menggunakan SharedPreferences) + if (role == 'ortu' || role == 'murid') { + final nis = prefs.getString('murid_nis'); + final adminId = prefs.getString('user_id_admin'); + if (nis != null && adminId != null) { + final muridRes = await supabase + .from('murid') + .select('id_tabel, status_akun') + .eq('user_id', adminId) + .eq('nis', nis) + .maybeSingle(); + if (muridRes != null && muridRes['status_akun'] != false) { + return {'role': 'murid', 'id': muridRes['id_tabel'].toString()}; + } + } + return null; + } + + // 2. Cek Guru (menggunakan SharedPreferences) + if (role == 'guru') { + final nik = prefs.getString('guru_nik'); + final adminId = prefs.getString('user_id_admin'); + if (nik != null && adminId != null) { + final guruRes = await supabase + .from('guru') + .select('id_tabel, status_akun') + .eq('user_id', adminId) + .eq('nik', nik) + .maybeSingle(); + if (guruRes != null && guruRes['status_akun'] != false) { + return {'role': 'guru', 'id': guruRes['id_tabel'].toString()}; + } + } + return null; + } + + // 3. Cek Admin (menggunakan Supabase Auth) + final userId = supabase.auth.currentUser?.id; + if (userId == null) return null; + + final adminRes = await supabase + .from('user_admin') + .select('id') + .eq('id', userId) + .maybeSingle(); + if (adminRes != null) { + return {'role': 'admin', 'id': adminRes['id'].toString()}; + } + + } catch (e) { + if (kDebugMode) print('Check Role Error: $e'); + } + return null; + } + + // Ambil semua nama (Admin, Guru, Murid) untuk ditampilkan di chat + static Future> fetchAllNames() async { + final Map namesMap = {}; + try { + // Fetch Admin names + final admins = await supabase.from('user_admin').select('id, name'); + for (var a in admins) { + if (a['id'] != null && a['name'] != null) { + namesMap[a['id'].toString()] = a['name'].toString(); + } + } + + // Fetch Guru names + final gurus = await supabase + .from('guru') + .select('id_tabel, name') + .or('status_akun.is.null,status_akun.eq.true'); + for (var g in gurus) { + if (g['id_tabel'] != null && g['name'] != null) { + namesMap[g['id_tabel'].toString()] = g['name'].toString(); + } + } + + // Fetch Murid names + final murids = await supabase + .from('murid') + .select('id_tabel, nama') + .or('status_akun.is.null,status_akun.eq.true'); + for (var m in murids) { + if (m['id_tabel'] != null && m['nama'] != null) { + namesMap[m['id_tabel'].toString()] = m['nama'].toString(); + } + } + } catch (e) { + if (kDebugMode) print('Fetch Names Error: $e'); + } + return namesMap; + } + + // Stream chat global + Stream>> getGrupSekolahStream() { + deleteExpiredMessages(); + return supabase + .from('grup_sekolah') + .stream(primaryKey: ['id_tabel']) + .order('created_at', ascending: true); + } + + // Kirim Pesan + Future sendMessage({ + required String text, + required String senderId, + required String role, + }) async { + try { + await deleteExpiredMessages(); + final userId = await getUserIdAsync(); + final Map insertData = { + 'text': text, + 'user_id': userId, + }; + + if (role == 'admin') { + insertData['pengirim_admin'] = senderId; + } else if (role == 'guru') { + insertData['pengirim_guru'] = senderId; + } else if (role == 'murid') { + insertData['pengirim_murid'] = senderId; + } + + await supabase.from('grup_sekolah').insert(insertData); + } catch (e) { + if (kDebugMode) print('Send Message Error: $e'); + throw Exception('Gagal mengirim pesan: $e'); + } + } + + // Hapus pesan grup sekolah yang lebih lama dari 24 jam + static Future deleteExpiredMessages() async { + try { + final cutOff = DateTime.now().subtract(const Duration(hours: 24)).toUtc().toIso8601String(); + await supabase.from('grup_sekolah').delete().lt('created_at', cutOff); + } catch (e) { + if (kDebugMode) print('Clean Group School Messages Error: $e'); + } + } +} diff --git a/lib/dashboard/d_c_murid/database/db_guru.dart b/lib/dashboard/d_c_murid/database/db_guru.dart new file mode 100644 index 0000000..6b5bd36 --- /dev/null +++ b/lib/dashboard/d_c_murid/database/db_guru.dart @@ -0,0 +1,199 @@ +import 'package:supabase_flutter/supabase_flutter.dart'; +import 'package:shared_preferences/shared_preferences.dart'; + +class DbGuru { + final SupabaseClient _supabase = Supabase.instance.client; + + Future>> getAllGuru() async { + try { + // Fetch all guru, possibly with their class name if you have a relationship set up + // Or just fetch the table and handle join locally if needed + final response = await _supabase + .from('guru') + .select('*, class_name!guru_id_class_fkey(*)') + .or('status_akun.is.null,status_akun.eq.true'); + + return List>.from(response); + } catch (e) { + // If there's no relationship 'class_name', fallback to normal select + try { + final fallbackResponse = await _supabase + .from('guru') + .select('*') + .or('status_akun.is.null,status_akun.eq.true'); + return List>.from(fallbackResponse); + } catch (e2) { + throw Exception('Gagal memuat data guru: $e2'); + } + } + } + + Future>> getGuruForStudentClass() async { + try { + final prefs = await SharedPreferences.getInstance(); + final userId = prefs.getString('user_id_admin'); + final nis = prefs.getString('murid_nis'); + + if (userId == null || nis == null) return []; + + // 1. Dapatkan info murid untuk mengambil id_class murid tersebut + final muridData = await _supabase + .from('murid') + .select('id_class') + .eq('user_id', userId) + .eq('nis', nis) + .maybeSingle(); + + if (muridData == null || muridData['id_class'] == null) return []; + final String studentClassId = muridData['id_class'].toString(); + + // 2. Dapatkan Wali Kelas untuk kelas tersebut + final classData = await _supabase + .from('class_name') + .select('id_guru') + .eq('id_tabel', studentClassId) + .maybeSingle(); + + final String? waliKelasGuruId = classData?['id_guru']?.toString(); + + // 3. Dapatkan guru yang mengajar di kelas murid tersebut (guru.id_class == studentClassId) + // dan juga Wali Kelas dari kelas tersebut (guru.id_tabel == waliKelasGuruId) + var query = _supabase + .from('guru') + .select('*') + .or('status_akun.is.null,status_akun.eq.true'); + + if (waliKelasGuruId != null && waliKelasGuruId.isNotEmpty) { + query = query.or('id_class.eq.$studentClassId,id_tabel.eq.$waliKelasGuruId'); + } else { + query = query.eq('id_class', studentClassId); + } + + final response = await query; + return List>.from(response); + } catch (e) { + return []; + } + } + + Future>> getGuruForLoggedGuruClass() async { + try { + final prefs = await SharedPreferences.getInstance(); + final userId = prefs.getString('user_id_admin'); + final nik = prefs.getString('guru_nik'); + + if (userId == null || nik == null) return []; + + // 1. Dapatkan info guru yang login + final guruData = await _supabase + .from('guru') + .select('id_tabel, id_class') + .eq('user_id', userId) + .eq('nik', nik) + .maybeSingle(); + + if (guruData == null) return []; + + Set validClassIds = {}; + if (guruData['id_class'] != null) { + validClassIds.add(guruData['id_class'].toString()); + } + + // Ambil class_name yang terkait dengan guru ini + final classDataList = await _supabase + .from('class_name') + .select('id_tabel, id_class') + .eq('id_guru', guruData['id_tabel']); + + for (var c in classDataList) { + validClassIds.add(c['id_tabel'].toString()); + } + + if (validClassIds.isEmpty) return []; + + // 2. Ambil semua guru yang terhubung ke kelas yang sama (melalui id_class di tabel guru) + final gurusInClass = await _supabase + .from('guru') + .select('*, class_name!guru_id_class_fkey(*)') + .inFilter('id_class', validClassIds.toList()) + .or('status_akun.is.null,status_akun.eq.true'); + + return List>.from(gurusInClass); + } catch (e) { + throw Exception('Gagal memuat data guru per kelas: $e'); + } + } + Future> getLoggedInGuruInfo() async { + final prefs = await SharedPreferences.getInstance(); + final userId = prefs.getString('user_id_admin'); + final nik = prefs.getString('guru_nik'); + + if (userId == null || nik == null) { + throw Exception('Sesi guru tidak valid.'); + } + + final guruData = await _supabase + .from('guru') + .select() + .eq('user_id', userId) + .eq('nik', nik) + .maybeSingle(); + + if (guruData == null) { + throw Exception('Data guru tidak ditemukan.'); + } + + // Cek apakah wali kelas + final classData = await _supabase + .from('class_name') + .select('name_class') + .eq('id_guru', guruData['id_tabel']) + .maybeSingle(); + + guruData['is_wali_kelas'] = classData != null; + + if (classData != null) { + guruData['class_name'] = classData['name_class']; + } else if (guruData['id_class'] != null) { + // Jika bukan wali kelas, ambil nama kelas berdasarkan id_class + final classDataById = await _supabase + .from('class_name') + .select('name_class') + .eq('id_tabel', guruData['id_class']) + .maybeSingle(); + guruData['class_name'] = classDataById?['name_class']; + } else { + guruData['class_name'] = null; + } + + return guruData; + } + + Future updateGuru({ + required String idTabel, + required num nik, + required String name, + String? bidang, + String? idClass, + required bool wali, + }) async { + await _supabase.from('guru').update({ + 'nik': nik, + 'name': name, + 'bidang': bidang, + 'id_class': idClass, + 'wali': wali, + }).eq('id_tabel', idTabel); + } + + Future deleteGuru(String idTabel) async { + try { + await _supabase.from('guru').update({ + 'status_akun': false, + 'id_class': null, + }).eq('id_tabel', idTabel); + } catch (e) { + throw Exception('Gagal menghapus guru: $e'); + } + } +} diff --git a/lib/dashboard/d_c_murid/database/db_izin.dart b/lib/dashboard/d_c_murid/database/db_izin.dart new file mode 100644 index 0000000..10075e7 --- /dev/null +++ b/lib/dashboard/d_c_murid/database/db_izin.dart @@ -0,0 +1,28 @@ +import 'dart:typed_data'; +import 'package:supabase_flutter/supabase_flutter.dart'; + +class DbIzin { + final SupabaseClient _supabase = Supabase.instance.client; + + Future uploadIzinFile(String authId, String nis, Uint8List fileBytes, String originalFileName) async { + try { + final fileName = '${DateTime.now().millisecondsSinceEpoch}_$originalFileName'; + final filePath = '$authId/$nis/$fileName'; + + await _supabase.storage.from('doc_izin').uploadBinary(filePath, fileBytes); + return _supabase.storage.from('doc_izin').getPublicUrl(filePath); + + } catch (e) { + throw Exception('Gagal mengunggah surat izin: $e'); + } + } + + Future> submitIzin(Map data) async { + try { + final res = await _supabase.from('leave_request').insert(data).select().single(); + return res; + } catch (e) { + throw Exception('Gagal mengajukan izin: $e'); + } + } +} diff --git a/lib/dashboard/d_c_murid/database/db_kelas.dart b/lib/dashboard/d_c_murid/database/db_kelas.dart new file mode 100644 index 0000000..9bdc232 --- /dev/null +++ b/lib/dashboard/d_c_murid/database/db_kelas.dart @@ -0,0 +1,136 @@ +import 'package:supabase_flutter/supabase_flutter.dart'; +import 'package:shared_preferences/shared_preferences.dart'; + +class DbKelas { + final _supabase = Supabase.instance.client; + + Future>> getMuridForGuru() async { + try { + final prefs = await SharedPreferences.getInstance(); + final userId = prefs.getString('user_id_admin'); + final nik = prefs.getString('guru_nik'); + + if (userId == null || nik == null) { + throw Exception('Sesi guru tidak valid.'); + } + + // 1. Dapatkan Guru dan id_class-nya jika ada + final guruData = await _supabase + .from('guru') + .select('id_tabel, id_class') + .eq('user_id', userId) + .eq('nik', nik) + .maybeSingle(); + + if (guruData == null) { + throw Exception('Data guru tidak ditemukan.'); + } + + final guruIdTabel = guruData['id_tabel']; + final guruIdClass = guruData['id_class']; // Dari tabel guru + + // 2. Kumpulkan semua ID Kelas (UUID) yang terkait dengan guru ini + Set validClassIds = {}; + if (guruIdClass != null) { + validClassIds.add(guruIdClass.toString()); + } + + // Juga cek tabel class_name dimana id_guru = guruIdTabel + final classDataList = await _supabase + .from('class_name') + .select('id_tabel, id_class') + .eq('id_guru', guruIdTabel); + + for (var c in classDataList) { + validClassIds.add(c['id_tabel'].toString()); + } + + if (validClassIds.isEmpty) { + // Guru benar-benar tidak terhubung ke kelas manapun + return []; + } + + // 3. Kumpulkan Murid dengan berbagai kemungkinan relasi + Map> allMurid = {}; + + // Relasi A: Murid yang id_class-nya merujuk ke validClassIds + final muridListA = await _supabase + .from('murid') + .select('id_tabel, nis, nama, gender, id_class') + .or('status_akun.is.null,status_akun.eq.true') + .inFilter('id_class', validClassIds.toList()); + + for (var m in muridListA) { + allMurid[m['id_tabel'].toString()] = m; + } + + // Relasi B: Membaca dari id_murid di tabel class_name (seperti instruksi Anda) + // Cari baris class_name yang id_tabel-nya ada di validClassIds DAN punya id_murid + final classMuridRows = await _supabase + .from('class_name') + .select('id_murid') + .inFilter('id_tabel', validClassIds.toList()) + .not('id_murid', 'is', null); + + List muridIdsFromClass = classMuridRows + .map((r) => r['id_murid'].toString()) + .where((id) => id != 'null') + .toList(); + + if (muridIdsFromClass.isNotEmpty) { + final muridListB = await _supabase + .from('murid') + .select('id_tabel, nis, nama, gender, id_class') + .or('status_akun.is.null,status_akun.eq.true') + .inFilter('id_tabel', muridIdsFromClass); + + for (var m in muridListB) { + allMurid[m['id_tabel'].toString()] = m; + } + } + + // Relasi C: Jika class_name menggunakan 'id_class' numeric untuk mengelompokkan + // Coba cari numeric id_class dari classDataList + List numericClassIds = classDataList + .map((c) => c['id_class'] as num?) + .where((id) => id != null) + .cast() + .toList(); + + if (numericClassIds.isNotEmpty) { + final classRowsByNumeric = await _supabase + .from('class_name') + .select('id_murid') + .inFilter('id_class', numericClassIds) + .not('id_murid', 'is', null); + + List extraMuridIds = classRowsByNumeric + .map((r) => r['id_murid'].toString()) + .where((id) => id != 'null') + .toList(); + + if (extraMuridIds.isNotEmpty) { + final muridListC = await _supabase + .from('murid') + .select('id_tabel, nis, nama, gender, id_class') + .or('status_akun.is.null,status_akun.eq.true') + .inFilter('id_tabel', extraMuridIds); + + for (var m in muridListC) { + allMurid[m['id_tabel'].toString()] = m; + } + } + } + + // Return hasil akhir dan urutkan berdasarkan nama + final finalResult = allMurid.values.toList(); + finalResult.sort((a, b) => (a['nama']?.toString() ?? '').compareTo(b['nama']?.toString() ?? '')); + + return finalResult; + + } catch (e) { + print('DEBUG getMuridForGuru ERROR: $e'); + throw Exception('Gagal memuat murid: $e'); + } + } +} diff --git a/lib/dashboard/d_c_murid/database/db_murid.dart b/lib/dashboard/d_c_murid/database/db_murid.dart new file mode 100644 index 0000000..b58c1d6 --- /dev/null +++ b/lib/dashboard/d_c_murid/database/db_murid.dart @@ -0,0 +1,102 @@ +import 'package:supabase_flutter/supabase_flutter.dart'; + +class DbMurid { + final SupabaseClient _supabase = Supabase.instance.client; + + Future>> getAllMurid() async { + try { + final response = await _supabase + .from('murid') + .select('*, class_name(*)') + .or('status_akun.is.null,status_akun.eq.true'); + + return List>.from(response); + } catch (e) { + try { + final fallbackResponse = await _supabase + .from('murid') + .select('*') + .or('status_akun.is.null,status_akun.eq.true'); + return List>.from(fallbackResponse); + } catch (e2) { + throw Exception('Gagal memuat data murid: $e2'); + } + } + } + + Future addMurid({ + required String nis, + required String nama, + required String userId, + String? idClass, + String? gender, + DateTime? tanggalLahir, + String? alamat, + String? orangTua, + num? noTele, + }) async { + try { + await _supabase.from('murid').insert({ + 'nis': nis, + 'nama': nama, + 'user_id': userId, + 'id_class': idClass, + 'gender': gender, + 'tanggal_lahir': tanggalLahir?.toIso8601String().split('T').first, + 'alamat': alamat, + 'orang_tua': orangTua, + 'no_tele': noTele, + 'status_akun': true, + }); + } catch (e) { + throw Exception('Gagal menambahkan murid: $e'); + } + } + + Future deleteMurid(String idTabel) async { + try { + await _supabase.from('murid').update({ + 'status_akun': false, + 'id_class': null, + }).eq('id_tabel', idTabel); + } catch (e) { + throw Exception('Gagal menghapus murid: $e'); + } + } + + Future>> getKelas() async { + try { + final response = await _supabase.from('class_name').select('*'); + return List>.from(response); + } catch (e) { + throw Exception('Gagal memuat data kelas: $e'); + } + } + + Future updateMurid({ + required String idTabel, + required String nis, + required String nama, + String? idClass, + String? gender, + DateTime? tanggalLahir, + String? alamat, + String? orangTua, + num? noTele, + }) async { + try { + await _supabase.from('murid').update({ + 'nis': nis, + 'nama': nama, + 'id_class': idClass, + 'gender': gender, + 'tanggal_lahir': tanggalLahir?.toIso8601String().split('T').first, + 'alamat': alamat, + 'orang_tua': orangTua, + 'no_tele': noTele, + }).eq('id_tabel', idTabel); + } catch (e) { + throw Exception('Gagal mengupdate profil: $e'); + } + } +} diff --git a/lib/dashboard/d_c_murid/database/db_pengumuman.dart b/lib/dashboard/d_c_murid/database/db_pengumuman.dart new file mode 100644 index 0000000..29ba27b --- /dev/null +++ b/lib/dashboard/d_c_murid/database/db_pengumuman.dart @@ -0,0 +1,87 @@ +import 'package:supabase_flutter/supabase_flutter.dart'; +import 'package:shared_preferences/shared_preferences.dart'; + +class DbPengumuman { + static final supabase = Supabase.instance.client; + + static Future getUserIdAsync() async { + final prefs = await SharedPreferences.getInstance(); + final ortuId = prefs.getString('user_id_admin'); + if (ortuId != null) return ortuId; + + final id = supabase.auth.currentUser?.id; + if (id != null) return id; + + throw Exception('User belum login'); + } + + // Insert pengumuman baru + static Future> insertPengumuman({ + required String title, + required String tanggalMulai, + required String tanggalSelesai, + String? keterangan, + String? idGuru, + }) async { + // Bersihkan pengumuman yang sudah kadaluarsa + await deleteExpiredPengumuman(); + + final userId = await getUserIdAsync(); + + final data = { + 'user_id': userId, + 'title': title, + 'tanggal_mulai': tanggalMulai, + 'tanggal_selesai': tanggalSelesai, + if (keterangan != null && keterangan.isNotEmpty) 'keterangan': keterangan, + if (idGuru != null && idGuru.isNotEmpty) 'id_guru': idGuru, + }; + + final res = await supabase.from('pengumuman').insert(data).select().single(); + return res; + } + + // Get pengumuman berdasarkan ID + static Future?> getPengumumanById(String id) async { + try { + final res = await supabase.from('pengumuman').select().eq('id_tabel', id).maybeSingle(); + return res; + } catch (e) { + return null; + } + } + + // Hapus otomatis pengumuman yang sudah berakhir (tanggal_selesai < hari ini) + static Future deleteExpiredPengumuman() async { + try { + final now = DateTime.now(); + final todayStr = "${now.year}-${now.month.toString().padLeft(2, '0')}-${now.day.toString().padLeft(2, '0')}"; + + // 1. Dapatkan semua ID pengumuman yang sudah kadaluarsa + final expired = await supabase + .from('pengumuman') + .select('id_tabel') + .lt('tanggal_selesai', todayStr); + + if (expired != null && expired.isNotEmpty) { + final List expiredIds = expired + .map((e) => e['id_tabel'].toString()) + .toList(); + + // 2. Kosongkan referensi id_pengumuman di tabel absen agar tidak melanggar foreign key constraint + await supabase + .from('absen') + .update({'id_pengumuman': null}) + .inFilter('id_pengumuman', expiredIds); + + // 3. Hapus pengumuman tersebut dari tabel pengumuman + await supabase + .from('pengumuman') + .delete() + .inFilter('id_tabel', expiredIds); + } + } catch (e) { + // Silently ignore or log error + } + } +} diff --git a/lib/dashboard/d_c_murid/database/db_pesan_private.dart b/lib/dashboard/d_c_murid/database/db_pesan_private.dart new file mode 100644 index 0000000..96ce984 --- /dev/null +++ b/lib/dashboard/d_c_murid/database/db_pesan_private.dart @@ -0,0 +1,142 @@ +import 'package:flutter/foundation.dart'; +import 'package:supabase_flutter/supabase_flutter.dart'; +import 'package:shared_preferences/shared_preferences.dart'; + +class DbPesanPrivate { + static final supabase = Supabase.instance.client; + + static Future getUserIdAsync() async { + final prefs = await SharedPreferences.getInstance(); + final ortuId = prefs.getString('user_id_admin'); + if (ortuId != null) return ortuId; + + final id = supabase.auth.currentUser?.id; + if (id != null) return id; + + throw Exception('User belum login'); + } + + // Get Admin ID (for the current logged in user) + Future getAdminId() async { + try { + final userId = await getUserIdAsync(); + final res = await supabase + .from('user_admin') + .select('id') + .eq('id', userId) + .single(); + return res['id']?.toString(); + } catch (e) { + if (kDebugMode) print('Get Admin ID Error: $e'); + return null; + } + } + + // Stream chat between Admin and Guru + Stream>> getChatWithGuruStream(String idAdmin, String idGuru) { + deleteExpiredMessages(); + return supabase + .from('chat_private') + .stream(primaryKey: ['id_tabel']) + .order('created_at', ascending: true) + .map((data) => data + .where((e) => + (e['pengirim_admin'] == idAdmin && e['penerima_guru'] == idGuru) || + (e['pengirim_guru'] == idGuru && e['penerima_admin'] == idAdmin)) + .map((e) => e as Map) + .toList()); + } + + // Stream chat between Admin and Murid + Stream>> getChatWithMuridStream(String idAdmin, String idMurid) { + deleteExpiredMessages(); + return supabase + .from('chat_private') + .stream(primaryKey: ['id_tabel']) + .order('created_at', ascending: true) + .map((data) => data + .where((e) => + (e['pengirim_admin'] == idAdmin && e['penerima_murid'] == idMurid) || + (e['pengirim_murid'] == idMurid && e['penerima_admin'] == idAdmin)) + .map((e) => e as Map) + .toList()); + } + + // Send Message to Guru + Future sendMessageToGuru({ + required String text, + required String idAdmin, + required String idGuru, + }) async { + try { + await deleteExpiredMessages(); + final userId = await getUserIdAsync(); + await supabase.from('chat_private').insert({ + 'text': text, + 'pengirim_admin': idAdmin, + 'penerima_guru': idGuru, + 'user_id': userId, + }); + } catch (e) { + if (kDebugMode) print('Send Message Error: $e'); + throw Exception('Gagal mengirim pesan: $e'); + } + } + + // Send Message to Murid + Future sendMessageToMurid({ + required String text, + required String idAdmin, + required String idMurid, + }) async { + try { + await deleteExpiredMessages(); + final userId = await getUserIdAsync(); + await supabase.from('chat_private').insert({ + 'text': text, + 'pengirim_admin': idAdmin, + 'penerima_murid': idMurid, + 'user_id': userId, + }); + } catch (e) { + if (kDebugMode) print('Send Message Error: $e'); + throw Exception('Gagal mengirim pesan: $e'); + } + } + + // Stream chat between Admin and Murid (For Murid App) + Stream>> getChatWithAdminStream(String idMurid, String idAdmin) { + deleteExpiredMessages(); + return supabase + .from('chat_private') + .stream(primaryKey: ['id_tabel']) + .order('created_at', ascending: true) + .map((data) => data + .where((e) => + (e['pengirim_admin'] == idAdmin && e['penerima_murid'] == idMurid) || + (e['pengirim_murid'] == idMurid && e['penerima_admin'] == idAdmin)) + .map((e) => e as Map) + .toList()); + } + + // Send message general (For Murid App sending to admin) + Future sendMessage(Map data) async { + try { + await deleteExpiredMessages(); + await supabase.from('chat_private').insert(data); + } catch (e) { + if (kDebugMode) print('Send Message Error: $e'); + throw Exception('Gagal mengirim pesan: $e'); + } + } + + // Hapus pesan privat yang lebih lama dari 24 jam + static Future deleteExpiredMessages() async { + try { + final cutOff = DateTime.now().subtract(const Duration(hours: 24)).toUtc().toIso8601String(); + await supabase.from('chat_private').delete().lt('created_at', cutOff); + } catch (e) { + if (kDebugMode) print('Clean Private Messages Error: $e'); + } + } +} diff --git a/lib/dashboard/d_c_murid/database/holiday_service.dart b/lib/dashboard/d_c_murid/database/holiday_service.dart new file mode 100644 index 0000000..f089dab --- /dev/null +++ b/lib/dashboard/d_c_murid/database/holiday_service.dart @@ -0,0 +1,82 @@ +import 'dart:convert'; +import 'package:flutter_dotenv/flutter_dotenv.dart'; +import 'package:http/http.dart' as http; +import 'package:intl/intl.dart'; +import 'package:shared_preferences/shared_preferences.dart'; + +class HolidayService { + static const String _cacheKey = 'holiday_cache_2026'; + + // Set of formatted dates "yyyy-MM-dd" + static Set _holidays = {}; + + // Fallback major 2026 Indonesian holidays + static const List _fallbackHolidays = [ + '2026-01-01', // Tahun Baru Masehi + '2026-01-27', // Isra Mikraj Nabi Muhammad SAW + '2026-02-17', // Tahun Baru Imlek + '2026-03-20', // Hari Suci Nyepi + '2026-04-03', // Wafat Yesus Kristus + '2026-04-05', // Kebangkitan Yesus Kristus + '2026-05-01', // Hari Buruh Internasional + '2026-05-14', // Kenaikan Yesus Kristus + '2026-05-27', // Hari Raya Idul Adha + '2026-06-01', // Hari Lahir Pancasila + '2026-06-16', // Tahun Baru Islam + '2026-08-17', // Hari Kemerdekaan RI + '2026-08-25', // Maulid Nabi Muhammad SAW + '2026-12-25', // Hari Raya Natal + ]; + + /// Initialize the holiday service. Loads cached values if available, + /// otherwise uses fallback values, and tries to fetch the latest values from API. + static Future init() async { + // 1. Try to load from local cache first + try { + final prefs = await SharedPreferences.getInstance(); + final cachedJson = prefs.getString(_cacheKey); + if (cachedJson != null) { + final List decoded = jsonDecode(cachedJson); + _holidays = decoded.cast().toSet(); + } + } catch (_) { + // Ignore cache load error + } + + // If cache is empty, load fallback initially + if (_holidays.isEmpty) { + _holidays = _fallbackHolidays.toSet(); + } + + // 2. Fetch from API with a 5-second timeout + try { + final apiUrl = dotenv.env['HOLIDAY_API_URL']; + if (apiUrl != null && apiUrl.isNotEmpty) { + final response = await http.get(Uri.parse(apiUrl)).timeout(const Duration(seconds: 5)); + if (response.statusCode == 200) { + final List data = jsonDecode(response.body); + final Set fetchedHolidays = {}; + for (var item in data) { + if (item is Map && item.containsKey('date')) { + fetchedHolidays.add(item['date'].toString()); + } + } + if (fetchedHolidays.isNotEmpty) { + _holidays = fetchedHolidays; + // Save to cache + final prefs = await SharedPreferences.getInstance(); + await prefs.setString(_cacheKey, jsonEncode(_holidays.toList())); + } + } + } + } catch (_) { + // Failed to fetch or parse, fallback/cache will be used + } + } + + /// Check if a date is a public holiday + static bool isHoliday(DateTime date) { + final dateStr = DateFormat('yyyy-MM-dd').format(date); + return _holidays.contains(dateStr); + } +} diff --git a/lib/dashboard/d_c_murid/database/storage/image_doc.dart b/lib/dashboard/d_c_murid/database/storage/image_doc.dart new file mode 100644 index 0000000..0704341 --- /dev/null +++ b/lib/dashboard/d_c_murid/database/storage/image_doc.dart @@ -0,0 +1,56 @@ +import 'dart:io'; +import 'dart:typed_data'; +import 'package:supabase_flutter/supabase_flutter.dart'; +import 'package:shared_preferences/shared_preferences.dart'; + +class ImageDocStorage { + static final supabase = Supabase.instance.client; + + static Future uploadFile(Uint8List bytes, String fileName) async { + try { + final prefs = await SharedPreferences.getInstance(); + final userId = prefs.getString('user_id_admin') ?? supabase.auth.currentUser?.id; + final nip = prefs.getString('guru_nik') ?? 'admin'; + + if (userId == null) return null; + + // path: userid/nip/doc_image/fileName (di dalam bucket chat_file) + final path = '$userId/$nip/doc_image/${DateTime.now().millisecondsSinceEpoch}_$fileName'; + + await supabase.storage.from('chat_file').uploadBinary( + path, + bytes, + fileOptions: const FileOptions(upsert: true), + ); + + return supabase.storage.from('chat_file').getPublicUrl(path); + } catch (e) { + print('Upload Image/Doc Error: $e'); + return null; + } + } + + static Future uploadFileObject(File file, String fileName) async { + try { + final prefs = await SharedPreferences.getInstance(); + final userId = prefs.getString('user_id_admin') ?? supabase.auth.currentUser?.id; + final nip = prefs.getString('guru_nik') ?? 'admin'; + + if (userId == null) return null; + + // path: userid/nip/doc_image/fileName + final path = '$userId/$nip/doc_image/${DateTime.now().millisecondsSinceEpoch}_$fileName'; + + await supabase.storage.from('chat_file').upload( + path, + file, + fileOptions: const FileOptions(upsert: true), + ); + + return supabase.storage.from('chat_file').getPublicUrl(path); + } catch (e) { + print('Upload File Error: $e'); + return null; + } + } +} diff --git a/lib/dashboard/d_c_murid/function/FCM_absen.dart/chat_private_n.dart b/lib/dashboard/d_c_murid/function/FCM_absen.dart/chat_private_n.dart new file mode 100644 index 0000000..397c7aa --- /dev/null +++ b/lib/dashboard/d_c_murid/function/FCM_absen.dart/chat_private_n.dart @@ -0,0 +1,361 @@ +import 'dart:async'; +import 'package:flutter/material.dart'; +import 'package:shared_preferences/shared_preferences.dart'; +import 'package:supabase_flutter/supabase_flutter.dart'; +import 'package:apk/dashboard/d_c_murid/database/db_guru.dart'; +import 'package:apk/dashboard/d_c_murid/function/FCM_absen.dart/fcm_notif.dart'; +import 'package:apk/dashboard/d_c_murid/function/f_Pesan/chat_private.dart'; + +/// Notification handler for Chat Private (Guru ↔ Ortu/Murid). +/// Must call [ChatPrivateNotification.init()] once after login. +/// Call [ChatPrivateNotification.dispose()] on logout. +class ChatPrivateNotification { + // GlobalKey provided by the root MaterialApp (shared with other notification handlers) + static GlobalKey? navigatorKey; + + static OverlayEntry? _overlayEntry; + static Timer? _autoDismissTimer; + + static String? _currentUserId; // ID di tabel murid/guru (bukan auth.uid) + static String? _currentUserRole; // 'ortu', 'murid', or 'guru' + + // Info pengirim terakhir agar navigasi buka chat yang benar + static String? _lastSenderId; + static String? _lastSenderName; + static String? _lastSenderType; // 'guru', 'murid', or 'admin' + + // Supabase stream subscription + static StreamSubscription>>? _streamSubscription; + static DateTime? _lastSeenAt; + + static final ValueNotifier hasUnread = ValueNotifier(false); + static final ValueNotifier> unreadSenderIds = ValueNotifier>({}); + + static Future setSenderUnread(String senderId, bool isUnread) async { + final current = Set.from(unreadSenderIds.value); + if (isUnread) { + current.add(senderId); + } else { + current.remove(senderId); + } + unreadSenderIds.value = current; + hasUnread.value = current.isNotEmpty; + + try { + final prefs = await SharedPreferences.getInstance(); + await prefs.setStringList('chat_private_unread_senders', current.toList()); + await prefs.setBool('chat_private_has_unread', current.isNotEmpty); + if (!isUnread) { + await prefs.setString('chat_private_last_read_$senderId', DateTime.now().toUtc().toIso8601String()); + } + if (!isUnread) { + await prefs.setString('chat_private_last_read_$senderId', DateTime.now().toUtc().toIso8601String()); + } + } catch (e) { + debugPrint('[ChatPrivateNotification] setSenderUnread error: $e'); + } + } + + static Future setUnread(bool value) async { + if (!value) { + unreadSenderIds.value = {}; + hasUnread.value = false; + try { + final prefs = await SharedPreferences.getInstance(); + await prefs.remove('chat_private_unread_senders'); + await prefs.setBool('chat_private_has_unread', false); + } catch (e) { + debugPrint('[ChatPrivateNotification] setUnread error: $e'); + } + } else { + hasUnread.value = true; + } + } + + /// Initialize the listener. Safe to call multiple times — will re-initialize. + static Future init({GlobalKey? key}) async { + if (key != null) navigatorKey = key; + + await dispose(); // bersihkan state sebelumnya + + try { + final prefs = await SharedPreferences.getInstance(); + final role = prefs.getString('user_role') ?? ''; + + if (role == 'ortu' || role == 'murid') { + await _initForMurid(prefs); + } else if (role == 'guru') { + await _initForGuru(); + } + + if (_currentUserId != null) { + final unreadList = prefs.getStringList('chat_private_unread_senders') ?? []; + unreadSenderIds.value = unreadList.toSet(); + hasUnread.value = unreadSenderIds.value.isNotEmpty || (prefs.getBool('chat_private_has_unread') ?? false); + + + _subscribeRealtime(); + debugPrint('[ChatPrivateNotification] initialized (role: $_currentUserRole, id: $_currentUserId, unread: ${unreadSenderIds.value})'); + } + // Admin tidak perlu notif chat private di sini + } catch (e) { + debugPrint('[ChatPrivateNotification] init error: $e'); + } + } + + // ─── Init untuk Ortu/Murid ──────────────────────────────────────────────── + + static Future _initForMurid(SharedPreferences prefs) async { + final nis = prefs.getString('murid_nis'); + final adminId = prefs.getString('user_id_admin'); + if (nis == null || adminId == null) return; + + final muridRes = await Supabase.instance.client + .from('murid') + .select('id_tabel') + .eq('user_id', adminId) + .eq('nis', nis) + .or('status_akun.is.null,status_akun.eq.true') + .maybeSingle(); + + if (muridRes == null) return; + + _currentUserId = muridRes['id_tabel'].toString(); + _currentUserRole = 'murid'; + } + + // ─── Init untuk Guru ────────────────────────────────────────────────────── + + static Future _initForGuru() async { + final guruInfo = await DbGuru().getLoggedInGuruInfo(); + _currentUserId = guruInfo['id_tabel']?.toString(); + _currentUserRole = 'guru'; + } + + // ─── Tangani Entrig event yang diteruskan dari fcm_notif.dart ────────────── + + // ─── Supabase Realtime ──────────────────────────────────────────────────── + + static void _subscribeRealtime() async { + final supabase = Supabase.instance.client; + final prefs = await SharedPreferences.getInstance(); + _lastSeenAt = DateTime.now().toUtc(); + + _streamSubscription = supabase + .from('chat_private') + .stream(primaryKey: ['id_tabel']) + .order('created_at', ascending: false) + .listen( + (rows) { + // Filter: only messages where recipient matches our id + final filtered = rows.where((row) { + final recipientId = _currentUserRole == 'guru' + ? row['penerima_guru']?.toString() + : row['penerima_murid']?.toString(); + return recipientId == _currentUserId; + }).toList(); + + // Filter: only new messages (after init / lastSeenAt) + final newMsgs = filtered.where((row) { + final t = DateTime.tryParse(row['created_at']?.toString() ?? ''); + return t != null && t.isAfter(_lastSeenAt!); + }).toList(); + + for (final row in filtered) { + final senderId = row['pengirim_murid']?.toString() ?? row['pengirim_guru']?.toString() ?? row['pengirim_admin']?.toString(); + if (senderId != null && senderId != _currentUserId) { + final lastReadStr = prefs.getString('chat_private_last_read_$senderId'); + final lastRead = lastReadStr != null ? DateTime.parse(lastReadStr) : DateTime.fromMillisecondsSinceEpoch(0); + final t = DateTime.tryParse(row['created_at']?.toString() ?? ''); + if (t != null && t.isAfter(lastRead) && !unreadSenderIds.value.contains(senderId)) { + setSenderUnread(senderId, true); + } + } + } + + for (final row in filtered) { + final senderId = row['pengirim_murid']?.toString() ?? row['pengirim_guru']?.toString() ?? row['pengirim_admin']?.toString(); + if (senderId != null && senderId != _currentUserId) { + final lastReadStr = prefs.getString('chat_private_last_read_$senderId'); + final lastRead = lastReadStr != null ? DateTime.parse(lastReadStr) : DateTime.fromMillisecondsSinceEpoch(0); + final t = DateTime.tryParse(row['created_at']?.toString() ?? ''); + if (t != null && t.isAfter(lastRead) && !unreadSenderIds.value.contains(senderId)) { + setSenderUnread(senderId, true); + } + } + } + + if (newMsgs.isEmpty) return; + + // Update lastSeenAt + for (final row in newMsgs) { + final t = DateTime.tryParse(row['created_at'].toString()); + if (t != null && t.isAfter(_lastSeenAt!)) _lastSeenAt = t; + } + + debugPrint('[ChatPrivateNotification] stream → ${newMsgs.length} pesan baru'); + _handleRealtimeInsert(newMsgs.first); + }, + onError: (e) { + debugPrint('[ChatPrivateNotification] stream error: $e'); + }, + ); + } + + static void _handleRealtimeInsert(Map row) { + // Skip if sent by ourselves + final senderMurid = row['pengirim_murid']?.toString(); + final senderGuru = row['pengirim_guru']?.toString(); + final senderAdmin = row['pengirim_admin']?.toString(); + final senderId = senderMurid ?? senderGuru ?? senderAdmin; + + if (senderId != null && senderId == _currentUserId) { + return; + } + + final text = row['text']?.toString() ?? ''; + + if (senderId != null) { + setSenderUnread(senderId, true); + } + + if (senderMurid != null) { + _fetchMuridNameAndNotify( + senderId: senderMurid, + senderType: 'murid', + text: text, + ); + } else if (senderGuru != null) { + _fetchGuruNameAndNotify( + senderId: senderGuru, + senderType: 'guru', + text: text, + ); + } else if (senderAdmin != null) { + _fetchAdminNameAndNotify( + senderId: senderAdmin, + senderType: 'admin', + text: text, + ); + } + } + + + + // ─── Helper: Fetch nama lalu tampilkan overlay ──────────────────────────── + + static Future _fetchGuruNameAndNotify({ + required String senderId, + required String senderType, + required String text, + }) async { + try { + final res = await Supabase.instance.client + .from('guru') + .select('name') + .eq('id_tabel', senderId) + .maybeSingle(); + _lastSenderId = senderId; + _lastSenderType = senderType; + _lastSenderName = res?['name']?.toString() ?? 'Guru'; + _showOverlayCard(senderName: _lastSenderName!, text: text); + } catch (_) { + _lastSenderId = senderId; + _lastSenderType = senderType; + _lastSenderName = 'Guru'; + _showOverlayCard(senderName: 'Guru', text: text); + } + } + + static Future _fetchMuridNameAndNotify({ + required String senderId, + required String senderType, + required String text, + }) async { + try { + final res = await Supabase.instance.client + .from('murid') + .select('nama') + .eq('id_tabel', senderId) + .maybeSingle(); + _lastSenderId = senderId; + _lastSenderType = senderType; + _lastSenderName = res?['nama']?.toString() ?? 'Murid'; + _showOverlayCard(senderName: _lastSenderName!, text: text); + } catch (_) { + _lastSenderId = senderId; + _lastSenderType = senderType; + _lastSenderName = 'Murid'; + _showOverlayCard(senderName: 'Murid', text: text); + } + } + + static Future _fetchAdminNameAndNotify({ + required String senderId, + required String senderType, + required String text, + }) async { + try { + final res = await Supabase.instance.client + .from('user_admin') + .select('name') + .eq('id', senderId) + .maybeSingle(); + _lastSenderId = senderId; + _lastSenderType = senderType; + _lastSenderName = res?['name']?.toString() ?? 'Admin'; + _showOverlayCard(senderName: _lastSenderName!, text: text); + } catch (_) { + _lastSenderId = senderId; + _lastSenderType = senderType; + _lastSenderName = 'Admin'; + _showOverlayCard(senderName: 'Admin', text: text); + } + } + + // ─── Dispose ────────────────────────────────────────────────────────────── + + static Future dispose() async { + _streamSubscription?.cancel(); + _streamSubscription = null; + _lastSeenAt = null; + _dismissOverlay(); + } + + // ─── Overlay UI ─────────────────────────────────────────────────────────── + + static void _showOverlayCard({ + required String senderName, + required String text, + }) { + // Disabled overlay popups as requested, keeping only red dot/badge updates + return; + } + + static void _navigateToChatPrivate() { + final senderId = _lastSenderId; + final senderName = _lastSenderName ?? ''; + final senderType = _lastSenderType ?? ''; + if (senderId == null) return; + + // Murid/Ortu membuka ChatPrivate menuju guru pengirim + navigatorKey?.currentState?.push( + MaterialPageRoute( + builder: (_) => ChatPrivate( + receiverId: senderId, + receiverType: senderType, + receiverName: senderName, + ), + ), + ); + } + + static void _dismissOverlay() { + _autoDismissTimer?.cancel(); + _autoDismissTimer = null; + if (_overlayEntry != null) { + _overlayEntry!.remove(); + _overlayEntry = null; + } + } +} diff --git a/lib/dashboard/d_c_murid/function/FCM_absen.dart/fcm_notif.dart b/lib/dashboard/d_c_murid/function/FCM_absen.dart/fcm_notif.dart new file mode 100644 index 0000000..e710867 --- /dev/null +++ b/lib/dashboard/d_c_murid/function/FCM_absen.dart/fcm_notif.dart @@ -0,0 +1,501 @@ +import 'dart:async'; +import 'package:flutter/material.dart'; +import 'package:firebase_core/firebase_core.dart'; +import 'package:firebase_messaging/firebase_messaging.dart'; +import 'package:shared_preferences/shared_preferences.dart'; +import 'package:supabase_flutter/supabase_flutter.dart'; +import 'package:flutter_dotenv/flutter_dotenv.dart'; +import 'package:apk/firebase_options.dart'; +import 'package:apk/dashboard/d_c_murid/function/absen/absen_history.dart'; +import 'package:apk/dashboard/a_admin/function/f_notif/notif_reddot.dart'; + +@pragma('vm:entry-point') +Future _firebaseMessagingBackgroundHandler(RemoteMessage message) async { + await Firebase.initializeApp(options: DefaultFirebaseOptions.currentPlatform); + debugPrint('[FCM Background] Message received: id=${message.messageId}, data=${message.data}'); +} + +class NotificationFCM { + // GlobalKey linked to MaterialApp navigatorKey + static GlobalKey get navigatorKey => NotifRedDot.navigatorKey; + + static OverlayEntry? _overlayEntry; + static final List _accumulatedMessages = []; + static Timer? _autoDismissTimer; + + /// Initialize listeners for FCM notification click events and foreground messages + static Future init() async { + // 0. Ensure Firebase [DEFAULT] app is initialized + try { + bool hasDefault = false; + for (var app in Firebase.apps) { + if (app.name == '[DEFAULT]') { + hasDefault = true; + break; + } + } + if (!hasDefault) { + await Firebase.initializeApp( + options: DefaultFirebaseOptions.currentPlatform, + ); + debugPrint('[NotificationFCM] Firebase default app initialized'); + } else { + debugPrint('[NotificationFCM] Firebase default app already exists'); + } + } catch (e) { + debugPrint('[NotificationFCM] Error initializing Firebase: $e'); + } + + // 1. Request push notification permissions + try { + await FirebaseMessaging.instance.requestPermission( + alert: true, + announcement: false, + badge: true, + carPlay: false, + criticalAlert: false, + provisional: false, + sound: true, + ); + } catch (e) { + debugPrint('Error requesting notification permission: $e'); + } + + // 2. Set Background Message Handler + try { + FirebaseMessaging.onBackgroundMessage(_firebaseMessagingBackgroundHandler); + } catch (e) { + debugPrint('Error setting background message handler: $e'); + } + + // 3. Listen for standard FCM Foreground Messages + FirebaseMessaging.onMessage.listen((RemoteMessage message) { + _handleIncomingRemoteMessage(message); + }); + + // 4. Handle notification when the app is in the background and opened by tapping it + FirebaseMessaging.onMessageOpenedApp.listen((RemoteMessage message) { + _handleRemoteMessageOpened(message); + }); + + // 5. Handle notification when the app was terminated and opened by tapping it + try { + final RemoteMessage? initialMessage = await FirebaseMessaging.instance.getInitialMessage(); + if (initialMessage != null) { + _handleRemoteMessageOpened(initialMessage); + } + } catch (e) { + debugPrint('Error getting initial message: $e'); + } + + // Supabase Realtime stream untuk output_alat hanya diaktifkan SETELAH login + // via NotificationFCM.subscribeOutputAlatForCurrentUser(namaUser) + } + + /// Fetch FCM Token and save to Supabase + static Future saveTokenToSupabase(String userId, String role) async { + try { + final token = await FirebaseMessaging.instance.getToken(); + if (token == null) { + debugPrint('[FCM] Failed to get device token'); + return; + } + debugPrint('[FCM] Device token fetched: $token'); + + // Save token to Supabase fcm_tokens table + await Supabase.instance.client.from('fcm_tokens').upsert( + { + 'user_id': userId, + 'role': role, + 'token': token, + }, + onConflict: 'user_id, token', + ); + debugPrint('[FCM] Token saved to Supabase successfully for user $userId'); + } catch (e) { + debugPrint('[FCM] Error saving token to Supabase: $e'); + } + } + + static StreamSubscription>>? _outputAlatSubscription; + static final Set _processedScanIds = {}; + + /// Aktifkan stream output_alat untuk user yang sedang login. + /// Hanya panggil setelah login berhasil dan nama user sudah diketahui. + /// Filter dilakukan di level Supabase (.eq) sehingga hanya baris milik user ini + /// yang dikirim ke perangkat — tidak ada kebocoran data ke user lain. + static void subscribeOutputAlatForCurrentUser(String namaUser) { + if (namaUser.isEmpty) { + debugPrint('[SupabaseStream] subscribeOutputAlatForCurrentUser called with empty name, skipping.'); + return; + } + + _outputAlatSubscription?.cancel(); + _processedScanIds.clear(); + final supabase = Supabase.instance.client; + + debugPrint('[SupabaseStream] Subscribing output_alat for user: $namaUser'); + + try { + _outputAlatSubscription = supabase + .from('output_alat') + .stream(primaryKey: ['id']) + .eq('nama_user', namaUser) // ← filter server-side: hanya baris milik user ini + .order('created_at', ascending: false) + .listen( + (rows) { + if (rows.isEmpty) return; + + // Pada muat pertama, simpan semua ID lama agar tidak memicu notifikasi lama + if (_processedScanIds.isEmpty) { + for (final row in rows) { + final id = row['id']?.toString(); + if (id != null) _processedScanIds.add(id); + } + debugPrint('[SupabaseStream] First load: cached ${_processedScanIds.length} existing scans'); + return; + } + + // Deteksi baris yang benar-benar baru di-insert + for (final row in rows) { + final id = row['id']?.toString(); + if (id != null && !_processedScanIds.contains(id)) { + _processedScanIds.add(id); + + final rowNama = row['nama_user']?.toString() ?? ''; + debugPrint('[SupabaseStream] New scan received for $rowNama (id: $id)'); + + final title = 'Aplikasi Absensi'; + final body = rowNama.isNotEmpty + ? '$rowNama telah melakukan absensi' + : 'Absensi berhasil'; + + WidgetsBinding.instance.addPostFrameCallback((_) { + _showEntrigOverlay(title: title, body: body); + }); + } + } + }, + onError: (e) { + debugPrint('[SupabaseStream] output_alat error: $e'); + }, + ); + debugPrint('[SupabaseStream] Subscribed to output_alat for "$namaUser"'); + } catch (e) { + debugPrint('[SupabaseStream] Error subscribing to output_alat: $e'); + } + } + + /// Hentikan stream output_alat (panggil saat logout) + static void unsubscribeOutputAlat() { + _outputAlatSubscription?.cancel(); + _outputAlatSubscription = null; + _processedScanIds.clear(); + debugPrint('[SupabaseStream] Unsubscribed from output_alat'); + } + + /// Tampilkan overlay di atas app dengan judul dan isi notifikasi Entrig + static void _showEntrigOverlay({required String title, required String body}) { + final context = navigatorKey.currentContext; + if (context == null) { + debugPrint('[Overlay] navigatorKey.currentContext is null!'); + return; + } + + _autoDismissTimer?.cancel(); + if (_overlayEntry != null) { + try { + if (_overlayEntry!.mounted) { + _overlayEntry!.remove(); + } + } catch (e) { + debugPrint('[Overlay] Remove previous entry error: $e'); + } finally { + _overlayEntry = null; + } + } + + _overlayEntry = OverlayEntry( + builder: (ctx) => Positioned( + top: MediaQuery.of(ctx).padding.top + 8, + left: 12, + right: 12, + child: Material( + elevation: 6, + borderRadius: BorderRadius.circular(16), + color: Colors.transparent, + child: Container( + padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 12), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(16), + boxShadow: [ + BoxShadow( + color: Colors.black.withValues(alpha: 0.12), + blurRadius: 12, + offset: const Offset(0, 4), + ), + ], + ), + child: Row( + children: [ + Container( + width: 40, + height: 40, + decoration: BoxDecoration( + color: const Color(0xFF2563EB).withValues(alpha: 0.1), + borderRadius: BorderRadius.circular(10), + ), + child: const Icon(Icons.notifications_active, + color: Color(0xFF2563EB), size: 22), + ), + const SizedBox(width: 12), + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + mainAxisSize: MainAxisSize.min, + children: [ + Text( + title, + style: const TextStyle( + fontWeight: FontWeight.w700, + fontSize: 13, + color: Color(0xFF1E293B), + ), + ), + const SizedBox(height: 2), + Text( + body, + style: const TextStyle( + fontSize: 12, + color: Color(0xFF64748B), + ), + maxLines: 2, + overflow: TextOverflow.ellipsis, + ), + ], + ), + ), + GestureDetector( + onTap: _dismissOverlay, + child: const Icon(Icons.close, size: 18, color: Color(0xFF94A3B8)), + ), + ], + ), + ), + ), + ), + ); + + try { + final overlay = Overlay.of(context, rootOverlay: true); + overlay.insert(_overlayEntry!); + debugPrint('[Overlay] Entrig overlay shown successfully: $body'); + } catch (e) { + debugPrint('[Overlay] Insert error: $e'); + } + + _autoDismissTimer = Timer(const Duration(seconds: 5), _dismissOverlay); + } + + // ─── Filter Logic ─────────────────────────────────────────────────────────── + + /// Check if the notification's data payload matches the logged-in student + static Future _shouldShowNotification(Map? data) async { + if (data == null || data.isEmpty) return false; + + final prefs = await SharedPreferences.getInstance(); + final role = prefs.getString('user_role'); + + final idMurid = _extractIdMurid(data); + final namaUser = _extractNamaUser(data); + + if (role == 'admin') { + return false; // Admin tidak melihat notifikasi hardware secara individu + } + + if (role == 'guru') { + final loggedInName = prefs.getString('guru_nama'); + if (loggedInName != null && namaUser != null && namaUser.isNotEmpty) { + return loggedInName.trim().toLowerCase() == namaUser.trim().toLowerCase(); + } + return false; + } + + // 1. Cek berdasarkan id_murid (UUID) - 100% akurat + if (idMurid != null && idMurid.isNotEmpty) { + final loggedInId = prefs.getString('murid_id_tabel'); + if (loggedInId != null && loggedInId.isNotEmpty) { + final matches = loggedInId.trim().toLowerCase() == idMurid.trim().toLowerCase(); + debugPrint('[NotificationFCM] Filter by ID - Logged in: "$loggedInId", Incoming: "$idMurid". Match: $matches'); + return matches; + } + } + + // 2. Fallback: Cek berdasarkan nama_user (String) + if (namaUser != null && namaUser.isNotEmpty) { + final matches = await _shouldShowNotificationByNama(namaUser); + debugPrint('[NotificationFCM] Filter by Name - Incoming: "$namaUser". Match: $matches'); + return matches; + } + + return false; + } + + /// Ekstrak id_murid secara dinamis dari map data + static String? _extractIdMurid(Map data) { + if (data.containsKey('id_murid')) { + final val = data['id_murid']; + if (val is Map) { + return val['id_tabel']?.toString() ?? val['id']?.toString(); + } + return val?.toString(); + } + for (var key in data.keys) { + final k = key.toString().toLowerCase(); + if (k == 'id_murid' || k == 'murid_id' || k == 'id_tabel') { + final val = data[key]; + if (val is Map) { + return val['id_tabel']?.toString() ?? val['id']?.toString(); + } + return val?.toString(); + } + } + return null; + } + + /// Filter berdasarkan nama string langsung + static Future _shouldShowNotificationByNama(String namaUser) async { + if (namaUser.isEmpty) return false; + + final prefs = await SharedPreferences.getInstance(); + String? loggedInStudentName = prefs.getString('murid_nama'); + + // If cache not found, fetch it from Supabase and cache it + if (loggedInStudentName == null || loggedInStudentName.isEmpty) { + final nis = prefs.getString('murid_nis'); + final userId = prefs.getString('user_id_admin'); + if (nis != null && userId != null) { + try { + final response = await Supabase.instance.client + .from('murid') + .select('nama') + .eq('user_id', userId) + .eq('nis', nis) + .maybeSingle(); + + if (response != null) { + loggedInStudentName = response['nama']?.toString(); + if (loggedInStudentName != null) { + await prefs.setString('murid_nama', loggedInStudentName); + } + } + } catch (e) { + debugPrint('Error fetching student name for notification filter: $e'); + } + } + } + + if (loggedInStudentName != null && loggedInStudentName.isNotEmpty) { + final matches = loggedInStudentName.trim().toLowerCase() == namaUser.trim().toLowerCase(); + debugPrint('Notification filter - Logged in: "$loggedInStudentName", Incoming: "$namaUser". Match: $matches'); + return matches; + } + + return false; + } + + /// Extract nama_user field dynamically from map (handles nested objects from foreign keys) + static String? _extractNamaUser(Map data) { + if (data.containsKey('nama_user')) { + final val = data['nama_user']; + if (val is Map) { + return val['name']?.toString() ?? val['nama']?.toString(); + } + return val?.toString(); + } + + // Case insensitive fallback + for (var key in data.keys) { + final k = key.toString().toLowerCase(); + if (k == 'nama_user' || k == 'nama' || k == 'user_name') { + final val = data[key]; + if (val is Map) { + return val['name']?.toString() ?? val['nama']?.toString(); + } + return val?.toString(); + } + } + return null; + } + + static Future _handleIncomingRemoteMessage(RemoteMessage message) async { + debugPrint('[FCM] Foreground message received: notification=${message.notification?.title}/${message.notification?.body}, data=${message.data}'); + + if (!await _shouldShowNotification(message.data)) { + debugPrint('[FCM] Foreground message ignored (not for logged in user)'); + return; + } + + final dataNamaUser = _extractNamaUser(message.data); + final notificationBody = message.notification?.body ?? message.data['body']?.toString() ?? message.data['text']?.toString() ?? ''; + final notificationTitle = message.notification?.title ?? message.data['title']?.toString() ?? 'Aplikasi Absensi'; + + final prefs = await SharedPreferences.getInstance(); + final loggedInNama = prefs.getString('murid_nama') ?? ''; + + String body = 'Siswa telah melakukan absensi'; + + if (dataNamaUser != null && dataNamaUser.isNotEmpty && dataNamaUser != '...') { + body = '$dataNamaUser telah melakukan absensi'; + } else if (notificationBody.isNotEmpty) { + body = notificationBody; + } else if (loggedInNama.isNotEmpty) { + body = '$loggedInNama telah melakukan absensi'; + } + + WidgetsBinding.instance.addPostFrameCallback((_) { + _showEntrigOverlay(title: notificationTitle, body: body); + }); + } + + static Future _handleRemoteMessageOpened(RemoteMessage message) async { + debugPrint('[FCM] Notification opened by user: data=${message.data}'); + + if (!await _shouldShowNotification(message.data)) { + debugPrint('[FCM] Opened notification ignored (not for logged in user)'); + return; + } + + final context = navigatorKey.currentContext; + if (context == null) return; + + final prefs = await SharedPreferences.getInstance(); + final nis = prefs.getString('murid_nis') ?? ''; + + if (context.mounted) { + Navigator.push( + context, + MaterialPageRoute(builder: (_) => AbsenHistory(nis: nis)), + ); + } + } + + static void _dismissOverlay() { + _autoDismissTimer?.cancel(); + _autoDismissTimer = null; + if (_overlayEntry != null) { + try { + if (_overlayEntry!.mounted) { + _overlayEntry!.remove(); + } + } catch (e) { + debugPrint('[Overlay] Dismiss error: $e'); + } finally { + _overlayEntry = null; + } + } + _accumulatedMessages.clear(); + } +} + diff --git a/lib/dashboard/d_c_murid/function/FCM_absen.dart/grup_kelas_n.dart b/lib/dashboard/d_c_murid/function/FCM_absen.dart/grup_kelas_n.dart new file mode 100644 index 0000000..69943eb --- /dev/null +++ b/lib/dashboard/d_c_murid/function/FCM_absen.dart/grup_kelas_n.dart @@ -0,0 +1,159 @@ +import 'dart:async'; +import 'package:flutter/material.dart'; +import 'package:shared_preferences/shared_preferences.dart'; +import 'package:supabase_flutter/supabase_flutter.dart'; +import 'package:apk/dashboard/d_c_murid/database/db_grup_kelas.dart'; +import 'package:apk/dashboard/d_c_murid/function/FCM_absen.dart/fcm_notif.dart'; +import 'package:apk/dashboard/d_c_murid/function/f_Pesan/grup_kelas.dart'; + +/// Notification handler for Grup Kelas chat. +/// Must call [GrupKelasNotification.init()] once after login. +/// Call [GrupKelasNotification.dispose()] on logout. +class GrupKelasNotification { + // GlobalKey provided by the root MaterialApp (shared with NotificationFCM) + static GlobalKey? navigatorKey; + + static OverlayEntry? _overlayEntry; + static Timer? _autoDismissTimer; + + static String? _currentUserId; + static String? _currentUserRole; + static String? _currentClassId; + + // Supabase stream subscription + static StreamSubscription>>? _streamSubscription; + static DateTime? _lastSeenAt; + + static final ValueNotifier hasUnread = ValueNotifier(false); + + static Future setUnread(bool value) async { + hasUnread.value = value; + try { + final prefs = await SharedPreferences.getInstance(); + await prefs.setBool('grup_kelas_has_unread', value); + if (!value) { + await prefs.setString('grup_kelas_last_read', DateTime.now().toUtc().toIso8601String()); + _lastSeenAt = DateTime.now().toUtc(); + } + if (!value) { + await prefs.setString('grup_kelas_last_read', DateTime.now().toUtc().toIso8601String()); + _lastSeenAt = DateTime.now().toUtc(); + } + } catch (e) { + debugPrint('[GrupKelasNotification] setUnread error: $e'); + } + } + + /// Initialize the listener. Safe to call multiple times — will re-initialize. + static Future init({GlobalKey? key}) async { + if (key != null) navigatorKey = key; + + await dispose(); // bersihkan state sebelumnya + + try { + final info = await DbGrupKelas.getCurrentUserRoleAndId(); + if (info == null) return; + + _currentUserId = info['id']; + _currentUserRole = info['role']; + _currentClassId = info['id_class']; + + if (_currentClassId == null || _currentClassId!.isEmpty) return; + + final prefs = await SharedPreferences.getInstance(); + hasUnread.value = prefs.getBool('grup_kelas_has_unread') ?? false; + + + + _subscribeRealtime(); + + debugPrint('[GrupKelasNotification] initialized (role: $_currentUserRole, class: $_currentClassId)'); + } catch (e) { + debugPrint('[GrupKelasNotification] init error: $e'); + } + } + + // ─── Supabase Realtime ──────────────────────────────────────────────────── + + static void _subscribeRealtime() { + final supabase = Supabase.instance.client; + _lastSeenAt = DateTime.now().toUtc(); + + _streamSubscription = supabase + .from('grup_kelas') + .stream(primaryKey: ['id_tabel']) + .order('created_at', ascending: false) + .listen( + (rows) { + // Filter: only messages for the same class_id + final filtered = _currentClassId != null + ? rows.where((r) => r['id_class']?.toString() == _currentClassId).toList() + : rows; + + // Filter: only new messages (after init / lastSeenAt) + final newMsgs = filtered.where((row) { + final t = DateTime.tryParse(row['created_at']?.toString() ?? ''); + return t != null && t.isAfter(_lastSeenAt!.subtract(const Duration(minutes: 5))); + }).toList(); + + if (newMsgs.isEmpty) return; + + // Update lastSeenAt + for (final row in newMsgs) { + final t = DateTime.tryParse(row['created_at'].toString()); + if (t != null && t.isAfter(_lastSeenAt!)) _lastSeenAt = t; + } + + debugPrint('[GrupKelasNotification] stream → ${newMsgs.length} pesan baru'); + _handleRealtimeInsert(newMsgs.first); + }, + onError: (e) { + debugPrint('[GrupKelasNotification] stream error: $e'); + }, + ); + } + + static void _handleRealtimeInsert(Map row) { + // Skip if sent by ourselves + final pengirimMurid = row['pengirim_murid']?.toString(); + final pengirimGuru = row['pengirim_guru']?.toString(); + final pengirimAdmin = row['pengirim_admin']?.toString(); + final senderId = pengirimMurid ?? pengirimGuru ?? pengirimAdmin; + + if (senderId != null && senderId == _currentUserId) { + return; + } + + final text = row['text']?.toString() ?? ''; + debugPrint('[GrupKelasNotification] Realtime → pesan baru: "$text"'); + + setUnread(true); + + WidgetsBinding.instance.addPostFrameCallback((_) { + _showOverlayCard(text: text); + }); + } + + static Future dispose() async { + _streamSubscription?.cancel(); + _streamSubscription = null; + _lastSeenAt = null; + _dismissOverlay(); + } + + // ─── Overlay UI ─────────────────────────────────────────────────────────── + + static void _showOverlayCard({required String text}) { + // Disabled overlay popups as requested, keeping only red dot/badge updates + return; + } + + static void _dismissOverlay() { + _autoDismissTimer?.cancel(); + _autoDismissTimer = null; + if (_overlayEntry != null) { + _overlayEntry!.remove(); + _overlayEntry = null; + } + } +} diff --git a/lib/dashboard/d_c_murid/function/FCM_absen.dart/grup_sekolah_n.dart b/lib/dashboard/d_c_murid/function/FCM_absen.dart/grup_sekolah_n.dart new file mode 100644 index 0000000..b274f7d --- /dev/null +++ b/lib/dashboard/d_c_murid/function/FCM_absen.dart/grup_sekolah_n.dart @@ -0,0 +1,191 @@ +import 'dart:async'; +import 'package:flutter/material.dart'; +import 'package:shared_preferences/shared_preferences.dart'; +import 'package:supabase_flutter/supabase_flutter.dart'; +import 'package:apk/dashboard/d_c_murid/database/db_grup_kelas.dart'; +import 'package:apk/dashboard/d_c_murid/function/FCM_absen.dart/fcm_notif.dart'; +import 'package:apk/dashboard/d_c_murid/function/f_Pesan/grup_sekolah.dart'; + +/// Notification handler for Grup Sekolah chat. +/// +/// Menggunakan dua mekanisme: +/// 1. **Supabase Realtime** — foreground notification utama (tidak bergantung FCM/Entrig). +/// Langsung listen INSERT pada tabel `grup_sekolah` dan tampilkan overlay. +/// 2. **Entrig callback** — fallback dari [NotificationFCM] jika event datang via FCM. +/// +/// Must call [GrupSekolahNotification.init()] once after login. +/// Call [GrupSekolahNotification.dispose()] on logout. +class GrupSekolahNotification { + // GlobalKey provided by the root MaterialApp (shared with NotificationFCM) + static GlobalKey? navigatorKey; + + static OverlayEntry? _overlayEntry; + static Timer? _autoDismissTimer; + + static String? _currentUserId; + static String? _currentUserRole; + static String? _currentAdminId; // untuk filter per-sekolah (user_id di grup_sekolah) + + // Supabase stream subscription (lebih reliable dari onPostgresChanges) + static StreamSubscription>>? _streamSubscription; + static DateTime? _lastSeenAt; // untuk filter pesan baru saja + + static final ValueNotifier hasUnread = ValueNotifier(false); + + static Future setUnread(bool value) async { + hasUnread.value = value; + try { + final prefs = await SharedPreferences.getInstance(); + await prefs.setBool('grup_sekolah_has_unread', value); + if (!value) { + await prefs.setString('grup_sekolah_last_read', DateTime.now().toUtc().toIso8601String()); + _lastSeenAt = DateTime.now().toUtc(); + } + if (!value) { + await prefs.setString('grup_sekolah_last_read', DateTime.now().toUtc().toIso8601String()); + _lastSeenAt = DateTime.now().toUtc(); + } + } catch (e) { + debugPrint('[GrupSekolahNotification] setUnread error: $e'); + } + } + + /// Initialize listener. Safe to call multiple times — will re-initialize. + static Future init({GlobalKey? key}) async { + if (key != null) navigatorKey = key; + + dispose(); // bersihkan state sebelumnya + + try { + final info = await DbGrupKelas.getCurrentUserRoleAndId(); + if (info == null) return; + + _currentUserId = info['id']; + _currentUserRole = info['role']; + + // Ambil admin_id dari SharedPreferences untuk filter per-sekolah + final prefs = await SharedPreferences.getInstance(); + _currentAdminId = prefs.getString('user_id_admin'); + + // Load status unread + hasUnread.value = prefs.getBool('grup_sekolah_has_unread') ?? false; + + + + // 2. Supabase Realtime (mekanisme utama foreground) + _subscribeRealtime(); + + debugPrint( + '[GrupSekolahNotification] initialized ' + '(role: $_currentUserRole, adminId: $_currentAdminId)', + ); + } catch (e) { + debugPrint('[GrupSekolahNotification] init error: $e'); + } + } + + // ─── Supabase Realtime ──────────────────────────────────────────────────── + + static void _subscribeRealtime() async { + final supabase = Supabase.instance.client; + final prefs = await SharedPreferences.getInstance(); + final lastReadStr = prefs.getString('grup_sekolah_last_read'); + _lastSeenAt = lastReadStr != null ? DateTime.parse(lastReadStr) : DateTime.now().toUtc(); + + _streamSubscription = supabase + .from('grup_sekolah') + .stream(primaryKey: ['id_tabel']) + .order('created_at', ascending: false) + .listen( + (rows) { + // Filter: hanya pesan dari sekolah yang sama (client-side) + final filtered = _currentAdminId != null + ? rows.where((r) => r['user_id']?.toString() == _currentAdminId).toList() + : rows; + + // Filter: hanya pesan baru (setelah waktu init / lastSeenAt) + final newMsgs = filtered.where((row) { + final t = DateTime.tryParse(row['created_at']?.toString() ?? ''); + return t != null && t.isAfter(_lastSeenAt!.subtract(const Duration(minutes: 5))); + }).toList(); + + if (newMsgs.isEmpty) return; + + // Update lastSeenAt ke pesan paling baru + for (final row in newMsgs) { + final t = DateTime.tryParse(row['created_at'].toString()); + if (t != null && t.isAfter(_lastSeenAt!)) _lastSeenAt = t; + } + + debugPrint('[GrupSekolahNotification] stream → ${newMsgs.length} pesan baru'); + // Tampilkan notifikasi untuk pesan pertama (terbaru) + _handleRealtimeInsert(newMsgs.first); + }, + onError: (e) { + debugPrint('[GrupSekolahNotification] stream error: $e'); + }, + ); + + debugPrint('[GrupSekolahNotification] stream subscribed (lastSeenAt: $_lastSeenAt)'); + } + + /// Tangani INSERT baru dari Supabase Realtime. + static void _handleRealtimeInsert(Map row) { + // Skip jika pesan dari user ini sendiri + final pengirimMurid = row['pengirim_murid']?.toString(); + final pengirimGuru = row['pengirim_guru']?.toString(); + final pengirimAdmin = row['pengirim_admin']?.toString(); + final senderId = pengirimMurid ?? pengirimGuru ?? pengirimAdmin; + + if (senderId != null && senderId == _currentUserId) { + debugPrint('[GrupSekolahNotification] Skip own message'); + return; + } + + final text = row['text']?.toString() ?? ''; + debugPrint('[GrupSekolahNotification] Realtime → pesan baru: "$text"'); + + setUnread(true); + + // Tampilkan di frame berikutnya agar Navigator & Overlay sudah siap + WidgetsBinding.instance.addPostFrameCallback((_) { + _showOverlayCard( + title: 'Grup Sekolah', + body: 'Pesan Masuk', + text: text, + ); + }); + } + + // ─── Lifecycle ──────────────────────────────────────────────────────────── + + /// Bersihkan listener dan sembunyikan overlay. + static void dispose() { + // Cancel stream subscription + _streamSubscription?.cancel(); + _streamSubscription = null; + _lastSeenAt = null; + + _dismissOverlay(); + } + + // ─── Overlay UI ─────────────────────────────────────────────────────────── + + static void _showOverlayCard({ + required String title, + required String body, + required String text, + }) { + // Disabled overlay popups as requested, keeping only red dot/badge updates + return; + } + + static void _dismissOverlay() { + _autoDismissTimer?.cancel(); + _autoDismissTimer = null; + if (_overlayEntry != null) { + _overlayEntry!.remove(); + _overlayEntry = null; + } + } +} diff --git a/lib/dashboard/d_c_murid/function/absen/absen_history.dart b/lib/dashboard/d_c_murid/function/absen/absen_history.dart new file mode 100644 index 0000000..3213479 --- /dev/null +++ b/lib/dashboard/d_c_murid/function/absen/absen_history.dart @@ -0,0 +1,765 @@ +import 'package:flutter/material.dart'; +import 'package:intl/intl.dart'; +import 'package:apk/dashboard/d_c_murid/database/db_absensi.dart'; + +class AbsenHistory extends StatefulWidget { + final String nis; + + const AbsenHistory({super.key, required this.nis}); + + @override + State createState() => _AbsenHistoryState(); +} + +class _AbsenHistoryState extends State { + bool _isLoading = true; + String _error = ''; + + List> _allAbsen = []; + int _activeTabIndex = 0; // 0 for Harian, 1 for Mingguan, 2 for Bulanan + final Set _expandedWeeks = {}; // Keep track of expanded week groups + final Set _expandedMonths = {}; // Keep track of expanded month groups + + @override + void initState() { + super.initState(); + _fetchData(); + } + + Future _fetchData() async { + if (widget.nis == '...') { + setState(() { + _isLoading = true; + _error = ''; + }); + return; + } + + if (widget.nis.isEmpty || widget.nis == '-') { + setState(() { + _isLoading = false; + _error = 'NIS tidak ditemukan'; + }); + return; + } + + setState(() { + _isLoading = true; + _error = ''; + }); + + try { + final db = DbAbsensi(); + final data = await db.getAbsensi(widget.nis); + + // Urutkan data dari tanggal terbaru ke terlama + data.sort((a, b) => b['date'].toString().compareTo(a['date'].toString())); + + if (mounted) { + setState(() { + _allAbsen = data; + _isLoading = false; + + // Otomatis expand bulan teratas (paling baru) + if (data.isNotEmpty) { + try { + final latestDate = DateTime.parse(data.first['date'].toString()); + final firstOfMonth = DateTime(latestDate.year, latestDate.month, 1); + _expandedMonths.add(firstOfMonth); + } catch (_) {} + } + }); + } + } catch (e) { + if (mounted) { + setState(() { + _error = e.toString(); + _isLoading = false; + }); + } + } + } + + Color _getStatusColor(String status) { + switch (status.toLowerCase()) { + case 'hadir': return Colors.green; + case 'izin': return Colors.blue; + case 'sakit': return Colors.orange; + case 'alpha': return Colors.red; + case 'terlambat': return Colors.amber; + case 'libur': return Colors.purple; + default: return Colors.grey; + } + } + + // Helper to group attendance records by calendar week (Monday to Sunday) + // Hanya menampilkan minggu pada bulan berjalan + Map>> get _groupedWeeks { + final Map>> groups = {}; + final now = DateTime.now(); + for (var row in _allAbsen) { + final dateStr = row['date'].toString(); + try { + final date = DateTime.parse(dateStr); + // Filter hanya untuk bulan berjalan + if (date.year != now.year || date.month != now.month) continue; + + // Find Monday of that date's week + final monday = DateTime(date.year, date.month, date.day - (date.weekday - 1)); + if (!groups.containsKey(monday)) { + groups[monday] = []; + } + groups[monday]!.add(row); + } catch (_) {} + } + + // Sort keys descending (latest week first) + final sortedKeys = groups.keys.toList()..sort((a, b) => b.compareTo(a)); + final Map>> sortedGroups = {}; + for (var key in sortedKeys) { + groups[key]!.sort((a, b) => b['date'].toString().compareTo(a['date'].toString())); + sortedGroups[key] = groups[key]!; + } + return sortedGroups; + } + + // Helper to group attendance records by month + Map>> get _groupedMonths { + final Map>> groups = {}; + for (var row in _allAbsen) { + final dateStr = row['date'].toString(); + try { + final date = DateTime.parse(dateStr); + final firstOfMonth = DateTime(date.year, date.month, 1); + if (!groups.containsKey(firstOfMonth)) { + groups[firstOfMonth] = []; + } + groups[firstOfMonth]!.add(row); + } catch (_) {} + } + + final sortedKeys = groups.keys.toList()..sort((a, b) => b.compareTo(a)); + final Map>> sortedGroups = {}; + for (var key in sortedKeys) { + sortedGroups[key] = groups[key]!; + } + return sortedGroups; + } + + Widget _buildDailyCard(Map row) { + final dateStr = row['date'].toString(); + String displayDate = dateStr; + String displayDay = ''; + try { + final d = DateTime.parse(dateStr); + displayDate = DateFormat('dd MMM yyyy').format(d); + displayDay = DateFormat('EEEE').format(d); + } catch (_) {} + + final status = DbAbsensi.getStatus(row); + final color = _getStatusColor(status); + final masuk = row['masuk'] ?? '--:--'; + + return Container( + margin: const EdgeInsets.only(bottom: 14), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(16), + border: Border.all(color: const Color(0xFFE2E8F0)), + boxShadow: [ + BoxShadow( + color: Colors.black.withOpacity(0.01), + blurRadius: 4, + offset: const Offset(0, 2), + ), + ], + ), + child: Padding( + padding: const EdgeInsets.all(16), + child: Row( + children: [ + // Date Badge + Container( + width: 58, + height: 58, + decoration: BoxDecoration( + color: const Color(0xFFEFF6FF), + borderRadius: BorderRadius.circular(12), + ), + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Text( + displayDay.length >= 3 ? displayDay.substring(0, 3).toUpperCase() : displayDay.toUpperCase(), + style: const TextStyle( + fontFamily: 'Inter', + fontSize: 10, + fontWeight: FontWeight.bold, + color: Color(0xFF2563EB), + ), + ), + const SizedBox(height: 2), + Text( + displayDate.length >= 2 ? displayDate.substring(0, 2) : displayDate, + style: const TextStyle( + fontFamily: 'Inter', + fontSize: 18, + fontWeight: FontWeight.w800, + color: Color(0xFF1E293B), + ), + ), + ], + ), + ), + const SizedBox(width: 16), + + // Info Column + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Container( + padding: const EdgeInsets.symmetric(horizontal: 8, vertical: 4), + decoration: BoxDecoration( + color: color.withOpacity(0.1), + borderRadius: BorderRadius.circular(6), + ), + child: Text( + status, + style: TextStyle( + fontFamily: 'Inter', + fontSize: 12, + fontWeight: FontWeight.bold, + color: color, + ), + ), + ), + Text( + displayDate, + style: const TextStyle( + fontFamily: 'Inter', + fontSize: 12, + color: Color(0xFF64748B), + ), + ), + ], + ), + const SizedBox(height: 10), + Row( + children: [ + const Icon(Icons.login, size: 14, color: Color(0xFF94A3B8)), + const SizedBox(width: 4), + Text( + masuk, + style: const TextStyle(fontFamily: 'Inter', fontSize: 13, color: Color(0xFF475569)), + ), + ], + ), + ], + ), + ), + ], + ), + ), + ); + } + + Widget _buildWeeklyCard(DateTime weekStart, List> records) { + final weekEnd = weekStart.add(const Duration(days: 6)); + final isExpanded = _expandedWeeks.contains(weekStart); + + int hadir = 0; + int sakit = 0; + int izin = 0; + int alpha = 0; + int terlambat = 0; + + for (var r in records) { + final status = DbAbsensi.getStatus(r).toLowerCase(); + if (status == 'hadir') { + hadir++; + } else if (status == 'sakit') { + sakit++; + } else if (status == 'izin') { + izin++; + } else if (status == 'alpha') { + alpha++; + } else if (status == 'terlambat') { + terlambat++; + } + } + + final dateRangeStr = "${DateFormat('dd MMM').format(weekStart)} - ${DateFormat('dd MMM yyyy').format(weekEnd)}"; + + return Container( + margin: const EdgeInsets.only(bottom: 16), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(16), + border: Border.all(color: const Color(0xFFE2E8F0)), + boxShadow: [ + BoxShadow( + color: Colors.black.withOpacity(0.01), + blurRadius: 4, + offset: const Offset(0, 2), + ), + ], + ), + child: Column( + children: [ + // Header Tappable to Toggle Expand + InkWell( + onTap: () { + setState(() { + if (isExpanded) { + _expandedWeeks.remove(weekStart); + } else { + _expandedWeeks.add(weekStart); + } + }); + }, + borderRadius: BorderRadius.circular(16), + child: Padding( + padding: const EdgeInsets.all(16), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Row( + children: [ + const Icon(Icons.date_range, color: Color(0xFF2563EB), size: 20), + const SizedBox(width: 8), + Text( + dateRangeStr, + style: const TextStyle( + fontFamily: 'Inter', + fontSize: 14, + fontWeight: FontWeight.bold, + color: Color(0xFF1E293B), + ), + ), + ], + ), + Icon( + isExpanded ? Icons.keyboard_arrow_up : Icons.keyboard_arrow_down, + color: const Color(0xFF64748B), + size: 20, + ), + ], + ), + const SizedBox(height: 12), + // Summary Badges Row + SingleChildScrollView( + scrollDirection: Axis.horizontal, + child: Row( + children: [ + _buildStatBadge('Hadir', hadir, Colors.green), + _buildStatBadge('Sakit', sakit, Colors.orange), + _buildStatBadge('Izin', izin, Colors.blue), + _buildStatBadge('Alpha', alpha, Colors.red), + _buildStatBadge('Terlambat', terlambat, Colors.amber), + ], + ), + ), + ], + ), + ), + ), + + // Expandable Child List + if (isExpanded) ...[ + const Divider(height: 1, thickness: 1, color: Color(0xFFF1F5F9)), + Container( + color: const Color(0xFFF8FAFC), + padding: const EdgeInsets.all(12), + child: ListView.builder( + shrinkWrap: true, + physics: const NeverScrollableScrollPhysics(), + itemCount: records.length, + itemBuilder: (context, idx) { + return _buildDailyCard(records[idx]); + }, + ), + ), + ], + ], + ), + ); + } + + Widget _buildMonthlyCard(DateTime monthStart, List> records) { + final isExpanded = _expandedMonths.contains(monthStart); + + int hadir = 0; + int sakit = 0; + int izin = 0; + int alpha = 0; + + for (var r in records) { + final status = DbAbsensi.getStatus(r).toLowerCase(); + if (status == 'hadir' || status == 'terlambat') { + hadir++; + } else if (status == 'sakit') { + sakit++; + } else if (status == 'izin') { + izin++; + } else if (status == 'alpha') { + alpha++; + } + } + + final monthStr = DateFormat('MMMM yyyy').format(monthStart); + + return Container( + margin: const EdgeInsets.only(bottom: 16), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(16), + border: Border.all(color: const Color(0xFFE2E8F0)), + boxShadow: [ + BoxShadow( + color: Colors.black.withOpacity(0.01), + blurRadius: 4, + offset: const Offset(0, 2), + ), + ], + ), + child: Column( + children: [ + // Header Tappable to Toggle Expand + InkWell( + onTap: () { + setState(() { + if (isExpanded) { + _expandedMonths.remove(monthStart); + } else { + _expandedMonths.add(monthStart); + } + }); + }, + borderRadius: BorderRadius.circular(16), + child: Padding( + padding: const EdgeInsets.all(16), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Row( + children: [ + const Icon(Icons.calendar_month, color: Color(0xFF2563EB), size: 20), + const SizedBox(width: 8), + Text( + monthStr, + style: const TextStyle( + fontFamily: 'Inter', + fontSize: 14, + fontWeight: FontWeight.bold, + color: Color(0xFF1E293B), + ), + ), + ], + ), + Icon( + isExpanded ? Icons.keyboard_arrow_up : Icons.keyboard_arrow_down, + color: const Color(0xFF64748B), + size: 20, + ), + ], + ), + ), + ), + + // Expandable Child List showing ONLY H S A I stats detail list (Terlambat is merged into Hadir) + if (isExpanded) ...[ + const Divider(height: 1, thickness: 1, color: Color(0xFFF1F5F9)), + Container( + color: const Color(0xFFF8FAFC), + padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 20), + child: Column( + children: [ + _buildMonthlyStatRow('Hadir', hadir, Colors.green, Icons.check_circle_outline), + const SizedBox(height: 12), + _buildMonthlyStatRow('Sakit', sakit, Colors.orange, Icons.sick_outlined), + const SizedBox(height: 12), + _buildMonthlyStatRow('Izin', izin, Colors.blue, Icons.assignment_outlined), + const SizedBox(height: 12), + _buildMonthlyStatRow('Alpha', alpha, Colors.red, Icons.cancel_outlined), + ], + ), + ), + ], + ], + ), + ); + } + + Widget _buildMonthlyStatRow(String label, int count, Color color, IconData icon) { + return Container( + padding: const EdgeInsets.all(14), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(12), + border: Border.all(color: const Color(0xFFE2E8F0)), + ), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Row( + children: [ + Icon(icon, color: color, size: 22), + const SizedBox(width: 12), + Text( + label, + style: const TextStyle( + fontFamily: 'Inter', + fontSize: 14, + fontWeight: FontWeight.w600, + color: Color(0xFF1E293B), + ), + ), + ], + ), + Container( + padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 6), + decoration: BoxDecoration( + color: color.withOpacity(0.1), + borderRadius: BorderRadius.circular(8), + ), + child: Text( + "$count Hari", + style: TextStyle( + fontFamily: 'Inter', + fontSize: 13, + fontWeight: FontWeight.bold, + color: color, + ), + ), + ), + ], + ), + ); + } + + Widget _buildStatBadge(String label, int count, Color color) { + return Container( + margin: const EdgeInsets.only(right: 8), + padding: const EdgeInsets.symmetric(horizontal: 8, vertical: 4), + decoration: BoxDecoration( + color: color.withOpacity(0.08), + borderRadius: BorderRadius.circular(6), + border: Border.all(color: color.withOpacity(0.2), width: 0.5), + ), + child: Row( + mainAxisSize: MainAxisSize.min, + children: [ + Container( + width: 6, + height: 6, + decoration: BoxDecoration( + color: color, + shape: BoxShape.circle, + ), + ), + const SizedBox(width: 6), + Text( + "$label: $count", + style: TextStyle( + fontFamily: 'Inter', + fontSize: 11, + fontWeight: FontWeight.w600, + color: color, + ), + ), + ], + ), + ); + } + + @override + Widget build(BuildContext context) { + final Map>> grouped = _groupedWeeks; + + return Scaffold( + backgroundColor: const Color(0xFFF8FAFC), + appBar: AppBar( + titleSpacing: 20, + title: const Text('Riwayat Absensi'), + titleTextStyle: const TextStyle( + fontFamily: 'Inter', + fontSize: 16, + fontWeight: FontWeight.w700, + color: Colors.white, + ), + backgroundColor: const Color(0xFF2563EB), + elevation: 0, + iconTheme: const IconThemeData(color: Colors.white), + ), + body: Column( + children: [ + // Sleek Toggle segment (Harian, Mingguan, Bulanan) + Container( + color: Colors.white, + padding: const EdgeInsets.symmetric(horizontal: 20, vertical: 12), + child: Container( + height: 44, + decoration: BoxDecoration( + color: const Color(0xFFF1F5F9), + borderRadius: BorderRadius.circular(12), + ), + child: Row( + children: [ + // Harian Tab + Expanded( + child: GestureDetector( + onTap: () => setState(() => _activeTabIndex = 0), + child: Container( + decoration: BoxDecoration( + color: _activeTabIndex == 0 ? Colors.white : Colors.transparent, + borderRadius: BorderRadius.circular(10), + boxShadow: _activeTabIndex == 0 + ? [ + BoxShadow( + color: Colors.black.withOpacity(0.05), + blurRadius: 4, + offset: const Offset(0, 2), + ) + ] + : null, + ), + margin: const EdgeInsets.all(4), + alignment: Alignment.center, + child: Text( + 'Harian', + style: TextStyle( + fontFamily: 'Inter', + fontSize: 13, + fontWeight: FontWeight.bold, + color: _activeTabIndex == 0 ? const Color(0xFF2563EB) : const Color(0xFF64748B), + ), + ), + ), + ), + ), + // Mingguan Tab + Expanded( + child: GestureDetector( + onTap: () => setState(() => _activeTabIndex = 1), + child: Container( + decoration: BoxDecoration( + color: _activeTabIndex == 1 ? Colors.white : Colors.transparent, + borderRadius: BorderRadius.circular(10), + boxShadow: _activeTabIndex == 1 + ? [ + BoxShadow( + color: Colors.black.withOpacity(0.05), + blurRadius: 4, + offset: const Offset(0, 2), + ) + ] + : null, + ), + margin: const EdgeInsets.all(4), + alignment: Alignment.center, + child: Text( + 'Mingguan', + style: TextStyle( + fontFamily: 'Inter', + fontSize: 13, + fontWeight: FontWeight.bold, + color: _activeTabIndex == 1 ? const Color(0xFF2563EB) : const Color(0xFF64748B), + ), + ), + ), + ), + ), + // Bulanan Tab + Expanded( + child: GestureDetector( + onTap: () => setState(() => _activeTabIndex = 2), + child: Container( + decoration: BoxDecoration( + color: _activeTabIndex == 2 ? Colors.white : Colors.transparent, + borderRadius: BorderRadius.circular(10), + boxShadow: _activeTabIndex == 2 + ? [ + BoxShadow( + color: Colors.black.withOpacity(0.05), + blurRadius: 4, + offset: const Offset(0, 2), + ) + ] + : null, + ), + margin: const EdgeInsets.all(4), + alignment: Alignment.center, + child: Text( + 'Bulanan', + style: TextStyle( + fontFamily: 'Inter', + fontSize: 13, + fontWeight: FontWeight.bold, + color: _activeTabIndex == 2 ? const Color(0xFF2563EB) : const Color(0xFF64748B), + ), + ), + ), + ), + ), + ], + ), + ), + ), + const Divider(height: 1, thickness: 1, color: Color(0xFFE2E8F0)), + + // Content + Expanded( + child: _isLoading + ? const Center(child: CircularProgressIndicator()) + : _error.isNotEmpty + ? Center(child: Text('Error: $_error', style: const TextStyle(color: Colors.red))) + : _allAbsen.isEmpty + ? const Center( + child: Text( + 'Tidak ada data absensi.', + style: TextStyle(fontFamily: 'Inter', color: Color(0xFF94A3B8)), + ), + ) + : _activeTabIndex == 0 + // Harian List View + ? ListView.builder( + padding: const EdgeInsets.all(20), + itemCount: _allAbsen.length, + itemBuilder: (context, index) { + return _buildDailyCard(_allAbsen[index]); + }, + ) + : _activeTabIndex == 1 + // Mingguan List View + ? ListView.builder( + padding: const EdgeInsets.all(20), + itemCount: grouped.length, + itemBuilder: (context, index) { + final key = grouped.keys.elementAt(index); + final val = grouped[key]!; + return _buildWeeklyCard(key, val); + }, + ) + // Bulanan List View + : ListView.builder( + padding: const EdgeInsets.all(20), + itemCount: _groupedMonths.length, + itemBuilder: (context, index) { + final key = _groupedMonths.keys.elementAt(index); + final val = _groupedMonths[key]!; + return _buildMonthlyCard(key, val); + }, + ), + ), + ], + ), + ); + } +} diff --git a/lib/dashboard/d_c_murid/function/absen/absen_preview.dart b/lib/dashboard/d_c_murid/function/absen/absen_preview.dart new file mode 100644 index 0000000..3627e23 --- /dev/null +++ b/lib/dashboard/d_c_murid/function/absen/absen_preview.dart @@ -0,0 +1,248 @@ +import 'package:flutter/material.dart'; +import 'package:intl/intl.dart'; +import 'package:apk/dashboard/d_c_murid/database/db_absensi.dart'; + +class AbsenPreview extends StatefulWidget { + final String nis; + + const AbsenPreview({super.key, required this.nis}); + + @override + State createState() => _AbsenPreviewState(); +} + +class _AbsenPreviewState extends State { + bool _isLoading = true; + String _error = ''; + + Map? _todayAbsen; + + @override + void initState() { + super.initState(); + _fetchData(); + } + + @override + void didUpdateWidget(covariant AbsenPreview oldWidget) { + super.didUpdateWidget(oldWidget); + if (oldWidget.nis != widget.nis) { + _fetchData(); + } + } + Future _fetchData() async { + if (widget.nis == '...') { + setState(() { + _isLoading = true; + _error = ''; + }); + return; + } + + if (widget.nis.isEmpty || widget.nis == '-') { + setState(() { + _isLoading = false; + _error = 'NIS tidak ditemukan'; + }); + return; + } + + setState(() { + _isLoading = true; + _error = ''; + }); + + try { + final db = DbAbsensi(); + final data = await db.getAbsensi(widget.nis); + + final now = DateTime.now(); + final todayStr = DateFormat('yyyy-MM-dd').format(now); + + Map? today; + + for (var row in data) { + final dateStr = row['date'].toString(); + + // Cek hari ini + if (dateStr == todayStr || dateStr.startsWith(todayStr)) { + today = row; + break; + } + } + + if (mounted) { + setState(() { + _todayAbsen = today; + _isLoading = false; + }); + } + } catch (e) { + if (mounted) { + setState(() { + _error = e.toString(); + _isLoading = false; + }); + } + } + } + + Color _getStatusColor(String status) { + switch (status.toLowerCase()) { + case 'hadir': return Colors.green; + case 'izin': return Colors.blue; + case 'sakit': return Colors.orange; + case 'alpha': return Colors.red; + case 'terlambat': return Colors.amber; + case 'libur': return Colors.purple; + default: return Colors.grey; + } + } + + Widget _buildStatusBadge(String status) { + final color = _getStatusColor(status); + return Container( + padding: const EdgeInsets.symmetric(horizontal: 10, vertical: 4), + decoration: BoxDecoration( + color: color.withOpacity(0.1), + borderRadius: BorderRadius.circular(8), + border: Border.all(color: color.withOpacity(0.5)), + ), + child: Text( + status, + style: TextStyle( + fontFamily: 'Inter', + fontSize: 12, + fontWeight: FontWeight.bold, + color: color, + ), + ), + ); + } + + @override + Widget build(BuildContext context) { + if (_isLoading) { + return const Center( + child: Padding( + padding: EdgeInsets.all(20.0), + child: CircularProgressIndicator(), + ), + ); + } + + if (_error.isNotEmpty) { + return Container( + padding: const EdgeInsets.all(20), + decoration: BoxDecoration( + color: Colors.red.shade50, + borderRadius: BorderRadius.circular(20), + border: Border.all(color: Colors.red.shade200), + ), + child: Text( + 'Gagal memuat absensi: $_error', + style: TextStyle(color: Colors.red.shade700, fontFamily: 'Inter'), + ), + ); + } + + final todayStatus = _todayAbsen != null ? DbAbsensi.getStatus(_todayAbsen!) : 'Belum Absen'; + final masuk = _todayAbsen?['masuk'] ?? '--:--'; + + return Container( + width: double.infinity, + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(20), + boxShadow: [ + BoxShadow( + color: Colors.black.withOpacity(0.05), + blurRadius: 10, + offset: const Offset(0, 4), + ), + ], + ), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + // Header Absen Hari Ini + Container( + padding: const EdgeInsets.all(20), + decoration: const BoxDecoration( + color: Color(0xFF2563EB), + borderRadius: BorderRadius.only( + topLeft: Radius.circular(20), + topRight: Radius.circular(20), + ), + ), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + const Text( + 'Absensi Hari Ini', + style: TextStyle( + fontFamily: 'Inter', + fontSize: 16, + fontWeight: FontWeight.bold, + color: Colors.white, + ), + ), + Text( + DateFormat('dd MMM yyyy').format(DateTime.now()), + style: const TextStyle( + fontFamily: 'Inter', + fontSize: 14, + color: Colors.white70, + ), + ), + ], + ), + ), + + // Konten Hari Ini + Padding( + padding: const EdgeInsets.all(20), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceAround, + children: [ + _buildTimeBox('Masuk', masuk, Icons.login, Colors.green), + Column( + children: [ + const Text('Status', style: TextStyle(fontFamily: 'Inter', fontSize: 12, color: Colors.grey)), + const SizedBox(height: 8), + _buildStatusBadge(todayStatus), + ], + ), + ], + ), + ), + + ], + ), + ); + } + + Widget _buildTimeBox(String label, String time, IconData icon, Color color) { + return Column( + children: [ + Row( + children: [ + Icon(icon, size: 14, color: Colors.grey), + const SizedBox(width: 4), + Text(label, style: const TextStyle(fontFamily: 'Inter', fontSize: 12, color: Colors.grey)), + ], + ), + const SizedBox(height: 8), + Text( + time, + style: TextStyle( + fontFamily: 'Inter', + fontSize: 18, + fontWeight: FontWeight.bold, + color: color, + ), + ), + ], + ); + } +} diff --git a/lib/dashboard/d_c_murid/function/f_Pesan/chat_admin.dart b/lib/dashboard/d_c_murid/function/f_Pesan/chat_admin.dart new file mode 100644 index 0000000..cc8e732 --- /dev/null +++ b/lib/dashboard/d_c_murid/function/f_Pesan/chat_admin.dart @@ -0,0 +1,462 @@ +import 'dart:io'; +import 'package:flutter/material.dart'; +import 'package:shared_preferences/shared_preferences.dart'; +import 'package:supabase_flutter/supabase_flutter.dart'; +import 'package:apk/dashboard/d_c_murid/database/db_pesan_private.dart'; +import 'package:intl/intl.dart'; +import 'package:file_picker/file_picker.dart'; +import 'package:image_picker/image_picker.dart'; +import 'package:url_launcher/url_launcher.dart'; +import 'package:apk/dashboard/d_c_murid/database/storage/image_doc.dart'; +import 'package:apk/dashboard/d_c_murid/function/f_Pesan/doc_image.dart'; +import 'package:apk/dashboard/d_c_murid/function/FCM_absen.dart/chat_private_n.dart'; + +class ChatAdminPage extends StatefulWidget { + const ChatAdminPage({super.key}); + + @override + State createState() => _ChatAdminPageState(); +} + +class _ChatAdminPageState extends State { + final TextEditingController _messageController = TextEditingController(); + final DbPesanPrivate _dbPesan = DbPesanPrivate(); + + bool _isLoading = true; + String? _errorMessage; + String? _idAdmin; + String? _idMurid; + String? _userIdAdmin; + + Stream>>? _chatStream; + + @override + void initState() { + super.initState(); + _fetchIdentities(); + } + + Future _fetchIdentities() async { + try { + final prefs = await SharedPreferences.getInstance(); + final nis = prefs.getString('murid_nis'); + _userIdAdmin = prefs.getString('user_id_admin'); + + if (nis == null || _userIdAdmin == null) { + throw Exception('Data login tidak lengkap (NIS atau User ID kosong)'); + } + + // 1. Dapatkan id_murid (id_tabel) + final muridRes = await Supabase.instance.client + .from('murid') + .select('id_tabel') + .eq('user_id', _userIdAdmin!) + .eq('nis', nis) + .single(); + _idMurid = muridRes['id_tabel']?.toString(); + + // 2. Dapatkan id_admin dari user_admin. Kolom `id` di tabel user_admin + // adalah foreign key yang terhubung langsung ke auth.users(id). + final adminRes = await Supabase.instance.client + .from('user_admin') + .select('id') + .eq('id', _userIdAdmin!) + .single(); + _idAdmin = adminRes['id']?.toString(); + + if (_idMurid != null && _idAdmin != null) { + _chatStream = _dbPesan.getChatWithAdminStream(_idMurid!, _idAdmin!); + ChatPrivateNotification.setSenderUnread(_idAdmin!, false); + } + } catch (e) { + _errorMessage = 'Error fetching identities: $e'; + debugPrint(_errorMessage); + } finally { + if (mounted) { + setState(() { + _isLoading = false; + }); + } + } + } + + Future _pickAndSendImage() async { + final picker = ImagePicker(); + final pickedFile = await picker.pickImage(source: ImageSource.gallery); + if (pickedFile != null) { + final file = File(pickedFile.path); + final name = pickedFile.name; + setState(() => _isLoading = true); + final url = await ImageDocStorage.uploadFileObject(file, name); + if (url != null) { + final currentUserId = Supabase.instance.client.auth.currentUser?.id ?? _userIdAdmin; + final data = { + 'text': 'IMAGE_URL:$url', + 'pengirim_murid': _idMurid, + 'penerima_admin': _idAdmin, + 'user_id': currentUserId, + }; + await _dbPesan.sendMessage(data); + _fetchIdentities(); + } else { + setState(() => _isLoading = false); + if (mounted) ScaffoldMessenger.of(context).showSnackBar(const SnackBar(content: Text('Gagal unggah gambar'))); + } + } + } + + Future _pickAndSendDoc() async { + final result = await FilePicker.pickFiles( + type: FileType.custom, + allowedExtensions: ['pdf', 'doc', 'docx', 'xls', 'xlsx', 'txt', 'zip', 'rar'], + withData: true, + ); + if (result != null && result.files.single.bytes != null) { + final bytes = result.files.single.bytes!; + final name = result.files.single.name; + setState(() => _isLoading = true); + final url = await ImageDocStorage.uploadFile(bytes, name); + if (url != null) { + final currentUserId = Supabase.instance.client.auth.currentUser?.id ?? _userIdAdmin; + final data = { + 'text': 'DOC_URL:$url', + 'pengirim_murid': _idMurid, + 'penerima_admin': _idAdmin, + 'user_id': currentUserId, + }; + await _dbPesan.sendMessage(data); + _fetchIdentities(); + } else { + setState(() => _isLoading = false); + if (mounted) ScaffoldMessenger.of(context).showSnackBar(const SnackBar(content: Text('Gagal unggah dokumen'))); + } + } + } + + String _formatTime(String isoString) { + try { + final date = DateTime.parse(isoString).toLocal(); + return DateFormat('HH:mm').format(date); + } catch (_) { + return ''; + } + } + + Future _sendMessage() async { + if (_messageController.text.trim().isEmpty) return; + if (_idMurid == null || _idAdmin == null || _userIdAdmin == null) return; + + final text = _messageController.text.trim(); + _messageController.clear(); + + final currentUserId = Supabase.instance.client.auth.currentUser?.id ?? _userIdAdmin; + + final data = { + 'text': text, + 'pengirim_murid': _idMurid, + 'penerima_admin': _idAdmin, + 'user_id': currentUserId, + }; + + try { + await _dbPesan.sendMessage(data); + + // Reload pembacaan database setelah mengirim pesan + if (mounted) { + setState(() { + _chatStream = _dbPesan.getChatWithAdminStream(_idMurid!, _idAdmin!); + }); + } + } catch (e) { + if (mounted) { + ScaffoldMessenger.of(context).showSnackBar(SnackBar(content: Text('Error: $e'))); + } + } + } + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: const Color(0xFFF1F5F9), + appBar: AppBar( + titleSpacing: 0, + title: const Text('Chat Admin Sekolah'), + titleTextStyle: const TextStyle( + fontFamily: 'Inter', + fontSize: 18, + fontWeight: FontWeight.w700, + color: Colors.white, + ), + backgroundColor: const Color(0xFF2563EB), + elevation: 0, + iconTheme: const IconThemeData(color: Colors.white), + ), + body: _isLoading + ? const Center(child: CircularProgressIndicator()) + : _errorMessage != null + ? Center(child: Padding(padding: const EdgeInsets.all(16), child: Text(_errorMessage!, textAlign: TextAlign.center, style: const TextStyle(color: Colors.red)))) + : Column( + children: [ + Expanded( + child: _chatStream == null + ? const Center(child: Text('Gagal memuat ruang obrolan (stream null)')) + : StreamBuilder>>( + stream: _chatStream, + builder: (context, snapshot) { + if (snapshot.connectionState == ConnectionState.waiting) { + return const Center(child: CircularProgressIndicator()); + } + if (snapshot.hasError) { + return Center(child: Text('Error: ${snapshot.error}')); + } + + final messages = snapshot.data ?? []; + + if (messages.isEmpty) { + return const Center( + child: Text( + 'Belum ada pesan.\nKirim pesan pertama Anda!', + textAlign: TextAlign.center, + style: TextStyle(color: Colors.grey, fontFamily: 'Inter'), + ), + ); + } + + return ListView.builder( + reverse: true, + padding: const EdgeInsets.all(16), + itemCount: messages.length, + itemBuilder: (context, index) { + final msg = messages[messages.length - 1 - index]; + final isMe = msg['pengirim_murid'] == _idMurid; + + return Align( + alignment: isMe ? Alignment.centerRight : Alignment.centerLeft, + child: Container( + margin: const EdgeInsets.symmetric(vertical: 4), + padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 10), + decoration: BoxDecoration( + color: isMe ? const Color(0xFF2563EB) : Colors.grey[200], + borderRadius: BorderRadius.only( + topLeft: const Radius.circular(16), + topRight: const Radius.circular(16), + bottomLeft: isMe ? const Radius.circular(16) : const Radius.circular(0), + bottomRight: isMe ? const Radius.circular(0) : const Radius.circular(16), + ), + ), + child: Column( + crossAxisAlignment: isMe ? CrossAxisAlignment.end : CrossAxisAlignment.start, + children: [ + if (msg['text']?.toString().startsWith('IMAGE_URL:') == true) + GestureDetector( + onTap: () { + Navigator.push(context, MaterialPageRoute(builder: (_) => DocImagePreviewPage(imageUrl: msg['text'].toString().replaceFirst('IMAGE_URL:', '')))); + }, + child: ClipRRect( + borderRadius: BorderRadius.circular(8), + child: Image.network( + msg['text'].toString().replaceFirst('IMAGE_URL:', ''), + width: 200, + height: 200, + fit: BoxFit.cover, + ), + ), + ) + else if (msg['text']?.toString().startsWith('DOC_URL:') == true) + Builder( + builder: (context) { + final url = msg['text'].toString().replaceFirst('DOC_URL:', ''); + final uri = Uri.tryParse(url); + String fileName = 'Dokumen'; + String extension = 'FILE'; + + if (uri != null && uri.pathSegments.isNotEmpty) { + fileName = Uri.decodeComponent(uri.pathSegments.last); + final regex = RegExp(r'^\d{13}_'); + fileName = fileName.replaceFirst(regex, ''); + final extIndex = fileName.lastIndexOf('.'); + if (extIndex != -1 && extIndex < fileName.length - 1) { + extension = fileName.substring(extIndex + 1).toUpperCase(); + } + } + + return GestureDetector( + onTap: () async { + final parsedUrl = Uri.parse(url); + try { + await launchUrl(parsedUrl, mode: LaunchMode.externalApplication); + } catch (e) { + if (context.mounted) { + ScaffoldMessenger.of(context).showSnackBar(const SnackBar(content: Text('Tidak dapat membuka dokumen'))); + } + } + }, + child: Container( + constraints: const BoxConstraints(maxWidth: 240), + padding: const EdgeInsets.all(8), + decoration: BoxDecoration( + color: isMe ? Colors.black.withOpacity(0.1) : Colors.white.withOpacity(0.5), + borderRadius: BorderRadius.circular(8), + ), + child: Row( + mainAxisSize: MainAxisSize.min, + children: [ + Container( + width: 42, + height: 52, + decoration: BoxDecoration( + color: isMe ? Colors.white.withOpacity(0.2) : Colors.black.withOpacity(0.05), + borderRadius: BorderRadius.circular(6), + ), + child: Center( + child: Text( + extension.length > 4 ? extension.substring(0, 4) : extension, + style: TextStyle( + fontSize: 12, + fontWeight: FontWeight.bold, + color: isMe ? Colors.white : Colors.black87, + ), + ), + ), + ), + const SizedBox(width: 12), + Flexible( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + fileName, + maxLines: 2, + overflow: TextOverflow.ellipsis, + style: TextStyle( + fontSize: 14, + color: isMe ? Colors.white : Colors.black87, + fontWeight: FontWeight.w500, + ), + ), + const SizedBox(height: 4), + Text( + '$extension • Dokumen', + style: TextStyle( + fontSize: 12, + color: isMe ? Colors.white70 : Colors.black54, + ), + ), + ], + ), + ), + ], + ), + ), + ); + }, + ) + else + Text( + msg['text'] ?? '', + style: TextStyle( + color: isMe ? Colors.white : Colors.black87, + ), + ), + const SizedBox(height: 4), + Text( + _formatTime(msg['created_at']), + style: TextStyle( + fontSize: 10, + color: isMe ? Colors.white70 : Colors.black54, + ), + ), + ], + ), + ), + ); + }, + ); + }, + ), + ), + _buildMessageInput(), + ], + ), + ); + } + + Widget _buildMessageInput() { + return Container( + padding: const EdgeInsets.all(8), + decoration: BoxDecoration( + color: Colors.white, + boxShadow: [ + BoxShadow( + color: Colors.black.withOpacity(0.05), + offset: const Offset(0, -2), + blurRadius: 4, + ), + ], + ), + child: SafeArea( + child: Row( + children: [ + PopupMenuButton( + icon: const Icon(Icons.attach_file, color: Colors.orange), + tooltip: 'Lampiran', + offset: const Offset(0, -120), + onSelected: (value) { + if (value == 'image') { + _pickAndSendImage(); + } else if (value == 'document') { + _pickAndSendDoc(); + } + }, + itemBuilder: (BuildContext context) => >[ + const PopupMenuItem( + value: 'image', + child: Row( + children: [ + Icon(Icons.image, color: Colors.blue), + SizedBox(width: 8), + Text('Gambar'), + ], + ), + ), + const PopupMenuItem( + value: 'document', + child: Row( + children: [ + Icon(Icons.insert_drive_file, color: Colors.red), + SizedBox(width: 8), + Text('Dokumen'), + ], + ), + ), + ], + ), + Expanded( + child: TextField( + controller: _messageController, + decoration: InputDecoration( + hintText: 'Tulis pesan...', + contentPadding: const EdgeInsets.symmetric(horizontal: 16, vertical: 10), + filled: true, + fillColor: Colors.grey[100], + border: OutlineInputBorder( + borderRadius: BorderRadius.circular(20), + borderSide: BorderSide.none, + ), + ), + ), + ), + const SizedBox(width: 8), + CircleAvatar( + backgroundColor: const Color(0xFF2563EB), + child: IconButton( + icon: const Icon(Icons.send, color: Colors.white, size: 20), + onPressed: _sendMessage, + ), + ), + ], + ), + ), + ); + } +} diff --git a/lib/dashboard/d_c_murid/function/f_Pesan/chat_private.dart b/lib/dashboard/d_c_murid/function/f_Pesan/chat_private.dart new file mode 100644 index 0000000..cd96032 --- /dev/null +++ b/lib/dashboard/d_c_murid/function/f_Pesan/chat_private.dart @@ -0,0 +1,909 @@ +import 'dart:io'; +import 'package:flutter/material.dart'; +import 'package:supabase_flutter/supabase_flutter.dart'; +import 'package:shared_preferences/shared_preferences.dart'; +import 'package:intl/intl.dart'; +import 'package:file_picker/file_picker.dart'; +import 'package:image_picker/image_picker.dart'; +import 'package:url_launcher/url_launcher.dart'; +import 'package:apk/dashboard/d_c_murid/database/storage/image_doc.dart'; +import 'package:apk/dashboard/d_c_murid/function/f_Pesan/doc_image.dart'; +import 'package:apk/dashboard/d_c_murid/function/FCM_absen.dart/chat_private_n.dart'; + +class ChatPrivate extends StatefulWidget { + final String receiverId; + final String receiverType; // 'guru' or 'murid' + final String receiverName; + + const ChatPrivate({ + super.key, + required this.receiverId, + required this.receiverType, + required this.receiverName, + }); + + @override + State createState() => _ChatPrivateState(); +} + +class _ChatPrivateState extends State { + final TextEditingController _messageController = TextEditingController(); + final supabase = Supabase.instance.client; + + bool _isLoading = true; + String? _errorMessage; + String? _currentMuridId; + String? _userIdAdmin; + + Stream>>? _chatStream; + + @override + void initState() { + super.initState(); + _initChat(); + ChatPrivateNotification.setSenderUnread(widget.receiverId, false); + } + + Future _initChat() async { + try { + final prefs = await SharedPreferences.getInstance(); + final nis = prefs.getString('murid_nis'); + _userIdAdmin = prefs.getString('user_id_admin'); + + if (nis == null || _userIdAdmin == null) { + throw Exception('Data login tidak lengkap (NIS atau User ID kosong)'); + } + + // Dapatkan id_murid (id_tabel) + final muridRes = await supabase + .from('murid') + .select('id_tabel') + .eq('user_id', _userIdAdmin!) + .eq('nis', nis) + .single(); + _currentMuridId = muridRes['id_tabel']?.toString(); + + if (_currentMuridId != null) { + if (widget.receiverType == 'guru') { + _chatStream = supabase + .from('chat_private') + .stream(primaryKey: ['id_tabel']) + .order('created_at', ascending: true) + .map((data) => data + .where((e) => + (e['pengirim_murid']?.toString() == _currentMuridId && e['penerima_guru']?.toString() == widget.receiverId) || + (e['pengirim_guru']?.toString() == widget.receiverId && e['penerima_murid']?.toString() == _currentMuridId)) + .map((e) => e as Map) + .toList()); + } else if (widget.receiverType == 'murid') { + _chatStream = supabase + .from('chat_private') + .stream(primaryKey: ['id_tabel']) + .order('created_at', ascending: true) + .map((data) => data + .where((e) => + (e['pengirim_murid']?.toString() == _currentMuridId && e['penerima_murid']?.toString() == widget.receiverId) || + (e['pengirim_murid']?.toString() == widget.receiverId && e['penerima_murid']?.toString() == _currentMuridId)) + .map((e) => e as Map) + .toList()); + } + } else { + _errorMessage = 'Gagal memuat profil Murid.'; + } + } catch (e) { + _errorMessage = 'Error: $e'; + } finally { + if (mounted) { + setState(() { + _isLoading = false; + }); + } + } + } + + Future _pickAndSendImage() async { + final picker = ImagePicker(); + final pickedFile = await picker.pickImage(source: ImageSource.gallery); + if (pickedFile != null) { + final file = File(pickedFile.path); + final name = pickedFile.name; + setState(() => _isLoading = true); + final url = await ImageDocStorage.uploadFileObject(file, name); + if (url != null) { + final userId = supabase.auth.currentUser?.id ?? _userIdAdmin; + if (widget.receiverType == 'guru') { + await supabase.from('chat_private').insert({ + 'text': 'IMAGE_URL:$url', + 'pengirim_murid': _currentMuridId, + 'penerima_guru': widget.receiverId, + 'user_id': userId, + }); + } else if (widget.receiverType == 'murid') { + await supabase.from('chat_private').insert({ + 'text': 'IMAGE_URL:$url', + 'pengirim_murid': _currentMuridId, + 'penerima_murid': widget.receiverId, + 'user_id': userId, + }); + } + await _initChat(); + } else { + setState(() => _isLoading = false); + if (mounted) ScaffoldMessenger.of(context).showSnackBar(const SnackBar(content: Text('Gagal unggah gambar'))); + } + } + } + + Future _pickAndSendDoc() async { + final result = await FilePicker.pickFiles( + type: FileType.custom, + allowedExtensions: ['pdf', 'doc', 'docx', 'xls', 'xlsx', 'txt', 'zip', 'rar'], + withData: true, + ); + if (result != null && result.files.single.bytes != null) { + final bytes = result.files.single.bytes!; + final name = result.files.single.name; + setState(() => _isLoading = true); + final url = await ImageDocStorage.uploadFile(bytes, name); + if (url != null) { + final userId = supabase.auth.currentUser?.id ?? _userIdAdmin; + if (widget.receiverType == 'guru') { + await supabase.from('chat_private').insert({ + 'text': 'DOC_URL:$url', + 'pengirim_murid': _currentMuridId, + 'penerima_guru': widget.receiverId, + 'user_id': userId, + }); + } else if (widget.receiverType == 'murid') { + await supabase.from('chat_private').insert({ + 'text': 'DOC_URL:$url', + 'pengirim_murid': _currentMuridId, + 'penerima_murid': widget.receiverId, + 'user_id': userId, + }); + } + await _initChat(); + } else { + setState(() => _isLoading = false); + if (mounted) ScaffoldMessenger.of(context).showSnackBar(const SnackBar(content: Text('Gagal unggah dokumen'))); + } + } + } + + Future _sendMessage() async { + final text = _messageController.text.trim(); + if (text.isEmpty || _currentMuridId == null) return; + + _messageController.clear(); + + try { + final userId = supabase.auth.currentUser?.id ?? _userIdAdmin; + + if (widget.receiverType == 'guru') { + await supabase.from('chat_private').insert({ + 'text': text, + 'pengirim_murid': _currentMuridId, + 'penerima_guru': widget.receiverId, + 'user_id': userId, + }); + } else if (widget.receiverType == 'murid') { + await supabase.from('chat_private').insert({ + 'text': text, + 'pengirim_murid': _currentMuridId, + 'penerima_murid': widget.receiverId, + 'user_id': userId, + }); + } + + if (mounted) { + setState(() { + _isLoading = true; + }); + await _initChat(); + } + } catch (e) { + if (mounted) { + ScaffoldMessenger.of(context).showSnackBar(SnackBar(content: Text('Error: $e'))); + } + } + } + + String _formatTime(String isoString) { + try { + final date = DateTime.parse(isoString).toLocal(); + return DateFormat('HH:mm').format(date); + } catch (_) { + return ''; + } + } + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + title: Text('Chat: ${widget.receiverName}'), + backgroundColor: const Color(0xFF2563EB), + iconTheme: const IconThemeData(color: Colors.white), + titleTextStyle: const TextStyle( + fontFamily: 'Inter', + fontSize: 16, + fontWeight: FontWeight.w700, + color: Colors.white, + ), + ), + body: _isLoading + ? const Center(child: CircularProgressIndicator()) + : _errorMessage != null + ? Center(child: Padding(padding: const EdgeInsets.all(16), child: Text(_errorMessage!, style: const TextStyle(color: Colors.red)))) + : Column( + children: [ + Expanded( + child: _chatStream == null + ? const Center(child: Text('Gagal memuat ruang obrolan')) + : StreamBuilder>>( + stream: _chatStream, + builder: (context, snapshot) { + if (snapshot.hasError) { + return Center(child: Text('Error: ${snapshot.error}')); + } + if (snapshot.connectionState == ConnectionState.waiting) { + return const Center(child: CircularProgressIndicator()); + } + + final messages = snapshot.data ?? []; + + if (messages.isEmpty) { + return const Center(child: Text('Belum ada pesan')); + } + + return ListView.builder( + reverse: true, + padding: const EdgeInsets.all(16), + itemCount: messages.length, + itemBuilder: (context, index) { + final msg = messages[messages.length - 1 - index]; + final isMe = msg['pengirim_murid']?.toString() == _currentMuridId; + final textMsg = msg['text']?.toString() ?? ''; + if (textMsg.startsWith("📋 *Pengajuan Izin*")) { + return _buildIzinCard(textMsg, widget.receiverName, _formatTime(msg['created_at']), isMe); + } + + return Align( + alignment: isMe ? Alignment.centerRight : Alignment.centerLeft, + child: Container( + margin: const EdgeInsets.symmetric(vertical: 4), + padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 10), + decoration: BoxDecoration( + color: isMe ? const Color(0xFF2563EB) : Colors.grey[200], + borderRadius: BorderRadius.only( + topLeft: const Radius.circular(16), + topRight: const Radius.circular(16), + bottomLeft: isMe ? const Radius.circular(16) : const Radius.circular(0), + bottomRight: isMe ? const Radius.circular(0) : const Radius.circular(16), + ), + ), + child: Column( + crossAxisAlignment: isMe ? CrossAxisAlignment.end : CrossAxisAlignment.start, + children: [ + if (msg['text']?.toString().startsWith('IMAGE_URL:') == true) + GestureDetector( + onTap: () { + Navigator.push(context, MaterialPageRoute(builder: (_) => DocImagePreviewPage(imageUrl: msg['text'].toString().replaceFirst('IMAGE_URL:', '')))); + }, + child: ClipRRect( + borderRadius: BorderRadius.circular(8), + child: Image.network( + msg['text'].toString().replaceFirst('IMAGE_URL:', ''), + width: 200, + height: 200, + fit: BoxFit.cover, + ), + ), + ) + else if (msg['text']?.toString().startsWith('DOC_URL:') == true) + Builder( + builder: (context) { + final url = msg['text'].toString().replaceFirst('DOC_URL:', ''); + final uri = Uri.tryParse(url); + String fileName = 'Dokumen'; + String extension = 'FILE'; + + if (uri != null && uri.pathSegments.isNotEmpty) { + fileName = Uri.decodeComponent(uri.pathSegments.last); + final regex = RegExp(r'^\d{13}_'); + fileName = fileName.replaceFirst(regex, ''); + final extIndex = fileName.lastIndexOf('.'); + if (extIndex != -1 && extIndex < fileName.length - 1) { + extension = fileName.substring(extIndex + 1).toUpperCase(); + } + } + + return GestureDetector( + onTap: () async { + final parsedUrl = Uri.parse(url); + try { + await launchUrl(parsedUrl, mode: LaunchMode.externalApplication); + } catch (e) { + if (context.mounted) { + ScaffoldMessenger.of(context).showSnackBar(const SnackBar(content: Text('Tidak dapat membuka dokumen'))); + } + } + }, + child: Container( + constraints: const BoxConstraints(maxWidth: 240), + padding: const EdgeInsets.all(8), + decoration: BoxDecoration( + color: isMe ? Colors.black.withOpacity(0.1) : Colors.white.withOpacity(0.5), + borderRadius: BorderRadius.circular(8), + ), + child: Row( + mainAxisSize: MainAxisSize.min, + children: [ + Container( + width: 42, + height: 52, + decoration: BoxDecoration( + color: isMe ? Colors.white.withOpacity(0.2) : Colors.black.withOpacity(0.05), + borderRadius: BorderRadius.circular(6), + ), + child: Center( + child: Text( + extension.length > 4 ? extension.substring(0, 4) : extension, + style: TextStyle( + fontSize: 12, + fontWeight: FontWeight.bold, + color: isMe ? Colors.white : Colors.black87, + ), + ), + ), + ), + const SizedBox(width: 12), + Flexible( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + fileName, + maxLines: 2, + overflow: TextOverflow.ellipsis, + style: TextStyle( + fontSize: 14, + color: isMe ? Colors.white : Colors.black87, + fontWeight: FontWeight.w500, + ), + ), + const SizedBox(height: 4), + Text( + '$extension • Dokumen', + style: TextStyle( + fontSize: 12, + color: isMe ? Colors.white70 : Colors.black54, + ), + ), + ], + ), + ), + ], + ), + ), + ); + }, + ) + else + Text( + msg['text'] ?? '', + style: TextStyle( + color: isMe ? Colors.white : Colors.black87, + ), + ), + const SizedBox(height: 4), + Text( + _formatTime(msg['created_at']), + style: TextStyle( + fontSize: 10, + color: isMe ? Colors.white70 : Colors.black54, + ), + ), + ], + ), + ), + ); + }, + ); + }, + ), + ), + Container( + padding: const EdgeInsets.all(8), + decoration: BoxDecoration( + color: Colors.white, + boxShadow: [ + BoxShadow( + color: Colors.black.withOpacity(0.05), + offset: const Offset(0, -2), + blurRadius: 4, + ), + ], + ), + child: Row( + children: [ + PopupMenuButton( + icon: const Icon(Icons.attach_file, color: Colors.orange), + tooltip: 'Lampiran', + offset: const Offset(0, -120), + onSelected: (value) { + if (value == 'image') { + _pickAndSendImage(); + } else if (value == 'document') { + _pickAndSendDoc(); + } + }, + itemBuilder: (BuildContext context) => >[ + const PopupMenuItem( + value: 'image', + child: Row( + children: [ + Icon(Icons.image, color: Colors.blue), + SizedBox(width: 8), + Text('Gambar'), + ], + ), + ), + const PopupMenuItem( + value: 'document', + child: Row( + children: [ + Icon(Icons.insert_drive_file, color: Colors.red), + SizedBox(width: 8), + Text('Dokumen'), + ], + ), + ), + ], + ), + Expanded( + child: TextField( + controller: _messageController, + decoration: InputDecoration( + hintText: 'Tulis pesan...', + contentPadding: const EdgeInsets.symmetric(horizontal: 16, vertical: 10), + filled: true, + fillColor: Colors.grey[100], + border: OutlineInputBorder( + borderRadius: BorderRadius.circular(20), + borderSide: BorderSide.none, + ), + ), + ), + ), + const SizedBox(width: 8), + CircleAvatar( + backgroundColor: const Color(0xFF2563EB), + child: IconButton( + icon: const Icon(Icons.send, color: Colors.white, size: 20), + onPressed: _sendMessage, + ), + ), + ], + ), + ), + ], + ), + ); + } + + Widget _buildIzinCard(String text, String senderName, String time, bool isMe) { + final lines = text.split('\n'); + String nama = ''; + String tanggal = ''; + String keterangan = ''; + List lampiranUrls = []; + String idIzin = ''; + String jenis = ''; + + for (var rawLine in lines) { + final line = rawLine.trim(); + if (line.startsWith('Nama: ')) nama = line.substring(6).trim(); + else if (line.startsWith('Tanggal: ')) tanggal = line.substring(9).trim(); + else if (line.startsWith('Keterangan: ')) keterangan = line.substring(12).trim(); + else if (line.startsWith('Lampiran: ')) { + final urlsString = line.substring(10).trim(); + if (urlsString.isNotEmpty) { + lampiranUrls = urlsString.split(RegExp(r'\s+')).where((s) => s.startsWith('http')).toList(); + } + } + else if (line.startsWith('ID_IZIN: ')) idIzin = line.substring(8).trim(); + else if (line.startsWith('Jenis: ')) jenis = line.substring(7).trim(); + else if (keterangan.isNotEmpty && lampiranUrls.isEmpty && !line.startsWith('📋') && !line.startsWith('ID_IZIN:') && !line.startsWith('Jenis:')) { + keterangan += '\n$line'; + } + } + + return Align( + alignment: isMe ? Alignment.centerRight : Alignment.centerLeft, + child: Container( + margin: const EdgeInsets.symmetric(vertical: 4), + constraints: BoxConstraints( + maxWidth: MediaQuery.of(context).size.width * 0.85, + ), + child: Card( + color: Colors.amber[50], + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(12)), + elevation: 2, + child: Padding( + padding: const EdgeInsets.all(16), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + children: [ + Icon( + jenis.toLowerCase() == 'sakit' ? Icons.sick : Icons.assignment_ind, + color: jenis.toLowerCase() == 'sakit' ? Colors.red : Colors.amber, + size: 28, + ), + const SizedBox(width: 8), + Expanded( + child: Text( + jenis.isNotEmpty ? 'Pengajuan $jenis' : 'Pengajuan Izin', + style: const TextStyle( + fontWeight: FontWeight.bold, + fontSize: 16, + ), + ), + ), + ], + ), + const Divider(), + Row( + children: [ + const Icon(Icons.person, size: 16, color: Colors.grey), + const SizedBox(width: 4), + Text( + nama, + style: const TextStyle(fontSize: 12, fontWeight: FontWeight.bold, color: Colors.black87), + ), + ], + ), + const SizedBox(height: 4), + Row( + children: [ + const Icon(Icons.date_range, size: 16, color: Colors.grey), + const SizedBox(width: 4), + Text( + tanggal, + style: const TextStyle(fontSize: 12, color: Colors.black87), + ), + ], + ), + if (keterangan.isNotEmpty) ...[ + const SizedBox(height: 8), + const Text('Keterangan:', style: TextStyle(fontSize: 12, color: Colors.grey)), + Text(keterangan, style: const TextStyle(fontSize: 14)), + ], + if (lampiranUrls.isNotEmpty) ...[ + const SizedBox(height: 12), + Wrap( + spacing: 8, + runSpacing: 8, + children: lampiranUrls.map((urlStr) { + final uri = Uri.tryParse(urlStr); + String extension = 'file'; + String cleanName = 'Lampiran'; + if (uri != null && uri.pathSegments.isNotEmpty) { + final fullName = Uri.decodeComponent(uri.pathSegments.last); + cleanName = fullName.replaceFirst(RegExp(r'^\d{13}_(?:camera_)?'), ''); + final extIdx = fullName.lastIndexOf('.'); + if (extIdx != -1 && extIdx < fullName.length - 1) { + extension = fullName.substring(extIdx + 1).toLowerCase(); + } + } + final isImage = ['jpg', 'jpeg', 'png', 'gif', 'webp'].contains(extension); + final extLabel = extension.length > 4 + ? extension.substring(0, 4).toUpperCase() + : extension.toUpperCase(); + + if (isImage) { + return GestureDetector( + onTap: () { + Navigator.push(context, MaterialPageRoute( + builder: (_) => DocImagePreviewPage(imageUrl: urlStr), + )); + }, + child: ClipRRect( + borderRadius: BorderRadius.circular(8), + child: Image.network( + urlStr, + width: 110, + height: 110, + fit: BoxFit.cover, + loadingBuilder: (ctx, child, progress) => + progress == null ? child : const SizedBox(width: 110, height: 110, child: Center(child: CircularProgressIndicator(strokeWidth: 2))), + errorBuilder: (ctx, _, __) => const SizedBox(width: 110, height: 110, child: Icon(Icons.broken_image)), + ), + ), + ); + } else { + return GestureDetector( + onTap: () async { + if (uri != null) { + try { + await launchUrl(uri, mode: LaunchMode.externalApplication); + } catch (_) { + if (context.mounted) { + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text('Tidak dapat membuka lampiran')), + ); + } + } + } + }, + child: Container( + constraints: const BoxConstraints(maxWidth: 220), + padding: const EdgeInsets.all(8), + decoration: BoxDecoration( + color: Colors.white.withOpacity(0.85), + borderRadius: BorderRadius.circular(8), + border: Border.all(color: Colors.black12), + ), + child: Row( + mainAxisSize: MainAxisSize.min, + children: [ + Container( + width: 42, + height: 52, + decoration: BoxDecoration( + color: Colors.black.withOpacity(0.05), + borderRadius: BorderRadius.circular(6), + ), + child: Center( + child: Text( + extLabel, + style: const TextStyle( + fontSize: 12, + fontWeight: FontWeight.bold, + color: Colors.black87, + ), + ), + ), + ), + const SizedBox(width: 10), + Flexible( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + cleanName, + maxLines: 2, + overflow: TextOverflow.ellipsis, + style: const TextStyle( + fontSize: 13, + color: Colors.black87, + fontWeight: FontWeight.w500, + ), + ), + const SizedBox(height: 2), + Text( + '$extLabel • Dokumen', + style: const TextStyle(fontSize: 11, color: Colors.black54), + ), + ], + ), + ), + ], + ), + ), + ); + } + }).toList(), + ), + ], + if (idIzin.isNotEmpty) ...[ + const Divider(), + IzinStatusWidget(idIzin: idIzin, isTeacher: false, textPesan: text), + ], + const SizedBox(height: 8), + Align( + alignment: Alignment.bottomRight, + child: Text( + time, + style: const TextStyle(fontSize: 10, color: Colors.black54), + ), + ), + ], + ), + ), + ), + ), + ); + } +} + +class IzinStatusWidget extends StatefulWidget { + final String idIzin; + final bool isTeacher; + final String? textPesan; + const IzinStatusWidget({super.key, required this.idIzin, required this.isTeacher, this.textPesan}); + + @override + State createState() => _IzinStatusWidgetState(); +} + +class _IzinStatusWidgetState extends State { + bool? _verifStatus; + bool _isLoading = true; + + @override + void initState() { + super.initState(); + _fetchStatus(); + } + + Future _fetchStatus() async { + if (widget.idIzin.isEmpty) { + setState(() => _isLoading = false); + return; + } + try { + final res = await Supabase.instance.client + .from('leave_request') + .select('verif') + .eq('id_tabel', widget.idIzin) + .maybeSingle(); + if (res != null && mounted) { + setState(() { + _verifStatus = res['verif']; + _isLoading = false; + }); + } else { + setState(() => _isLoading = false); + } + } catch (e) { + setState(() => _isLoading = false); + } + } + + Future _updateStatus(bool status) async { + setState(() => _isLoading = true); + try { + await Supabase.instance.client + .from('leave_request') + .update({'verif': status}) + .eq('id_tabel', widget.idIzin); + + if (mounted) { + setState(() { + _verifStatus = status; + _isLoading = false; + }); + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + content: Text(status ? 'Pengajuan izin disetujui!' : 'Pengajuan izin ditolak!'), + backgroundColor: status ? Colors.green : Colors.red, + ), + ); + } + } catch (e) { + if (mounted) { + setState(() => _isLoading = false); + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text('Gagal memperbarui status: $e')), + ); + } + } + } + + @override + Widget build(BuildContext context) { + if (_isLoading) { + return const Padding( + padding: EdgeInsets.symmetric(vertical: 4), + child: SizedBox( + height: 20, + width: 20, + child: CircularProgressIndicator(strokeWidth: 2), + ), + ); + } + + if (_verifStatus == true) { + return Container( + margin: const EdgeInsets.only(top: 8), + padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 6), + decoration: BoxDecoration( + color: const Color(0xFFD1FAE5), + borderRadius: BorderRadius.circular(8), + ), + child: const Row( + mainAxisSize: MainAxisSize.min, + children: [ + Icon(Icons.check_circle, color: Color(0xFF059669), size: 16), + SizedBox(width: 6), + Text( + 'Disetujui', + style: TextStyle(color: Color(0xFF059669), fontWeight: FontWeight.bold, fontSize: 12, fontFamily: 'Inter'), + ), + ], + ), + ); + } + + if (_verifStatus == false) { + return Container( + margin: const EdgeInsets.only(top: 8), + padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 6), + decoration: BoxDecoration( + color: const Color(0xFFFEE2E2), + borderRadius: BorderRadius.circular(8), + ), + child: const Row( + mainAxisSize: MainAxisSize.min, + children: [ + Icon(Icons.cancel, color: Color(0xFFDC2626), size: 16), + SizedBox(width: 6), + Text( + 'Ditolak', + style: TextStyle(color: Color(0xFFDC2626), fontWeight: FontWeight.bold, fontSize: 12, fontFamily: 'Inter'), + ), + ], + ), + ); + } + + // Status: Pending (null) + if (widget.isTeacher) { + return Container( + margin: const EdgeInsets.only(top: 12), + child: Row( + children: [ + ElevatedButton.icon( + onPressed: () => _updateStatus(true), + icon: const Icon(Icons.check, size: 16, color: Colors.white), + label: const Text('Setujui', style: TextStyle(color: Colors.white, fontFamily: 'Inter', fontWeight: FontWeight.bold)), + style: ElevatedButton.styleFrom( + backgroundColor: const Color(0xFF059669), + padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 8), + minimumSize: Size.zero, + tapTargetSize: MaterialTapTargetSize.shrinkWrap, + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(8)), + ), + ), + const SizedBox(width: 12), + OutlinedButton.icon( + onPressed: () => _updateStatus(false), + icon: const Icon(Icons.close, size: 16, color: Color(0xFFDC2626)), + label: const Text('Tolak', style: TextStyle(color: Color(0xFFDC2626), fontFamily: 'Inter', fontWeight: FontWeight.bold)), + style: OutlinedButton.styleFrom( + side: const BorderSide(color: Color(0xFFDC2626)), + padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 8), + minimumSize: Size.zero, + tapTargetSize: MaterialTapTargetSize.shrinkWrap, + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(8)), + ), + ), + ], + ), + ); + } + + return Container( + margin: const EdgeInsets.only(top: 8), + padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 6), + decoration: BoxDecoration( + color: const Color(0xFFFEF3C7), + borderRadius: BorderRadius.circular(8), + ), + child: const Row( + mainAxisSize: MainAxisSize.min, + children: [ + Icon(Icons.hourglass_empty, color: Color(0xFFD97706), size: 16), + SizedBox(width: 6), + Text( + 'Menunggu Persetujuan', + style: TextStyle(color: Color(0xFFD97706), fontWeight: FontWeight.bold, fontSize: 12, fontFamily: 'Inter'), + ), + ], + ), + ); + } +} diff --git a/lib/dashboard/d_c_murid/function/f_Pesan/dash_pesan.dart b/lib/dashboard/d_c_murid/function/f_Pesan/dash_pesan.dart new file mode 100644 index 0000000..8961580 --- /dev/null +++ b/lib/dashboard/d_c_murid/function/f_Pesan/dash_pesan.dart @@ -0,0 +1,428 @@ +import 'package:flutter/material.dart'; +import 'package:shared_preferences/shared_preferences.dart'; +import 'package:apk/dashboard/d_c_murid/function/f_Pesan/grup_sekolah.dart'; +import 'package:apk/dashboard/d_c_murid/function/f_Pesan/grup_kelas.dart'; +import 'package:apk/dashboard/d_c_murid/function/f_Pesan/chat_admin.dart'; +import 'package:apk/dashboard/d_c_murid/function/f_Pesan/chat_private.dart'; +import 'package:apk/dashboard/d_c_murid/widget/custom_button.dart'; +import 'package:apk/dashboard/d_c_murid/database/db_guru.dart'; +import 'package:apk/dashboard/d_c_murid/function/FCM_absen.dart/grup_sekolah_n.dart'; +import 'package:apk/dashboard/d_c_murid/function/FCM_absen.dart/grup_kelas_n.dart'; +import 'package:apk/dashboard/d_c_murid/function/FCM_absen.dart/chat_private_n.dart'; + +class DashPesan extends StatefulWidget { + const DashPesan({super.key}); + + @override + State createState() => _DashPesanState(); +} + +class _DashPesanState extends State { + String? _adminId; + + @override + void initState() { + super.initState(); + _loadAdminId(); + } + + Future _loadAdminId() async { + final prefs = await SharedPreferences.getInstance(); + if (mounted) { + setState(() { + _adminId = prefs.getString('user_id_admin'); + }); + } + } + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: const Color(0xFFF8FAFC), + appBar: AppBar( + titleSpacing: 0, + title: const Text('Pilih Grup Chat'), + titleTextStyle: const TextStyle( + fontFamily: 'Inter', + fontSize: 18, + fontWeight: FontWeight.w700, + color: Colors.white, + ), + backgroundColor: const Color(0xFF2563EB), + elevation: 0, + iconTheme: const IconThemeData(color: Colors.white), + ), + body: FutureBuilder>>( + future: DbGuru().getGuruForStudentClass(), + builder: (context, snapshot) { + final gurus = snapshot.data ?? []; + + return ListView( + padding: const EdgeInsets.symmetric(vertical: 10.0), + children: [ + Padding( + padding: const EdgeInsets.symmetric(horizontal: 16.0, vertical: 6.0), + child: ValueListenableBuilder( + valueListenable: GrupSekolahNotification.hasUnread, + builder: (context, hasUnread, child) { + return Stack( + children: [ + CustomCard( + title: 'Grup Sekolah', + titleStyle: const TextStyle( + fontFamily: 'Inter', + fontSize: 14, + fontWeight: FontWeight.w700, + color: Color(0xFF1E293B), + ), + customSubtitle: Row( + children: [ + const Text( + 'Forum', + style: TextStyle( + fontFamily: 'Inter', + fontSize: 12, + fontWeight: FontWeight.w500, + color: Color(0xFF64748B), + ), + ), + const SizedBox(width: 8), + Container( + width: 4, + height: 4, + decoration: const BoxDecoration( + color: Color(0xFFCBD5E1), + shape: BoxShape.circle, + ), + ), + const SizedBox(width: 8), + const Flexible( + child: Text( + 'Informasi & Diskusi', + style: TextStyle( + fontFamily: 'Inter', + fontSize: 12, + fontWeight: FontWeight.w500, + color: Color(0xFF64748B), + ), + overflow: TextOverflow.ellipsis, + ), + ), + ], + ), + showIcon: false, + backgroundColor: Colors.white, + borderColor: Colors.transparent, + borderWidth: 0, + margin: EdgeInsets.zero, + onTap: () { + GrupSekolahNotification.setUnread(false); + Navigator.push( + context, + MaterialPageRoute(builder: (context) => const GrupSekolah()), + ); + }, + ), + if (hasUnread) + Positioned( + top: 12, + right: 16, + child: Container( + width: 8, + height: 8, + decoration: const BoxDecoration( + color: Colors.red, + shape: BoxShape.circle, + ), + ), + ), + ], + ); + }, + ), + ), + Padding( + padding: const EdgeInsets.symmetric(horizontal: 16.0, vertical: 6.0), + child: ValueListenableBuilder( + valueListenable: GrupKelasNotification.hasUnread, + builder: (context, hasUnread, child) { + return Stack( + children: [ + CustomCard( + title: 'Grup Kelas', + titleStyle: const TextStyle( + fontFamily: 'Inter', + fontSize: 14, + fontWeight: FontWeight.w700, + color: Color(0xFF1E293B), + ), + customSubtitle: Row( + children: [ + const Text( + 'Kelas', + style: TextStyle( + fontFamily: 'Inter', + fontSize: 12, + fontWeight: FontWeight.w500, + color: Color(0xFF64748B), + ), + ), + const SizedBox(width: 8), + Container( + width: 4, + height: 4, + decoration: const BoxDecoration( + color: Color(0xFFCBD5E1), + shape: BoxShape.circle, + ), + ), + const SizedBox(width: 8), + const Flexible( + child: Text( + 'Diskusi Khusus Kelas Anda', + style: TextStyle( + fontFamily: 'Inter', + fontSize: 12, + fontWeight: FontWeight.w500, + color: Color(0xFF64748B), + ), + overflow: TextOverflow.ellipsis, + ), + ), + ], + ), + showIcon: false, + backgroundColor: Colors.white, + borderColor: Colors.transparent, + borderWidth: 0, + margin: EdgeInsets.zero, + onTap: () { + GrupKelasNotification.setUnread(false); + Navigator.push( + context, + MaterialPageRoute(builder: (context) => const GrupKelasPage()), + ); + }, + ), + if (hasUnread) + Positioned( + top: 12, + right: 16, + child: Container( + width: 8, + height: 8, + decoration: const BoxDecoration( + color: Colors.red, + shape: BoxShape.circle, + ), + ), + ), + ], + ); + }, + ), + ), + Padding( + padding: const EdgeInsets.symmetric(horizontal: 16.0, vertical: 6.0), + child: ValueListenableBuilder>( + valueListenable: ChatPrivateNotification.unreadSenderIds, + builder: (context, unreadSenders, child) { + final bool hasUnread = _adminId != null && unreadSenders.contains(_adminId); + return Stack( + children: [ + CustomCard( + title: 'Admin Sekolah', + titleStyle: const TextStyle( + fontFamily: 'Inter', + fontSize: 14, + fontWeight: FontWeight.w700, + color: Color(0xFF1E293B), + ), + customSubtitle: Row( + children: [ + const Text( + 'Bantuan', + style: TextStyle( + fontFamily: 'Inter', + fontSize: 12, + fontWeight: FontWeight.w500, + color: Color(0xFF64748B), + ), + ), + const SizedBox(width: 8), + Container( + width: 4, + height: 4, + decoration: const BoxDecoration( + color: Color(0xFFCBD5E1), + shape: BoxShape.circle, + ), + ), + const SizedBox(width: 8), + const Flexible( + child: Text( + 'Hubungi Admin Sekolah', + style: TextStyle( + fontFamily: 'Inter', + fontSize: 12, + fontWeight: FontWeight.w500, + color: Color(0xFF64748B), + ), + overflow: TextOverflow.ellipsis, + ), + ), + ], + ), + showIcon: false, + backgroundColor: Colors.white, + borderColor: Colors.transparent, + borderWidth: 0, + margin: EdgeInsets.zero, + onTap: () { + if (_adminId != null) { + ChatPrivateNotification.setSenderUnread(_adminId!, false); + } + Navigator.push( + context, + MaterialPageRoute(builder: (context) => const ChatAdminPage()), + ); + }, + ), + if (hasUnread) + Positioned( + top: 12, + right: 16, + child: Container( + width: 8, + height: 8, + decoration: const BoxDecoration( + color: Colors.red, + shape: BoxShape.circle, + ), + ), + ), + ], + ); + }, + ), + ), + if (gurus.isNotEmpty) ...[ + const SizedBox(height: 32), + const Padding( + padding: EdgeInsets.symmetric(horizontal: 16.0), + child: Text( + 'Pesan ke Guru', + style: TextStyle( + fontFamily: 'Inter', + fontSize: 16, + fontWeight: FontWeight.bold, + color: Color(0xFF1E293B), + ), + ), + ), + const SizedBox(height: 16), + ...gurus.map((guru) { + final String nama = guru['name'] ?? 'Guru'; + final String nip = guru['nik']?.toString() ?? '-'; + final String bidang = (guru['bidang']?.toString().isEmpty ?? true) + ? 'Guru' + : guru['bidang'].toString(); + final String guruId = guru['id_tabel'].toString(); + + return Padding( + padding: const EdgeInsets.symmetric(horizontal: 16.0, vertical: 6.0), + child: ValueListenableBuilder>( + valueListenable: ChatPrivateNotification.unreadSenderIds, + builder: (context, unreadSenders, child) { + final bool hasUnread = unreadSenders.contains(guruId); + return Stack( + children: [ + CustomCard( + title: nama, + titleStyle: const TextStyle( + fontFamily: 'Inter', + fontSize: 14, + fontWeight: FontWeight.w700, + color: Color(0xFF1E293B), + ), + customSubtitle: Row( + children: [ + Text( + "NIP: $nip", + style: const TextStyle( + fontFamily: 'Inter', + fontSize: 12, + fontWeight: FontWeight.w500, + color: Color(0xFF64748B), + ), + ), + const SizedBox(width: 8), + Container( + width: 4, + height: 4, + decoration: const BoxDecoration( + color: Color(0xFFCBD5E1), + shape: BoxShape.circle, + ), + ), + const SizedBox(width: 8), + Flexible( + child: Text( + bidang, + style: const TextStyle( + fontFamily: 'Inter', + fontSize: 12, + fontWeight: FontWeight.w500, + color: Color(0xFF64748B), + ), + overflow: TextOverflow.ellipsis, + ), + ), + ], + ), + showIcon: false, + backgroundColor: Colors.white, + borderColor: Colors.transparent, + borderWidth: 0, + margin: EdgeInsets.zero, + onTap: () { + ChatPrivateNotification.setSenderUnread(guruId, false); + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => ChatPrivate( + receiverId: guruId, + receiverType: 'guru', + receiverName: nama, + ), + ), + ); + }, + ), + if (hasUnread) + Positioned( + top: 12, + right: 16, + child: Container( + width: 8, + height: 8, + decoration: const BoxDecoration( + color: Colors.red, + shape: BoxShape.circle, + ), + ), + ), + ], + ); + }, + ), + ); + }).toList(), + ], + ], + ); + }, + ), + ); + } +} diff --git a/lib/dashboard/d_c_murid/function/f_Pesan/doc_image.dart b/lib/dashboard/d_c_murid/function/f_Pesan/doc_image.dart new file mode 100644 index 0000000..9b1381d --- /dev/null +++ b/lib/dashboard/d_c_murid/function/f_Pesan/doc_image.dart @@ -0,0 +1,44 @@ +import 'package:flutter/material.dart'; + +class DocImagePreviewPage extends StatelessWidget { + final String imageUrl; + + const DocImagePreviewPage({super.key, required this.imageUrl}); + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: Colors.black, + appBar: AppBar( + backgroundColor: const Color(0xFF2563EB), + elevation: 0, + automaticallyImplyLeading: true, + leading: IconButton( + icon: Image.asset('lib/assets/icons/Button.png', width: 30, height: 30), + onPressed: () => Navigator.pop(context), + ), + titleSpacing: -5, + title: const Text("Pratinjau Gambar"), + titleTextStyle: const TextStyle( + fontFamily: "Inter", + fontSize: 14, + fontWeight: FontWeight.w700, + color: Colors.white, + ), + ), + body: Center( + child: InteractiveViewer( + child: Image.network( + imageUrl, + fit: BoxFit.contain, + loadingBuilder: (context, child, loadingProgress) { + if (loadingProgress == null) return child; + return const Center(child: CircularProgressIndicator(color: Colors.white)); + }, + errorBuilder: (context, error, stackTrace) => const Icon(Icons.broken_image, color: Colors.white, size: 50), + ), + ), + ), + ); + } +} diff --git a/lib/dashboard/d_c_murid/function/f_Pesan/grup_kelas.dart b/lib/dashboard/d_c_murid/function/f_Pesan/grup_kelas.dart new file mode 100644 index 0000000..d8afcce --- /dev/null +++ b/lib/dashboard/d_c_murid/function/f_Pesan/grup_kelas.dart @@ -0,0 +1,906 @@ +import 'dart:io'; +import 'package:flutter/material.dart'; +import 'package:intl/intl.dart'; +import 'package:url_launcher/url_launcher.dart'; +import 'package:supabase_flutter/supabase_flutter.dart'; +import 'package:apk/dashboard/d_c_murid/database/db_grup_kelas.dart'; +import 'package:apk/dashboard/d_c_murid/function/f_Pesan/member_kelas.dart'; +import 'package:file_picker/file_picker.dart'; +import 'package:image_picker/image_picker.dart'; +import 'package:apk/dashboard/d_c_murid/database/storage/image_doc.dart'; +import 'package:apk/dashboard/d_c_murid/function/f_Pesan/doc_image.dart'; +import 'package:apk/dashboard/d_c_murid/function/f_Pesan/pengumuman_card.dart'; +import 'package:apk/dashboard/d_c_murid/function/FCM_absen.dart/grup_kelas_n.dart'; + +class GrupKelasPage extends StatefulWidget { + const GrupKelasPage({super.key}); + + @override + State createState() => _GrupKelasPageState(); +} + +class _GrupKelasPageState extends State { + final TextEditingController _messageController = TextEditingController(); + + bool _isLoading = true; + String? _errorMessage; + + String? _currentUserId; + String? _currentUserRole; // 'admin', 'guru', or 'murid' + String? _currentClassId; + + Stream>>? _chatStream; + Map _userNames = {}; // mapping ID ke Nama + + @override + void initState() { + super.initState(); + _initChat(); + GrupKelasNotification.setUnread(false); + } + + Future _initChat() async { + try { + // Fetch mapping nama semua user + _userNames = await DbGrupKelas.fetchAllNames(); + + // Fetch current user info + final currentUserInfo = await DbGrupKelas.getCurrentUserRoleAndId(); + + if (currentUserInfo != null) { + _currentUserId = currentUserInfo['id']; + _currentUserRole = currentUserInfo['role']; + _currentClassId = currentUserInfo['id_class']; + + if (_currentUserRole == 'admin') { + _errorMessage = 'Admin tidak tergabung secara default dalam satu grup kelas spesifik.'; + } else if (_currentClassId == null || _currentClassId!.isEmpty) { + _errorMessage = 'Anda belum terdaftar di kelas manapun.'; + } else { + _chatStream = DbGrupKelas().getGrupKelasStream(_currentClassId!); + } + } else { + _errorMessage = 'Gagal memuat profil. Pastikan Anda telah login dengan benar.'; + } + } catch (e) { + _errorMessage = 'Error: $e'; + } finally { + if (mounted) { + setState(() { + _isLoading = false; + }); + } + } + } + + Future _pickAndSendImage() async { + final picker = ImagePicker(); + final pickedFile = await picker.pickImage(source: ImageSource.gallery); + if (pickedFile != null) { + final file = File(pickedFile.path); + final name = pickedFile.name; + setState(() => _isLoading = true); + final url = await ImageDocStorage.uploadFileObject(file, name); + if (url != null) { + await DbGrupKelas().sendMessage( + text: 'IMAGE_URL:$url', + senderId: _currentUserId!, + role: _currentUserRole!, + idClass: _currentClassId!, + ); + await _initChat(); + } else { + setState(() => _isLoading = false); + if (mounted) ScaffoldMessenger.of(context).showSnackBar(const SnackBar(content: Text('Gagal unggah gambar'))); + } + } + } + + Future _pickAndSendDoc() async { + final result = await FilePicker.pickFiles( + type: FileType.custom, + allowedExtensions: ['pdf', 'doc', 'docx', 'xls', 'xlsx', 'txt', 'zip', 'rar'], + withData: true, + ); + if (result != null && result.files.single.bytes != null) { + final bytes = result.files.single.bytes!; + final name = result.files.single.name; + setState(() => _isLoading = true); + final url = await ImageDocStorage.uploadFile(bytes, name); + if (url != null) { + await DbGrupKelas().sendMessage( + text: 'DOC_URL:$url', + senderId: _currentUserId!, + role: _currentUserRole!, + idClass: _currentClassId!, + ); + await _initChat(); + } else { + setState(() => _isLoading = false); + if (mounted) ScaffoldMessenger.of(context).showSnackBar(const SnackBar(content: Text('Gagal unggah dokumen'))); + } + } + } + + Future _sendMessage() async { + final text = _messageController.text.trim(); + if (text.isEmpty || _currentUserId == null || _currentUserRole == null || _currentClassId == null) return; + + _messageController.clear(); + + try { + await DbGrupKelas().sendMessage( + text: text, + senderId: _currentUserId!, + role: _currentUserRole!, + idClass: _currentClassId!, + ); + + // Reload stream dari database setelah mengirim pesan + if (mounted) { + setState(() { + _isLoading = true; + }); + await _initChat(); + } + } catch (e) { + if (mounted) { + ScaffoldMessenger.of(context).showSnackBar(SnackBar(content: Text('Error: $e'))); + } + } + } + + String _formatTime(String isoString) { + try { + final date = DateTime.parse(isoString).toLocal(); + return DateFormat('HH:mm').format(date); + } catch (_) { + return ''; + } + } + + String _getSenderId(Map msg) { + if (msg['pengirim_admin'] != null) return msg['pengirim_admin'].toString(); + if (msg['pengirim_guru'] != null) return msg['pengirim_guru'].toString(); + if (msg['pengirim_murid'] != null) return msg['pengirim_murid'].toString(); + return ''; + } + + Widget _buildIzinCard(String text, String senderName, String time, bool isMe) { + final lines = text.split('\n'); + String nama = ''; + String tanggal = ''; + String keterangan = ''; + List lampiranUrls = []; + String idIzin = ''; + String jenis = ''; + + for (var rawLine in lines) { + final line = rawLine.trim(); + if (line.startsWith('Nama: ')) nama = line.substring(6).trim(); + else if (line.startsWith('Tanggal: ')) tanggal = line.substring(9).trim(); + else if (line.startsWith('Keterangan: ')) keterangan = line.substring(12).trim(); + else if (line.startsWith('Lampiran: ')) { + final urlsString = line.substring(10).trim(); + if (urlsString.isNotEmpty) { + lampiranUrls = urlsString.split(RegExp(r'\s+')).where((s) => s.startsWith('http')).toList(); + } + } + else if (line.startsWith('ID_IZIN: ')) idIzin = line.substring(8).trim(); + else if (line.startsWith('Jenis: ')) jenis = line.substring(7).trim(); + else if (keterangan.isNotEmpty && lampiranUrls.isEmpty && !line.startsWith('📋') && !line.startsWith('ID_IZIN:') && !line.startsWith('Jenis:')) { + keterangan += '\n$line'; + } + } + + return Align( + alignment: isMe ? Alignment.centerRight : Alignment.centerLeft, + child: Container( + margin: const EdgeInsets.symmetric(vertical: 4), + constraints: BoxConstraints( + maxWidth: MediaQuery.of(context).size.width * 0.85, + ), + child: Card( + color: Colors.amber[50], + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(12)), + elevation: 2, + child: Padding( + padding: const EdgeInsets.all(16), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + children: [ + Icon( + jenis.toLowerCase() == 'sakit' ? Icons.sick : Icons.assignment_ind, + color: jenis.toLowerCase() == 'sakit' ? Colors.red : Colors.amber, + size: 28, + ), + const SizedBox(width: 8), + Expanded( + child: Text( + jenis.isNotEmpty ? 'Pengajuan $jenis' : 'Pengajuan Izin', + style: const TextStyle( + fontWeight: FontWeight.bold, + fontSize: 16, + ), + ), + ), + ], + ), + const Divider(), + Row( + children: [ + const Icon(Icons.person, size: 16, color: Colors.grey), + const SizedBox(width: 4), + Text( + nama, + style: const TextStyle(fontSize: 12, fontWeight: FontWeight.bold, color: Colors.black87), + ), + ], + ), + const SizedBox(height: 4), + Row( + children: [ + const Icon(Icons.date_range, size: 16, color: Colors.grey), + const SizedBox(width: 4), + Text( + tanggal, + style: const TextStyle(fontSize: 12, color: Colors.black87), + ), + ], + ), + if (keterangan.isNotEmpty) ...[ + const SizedBox(height: 8), + const Text('Keterangan:', style: TextStyle(fontSize: 12, color: Colors.grey)), + Text(keterangan, style: const TextStyle(fontSize: 14)), + ], + if (lampiranUrls.isNotEmpty) ...[ + const SizedBox(height: 12), + Wrap( + spacing: 8, + runSpacing: 8, + children: lampiranUrls.map((urlStr) { + final uri = Uri.tryParse(urlStr); + String extension = 'file'; + String cleanName = 'Lampiran'; + if (uri != null && uri.pathSegments.isNotEmpty) { + final fullName = Uri.decodeComponent(uri.pathSegments.last); + cleanName = fullName.replaceFirst(RegExp(r'^\d{13}_(?:camera_)?'), ''); + final extIdx = fullName.lastIndexOf('.'); + if (extIdx != -1 && extIdx < fullName.length - 1) { + extension = fullName.substring(extIdx + 1).toLowerCase(); + } + } + final isImage = ['jpg', 'jpeg', 'png', 'gif', 'webp'].contains(extension); + final extLabel = extension.length > 4 + ? extension.substring(0, 4).toUpperCase() + : extension.toUpperCase(); + + if (isImage) { + return GestureDetector( + onTap: () { + Navigator.push(context, MaterialPageRoute( + builder: (_) => DocImagePreviewPage(imageUrl: urlStr), + )); + }, + child: ClipRRect( + borderRadius: BorderRadius.circular(8), + child: Image.network( + urlStr, + width: 110, + height: 110, + fit: BoxFit.cover, + loadingBuilder: (ctx, child, progress) => + progress == null ? child : const SizedBox(width: 110, height: 110, child: Center(child: CircularProgressIndicator(strokeWidth: 2))), + errorBuilder: (ctx, _, __) => const SizedBox(width: 110, height: 110, child: Icon(Icons.broken_image)), + ), + ), + ); + } else { + return GestureDetector( + onTap: () async { + if (uri != null) { + try { + await launchUrl(uri, mode: LaunchMode.externalApplication); + } catch (_) { + if (context.mounted) { + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text('Tidak dapat membuka lampiran')), + ); + } + } + } + }, + child: Container( + constraints: const BoxConstraints(maxWidth: 220), + padding: const EdgeInsets.all(8), + decoration: BoxDecoration( + color: Colors.white.withOpacity(0.85), + borderRadius: BorderRadius.circular(8), + border: Border.all(color: Colors.black12), + ), + child: Row( + mainAxisSize: MainAxisSize.min, + children: [ + Container( + width: 42, + height: 52, + decoration: BoxDecoration( + color: Colors.black.withOpacity(0.05), + borderRadius: BorderRadius.circular(6), + ), + child: Center( + child: Text( + extLabel, + style: const TextStyle( + fontSize: 12, + fontWeight: FontWeight.bold, + color: Colors.black87, + ), + ), + ), + ), + const SizedBox(width: 10), + Flexible( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + cleanName, + maxLines: 2, + overflow: TextOverflow.ellipsis, + style: const TextStyle( + fontSize: 13, + color: Colors.black87, + fontWeight: FontWeight.w500, + ), + ), + const SizedBox(height: 2), + Text( + '$extLabel • Dokumen', + style: const TextStyle(fontSize: 11, color: Colors.black54), + ), + ], + ), + ), + ], + ), + ), + ); + } + }).toList(), + ), + ], + if (idIzin.isNotEmpty) ...[ + const Divider(), + IzinStatusWidget(idIzin: idIzin, isTeacher: false), + ], + const SizedBox(height: 8), + Align( + alignment: Alignment.bottomRight, + child: Text( + time, + style: const TextStyle(fontSize: 10, color: Colors.black54), + ), + ), + ], + ), + ), + ), + ), + ); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + backgroundColor: const Color(0xFF2563EB), + elevation: 0, + automaticallyImplyLeading: true, + leading: IconButton( + icon: Image.asset('lib/assets/icons/Button.png', width: 30, height: 30), + onPressed: () => Navigator.pop(context), + ), + titleSpacing: -5, + title: const Text("Grup Kelas"), + titleTextStyle: const TextStyle( + fontFamily: "Inter", + fontSize: 14, + fontWeight: FontWeight.w700, + color: Colors.white, + ), + actions: [ + IconButton( + icon: const Icon(Icons.people), + tooltip: 'Anggota Kelas', + onPressed: () { + if (_currentClassId != null && _currentClassId!.isNotEmpty) { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => MemberKelasPage(classId: _currentClassId!), + ), + ); + } else { + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text('Anda belum tergabung di kelas mana pun')), + ); + } + }, + ) + ], + ), + body: _isLoading + ? const Center(child: CircularProgressIndicator()) + : _errorMessage != null + ? Center(child: Padding(padding: const EdgeInsets.all(16), child: Text(_errorMessage!, textAlign: TextAlign.center, style: const TextStyle(color: Colors.red)))) + : Column( + children: [ + Expanded( + child: _chatStream == null + ? const Center(child: Text('Gagal memuat ruang obrolan')) + : StreamBuilder>>( + stream: _chatStream, + builder: (context, snapshot) { + if (snapshot.hasError) { + return Center(child: Text('Error: ${snapshot.error}')); + } + if (snapshot.connectionState == ConnectionState.waiting) { + return const Center(child: CircularProgressIndicator()); + } + + final messages = snapshot.data ?? []; + + if (messages.isEmpty) { + return const Center(child: Text('Belum ada pesan di kelas ini')); + } + + return ListView.builder( + reverse: true, + padding: const EdgeInsets.all(16), + itemCount: messages.length, + itemBuilder: (context, index) { + final msg = messages[messages.length - 1 - index]; + final senderId = _getSenderId(msg); + final isMe = senderId == _currentUserId; + final senderName = isMe ? 'Anda' : (_userNames[senderId] ?? 'Tidak diketahui'); + + final textMsg = msg['text'] ?? ''; + if (textMsg.startsWith("📋 *Pengajuan Izin*")) { + return _buildIzinCard(textMsg, senderName, _formatTime(msg['created_at']), isMe); + } + + return Align( + alignment: isMe ? Alignment.centerRight : Alignment.centerLeft, + child: Container( + margin: const EdgeInsets.symmetric(vertical: 4), + constraints: BoxConstraints( + maxWidth: MediaQuery.of(context).size.width * 0.75, + ), + padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 10), + decoration: BoxDecoration( + color: isMe ? const Color(0xFF2563EB) : Colors.grey[200], + borderRadius: BorderRadius.only( + topLeft: const Radius.circular(16), + topRight: const Radius.circular(16), + bottomLeft: isMe ? const Radius.circular(16) : const Radius.circular(0), + bottomRight: isMe ? const Radius.circular(0) : const Radius.circular(16), + ), + ), + child: Column( + crossAxisAlignment: isMe ? CrossAxisAlignment.end : CrossAxisAlignment.start, + children: [ + if (!isMe) + Padding( + padding: const EdgeInsets.only(bottom: 4), + child: Text( + senderName, + style: const TextStyle( + fontSize: 12, + fontWeight: FontWeight.bold, + color: Color(0xFF2563EB), + ), + ), + ), + if (msg['text']?.toString().startsWith('PENGUMUMAN_ID:') == true) + PengumumanCard(pengumumanId: msg['text'].toString().split(':')[1]) + else if (msg['text']?.toString().startsWith('IMAGE_URL:') == true) + GestureDetector( + onTap: () { + Navigator.push(context, MaterialPageRoute(builder: (_) => DocImagePreviewPage(imageUrl: msg['text'].toString().replaceFirst('IMAGE_URL:', '')))); + }, + child: ClipRRect( + borderRadius: BorderRadius.circular(8), + child: Image.network( + msg['text'].toString().replaceFirst('IMAGE_URL:', ''), + width: 200, + height: 200, + fit: BoxFit.cover, + ), + ), + ) + else if (msg['text']?.toString().startsWith('DOC_URL:') == true) + Builder( + builder: (context) { + final url = msg['text'].toString().replaceFirst('DOC_URL:', ''); + final uri = Uri.tryParse(url); + String fileName = 'Dokumen'; + String extension = 'FILE'; + + if (uri != null && uri.pathSegments.isNotEmpty) { + fileName = Uri.decodeComponent(uri.pathSegments.last); + final regex = RegExp(r'^\d{13}_'); + fileName = fileName.replaceFirst(regex, ''); + final extIndex = fileName.lastIndexOf('.'); + if (extIndex != -1 && extIndex < fileName.length - 1) { + extension = fileName.substring(extIndex + 1).toUpperCase(); + } + } + + return GestureDetector( + onTap: () async { + final parsedUrl = Uri.parse(url); + try { + await launchUrl(parsedUrl, mode: LaunchMode.externalApplication); + } catch (e) { + if (context.mounted) { + ScaffoldMessenger.of(context).showSnackBar(const SnackBar(content: Text('Tidak dapat membuka dokumen'))); + } + } + }, + child: Container( + constraints: const BoxConstraints(maxWidth: 240), + padding: const EdgeInsets.all(8), + decoration: BoxDecoration( + color: isMe ? Colors.black.withOpacity(0.1) : Colors.white.withOpacity(0.5), + borderRadius: BorderRadius.circular(8), + ), + child: Row( + mainAxisSize: MainAxisSize.min, + children: [ + Container( + width: 42, + height: 52, + decoration: BoxDecoration( + color: isMe ? Colors.white.withOpacity(0.2) : Colors.black.withOpacity(0.05), + borderRadius: BorderRadius.circular(6), + ), + child: Center( + child: Text( + extension.length > 4 ? extension.substring(0, 4) : extension, + style: TextStyle( + fontSize: 12, + fontWeight: FontWeight.bold, + color: isMe ? Colors.white : Colors.black87, + ), + ), + ), + ), + const SizedBox(width: 12), + Flexible( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + fileName, + maxLines: 2, + overflow: TextOverflow.ellipsis, + style: TextStyle( + fontSize: 14, + color: isMe ? Colors.white : Colors.black87, + fontWeight: FontWeight.w500, + ), + ), + const SizedBox(height: 4), + Text( + '$extension • Dokumen', + style: TextStyle( + fontSize: 12, + color: isMe ? Colors.white70 : Colors.black54, + ), + ), + ], + ), + ), + ], + ), + ), + ); + }, + ) + else + Text( + msg['text'] ?? '', + style: TextStyle( + color: isMe ? Colors.white : Colors.black87, + ), + ), + const SizedBox(height: 4), + Text( + _formatTime(msg['created_at']), + style: TextStyle( + fontSize: 10, + color: isMe ? Colors.white70 : Colors.black54, + ), + ), + ], + ), + ), + ); + }, + ); + }, + ), + ), + Container( + padding: const EdgeInsets.all(8), + decoration: BoxDecoration( + color: Colors.white, + boxShadow: [ + BoxShadow( + color: Colors.black.withOpacity(0.05), + offset: const Offset(0, -2), + blurRadius: 4, + ), + ], + ), + child: SafeArea( + child: Row( + children: [ + PopupMenuButton( + icon: const Icon(Icons.attach_file, color: Colors.orange), + tooltip: 'Lampiran', + offset: const Offset(0, -120), + onSelected: (value) { + if (value == 'image') { + _pickAndSendImage(); + } else if (value == 'document') { + _pickAndSendDoc(); + } + }, + itemBuilder: (BuildContext context) => >[ + const PopupMenuItem( + value: 'image', + child: Row( + children: [ + Icon(Icons.image, color: Colors.blue), + SizedBox(width: 8), + Text('Gambar'), + ], + ), + ), + const PopupMenuItem( + value: 'document', + child: Row( + children: [ + Icon(Icons.insert_drive_file, color: Colors.red), + SizedBox(width: 8), + Text('Dokumen'), + ], + ), + ), + ], + ), + Expanded( + child: TextField( + controller: _messageController, + decoration: InputDecoration( + hintText: 'Tulis pesan kelas...', + contentPadding: const EdgeInsets.symmetric(horizontal: 16, vertical: 10), + filled: true, + fillColor: Colors.grey[100], + border: OutlineInputBorder( + borderRadius: BorderRadius.circular(20), + borderSide: BorderSide.none, + ), + ), + ), + ), + const SizedBox(width: 8), + CircleAvatar( + backgroundColor: const Color(0xFF2563EB), + child: IconButton( + icon: const Icon(Icons.send, color: Colors.white, size: 20), + onPressed: _sendMessage, + ), + ), + ], + ), + ), + ), + ], + ), + ); + } +} + +class IzinStatusWidget extends StatefulWidget { + final String idIzin; + final bool isTeacher; + const IzinStatusWidget({super.key, required this.idIzin, required this.isTeacher}); + + @override + State createState() => _IzinStatusWidgetState(); +} + +class _IzinStatusWidgetState extends State { + bool? _verifStatus; + bool _isLoading = true; + + @override + void initState() { + super.initState(); + _fetchStatus(); + } + + Future _fetchStatus() async { + if (widget.idIzin.isEmpty) { + setState(() => _isLoading = false); + return; + } + try { + final res = await Supabase.instance.client + .from('leave_request') + .select('verif') + .eq('id_tabel', widget.idIzin) + .maybeSingle(); + if (res != null && mounted) { + setState(() { + _verifStatus = res['verif']; + _isLoading = false; + }); + } else { + setState(() => _isLoading = false); + } + } catch (e) { + setState(() => _isLoading = false); + } + } + + Future _updateStatus(bool status) async { + setState(() => _isLoading = true); + try { + await Supabase.instance.client + .from('leave_request') + .update({'verif': status}) + .eq('id_tabel', widget.idIzin); + + if (mounted) { + setState(() { + _verifStatus = status; + _isLoading = false; + }); + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + content: Text(status ? 'Pengajuan izin disetujui!' : 'Pengajuan izin ditolak!'), + backgroundColor: status ? Colors.green : Colors.red, + ), + ); + } + } catch (e) { + if (mounted) { + setState(() => _isLoading = false); + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text('Gagal memperbarui status: $e')), + ); + } + } + } + + @override + Widget build(BuildContext context) { + if (_isLoading) { + return const Padding( + padding: EdgeInsets.symmetric(vertical: 4), + child: SizedBox( + height: 20, + width: 20, + child: CircularProgressIndicator(strokeWidth: 2), + ), + ); + } + + if (_verifStatus == true) { + return Container( + margin: const EdgeInsets.only(top: 8), + padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 6), + decoration: BoxDecoration( + color: const Color(0xFFD1FAE5), + borderRadius: BorderRadius.circular(8), + ), + child: const Row( + mainAxisSize: MainAxisSize.min, + children: [ + Icon(Icons.check_circle, color: Color(0xFF059669), size: 16), + SizedBox(width: 6), + Text( + 'Disetujui', + style: TextStyle(color: Color(0xFF059669), fontWeight: FontWeight.bold, fontSize: 12, fontFamily: 'Inter'), + ), + ], + ), + ); + } + + if (_verifStatus == false) { + return Container( + margin: const EdgeInsets.only(top: 8), + padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 6), + decoration: BoxDecoration( + color: const Color(0xFFFEE2E2), + borderRadius: BorderRadius.circular(8), + ), + child: const Row( + mainAxisSize: MainAxisSize.min, + children: [ + Icon(Icons.cancel, color: Color(0xFFDC2626), size: 16), + SizedBox(width: 6), + Text( + 'Ditolak', + style: TextStyle(color: Color(0xFFDC2626), fontWeight: FontWeight.bold, fontSize: 12, fontFamily: 'Inter'), + ), + ], + ), + ); + } + + // Status: Pending (null) + if (widget.isTeacher) { + return Container( + margin: const EdgeInsets.only(top: 12), + child: Row( + children: [ + ElevatedButton.icon( + onPressed: () => _updateStatus(true), + icon: const Icon(Icons.check, size: 16, color: Colors.white), + label: const Text('Setujui', style: TextStyle(color: Colors.white, fontFamily: 'Inter', fontWeight: FontWeight.bold)), + style: ElevatedButton.styleFrom( + backgroundColor: const Color(0xFF059669), + padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 8), + minimumSize: Size.zero, + tapTargetSize: MaterialTapTargetSize.shrinkWrap, + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(8)), + ), + ), + const SizedBox(width: 12), + OutlinedButton.icon( + onPressed: () => _updateStatus(false), + icon: const Icon(Icons.close, size: 16, color: Color(0xFFDC2626)), + label: const Text('Tolak', style: TextStyle(color: Color(0xFFDC2626), fontFamily: 'Inter', fontWeight: FontWeight.bold)), + style: OutlinedButton.styleFrom( + side: const BorderSide(color: Color(0xFFDC2626)), + padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 8), + minimumSize: Size.zero, + tapTargetSize: MaterialTapTargetSize.shrinkWrap, + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(8)), + ), + ), + ], + ), + ); + } + + return Container( + margin: const EdgeInsets.only(top: 8), + padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 6), + decoration: BoxDecoration( + color: const Color(0xFFFEF3C7), + borderRadius: BorderRadius.circular(8), + ), + child: const Row( + mainAxisSize: MainAxisSize.min, + children: [ + Icon(Icons.hourglass_empty, color: Color(0xFFD97706), size: 16), + SizedBox(width: 6), + Text( + 'Menunggu Persetujuan', + style: TextStyle(color: Color(0xFFD97706), fontWeight: FontWeight.bold, fontSize: 12, fontFamily: 'Inter'), + ), + ], + ), + ); + } +} + diff --git a/lib/dashboard/d_c_murid/function/f_Pesan/grup_sekolah.dart b/lib/dashboard/d_c_murid/function/f_Pesan/grup_sekolah.dart new file mode 100644 index 0000000..56a8a73 --- /dev/null +++ b/lib/dashboard/d_c_murid/function/f_Pesan/grup_sekolah.dart @@ -0,0 +1,475 @@ +import 'dart:io'; +import 'package:flutter/material.dart'; +import 'package:intl/intl.dart'; +import 'package:apk/dashboard/d_c_murid/database/db_grup_sekolah.dart'; +import 'package:apk/dashboard/d_c_murid/function/f_Pesan/member_sekolah.dart'; +import 'package:apk/dashboard/d_c_murid/function/f_Pesan/pengumuman_card.dart'; +import 'package:file_picker/file_picker.dart'; +import 'package:image_picker/image_picker.dart'; +import 'package:url_launcher/url_launcher.dart'; +import 'package:apk/dashboard/d_c_murid/database/storage/image_doc.dart'; +import 'package:apk/dashboard/d_c_murid/function/f_Pesan/doc_image.dart'; +import 'package:apk/dashboard/d_c_murid/function/FCM_absen.dart/grup_sekolah_n.dart'; + +class GrupSekolah extends StatefulWidget { + const GrupSekolah({super.key}); + + @override + State createState() => _GrupSekolahState(); +} + +class _GrupSekolahState extends State { + final TextEditingController _messageController = TextEditingController(); + + bool _isLoading = true; + String? _errorMessage; + + String? _currentUserId; + String? _currentUserRole; // 'admin', 'guru', or 'murid' + + Stream>>? _chatStream; + Map _userNames = {}; // mapping ID ke Nama + + @override + void initState() { + super.initState(); + _initChat(); + GrupSekolahNotification.setUnread(false); + } + + Future _initChat() async { + try { + // Fetch mapping nama semua user + _userNames = await DbGrupSekolah.fetchAllNames(); + + // Fetch current user info + final currentUserInfo = await DbGrupSekolah.getCurrentUserRoleAndId(); + + if (currentUserInfo != null) { + _currentUserId = currentUserInfo['id']; + _currentUserRole = currentUserInfo['role']; + _chatStream = DbGrupSekolah().getGrupSekolahStream(); + } else { + _errorMessage = 'Gagal memuat profil. Pastikan Anda telah login dengan benar.'; + } + } catch (e) { + _errorMessage = 'Error: $e'; + } finally { + if (mounted) { + setState(() { + _isLoading = false; + }); + } + } + } + + Future _pickAndSendImage() async { + final picker = ImagePicker(); + final pickedFile = await picker.pickImage(source: ImageSource.gallery); + if (pickedFile != null) { + final file = File(pickedFile.path); + final name = pickedFile.name; + setState(() => _isLoading = true); + final url = await ImageDocStorage.uploadFileObject(file, name); + if (url != null) { + await DbGrupSekolah().sendMessage( + text: 'IMAGE_URL:$url', + senderId: _currentUserId!, + role: _currentUserRole!, + ); + await _initChat(); + } else { + setState(() => _isLoading = false); + if (mounted) ScaffoldMessenger.of(context).showSnackBar(const SnackBar(content: Text('Gagal unggah gambar'))); + } + } + } + + Future _pickAndSendDoc() async { + final result = await FilePicker.pickFiles( + type: FileType.custom, + allowedExtensions: ['pdf', 'doc', 'docx', 'xls', 'xlsx', 'txt', 'zip', 'rar'], + withData: true, + ); + if (result != null && result.files.single.bytes != null) { + final bytes = result.files.single.bytes!; + final name = result.files.single.name; + setState(() => _isLoading = true); + final url = await ImageDocStorage.uploadFile(bytes, name); + if (url != null) { + await DbGrupSekolah().sendMessage( + text: 'DOC_URL:$url', + senderId: _currentUserId!, + role: _currentUserRole!, + ); + await _initChat(); + } else { + setState(() => _isLoading = false); + if (mounted) ScaffoldMessenger.of(context).showSnackBar(const SnackBar(content: Text('Gagal unggah dokumen'))); + } + } + } + + Future _sendMessage() async { + final text = _messageController.text.trim(); + if (text.isEmpty || _currentUserId == null || _currentUserRole == null) return; + + _messageController.clear(); + + try { + await DbGrupSekolah().sendMessage( + text: text, + senderId: _currentUserId!, + role: _currentUserRole!, + ); + + // Reload stream dari database setelah mengirim pesan + if (mounted) { + setState(() { + _isLoading = true; + }); + await _initChat(); + } + } catch (e) { + if (mounted) { + ScaffoldMessenger.of(context).showSnackBar(SnackBar(content: Text('Error: $e'))); + } + } + } + + String _formatTime(String isoString) { + try { + final date = DateTime.parse(isoString).toLocal(); + return DateFormat('HH:mm').format(date); + } catch (_) { + return ''; + } + } + + String _getSenderId(Map msg) { + if (msg['pengirim_admin'] != null) return msg['pengirim_admin'].toString(); + if (msg['pengirim_guru'] != null) return msg['pengirim_guru'].toString(); + if (msg['pengirim_murid'] != null) return msg['pengirim_murid'].toString(); + return ''; + } + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + backgroundColor: const Color(0xFF2563EB), + elevation: 0, + automaticallyImplyLeading: true, + leading: IconButton( + icon: Image.asset('lib/assets/icons/Button.png', width: 30, height: 30), + onPressed: () => Navigator.pop(context), + ), + titleSpacing: -5, + title: const Text("Grup Sekolah"), + titleTextStyle: const TextStyle( + fontFamily: "Inter", + fontSize: 14, + fontWeight: FontWeight.w700, + color: Colors.white, + ), + actions: [ + IconButton( + icon: const Icon(Icons.people), + tooltip: 'Anggota Grup', + onPressed: () { + Navigator.push( + context, + MaterialPageRoute(builder: (context) => MemberSekolahPage()), + ); + }, + ) + ], + ), + body: _isLoading + ? const Center(child: CircularProgressIndicator()) + : _errorMessage != null + ? Center(child: Padding(padding: const EdgeInsets.all(16), child: Text(_errorMessage!, style: const TextStyle(color: Colors.red)))) + : Column( + children: [ + Expanded( + child: _chatStream == null + ? const Center(child: Text('Gagal memuat ruang obrolan')) + : StreamBuilder>>( + stream: _chatStream, + builder: (context, snapshot) { + if (snapshot.hasError) { + return Center(child: Text('Error: ${snapshot.error}')); + } + if (snapshot.connectionState == ConnectionState.waiting) { + return const Center(child: CircularProgressIndicator()); + } + + final messages = snapshot.data ?? []; + + if (messages.isEmpty) { + return const Center(child: Text('Belum ada pesan. Mulai obrolan!')); + } + + return ListView.builder( + reverse: true, + padding: const EdgeInsets.all(16), + itemCount: messages.length, + itemBuilder: (context, index) { + final msg = messages[messages.length - 1 - index]; + bool isMe = false; + if (_currentUserRole == 'admin') { + isMe = msg['pengirim_admin']?.toString() == _currentUserId; + } else if (_currentUserRole == 'guru') { + isMe = msg['pengirim_guru']?.toString() == _currentUserId; + } else if (_currentUserRole == 'murid') { + isMe = msg['pengirim_murid']?.toString() == _currentUserId; + } + final senderId = _getSenderId(msg); + final senderName = _userNames[senderId] ?? 'Pengguna'; + + return Align( + alignment: isMe ? Alignment.centerRight : Alignment.centerLeft, + child: Container( + margin: const EdgeInsets.symmetric(vertical: 6), + child: Column( + crossAxisAlignment: isMe ? CrossAxisAlignment.end : CrossAxisAlignment.start, + children: [ + if (!isMe) + Padding( + padding: const EdgeInsets.only(left: 4, bottom: 2), + child: Text( + senderName, + style: const TextStyle( + fontSize: 12, + color: Colors.black54, + fontWeight: FontWeight.bold, + ), + ), + ), + Container( + padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 10), + decoration: BoxDecoration( + color: isMe ? const Color(0xFF2563EB) : Colors.grey[200], + borderRadius: BorderRadius.only( + topLeft: const Radius.circular(16), + topRight: const Radius.circular(16), + bottomLeft: isMe ? const Radius.circular(16) : const Radius.circular(0), + bottomRight: isMe ? const Radius.circular(0) : const Radius.circular(16), + ), + ), + child: Column( + crossAxisAlignment: isMe ? CrossAxisAlignment.end : CrossAxisAlignment.start, + children: [ + if (msg['text']?.toString().startsWith('PENGUMUMAN_ID:') == true) + PengumumanCard(pengumumanId: msg['text'].toString().split(':')[1]) + else if (msg['text']?.toString().startsWith('IMAGE_URL:') == true) + GestureDetector( + onTap: () { + Navigator.push(context, MaterialPageRoute(builder: (_) => DocImagePreviewPage(imageUrl: msg['text'].toString().replaceFirst('IMAGE_URL:', '')))); + }, + child: ClipRRect( + borderRadius: BorderRadius.circular(8), + child: Image.network( + msg['text'].toString().replaceFirst('IMAGE_URL:', ''), + width: 200, + height: 200, + fit: BoxFit.cover, + ), + ), + ) + else if (msg['text']?.toString().startsWith('DOC_URL:') == true) + Builder( + builder: (context) { + final url = msg['text'].toString().replaceFirst('DOC_URL:', ''); + final uri = Uri.tryParse(url); + String fileName = 'Dokumen'; + String extension = 'FILE'; + + if (uri != null && uri.pathSegments.isNotEmpty) { + fileName = Uri.decodeComponent(uri.pathSegments.last); + final regex = RegExp(r'^\d{13}_'); + fileName = fileName.replaceFirst(regex, ''); + final extIndex = fileName.lastIndexOf('.'); + if (extIndex != -1 && extIndex < fileName.length - 1) { + extension = fileName.substring(extIndex + 1).toUpperCase(); + } + } + + return GestureDetector( + onTap: () async { + final parsedUrl = Uri.parse(url); + try { + await launchUrl(parsedUrl, mode: LaunchMode.externalApplication); + } catch (e) { + if (context.mounted) { + ScaffoldMessenger.of(context).showSnackBar(const SnackBar(content: Text('Tidak dapat membuka dokumen'))); + } + } + }, + child: Container( + constraints: const BoxConstraints(maxWidth: 240), + padding: const EdgeInsets.all(8), + decoration: BoxDecoration( + color: isMe ? Colors.black.withOpacity(0.1) : Colors.white.withOpacity(0.5), + borderRadius: BorderRadius.circular(8), + ), + child: Row( + mainAxisSize: MainAxisSize.min, + children: [ + Container( + width: 42, + height: 52, + decoration: BoxDecoration( + color: isMe ? Colors.white.withOpacity(0.2) : Colors.black.withOpacity(0.05), + borderRadius: BorderRadius.circular(6), + ), + child: Center( + child: Text( + extension.length > 4 ? extension.substring(0, 4) : extension, + style: TextStyle( + fontSize: 12, + fontWeight: FontWeight.bold, + color: isMe ? Colors.white : Colors.black87, + ), + ), + ), + ), + const SizedBox(width: 12), + Flexible( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + fileName, + maxLines: 2, + overflow: TextOverflow.ellipsis, + style: TextStyle( + fontSize: 14, + color: isMe ? Colors.white : Colors.black87, + fontWeight: FontWeight.w500, + ), + ), + const SizedBox(height: 4), + Text( + '$extension • Dokumen', + style: TextStyle( + fontSize: 12, + color: isMe ? Colors.white70 : Colors.black54, + ), + ), + ], + ), + ), + ], + ), + ), + ); + }, + ) + else + Text( + msg['text'] ?? '', + style: TextStyle( + color: isMe ? Colors.white : Colors.black87, + ), + ), + const SizedBox(height: 4), + Text( + _formatTime(msg['created_at']), + style: TextStyle( + fontSize: 10, + color: isMe ? Colors.white70 : Colors.black54, + ), + ), + ], + ), + ), + ], + ), + ), + ); + }, + ); + }, + ), + ), + Container( + padding: const EdgeInsets.all(8), + decoration: BoxDecoration( + color: Colors.white, + boxShadow: [ + BoxShadow( + color: Colors.black.withOpacity(0.05), + offset: const Offset(0, -2), + blurRadius: 4, + ), + ], + ), + child: Row( + children: [ + PopupMenuButton( + icon: const Icon(Icons.attach_file, color: Colors.orange), + tooltip: 'Lampiran', + offset: const Offset(0, -120), + onSelected: (value) { + if (value == 'image') { + _pickAndSendImage(); + } else if (value == 'document') { + _pickAndSendDoc(); + } + }, + itemBuilder: (BuildContext context) => >[ + const PopupMenuItem( + value: 'image', + child: Row( + children: [ + Icon(Icons.image, color: Colors.blue), + SizedBox(width: 8), + Text('Gambar'), + ], + ), + ), + const PopupMenuItem( + value: 'document', + child: Row( + children: [ + Icon(Icons.insert_drive_file, color: Colors.red), + SizedBox(width: 8), + Text('Dokumen'), + ], + ), + ), + ], + ), + + Expanded( + child: TextField( + controller: _messageController, + decoration: InputDecoration( + hintText: 'Tulis pesan...', + contentPadding: const EdgeInsets.symmetric(horizontal: 16, vertical: 10), + filled: true, + fillColor: Colors.grey[100], + border: OutlineInputBorder( + borderRadius: BorderRadius.circular(20), + borderSide: BorderSide.none, + ), + ), + ), + ), + const SizedBox(width: 8), + CircleAvatar( + backgroundColor: const Color(0xFF2563EB), + child: IconButton( + icon: const Icon(Icons.send, color: Colors.white, size: 20), + onPressed: _sendMessage, + ), + ), + ], + ), + ), + ], + ), + ); + } +} diff --git a/lib/dashboard/d_c_murid/function/f_Pesan/grup_sekolah_p.dart b/lib/dashboard/d_c_murid/function/f_Pesan/grup_sekolah_p.dart new file mode 100644 index 0000000..1694933 --- /dev/null +++ b/lib/dashboard/d_c_murid/function/f_Pesan/grup_sekolah_p.dart @@ -0,0 +1 @@ +// Deprecated. Fungsi notifikasi dipindahkan ke lib/function/f_Pesan/notif_pesan/preview_pesan.dart diff --git a/lib/dashboard/d_c_murid/function/f_Pesan/member_kelas.dart b/lib/dashboard/d_c_murid/function/f_Pesan/member_kelas.dart new file mode 100644 index 0000000..7f93c43 --- /dev/null +++ b/lib/dashboard/d_c_murid/function/f_Pesan/member_kelas.dart @@ -0,0 +1,177 @@ +import 'package:flutter/material.dart'; +import 'package:supabase_flutter/supabase_flutter.dart'; +import 'package:apk/dashboard/d_c_murid/database/db_guru.dart'; +import 'package:apk/dashboard/d_c_murid/database/db_murid.dart'; + +class MemberKelasPage extends StatefulWidget { + final String classId; + const MemberKelasPage({super.key, required this.classId}); + + @override + State createState() => _MemberKelasPageState(); +} + +class _MemberKelasPageState extends State { + final DbGuru _dbGuru = DbGuru(); + final DbMurid _dbMurid = DbMurid(); + + bool _isLoading = true; + String? _errorMessage; + + List> _gurusInClass = []; + List> _muridsInClass = []; + String _className = 'Kelas'; + + @override + void initState() { + super.initState(); + _fetchMembers(); + } + + Future _fetchMembers() async { + try { + final guruList = await _dbGuru.getAllGuru(); + final muridList = await _dbMurid.getAllMurid(); + + final List> gurus = []; + final List> murids = []; + + // Ambil nama kelas untuk judul + final supabase = Supabase.instance.client; + final classInfo = await supabase.from('class_name').select('name_class').eq('id_tabel', widget.classId).maybeSingle(); + if (classInfo?['name_class'] != null) { + _className = classInfo!['name_class'].toString(); + } + + // Process Guru (Cek id_class dan boolean 'wali') + for (var guru in guruList) { + if (guru['id_class']?.toString() == widget.classId) { + if (guru['wali'] == true) { + guru['role'] = 'Guru / Wali Kelas'; + } else { + guru['role'] = 'Guru'; + } + gurus.add(guru); + } + } + + // Process Murid + for (var murid in muridList) { + if (murid['id_class']?.toString() == widget.classId) { + murid['role'] = 'Murid'; + murids.add(murid); + } + } + + setState(() { + _gurusInClass = gurus; + _muridsInClass = murids; + _isLoading = false; + }); + } catch (e) { + setState(() { + _errorMessage = 'Gagal memuat anggota kelas: $e'; + _isLoading = false; + }); + } + } + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: Colors.white, + appBar: AppBar( + backgroundColor: const Color(0xFF2563EB), + elevation: 0, + automaticallyImplyLeading: true, + leading: IconButton( + icon: Image.asset('lib/assets/icons/Button.png', width: 30, height: 30), + onPressed: () => Navigator.pop(context), + ), + titleSpacing: -5, + title: Text("Anggota $_className"), + titleTextStyle: const TextStyle( + fontFamily: "Inter", + fontSize: 14, + fontWeight: FontWeight.w700, + color: Colors.white, + ), + ), + body: _isLoading + ? const Center(child: CircularProgressIndicator()) + : _errorMessage != null + ? Center( + child: Padding( + padding: const EdgeInsets.all(16), + child: Text(_errorMessage!, style: const TextStyle(color: Colors.red, fontFamily: 'Inter')), + ), + ) + : _buildMemberList(), + ); + } + + Widget _buildMemberList() { + if (_gurusInClass.isEmpty && _muridsInClass.isEmpty) { + return const Center(child: Text('Belum ada anggota di kelas ini.', style: TextStyle(fontFamily: 'Inter'))); + } + + return ListView( + padding: const EdgeInsets.all(16), + children: [ + if (_gurusInClass.isNotEmpty) + const Padding( + padding: EdgeInsets.symmetric(vertical: 8.0, horizontal: 16.0), + child: Align( + alignment: Alignment.centerLeft, + child: Text( + 'Daftar Guru:', + style: TextStyle( + fontFamily: 'Inter', + color: Color(0xFF2563EB), + fontWeight: FontWeight.w600), + ), + ), + ), + ..._gurusInClass.map((g) { + final name = g['name'] ?? '-'; + + return ListTile( + leading: const CircleAvatar( + backgroundColor: Color(0xFF2563EB), + child: Icon(Icons.person, color: Colors.white), + ), + title: Text(name, style: const TextStyle(fontFamily: 'Inter', fontWeight: FontWeight.w500)), + subtitle: Text(g['role'] ?? 'Guru', style: const TextStyle(fontFamily: 'Inter', fontSize: 13)), + ); + }).toList(), + + if (_muridsInClass.isNotEmpty) + const Padding( + padding: EdgeInsets.symmetric(vertical: 8.0, horizontal: 16.0), + child: Align( + alignment: Alignment.centerLeft, + child: Text( + 'Daftar Murid:', + style: TextStyle( + fontFamily: 'Inter', + color: Color(0xFF2563EB), + fontWeight: FontWeight.w600), + ), + ), + ), + ..._muridsInClass.map((m) { + final name = m['nama'] ?? '-'; + + return ListTile( + leading: CircleAvatar( + backgroundColor: Colors.orange[400], + child: const Icon(Icons.person_outline, color: Colors.white), + ), + title: Text(name, style: const TextStyle(fontFamily: 'Inter', fontWeight: FontWeight.w500)), + subtitle: const Text('Murid', style: TextStyle(fontFamily: 'Inter', fontSize: 13)), + ); + }).toList(), + ], + ); + } +} diff --git a/lib/dashboard/d_c_murid/function/f_Pesan/member_sekolah.dart b/lib/dashboard/d_c_murid/function/f_Pesan/member_sekolah.dart new file mode 100644 index 0000000..b47a39d --- /dev/null +++ b/lib/dashboard/d_c_murid/function/f_Pesan/member_sekolah.dart @@ -0,0 +1,171 @@ +import 'package:flutter/material.dart'; +import 'package:apk/dashboard/d_c_murid/database/db_guru.dart'; +import 'package:apk/dashboard/d_c_murid/database/db_murid.dart'; + +class MemberSekolahPage extends StatefulWidget { + const MemberSekolahPage({super.key}); + + @override + State createState() => _MemberSekolahPageState(); +} + +class _MemberSekolahPageState extends State { + bool _isLoading = true; + List> _listClass = []; + List> _listGuru = []; + List> _listMurid = []; + + @override + void initState() { + super.initState(); + _loadData(); + } + + Future _loadData() async { + try { + final classRes = await DbMurid().getKelas(); + final guruRes = await DbGuru().getAllGuru(); + final muridRes = await DbMurid().getAllMurid(); + + if (mounted) { + setState(() { + _listClass = classRes; + _listGuru = guruRes; + _listMurid = muridRes; + _isLoading = false; + }); + } + } catch (e) { + if (mounted) { + setState(() => _isLoading = false); + ScaffoldMessenger.of(context) + .showSnackBar(SnackBar(content: Text('Error: $e'))); + } + } + } + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + backgroundColor: const Color(0xFF2563EB), + elevation: 0, + automaticallyImplyLeading: true, + leading: IconButton( + icon: Image.asset('lib/assets/icons/Button.png', width: 30, height: 30), + onPressed: () => Navigator.pop(context), + ), + titleSpacing: -5, + title: const Text("Anggota Grup Sekolah"), + titleTextStyle: const TextStyle( + fontFamily: "Inter", + fontSize: 14, + fontWeight: FontWeight.w700, + color: Colors.white, + ), + ), + body: _isLoading + ? const Center(child: CircularProgressIndicator()) + : _buildMemberList(), + ); + } + + Widget _buildMemberList() { + // Kita bisa mengelompokkan berdasarkan id_class + // Tambahkan 1 kelas "Tanpa Kelas" jika ada yang id_class nya null + List> allClasses = List.from(_listClass); + allClasses.add({ + 'id_tabel': null, + 'name_class': 'Tanpa Kelas (Belum Dimasukkan Kelas)' + }); + + return ListView.builder( + padding: const EdgeInsets.all(16), + itemCount: allClasses.length, + itemBuilder: (context, index) { + final currentClass = allClasses[index]; + final classId = currentClass['id_tabel']; + final className = currentClass['name_class']; + + // Filter Guru dan Murid untuk kelas ini + final gurusInClass = _listGuru + .where((g) => g['id_class'] == classId) + .toList(); + final muridsInClass = _listMurid + .where((m) => m['id_class'] == classId) + .toList(); + + if (gurusInClass.isEmpty && muridsInClass.isEmpty && classId == null) { + return const SizedBox.shrink(); // Jangan tampilkan 'Tanpa Kelas' jika kosong + } + + return ExpansionTile( + title: Text( + className, + style: const TextStyle( + fontWeight: FontWeight.bold, + fontFamily: 'Inter', + ), + ), + children: [ + if (gurusInClass.isNotEmpty) + const Padding( + padding: EdgeInsets.symmetric(vertical: 8.0, horizontal: 16.0), + child: Align( + alignment: Alignment.centerLeft, + child: Text( + 'Daftar Guru:', + style: TextStyle( + fontFamily: 'Inter', + color: Color(0xFF2563EB), + fontWeight: FontWeight.w600), + ), + ), + ), + ...gurusInClass.map((g) { + final isWali = g['wali'] == true; + return ListTile( + leading: const CircleAvatar( + backgroundColor: Color(0xFF2563EB), + child: Icon(Icons.person, color: Colors.white), + ), + title: Text(g['name'] ?? '-'), + subtitle: Text(isWali ? 'Guru / Wali Kelas' : 'Guru'), + ); + }).toList(), + + if (muridsInClass.isNotEmpty) + const Padding( + padding: EdgeInsets.symmetric(vertical: 8.0, horizontal: 16.0), + child: Align( + alignment: Alignment.centerLeft, + child: Text( + 'Daftar Murid:', + style: TextStyle( + fontFamily: 'Inter', + color: Color(0xFF2563EB), + fontWeight: FontWeight.w600), + ), + ), + ), + ...muridsInClass.map((m) { + return ListTile( + leading: CircleAvatar( + backgroundColor: Colors.orange[400], + child: const Icon(Icons.person_outline, color: Colors.white), + ), + title: Text(m['nama'] ?? '-'), + subtitle: const Text('Murid'), + ); + }).toList(), + if (gurusInClass.isEmpty && muridsInClass.isEmpty) + const Padding( + padding: EdgeInsets.all(16.0), + child: Text('Belum ada anggota di kelas ini.'), + ) + ], + ); + }, + ); + } +} diff --git a/lib/dashboard/d_c_murid/function/f_Pesan/notif_pesan/preview_pesan.dart b/lib/dashboard/d_c_murid/function/f_Pesan/notif_pesan/preview_pesan.dart new file mode 100644 index 0000000..298af58 --- /dev/null +++ b/lib/dashboard/d_c_murid/function/f_Pesan/notif_pesan/preview_pesan.dart @@ -0,0 +1,1205 @@ +import 'package:flutter/material.dart'; +import 'package:shared_preferences/shared_preferences.dart'; +import 'package:supabase_flutter/supabase_flutter.dart'; +import 'package:apk/dashboard/d_c_murid/database/db_grup_sekolah.dart'; +import 'package:apk/dashboard/d_c_murid/database/db_grup_kelas.dart'; +import 'package:apk/dashboard/d_c_murid/database/db_pesan_private.dart'; + +// Ortu/Murid navigation targets +import 'package:apk/dashboard/d_c_murid/function/f_Pesan/grup_sekolah.dart'; +import 'package:apk/dashboard/d_c_murid/function/f_Pesan/grup_kelas.dart'; +import 'package:apk/dashboard/d_c_murid/function/f_Pesan/chat_admin.dart'; +import 'package:apk/dashboard/d_c_murid/function/f_Pesan/dash_pesan.dart'; +import 'package:apk/dashboard/d_c_murid/function/p_pengumuman.dart/preview_p.dart'; + +class PreviewPesan extends StatefulWidget { + const PreviewPesan({super.key}); + + @override + State createState() => _PreviewPesanState(); +} + +class _PreviewPesanState extends State { + String? _currentUserId; + String? _currentUserRole; + String? _currentClassId; + String? _idAdmin; + bool _isLoading = true; + + final Map _counts = { + 'sekolah': 0, + 'kelas': 0, + 'admin': 0, + 'guru': 0, + 'pengumuman': 0, + }; + + @override + void initState() { + super.initState(); + _initUser(); + } + + Future _initUser() async { + try { + final prefs = await SharedPreferences.getInstance(); + _idAdmin = prefs.getString('user_id_admin'); + + final info = await DbGrupKelas.getCurrentUserRoleAndId(); + if (info != null) { + _currentUserId = info['id']; + _currentUserRole = info['role']; + _currentClassId = info['id_class']; + } + } catch (_) {} + if (mounted) { + setState(() { + _isLoading = false; + }); + } + } + + void _updateCount(String key, int count) { + if (_counts[key] != count) { + WidgetsBinding.instance.addPostFrameCallback((_) { + if (mounted) { + setState(() { + _counts[key] = count; + }); + } + }); + } + } + + @override + Widget build(BuildContext context) { + if (_isLoading) { + return const Scaffold( + body: Center(child: CircularProgressIndicator()), + ); + } + + if (_currentUserId == null || _currentUserRole == null) { + return const Scaffold( + body: Center(child: Text('Harap login terlebih dahulu.')), + ); + } + + final totalUnread = _counts.values.fold(0, (sum, val) => sum + val); + + return Scaffold( + backgroundColor: const Color(0xFFF1F5F9), + appBar: AppBar( + backgroundColor: const Color(0xFF2563EB), + elevation: 0, + automaticallyImplyLeading: true, + leading: IconButton( + icon: Image.asset('lib/assets/icons/Button.png', width: 30, height: 30), + onPressed: () => Navigator.pop(context), + ), + titleSpacing: -5, + title: const Text("Notifikasi"), + titleTextStyle: const TextStyle( + fontFamily: "Inter", + fontSize: 14, + fontWeight: FontWeight.w700, + color: Colors.white, + ), + ), + body: totalUnread == 0 + ? Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Icon( + Icons.notifications_none_rounded, + size: 64, + color: Colors.grey.shade400, + ), + const SizedBox(height: 16), + Text( + 'Tidak ada notifikasi baru', + style: TextStyle( + color: Colors.grey.shade500, + fontSize: 16, + fontFamily: 'Inter', + ), + ), + ], + ), + ) + : ListView( + padding: const EdgeInsets.all(16), + children: [ + const Padding( + padding: EdgeInsets.only(bottom: 12), + child: Text( + 'Pesan & Informasi Masuk', + style: TextStyle( + fontSize: 13, + fontWeight: FontWeight.w600, + color: Color(0xFF64748B), + fontFamily: 'Inter', + letterSpacing: 0.5, + ), + ), + ), + // ──── KATEGORI NOTIFIKASI ORTU/MURID ──── + // 1. Grup Sekolah + GrupSekolahNotificationCard( + currentUserId: _currentUserId!, + currentUserRole: _currentUserRole!, + onCountChanged: (count) => _updateCount('sekolah', count), + ), + // 2. Grup Kelas + if (_currentClassId != null && _currentClassId!.isNotEmpty) + GrupKelasNotificationCard( + idClass: _currentClassId!, + currentUserId: _currentUserId!, + currentUserRole: _currentUserRole!, + onCountChanged: (count) => _updateCount('kelas', count), + ), + // 3. Admin Sekolah + if (_idAdmin != null) + AdminSekolahNotificationCard( + idMurid: _currentUserId!, + idAdmin: _idAdmin!, + onCountChanged: (count) => _updateCount('admin', count), + ), + // 4. Pesan ke Guru + PesanGuruNotificationCard( + idMurid: _currentUserId!, + onCountChanged: (count) => _updateCount('guru', count), + ), + // 5. Pengumuman (Hanya untuk Ortu/Murid) + PengumumanNotificationCard( + onCountChanged: (count) => _updateCount('pengumuman', count), + ), + ], + ), + ); + } +} + +// ───────────────────────────────────────────────────────────────────────────── +// HELPER CARD: ORTU/MURID VERSION +// ───────────────────────────────────────────────────────────────────────────── + +class GrupSekolahNotificationCard extends StatefulWidget { + final String currentUserId; + final String currentUserRole; + final ValueChanged onCountChanged; + + const GrupSekolahNotificationCard({ + super.key, + required this.currentUserId, + required this.currentUserRole, + required this.onCountChanged, + }); + + @override + State createState() => + _GrupSekolahNotificationCardState(); +} + +class _GrupSekolahNotificationCardState + extends State { + DateTime? _lastVisited; + + @override + void initState() { + super.initState(); + _loadLastVisited(); + } + + Future _loadLastVisited() async { + final prefs = await SharedPreferences.getInstance(); + final lastVisitedStr = prefs.getString('last_visited_grup_sekolah'); + if (mounted) { + setState(() { + _lastVisited = + lastVisitedStr != null ? DateTime.tryParse(lastVisitedStr) : null; + }); + } + } + + String _formatTime(String? timeStr) { + if (timeStr == null) return ''; + final dt = DateTime.tryParse(timeStr)?.toLocal(); + if (dt == null) return ''; + final now = DateTime.now(); + final diff = now.difference(dt); + if (diff.inMinutes < 1) return 'Baru saja'; + if (diff.inHours < 1) return '${diff.inMinutes} menit lalu'; + if (diff.inDays < 1) return '${diff.inHours} jam lalu'; + return '${diff.inDays} hari lalu'; + } + + @override + Widget build(BuildContext context) { + return StreamBuilder>>( + stream: DbGrupSekolah().getGrupSekolahStream(), + builder: (context, snapshot) { + if (!snapshot.hasData || snapshot.data!.isEmpty) { + widget.onCountChanged(0); + return const SizedBox.shrink(); + } + + int unreadCount = 0; + String? latestMessagePreview; + String? latestMessageTime; + + for (final msg in snapshot.data!) { + final createdAtStr = msg['created_at']?.toString(); + bool isMe = false; + if (widget.currentUserRole == 'admin') { + isMe = msg['pengirim_admin']?.toString() == widget.currentUserId; + } else if (widget.currentUserRole == 'guru') { + isMe = msg['pengirim_guru']?.toString() == widget.currentUserId; + } else if (widget.currentUserRole == 'murid') { + isMe = msg['pengirim_murid']?.toString() == widget.currentUserId; + } + + if (createdAtStr != null && !isMe) { + final createdAt = DateTime.tryParse(createdAtStr); + if (createdAt != null) { + if (_lastVisited == null || createdAt.isAfter(_lastVisited!)) { + unreadCount++; + latestMessagePreview = msg['text']?.toString(); + latestMessageTime = createdAtStr; + } + } + } + } + + widget.onCountChanged(unreadCount); + + if (unreadCount == 0) { + return const SizedBox.shrink(); + } + + return Card( + elevation: 0, + color: Colors.white, + margin: const EdgeInsets.only(bottom: 12), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(14), + side: const BorderSide(color: Color(0xFFE2E8F0)), + ), + child: InkWell( + borderRadius: BorderRadius.circular(14), + onTap: () async { + final prefs = await SharedPreferences.getInstance(); + await prefs.setString( + 'last_visited_grup_sekolah', DateTime.now().toIso8601String()); + widget.onCountChanged(0); + if (!context.mounted) return; + Navigator.pushReplacement( + context, + MaterialPageRoute(builder: (context) => const GrupSekolah()), + ); + }, + child: Padding( + padding: const EdgeInsets.all(16), + child: Row( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Container( + padding: const EdgeInsets.all(10), + decoration: BoxDecoration( + color: const Color(0xFFEFF6FF), + borderRadius: BorderRadius.circular(12), + ), + child: const Icon( + Icons.groups_rounded, + color: Color(0xFF2563EB), + size: 26, + ), + ), + const SizedBox(width: 14), + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + const Text( + 'Grup Sekolah', + style: TextStyle( + fontWeight: FontWeight.bold, + fontSize: 15, + color: Color(0xFF1E293B), + fontFamily: 'Inter', + ), + ), + Text( + _formatTime(latestMessageTime), + style: const TextStyle( + fontSize: 11, + color: Color(0xFF94A3B8), + fontFamily: 'Inter', + ), + ), + ], + ), + const SizedBox(height: 5), + Container( + padding: const EdgeInsets.symmetric( + horizontal: 8, vertical: 3), + decoration: BoxDecoration( + color: const Color(0xFFFEF2F2), + borderRadius: BorderRadius.circular(20), + ), + child: Text( + '$unreadCount pesan baru', + style: const TextStyle( + fontSize: 11, + color: Color(0xFFDC2626), + fontWeight: FontWeight.w600, + fontFamily: 'Inter', + ), + ), + ), + if (latestMessagePreview != null) ...[ + const SizedBox(height: 6), + Text( + latestMessagePreview, + maxLines: 2, + overflow: TextOverflow.ellipsis, + style: const TextStyle( + fontSize: 13, + color: Color(0xFF64748B), + fontFamily: 'Inter', + ), + ), + ], + ], + ), + ), + const SizedBox(width: 8), + const Icon( + Icons.chevron_right, + color: Color(0xFFCBD5E1), + ), + ], + ), + ), + ), + ); + }, + ); + } +} + +class GrupKelasNotificationCard extends StatefulWidget { + final String idClass; + final String currentUserId; + final String currentUserRole; + final ValueChanged onCountChanged; + + const GrupKelasNotificationCard({ + super.key, + required this.idClass, + required this.currentUserId, + required this.currentUserRole, + required this.onCountChanged, + }); + + @override + State createState() => + _GrupKelasNotificationCardState(); +} + +class _GrupKelasNotificationCardState extends State { + DateTime? _lastVisited; + + @override + void initState() { + super.initState(); + _loadLastVisited(); + } + + Future _loadLastVisited() async { + final prefs = await SharedPreferences.getInstance(); + final lastVisitedStr = prefs.getString('last_visited_grup_kelas'); + if (mounted) { + setState(() { + _lastVisited = + lastVisitedStr != null ? DateTime.tryParse(lastVisitedStr) : null; + }); + } + } + + String _formatTime(String? timeStr) { + if (timeStr == null) return ''; + final dt = DateTime.tryParse(timeStr)?.toLocal(); + if (dt == null) return ''; + final now = DateTime.now(); + final diff = now.difference(dt); + if (diff.inMinutes < 1) return 'Baru saja'; + if (diff.inHours < 1) return '${diff.inMinutes} menit lalu'; + if (diff.inDays < 1) return '${diff.inHours} jam lalu'; + return '${diff.inDays} hari lalu'; + } + + @override + Widget build(BuildContext context) { + return StreamBuilder>>( + stream: DbGrupKelas().getGrupKelasStream(widget.idClass), + builder: (context, snapshot) { + if (!snapshot.hasData || snapshot.data!.isEmpty) { + widget.onCountChanged(0); + return const SizedBox.shrink(); + } + + int unreadCount = 0; + String? latestMessagePreview; + String? latestMessageTime; + + for (final msg in snapshot.data!) { + final createdAtStr = msg['created_at']?.toString(); + bool isMe = false; + if (widget.currentUserRole == 'admin') { + isMe = msg['pengirim_admin']?.toString() == widget.currentUserId; + } else if (widget.currentUserRole == 'guru') { + isMe = msg['pengirim_guru']?.toString() == widget.currentUserId; + } else if (widget.currentUserRole == 'murid') { + isMe = msg['pengirim_murid']?.toString() == widget.currentUserId; + } + + if (createdAtStr != null && !isMe) { + final createdAt = DateTime.tryParse(createdAtStr); + if (createdAt != null) { + if (_lastVisited == null || createdAt.isAfter(_lastVisited!)) { + unreadCount++; + latestMessagePreview = msg['text']?.toString(); + latestMessageTime = createdAtStr; + } + } + } + } + + widget.onCountChanged(unreadCount); + + if (unreadCount == 0) { + return const SizedBox.shrink(); + } + + return Card( + elevation: 0, + color: Colors.white, + margin: const EdgeInsets.only(bottom: 12), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(14), + side: const BorderSide(color: Color(0xFFE2E8F0)), + ), + child: InkWell( + borderRadius: BorderRadius.circular(14), + onTap: () async { + final prefs = await SharedPreferences.getInstance(); + await prefs.setString( + 'last_visited_grup_kelas', DateTime.now().toIso8601String()); + widget.onCountChanged(0); + if (!context.mounted) return; + Navigator.pushReplacement( + context, + MaterialPageRoute(builder: (context) => const GrupKelasPage()), + ); + }, + child: Padding( + padding: const EdgeInsets.all(16), + child: Row( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Container( + padding: const EdgeInsets.all(10), + decoration: BoxDecoration( + color: const Color(0xFFEFF6FF), + borderRadius: BorderRadius.circular(12), + ), + child: const Icon( + Icons.forum_rounded, + color: Color(0xFF2563EB), + size: 26, + ), + ), + const SizedBox(width: 14), + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + const Text( + 'Grup Kelas', + style: TextStyle( + fontWeight: FontWeight.bold, + fontSize: 15, + color: Color(0xFF1E293B), + fontFamily: 'Inter', + ), + ), + Text( + _formatTime(latestMessageTime), + style: const TextStyle( + fontSize: 11, + color: Color(0xFF94A3B8), + fontFamily: 'Inter', + ), + ), + ], + ), + const SizedBox(height: 5), + Container( + padding: const EdgeInsets.symmetric( + horizontal: 8, vertical: 3), + decoration: BoxDecoration( + color: const Color(0xFFFEF2F2), + borderRadius: BorderRadius.circular(20), + ), + child: Text( + '$unreadCount pesan baru', + style: const TextStyle( + fontSize: 11, + color: Color(0xFFDC2626), + fontWeight: FontWeight.w600, + fontFamily: 'Inter', + ), + ), + ), + if (latestMessagePreview != null) ...[ + const SizedBox(height: 6), + Text( + latestMessagePreview, + maxLines: 2, + overflow: TextOverflow.ellipsis, + style: const TextStyle( + fontSize: 13, + color: Color(0xFF64748B), + fontFamily: 'Inter', + ), + ), + ], + ], + ), + ), + const SizedBox(width: 8), + const Icon( + Icons.chevron_right, + color: Color(0xFFCBD5E1), + ), + ], + ), + ), + ), + ); + }, + ); + } +} + +class AdminSekolahNotificationCard extends StatefulWidget { + final String idMurid; + final String idAdmin; + final ValueChanged onCountChanged; + + const AdminSekolahNotificationCard({ + super.key, + required this.idMurid, + required this.idAdmin, + required this.onCountChanged, + }); + + @override + State createState() => + _AdminSekolahNotificationCardState(); +} + +class _AdminSekolahNotificationCardState + extends State { + DateTime? _lastVisited; + + @override + void initState() { + super.initState(); + _loadLastVisited(); + } + + Future _loadLastVisited() async { + final prefs = await SharedPreferences.getInstance(); + final lastVisitedStr = prefs.getString('last_visited_chat_admin'); + if (mounted) { + setState(() { + _lastVisited = + lastVisitedStr != null ? DateTime.tryParse(lastVisitedStr) : null; + }); + } + } + + String _formatTime(String? timeStr) { + if (timeStr == null) return ''; + final dt = DateTime.tryParse(timeStr)?.toLocal(); + if (dt == null) return ''; + final now = DateTime.now(); + final diff = now.difference(dt); + if (diff.inMinutes < 1) return 'Baru saja'; + if (diff.inHours < 1) return '${diff.inMinutes} menit lalu'; + if (diff.inDays < 1) return '${diff.inHours} jam lalu'; + return '${diff.inDays} hari lalu'; + } + + @override + Widget build(BuildContext context) { + return StreamBuilder>>( + stream: DbPesanPrivate().getChatWithAdminStream(widget.idMurid, widget.idAdmin), + builder: (context, snapshot) { + if (!snapshot.hasData || snapshot.data!.isEmpty) { + widget.onCountChanged(0); + return const SizedBox.shrink(); + } + + int unreadCount = 0; + String? latestMessagePreview; + String? latestMessageTime; + + for (final msg in snapshot.data!) { + final createdAtStr = msg['created_at']?.toString(); + bool isFromAdmin = msg['pengirim_admin'] == widget.idAdmin; + + if (createdAtStr != null && isFromAdmin) { + final createdAt = DateTime.tryParse(createdAtStr); + if (createdAt != null) { + if (_lastVisited == null || createdAt.isAfter(_lastVisited!)) { + unreadCount++; + latestMessagePreview = msg['text']?.toString(); + latestMessageTime = createdAtStr; + } + } + } + } + + widget.onCountChanged(unreadCount); + + if (unreadCount == 0) { + return const SizedBox.shrink(); + } + + return Card( + elevation: 0, + color: Colors.white, + margin: const EdgeInsets.only(bottom: 12), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(14), + side: const BorderSide(color: Color(0xFFE2E8F0)), + ), + child: InkWell( + borderRadius: BorderRadius.circular(14), + onTap: () async { + final prefs = await SharedPreferences.getInstance(); + await prefs.setString( + 'last_visited_chat_admin', DateTime.now().toIso8601String()); + widget.onCountChanged(0); + if (!context.mounted) return; + Navigator.pushReplacement( + context, + MaterialPageRoute(builder: (context) => const ChatAdminPage()), + ); + }, + child: Padding( + padding: const EdgeInsets.all(16), + child: Row( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Container( + padding: const EdgeInsets.all(10), + decoration: BoxDecoration( + color: const Color(0xFFEFF6FF), + borderRadius: BorderRadius.circular(12), + ), + child: const Icon( + Icons.support_agent_rounded, + color: Color(0xFF2563EB), + size: 26, + ), + ), + const SizedBox(width: 14), + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + const Text( + 'Admin Sekolah', + style: TextStyle( + fontWeight: FontWeight.bold, + fontSize: 15, + color: Color(0xFF1E293B), + fontFamily: 'Inter', + ), + ), + Text( + _formatTime(latestMessageTime), + style: const TextStyle( + fontSize: 11, + color: Color(0xFF94A3B8), + fontFamily: 'Inter', + ), + ), + ], + ), + const SizedBox(height: 5), + Container( + padding: const EdgeInsets.symmetric( + horizontal: 8, vertical: 3), + decoration: BoxDecoration( + color: const Color(0xFFFEF2F2), + borderRadius: BorderRadius.circular(20), + ), + child: Text( + '$unreadCount pesan baru', + style: const TextStyle( + fontSize: 11, + color: Color(0xFFDC2626), + fontWeight: FontWeight.w600, + fontFamily: 'Inter', + ), + ), + ), + if (latestMessagePreview != null) ...[ + const SizedBox(height: 6), + Text( + latestMessagePreview, + maxLines: 2, + overflow: TextOverflow.ellipsis, + style: const TextStyle( + fontSize: 13, + color: Color(0xFF64748B), + fontFamily: 'Inter', + ), + ), + ], + ], + ), + ), + const SizedBox(width: 8), + const Icon( + Icons.chevron_right, + color: Color(0xFFCBD5E1), + ), + ], + ), + ), + ), + ); + }, + ); + } +} + +class PesanGuruNotificationCard extends StatefulWidget { + final String idMurid; + final ValueChanged onCountChanged; + + const PesanGuruNotificationCard({ + super.key, + required this.idMurid, + required this.onCountChanged, + }); + + @override + State createState() => + _PesanGuruNotificationCardState(); +} + +class _PesanGuruNotificationCardState extends State { + DateTime? _lastVisited; + + @override + void initState() { + super.initState(); + _loadLastVisited(); + } + + Future _loadLastVisited() async { + final prefs = await SharedPreferences.getInstance(); + final lastVisitedStr = prefs.getString('last_visited_chat_private'); + if (mounted) { + setState(() { + _lastVisited = + lastVisitedStr != null ? DateTime.tryParse(lastVisitedStr) : null; + }); + } + } + + String _formatTime(String? timeStr) { + if (timeStr == null) return ''; + final dt = DateTime.tryParse(timeStr)?.toLocal(); + if (dt == null) return ''; + final now = DateTime.now(); + final diff = now.difference(dt); + if (diff.inMinutes < 1) return 'Baru saja'; + if (diff.inHours < 1) return '${diff.inMinutes} menit lalu'; + if (diff.inDays < 1) return '${diff.inHours} jam lalu'; + return '${diff.inDays} hari lalu'; + } + + @override + Widget build(BuildContext context) { + return StreamBuilder>>( + stream: Supabase.instance.client + .from('chat_private') + .stream(primaryKey: ['id_tabel']) + .order('created_at', ascending: true) + .map((data) => data + .where((e) => + e['penerima_murid']?.toString() == widget.idMurid && + e['pengirim_guru'] != null) + .toList()), + builder: (context, snapshot) { + if (!snapshot.hasData || snapshot.data!.isEmpty) { + widget.onCountChanged(0); + return const SizedBox.shrink(); + } + + int unreadCount = 0; + String? latestMessagePreview; + String? latestMessageTime; + + for (final msg in snapshot.data!) { + final createdAtStr = msg['created_at']?.toString(); + + if (createdAtStr != null) { + final createdAt = DateTime.tryParse(createdAtStr); + if (createdAt != null) { + if (_lastVisited == null || createdAt.isAfter(_lastVisited!)) { + unreadCount++; + latestMessagePreview = msg['text']?.toString(); + latestMessageTime = createdAtStr; + } + } + } + } + + widget.onCountChanged(unreadCount); + + if (unreadCount == 0) { + return const SizedBox.shrink(); + } + + return Card( + elevation: 0, + color: Colors.white, + margin: const EdgeInsets.only(bottom: 12), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(14), + side: const BorderSide(color: Color(0xFFE2E8F0)), + ), + child: InkWell( + borderRadius: BorderRadius.circular(14), + onTap: () async { + final prefs = await SharedPreferences.getInstance(); + await prefs.setString( + 'last_visited_chat_private', DateTime.now().toIso8601String()); + widget.onCountChanged(0); + if (!context.mounted) return; + Navigator.pushReplacement( + context, + MaterialPageRoute(builder: (context) => const DashPesan()), + ); + }, + child: Padding( + padding: const EdgeInsets.all(16), + child: Row( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Container( + padding: const EdgeInsets.all(10), + decoration: BoxDecoration( + color: const Color(0xFFEFF6FF), + borderRadius: BorderRadius.circular(12), + ), + child: const Icon( + Icons.chat_bubble_rounded, + color: Color(0xFF2563EB), + size: 26, + ), + ), + const SizedBox(width: 14), + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + const Text( + 'Pesan dari Guru', + style: TextStyle( + fontWeight: FontWeight.bold, + fontSize: 15, + color: Color(0xFF1E293B), + fontFamily: 'Inter', + ), + ), + Text( + _formatTime(latestMessageTime), + style: const TextStyle( + fontSize: 11, + color: Color(0xFF94A3B8), + fontFamily: 'Inter', + ), + ), + ], + ), + const SizedBox(height: 5), + Container( + padding: const EdgeInsets.symmetric( + horizontal: 8, vertical: 3), + decoration: BoxDecoration( + color: const Color(0xFFFEF2F2), + borderRadius: BorderRadius.circular(20), + ), + child: Text( + '$unreadCount pesan baru', + style: const TextStyle( + fontSize: 11, + color: Color(0xFFDC2626), + fontWeight: FontWeight.w600, + fontFamily: 'Inter', + ), + ), + ), + if (latestMessagePreview != null) ...[ + const SizedBox(height: 6), + Text( + latestMessagePreview, + maxLines: 2, + overflow: TextOverflow.ellipsis, + style: const TextStyle( + fontSize: 13, + color: Color(0xFF64748B), + fontFamily: 'Inter', + ), + ), + ], + ], + ), + ), + const SizedBox(width: 8), + const Icon( + Icons.chevron_right, + color: Color(0xFFCBD5E1), + ), + ], + ), + ), + ), + ); + }, + ); + } +} + +class PengumumanNotificationCard extends StatefulWidget { + final ValueChanged onCountChanged; + + const PengumumanNotificationCard({ + super.key, + required this.onCountChanged, + }); + + @override + State createState() => + _PengumumanNotificationCardState(); +} + +class _PengumumanNotificationCardState + extends State { + DateTime? _lastVisited; + + @override + void initState() { + super.initState(); + _loadLastVisited(); + } + + Future _loadLastVisited() async { + final prefs = await SharedPreferences.getInstance(); + final lastVisitedStr = prefs.getString('last_visited_pengumuman'); + if (mounted) { + setState(() { + _lastVisited = + lastVisitedStr != null ? DateTime.tryParse(lastVisitedStr) : null; + }); + } + } + + String _formatTime(String? timeStr) { + if (timeStr == null) return ''; + final dt = DateTime.tryParse(timeStr)?.toLocal(); + if (dt == null) return ''; + final now = DateTime.now(); + final diff = now.difference(dt); + if (diff.inMinutes < 1) return 'Baru saja'; + if (diff.inHours < 1) return '${diff.inMinutes} menit lalu'; + if (diff.inDays < 1) return '${diff.inHours} jam lalu'; + return '${diff.inDays} hari lalu'; + } + + @override + Widget build(BuildContext context) { + return StreamBuilder>>( + stream: Supabase.instance.client + .from('pengumuman') + .stream(primaryKey: ['id_tabel']) + .order('created_at', ascending: true), + builder: (context, snapshot) { + if (!snapshot.hasData || snapshot.data!.isEmpty) { + widget.onCountChanged(0); + return const SizedBox.shrink(); + } + + int unreadCount = 0; + String? latestTitle; + String? latestTime; + + for (final item in snapshot.data!) { + final createdAtStr = item['created_at']?.toString(); + + if (createdAtStr != null) { + final createdAt = DateTime.tryParse(createdAtStr); + if (createdAt != null) { + if (_lastVisited == null || createdAt.isAfter(_lastVisited!)) { + unreadCount++; + latestTitle = item['title']?.toString(); + latestTime = createdAtStr; + } + } + } + } + + widget.onCountChanged(unreadCount); + + if (unreadCount == 0) { + return const SizedBox.shrink(); + } + + return Card( + elevation: 0, + color: Colors.white, + margin: const EdgeInsets.only(bottom: 12), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(14), + side: const BorderSide(color: Color(0xFFE2E8F0)), + ), + child: InkWell( + borderRadius: BorderRadius.circular(14), + onTap: () async { + final prefs = await SharedPreferences.getInstance(); + await prefs.setString( + 'last_visited_pengumuman', DateTime.now().toIso8601String()); + widget.onCountChanged(0); + if (!context.mounted) return; + Navigator.pushReplacement( + context, + MaterialPageRoute(builder: (context) => const PreviewPengumuman()), + ); + }, + child: Padding( + padding: const EdgeInsets.all(16), + child: Row( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Container( + padding: const EdgeInsets.all(10), + decoration: BoxDecoration( + color: const Color(0xFFEFF6FF), + borderRadius: BorderRadius.circular(12), + ), + child: const Icon( + Icons.campaign_rounded, + color: Color(0xFF2563EB), + size: 26, + ), + ), + const SizedBox(width: 14), + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + const Text( + 'Pengumuman Baru', + style: TextStyle( + fontWeight: FontWeight.bold, + fontSize: 15, + color: Color(0xFF1E293B), + fontFamily: 'Inter', + ), + ), + Text( + _formatTime(latestTime), + style: const TextStyle( + fontSize: 11, + color: Color(0xFF94A3B8), + fontFamily: 'Inter', + ), + ), + ], + ), + const SizedBox(height: 5), + Container( + padding: const EdgeInsets.symmetric( + horizontal: 8, vertical: 3), + decoration: BoxDecoration( + color: const Color(0xFFFEF2F2), + borderRadius: BorderRadius.circular(20), + ), + child: Text( + '$unreadCount pengumuman baru', + style: const TextStyle( + fontSize: 11, + color: Color(0xFFDC2626), + fontWeight: FontWeight.w600, + fontFamily: 'Inter', + ), + ), + ), + if (latestTitle != null) ...[ + const SizedBox(height: 6), + Text( + latestTitle, + maxLines: 2, + overflow: TextOverflow.ellipsis, + style: const TextStyle( + fontSize: 13, + color: Color(0xFF64748B), + fontFamily: 'Inter', + ), + ), + ], + ], + ), + ), + const SizedBox(width: 8), + const Icon( + Icons.chevron_right, + color: Color(0xFFCBD5E1), + ), + ], + ), + ), + ), + ); + }, + ); + } +} + + diff --git a/lib/dashboard/d_c_murid/function/f_Pesan/pengumuman_card.dart b/lib/dashboard/d_c_murid/function/f_Pesan/pengumuman_card.dart new file mode 100644 index 0000000..2a91012 --- /dev/null +++ b/lib/dashboard/d_c_murid/function/f_Pesan/pengumuman_card.dart @@ -0,0 +1,208 @@ +import 'package:flutter/material.dart'; +import 'package:url_launcher/url_launcher.dart'; +import 'package:apk/dashboard/d_c_murid/database/db_pengumuman.dart'; +import 'package:apk/dashboard/d_c_murid/function/f_Pesan/doc_image.dart'; + +class PengumumanCard extends StatelessWidget { + final String pengumumanId; + const PengumumanCard({super.key, required this.pengumumanId}); + + @override + Widget build(BuildContext context) { + return FutureBuilder?>( + future: DbPengumuman.getPengumumanById(pengumumanId), + builder: (context, snapshot) { + if (snapshot.connectionState == ConnectionState.waiting) { + return const Card( + child: Padding( + padding: EdgeInsets.all(16), + child: SizedBox( + height: 50, + width: 50, + child: Center(child: CircularProgressIndicator()), + ), + ), + ); + } + if (!snapshot.hasData || snapshot.data == null) { + return const Card( + child: Padding( + padding: EdgeInsets.all(16), + child: Text('Pengumuman tidak ditemukan'), + ), + ); + } + + final data = snapshot.data!; + + // Memisahkan keterangan dan URL lampiran jika ada + String textKeterangan = data['keterangan'] ?? ''; + List lampiranUrls = []; + + if (textKeterangan.contains('Lampiran: ')) { + final parts = textKeterangan.split('Lampiran: '); + textKeterangan = parts[0].trim(); + final urlsString = parts.length > 1 ? parts[1].trim() : ''; + lampiranUrls = urlsString.split(RegExp(r'\s+')).where((s) => s.startsWith('http')).toList(); + } + + return Card( + color: Colors.amber[50], + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(12)), + elevation: 2, + child: Padding( + padding: const EdgeInsets.all(16), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + children: [ + const Icon(Icons.campaign, color: Colors.amber, size: 28), + const SizedBox(width: 8), + Expanded( + child: Text( + data['title'] ?? 'Pengumuman', + style: const TextStyle( + fontWeight: FontWeight.bold, + fontSize: 16, + ), + ), + ), + ], + ), + const Divider(), + Row( + children: [ + const Icon(Icons.date_range, size: 16, color: Colors.grey), + const SizedBox(width: 4), + Text( + '${data['tanggal_mulai']} s/d ${data['tanggal_selesai']}', + style: const TextStyle(fontSize: 12, color: Colors.black87), + ), + ], + ), + if (textKeterangan.isNotEmpty) ...[ + const SizedBox(height: 8), + Text(textKeterangan, style: const TextStyle(fontSize: 14)), + ], + if (lampiranUrls.isNotEmpty) ...[ + const SizedBox(height: 8), + Wrap( + spacing: 8, + runSpacing: 8, + children: lampiranUrls.map((lampiranUrl) { + return Builder( + builder: (context) { + final uri = Uri.tryParse(lampiranUrl); + String extension = 'FILE'; + String fileName = 'Lampiran'; + if (uri != null && uri.pathSegments.isNotEmpty) { + final fullName = Uri.decodeComponent(uri.pathSegments.last); + fileName = fullName.replaceFirst(RegExp(r'^\d{13}_'), ''); + final extIndex = fullName.lastIndexOf('.'); + if (extIndex != -1 && extIndex < fullName.length - 1) { + extension = fullName.substring(extIndex + 1).toLowerCase(); + } + } + bool isImage = ['jpg', 'jpeg', 'png', 'gif', 'webp'].contains(extension); + + if (isImage) { + return GestureDetector( + onTap: () { + Navigator.push(context, MaterialPageRoute(builder: (_) => DocImagePreviewPage(imageUrl: lampiranUrl))); + }, + child: ClipRRect( + borderRadius: BorderRadius.circular(8), + child: Image.network( + lampiranUrl, + width: 200, + height: 200, + fit: BoxFit.cover, + ), + ), + ); + } else { + return GestureDetector( + onTap: () async { + final parsedUrl = Uri.parse(lampiranUrl); + try { + await launchUrl(parsedUrl, mode: LaunchMode.externalApplication); + } catch (e) { + if (context.mounted) { + ScaffoldMessenger.of(context).showSnackBar(const SnackBar(content: Text('Tidak dapat membuka lampiran'))); + } + } + }, + child: Container( + constraints: const BoxConstraints(maxWidth: 240), + padding: const EdgeInsets.all(8), + decoration: BoxDecoration( + color: Colors.white.withOpacity(0.8), + borderRadius: BorderRadius.circular(8), + border: Border.all(color: Colors.black12), + ), + child: Row( + mainAxisSize: MainAxisSize.min, + children: [ + Container( + width: 42, + height: 52, + decoration: BoxDecoration( + color: Colors.black.withOpacity(0.05), + borderRadius: BorderRadius.circular(6), + ), + child: Center( + child: Text( + extension.length > 4 ? extension.substring(0, 4).toUpperCase() : extension.toUpperCase(), + style: const TextStyle( + fontSize: 12, + fontWeight: FontWeight.bold, + color: Colors.black87, + ), + ), + ), + ), + const SizedBox(width: 12), + Flexible( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + fileName, + maxLines: 2, + overflow: TextOverflow.ellipsis, + style: const TextStyle( + fontSize: 14, + color: Colors.black87, + fontWeight: FontWeight.w500, + ), + ), + const SizedBox(height: 4), + Text( + '${extension.toUpperCase()} • Dokumen', + style: const TextStyle( + fontSize: 12, + color: Colors.black54, + ), + ), + ], + ), + ), + ], + ), + ), + ); + } + }, + ); + }).toList(), + ) + ] + ], + ), + ), + ); + }, + ); + } +} diff --git a/lib/dashboard/d_c_murid/function/f_izin/form_izin.dart b/lib/dashboard/d_c_murid/function/f_izin/form_izin.dart new file mode 100644 index 0000000..0ddc465 --- /dev/null +++ b/lib/dashboard/d_c_murid/function/f_izin/form_izin.dart @@ -0,0 +1,772 @@ +import 'package:flutter/material.dart'; +import 'package:intl/intl.dart'; +import 'package:shared_preferences/shared_preferences.dart'; +import 'package:supabase_flutter/supabase_flutter.dart'; +import 'package:file_picker/file_picker.dart'; +import 'package:image_picker/image_picker.dart'; +import 'package:apk/dashboard/d_c_murid/database/db_izin.dart'; +import 'package:apk/dashboard/d_c_murid/bottom_bar/nav_screen_o.dart'; + +class FormIzin extends StatefulWidget { + const FormIzin({super.key}); + + @override + State createState() => _FormIzinState(); +} + +class _FormIzinState extends State { + final TextEditingController _keteranganController = TextEditingController(); + + DateTime? _startDate; + DateTime? _endDate; + final List _selectedFiles = []; + String _ketOpsi = 'izin'; // 'izin' or 'sakit' + + bool _isLoadingData = true; + bool _isSubmitting = false; + + String? _userIdAdmin; + String? _studentNis; + String? _idMurid; + String? _idGuru; + String? _idClass; + String _studentName = ''; + + @override + void initState() { + super.initState(); + _fetchUserData(); + } + + Future _fetchUserData() async { + try { + final prefs = await SharedPreferences.getInstance(); + _studentNis = prefs.getString('murid_nis'); + _userIdAdmin = prefs.getString('user_id_admin'); + + if (_studentNis != null && _userIdAdmin != null) { + final response = await Supabase.instance.client + .from('murid') + .select() + .eq('user_id', _userIdAdmin!) + .eq('nis', _studentNis!) + .single(); + + String? nameValue; + for (var key in response.keys) { + if (key.toLowerCase().contains('nama') || key.toLowerCase().contains('name')) { + nameValue = response[key].toString(); + break; + } + } + final resolvedStudentName = nameValue ?? 'Tanpa Nama'; + final resolvedIdMurid = response['id_tabel']?.toString(); + final resolvedIdClass = response['id_class']?.toString(); + + String? resolvedIdGuru; + + debugPrint("DIAGNOSTICS: Murid Row fetched from Supabase: $response"); + + if (resolvedIdClass != null) { + try { + final classRes = await Supabase.instance.client + .from('class_name') + .select('id_guru') + .eq('id_tabel', resolvedIdClass) + .maybeSingle(); + debugPrint("DIAGNOSTICS: class_name search result for class ID $resolvedIdClass: $classRes"); + if (classRes != null && classRes['id_guru'] != null) { + resolvedIdGuru = classRes['id_guru']?.toString(); + } + } catch (err) { + debugPrint("Error looking up Wali Kelas from class_name: $err"); + } + } + + if (resolvedIdGuru == null && resolvedIdClass != null) { + try { + final guruRes = await Supabase.instance.client + .from('guru') + .select('id_tabel') + .eq('id_class', resolvedIdClass) + .eq('wali', true) + .maybeSingle(); + debugPrint("DIAGNOSTICS: guru search result for class ID $resolvedIdClass: $guruRes"); + if (guruRes != null) { + resolvedIdGuru = guruRes['id_tabel']?.toString(); + } + } catch (err) { + debugPrint("Error looking up Wali Kelas from guru table: $err"); + } + } + + if (resolvedIdGuru == null) { + debugPrint("DIAGNOSTICS WARNING: Wali kelas is still null. Murid ID: $resolvedIdMurid, Class ID: $resolvedIdClass"); + } + + setState(() { + _studentName = resolvedStudentName; + _idMurid = resolvedIdMurid; + _idGuru = resolvedIdGuru; + _idClass = resolvedIdClass; + _isLoadingData = false; + }); + } else { + setState(() { + _studentName = 'Belum login (NIS tidak ditemukan)'; + _isLoadingData = false; + }); + } + } catch (e) { + debugPrint("DIAGNOSTICS ERROR: _fetchUserData failed with: $e"); + setState(() { + _studentName = 'Error memuat data profil: $e'; + _isLoadingData = false; + }); + } + } + + Future _pickDate(BuildContext context, bool isStart) async { + final DateTime? picked = await showDatePicker( + context: context, + initialDate: DateTime.now(), + firstDate: DateTime.now().subtract(const Duration(days: 30)), + lastDate: DateTime.now().add(const Duration(days: 365)), + builder: (context, child) { + return Theme( + data: Theme.of(context).copyWith( + colorScheme: const ColorScheme.light( + primary: Color(0xFF2563EB), + ), + ), + child: child!, + ); + }, + ); + + if (picked != null) { + setState(() { + if (isStart) { + _startDate = picked; + if (_endDate != null && _endDate!.isBefore(_startDate!)) { + _endDate = null; + } + } else { + _endDate = picked; + } + }); + } + } + + Future _pickFiles() async { + try { + FilePickerResult? result = await FilePicker.pickFiles( + type: FileType.custom, + allowedExtensions: ['jpg', 'png', 'jpeg', 'pdf'], + allowMultiple: true, + withData: true, + ); + + if (result != null && result.files.isNotEmpty) { + setState(() { + _selectedFiles.addAll(result.files); + }); + } + } catch (e) { + debugPrint("Error picking files: $e"); + } + } + + Future _pickFromCamera() async { + try { + final XFile? photo = await ImagePicker().pickImage( + source: ImageSource.camera, + imageQuality: 85, + ); + + if (photo != null) { + final bytes = await photo.readAsBytes(); + setState(() { + _selectedFiles.add(PlatformFile( + name: photo.name, + size: bytes.length, + bytes: bytes, + path: photo.path, + )); + }); + } + } catch (e) { + debugPrint("Error capturing from camera: $e"); + } + } + + void _showAttachmentOptions() { + showModalBottomSheet( + context: context, + backgroundColor: Colors.white, + shape: const RoundedRectangleBorder( + borderRadius: BorderRadius.vertical(top: Radius.circular(20)), + ), + builder: (context) { + return SafeArea( + child: Wrap( + children: [ + const Padding( + padding: EdgeInsets.all(16.0), + child: Text( + 'Tambah Lampiran', + style: TextStyle( + fontFamily: 'Inter', + fontSize: 16, + fontWeight: FontWeight.bold, + color: Color(0xFF1E293B), + ), + ), + ), + ListTile( + leading: const Icon(Icons.camera_alt_outlined, color: Color(0xFF2563EB)), + title: const Text('Ambil Foto (Kamera)', style: TextStyle(fontFamily: 'Inter')), + onTap: () { + Navigator.pop(context); + _pickFromCamera(); + }, + ), + ListTile( + leading: const Icon(Icons.folder_open_outlined, color: Color(0xFF2563EB)), + title: const Text('Pilih Dokumen / Galeri', style: TextStyle(fontFamily: 'Inter')), + onTap: () { + Navigator.pop(context); + _pickFiles(); + }, + ), + const SizedBox(height: 16), + ], + ), + ); + }, + ); + } + + Future _submitData() async { + if (_idMurid == null || _userIdAdmin == null) { + ScaffoldMessenger.of(context).showSnackBar(const SnackBar(content: Text('Gagal: Data profil tidak lengkap! Coba muat ulang aplikasi.'))); + return; + } + + if (_startDate == null || _endDate == null || _keteranganController.text.isEmpty) { + ScaffoldMessenger.of(context).showSnackBar(const SnackBar(content: Text('Harap lengkapi isi tanggal dan keterangan izin'))); + return; + } + + if (_selectedFiles.isEmpty) { + ScaffoldMessenger.of(context).showSnackBar(const SnackBar(content: Text('Harap unggah minimal 1 foto/dokumen surat izin'))); + return; + } + + setState(() { + _isSubmitting = true; + }); + + try { + final dbIzin = DbIzin(); + final currentUserId = Supabase.instance.client.auth.currentUser?.id ?? _userIdAdmin!; + final List lampiranUrls = []; + + for (var file in _selectedFiles) { + if (file.bytes == null) { + throw Exception("Gagal membaca data file: ${file.name}"); + } + final url = await dbIzin.uploadIzinFile(currentUserId, _studentNis!, file.bytes!, file.name); + lampiranUrls.add(url); + } + + final lampiranString = lampiranUrls.join(' '); + + // Insert to Table leave_request + final data = { + 'tanggal_mulai': DateFormat('yyyy-MM-dd').format(_startDate!), + 'tanggal_selesai': DateFormat('yyyy-MM-dd').format(_endDate!), + 'keterangan': _keteranganController.text, + 'verif': null, + 'id_murid': _idMurid, + 'nama_murid': _studentName, + 'id_guru': _idGuru, + 'user_id': currentUserId, + 'id_kelas': _idClass, + 'ket_opsi': _ketOpsi, + }; + + final inserted = await dbIzin.submitIzin(data); + final idIzin = inserted['id_tabel']; + + if (_idGuru == null || _idGuru!.isEmpty) { + throw Exception("Wali kelas tidak ditemukan. (Debug: id_murid=$_idMurid, id_class=$_idClass, id_guru=$_idGuru)"); + } + + final startDateStr = DateFormat('dd MMM yyyy').format(_startDate!); + final endDateStr = DateFormat('dd MMM yyyy').format(_endDate!); + final jenisLabel = _ketOpsi == 'sakit' ? 'Sakit' : 'Izin'; + final textPesanPrivate = "📋 *Pengajuan Izin*\nJenis: $jenisLabel\nNama: $_studentName\nTanggal: $startDateStr s/d $endDateStr\nKeterangan: ${_keteranganController.text}\nLampiran: $lampiranString\nID_IZIN: $idIzin"; + + await Supabase.instance.client.from('chat_private').insert({ + 'text': textPesanPrivate, + 'pengirim_murid': _idMurid, + 'penerima_guru': _idGuru, + 'user_id': currentUserId, + 'id_izin': idIzin, + }); + + if (mounted) { + ScaffoldMessenger.of(context).showSnackBar(const SnackBar(content: Text('Izin berhasil diajukan!'))); + + Navigator.pushAndRemoveUntil( + context, + MaterialPageRoute(builder: (context) => MainScreenOrtu()), + (route) => false, + ); + } + } catch (e) { + if (mounted) { + ScaffoldMessenger.of(context).showSnackBar(SnackBar(content: Text('Terjadi kesalahan: $e'))); + } + } finally { + if (mounted) { + setState(() { + _isSubmitting = false; + }); + } + } + } + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: const Color(0xFFF8FAFC), + appBar: AppBar( + backgroundColor: const Color(0xFF2563EB), + elevation: 0, + automaticallyImplyLeading: true, + leading: IconButton( + icon: Image.asset('lib/assets/icons/Button.png', width: 30, height: 30), + onPressed: () => Navigator.pop(context), + ), + titleSpacing: -5, + title: const Text("Pengajuan Izin"), + titleTextStyle: const TextStyle( + fontFamily: "Inter", + fontSize: 14, + fontWeight: FontWeight.w700, + color: Colors.white, + ), + ), + body: _isLoadingData + ? const Center(child: CircularProgressIndicator()) + : SingleChildScrollView( + padding: const EdgeInsets.all(24.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + _buildLabel('Nama'), + _buildReadOnlyField(_studentName), + const SizedBox(height: 20), + + _buildLabel('Tanggal Mulai'), + GestureDetector( + onTap: () => _pickDate(context, true), + child: _buildDateBox(_startDate), + ), + const SizedBox(height: 20), + + _buildLabel('Tanggal Selesai'), + GestureDetector( + onTap: () => _pickDate(context, false), + child: _buildDateBox(_endDate), + ), + const SizedBox(height: 20), + + _buildLabel('Pilihan Izin (Izin / Sakit)'), + Row( + children: [ + Expanded( + child: ChoiceChip( + label: const Center(child: Text('Izin')), + selected: _ketOpsi == 'izin', + selectedColor: const Color(0xFF2563EB), + checkmarkColor: Colors.white, + labelStyle: TextStyle( + fontFamily: 'Inter', + color: _ketOpsi == 'izin' ? Colors.white : Colors.black87, + fontWeight: FontWeight.bold, + ), + onSelected: (selected) { + if (selected) setState(() => _ketOpsi = 'izin'); + }, + ), + ), + const SizedBox(width: 12), + Expanded( + child: ChoiceChip( + label: const Center(child: Text('Sakit')), + selected: _ketOpsi == 'sakit', + selectedColor: const Color(0xFF2563EB), + checkmarkColor: Colors.white, + labelStyle: TextStyle( + fontFamily: 'Inter', + color: _ketOpsi == 'sakit' ? Colors.white : Colors.black87, + fontWeight: FontWeight.bold, + ), + onSelected: (selected) { + if (selected) setState(() => _ketOpsi = 'sakit'); + }, + ), + ), + ], + ), + const SizedBox(height: 20), + + _buildLabel('Keterangan Izin'), + TextFormField( + controller: _keteranganController, + maxLines: 4, + decoration: InputDecoration( + hintText: 'Jelaskan alasan izin...', + hintStyle: const TextStyle(color: Color(0xFF94A3B8), fontSize: 14), + filled: true, + fillColor: Colors.white, + border: OutlineInputBorder( + borderRadius: BorderRadius.circular(12), + borderSide: const BorderSide(color: Color(0xFFE2E8F0)), + ), + enabledBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(12), + borderSide: const BorderSide(color: Color(0xFFE2E8F0)), + ), + focusedBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(12), + borderSide: const BorderSide(color: Color(0xFF2563EB)), + ), + ), + ), + const SizedBox(height: 24), + + _buildLabel('Foto / Dokumen Surat Izin'), + GestureDetector( + onTap: _showAttachmentOptions, + child: Container( + width: double.infinity, + padding: const EdgeInsets.symmetric(vertical: 24), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(16), + border: Border.all( + color: const Color(0xFFE2E8F0), + width: 1, + ), + ), + child: Column( + children: [ + Container( + padding: const EdgeInsets.all(12), + decoration: const BoxDecoration( + color: Color(0xFFEFF6FF), + shape: BoxShape.circle, + ), + child: const Icon( + Icons.file_upload_outlined, + color: Color(0xFF2563EB), + size: 32, + ), + ), + const SizedBox(height: 12), + const Text( + 'Unggah Foto / Dokumen', + textAlign: TextAlign.center, + style: TextStyle( + fontFamily: 'Inter', + fontSize: 14, + fontWeight: FontWeight.w600, + color: Color(0xFF1E293B), + ), + ), + const SizedBox(height: 4), + const Text( + 'Mendukung banyak file & gambar dari kamera', + style: TextStyle( + fontFamily: 'Inter', + fontSize: 12, + color: Color(0xFF94A3B8), + ), + ), + ], + ), + ), + ), + + _buildFileList(), + const SizedBox(height: 40), + + SizedBox( + width: double.infinity, + height: 52, + child: ElevatedButton( + onPressed: _isSubmitting ? null : _submitData, + style: ElevatedButton.styleFrom( + backgroundColor: const Color(0xFF2563EB), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(12), + ), + ), + child: _isSubmitting + ? const SizedBox( + width: 24, + height: 24, + child: CircularProgressIndicator(color: Colors.white, strokeWidth: 2), + ) + : const Text( + 'Ajukan Izin', + style: TextStyle( + fontFamily: 'Inter', + fontSize: 16, + fontWeight: FontWeight.bold, + color: Colors.white, + ), + ), + ), + ), + const SizedBox(height: 20), + ], + ), + ), + ); + } + + Widget _buildFileList() { + if (_selectedFiles.isEmpty) return const SizedBox.shrink(); + return Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + const SizedBox(height: 20), + _buildLabel('File Terpilih (${_selectedFiles.length})'), + const SizedBox(height: 8), + Wrap( + spacing: 8, + runSpacing: 8, + children: List.generate(_selectedFiles.length, (index) { + final file = _selectedFiles[index]; + final extension = file.name.split('.').last.toLowerCase(); + final isImage = ['jpg', 'jpeg', 'png', 'gif', 'webp'].contains(extension); + final extLabel = extension.length > 4 + ? extension.substring(0, 4).toUpperCase() + : extension.toUpperCase(); + final cleanName = file.name.replaceFirst(RegExp(r'^\d{13}_'), ''); + + return Stack( + clipBehavior: Clip.none, + children: [ + if (isImage && file.bytes != null) + GestureDetector( + onTap: () { + // Pratinjau gambar penuh menggunakan bytes lokal + showDialog( + context: context, + builder: (_) => Dialog( + backgroundColor: Colors.black, + insetPadding: EdgeInsets.zero, + child: Stack( + children: [ + InteractiveViewer( + child: Image.memory( + file.bytes!, + fit: BoxFit.contain, + width: double.infinity, + height: double.infinity, + ), + ), + Positioned( + top: 16, + right: 16, + child: GestureDetector( + onTap: () => Navigator.pop(context), + child: Container( + padding: const EdgeInsets.all(6), + decoration: const BoxDecoration( + color: Colors.black54, + shape: BoxShape.circle, + ), + child: const Icon(Icons.close, color: Colors.white, size: 20), + ), + ), + ), + ], + ), + ), + ); + }, + child: ClipRRect( + borderRadius: BorderRadius.circular(10), + child: Image.memory( + file.bytes!, + width: 110, + height: 110, + fit: BoxFit.cover, + ), + ), + ) + else + Container( + constraints: const BoxConstraints(maxWidth: 200), + padding: const EdgeInsets.all(8), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(10), + border: Border.all(color: const Color(0xFFE2E8F0)), + ), + child: Row( + mainAxisSize: MainAxisSize.min, + children: [ + Container( + width: 42, + height: 52, + decoration: BoxDecoration( + color: const Color(0xFFF1F5F9), + borderRadius: BorderRadius.circular(6), + ), + child: Center( + child: Text( + extLabel, + style: const TextStyle( + fontSize: 12, + fontWeight: FontWeight.bold, + color: Color(0xFF2563EB), + fontFamily: 'Inter', + ), + ), + ), + ), + const SizedBox(width: 10), + Flexible( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + cleanName, + maxLines: 2, + overflow: TextOverflow.ellipsis, + style: const TextStyle( + fontSize: 13, + color: Color(0xFF1E293B), + fontWeight: FontWeight.w500, + fontFamily: 'Inter', + ), + ), + const SizedBox(height: 2), + Text( + '${extLabel} • ${(file.size / 1024).toStringAsFixed(1)} KB', + style: const TextStyle( + fontSize: 11, + color: Color(0xFF94A3B8), + fontFamily: 'Inter', + ), + ), + ], + ), + ), + ], + ), + ), + // Tombol hapus di pojok kanan atas + Positioned( + top: -6, + right: -6, + child: GestureDetector( + onTap: () { + setState(() { + _selectedFiles.removeAt(index); + }); + }, + child: Container( + width: 22, + height: 22, + decoration: const BoxDecoration( + color: Colors.redAccent, + shape: BoxShape.circle, + ), + child: const Icon(Icons.close, color: Colors.white, size: 14), + ), + ), + ), + ], + ); + }), + ), + ], + ); + } + + Widget _buildLabel(String text) { + return Padding( + padding: const EdgeInsets.only(bottom: 8.0), + child: Text( + text, + style: const TextStyle( + fontFamily: 'Inter', + fontSize: 14, + fontWeight: FontWeight.bold, + color: Color(0xFF334155), + ), + ), + ); + } + + Widget _buildReadOnlyField(String text) { + return Container( + width: double.infinity, + padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 16), + decoration: BoxDecoration( + color: const Color(0xFFF1F5F9), + borderRadius: BorderRadius.circular(12), + border: Border.all(color: const Color(0xFFE2E8F0)), + ), + child: Text( + text, + style: const TextStyle( + fontFamily: 'Inter', + fontSize: 14, + color: Color(0xFF475569), + ), + ), + ); + } + + Widget _buildDateBox(DateTime? date) { + return Container( + width: double.infinity, + padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 16), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(12), + border: Border.all(color: const Color(0xFFE2E8F0)), + ), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Row( + children: [ + const Icon(Icons.calendar_today_outlined, color: Color(0xFF94A3B8), size: 20), + const SizedBox(width: 12), + Text( + date != null ? DateFormat('MM/dd/yyyy').format(date) : 'mm/dd/yyyy', + style: TextStyle( + fontFamily: 'Inter', + fontSize: 14, + color: date != null ? const Color(0xFF1E293B) : const Color(0xFF94A3B8), + ), + ), + ], + ), + const Icon(Icons.calendar_month, color: Color(0xFF1E293B), size: 20), + ], + ), + ); + } +} diff --git a/lib/dashboard/d_c_murid/function/p_pengumuman.dart/preview_p.dart b/lib/dashboard/d_c_murid/function/p_pengumuman.dart/preview_p.dart new file mode 100644 index 0000000..a657a39 --- /dev/null +++ b/lib/dashboard/d_c_murid/function/p_pengumuman.dart/preview_p.dart @@ -0,0 +1,417 @@ +import 'package:flutter/material.dart'; +import 'package:supabase_flutter/supabase_flutter.dart'; +import 'package:intl/intl.dart'; +import 'package:url_launcher/url_launcher.dart'; +import 'package:apk/dashboard/d_c_murid/database/db_pengumuman.dart'; +import 'package:apk/dashboard/d_c_murid/function/f_Pesan/doc_image.dart'; + +class PreviewPengumuman extends StatefulWidget { + const PreviewPengumuman({super.key}); + + @override + State createState() => _PreviewPengumumanState(); +} + +class _PreviewPengumumanState extends State { + final supabase = Supabase.instance.client; + bool _isLoading = true; + String? _errorMessage; + List> _pengumumanList = []; + + @override + void initState() { + super.initState(); + _fetchPengumuman(); + } + + Future _fetchPengumuman() async { + try { + // Hapus otomatis pengumuman yang sudah berakhir + await DbPengumuman.deleteExpiredPengumuman(); + + // Mengambil semua pengumuman yang diurutkan dari yang terbaru + final response = await supabase + .from('pengumuman') + .select() + .order('created_at', ascending: false); + + setState(() { + _pengumumanList = List>.from(response); + _isLoading = false; + }); + } catch (e) { + setState(() { + _errorMessage = 'Gagal memuat pengumuman: $e'; + _isLoading = false; + }); + } + } + + String _formatDate(String isoString) { + try { + final date = DateTime.parse(isoString); + return DateFormat('dd MMM yyyy').format(date); + } catch (_) { + return isoString; + } + } + + // Cek jika pengumuman masih aktif berdasarkan tanggal selesai + bool _isActive(String tanggalSelesai) { + try { + final date = DateTime.parse(tanggalSelesai); + final now = DateTime.now(); + // Bandingkan tanpa peduli jam (hanya tanggal) + final endDate = DateTime(date.year, date.month, date.day, 23, 59, 59); + return now.isBefore(endDate) || now.isAtSameMomentAs(endDate); + } catch (_) { + return true; + } + } + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: const Color(0xFFF8FAFC), + appBar: AppBar( + backgroundColor: const Color(0xFF2563EB), + elevation: 0, + automaticallyImplyLeading: true, + leading: IconButton( + icon: Image.asset('lib/assets/icons/Button.png', width: 30, height: 30), + onPressed: () => Navigator.pop(context), + ), + titleSpacing: -5, + title: const Text("Pengumuman Sekolah & Kelas"), + titleTextStyle: const TextStyle( + fontFamily: "Inter", + fontSize: 14, + fontWeight: FontWeight.w700, + color: Colors.white, + ), + ), + body: _isLoading + ? const Center(child: CircularProgressIndicator()) + : _errorMessage != null + ? Center( + child: Padding( + padding: const EdgeInsets.all(16), + child: Text(_errorMessage!, style: const TextStyle(color: Colors.red, fontFamily: 'Inter')), + ), + ) + : _pengumumanList.isEmpty + ? _buildEmptyState() + : RefreshIndicator( + onRefresh: _fetchPengumuman, + child: ListView.builder( + padding: const EdgeInsets.all(16), + itemCount: _pengumumanList.length, + itemBuilder: (context, index) { + final p = _pengumumanList[index]; + final bool active = _isActive(p['tanggal_selesai']); + + // Memisahkan keterangan dan URL lampiran jika ada + String textKeterangan = p['keterangan'] ?? ''; + List lampiranUrls = []; + + if (textKeterangan.contains('Lampiran: ')) { + final parts = textKeterangan.split('Lampiran: '); + textKeterangan = parts[0].trim(); + final urlsString = parts.length > 1 ? parts[1].trim() : ''; + lampiranUrls = urlsString.split(RegExp(r'\s+')).where((s) => s.startsWith('http')).toList(); + } + + return Card( + margin: const EdgeInsets.only(bottom: 16), + elevation: 2, + shadowColor: Colors.black.withOpacity(0.1), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(16), + side: BorderSide( + color: active ? const Color(0xFF2563EB).withOpacity(0.3) : Colors.grey.withOpacity(0.3), + width: 1, + ), + ), + child: Padding( + padding: const EdgeInsets.all(16.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Expanded( + child: Text( + p['title'] ?? 'Tanpa Judul', + style: TextStyle( + fontFamily: 'Inter', + fontSize: 16, + fontWeight: FontWeight.bold, + color: active ? const Color(0xFF1E293B) : Colors.grey[600], + ), + ), + ), + Container( + padding: const EdgeInsets.symmetric(horizontal: 8, vertical: 4), + decoration: BoxDecoration( + color: active ? const Color(0xFFEFF6FF) : Colors.grey[200], + borderRadius: BorderRadius.circular(8), + ), + child: Text( + active ? 'Aktif' : 'Berakhir', + style: TextStyle( + fontFamily: 'Inter', + fontSize: 12, + fontWeight: FontWeight.bold, + color: active ? const Color(0xFF2563EB) : Colors.grey[600], + ), + ), + ), + ], + ), + const SizedBox(height: 12), + Row( + children: [ + const Icon(Icons.date_range, size: 14, color: Color(0xFF64748B)), + const SizedBox(width: 6), + Text( + '${_formatDate(p['tanggal_mulai'])} - ${_formatDate(p['tanggal_selesai'])}', + style: const TextStyle( + fontFamily: 'Inter', + fontSize: 12, + color: Color(0xFF64748B), + ), + ), + ], + ), + if (textKeterangan.isNotEmpty) ...[ + const SizedBox(height: 12), + Container( + width: double.infinity, + padding: const EdgeInsets.all(12), + decoration: BoxDecoration( + color: const Color(0xFFF1F5F9), + borderRadius: BorderRadius.circular(8), + ), + child: Text( + textKeterangan, + style: const TextStyle( + fontFamily: 'Inter', + fontSize: 14, + color: Color(0xFF334155), + ), + ), + ), + ], + if (lampiranUrls.isNotEmpty) ...[ + const SizedBox(height: 12), + Wrap( + spacing: 8, + runSpacing: 8, + children: lampiranUrls.map((lampiranUrl) { + return Builder( + builder: (context) { + final uri = Uri.tryParse(lampiranUrl); + String extension = 'FILE'; + String fileName = 'Lampiran'; + if (uri != null && uri.pathSegments.isNotEmpty) { + final fullName = Uri.decodeComponent(uri.pathSegments.last); + fileName = fullName.replaceFirst(RegExp(r'^\d{13}_'), ''); + final extIndex = fullName.lastIndexOf('.'); + if (extIndex != -1 && extIndex < fullName.length - 1) { + extension = fullName.substring(extIndex + 1).toLowerCase(); + } + } + bool isImage = ['jpg', 'jpeg', 'png', 'gif', 'webp'].contains(extension); + + if (isImage) { + return GestureDetector( + onTap: () { + Navigator.push( + context, + MaterialPageRoute( + builder: (_) => DocImagePreviewPage(imageUrl: lampiranUrl), + ), + ); + }, + child: ClipRRect( + borderRadius: BorderRadius.circular(8), + child: Image.network( + lampiranUrl, + width: 200, + height: 200, + fit: BoxFit.cover, + ), + ), + ); + } else { + return GestureDetector( + onTap: () => _launchURL(lampiranUrl), + child: Container( + constraints: const BoxConstraints(maxWidth: 240), + padding: const EdgeInsets.all(8), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(8), + border: Border.all(color: Colors.black12), + ), + child: Row( + mainAxisSize: MainAxisSize.min, + children: [ + Container( + width: 42, + height: 52, + decoration: BoxDecoration( + color: Colors.black.withOpacity(0.05), + borderRadius: BorderRadius.circular(6), + ), + child: Center( + child: Text( + extension.length > 4 ? extension.substring(0, 4).toUpperCase() : extension.toUpperCase(), + style: const TextStyle( + fontSize: 12, + fontWeight: FontWeight.bold, + color: Colors.black87, + ), + ), + ), + ), + const SizedBox(width: 12), + Flexible( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + fileName, + maxLines: 2, + overflow: TextOverflow.ellipsis, + style: const TextStyle( + fontSize: 14, + color: Colors.black87, + fontWeight: FontWeight.w500, + ), + ), + const SizedBox(height: 4), + Text( + '${extension.toUpperCase()} • Dokumen', + style: const TextStyle( + fontSize: 12, + color: Colors.black54, + ), + ), + ], + ), + ), + ], + ), + ), + ); + } + }, + ); + }).toList(), + ), + ] else ...[ + const SizedBox(height: 16), + FutureBuilder( + future: _getDocUrl(p['id_tabel']), + builder: (context, snapshot) { + if (snapshot.connectionState == ConnectionState.waiting) { + return const SizedBox( + height: 20, + width: 20, + child: CircularProgressIndicator(strokeWidth: 2), + ); + } + + final url = snapshot.data; + if (url != null && url.isNotEmpty) { + return SizedBox( + width: double.infinity, + child: OutlinedButton.icon( + icon: const Icon(Icons.attach_file, size: 18), + label: const Text('Buka Lampiran Dokumen', style: TextStyle(fontFamily: 'Inter')), + style: OutlinedButton.styleFrom( + foregroundColor: const Color(0xFF2563EB), + side: const BorderSide(color: Color(0xFF2563EB)), + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(8)), + padding: const EdgeInsets.symmetric(vertical: 12), + ), + onPressed: () => _launchURL(url), + ), + ); + } + return const SizedBox.shrink(); + }, + ), + ], + ], + ), + ), + ); + }, + ), + ), + ); + } + + Widget _buildEmptyState() { + return Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Icon(Icons.campaign_outlined, size: 80, color: Colors.grey[300]), + const SizedBox(height: 16), + Text( + 'Tidak Ada Pengumuman', + style: TextStyle( + fontFamily: 'Inter', + fontSize: 18, + fontWeight: FontWeight.bold, + color: Colors.grey[600], + ), + ), + const SizedBox(height: 8), + Text( + 'Belum ada pengumuman yang dibagikan.', + style: TextStyle( + fontFamily: 'Inter', + fontSize: 14, + color: Colors.grey[500], + ), + ), + ], + ), + ); + } + + Future _getDocUrl(String id) async { + try { + // Format file dari db_pengumuman.dart adalah doc_$id + // Namun kita perlu cek apakah file itu ada. Supabase API tidak punya "exists" yang simpel, + // tapi kita bisa coba membuat publicUrl. + final String url = Supabase.instance.client.storage + .from('pengumuman') + .getPublicUrl('doc_$id'); + + // Supabase selalu mengembalikan URL publik meskipun file tidak ada. + // Untuk memvalidasi, bisa gunakan head/list, namun demi performa kita kembalikan saja URL-nya. + // Jika pengguna menekan, mereka akan diarahkan ke browser dan melihat NotFound jika kosong. + return url; + } catch (e) { + return null; + } + } + + Future _launchURL(String urlString) async { + final Uri url = Uri.parse(urlString); + if (!await launchUrl(url, mode: LaunchMode.externalApplication)) { + if (mounted) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text('Tidak dapat membuka tautan: $url')), + ); + } + } + } +} diff --git a/lib/dashboard/d_c_murid/function/setting/edit_data.dart b/lib/dashboard/d_c_murid/function/setting/edit_data.dart new file mode 100644 index 0000000..612ac5a --- /dev/null +++ b/lib/dashboard/d_c_murid/function/setting/edit_data.dart @@ -0,0 +1,447 @@ +import 'package:flutter/material.dart'; +import 'package:apk/dashboard/d_c_murid/database/db_murid.dart'; + +class EditDataOrtu extends StatefulWidget { + final Map data; + + const EditDataOrtu({ + super.key, + required this.data, + }); + + @override + State createState() => _EditDataOrtuState(); +} + +class _EditDataOrtuState extends State { + final service = DbMurid(); + + bool isSaving = false; + + late TextEditingController nisC; + late TextEditingController namaC; + late TextEditingController genderC; + late TextEditingController tglC; + late TextEditingController alamatC; + late TextEditingController ortuC; + late TextEditingController teleC; + + List> kelasList = []; + String? selectedKelas; + + @override + void initState() { + super.initState(); + + nisC = TextEditingController(text: widget.data['nis']?.toString() ?? ""); + namaC = TextEditingController(text: widget.data['nama'] ?? ""); + genderC = TextEditingController(text: widget.data['gender'] ?? ""); + tglC = TextEditingController( + text: widget.data['tanggal_lahir']?.toString() ?? "", + ); + alamatC = TextEditingController(text: widget.data['alamat'] ?? ""); + ortuC = TextEditingController(text: widget.data['orang_tua'] ?? ""); + teleC = TextEditingController( + text: widget.data['no_tele']?.toString() ?? "", + ); + + selectedKelas = widget.data['id_class']; + + loadKelas(); + } + + Future loadKelas() async { + final data = await service.getKelas(); + if (mounted) { + setState(() => kelasList = data); + } + } + + Future updateData() async { + setState(() => isSaving = true); + + try { + await service.updateMurid( + idTabel: widget.data['id_tabel'], + nis: nisC.text, + nama: namaC.text, + idClass: selectedKelas, + gender: genderC.text, + tanggalLahir: tglC.text.isEmpty ? null : DateTime.tryParse(tglC.text), + alamat: alamatC.text, + orangTua: ortuC.text, + noTele: num.tryParse(teleC.text), + ); + + final selectedKelasData = kelasList.where( + (kelas) => kelas['id_tabel'] == selectedKelas, + ); + + if (mounted) { + final Map updatedData = Map.from(widget.data); + updatedData['nis'] = nisC.text; + updatedData['nama'] = namaC.text; + updatedData['id_class'] = selectedKelas; + updatedData['gender'] = genderC.text; + updatedData['tanggal_lahir'] = tglC.text; + updatedData['alamat'] = alamatC.text; + updatedData['orang_tua'] = ortuC.text; + updatedData['no_tele'] = num.tryParse(teleC.text); + updatedData['class_name'] = selectedKelasData.isEmpty + ? null + : { + 'id_tabel': selectedKelasData.first['id_tabel'], + 'name_class': selectedKelasData.first['name_class'], + }; + + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text('Data murid berhasil diperbarui')), + ); + Navigator.pop(context, updatedData); + } + } catch (e) { + if (mounted) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text('Gagal menyimpan: $e')), + ); + } + } finally { + if (mounted) { + setState(() => isSaving = false); + } + } + } + + Future _pickDate() async { + final initialDate = DateTime.tryParse(tglC.text) ?? DateTime.now(); + final picked = await showDatePicker( + context: context, + initialDate: initialDate, + firstDate: DateTime(1900), + lastDate: DateTime.now(), + ); + if (picked != null) { + setState(() { + tglC.text = "${picked.year}-${picked.month.toString().padLeft(2, '0')}-${picked.day.toString().padLeft(2, '0')}"; + }); + } + } + + Widget field(String label, TextEditingController c, {String hint = "", VoidCallback? onTap, bool readOnly = false}) { + return Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + label, + style: const TextStyle( + fontFamily: 'Inter', + fontWeight: FontWeight.w600, + fontSize: 12, + color: Color(0xFF1E293B), + ), + ), + const SizedBox(height: 6), + TextField( + controller: c, + onTap: onTap, + readOnly: readOnly, + style: const TextStyle(fontFamily: 'Inter'), + decoration: InputDecoration( + hintText: hint, + hintStyle: const TextStyle(color: Color(0xFFC4C4C4), fontFamily: 'Inter'), + filled: true, + fillColor: const Color(0xFFF1F5F9), + contentPadding: const EdgeInsets.symmetric(horizontal: 20, vertical: 18), + border: OutlineInputBorder( + borderRadius: BorderRadius.circular(16), + borderSide: const BorderSide(color: Color(0xFFE2E8F0)), + ), + enabledBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(16), + borderSide: const BorderSide(color: Color(0xFFE2E8F0)), + ), + ), + ), + const SizedBox(height: 16), + ], + ); + } + + Widget kelasField() { + return Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + const Text( + "Kelas", + style: TextStyle( + fontFamily: 'Inter', + fontWeight: FontWeight.w600, + fontSize: 12, + color: Color(0xFF1E293B), + ), + ), + const SizedBox(height: 6), + DropdownButtonFormField( + initialValue: selectedKelas, + decoration: InputDecoration( + hintText: "Pilih Kelas", + hintStyle: const TextStyle(color: Color(0xFFC4C4C4), fontFamily: 'Inter'), + filled: true, + fillColor: const Color(0xFFF1F5F9), + contentPadding: const EdgeInsets.symmetric(horizontal: 20, vertical: 18), + border: OutlineInputBorder( + borderRadius: BorderRadius.circular(16), + borderSide: const BorderSide(color: Color(0xFFE2E8F0)), + ), + enabledBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(16), + borderSide: const BorderSide(color: Color(0xFFE2E8F0)), + ), + ), + items: kelasList.map((e) { + return DropdownMenuItem( + value: e['id_tabel'], + child: Text(e['name_class'], style: const TextStyle(fontFamily: 'Inter')), + ); + }).toList(), + onChanged: (v) => setState(() => selectedKelas = v), + ), + const SizedBox(height: 16), + ], + ); + } + + Widget genderField() { + return Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + const Text( + "Gender", + style: TextStyle( + fontFamily: 'Inter', + fontWeight: FontWeight.w600, + fontSize: 12, + color: Color(0xFF1E293B), + ), + ), + const SizedBox(height: 6), + DropdownButtonFormField( + isExpanded: true, + initialValue: genderC.text.isEmpty ? null : genderC.text, + decoration: InputDecoration( + hintText: "Pilih Gender", + hintStyle: const TextStyle(color: Color(0xFFC4C4C4), fontFamily: 'Inter'), + filled: true, + fillColor: const Color(0xFFF1F5F9), + contentPadding: const EdgeInsets.symmetric(horizontal: 20, vertical: 18), + border: OutlineInputBorder( + borderRadius: BorderRadius.circular(16), + borderSide: const BorderSide(color: Color(0xFFE2E8F0)), + ), + enabledBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(16), + borderSide: const BorderSide(color: Color(0xFFE2E8F0)), + ), + ), + items: const [ + DropdownMenuItem(value: "L", child: Text("L", style: TextStyle(fontFamily: 'Inter'))), + DropdownMenuItem(value: "P", child: Text("P", style: TextStyle(fontFamily: 'Inter'))), + ], + onChanged: (v) => setState(() => genderC.text = v ?? ""), + ), + const SizedBox(height: 16), + ], + ); + } + + Widget _actionButton({ + required String label, + required Color color, + required VoidCallback? onPressed, + bool loading = false, + }) { + final bool isWhite = color == Colors.white; + return Expanded( + child: ElevatedButton( + onPressed: onPressed, + style: ElevatedButton.styleFrom( + backgroundColor: color, + foregroundColor: isWhite ? const Color(0xFF64748B) : Colors.white, + elevation: 0, + padding: const EdgeInsets.symmetric(vertical: 16), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(24), + side: isWhite ? const BorderSide(color: Color(0xFF94A3B8)) : BorderSide.none, + ), + ), + child: loading + ? SizedBox( + width: 20, + height: 20, + child: CircularProgressIndicator( + color: isWhite ? const Color(0xFF64748B) : Colors.white, + strokeWidth: 2, + ), + ) + : Text( + label, + style: const TextStyle( + fontFamily: 'Inter', + fontSize: 12, + fontWeight: FontWeight.w700, + ), + ), + ), + ); + } + + @override + void dispose() { + nisC.dispose(); + namaC.dispose(); + genderC.dispose(); + tglC.dispose(); + alamatC.dispose(); + ortuC.dispose(); + teleC.dispose(); + super.dispose(); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: Colors.white, + appBar: AppBar( + backgroundColor: const Color(0xFF2563EB), + elevation: 0, + automaticallyImplyLeading: true, + leading: IconButton( + icon: Image.asset('lib/assets/icons/Button.png', width: 30, height: 30), + onPressed: () => Navigator.pop(context), + ), + titleSpacing: -5, + title: const Text("Edit Data Murid"), + titleTextStyle: const TextStyle( + fontFamily: "Inter", + fontSize: 14, + fontWeight: FontWeight.w700, + color: Colors.white, + ), + ), + body: Container( + color: Colors.white, + padding: const EdgeInsets.all(24), + child: Column( + children: [ + Expanded( + child: ListView( + children: [ + Row( + children: const [ + Text("📋", style: TextStyle(fontSize: 12)), + SizedBox(width: 8), + Text( + "Data Utama", + style: TextStyle( + fontFamily: 'Inter', + fontSize: 12, + fontWeight: FontWeight.w800, + color: Color(0xFF1E293B), + ), + ), + ], + ), + const SizedBox(height: 16), + Container( + padding: const EdgeInsets.all(20), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(20), + border: Border.all(color: const Color(0xFFE2E8F0)), + ), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + field("NIS *", nisC, hint: "Contoh: 332817"), + field("Nama *", namaC, hint: "Contoh: Budi Santoso"), + Row( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Expanded(child: genderField()), + const SizedBox(width: 16), + Expanded( + child: field( + "Tanggal Lahir", + tglC, + hint: "YYYY-MM-DD", + readOnly: true, + onTap: _pickDate, + ), + ), + ], + ), + kelasField(), + ], + ), + ), + + const SizedBox(height: 24), + + Row( + children: const [ + Text("📚", style: TextStyle(fontSize: 12)), + SizedBox(width: 8), + Text( + "Kontak & Orang Tua", + style: TextStyle( + fontFamily: 'Inter', + fontSize: 12, + fontWeight: FontWeight.w800, + color: Color(0xFF1E293B), + ), + ), + ], + ), + const SizedBox(height: 16), + Container( + padding: const EdgeInsets.all(20), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(20), + border: Border.all(color: const Color(0xFFE2E8F0)), + ), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + field("Alamat", alamatC, hint: "Masukkan alamat"), + field("Orang Tua", ortuC, hint: "Nama orang tua"), + field("No Telepon", teleC, hint: "Nomor telepon"), + ], + ), + ), + ], + ), + ), + const SizedBox(height: 16), + Row( + children: [ + _actionButton( + label: "Simpan", + color: const Color(0xFF2563EB), + onPressed: isSaving ? null : updateData, + loading: isSaving, + ), + const SizedBox(width: 10), + _actionButton( + label: "Batal", + color: Colors.white, + onPressed: isSaving ? null : () => Navigator.pop(context), + ), + ], + ), + ], + ), + ), + ); + } +} diff --git a/lib/dashboard/d_c_murid/function/setting/setting_data.dart b/lib/dashboard/d_c_murid/function/setting/setting_data.dart new file mode 100644 index 0000000..652eede --- /dev/null +++ b/lib/dashboard/d_c_murid/function/setting/setting_data.dart @@ -0,0 +1,489 @@ +import 'package:flutter/material.dart'; +import 'package:apk/dashboard/d_c_murid/database/db_murid.dart'; +import 'package:apk/dashboard/d_c_murid/widget/custom_button.dart'; +import 'package:shared_preferences/shared_preferences.dart'; +import 'package:supabase_flutter/supabase_flutter.dart'; +import 'package:apk/dashboard/d_c_murid/function/setting/edit_data.dart'; +import 'package:apk/dashboard/d_c_murid/function/FCM_absen.dart/fcm_notif.dart'; + +class SettingDataOrtu extends StatefulWidget { + const SettingDataOrtu({super.key}); + + @override + State createState() => _SettingDataOrtuState(); +} + +class _SettingDataOrtuState extends State { + final service = DbMurid(); + + bool isLoading = true; + Map? data; + List> kelasList = []; + + @override + void initState() { + super.initState(); + _fetchStudentData(); + loadKelas(); + } + + Future loadKelas() async { + final kData = await service.getKelas(); + if (mounted) { + setState(() => kelasList = kData); + } + } + + Future _fetchStudentData() async { + setState(() { + isLoading = true; + }); + try { + final prefs = await SharedPreferences.getInstance(); + final nis = prefs.getString('murid_nis'); + final userId = prefs.getString('user_id_admin'); + + if (nis != null && userId != null) { + final response = await Supabase.instance.client + .from('murid') + .select() + .eq('user_id', userId) + .eq('nis', nis) + .single(); + + if (mounted) { + setState(() { + data = response; + isLoading = false; + }); + + String namaVal = response['nama'] ?? ""; + if (namaVal.isEmpty) { + for (var key in response.keys) { + if (key.toLowerCase() == 'nama' || key.toLowerCase() == 'name') { + namaVal = response[key].toString(); + break; + } + } + } + if (namaVal.isNotEmpty) { + prefs.setString('murid_nama', namaVal); + } + } + } else { + if (mounted) { + setState(() { + isLoading = false; + }); + } + } + } catch (e) { + if (mounted) { + setState(() { + isLoading = false; + }); + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text('Error memuat data: $e')), + ); + } + } + } + + Future logout() async { + try { + final prefs = await SharedPreferences.getInstance(); + await prefs.clear(); + await Supabase.instance.client.auth.signOut(); + if (mounted) { + Navigator.of(context).pushNamedAndRemoveUntil('/', (route) => false); + } + } catch (e) { + if (mounted) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text('Gagal logout: $e')), + ); + } + } + } + + Widget field(String label, String value) { + return _infoCard( + icon: _iconForLabel(label), + title: label, + value: _displayValue(label, value), + isEmpty: value.isEmpty, + ); + } + + IconData _iconForLabel(String label) { + switch (label) { + case "NIS": + return Icons.badge_outlined; + case "Nama": + return Icons.person_outline; + case "Gender": + return Icons.person_pin_outlined; + case "Tanggal Lahir": + return Icons.calendar_month_outlined; + case "Alamat": + return Icons.location_on_outlined; + case "Orang Tua": + return Icons.groups_2_outlined; + case "No Telepon": + return Icons.phone_outlined; + default: + return Icons.info_outline; + } + } + + String get _nama { + String namaVal = data?['nama'] ?? ""; + if (namaVal.isEmpty && data != null) { + for (var key in data!.keys) { + if (key.toLowerCase() == 'nama' || key.toLowerCase() == 'name') { + namaVal = data![key].toString(); + break; + } + } + } + return namaVal.isEmpty ? "Belum diisi" : namaVal; + } + + String get _nis => data?['nis']?.toString() ?? "Belum diisi"; + + String get _kelas { + final selectedKelas = data?['id_class']; + if (selectedKelas != null && kelasList.isNotEmpty) { + final kelas = kelasList.firstWhere( + (k) => k['id_tabel'] == selectedKelas, + orElse: () => {}, + ); + return kelas['name_class']?.toString() ?? "Belum ada kelas"; + } + return "Belum ada kelas"; + } + + String _displayValue(String label, String value) { + if (value.isEmpty) return "Belum diisi"; + if (label != "Tanggal Lahir") return value; + + final date = DateTime.tryParse(value); + if (date == null) return value; + + final day = date.day.toString().padLeft(2, '0'); + final month = date.month.toString().padLeft(2, '0'); + return "$day-$month-${date.year}"; + } + + Widget _infoCard({ + required IconData icon, + required String title, + required String value, + bool isEmpty = false, + }) { + return CustomCard( + title: title, + subtitle: value, + icon: icon, + iconPosition: IconPosition.left, + iconColor: const Color(0xFF2563EB), + iconSize: 24, + iconContainerSize: 46, + iconDecoration: BoxDecoration( + color: const Color(0xFFEFF6FF), + borderRadius: BorderRadius.circular(9), + ), + backgroundColor: Colors.white, + borderColor: Colors.transparent, + borderWidth: 0, + borderRadius: 0, + margin: EdgeInsets.zero, + padding: const EdgeInsets.symmetric(horizontal: 20, vertical: 16), + boxShadow: const [], + titleStyle: const TextStyle( + fontFamily: 'Inter', + fontSize: 12, + fontWeight: FontWeight.w500, + color: Color(0xFF8FA0BA), + ), + subtitleStyle: TextStyle( + fontFamily: 'Inter', + fontSize: 12, + fontWeight: FontWeight.w700, + fontStyle: isEmpty ? FontStyle.italic : FontStyle.normal, + color: isEmpty ? const Color(0xFFC8D2E0) : const Color(0xFF172033), + ), + showIcon: true, + ); + } + + Widget _sectionCard(List children) { + return Container( + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(20), + border: Border.all(color: const Color(0xFFE8EEF6)), + boxShadow: [ + BoxShadow( + color: Colors.black.withValues(alpha: 0.04), + blurRadius: 10, + offset: const Offset(0, 3), + ), + ], + ), + child: ClipRRect( + borderRadius: BorderRadius.circular(20), + child: Column( + children: [ + for (int i = 0; i < children.length; i++) ...[ + children[i], + if (i != children.length - 1) + const Divider( + height: 1, + thickness: 1, + color: Color(0xFFF0F4FA), + indent: 82, + endIndent: 20, + ), + ], + ], + ), + ), + ); + } + + Widget _sectionTitle(String title) { + return Padding( + padding: const EdgeInsets.only(left: 4, bottom: 12), + child: Text( + title, + style: const TextStyle( + fontFamily: 'Inter', + fontSize: 12, + fontWeight: FontWeight.w800, + color: Color(0xFF64748B), + ), + ), + ); + } + + Widget _profileHeader() { + return SizedBox( + height: 128, + child: Stack( + alignment: Alignment.center, + children: [ + CustomCard( + title: "", + showIcon: false, + height: 126, + backgroundColor: Colors.white, + borderColor: const Color(0xFFE8EEF6), + borderWidth: 1, + borderRadius: 18, + margin: EdgeInsets.zero, + padding: EdgeInsets.zero, + boxShadow: [ + BoxShadow( + color: Colors.black.withValues(alpha: 0.13), + blurRadius: 12, + offset: const Offset(0, 5), + ), + ], + ), + Column( + mainAxisSize: MainAxisSize.min, + children: [ + Text( + _nama, + textAlign: TextAlign.center, + style: const TextStyle( + fontFamily: 'Inter', + fontSize: 12, + fontWeight: FontWeight.w800, + color: Color(0xFF172033), + ), + ), + const SizedBox(height: 10), + Row( + mainAxisSize: MainAxisSize.min, + children: [ + const Icon( + Icons.badge_outlined, + size: 18, + color: Color(0xFF8FA0BA), + ), + const SizedBox(width: 6), + Text( + "NIS: $_nis", + style: const TextStyle( + fontFamily: 'Inter', + fontSize: 12, + fontWeight: FontWeight.w600, + color: Color(0xFF64748B), + ), + ), + ], + ), + const SizedBox(height: 18), + Container( + padding: + const EdgeInsets.symmetric(horizontal: 12, vertical: 7), + decoration: BoxDecoration( + color: const Color(0xFFEFF6FF), + borderRadius: BorderRadius.circular(18), + ), + child: Row( + mainAxisSize: MainAxisSize.min, + children: [ + const Icon( + Icons.school_outlined, + size: 18, + color: Color(0xFF2563EB), + ), + const SizedBox(width: 6), + Text( + _kelas, + style: const TextStyle( + fontFamily: 'Inter', + fontSize: 12, + fontWeight: FontWeight.w700, + color: Color(0xFF2563EB), + ), + ), + ], + ), + ), + ], + ), + ], + ), + ); + } + + Widget _actionButton({ + required String label, + required Color color, + required VoidCallback? onPressed, + bool loading = false, + }) { + final bool isWhite = color == Colors.white; + return Expanded( + child: ElevatedButton( + onPressed: onPressed, + style: ElevatedButton.styleFrom( + backgroundColor: color, + foregroundColor: isWhite ? const Color(0xFF64748B) : Colors.white, + elevation: 0, + padding: const EdgeInsets.symmetric(vertical: 16), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(24), + side: isWhite ? const BorderSide(color: Color(0xFF94A3B8)) : BorderSide.none, + ), + ), + child: loading + ? SizedBox( + width: 20, + height: 20, + child: CircularProgressIndicator( + color: isWhite ? const Color(0xFF64748B) : Colors.white, + strokeWidth: 2, + ), + ) + : Text( + label, + style: const TextStyle( + fontFamily: 'Inter', + fontSize: 12, + fontWeight: FontWeight.w700, + ), + ), + ), + ); + } + + @override + Widget build(BuildContext context) { + if (isLoading) { + return Scaffold( + backgroundColor: const Color(0xFFF4F7FB), + appBar: AppBar( + title: const Text("Pengaturan Profil", style: TextStyle(fontFamily: 'Inter', fontSize: 14, fontWeight: FontWeight.w600)), + backgroundColor: Colors.white, + foregroundColor: const Color(0xFF1E293B), + elevation: 0, + ), + body: const Center(child: CircularProgressIndicator()), + ); + } + + if (data == null) { + return Scaffold( + backgroundColor: const Color(0xFFF4F7FB), + appBar: AppBar( + title: const Text("Pengaturan Profil", style: TextStyle(fontFamily: 'Inter', fontSize: 14, fontWeight: FontWeight.w600)), + backgroundColor: Colors.white, + foregroundColor: const Color(0xFF1E293B), + elevation: 0, + ), + body: const Center(child: Text("Data profil tidak ditemukan")), + ); + } + + return Scaffold( + backgroundColor: const Color(0xFFF4F7FB), + appBar: AppBar( + title: const Text("Pengaturan Profil", style: TextStyle(fontFamily: 'Inter', fontSize: 14, fontWeight: FontWeight.w600)), + backgroundColor: Colors.white, + foregroundColor: const Color(0xFF1E293B), + elevation: 0, + ), + body: ListView( + padding: const EdgeInsets.fromLTRB(24, 18, 24, 28), + children: [ + _profileHeader(), + const SizedBox(height: 20), + _sectionTitle("Identitas"), + _sectionCard([ + field("Gender", data?['gender'] ?? ""), + field("Tanggal Lahir", data?['tanggal_lahir']?.toString() ?? ""), + field("Alamat", data?['alamat'] ?? ""), + ]), + const SizedBox(height: 18), + _sectionTitle("Kontak Orang Tua"), + _sectionCard([ + field("Orang Tua", data?['orang_tua'] ?? ""), + field("No Telepon", data?['no_tele']?.toString() ?? ""), + ]), + const SizedBox(height: 24), + Row( + children: [ + _actionButton( + label: "Edit Profil", + color: const Color(0xFF2563EB), + onPressed: () { + Navigator.push( + context, + MaterialPageRoute(builder: (context) => EditDataOrtu(data: data!)), + ).then((updated) { + if (updated != null && updated is Map) { + setState(() { + data = updated; + }); + } + }); + }, + ), + const SizedBox(width: 10), + _actionButton( + label: "Logout", + color: Colors.red, + onPressed: logout, + ), + ], + ), + ], + ), + ); + } +} diff --git a/lib/dashboard/d_c_murid/widget/custom_button.dart b/lib/dashboard/d_c_murid/widget/custom_button.dart new file mode 100644 index 0000000..ffa4c0e --- /dev/null +++ b/lib/dashboard/d_c_murid/widget/custom_button.dart @@ -0,0 +1,233 @@ +import 'package:flutter/material.dart'; + +enum IconPosition { + left, + right, +} + +class CustomCard extends StatelessWidget { + final String title; + final String? subtitle; + final Widget? customSubtitle; + + // SIZE + final double? width; + final double? height; + + // ACTION + final VoidCallback? onTap; + + // CARD ALIGNMENT + final AlignmentGeometry alignment; + + // STYLE + final Color backgroundColor; + final Color borderColor; + final double borderWidth; + final double borderRadius; + + // TEXT STYLE + final TextStyle? titleStyle; + final TextStyle? subtitleStyle; + + // TEXT DEFAULT + final TextAlign titleAlign; + final TextAlign subtitleAlign; + final int? titleMaxLines; + final int? subtitleMaxLines; + final TextOverflow? titleOverflow; + final TextOverflow? subtitleOverflow; + + // ICON + final IconData? icon; + final Color iconColor; + final double iconSize; + final bool showIcon; + + // SPACING + final EdgeInsetsGeometry padding; + final EdgeInsetsGeometry margin; + + // SHADOW + final List? boxShadow; + + final Widget? customIcon; + + final IconPosition iconPosition; + final BoxDecoration? iconDecoration; + final Gradient? iconGradient; + final EdgeInsetsGeometry iconPadding; + final double iconContainerSize; + final Gradient? gradient; + + const CustomCard({ + super.key, + required this.title, + this.subtitle, + this.customSubtitle, + + this.width, + this.height, + this.onTap, + + this.alignment = Alignment.centerLeft, + + this.backgroundColor = const Color(0xFFF1F5F9), + this.borderColor = const Color(0xFFBFDBFE), + this.borderWidth = 1, + this.borderRadius = 16, + + this.titleStyle, + this.subtitleStyle, + + //TEXT DEFAULT + this.titleAlign = TextAlign.left, + this.subtitleAlign = TextAlign.left, + this.titleMaxLines, + this.subtitleMaxLines, + this.titleOverflow, + this.subtitleOverflow, + + this.icon = Icons.chevron_right, + this.iconColor = const Color(0xFF94A3B8), + this.iconSize = 24, + this.showIcon = true, + + this.padding = const EdgeInsets.all(16), + this.margin = const EdgeInsets.symmetric(horizontal: 20, vertical: 8), + + this.boxShadow, + + this.customIcon, + + this.iconPosition = IconPosition.right, + this.iconDecoration, + this.iconGradient, + this.iconPadding = const EdgeInsets.all(8), + this.iconContainerSize = 40, + this.gradient, + }); + + Widget _buildIcon() { + if (!showIcon) return const SizedBox(); + + Widget iconWidget = customIcon ?? + (icon != null + ? Icon( + icon, + color: iconColor, + size: iconSize, + ) + : const SizedBox()); + + return Container( + width: iconContainerSize, + height: iconContainerSize, + padding: iconPadding, + decoration: iconDecoration ?? + BoxDecoration( + gradient: iconGradient, + borderRadius: BorderRadius.circular(12), + ), + child: Center(child: iconWidget), + ); + } + + @override + Widget build(BuildContext context) { + return Align( + alignment: alignment, + child: InkWell( + borderRadius: BorderRadius.circular(borderRadius), + onTap: onTap, + child: Container( + width: width ?? double.infinity, + height: height, + margin: margin, + padding: padding, + decoration: BoxDecoration( + color: gradient == null ? backgroundColor : null, + gradient: gradient, + borderRadius: BorderRadius.circular(borderRadius), + border: Border.all( + color: borderColor, + width: borderWidth, + ), + boxShadow: boxShadow ?? + [ + BoxShadow( + // ignore: deprecated_member_use + color: Colors.black.withOpacity(0.05), + blurRadius: 10, + offset: const Offset(0, 4), + ), + ], + ), + + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + // ICON + if (iconPosition == IconPosition.left) ...[ + _buildIcon(), + const SizedBox(width: 8), + ], + + // TEXT + Expanded( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + + // 🔥 ini ikut textAlign + crossAxisAlignment: titleAlign == TextAlign.right + ? CrossAxisAlignment.end + : titleAlign == TextAlign.center + ? CrossAxisAlignment.center + : CrossAxisAlignment.start, + + children: [ + Text( + title, + textAlign: titleAlign, + maxLines: titleMaxLines, + overflow: titleOverflow, + style: titleStyle ?? + const TextStyle( + fontFamily: 'Inter', + fontSize: 16, + fontWeight: FontWeight.w700, + color: Color(0xFF1E293B), + ), + ), + if (customSubtitle != null) ...[ + const SizedBox(height: 4), + customSubtitle!, + ] else if (subtitle != null) ...[ + const SizedBox(height: 4), + Text( + subtitle!, + textAlign: subtitleAlign, + maxLines: subtitleMaxLines, + overflow: subtitleOverflow, + style: subtitleStyle ?? + const TextStyle( + fontFamily: 'Inter', + fontSize: 14, + color: Color(0xFF64748B), + ), + ), + ], + ], + ), + ), + if (iconPosition == IconPosition.right) ...[ + const SizedBox(width: 8), + _buildIcon(), + ], + ], + ), + ), + ), + ); + } +} diff --git a/lib/dashboard/d_c_murid/widget/custom_textfiled.dart b/lib/dashboard/d_c_murid/widget/custom_textfiled.dart new file mode 100644 index 0000000..dbf0bd1 --- /dev/null +++ b/lib/dashboard/d_c_murid/widget/custom_textfiled.dart @@ -0,0 +1,102 @@ +import 'package:flutter/material.dart'; + +class CustomTextField extends StatefulWidget { + final TextEditingController controller; + final String label; + final String? hint; + final IconData? prefixIcon; + final Widget? suffixIcon; + + final bool isPassword; + final bool readOnly; + final bool enabled; + final TextInputType keyboardType; + final int maxLines; + + final String? Function(String?)? validator; + final void Function(String)? onChanged; + final VoidCallback? onTap; + + final Color borderColor; + final Color focusColor; + + const CustomTextField({ + super.key, + required this.controller, + required this.label, + this.hint, + this.prefixIcon, + this.suffixIcon, + this.isPassword = false, + this.readOnly = false, + this.enabled = true, + this.keyboardType = TextInputType.text, + this.maxLines = 1, + this.validator, + this.onChanged, + this.onTap, + this.borderColor = Colors.grey, + this.focusColor = Colors.blue, + }); + + @override + State createState() => _CustomTextFieldState(); +} + +class _CustomTextFieldState extends State { + bool obscureText = true; + + @override + Widget build(BuildContext context) { + return TextFormField( + controller: widget.controller, + obscureText: widget.isPassword ? obscureText : false, + readOnly: widget.readOnly, + enabled: widget.enabled, + keyboardType: widget.keyboardType, + maxLines: widget.isPassword ? 1 : widget.maxLines, + validator: widget.validator, + onChanged: widget.onChanged, + onTap: widget.onTap, + + decoration: InputDecoration( + labelText: widget.label, + hintText: widget.hint, + + prefixIcon: widget.prefixIcon != null + ? Icon(widget.prefixIcon) + : null, + + suffixIcon: widget.isPassword + ? IconButton( + icon: Icon( + obscureText + ? Icons.visibility_off + : Icons.visibility, + ), + onPressed: () { + setState(() { + obscureText = !obscureText; + }); + }, + ) + : widget.suffixIcon, + + border: OutlineInputBorder( + borderRadius: BorderRadius.circular(12), + borderSide: BorderSide(color: widget.borderColor), + ), + + enabledBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(12), + borderSide: BorderSide(color: widget.borderColor), + ), + + focusedBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(12), + borderSide: BorderSide(color: widget.focusColor, width: 2), + ), + ), + ); + } +} diff --git a/lib/dashboard/d_guru/bottom_bar/nav_bar.dart b/lib/dashboard/d_guru/bottom_bar/nav_bar.dart new file mode 100644 index 0000000..010488e --- /dev/null +++ b/lib/dashboard/d_guru/bottom_bar/nav_bar.dart @@ -0,0 +1,201 @@ +import 'package:flutter/material.dart'; +import 'package:apk/dashboard/d_guru/function/f_pesan_g/f_notif/grup_sekolah_n.dart'; +import 'package:apk/dashboard/d_guru/function/f_pesan_g/f_notif/grup_kelas_n.dart'; +import 'package:apk/dashboard/d_guru/function/f_pesan_g/f_notif/chat_private_n.dart'; + +class BottomNavG extends StatelessWidget { + final int selectedIndex; + final Function(int) onTap; + + const BottomNavG({ + super.key, + required this.selectedIndex, + required this.onTap, + }); + + @override + Widget build(BuildContext context) { + return SizedBox( + height: 50, // Mengatur tinggi bar + child: BottomNavigationBar( + showSelectedLabels: false, + showUnselectedLabels: false, + selectedFontSize: 0, + unselectedFontSize: 0, + type: BottomNavigationBarType.fixed, + currentIndex: selectedIndex, + onTap: onTap, + + items: [ + BottomNavigationBarItem( + icon: Column( + mainAxisSize: MainAxisSize.min, + children: [ + Container( + padding: EdgeInsets.symmetric(horizontal: 10, vertical: 2), + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10), + color: selectedIndex == 0 + ? Colors.blue + : Color(0xFFF1F5F9), + ), + child: Image.asset( + selectedIndex == 0 + ? 'lib/assets/icons/w_building.png' + : 'lib/assets/icons/a_building.png', + width: 24, + height: 24, + ), + ), + if (selectedIndex == 0) SizedBox(height: 2), + if (selectedIndex == 0) + Text( + 'Daftar Kelas', + style: TextStyle( + fontSize: 10, + fontWeight: FontWeight.w500, + color: Colors.blue, + ), + ), + ], + ), + label: '', + ), + + BottomNavigationBarItem( + icon: Column( + mainAxisSize: MainAxisSize.min, + children: [ + Container( + padding: EdgeInsets.symmetric(horizontal: 10, vertical: 2), + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10), + color: selectedIndex == 1 + ? Colors.blue + : Color(0xFFF1F5F9), + ), + child: Image.asset( + selectedIndex == 1 + ? 'lib/assets/icons/w_note.png' + : 'lib/assets/icons/a_note.png', + width: 24, + height: 24, + ), + ), + if (selectedIndex == 1) SizedBox(height: 2), + if (selectedIndex == 1) + Text('Absensi', + style: TextStyle( + fontSize: 10, + fontWeight: FontWeight.w500, + color: Colors.blue, + )), + ], + ), + label: '', + ), + + BottomNavigationBarItem( + icon: ValueListenableBuilder( + valueListenable: GrupSekolahNotification.hasUnread, + builder: (context, unreadSekolah, child) { + return ValueListenableBuilder( + valueListenable: GrupKelasNotification.hasUnread, + builder: (context, unreadKelas, child) { + return ValueListenableBuilder( + valueListenable: ChatPrivateNotification.hasUnread, + builder: (context, unreadPrivate, child) { + final hasAnyUnread = unreadSekolah || unreadKelas || unreadPrivate; + return Column( + mainAxisSize: MainAxisSize.min, + children: [ + Stack( + clipBehavior: Clip.none, + children: [ + Container( + padding: const EdgeInsets.symmetric(horizontal: 10, vertical: 2), + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10), + color: selectedIndex == 2 + ? Colors.blue + : const Color(0xFFF1F5F9), + ), + child: Image.asset( + selectedIndex == 2 + ? 'lib/assets/icons/w_bell.png' + : 'lib/assets/icons/a_bell.png', + width: 24, + height: 24, + ), + ), + if (hasAnyUnread) + Positioned( + top: -2, + right: -2, + child: Container( + width: 8, + height: 8, + decoration: const BoxDecoration( + color: Colors.red, + shape: BoxShape.circle, + ), + ), + ), + ], + ), + if (selectedIndex == 2) const SizedBox(height: 2), + if (selectedIndex == 2) + const Text('Pengumuman', + style: TextStyle( + fontSize: 10, + fontWeight: FontWeight.w500, + color: Colors.blue, + )), + ], + ); + }, + ); + }, + ); + }, + ), + label: '', + ), + + BottomNavigationBarItem( + icon: Column( + mainAxisSize: MainAxisSize.min, + children: [ + Container( + padding: EdgeInsets.symmetric(horizontal: 10, vertical: 2), + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(10), + color: selectedIndex == 3 + ? Colors.blue + : Color(0xFFF1F5F9), + ), + child: Image.asset( + selectedIndex == 3 + ? 'lib/assets/icons/w_people.png' + : 'lib/assets/icons/a_people.png', + width: 24, + height: 24, + ), + ), + if (selectedIndex == 3) SizedBox(height: 2), + if (selectedIndex == 3) + Text('Daftar Guru', + style: TextStyle( + fontSize: 10, + fontWeight: FontWeight.w500, + color: Colors.blue, + )), + ], + ), + label: '', + ), + ], + ), + ); + } +} \ No newline at end of file diff --git a/lib/dashboard/d_guru/bottom_bar/nav_screen_g.dart b/lib/dashboard/d_guru/bottom_bar/nav_screen_g.dart new file mode 100644 index 0000000..1e84e10 --- /dev/null +++ b/lib/dashboard/d_guru/bottom_bar/nav_screen_g.dart @@ -0,0 +1,79 @@ +import 'package:flutter/material.dart'; +import 'package:apk/dashboard/d_guru/bottom_bar/nav_bar.dart'; +import 'package:apk/dashboard/d_guru/dashboard/absensi.dart'; +import 'package:apk/dashboard/d_guru/dashboard/pengumuman.dart'; +import 'package:apk/dashboard/d_guru/dashboard/guru.dart'; +import 'package:apk/dashboard/d_guru/dashboard/murid.dart'; +import 'package:apk/closed_app/closed.dart'; +import 'package:apk/dashboard/d_guru/function/f_pesan_g/f_notif/grup_kelas_n.dart'; +import 'package:apk/dashboard/d_guru/function/f_pesan_g/f_notif/grup_sekolah_n.dart'; +import 'package:apk/dashboard/d_guru/function/f_pesan_g/f_notif/chat_private_n.dart'; +import 'package:apk/error_handler/connection.dart'; +import 'package:apk/session_timer/session_time.dart'; + +typedef NavScreenG = MainScreenGuru; + +class MainScreenGuru extends StatefulWidget { + const MainScreenGuru({super.key}); + + @override + State createState() => _MainScreenGuruState(); +} + +class _MainScreenGuruState extends State { + int selectedIndex = 0; + + @override + void initState() { + super.initState(); + GrupKelasNotification.init(); + GrupSekolahNotification.init(); + ChatPrivateNotification.init(); + + WidgetsBinding.instance.addPostFrameCallback((_) { + _checkInternetConnection(); + }); + } + + Future _checkInternetConnection() async { + bool hasConnection = await ConnectionHandler.checkConnection(); + if (!hasConnection && mounted) { + ConnectionHandler.showNoConnectionDialog( + context: context, + onRetry: () => _checkInternetConnection(), + ); + } + } + + final List pages = [ + const MuridPage(), + const Absensi(), + const Pengumuman(), + const GuruPage(), + ]; + + void onItemTapped(int index) { + setState(() { + selectedIndex = index; + }); + } + + @override + Widget build(BuildContext context) { + return SessionTimeManager( + child: WillPopScope( + onWillPop: () => handleDoubleTapToExit(context), + child: Scaffold( + body: IndexedStack( + index: selectedIndex, + children: pages, + ), + bottomNavigationBar: BottomNavG( + selectedIndex: selectedIndex, + onTap: onItemTapped, + ), + ), + ), + ); + } +} \ No newline at end of file diff --git a/lib/dashboard/d_guru/dashboard/absensi.dart b/lib/dashboard/d_guru/dashboard/absensi.dart new file mode 100644 index 0000000..1184fdc --- /dev/null +++ b/lib/dashboard/d_guru/dashboard/absensi.dart @@ -0,0 +1,406 @@ +import 'package:flutter/material.dart'; +import 'package:intl/intl.dart'; +import 'package:intl/date_symbol_data_local.dart'; +import 'package:apk/dashboard/d_guru/database/db_kelas.dart'; +import 'package:apk/dashboard/d_guru/database/db_namasekolah.dart'; +import 'package:apk/dashboard/d_guru/function/absen_excel/daftar_absen.dart'; +import 'package:supabase_flutter/supabase_flutter.dart'; +import 'package:shared_preferences/shared_preferences.dart'; +import 'package:apk/dashboard/a_admin/widget/custom_button.dart'; +import 'package:apk/dashboard/d_guru/function/absensi_baru/form_daftar_absen.dart'; +import 'package:apk/dashboard/d_guru/function/absensi_baru/daftar_absen.dart' as absen_baru; +import 'package:apk/error_handler/connection.dart'; + +class Absensi extends StatefulWidget { + const Absensi({super.key}); + + @override + State createState() => _AbsensiState(); +} + +class _AbsensiState extends State { + final DbKelas _dbKelas = DbKelas(); + bool _isLoading = true; + String? _errorMessage; + List> _muridList = []; + String _namaKelas = '-'; + String _namaWaliKelas = '-'; + String _nikWaliKelas = '-'; + String _wilayah = ''; + String _namaSekolah = ''; + + // Generate list bulan + final List _months = []; + + @override + void initState() { + super.initState(); + _initData(); + } + + Future _initData() async { + setState(() => _isLoading = true); + await initializeDateFormatting('id_ID', null); + + bool hasConnection = await ConnectionHandler.checkConnection(); + if (!hasConnection) { + if (mounted) { + ConnectionHandler.showNoConnectionDialog( + context: context, + onRetry: () => _initData(), + ); + setState(() { + _errorMessage = 'Tidak ada koneksi internet'; + _isLoading = false; + }); + } + return; + } + + try { + final supabase = Supabase.instance.client; + final prefs = await SharedPreferences.getInstance(); + final userId = prefs.getString('user_id_admin'); + final nik = prefs.getString('guru_nik'); + _nikWaliKelas = nik ?? '-'; + + if (userId == null || nik == null) { + setState(() { + _errorMessage = 'Sesi tidak valid'; + _isLoading = false; + }); + return; + } + + // 1. Dapatkan info guru yang login + final guruData = await supabase + .from('guru') + .select('id_tabel, id_class') + .eq('user_id', userId) + .eq('nik', nik) + .maybeSingle(); + + if (guruData == null) { + setState(() { + _errorMessage = 'Data guru tidak ditemukan'; + _isLoading = false; + }); + return; + } + + final guruIdTabel = guruData['id_tabel']; + final guruIdClass = guruData['id_class']; + + // 2. Cari tanggal dibuatnya kelas (created_at paling awal dari kelas yang terhubung) + DateTime? earliestCreatedAt; + + // Cek kelas dari relasi id_guru di tabel class_name + final classDataList = await supabase + .from('class_name') + .select('id_tabel, name_class, created_at, id_class') + .eq('id_guru', guruIdTabel); + + for (var c in classDataList) { + if (c['created_at'] != null) { + final createdAt = DateTime.parse(c['created_at'].toString()); + if (earliestCreatedAt == null || createdAt.isBefore(earliestCreatedAt)) { + earliestCreatedAt = createdAt; + } + } + } + + // Jika guru ini bukan wali kelas, cek dari id_class-nya + if (guruIdClass != null && earliestCreatedAt == null) { + final classData = await supabase + .from('class_name') + .select('created_at') + .eq('id_tabel', guruIdClass) + .maybeSingle(); + if (classData != null && classData['created_at'] != null) { + earliestCreatedAt = DateTime.parse(classData['created_at'].toString()); + } + } + + // 3. Generate bulan dari earliestCreatedAt hingga sekarang + _months.clear(); + final now = DateTime.now(); + + if (earliestCreatedAt != null) { + int startYear = earliestCreatedAt.year; + int startMonth = earliestCreatedAt.month; + int currentYear = now.year; + int currentMonth = now.month; + + for (int y = currentYear; y >= startYear; y--) { + int mStart = (y == startYear) ? startMonth : 1; + int mEnd = (y == currentYear) ? currentMonth : 12; + for (int m = mEnd; m >= mStart; m--) { + _months.add(DateTime(y, m, 1)); + } + } + } else { + // Fallback jika tidak ditemukan kelas + _months.add(DateTime(now.year, now.month, 1)); + } + + // Ambil nama sekolah dan wilayah + final sekolahInfo = await NamaSekolahService.getSekolahInfo(); + _namaSekolah = sekolahInfo['sekolah'] ?? ''; + _wilayah = sekolahInfo['wilayah'] ?? ''; + + // 4. Ambil data murid + final murid = await _dbKelas.getMuridForGuru(); + + // 5. Ambil nama kelas dan nama wali kelas + String namaKelas = '-'; + String namaWaliKelas = '-'; + + // Ambil nama kelas dari class_name (dari guru yang login sebagai wali kelas) + if (classDataList.isNotEmpty) { + final kelasRow = classDataList.first; + if (kelasRow['name_class'] != null) { + namaKelas = kelasRow['name_class'].toString(); + } + } else if (guruIdClass != null) { + // Fallback: guru bukan wali kelas tapi punya id_class + final kelasData = await supabase + .from('class_name') + .select('name_class') + .eq('id_tabel', guruIdClass) + .maybeSingle(); + if (kelasData != null && kelasData['name_class'] != null) { + namaKelas = kelasData['name_class'].toString(); + } + } + + // Ambil nama wali kelas (nama guru yang login) + final guruNamaRow = await supabase + .from('guru') + .select('name') + .eq('user_id', userId) + .eq('nik', nik) + .maybeSingle(); + if (guruNamaRow != null && guruNamaRow['name'] != null) { + namaWaliKelas = guruNamaRow['name'].toString(); + } + + setState(() { + _muridList = murid; + _namaKelas = namaKelas; + _namaWaliKelas = namaWaliKelas; + _isLoading = false; + _errorMessage = null; + }); + + } catch (e) { + setState(() { + _errorMessage = 'Gagal memuat data: $e'; + _isLoading = false; + }); + } + } + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: const Color(0xFFF8FAFC), + appBar: AppBar( + titleSpacing: 20, + title: const Text('Rekap Absensi Kelas'), + titleTextStyle: const TextStyle( + fontFamily: 'Inter', + fontSize: 18, + fontWeight: FontWeight.w700, + color: Colors.white, + ), + backgroundColor: const Color(0xFF2563EB), + elevation: 0, + actions: [ + Padding( + padding: const EdgeInsets.only(right: 10.0), + child: IconButton( + icon: const Icon(Icons.refresh, color: Colors.white), + onPressed: () { + _initData(); + }, + ), + ), + ], + ), + body: _isLoading + ? const Center(child: CircularProgressIndicator()) + : _errorMessage != null + ? Center( + child: Padding( + padding: const EdgeInsets.all(16), + child: Text(_errorMessage!, style: const TextStyle(color: Colors.red, fontFamily: 'Inter')), + ), + ) + : Column( + children: [ + _buildAbsensiBaruMenu(), + const Padding( + padding: EdgeInsets.symmetric(horizontal: 20.0, vertical: 8.0), + child: Align( + alignment: Alignment.centerLeft, + child: Text("Rekap Bulanan", style: TextStyle(fontFamily: 'Inter', fontSize: 16, fontWeight: FontWeight.bold, color: Color(0xFF1E293B))), + ), + ), + Expanded( + child: _muridList.isEmpty + ? _buildEmptyState() + : _buildMonthList(), + ), + ], + ), + ); + } + + Widget _buildAbsensiBaruMenu() { + return Column( + children: [ + const SizedBox(height: 16), + CustomCard( + title: "Buat Absensi", + subtitle: "Buat sesi absensi baru (Misal: Ujian/Pelajaran)", + icon: Icons.add_circle_outline, + iconColor: const Color(0xFF2563EB), + backgroundColor: Colors.white, + onTap: () { + Navigator.push( + context, + MaterialPageRoute(builder: (context) => const FormDaftarAbsenPage()), + ); + }, + ), + CustomCard( + title: "Lihat Daftar", + subtitle: "Daftar sesi absensi yang telah dibuat", + icon: Icons.list_alt, + iconColor: const Color(0xFF10B981), + backgroundColor: Colors.white, + onTap: () { + Navigator.push( + context, + MaterialPageRoute(builder: (context) => const absen_baru.DaftarAbsenSesiPage()), + ); + }, + ), + ], + ); + } + + Widget _buildEmptyState() { + return Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Icon(Icons.people_outline, size: 80, color: Colors.grey[300]), + const SizedBox(height: 16), + Text( + 'Tidak Ada Murid', + style: TextStyle( + fontFamily: 'Inter', + fontSize: 18, + fontWeight: FontWeight.bold, + color: Colors.grey[600], + ), + ), + const SizedBox(height: 8), + Text( + 'Anda belum memiliki murid di kelas Anda.', + style: TextStyle( + fontFamily: 'Inter', + fontSize: 14, + color: Colors.grey[500], + ), + ), + ], + ), + ); + } + + Widget _buildMonthList() { + return ListView.builder( + padding: const EdgeInsets.all(16), + itemCount: _months.length, + itemBuilder: (context, index) { + final date = _months[index]; + final monthName = DateFormat('MMMM yyyy', 'id_ID').format(date); + // Format YYYY-MM untuk query ke database + final yearMonth = DateFormat('yyyy-MM').format(date); + + return Card( + margin: const EdgeInsets.only(bottom: 12), + elevation: 2, + shadowColor: Colors.black.withOpacity(0.1), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(16), + ), + child: InkWell( + borderRadius: BorderRadius.circular(16), + onTap: () { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => DaftarAbsenExcelPage( + monthName: monthName, + yearMonth: yearMonth, + muridList: _muridList, + namaKelas: _namaKelas, + namaWaliKelas: _namaWaliKelas, + nipWaliKelas: _nikWaliKelas, + wilayah: _wilayah, + ), + ), + ); + }, + child: Padding( + padding: const EdgeInsets.all(20), + child: Row( + children: [ + Container( + width: 50, + height: 50, + decoration: BoxDecoration( + color: const Color(0xFFEFF6FF), + borderRadius: BorderRadius.circular(12), + ), + child: const Icon(Icons.calendar_month, color: Color(0xFF2563EB)), + ), + const SizedBox(width: 16), + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + 'Rekap $monthName', + style: const TextStyle( + fontFamily: 'Inter', + fontSize: 16, + fontWeight: FontWeight.bold, + color: Color(0xFF1E293B), + ), + ), + const SizedBox(height: 4), + Text( + '${_muridList.length} Siswa', + style: const TextStyle( + fontFamily: 'Inter', + fontSize: 13, + color: Color(0xFF64748B), + ), + ), + ], + ), + ), + const Icon(Icons.chevron_right, color: Color(0xFF94A3B8)), + ], + ), + ), + ), + ); + }, + ); + } +} diff --git a/lib/dashboard/d_guru/dashboard/guru.dart b/lib/dashboard/d_guru/dashboard/guru.dart new file mode 100644 index 0000000..d586dc4 --- /dev/null +++ b/lib/dashboard/d_guru/dashboard/guru.dart @@ -0,0 +1,386 @@ +import 'package:flutter/material.dart'; +import 'package:apk/dashboard/d_guru/database/db_guru.dart'; +import 'package:apk/dashboard/a_admin/widget/custom_button.dart'; + +import 'package:apk/dashboard/d_guru/function/d_guru/daftar_guru.dart'; +import 'package:apk/dashboard/d_guru/function/setting_p/setting_p.dart'; +import 'package:shared_preferences/shared_preferences.dart'; +import 'package:supabase_flutter/supabase_flutter.dart'; +import 'package:apk/error_handler/connection.dart'; + +class GuruPage extends StatefulWidget { + const GuruPage({super.key}); + + @override + State createState() => _GuruPageState(); +} + +class _GuruPageState extends State { + final DbGuru _dbGuru = DbGuru(); + List> guruList = []; + bool isLoading = true; + String? errorMessage; + + String guruName = 'Memuat...'; + String guruNik = '...'; + bool isWaliKelas = false; + String? className; + bool isLoadingGuru = true; + Map? _rawGuruData; + + @override + void initState() { + super.initState(); + _fetchGuruData(); + loadData(); + } + + Future _fetchGuruData() async { + bool hasConnection = await ConnectionHandler.checkConnection(); + if (!hasConnection) { + if (mounted) { + ConnectionHandler.showNoConnectionDialog( + context: context, + onRetry: () => _fetchGuruData(), + ); + setState(() { + guruName = 'Tidak Ada Koneksi'; + isLoadingGuru = false; + }); + } + return; + } + try { + final guruData = await _dbGuru.getLoggedInGuruInfo(); + if (mounted) { + setState(() { + _rawGuruData = guruData; + String? nameValue; + for (var key in guruData.keys) { + if (key.toLowerCase().contains('nama') || key.toLowerCase().contains('name')) { + nameValue = guruData[key].toString(); + break; + } + } + guruName = nameValue ?? 'Tanpa Nama'; + guruNik = guruData['nik']?.toString() ?? '-'; + isWaliKelas = guruData['is_wali_kelas'] ?? false; + className = guruData['class_name']; + isLoadingGuru = false; + }); + } + } catch (e) { + if (mounted) { + setState(() { + guruName = 'Error memuat profil'; + guruNik = '-'; + isLoadingGuru = false; + }); + } + } + } + + void _showSettingsBottomSheet(BuildContext context) { + showModalBottomSheet( + context: context, + shape: const RoundedRectangleBorder( + borderRadius: BorderRadius.vertical(top: Radius.circular(20)), + ), + builder: (context) { + return Padding( + padding: const EdgeInsets.symmetric(vertical: 20), + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + Container( + width: 40, + height: 5, + margin: const EdgeInsets.only(bottom: 20), + decoration: BoxDecoration( + color: Colors.grey[300], + borderRadius: BorderRadius.circular(10), + ), + ), + ListTile( + leading: const Icon(Icons.person_outline, color: Color(0xFF1E293B)), + title: const Text('Setting Profil', style: TextStyle(fontFamily: 'Inter', fontWeight: FontWeight.w600)), + onTap: () async { + Navigator.pop(context); // Close bottom sheet + if (_rawGuruData != null) { + await Navigator.push( + context, + MaterialPageRoute( + builder: (_) => SettingProfilPage(data: _rawGuruData!), + ), + ); + _fetchGuruData(); // Refresh data after returning + } else { + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text('Data profil belum siap.')), + ); + } + }, + ), + ListTile( + leading: const Icon(Icons.logout, color: Colors.red), + title: const Text('Logout', style: TextStyle(fontFamily: 'Inter', fontWeight: FontWeight.w600, color: Colors.red)), + onTap: () async { + Navigator.pop(context); // Close bottom sheet + try { + final prefs = await SharedPreferences.getInstance(); + await prefs.clear(); + await Supabase.instance.client.auth.signOut(); + + if (context.mounted) { + Navigator.of(context).pushNamedAndRemoveUntil('/', (route) => false); + } + } catch (e) { + if (context.mounted) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text('Gagal logout: $e')), + ); + } + } + }, + ), + ], + ), + ); + }, + ); + } + + Future loadData() async { + try { + final prefs = await SharedPreferences.getInstance(); + final currentNik = prefs.getString('guru_nik'); + + final data = await _dbGuru.getGuruForLoggedGuruClass(); + + setState(() { + guruList = data.where((g) => g['nik'].toString() != currentNik).toList(); + isLoading = false; + errorMessage = null; + }); + } catch (e) { + setState(() { + isLoading = false; + errorMessage = e.toString().replaceAll('Exception: ', ''); + }); + } + } + + String safe(dynamic value) { + if (value == null || value.toString().isEmpty) return "N/A"; + return value.toString(); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: const Color(0xFFF8FAFC), + appBar: AppBar( + titleSpacing: 20, + title: const Text("Manajemen Guru"), + titleTextStyle: const TextStyle( + fontFamily: 'Inter', + fontSize: 18, + fontWeight: FontWeight.w700, + color: Colors.white, + ), + backgroundColor: const Color(0xFF2563EB), + elevation: 0, + actions: [ + Padding( + padding: const EdgeInsets.only(right: 10.0), + child: IconButton( + icon: const Icon(Icons.refresh, color: Colors.white), + onPressed: () { + setState(() { + isLoading = true; + isLoadingGuru = true; + errorMessage = null; + }); + _fetchGuruData(); + loadData(); + }, + ), + ), + ], + ), + body: Column( + children: [ + // GURU INFO CARD + Container( + color: const Color(0xFF2563EB), // Extend the blue background slightly + padding: const EdgeInsets.only(bottom: 16), + child: Padding( + padding: const EdgeInsets.symmetric(horizontal: 16.0), + child: Container( + padding: const EdgeInsets.all(16), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(16), + boxShadow: [ + BoxShadow( + color: Colors.black.withOpacity(0.05), + blurRadius: 10, + offset: const Offset(0, 4), + ), + ], + ), + child: Row( + children: [ + + const SizedBox(width: 16), + + // Info + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + guruName, + style: const TextStyle( + fontFamily: 'Inter', + fontSize: 16, + fontWeight: FontWeight.bold, + color: Color(0xFF1E293B), + ), + ), + const SizedBox(height: 4), + Text( + 'NIK/NIP: $guruNik', + style: const TextStyle( + fontFamily: 'Inter', + fontSize: 13, + color: Color(0xFF64748B), + ), + ), + const SizedBox(height: 8), + Row( + children: [ + Container( + padding: const EdgeInsets.symmetric(horizontal: 8, vertical: 4), + decoration: BoxDecoration( + color: isWaliKelas ? const Color(0xFFD1FAE5) : const Color(0xFFF1F5F9), + borderRadius: BorderRadius.circular(6), + ), + child: Text( + isWaliKelas ? 'Wali Kelas ${className ?? ''}' : 'Bukan Wali Kelas', + style: TextStyle( + fontFamily: 'Inter', + fontSize: 12, + fontWeight: FontWeight.bold, + color: isWaliKelas ? const Color(0xFF059669) : const Color(0xFF64748B), + ), + ), + ), + ], + ), + ], + ), + ), + + // Settings Icon + IconButton( + icon: const Icon(Icons.settings_outlined, color: Color(0xFF64748B)), + onPressed: () => _showSettingsBottomSheet(context), + ), + ], + ), + ), + ), + ), + Expanded( + child: isLoading + ? const Center(child: CircularProgressIndicator()) + : errorMessage != null + ? Center( + child: Padding( + padding: const EdgeInsets.all(16.0), + child: Text( + "Terjadi Kesalahan:\n$errorMessage", + textAlign: TextAlign.center, + style: const TextStyle(color: Colors.red, fontFamily: 'Inter'), + ), + ), + ) + : guruList.isEmpty + ? const Center( + child: Text( + "Belum ada data guru", + style: TextStyle( + fontFamily: 'Inter', + fontSize: 16, + color: Colors.grey, + ), + ), + ) + : Column( + children: [ + const SizedBox(height: 12), + Expanded( + child: ListView.builder( + itemCount: guruList.length, + itemBuilder: (context, index) { + final g = guruList[index]; + final nama = safe(g['name']); + final nik = safe(g['nik']); + final isWali = g['wali'] == true; + + final classNameObj = g['class_name']; + String kelas = 'Belum ada kelas'; + + if (classNameObj != null) { + if (classNameObj is List && classNameObj.isNotEmpty) { + kelas = classNameObj[0]['name_class']?.toString() ?? 'Belum ada kelas'; + } else if (classNameObj is Map) { + kelas = classNameObj['name_class']?.toString() ?? 'Belum ada kelas'; + } + } + + final bidang = safe(g['bidang']); + final detail = isWali + ? 'Wali Kelas: $kelas' + : 'Bidang: $bidang'; + + return Column( + children: [ + Padding( + padding: const EdgeInsets.symmetric( + horizontal: 24, + vertical: 0, + ), + child: CustomCard( + title: nama, + subtitle: 'NIK: $nik\n$detail', + backgroundColor: Colors.white, + borderColor: Colors.transparent, + borderWidth: 0, + margin: EdgeInsets.zero, + onTap: () async { + await Navigator.push( + context, + MaterialPageRoute( + builder: (_) => DetailGuruPage(data: g), + ), + ); + loadData(); + }, + ), + ), + const SizedBox(height: 12), + ], + ); + }, + ), + ), + ], + ), + ), + ], + ), + ); + } +} diff --git a/lib/dashboard/d_guru/dashboard/murid.dart b/lib/dashboard/d_guru/dashboard/murid.dart new file mode 100644 index 0000000..2192f59 --- /dev/null +++ b/lib/dashboard/d_guru/dashboard/murid.dart @@ -0,0 +1,274 @@ +import 'package:flutter/material.dart'; +import 'package:apk/dashboard/d_guru/database/db_kelas.dart'; +import 'package:apk/dashboard/a_admin/widget/custom_button.dart'; +import 'package:apk/dashboard/d_guru/database/db_guru.dart'; +import 'package:apk/dashboard/d_guru/database/db_namasekolah.dart'; +import 'package:apk/dashboard/d_guru/function/detail_murid/detail_murid.dart'; +import 'package:apk/error_handler/connection.dart'; + +class MuridPage extends StatefulWidget { + const MuridPage({super.key}); + + @override + State createState() => _MuridPageState(); +} + +class _MuridPageState extends State { + bool isLoading = true; + List> _allMurid = []; + bool isSearchActive = false; + String? searchQuery; + String namaSekolah = "Memuat..."; + String namaKelas = ""; + + @override + void initState() { + super.initState(); + fetchData(); + } + + Future fetchData() async { + bool hasConnection = await ConnectionHandler.checkConnection(); + if (!hasConnection) { + if (mounted) { + ConnectionHandler.showNoConnectionDialog( + context: context, + onRetry: () => fetchData(), + ); + setState(() => isLoading = false); + } + return; + } + try { + final data = await DbKelas().getMuridForGuru(); + + String className = "Tidak Terdaftar"; + try { + final guruData = await DbGuru().getLoggedInGuruInfo(); + if (guruData['class_name'] != null && guruData['class_name'].toString().isNotEmpty) { + className = "${guruData['class_name']}"; + } + } catch (e) { + // Abaikan jika gagal ambil info guru + } + + String fetchedSekolah = "Tidak Terdaftar"; + try { + final schoolName = await NamaSekolahService.getNamaSekolah(); + if (schoolName != null && schoolName.isNotEmpty) { + fetchedSekolah = schoolName; + } + } catch (e) { + // Abaikan jika gagal ambil nama sekolah + } + + if (mounted) { + setState(() { + _allMurid = data; + namaSekolah = fetchedSekolah; + namaKelas = className; + isLoading = false; + }); + } + } catch (e) { + if (mounted) { + setState(() { + isLoading = false; + }); + } + } + } + + @override + Widget build(BuildContext context) { + int dataCount = _allMurid.length; + + // Apply search filter + final keyword = (searchQuery ?? '').toLowerCase(); + final muridList = _allMurid.where((murid) { + final nama = murid['nama']?.toString().toLowerCase() ?? ''; + final nis = murid['nis']?.toString().toLowerCase() ?? ''; + return nama.contains(keyword) || nis.contains(keyword); + }).toList(); + + return Scaffold( + backgroundColor: const Color(0xFFF1F5F9), + appBar: AppBar( + elevation: 0, + backgroundColor: const Color(0xFF2563EB), + automaticallyImplyLeading: false, + bottom: PreferredSize( + preferredSize: const Size.fromHeight(0), + child: Container( + height: 45, + width: double.infinity, + color: const Color(0xFF2563EB), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Padding( + padding: const EdgeInsets.symmetric(horizontal: 20), + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + namaKelas.isNotEmpty ? "Daftar Murid | $namaKelas" : "Daftar Murid", + style: const TextStyle( + fontSize: 14, + fontWeight: FontWeight.w700, + color: Colors.white, + fontFamily: 'Inter', + ), + ), + const SizedBox(height: 4), + Text( + "$dataCount murid terdaftar", + style: const TextStyle( + fontSize: 11, + color: Colors.white70, + fontFamily: 'Inter', + ), + ), + ], + ), + ), + IconButton( + icon: const Icon(Icons.refresh, color: Colors.white), + onPressed: () { + setState(() => isLoading = true); + fetchData(); + }, + ), + ], + ), + ), + ), + ), + + body: Column( + children: [ + // SEARCH BAR + Container( + height: 70, + color: const Color(0xFF2563EB), + child: Center( + child: Padding( + padding: const EdgeInsets.symmetric(horizontal: 20), + child: isSearchActive + ? TextField( + autofocus: true, + onChanged: (value) { + setState(() => searchQuery = value); + }, + decoration: InputDecoration( + hintText: "Cari nama atau NIS...", + hintStyle: const TextStyle( + fontSize: 14, + color: Color(0xFFCCCCCC), + ), + filled: true, + fillColor: Colors.grey[200], + contentPadding: const EdgeInsets.symmetric( + horizontal: 16, + vertical: 12, + ), + prefixIcon: IconButton( + icon: const Icon(Icons.arrow_back, size: 18), + onPressed: () { + setState(() { + isSearchActive = false; + searchQuery = null; + }); + }, + ), + border: OutlineInputBorder( + borderRadius: BorderRadius.circular(12), + borderSide: BorderSide.none, + ), + ), + ) + : Row( + children: [ + Transform.translate( + offset: const Offset(-12, 0), + child: IconButton( + icon: const Icon(Icons.search, color: Colors.white), + onPressed: () { + setState(() { + isSearchActive = true; + }); + }, + ), + ), + Expanded( + child: Text( + namaSekolah, + textAlign: TextAlign.right, + style: const TextStyle( + fontFamily: "Inter", + fontSize: 18, + fontWeight: FontWeight.bold, + color: Colors.white, + ), + overflow: TextOverflow.ellipsis, + ), + ), + ], + ), + ), + ), + ), + + // CONTENT + Expanded( + child: isLoading + ? const Center(child: CircularProgressIndicator()) + : _allMurid.isEmpty + ? const Center(child: Text('Belum ada murid di kelas Anda.')) + : muridList.isEmpty + ? const Center(child: Text('Pencarian tidak ditemukan.')) + : ListView.builder( + padding: const EdgeInsets.symmetric(vertical: 8), + itemCount: muridList.length, + itemBuilder: (context, index) { + final murid = muridList[index]; + final nama = murid['nama']?.toString() ?? 'Tanpa Nama'; + final nis = murid['nis']?.toString() ?? '-'; + + return CustomCard( + title: nama, + subtitle: 'NIS: $nis', + titleStyle: const TextStyle( + fontSize: 12, + fontFamily: 'Inter', + fontWeight: FontWeight.w700, + color: Color(0xFF1E293B), + ), + subtitleStyle: const TextStyle( + fontSize: 10, + fontFamily: 'Inter', + fontWeight: FontWeight.w700, + color: Color(0xFF64748B), + ), + backgroundColor: Colors.white, + borderColor: Colors.transparent, + margin: const EdgeInsets.symmetric(horizontal: 16, vertical: 6), + padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 10), + onTap: () { + Navigator.push( + context, + MaterialPageRoute( + builder: (_) => DetailMuridPage(data: murid), + ), + ); + }, + ); + }, + ), + ), + ], + ), + ); + } +} \ No newline at end of file diff --git a/lib/dashboard/d_guru/dashboard/pengumuman.dart b/lib/dashboard/d_guru/dashboard/pengumuman.dart new file mode 100644 index 0000000..2f8fea8 --- /dev/null +++ b/lib/dashboard/d_guru/dashboard/pengumuman.dart @@ -0,0 +1,697 @@ +import 'package:flutter/material.dart'; +import 'package:apk/dashboard/a_admin/widget/custom_button.dart'; +import 'package:apk/dashboard/d_guru/function/f_pesan_g/grup_sekolah_g.dart'; +import 'package:apk/dashboard/d_guru/function/f_pesan_g/grup_kelas_g.dart'; +import 'package:apk/dashboard/d_guru/function/f_pesan_g/chat_admin_g.dart'; +import 'package:apk/dashboard/d_guru/database/db_guru.dart'; +import 'package:apk/dashboard/d_guru/database/db_kelas.dart'; +import 'package:apk/dashboard/d_guru/function/f_pesan_g/chat_private_g.dart'; +import 'package:supabase_flutter/supabase_flutter.dart'; +import 'package:shared_preferences/shared_preferences.dart'; +import 'package:apk/dashboard/d_guru/function/f_pesan_g/f_notif/grup_sekolah_n.dart'; +import 'package:apk/dashboard/d_guru/function/f_pesan_g/f_notif/grup_kelas_n.dart'; +import 'package:apk/dashboard/d_guru/function/f_pesan_g/f_notif/chat_private_n.dart'; +import 'package:apk/error_handler/connection.dart'; + +class Pengumuman extends StatefulWidget { + const Pengumuman({super.key}); + + @override + State createState() => _PengumumanState(); +} + +class _PengumumanState extends State { + final DbGuru _dbGuru = DbGuru(); + final DbKelas _dbKelas = DbKelas(); + bool _isLoading = true; + List> _listGuru = []; + List> _listMurid = []; + String? _loggedInGuruId; + String? _loggedInClassId; + String? _adminId; + + @override + void initState() { + super.initState(); + _loadData(); + } + + Future _loadData() async { + bool hasConnection = await ConnectionHandler.checkConnection(); + if (!hasConnection) { + if (mounted) { + ConnectionHandler.showNoConnectionDialog( + context: context, + onRetry: () => _loadData(), + ); + setState(() => _isLoading = false); + } + return; + } + try { + final supabase = Supabase.instance.client; + final prefs = await SharedPreferences.getInstance(); + final userId = prefs.getString('user_id_admin'); + final nik = prefs.getString('guru_nik'); + + if (userId == null || nik == null) { + if (mounted) setState(() => _isLoading = false); + return; + } + _adminId = userId; + + // 1. Dapatkan info guru yang login (sama persis seperti db_kelas) + final guruData = await supabase + .from('guru') + .select('id_tabel, id_class') + .eq('user_id', userId) + .eq('nik', nik) + .maybeSingle(); + + if (guruData == null) { + if (mounted) setState(() => _isLoading = false); + return; + } + + final guruIdTabel = guruData['id_tabel']; + final guruIdClass = guruData['id_class']; + + // 2. Kumpulkan semua ID Kelas (UUID) — pola dari db_kelas + Set validClassIds = {}; + if (guruIdClass != null) { + validClassIds.add(guruIdClass.toString()); + } + + final classDataList = await supabase + .from('class_name') + .select('id_tabel, id_class') + .eq('id_guru', guruIdTabel); + + for (var c in classDataList) { + validClassIds.add(c['id_tabel'].toString()); + } + + if (validClassIds.isEmpty) { + if (mounted) { + setState(() { + _listGuru = []; + _listMurid = []; + _isLoading = false; + }); + } + return; + } + + // 3. Ambil guru yang id_class-nya ada di validClassIds (langsung dari DB) + final guruInClass = await supabase + .from('guru') + .select('id_tabel, nik, name, bidang, wali, id_class') + .inFilter('id_class', validClassIds.toList()) + .or('status_akun.is.null,status_akun.eq.true'); + + // Filter: buang diri sendiri + final List> filteredGuru = []; + for (var g in guruInClass) { + if (g['id_tabel'].toString() != guruIdTabel.toString()) { + filteredGuru.add(g); + } + } + + // 4. Ambil murid langsung — pola dari db_kelas.getMuridForGuru() + Map> allMurid = {}; + + // Relasi A: Murid yang id_class-nya merujuk ke validClassIds + final muridListA = await supabase + .from('murid') + .select('id_tabel, nis, nama, gender, id_class') + .or('status_akun.is.null,status_akun.eq.true') + .inFilter('id_class', validClassIds.toList()); + + for (var m in muridListA) { + allMurid[m['id_tabel'].toString()] = m; + } + + // Relasi B: Dari id_murid di tabel class_name + final classMuridRows = await supabase + .from('class_name') + .select('id_murid') + .inFilter('id_tabel', validClassIds.toList()) + .not('id_murid', 'is', null); + + List muridIdsFromClass = classMuridRows + .map((r) => r['id_murid'].toString()) + .where((id) => id != 'null') + .toList(); + + if (muridIdsFromClass.isNotEmpty) { + final muridListB = await supabase + .from('murid') + .select('id_tabel, nis, nama, gender, id_class') + .or('status_akun.is.null,status_akun.eq.true') + .inFilter('id_tabel', muridIdsFromClass); + + for (var m in muridListB) { + allMurid[m['id_tabel'].toString()] = m; + } + } + + final finalMuridList = allMurid.values.toList(); + finalMuridList.sort((a, b) => + (a['nama']?.toString() ?? '').compareTo(b['nama']?.toString() ?? '')); + + if (mounted) { + setState(() { + _listGuru = filteredGuru; + _listMurid = finalMuridList; + _isLoading = false; + }); + } + } catch (e) { + debugPrint('Error _loadData pengumuman: $e'); + if (mounted) { + setState(() => _isLoading = false); + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text('Error: $e')), + ); + } + } + } + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + titleSpacing: 20, + title: const Text('Pengumuman Sekolah'), + titleTextStyle: const TextStyle( + fontFamily: 'Inter', + fontSize: 16, + fontWeight: FontWeight.w700, + color: Colors.white, + ), + backgroundColor: const Color(0xFF2563EB), + elevation: 0, + actions: [ + // IconButton( + // icon: const Icon(Icons.notifications_active_outlined, color: Colors.white), + // onPressed: () { + // Navigator.push( + // context, + // MaterialPageRoute(builder: (context) => const PreviewPesan()), + // ); + // }, + // ), + Padding( + padding: const EdgeInsets.only(right: 10.0), + child: IconButton( + icon: const Icon(Icons.refresh, color: Colors.white), + onPressed: () { + setState(() { + _isLoading = true; + }); + _loadData(); + }, + ), + ), + ], + ), + body: _isLoading + ? const Center(child: CircularProgressIndicator()) + : ListView( + padding: const EdgeInsets.symmetric(vertical: 10.0), + children: [ + Padding( + padding: const EdgeInsets.symmetric(horizontal: 16.0, vertical: 6.0), + child: ValueListenableBuilder( + valueListenable: GrupSekolahNotification.hasUnread, + builder: (context, hasUnread, child) { + return Stack( + children: [ + CustomCard( + title: 'Grup Sekolah', + titleStyle: const TextStyle( + fontFamily: 'Inter', + fontSize: 14, + fontWeight: FontWeight.w700, + color: Color(0xFF1E293B), + ), + customSubtitle: Row( + children: [ + const Text( + 'Forum', + style: TextStyle( + fontFamily: 'Inter', + fontSize: 12, + fontWeight: FontWeight.w500, + color: Color(0xFF64748B), + ), + ), + const SizedBox(width: 8), + Container( + width: 4, + height: 4, + decoration: const BoxDecoration( + color: Color(0xFFCBD5E1), + shape: BoxShape.circle, + ), + ), + const SizedBox(width: 8), + const Flexible( + child: Text( + 'Informasi & Diskusi', + style: TextStyle( + fontFamily: 'Inter', + fontSize: 12, + fontWeight: FontWeight.w500, + color: Color(0xFF64748B), + ), + overflow: TextOverflow.ellipsis, + ), + ), + ], + ), + showIcon: false, + backgroundColor: Colors.white, + borderColor: Colors.transparent, + borderWidth: 0, + margin: EdgeInsets.zero, + onTap: () { + GrupSekolahNotification.setUnread(false); + Navigator.push( + context, + MaterialPageRoute(builder: (context) => const GrupSekolahG()), + ); + }, + ), + if (hasUnread) + Positioned( + top: 12, + right: 16, + child: Container( + width: 8, + height: 8, + decoration: const BoxDecoration( + color: Colors.red, + shape: BoxShape.circle, + ), + ), + ), + ], + ); + }, + ), + ), + Padding( + padding: const EdgeInsets.symmetric(horizontal: 16.0, vertical: 6.0), + child: ValueListenableBuilder( + valueListenable: GrupKelasNotification.hasUnread, + builder: (context, hasUnread, child) { + return Stack( + children: [ + CustomCard( + title: 'Grup Kelas', + titleStyle: const TextStyle( + fontFamily: 'Inter', + fontSize: 14, + fontWeight: FontWeight.w700, + color: Color(0xFF1E293B), + ), + customSubtitle: Row( + children: [ + const Text( + 'Kelas', + style: TextStyle( + fontFamily: 'Inter', + fontSize: 12, + fontWeight: FontWeight.w500, + color: Color(0xFF64748B), + ), + ), + const SizedBox(width: 8), + Container( + width: 4, + height: 4, + decoration: const BoxDecoration( + color: Color(0xFFCBD5E1), + shape: BoxShape.circle, + ), + ), + const SizedBox(width: 8), + const Flexible( + child: Text( + 'Diskusi Khusus Kelas Anda', + style: TextStyle( + fontFamily: 'Inter', + fontSize: 12, + fontWeight: FontWeight.w500, + color: Color(0xFF64748B), + ), + overflow: TextOverflow.ellipsis, + ), + ), + ], + ), + showIcon: false, + backgroundColor: Colors.white, + borderColor: Colors.transparent, + borderWidth: 0, + margin: EdgeInsets.zero, + onTap: () { + GrupKelasNotification.setUnread(false); + Navigator.push( + context, + MaterialPageRoute(builder: (context) => const GrupKelasPageG()), + ); + }, + ), + if (hasUnread) + Positioned( + top: 12, + right: 16, + child: Container( + width: 8, + height: 8, + decoration: const BoxDecoration( + color: Colors.red, + shape: BoxShape.circle, + ), + ), + ), + ], + ); + }, + ), + ), + Padding( + padding: const EdgeInsets.symmetric(horizontal: 16.0, vertical: 6.0), + child: ValueListenableBuilder>( + valueListenable: ChatPrivateNotification.unreadSenderIds, + builder: (context, unreadSenders, child) { + final bool hasUnread = _adminId != null && unreadSenders.contains(_adminId); + return Stack( + children: [ + CustomCard( + title: 'Admin Sekolah', + titleStyle: const TextStyle( + fontFamily: 'Inter', + fontSize: 14, + fontWeight: FontWeight.w700, + color: Color(0xFF1E293B), + ), + customSubtitle: Row( + children: [ + const Text( + 'Bantuan', + style: TextStyle( + fontFamily: 'Inter', + fontSize: 12, + fontWeight: FontWeight.w500, + color: Color(0xFF64748B), + ), + ), + const SizedBox(width: 8), + Container( + width: 4, + height: 4, + decoration: const BoxDecoration( + color: Color(0xFFCBD5E1), + shape: BoxShape.circle, + ), + ), + const SizedBox(width: 8), + const Flexible( + child: Text( + 'Hubungi Admin Sekolah', + style: TextStyle( + fontFamily: 'Inter', + fontSize: 12, + fontWeight: FontWeight.w500, + color: Color(0xFF64748B), + ), + overflow: TextOverflow.ellipsis, + ), + ), + ], + ), + showIcon: false, + backgroundColor: Colors.white, + borderColor: Colors.transparent, + borderWidth: 0, + margin: EdgeInsets.zero, + onTap: () { + if (_adminId != null) { + ChatPrivateNotification.setSenderUnread(_adminId!, false); + } + Navigator.push( + context, + MaterialPageRoute(builder: (context) => const ChatAdminPageG()), + ); + }, + ), + if (hasUnread) + Positioned( + top: 12, + right: 16, + child: Container( + width: 8, + height: 8, + decoration: const BoxDecoration( + color: Colors.red, + shape: BoxShape.circle, + ), + ), + ), + ], + ); + }, + ), + ), + const SizedBox(height: 20), + const Padding( + padding: EdgeInsets.symmetric(horizontal: 16.0), + child: Text('List Guru', style: TextStyle(fontSize: 14, fontWeight: FontWeight.bold, fontFamily: 'Inter')), + ), + const SizedBox(height: 10), + ...(_listGuru ?? []).map((guru) { + final nama = guru['name'] ?? '-'; + final isWali = guru['wali'] == true; + final roleText = isWali ? 'Wali Kelas' : 'Guru Mapel'; + + final classNameObj = guru['class_name']; + String kelas = "Belum ada kelas"; + if (classNameObj != null) { + if (classNameObj is String) { + kelas = classNameObj; + } else if (classNameObj is List && classNameObj.isNotEmpty) { + kelas = classNameObj[0]['name_class']?.toString() ?? "Belum ada kelas"; + } else if (classNameObj is Map) { + kelas = classNameObj['name_class']?.toString() ?? "Belum ada kelas"; + } + } + + return Padding( + padding: const EdgeInsets.symmetric(horizontal: 16.0, vertical: 6.0), + child: ValueListenableBuilder>( + valueListenable: ChatPrivateNotification.unreadSenderIds, + builder: (context, unreadSenders, child) { + final String guruId = guru['id_tabel'].toString(); + final bool hasUnread = unreadSenders.contains(guruId); + return Stack( + children: [ + CustomCard( + title: nama, + titleStyle: const TextStyle( + fontFamily: 'Inter', + fontSize: 14, + fontWeight: FontWeight.w700, + color: Color(0xFF1E293B), + ), + customSubtitle: Row( + children: [ + Text( + roleText, + style: const TextStyle( + fontFamily: 'Inter', + fontSize: 12, + fontWeight: FontWeight.w500, + color: Color(0xFF64748B), + ), + ), + const SizedBox(width: 8), + Container( + width: 4, + height: 4, + decoration: const BoxDecoration( + color: Color(0xFFCBD5E1), + shape: BoxShape.circle, + ), + ), + const SizedBox(width: 8), + Flexible( + child: Text( + kelas, + style: const TextStyle( + fontFamily: 'Inter', + fontSize: 12, + fontWeight: FontWeight.w500, + color: Color(0xFF64748B), + ), + overflow: TextOverflow.ellipsis, + ), + ), + ], + ), + showIcon: false, + backgroundColor: Colors.white, + borderColor: Colors.transparent, + borderWidth: 0, + margin: EdgeInsets.zero, + onTap: () { + ChatPrivateNotification.setSenderUnread(guruId, false); + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => ChatPrivateG( + receiverId: guruId, + receiverType: 'guru', + receiverName: nama, + ), + ), + ); + }, + ), + if (hasUnread) + Positioned( + top: 12, + right: 16, + child: Container( + width: 8, + height: 8, + decoration: const BoxDecoration( + color: Colors.red, + shape: BoxShape.circle, + ), + ), + ), + ], + ); + }, + ), + ); + }).toList(), + const SizedBox(height: 20), + const Padding( + padding: EdgeInsets.symmetric(horizontal: 16.0), + child: Text('List Murid', style: TextStyle(fontSize: 14, fontWeight: FontWeight.bold, fontFamily: 'Inter')), + ), + const SizedBox(height: 10), + ...(_listMurid ?? []).map((murid) { + final nama = murid['nama'] ?? '-'; + + final classNameObj = murid['class_name']; + String kelas = "Belum ada kelas"; + if (classNameObj != null) { + if (classNameObj is String) { + kelas = classNameObj; + } else if (classNameObj is List && classNameObj.isNotEmpty) { + kelas = classNameObj[0]['name_class']?.toString() ?? "Belum ada kelas"; + } else if (classNameObj is Map) { + kelas = classNameObj['name_class']?.toString() ?? "Belum ada kelas"; + } + } + + return Padding( + padding: const EdgeInsets.symmetric(horizontal: 16.0, vertical: 6.0), + child: ValueListenableBuilder>( + valueListenable: ChatPrivateNotification.unreadSenderIds, + builder: (context, unreadSenders, child) { + final String muridId = murid['id_tabel'].toString(); + final bool hasUnread = unreadSenders.contains(muridId); + return Stack( + children: [ + CustomCard( + title: nama, + titleStyle: const TextStyle( + fontFamily: 'Inter', + fontSize: 14, + fontWeight: FontWeight.w700, + color: Color(0xFF1E293B), + ), + customSubtitle: Row( + children: [ + const Text( + 'Siswa', + style: TextStyle( + fontFamily: 'Inter', + fontSize: 12, + fontWeight: FontWeight.w500, + color: Color(0xFF64748B), + ), + ), + const SizedBox(width: 8), + Container( + width: 4, + height: 4, + decoration: const BoxDecoration( + color: Color(0xFFCBD5E1), + shape: BoxShape.circle, + ), + ), + const SizedBox(width: 8), + Flexible( + child: Text( + kelas, + style: const TextStyle( + fontFamily: 'Inter', + fontSize: 12, + fontWeight: FontWeight.w500, + color: Color(0xFF64748B), + ), + overflow: TextOverflow.ellipsis, + ), + ), + ], + ), + showIcon: false, + backgroundColor: Colors.white, + borderColor: Colors.transparent, + borderWidth: 0, + margin: EdgeInsets.zero, + onTap: () { + ChatPrivateNotification.setSenderUnread(muridId, false); + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => ChatPrivateG( + receiverId: muridId, + receiverType: 'murid', + receiverName: nama, + ), + ), + ); + }, + ), + if (hasUnread) + Positioned( + top: 12, + right: 16, + child: Container( + width: 8, + height: 8, + decoration: const BoxDecoration( + color: Colors.red, + shape: BoxShape.circle, + ), + ), + ), + ], + ); + }, + ), + ); + }).toList(), + ], + ), + ); + } +} diff --git a/lib/dashboard/d_guru/database/auth_guru.dart b/lib/dashboard/d_guru/database/auth_guru.dart new file mode 100644 index 0000000..5c4d113 --- /dev/null +++ b/lib/dashboard/d_guru/database/auth_guru.dart @@ -0,0 +1,50 @@ +import 'package:supabase_flutter/supabase_flutter.dart'; +import 'package:shared_preferences/shared_preferences.dart'; + +import 'package:apk/dashboard/d_guru/function/f_pesan_g/f_notif/fcm_notif.dart'; + +class AuthGuru { + final _supabase = Supabase.instance.client; + + Future> signInGuru(String email, String nik) async { + try { + // 1. Resolve user_id (UUID) from the admin's email in user_admin + final adminRes = await _supabase + .from('user_admin') + .select('id') + .eq('email', email.trim()) + .maybeSingle(); + + if (adminRes == null) { + throw Exception('Email admin tidak ditemukan.'); + } + + final userId = adminRes['id'].toString(); + + // 2. Query guru with the resolved user_id and nik + final response = await _supabase + .from('guru') + .select() + .eq('user_id', userId) + .eq('nik', nik) + .single(); + + if (response['status_akun'] == false) { + throw Exception('Akun guru telah dinonaktifkan.'); + } + + final prefs = await SharedPreferences.getInstance(); + await prefs.setString('user_role', 'guru'); + await prefs.setString('guru_nik', nik); + await prefs.setString('user_id_admin', userId); + await prefs.setString('guru_nama', response['name']?.toString() ?? ''); + await prefs.setString('guru_id_tabel', response['id_tabel'].toString()); + return response; + } catch (e) { + if (e.toString().contains('dinonaktifkan')) { + rethrow; + } + throw Exception('Login gagal: Periksa Email Admin dan NIK'); + } + } +} diff --git a/lib/dashboard/d_guru/database/db_absensi.dart b/lib/dashboard/d_guru/database/db_absensi.dart new file mode 100644 index 0000000..3a17b77 --- /dev/null +++ b/lib/dashboard/d_guru/database/db_absensi.dart @@ -0,0 +1,1197 @@ +import 'package:supabase_flutter/supabase_flutter.dart'; +import 'package:intl/intl.dart'; +import 'package:shared_preferences/shared_preferences.dart'; +import 'db_kelas.dart'; + +import 'holiday_service.dart'; + +class DbAbsensi { + final SupabaseClient _supabase = Supabase.instance.client; + + Future>> getAbsensi(String nisOrId) async { + try { + String idMurid = nisOrId; + String? studentNis; + String? userId; + String? studentName; + + final isNumeric = RegExp(r'^\d+$').hasMatch(nisOrId); + if (isNumeric) { + final res = await _supabase + .from('murid') + .select('id_tabel, user_id, nis, nama') + .eq('nis', nisOrId) + .maybeSingle(); + if (res != null) { + idMurid = res['id_tabel'].toString(); + userId = res['user_id']?.toString(); + studentNis = res['nis']?.toString(); + studentName = res['nama']?.toString(); + } + } else { + final res = await _supabase + .from('murid') + .select('user_id, nis, nama') + .eq('id_tabel', nisOrId) + .maybeSingle(); + if (res != null) { + userId = res['user_id']?.toString(); + studentNis = res['nis']?.toString(); + studentName = res['nama']?.toString(); + } + } + + final response = await _supabase + .from('absen') + .select('*, leave_request:id_izin(*), access_bridge:id_access(*, output_alat(*)), murid:id_murid(*), pengumuman:id_pengumuman(*)') + .eq('id_murid', idMurid) + .order('date', ascending: false); + + // Fetch verified access records (processed on DB side, read via query relations) + List> accessResponse = []; + + // Fetch approved leave requests + List> leaveResponse = []; + if (idMurid.isNotEmpty) { + try { + final res = await _supabase + .from('leave_request') + .select('*') + .eq('id_murid', idMurid) + .eq('verif', true); + leaveResponse = List>.from(res); + } catch (_) {} + } + + final Map> consolidatedLeave = {}; + for (var req in leaveResponse) { + final startStr = req['tanggal_mulai']?.toString(); + final endStr = req['tanggal_selesai']?.toString(); + if (startStr == null || endStr == null) continue; + try { + final start = DateTime.parse(startStr); + final end = DateTime.parse(endStr); + for (int d = 0; d <= end.difference(start).inDays; d++) { + final currentDate = start.add(Duration(days: d)); + final dateKey = DateFormat('yyyy-MM-dd').format(currentDate); + consolidatedLeave[dateKey] = { + 'id_tabel': req['id_tabel']?.toString(), + 'ket_opsi': req['ket_opsi']?.toString() ?? 'izin', + }; + } + } catch (_) {} + } + + final Map> consolidatedAccess = {}; + + for (var row in accessResponse) { + if (row['created_at'] == null) continue; + + DateTime? parsedDate; + try { + parsedDate = DateTime.parse(row['created_at'].toString()).toLocal(); + } catch (_) {} + if (parsedDate == null) continue; + + final dateKey = DateFormat('yyyy-MM-dd').format(parsedDate); + + final rawMasuk = row['data_masuk']; + + final formattedMasuk = _formatTime(rawMasuk) ?? '07:00'; + + if (!consolidatedAccess.containsKey(dateKey)) { + consolidatedAccess[dateKey] = { + 'date': dateKey, + 'id_tabel': row['id_tabel']?.toString(), + 'id_murid': idMurid, + 'id_alat': row['id_alat']?.toString(), + 'user_id': row['user_id'], + 'masuk': formattedMasuk, + 'keluar': null, + 'output_alat': row['output_alat'], + }; + } else { + final existing = consolidatedAccess[dateKey]!; + if (existing['masuk'] == null) { + existing['masuk'] = formattedMasuk; + } + } + } + + final Map studentMuridMap = { + 'id_tabel': idMurid, + 'user_id': userId, + 'nis': studentNis, + 'nama': studentName, + }; + + return _mergeAbsenWithAccess(response, consolidatedAccess, idMurid, studentMuridMap, consolidatedLeave); + } catch (e) { + throw Exception('Gagal memuat data absensi: $e'); + } + } + + Future>> getAbsensiByMonth(List listNis, String yearMonth) async { + if (listNis.isEmpty) return []; + try { + final muridRes = await _supabase + .from('murid') + .select('id_tabel, user_id, nis, nama') + .inFilter('nis', listNis); + + final listIdMurid = muridRes.map((m) => m['id_tabel'].toString()).toList(); + final listUserIds = muridRes.map((m) => m['user_id']?.toString()).whereType().toList(); + if (listIdMurid.isEmpty) return []; + + // Parse year and month to construct date range filtering + final parts = yearMonth.split('-'); + final year = int.parse(parts[0]); + final month = int.parse(parts[1]); + final startDate = '$yearMonth-01'; + final lastDay = DateTime(year, month + 1, 0).day; + final lastDayStr = lastDay < 10 ? '0$lastDay' : '$lastDay'; + final endDate = '$year-${parts[1]}-$lastDayStr'; + + final response = await _supabase + .from('absen') + .select('*, leave_request:id_izin(*), access_bridge:id_access(*, output_alat(*)), murid:id_murid(*), pengumuman:id_pengumuman(*)') + .inFilter('id_murid', listIdMurid) + .gte('date', startDate) + .lte('date', endDate) + .order('date', ascending: true); + + final Map> muridMapById = {}; + final Map studentNamesById = {}; + for (var m in muridRes) { + final id = m['id_tabel'].toString(); + muridMapById[id] = Map.from(m); + studentNamesById[id] = m['nama']?.toString() ?? ''; + } + + // Fetch verified access records directly from access_bridge (synced/processed on DB side) + List> accessResponse = []; + try { + final res = await _supabase + .from('access_bridge') + .select('*, output_alat(*)') + .inFilter('id_murid', listIdMurid); + accessResponse = List>.from(res); + } catch (_) {} + + // Fetch approved leave requests + List> leaveResponse = []; + try { + final res = await _supabase + .from('leave_request') + .select('*') + .inFilter('id_murid', listIdMurid) + .eq('verif', true); + leaveResponse = List>.from(res); + } catch (_) {} + + final Map> consolidatedLeave = {}; + for (var req in leaveResponse) { + final studentId = req['id_murid']?.toString(); + final startStr = req['tanggal_mulai']?.toString(); + final endStr = req['tanggal_selesai']?.toString(); + if (studentId == null || startStr == null || endStr == null) continue; + + try { + final start = DateTime.parse(startStr); + final end = DateTime.parse(endStr); + for (int d = 0; d <= end.difference(start).inDays; d++) { + final currentDate = start.add(Duration(days: d)); + final dateKey = DateFormat('yyyy-MM-dd').format(currentDate); + final compositeKey = '${studentId}_$dateKey'; + consolidatedLeave[compositeKey] = { + 'id_tabel': req['id_tabel']?.toString(), + 'ket_opsi': req['ket_opsi']?.toString() ?? 'izin', + }; + } + } catch (_) {} + } + + // Group access logs by student (NIS) and date + final Map> consolidatedAccess = {}; + for (var row in accessResponse) { + if (row['created_at'] == null) continue; + + DateTime? parsedDate; + try { + parsedDate = DateTime.parse(row['created_at'].toString()).toLocal(); + } catch (_) {} + if (parsedDate == null) continue; + + final matchedStudentId = row['id_murid']?.toString(); + if (matchedStudentId == null) continue; + + final dateKey = DateFormat('yyyy-MM-dd').format(parsedDate); + final compositeKey = '${matchedStudentId}_$dateKey'; + + final rawMasuk = row['data_masuk']; + + final formattedMasuk = _formatTime(rawMasuk) ?? '07:00'; + + if (!consolidatedAccess.containsKey(compositeKey)) { + consolidatedAccess[compositeKey] = { + 'date': dateKey, + 'id_tabel': row['id_tabel']?.toString(), + 'id_murid': matchedStudentId, + 'id_alat': row['id_alat']?.toString(), + 'user_id': row['user_id'], + 'masuk': formattedMasuk, + 'keluar': null, + 'output_alat': row['output_alat'], + }; + } else { + final existing = consolidatedAccess[compositeKey]!; + if (existing['masuk'] == null) { + existing['masuk'] = formattedMasuk; + } + } + } + + // Merge absen with consolidatedAccess & consolidatedLeave + final List> mergedList = []; + final Set processedCompositeKeys = {}; + + for (var item in response) { + final row = Map.from(item); + final dateKey = row['date']?.toString(); + final studentId = row['id_murid']?.toString(); + + if (dateKey != null && studentId != null) { + final compositeKey = '${studentId}_$dateKey'; + processedCompositeKeys.add(compositeKey); + + if (consolidatedAccess.containsKey(compositeKey)) { + final access = consolidatedAccess[compositeKey]!; + row['masuk'] = access['masuk'] ?? row['masuk']; + row['keluar'] = access['keluar'] ?? row['keluar']; + row['access_bridge'] = { + 'id_tabel': access['id_tabel'] ?? '', + 'id_alat': access['id_alat'], + 'id_murid': access['id_murid'], + 'user_id': access['user_id'], + 'data_masuk': access['masuk'], + 'data_keluar': access['keluar'], + 'output_alat': access['output_alat'], + }; + } else if (row['access_bridge'] != null) { + final accessBridge = row['access_bridge'] as Map; + final rawMasuk = accessBridge['data_masuk'] ?? accessBridge['masuk']; + final rawKeluar = accessBridge['data_keluar'] ?? accessBridge['keluar']; + + final formattedMasuk = _formatTime(rawMasuk) ?? '07:00'; + final formattedKeluar = _formatTime(rawKeluar); + + row['masuk'] = formattedMasuk; + if (formattedKeluar != null) row['keluar'] = formattedKeluar; + } + + if (row['leave_request'] == null && consolidatedLeave.containsKey(compositeKey)) { + final leave = consolidatedLeave[compositeKey]!; + row['leave_request'] = { + 'id_tabel': leave['id_tabel'], + 'ket_opsi': leave['ket_opsi'], + 'verif': true, + }; + } + } + mergedList.add(row); + } + + // Add synthesized ones from consolidatedAccess + consolidatedAccess.forEach((compositeKey, access) { + if (!processedCompositeKeys.contains(compositeKey)) { + processedCompositeKeys.add(compositeKey); + final studentId = access['id_murid']?.toString(); + + Map? leaveRequestData; + if (consolidatedLeave.containsKey(compositeKey)) { + final leave = consolidatedLeave[compositeKey]!; + leaveRequestData = { + 'id_tabel': leave['id_tabel'], + 'ket_opsi': leave['ket_opsi'], + 'verif': true, + }; + } + + final synthRow = { + 'date': access['date'], + 'id_murid': studentId, + 'masuk': access['masuk'], + 'keluar': access['keluar'], + 'access_bridge': { + 'id_tabel': access['id_tabel'] ?? '', + 'id_alat': access['id_alat'], + 'id_murid': access['id_murid'], + 'user_id': access['user_id'], + 'data_masuk': access['masuk'], + 'data_keluar': access['keluar'], + 'output_alat': access['output_alat'], + }, + 'murid': studentId != null ? muridMapById[studentId] : null, + 'leave_request': leaveRequestData, + 'pengumuman': null, + }; + mergedList.add(synthRow); + } + }); + + // Add synthesized ones from consolidatedLeave + consolidatedLeave.forEach((compositeKey, leave) { + if (!processedCompositeKeys.contains(compositeKey)) { + processedCompositeKeys.add(compositeKey); + final parts = compositeKey.split('_'); + final studentId = parts.first; + final dateKey = parts.last; + + final synthRow = { + 'date': dateKey, + 'id_murid': studentId, + 'masuk': null, + 'keluar': null, + 'access_bridge': null, + 'murid': muridMapById[studentId], + 'leave_request': { + 'id_tabel': leave['id_tabel'], + 'ket_opsi': leave['ket_opsi'], + 'verif': true, + }, + 'pengumuman': null, + }; + mergedList.add(synthRow); + } + }); + + // Sort by date ascending + mergedList.sort((a, b) { + final dateA = a['date']?.toString() ?? ''; + final dateB = b['date']?.toString() ?? ''; + return dateA.compareTo(dateB); + }); + + return mergedList; + } catch (e) { + throw Exception('Gagal memuat data absensi kelas: $e'); + } + } + + List> _mergeAbsenWithAccess( + List absenResponse, + Map> consolidatedAccess, + String idMurid, + Map studentMuridMap, + Map> consolidatedLeave) { + + final List> mergedList = []; + final Set processedDates = {}; + + for (var item in absenResponse) { + final row = Map.from(item); + final dateKey = row['date']?.toString(); + + if (dateKey != null) { + processedDates.add(dateKey); + + if (consolidatedAccess.containsKey(dateKey)) { + final access = consolidatedAccess[dateKey]!; + + row['masuk'] = access['masuk'] ?? row['masuk']; + row['keluar'] = access['keluar'] ?? row['keluar']; + + row['access_bridge'] = { + 'id_tabel': access['id_tabel'] ?? '', + 'id_alat': access['id_alat'], + 'id_murid': access['id_murid'], + 'user_id': access['user_id'], + 'data_masuk': access['masuk'], + 'data_keluar': access['keluar'], + 'output_alat': access['output_alat'], + }; + } else if (row['access_bridge'] != null) { + final accessBridge = row['access_bridge'] as Map; + final rawMasuk = accessBridge['data_masuk'] ?? accessBridge['masuk']; + final rawKeluar = accessBridge['data_keluar'] ?? accessBridge['keluar']; + + final formattedMasuk = _formatTime(rawMasuk) ?? '07:00'; + final formattedKeluar = _formatTime(rawKeluar); + + row['masuk'] = formattedMasuk; + if (formattedKeluar != null) row['keluar'] = formattedKeluar; + } + + if (row['leave_request'] == null && consolidatedLeave.containsKey(dateKey)) { + final leave = consolidatedLeave[dateKey]!; + row['leave_request'] = { + 'id_tabel': leave['id_tabel'], + 'ket_opsi': leave['ket_opsi'], + 'verif': true, + }; + } + } + mergedList.add(row); + } + + consolidatedAccess.forEach((dateKey, access) { + if (!processedDates.contains(dateKey)) { + processedDates.add(dateKey); + + Map? leaveRequestData; + if (consolidatedLeave.containsKey(dateKey)) { + final leave = consolidatedLeave[dateKey]!; + leaveRequestData = { + 'id_tabel': leave['id_tabel'], + 'ket_opsi': leave['ket_opsi'], + 'verif': true, + }; + } + + final synthRow = { + 'date': dateKey, + 'id_murid': idMurid, + 'masuk': access['masuk'], + 'keluar': access['keluar'], + 'access_bridge': { + 'id_tabel': access['id_tabel'] ?? '', + 'id_alat': access['id_alat'], + 'id_murid': access['id_murid'], + 'user_id': access['user_id'], + 'data_masuk': access['masuk'], + 'data_keluar': access['keluar'], + 'output_alat': access['output_alat'], + }, + 'murid': studentMuridMap, + 'leave_request': leaveRequestData, + 'pengumuman': null, + }; + mergedList.add(synthRow); + } + }); + + consolidatedLeave.forEach((dateKey, leave) { + if (!processedDates.contains(dateKey)) { + processedDates.add(dateKey); + final synthRow = { + 'date': dateKey, + 'id_murid': idMurid, + 'masuk': null, + 'keluar': null, + 'access_bridge': null, + 'murid': studentMuridMap, + 'leave_request': { + 'id_tabel': leave['id_tabel'], + 'ket_opsi': leave['ket_opsi'], + 'verif': true, + }, + 'pengumuman': null, + }; + mergedList.add(synthRow); + } + }); + + mergedList.sort((a, b) { + final dateA = a['date']?.toString() ?? ''; + final dateB = b['date']?.toString() ?? ''; + return dateB.compareTo(dateA); + }); + + return mergedList; + } + + static String? _formatTime(dynamic timeVal) { + if (timeVal == null) return null; + final str = timeVal.toString().trim(); + if (str.isEmpty) return null; + + // Check if it is a full ISO8601 DateTime string + final parsed = DateTime.tryParse(str); + if (parsed != null) { + return DateFormat('HH:mm').format(parsed.toLocal()); + } + + final parts = str.split(':'); + if (parts.length >= 2) { + var hour = parts[0]; + if (hour.contains('T')) { + hour = hour.split('T').last; + } + hour = hour.padLeft(2, '0'); + var minute = parts[1]; + if (minute.length > 2) { + minute = minute.substring(0, 2); + } + minute = minute.padLeft(2, '0'); + return "$hour:$minute"; + } + return str; + } + + static String getStatus(Map row) { + // 0. Cek MANUAL override terlebih dahulu agar memiliki prioritas tertinggi + if (row['Null_data']?.toString() == 'Belum Absen') return 'Belum Absen'; + if (row['ket_sakit']?.toString().startsWith('MANUAL_') ?? false) return 'Sakit'; + if (row['ket_izin']?.toString().startsWith('MANUAL_') ?? false) return 'Izin'; + if (row['ket_libur']?.toString().startsWith('MANUAL_') ?? false) return 'Libur'; + if (row['ket_alpha']?.toString().startsWith('MANUAL_') ?? false) return 'Alpha'; + if (row['ket_hadir']?.toString().startsWith('MANUAL_') ?? false) { + final kh = row['ket_hadir'].toString(); + if (kh.toLowerCase().contains('terlambat')) return 'Terlambat'; + return 'Hadir'; + } + + // 1. Izin dan Sakit dari foreign key id_izin (leave_request) yang verify true + if (row['leave_request'] != null && row['leave_request']['verif'] == true) { + final ketOpsi = (row['leave_request']['ket_opsi'] ?? '').toString().toLowerCase(); + if (ketOpsi == 'sakit') { + return 'Sakit'; + } + if (ketOpsi == 'izin') { + return 'Izin'; + } + + // Fallback ke keterangan jika ket_opsi kosong/null + final ket = (row['leave_request']['keterangan'] ?? '').toString().toLowerCase(); + if (ket.contains('sakit')) { + return 'Sakit'; + } + return 'Izin'; + } + + // Fallback izin/sakit langsung dari tabel absen jika ada data manual + if (row['ket_sakit'] != null && row['ket_sakit'].toString().isNotEmpty) return 'Sakit'; + if (row['ket_izin'] != null && row['ket_izin'].toString().isNotEmpty) return 'Izin'; + + // 2. Libur diambil dari date hari minggu dan foreign key id_pengumuman dengan keterangan libur + final dateStr = row['date']?.toString() ?? ''; + bool isSundayOrHoliday = false; + if (dateStr.isNotEmpty) { + try { + final date = DateTime.parse(dateStr); + if (date.weekday == DateTime.sunday || HolidayService.isHoliday(date)) { + isSundayOrHoliday = true; + } + } catch (_) {} + } + + bool isPengumumanLibur = false; + if (row['pengumuman'] != null) { + final title = (row['pengumuman']['title'] ?? '').toString().toLowerCase(); + final keterangan = (row['pengumuman']['keterangan'] ?? '').toString().toLowerCase(); + if (title.contains('libur') || keterangan.contains('libur')) { + isPengumumanLibur = true; + } + } + + if (isSundayOrHoliday || isPengumumanLibur) { + return 'Libur'; + } + if (row['ket_libur'] != null && row['ket_libur'].toString().isNotEmpty) return 'Libur'; + + // 3. Hadir / Terlambat diambil dari foreign key id_access (access_bridge) + if (row['access_bridge'] != null) { + final accessBridge = row['access_bridge']; + + // Perform security check: match nama_user (from output_alat) with murid.nama + final outputAlat = accessBridge['output_alat']; + final namaUser = outputAlat != null ? outputAlat['nama_user']?.toString() : null; + final studentName = row['murid'] != null ? row['murid']['nama']?.toString() : null; + + bool nameMatches = true; + if (studentName != null && namaUser != null) { + if (namaUser.trim().toLowerCase() != studentName.trim().toLowerCase()) { + nameMatches = false; + } + } + + if (nameMatches) { + final rawMasuk = accessBridge['data_masuk']; + final formattedMasuk = _formatTime(rawMasuk) ?? '07:00'; + + // Hanya dianggap hadir jika ada data masuk (absen sekali) + if (formattedMasuk.trim().isNotEmpty) { + final parts = formattedMasuk.split(':'); + if (parts.length >= 2) { + final hour = int.tryParse(parts[0]) ?? 0; + final minute = int.tryParse(parts[1]) ?? 0; + if (hour > 7 || (hour == 7 && minute > 0)) { + return 'Terlambat'; + } + } + return 'Hadir'; + } + } + } + + // Fallback ket_hadir / masuk / terlambat dari tabel absen langsung + if (row['ket_hadir'] != null && row['ket_hadir'].toString().isNotEmpty) { + final kh = row['ket_hadir'].toString(); + if (kh.toLowerCase().contains('terlambat')) return 'Terlambat'; + return 'Hadir'; + } + if (row['terlambat'] != null && row['terlambat'].toString().isNotEmpty) return 'Terlambat'; + if (row['masuk'] != null && row['masuk'].toString().isNotEmpty) return 'Hadir'; + + // 4. Alpha + if (row['ket_alpha'] != null && row['ket_alpha'].toString().isNotEmpty) return 'Alpha'; + + return 'Belum Absen'; + } + + // === MONTHLY REKAP METHODS === + + /// Generate rekap bulanan: buat row di tabel absen untuk semua murid × semua hari + /// dengan absensi_baru = 'REKAP_{yearMonth}'. + /// Menerima [students] langsung agar tidak fetch ulang & filter per kelas benar. + /// Hanya insert baris yang belum ada (per-murid check). + Future generateMonthlyRekap( + String yearMonth, + List> students, + ) async { + if (students.isEmpty) return; + + final prefs = await SharedPreferences.getInstance(); + final userId = prefs.getString('user_id_admin'); + if (userId == null) throw Exception('Sesi tidak valid.'); + + final rekapKey = 'REKAP_$yearMonth'; + + // Parse year & month + final parts = yearMonth.split('-'); + final year = int.parse(parts[0]); + final month = int.parse(parts[1]); + final daysInMonth = DateTime(year, month + 1, 0).day; + + // Kumpulkan id_murid yang akan diproses + final listIdMurid = students + .map((m) => m['id_tabel']?.toString()) + .where((id) => id != null) + .cast() + .toList(); + if (listIdMurid.isEmpty) return; + + // Cek murid mana yang sudah punya baris rekap untuk bulan ini + final existingRows = await _supabase + .from('absen') + .select('id_murid') + .eq('absensi_baru', rekapKey) + .inFilter('id_murid', listIdMurid); + + final existingMuridIds = existingRows + .map((r) => r['id_murid']?.toString()) + .whereType() + .toSet(); + + // Hanya insert untuk murid yang belum punya rekap + final studentsToInsert = students + .where((m) => !existingMuridIds.contains(m['id_tabel']?.toString())) + .toList(); + + if (studentsToInsert.isEmpty) return; + + // Generate rows: 1 row per murid per hari + final List> rowsToInsert = []; + for (var murid in studentsToInsert) { + final String? createdAtStr = murid['created_at']?.toString(); + DateTime? joinDate; + if (createdAtStr != null) { + final parsed = DateTime.tryParse(createdAtStr); + if (parsed != null) { + joinDate = parsed.toLocal(); + } + } + + for (int day = 1; day <= daysInMonth; day++) { + final date = DateTime(year, month, day); + + // Skip jika tanggal saat ini sama dengan atau sebelum tanggal murid bergabung + // Absen akan mulai dihitung pada H+1 setelah ditambahkan ke kelas + if (joinDate != null) { + final joinDateOnly = DateTime(joinDate.year, joinDate.month, joinDate.day); + if (date.isBefore(joinDateOnly) || date.isAtSameMomentAs(joinDateOnly)) { + continue; + } + } + + final formattedDate = DateFormat('yyyy-MM-dd').format(date); + final isSundayOrHoliday = + date.weekday == DateTime.sunday || HolidayService.isHoliday(date); + + rowsToInsert.add({ + 'date': formattedDate, + 'user_id': userId, + 'id_murid': murid['id_tabel'], + 'absensi_baru': rekapKey, + if (isSundayOrHoliday) 'ket_libur': 'Libur', + }); + } + } + + // Batch insert + if (rowsToInsert.isNotEmpty) { + await _supabase.from('absen').insert(rowsToInsert); + } + } + + /// Sync data rekap bulanan dengan access_bridge & leave_request. + /// Memperbarui row yang sudah ada di tabel absen. + /// Menerima [listIdMurid] agar hanya sync murid dari kelas yang sedang dilihat. + Future syncMonthlyRekap( + String yearMonth, + List listIdMurid, + ) async { + if (listIdMurid.isEmpty) return; + + final rekapKey = 'REKAP_$yearMonth'; + final parts = yearMonth.split('-'); + final year = int.parse(parts[0]); + final month = int.parse(parts[1]); + + // 1. Ambil semua row rekap bulan ini, difilter per murid kelas ini + final rekapRows = await _supabase + .from('absen') + .select('id_tabel, date, id_murid, ket_libur, ket_hadir, ket_izin, ket_sakit, ket_alpha, Null_data') + .eq('absensi_baru', rekapKey) + .inFilter('id_murid', listIdMurid); + + if (rekapRows.isEmpty) return; + + // Build lookup: compositeKey (id_murid_date) -> row + final Map> rekapLookup = {}; + for (var row in rekapRows) { + final idMurid = row['id_murid']?.toString(); + final date = row['date']?.toString(); + if (idMurid == null || date == null) continue; + rekapLookup['${idMurid}_$date'] = Map.from(row); + } + + if (listIdMurid.isEmpty) return; + + // 2. Ambil info murid (untuk nama, untuk matching access) + final muridRes = await _supabase + .from('murid') + .select('id_tabel, user_id, nis, nama') + .inFilter('id_tabel', listIdMurid); + + final Map studentNamesById = {}; + final List listUserIds = []; + for (var m in muridRes) { + final id = m['id_tabel'].toString(); + studentNamesById[id] = m['nama']?.toString() ?? ''; + final uid = m['user_id']?.toString(); + if (uid != null) listUserIds.add(uid); + } + + // 3. Sync dari access_bridge (kehadiran via scan alat) + List> accessResponse = []; + try { + final res = await _supabase + .from('access_bridge') + .select('*, output_alat(*)') + .inFilter('id_murid', listIdMurid); + accessResponse = List>.from(res); + } catch (_) {} + + // Build access lookup: compositeKey -> access data (hanya untuk bulan ini) + final Map> accessLookup = {}; + for (var row in accessResponse) { + if (row['created_at'] == null) continue; + DateTime? parsedDate; + try { + parsedDate = DateTime.parse(row['created_at'].toString()).toLocal(); + } catch (_) {} + if (parsedDate == null) continue; + // Filter hanya bulan ini + if (parsedDate.year != year || parsedDate.month != month) continue; + + final idMurid = row['id_murid']?.toString(); + if (idMurid == null) continue; + final dateKey = DateFormat('yyyy-MM-dd').format(parsedDate); + final compositeKey = '${idMurid}_$dateKey'; + + if (!accessLookup.containsKey(compositeKey)) { + accessLookup[compositeKey] = row; + } + } + + // 4. Sync dari leave_request (izin/sakit yang verified) + List> leaveResponse = []; + try { + final res = await _supabase + .from('leave_request') + .select('*') + .inFilter('id_murid', listIdMurid) + .eq('verif', true); + leaveResponse = List>.from(res); + } catch (_) {} + + // Build leave lookup: compositeKey -> leave data (hanya untuk bulan ini) + final Map> leaveLookup = {}; + for (var req in leaveResponse) { + final studentId = req['id_murid']?.toString(); + final startStr = req['tanggal_mulai']?.toString(); + final endStr = req['tanggal_selesai']?.toString(); + if (studentId == null || startStr == null || endStr == null) continue; + try { + final start = DateTime.parse(startStr); + final end = DateTime.parse(endStr); + for (int d = 0; d <= end.difference(start).inDays; d++) { + final currentDate = start.add(Duration(days: d)); + // Filter hanya bulan ini + if (currentDate.year != year || currentDate.month != month) continue; + final dateKey = DateFormat('yyyy-MM-dd').format(currentDate); + final compositeKey = '${studentId}_$dateKey'; + leaveLookup[compositeKey] = req; + } + } catch (_) {} + } + + // 5. Muat set id_tabel yang sudah di-override manual + final Set manualOverrideIds = await _getManualOverrideIds(); + + // 6. Update setiap row rekap berdasarkan data access & leave + final now = DateTime.now(); + final List> updates = []; + + for (var entry in rekapLookup.entries) { + final compositeKey = entry.key; + final row = entry.value; + final idTabel = row['id_tabel'].toString(); + final isLibur = row['ket_libur'] != null && row['ket_libur'].toString().isNotEmpty; + + // Skip hari libur + if (isLibur) continue; + + // Skip row yang sudah di-override manual oleh guru (tersimpan di SharedPreferences atau berawalan MANUAL_ / Belum Absen di DB) + final isManualDb = + (row['Null_data']?.toString() == 'Belum Absen') || + (row['ket_hadir']?.toString().startsWith('MANUAL_') ?? false) || + (row['ket_izin']?.toString().startsWith('MANUAL_') ?? false) || + (row['ket_sakit']?.toString().startsWith('MANUAL_') ?? false) || + (row['ket_alpha']?.toString().startsWith('MANUAL_') ?? false) || + (row['ket_libur']?.toString().startsWith('MANUAL_') ?? false); + final isManualOverride = manualOverrideIds.contains(idTabel); + if (isManualOverride || isManualDb) continue; + + final Map updateData = { + 'ket_hadir': null, + 'ket_izin': null, + 'ket_sakit': null, + 'ket_alpha': null, + }; + + // Prioritas: leave_request > access_bridge > alpha (jika tanggal sudah lewat) + if (leaveLookup.containsKey(compositeKey)) { + final leave = leaveLookup[compositeKey]!; + final ketOpsi = (leave['ket_opsi'] ?? 'izin').toString().toLowerCase(); + if (ketOpsi == 'sakit') { + updateData['ket_sakit'] = 'Sakit'; + } else { + updateData['ket_izin'] = 'Izin'; + } + } else if (accessLookup.containsKey(compositeKey)) { + final access = accessLookup[compositeKey]!; + final rawMasuk = access['data_masuk']; + final formattedMasuk = _formatTime(rawMasuk) ?? '07:00'; + final timeParts = formattedMasuk.split(':'); + if (timeParts.length >= 2) { + final hour = int.tryParse(timeParts[0]) ?? 0; + final minute = int.tryParse(timeParts[1]) ?? 0; + if (hour > 7 || (hour == 7 && minute > 0)) { + updateData['ket_hadir'] = 'Terlambat'; + } else { + updateData['ket_hadir'] = 'Hadir'; + } + } else { + updateData['ket_hadir'] = 'Hadir'; + } + } else { + // Cek apakah tanggal sudah lewat → Alpha + try { + final rowDate = DateTime.parse(row['date'].toString()); + if (rowDate.isBefore(DateTime(now.year, now.month, now.day))) { + updateData['ket_alpha'] = 'Alpha'; + } + } catch (_) {} + } + + // Bandingkan dengan data lama di row. Jika sama persis, tidak perlu update ke database. + if (row['ket_hadir'] == updateData['ket_hadir'] && + row['ket_izin'] == updateData['ket_izin'] && + row['ket_sakit'] == updateData['ket_sakit'] && + row['ket_alpha'] == updateData['ket_alpha']) { + continue; + } + + final futureUpdate = _supabase + .from('absen') + .update(updateData) + .eq('id_tabel', idTabel); + updates.add(futureUpdate); + } + + // Jalankan update secara paralel dalam chunk berukuran 15 + const int chunkSize = 15; + for (int i = 0; i < updates.length; i += chunkSize) { + final end = (i + chunkSize > updates.length) ? updates.length : i + chunkSize; + final chunk = updates.sublist(i, end); + await Future.wait(chunk); + } + } + + // === HELPER: Manual Override via SharedPreferences === + + static const String _manualOverrideKey = 'absen_manual_override_ids'; + + Future> _getManualOverrideIds() async { + try { + final prefs = await SharedPreferences.getInstance(); + final list = prefs.getStringList(_manualOverrideKey) ?? []; + return list.toSet(); + } catch (_) { + return {}; + } + } + + Future _setManualOverride(String idTabel, bool isManual) async { + try { + final prefs = await SharedPreferences.getInstance(); + final current = (prefs.getStringList(_manualOverrideKey) ?? []).toSet(); + if (isManual) { + current.add(idTabel); + } else { + current.remove(idTabel); + } + await prefs.setStringList(_manualOverrideKey, current.toList()); + } catch (_) {} + } + + /// Ambil data rekap bulanan — query dari tabel absen difilter per murid. + /// Menerima [listIdMurid] agar tidak campur data dengan kelas lain. + Future>> getMonthlyRekapData( + String yearMonth, + List listIdMurid, + ) async { + if (listIdMurid.isEmpty) return []; + + final rekapKey = 'REKAP_$yearMonth'; + + final response = await _supabase + .from('absen') + .select('*, murid:id_murid(*)') + .eq('absensi_baru', rekapKey) + .inFilter('id_murid', listIdMurid) + .order('date', ascending: true); + + return List>.from(response); + } + + // === CUSTOM SESSIONS METHODS === + + Future createNewSession(String judul, DateTime date) async { + final prefs = await SharedPreferences.getInstance(); + final userId = prefs.getString('user_id_admin'); + if (userId == null) { + throw Exception('Sesi tidak valid.'); + } + + // Check if session already exists + final formattedDate = DateFormat('yyyy-MM-dd').format(date); + final existing = await _supabase + .from('absen') + .select('id_tabel') + .eq('user_id', userId) + .eq('absensi_baru', judul) + .eq('date', formattedDate) + .limit(1) + .maybeSingle(); + + if (existing != null) { + throw Exception('Sesi absensi dengan judul dan tanggal tersebut sudah ada.'); + } + + // Fetch murid list + final dbKelas = DbKelas(); + final students = await dbKelas.getMuridForGuru(); + if (students.isEmpty) { + throw Exception('Tidak ada murid di kelas Anda.'); + } + + // Prepare insert rows, skip murid jika belum waktunya (H+1) + final List> rowsToInsert = []; + for (var murid in students) { + final String? createdAtStr = murid['created_at']?.toString(); + if (createdAtStr != null) { + final parsed = DateTime.tryParse(createdAtStr); + if (parsed != null) { + final joinDate = parsed.toLocal(); + final joinDateOnly = DateTime(joinDate.year, joinDate.month, joinDate.day); + final sessionDateOnly = DateTime(date.year, date.month, date.day); + // Skip if session date is before or equal to join date (H+1 logic) + if (sessionDateOnly.isBefore(joinDateOnly) || sessionDateOnly.isAtSameMomentAs(joinDateOnly)) { + continue; + } + } + } + rowsToInsert.add({ + 'date': formattedDate, + 'user_id': userId, + 'id_murid': murid['id_tabel'], + 'absensi_baru': judul, + }); + } + + // Insert into absen table + await _supabase.from('absen').insert(rowsToInsert); + } + + Future>> getCustomSessions() async { + final prefs = await SharedPreferences.getInstance(); + final userId = prefs.getString('user_id_admin'); + if (userId == null) { + throw Exception('Sesi tidak valid.'); + } + + final response = await _supabase + .from('absen') + .select('absensi_baru, date') + .eq('user_id', userId) + .not('absensi_baru', 'is', null) + .not('absensi_baru', 'like', 'REKAP_%'); + + final List> sessions = []; + final Set uniqueKeys = {}; + for (var item in response) { + final judul = item['absensi_baru'] as String?; + final date = item['date'] as String?; + if (judul == null || date == null) continue; + final key = '$judul|$date'; + if (!uniqueKeys.contains(key)) { + uniqueKeys.add(key); + sessions.add({ + 'judul': judul, + 'date': date, + }); + } + } + + // sort by date descending + sessions.sort((a, b) => b['date'].toString().compareTo(a['date'].toString())); + return sessions; + } + + Future>> getSessionStudents(String judul, String date) async { + final prefs = await SharedPreferences.getInstance(); + final userId = prefs.getString('user_id_admin'); + if (userId == null) { + throw Exception('Sesi tidak valid.'); + } + + final response = await _supabase + .from('absen') + .select('*, murid:id_murid(*)') + .eq('user_id', userId) + .eq('absensi_baru', judul) + .eq('date', date); + + final List> list = List>.from(response); + list.sort((a, b) { + final nameA = a['murid']?['nama']?.toString() ?? ''; + final nameB = b['murid']?['nama']?.toString() ?? ''; + return nameA.compareTo(nameB); + }); + return list; + } + + Future updateStudentSessionStatus({ + required String idTabel, + required String? selectedStatus, // 'hadir', 'izin', 'sakit', 'alpha', 'libur', or null + }) async { + try { + // 1. Ambil data murid, tanggal, dan user_id dari baris absen + final response = await _supabase + .from('absen') + .select('id_murid, date, user_id') + .eq('id_tabel', idTabel) + .maybeSingle(); + + if (response != null) { + final idMurid = response['id_murid']?.toString(); + final dateStr = response['date']?.toString(); + var userId = response['user_id']?.toString(); + + if (idMurid != null && dateStr != null) { + final startOfDay = '${dateStr}T00:00:00'; + final endOfDay = '${dateStr}T23:59:59'; + + if (selectedStatus == 'hadir') { + // Cek apakah data access_bridge sudah ada untuk hari ini + final existingAccess = await _supabase + .from('access_bridge') + .select('id_tabel') + .eq('id_murid', idMurid) + .gte('created_at', startOfDay) + .lte('created_at', endOfDay); + + if (existingAccess.isEmpty) { + if (userId == null || userId.isEmpty) { + userId = _supabase.auth.currentUser?.id ?? ''; + } + await _supabase.from('access_bridge').insert({ + 'id_murid': idMurid, + 'user_id': userId, + 'data_masuk': '${dateStr}T07:00:00', + 'created_at': '${dateStr}T07:00:00', + }); + } + } else { + // Jika status manual diubah selain Hadir (seperti Sakit/Izin/Alpha/Libur/Belum Absen), + // hapus record access_bridge hari ini agar tidak bentrok + await _supabase + .from('access_bridge') + .delete() + .eq('id_murid', idMurid) + .gte('created_at', startOfDay) + .lte('created_at', endOfDay); + } + } + } + } catch (_) {} + + final Map updateData = { + 'ket_hadir': selectedStatus == 'hadir' ? 'MANUAL_Hadir' : null, + 'ket_izin': selectedStatus == 'izin' ? 'MANUAL_Izin' : null, + 'ket_sakit': selectedStatus == 'sakit' ? 'MANUAL_Sakit' : null, + 'ket_alpha': selectedStatus == 'alpha' ? 'MANUAL_Alpha' : null, + 'ket_libur': selectedStatus == 'libur' ? 'MANUAL_Libur' : null, + 'Null_data': (selectedStatus == null || selectedStatus == 'belum_absen') ? 'Belum Absen' : null, + }; + + await _supabase + .from('absen') + .update(updateData) + .eq('id_tabel', idTabel); + + // Tandai sebagai manual override di SharedPreferences. + // selectedStatus == null (belum absen) → hapus flag agar auto-sync bisa berjalan lagi. + await _setManualOverride(idTabel, selectedStatus != null); + } + + + Future deleteSession(String judul, String date) async { + final prefs = await SharedPreferences.getInstance(); + final userId = prefs.getString('user_id_admin'); + if (userId == null) { + throw Exception('Sesi tidak valid.'); + } + + await _supabase + .from('absen') + .delete() + .eq('user_id', userId) + .eq('absensi_baru', judul) + .eq('date', date); + } +} + diff --git a/lib/dashboard/d_guru/database/db_grup_kelas.dart b/lib/dashboard/d_guru/database/db_grup_kelas.dart new file mode 100644 index 0000000..45ace72 --- /dev/null +++ b/lib/dashboard/d_guru/database/db_grup_kelas.dart @@ -0,0 +1,172 @@ +import 'package:flutter/foundation.dart'; +import 'package:supabase_flutter/supabase_flutter.dart'; +import 'package:shared_preferences/shared_preferences.dart'; + +class DbGrupKelas { + static final supabase = Supabase.instance.client; + + static Future getUserIdAsync() async { + final prefs = await SharedPreferences.getInstance(); + final ortuId = prefs.getString('user_id_admin'); + if (ortuId != null) return ortuId; + + final id = supabase.auth.currentUser?.id; + if (id != null) return id; + + throw Exception('User belum login'); + } + + // Determine current user's role and corresponding table ID + static Future?> getCurrentUserRoleAndId() async { + try { + final prefs = await SharedPreferences.getInstance(); + final role = prefs.getString('user_role'); + + // 1. Cek Ortu/Murid (menggunakan SharedPreferences) + if (role == 'ortu' || role == 'murid') { + final nis = prefs.getString('murid_nis'); + final adminId = prefs.getString('user_id_admin'); + if (nis != null && adminId != null) { + final muridRes = await supabase + .from('murid') + .select('id_tabel, id_class') + .eq('user_id', adminId) + .eq('nis', nis) + .or('status_akun.is.null,status_akun.eq.true') + .maybeSingle(); + if (muridRes != null) { + return {'role': 'murid', 'id': muridRes['id_tabel'].toString(), 'id_class': muridRes['id_class']?.toString() ?? ''}; + } + } + return null; + } + + // 2. Cek Guru (menggunakan SharedPreferences) + if (role == 'guru') { + final nik = prefs.getString('guru_nik'); + final adminId = prefs.getString('user_id_admin'); + if (nik != null && adminId != null) { + final guruRes = await supabase + .from('guru') + .select('id_tabel, id_class, status_akun') + .eq('user_id', adminId) + .eq('nik', nik) + .maybeSingle(); + if (guruRes != null && guruRes['status_akun'] != false) { + String classId = guruRes['id_class']?.toString() ?? ''; + if (classId.isEmpty) { + // Fallback: look up class from class_name table where this teacher is Wali Kelas + final classRes = await supabase + .from('class_name') + .select('id_tabel') + .eq('id_guru', guruRes['id_tabel']) + .maybeSingle(); + if (classRes != null) { + classId = classRes['id_tabel']?.toString() ?? ''; + } + } + return {'role': 'guru', 'id': guruRes['id_tabel'].toString(), 'id_class': classId}; + } + } + return null; + } + + // 3. Cek Admin (menggunakan Supabase Auth) + final userId = supabase.auth.currentUser?.id; + if (userId == null) return null; + + final adminRes = await supabase + .from('user_admin') + .select('id') + .eq('id', userId) + .maybeSingle(); + if (adminRes != null) { + return {'role': 'admin', 'id': adminRes['id'].toString()}; + } + + } catch (e) { + if (kDebugMode) print('Check Role Error: $e'); + } + return null; + } + + // Ambil semua nama (Admin, Guru, Murid) untuk ditampilkan di chat + static Future> fetchAllNames() async { + final Map namesMap = {}; + try { + // Fetch Admin names + final admins = await supabase.from('user_admin').select('id, name'); + for (var a in admins) { + if (a['id'] != null && a['name'] != null) { + namesMap[a['id'].toString()] = a['name'].toString(); + } + } + + // Fetch Guru names + final gurus = await supabase + .from('guru') + .select('id_tabel, name') + .or('status_akun.is.null,status_akun.eq.true'); + for (var g in gurus) { + if (g['id_tabel'] != null && g['name'] != null) { + namesMap[g['id_tabel'].toString()] = g['name'].toString(); + } + } + + // Fetch Murid names + // Fetch Murid names + final murids = await supabase + .from('murid') + .select('id_tabel, nama') + .or('status_akun.is.null,status_akun.eq.true'); + for (var m in murids) { + if (m['id_tabel'] != null && m['nama'] != null) { + namesMap[m['id_tabel'].toString()] = m['nama'].toString(); + } + } + } catch (e) { + if (kDebugMode) print('Fetch Names Error: $e'); + } + return namesMap; + } + + Stream>> getGrupKelasStream(String idClass) { + return supabase + .from('grup_kelas') + .stream(primaryKey: ['id_tabel']) + .order('created_at', ascending: true) + .map((data) => data + .where((msg) => msg['id_class']?.toString() == idClass) + .toList()); + } + + // Kirim Pesan + Future sendMessage({ + required String text, + required String senderId, + required String role, + required String idClass, + }) async { + try { + final userId = await getUserIdAsync(); + final Map insertData = { + 'text': text, + 'user_id': userId, + 'id_class': idClass, + }; + + if (role == 'admin') { + insertData['pengirim_admin'] = senderId; + } else if (role == 'guru') { + insertData['pengirim_guru'] = senderId; + } else if (role == 'murid') { + insertData['pengirim_murid'] = senderId; + } + + await supabase.from('grup_kelas').insert(insertData); + } catch (e) { + if (kDebugMode) print('Send Message Error: $e'); + throw Exception('Gagal mengirim pesan: $e'); + } + } +} diff --git a/lib/dashboard/d_guru/database/db_grup_sekolah.dart b/lib/dashboard/d_guru/database/db_grup_sekolah.dart new file mode 100644 index 0000000..48236f9 --- /dev/null +++ b/lib/dashboard/d_guru/database/db_grup_sekolah.dart @@ -0,0 +1,155 @@ +import 'package:flutter/foundation.dart'; +import 'package:supabase_flutter/supabase_flutter.dart'; +import 'package:shared_preferences/shared_preferences.dart'; + +class DbGrupSekolah { + static final supabase = Supabase.instance.client; + + static Future getUserIdAsync() async { + final prefs = await SharedPreferences.getInstance(); + final ortuId = prefs.getString('user_id_admin'); + if (ortuId != null) return ortuId; + + final id = supabase.auth.currentUser?.id; + if (id != null) return id; + + throw Exception('User belum login'); + } + + // Determine current user's role and corresponding table ID + static Future?> getCurrentUserRoleAndId() async { + try { + final prefs = await SharedPreferences.getInstance(); + final role = prefs.getString('user_role'); + + // 1. Cek Ortu/Murid (menggunakan SharedPreferences) + if (role == 'ortu' || role == 'murid') { + final nis = prefs.getString('murid_nis'); + final adminId = prefs.getString('user_id_admin'); + if (nis != null && adminId != null) { + final muridRes = await supabase + .from('murid') + .select('id_tabel') + .eq('user_id', adminId) + .eq('nis', nis) + .or('status_akun.is.null,status_akun.eq.true') + .maybeSingle(); + if (muridRes != null) { + return {'role': 'murid', 'id': muridRes['id_tabel'].toString()}; + } + } + return null; + } + + // 2. Cek Guru (menggunakan SharedPreferences) + if (role == 'guru') { + final nik = prefs.getString('guru_nik'); + final adminId = prefs.getString('user_id_admin'); + if (nik != null && adminId != null) { + final guruRes = await supabase + .from('guru') + .select('id_tabel, status_akun') + .eq('user_id', adminId) + .eq('nik', nik) + .maybeSingle(); + if (guruRes != null && guruRes['status_akun'] != false) { + return {'role': 'guru', 'id': guruRes['id_tabel'].toString()}; + } + } + return null; + } + + // 3. Cek Admin (menggunakan Supabase Auth) + final userId = supabase.auth.currentUser?.id; + if (userId == null) return null; + + final adminRes = await supabase + .from('user_admin') + .select('id') + .eq('id', userId) + .maybeSingle(); + if (adminRes != null) { + return {'role': 'admin', 'id': adminRes['id'].toString()}; + } + + } catch (e) { + if (kDebugMode) print('Check Role Error: $e'); + } + return null; + } + + // Ambil semua nama (Admin, Guru, Murid) untuk ditampilkan di chat + static Future> fetchAllNames() async { + final Map namesMap = {}; + try { + // Fetch Admin names + final admins = await supabase.from('user_admin').select('id, name'); + for (var a in admins) { + if (a['id'] != null && a['name'] != null) { + namesMap[a['id'].toString()] = a['name'].toString(); + } + } + + // Fetch Guru names + final gurus = await supabase + .from('guru') + .select('id_tabel, name') + .or('status_akun.is.null,status_akun.eq.true'); + for (var g in gurus) { + if (g['id_tabel'] != null && g['name'] != null) { + namesMap[g['id_tabel'].toString()] = g['name'].toString(); + } + } + + // Fetch Murid names + final murids = await supabase + .from('murid') + .select('id_tabel, nama') + .or('status_akun.is.null,status_akun.eq.true'); + for (var m in murids) { + if (m['id_tabel'] != null && m['nama'] != null) { + namesMap[m['id_tabel'].toString()] = m['nama'].toString(); + } + } + } catch (e) { + if (kDebugMode) print('Fetch Names Error: $e'); + } + return namesMap; + } + + // Stream chat global + Stream>> getGrupSekolahStream() { + return supabase + .from('grup_sekolah') + .stream(primaryKey: ['id_tabel']) + .order('created_at', ascending: true); + } + + // Kirim Pesan + Future sendMessage({ + required String text, + required String senderId, + required String role, + }) async { + try { + final userId = await getUserIdAsync(); + final Map insertData = { + 'text': text, + 'user_id': userId, + }; + + if (role == 'admin') { + insertData['pengirim_admin'] = senderId; + } else if (role == 'guru') { + insertData['pengirim_guru'] = senderId; + } else if (role == 'murid') { + insertData['pengirim_murid'] = senderId; + } + + await supabase.from('grup_sekolah').insert(insertData); + } catch (e) { + if (kDebugMode) print('Send Message Error: $e'); + throw Exception('Gagal mengirim pesan: $e'); + } + } +} diff --git a/lib/dashboard/d_guru/database/db_guru.dart b/lib/dashboard/d_guru/database/db_guru.dart new file mode 100644 index 0000000..6b5bd36 --- /dev/null +++ b/lib/dashboard/d_guru/database/db_guru.dart @@ -0,0 +1,199 @@ +import 'package:supabase_flutter/supabase_flutter.dart'; +import 'package:shared_preferences/shared_preferences.dart'; + +class DbGuru { + final SupabaseClient _supabase = Supabase.instance.client; + + Future>> getAllGuru() async { + try { + // Fetch all guru, possibly with their class name if you have a relationship set up + // Or just fetch the table and handle join locally if needed + final response = await _supabase + .from('guru') + .select('*, class_name!guru_id_class_fkey(*)') + .or('status_akun.is.null,status_akun.eq.true'); + + return List>.from(response); + } catch (e) { + // If there's no relationship 'class_name', fallback to normal select + try { + final fallbackResponse = await _supabase + .from('guru') + .select('*') + .or('status_akun.is.null,status_akun.eq.true'); + return List>.from(fallbackResponse); + } catch (e2) { + throw Exception('Gagal memuat data guru: $e2'); + } + } + } + + Future>> getGuruForStudentClass() async { + try { + final prefs = await SharedPreferences.getInstance(); + final userId = prefs.getString('user_id_admin'); + final nis = prefs.getString('murid_nis'); + + if (userId == null || nis == null) return []; + + // 1. Dapatkan info murid untuk mengambil id_class murid tersebut + final muridData = await _supabase + .from('murid') + .select('id_class') + .eq('user_id', userId) + .eq('nis', nis) + .maybeSingle(); + + if (muridData == null || muridData['id_class'] == null) return []; + final String studentClassId = muridData['id_class'].toString(); + + // 2. Dapatkan Wali Kelas untuk kelas tersebut + final classData = await _supabase + .from('class_name') + .select('id_guru') + .eq('id_tabel', studentClassId) + .maybeSingle(); + + final String? waliKelasGuruId = classData?['id_guru']?.toString(); + + // 3. Dapatkan guru yang mengajar di kelas murid tersebut (guru.id_class == studentClassId) + // dan juga Wali Kelas dari kelas tersebut (guru.id_tabel == waliKelasGuruId) + var query = _supabase + .from('guru') + .select('*') + .or('status_akun.is.null,status_akun.eq.true'); + + if (waliKelasGuruId != null && waliKelasGuruId.isNotEmpty) { + query = query.or('id_class.eq.$studentClassId,id_tabel.eq.$waliKelasGuruId'); + } else { + query = query.eq('id_class', studentClassId); + } + + final response = await query; + return List>.from(response); + } catch (e) { + return []; + } + } + + Future>> getGuruForLoggedGuruClass() async { + try { + final prefs = await SharedPreferences.getInstance(); + final userId = prefs.getString('user_id_admin'); + final nik = prefs.getString('guru_nik'); + + if (userId == null || nik == null) return []; + + // 1. Dapatkan info guru yang login + final guruData = await _supabase + .from('guru') + .select('id_tabel, id_class') + .eq('user_id', userId) + .eq('nik', nik) + .maybeSingle(); + + if (guruData == null) return []; + + Set validClassIds = {}; + if (guruData['id_class'] != null) { + validClassIds.add(guruData['id_class'].toString()); + } + + // Ambil class_name yang terkait dengan guru ini + final classDataList = await _supabase + .from('class_name') + .select('id_tabel, id_class') + .eq('id_guru', guruData['id_tabel']); + + for (var c in classDataList) { + validClassIds.add(c['id_tabel'].toString()); + } + + if (validClassIds.isEmpty) return []; + + // 2. Ambil semua guru yang terhubung ke kelas yang sama (melalui id_class di tabel guru) + final gurusInClass = await _supabase + .from('guru') + .select('*, class_name!guru_id_class_fkey(*)') + .inFilter('id_class', validClassIds.toList()) + .or('status_akun.is.null,status_akun.eq.true'); + + return List>.from(gurusInClass); + } catch (e) { + throw Exception('Gagal memuat data guru per kelas: $e'); + } + } + Future> getLoggedInGuruInfo() async { + final prefs = await SharedPreferences.getInstance(); + final userId = prefs.getString('user_id_admin'); + final nik = prefs.getString('guru_nik'); + + if (userId == null || nik == null) { + throw Exception('Sesi guru tidak valid.'); + } + + final guruData = await _supabase + .from('guru') + .select() + .eq('user_id', userId) + .eq('nik', nik) + .maybeSingle(); + + if (guruData == null) { + throw Exception('Data guru tidak ditemukan.'); + } + + // Cek apakah wali kelas + final classData = await _supabase + .from('class_name') + .select('name_class') + .eq('id_guru', guruData['id_tabel']) + .maybeSingle(); + + guruData['is_wali_kelas'] = classData != null; + + if (classData != null) { + guruData['class_name'] = classData['name_class']; + } else if (guruData['id_class'] != null) { + // Jika bukan wali kelas, ambil nama kelas berdasarkan id_class + final classDataById = await _supabase + .from('class_name') + .select('name_class') + .eq('id_tabel', guruData['id_class']) + .maybeSingle(); + guruData['class_name'] = classDataById?['name_class']; + } else { + guruData['class_name'] = null; + } + + return guruData; + } + + Future updateGuru({ + required String idTabel, + required num nik, + required String name, + String? bidang, + String? idClass, + required bool wali, + }) async { + await _supabase.from('guru').update({ + 'nik': nik, + 'name': name, + 'bidang': bidang, + 'id_class': idClass, + 'wali': wali, + }).eq('id_tabel', idTabel); + } + + Future deleteGuru(String idTabel) async { + try { + await _supabase.from('guru').update({ + 'status_akun': false, + 'id_class': null, + }).eq('id_tabel', idTabel); + } catch (e) { + throw Exception('Gagal menghapus guru: $e'); + } + } +} diff --git a/lib/dashboard/d_guru/database/db_izin.dart b/lib/dashboard/d_guru/database/db_izin.dart new file mode 100644 index 0000000..10075e7 --- /dev/null +++ b/lib/dashboard/d_guru/database/db_izin.dart @@ -0,0 +1,28 @@ +import 'dart:typed_data'; +import 'package:supabase_flutter/supabase_flutter.dart'; + +class DbIzin { + final SupabaseClient _supabase = Supabase.instance.client; + + Future uploadIzinFile(String authId, String nis, Uint8List fileBytes, String originalFileName) async { + try { + final fileName = '${DateTime.now().millisecondsSinceEpoch}_$originalFileName'; + final filePath = '$authId/$nis/$fileName'; + + await _supabase.storage.from('doc_izin').uploadBinary(filePath, fileBytes); + return _supabase.storage.from('doc_izin').getPublicUrl(filePath); + + } catch (e) { + throw Exception('Gagal mengunggah surat izin: $e'); + } + } + + Future> submitIzin(Map data) async { + try { + final res = await _supabase.from('leave_request').insert(data).select().single(); + return res; + } catch (e) { + throw Exception('Gagal mengajukan izin: $e'); + } + } +} diff --git a/lib/dashboard/d_guru/database/db_kelas.dart b/lib/dashboard/d_guru/database/db_kelas.dart new file mode 100644 index 0000000..fb117a8 --- /dev/null +++ b/lib/dashboard/d_guru/database/db_kelas.dart @@ -0,0 +1,136 @@ +import 'package:supabase_flutter/supabase_flutter.dart'; +import 'package:shared_preferences/shared_preferences.dart'; + +class DbKelas { + final _supabase = Supabase.instance.client; + + Future>> getMuridForGuru() async { + try { + final prefs = await SharedPreferences.getInstance(); + final userId = prefs.getString('user_id_admin'); + final nik = prefs.getString('guru_nik'); + + if (userId == null || nik == null) { + throw Exception('Sesi guru tidak valid.'); + } + + // 1. Dapatkan Guru dan id_class-nya jika ada + final guruData = await _supabase + .from('guru') + .select('id_tabel, id_class') + .eq('user_id', userId) + .eq('nik', nik) + .maybeSingle(); + + if (guruData == null) { + throw Exception('Data guru tidak ditemukan.'); + } + + final guruIdTabel = guruData['id_tabel']; + final guruIdClass = guruData['id_class']; // Dari tabel guru + + // 2. Kumpulkan semua ID Kelas (UUID) yang terkait dengan guru ini + Set validClassIds = {}; + if (guruIdClass != null) { + validClassIds.add(guruIdClass.toString()); + } + + // Juga cek tabel class_name dimana id_guru = guruIdTabel + final classDataList = await _supabase + .from('class_name') + .select('id_tabel, id_class') + .eq('id_guru', guruIdTabel); + + for (var c in classDataList) { + validClassIds.add(c['id_tabel'].toString()); + } + + if (validClassIds.isEmpty) { + // Guru benar-benar tidak terhubung ke kelas manapun + return []; + } + + // 3. Kumpulkan Murid dengan berbagai kemungkinan relasi + Map> allMurid = {}; + + // Relasi A: Murid yang id_class-nya merujuk ke validClassIds + final muridListA = await _supabase + .from('murid') + .select('id_tabel, nis, nama, gender, id_class, created_at') + .or('status_akun.is.null,status_akun.eq.true') + .inFilter('id_class', validClassIds.toList()); + + for (var m in muridListA) { + allMurid[m['id_tabel'].toString()] = m; + } + + // Relasi B: Membaca dari id_murid di tabel class_name (seperti instruksi Anda) + // Cari baris class_name yang id_tabel-nya ada di validClassIds DAN punya id_murid + final classMuridRows = await _supabase + .from('class_name') + .select('id_murid') + .inFilter('id_tabel', validClassIds.toList()) + .not('id_murid', 'is', null); + + List muridIdsFromClass = classMuridRows + .map((r) => r['id_murid'].toString()) + .where((id) => id != 'null') + .toList(); + + if (muridIdsFromClass.isNotEmpty) { + final muridListB = await _supabase + .from('murid') + .select('id_tabel, nis, nama, gender, id_class, created_at') + .or('status_akun.is.null,status_akun.eq.true') + .inFilter('id_tabel', muridIdsFromClass); + + for (var m in muridListB) { + allMurid[m['id_tabel'].toString()] = m; + } + } + + // Relasi C: Jika class_name menggunakan 'id_class' numeric untuk mengelompokkan + // Coba cari numeric id_class dari classDataList + List numericClassIds = classDataList + .map((c) => c['id_class'] as num?) + .where((id) => id != null) + .cast() + .toList(); + + if (numericClassIds.isNotEmpty) { + final classRowsByNumeric = await _supabase + .from('class_name') + .select('id_murid') + .inFilter('id_class', numericClassIds) + .not('id_murid', 'is', null); + + List extraMuridIds = classRowsByNumeric + .map((r) => r['id_murid'].toString()) + .where((id) => id != 'null') + .toList(); + + if (extraMuridIds.isNotEmpty) { + final muridListC = await _supabase + .from('murid') + .select('id_tabel, nis, nama, gender, id_class, created_at') + .or('status_akun.is.null,status_akun.eq.true') + .inFilter('id_tabel', extraMuridIds); + + for (var m in muridListC) { + allMurid[m['id_tabel'].toString()] = m; + } + } + } + + // Return hasil akhir dan urutkan berdasarkan nama + final finalResult = allMurid.values.toList(); + finalResult.sort((a, b) => (a['nama']?.toString() ?? '').compareTo(b['nama']?.toString() ?? '')); + + return finalResult; + + } catch (e) { + print('DEBUG getMuridForGuru ERROR: $e'); + throw Exception('Gagal memuat murid: $e'); + } + } +} diff --git a/lib/dashboard/d_guru/database/db_murid.dart b/lib/dashboard/d_guru/database/db_murid.dart new file mode 100644 index 0000000..b58c1d6 --- /dev/null +++ b/lib/dashboard/d_guru/database/db_murid.dart @@ -0,0 +1,102 @@ +import 'package:supabase_flutter/supabase_flutter.dart'; + +class DbMurid { + final SupabaseClient _supabase = Supabase.instance.client; + + Future>> getAllMurid() async { + try { + final response = await _supabase + .from('murid') + .select('*, class_name(*)') + .or('status_akun.is.null,status_akun.eq.true'); + + return List>.from(response); + } catch (e) { + try { + final fallbackResponse = await _supabase + .from('murid') + .select('*') + .or('status_akun.is.null,status_akun.eq.true'); + return List>.from(fallbackResponse); + } catch (e2) { + throw Exception('Gagal memuat data murid: $e2'); + } + } + } + + Future addMurid({ + required String nis, + required String nama, + required String userId, + String? idClass, + String? gender, + DateTime? tanggalLahir, + String? alamat, + String? orangTua, + num? noTele, + }) async { + try { + await _supabase.from('murid').insert({ + 'nis': nis, + 'nama': nama, + 'user_id': userId, + 'id_class': idClass, + 'gender': gender, + 'tanggal_lahir': tanggalLahir?.toIso8601String().split('T').first, + 'alamat': alamat, + 'orang_tua': orangTua, + 'no_tele': noTele, + 'status_akun': true, + }); + } catch (e) { + throw Exception('Gagal menambahkan murid: $e'); + } + } + + Future deleteMurid(String idTabel) async { + try { + await _supabase.from('murid').update({ + 'status_akun': false, + 'id_class': null, + }).eq('id_tabel', idTabel); + } catch (e) { + throw Exception('Gagal menghapus murid: $e'); + } + } + + Future>> getKelas() async { + try { + final response = await _supabase.from('class_name').select('*'); + return List>.from(response); + } catch (e) { + throw Exception('Gagal memuat data kelas: $e'); + } + } + + Future updateMurid({ + required String idTabel, + required String nis, + required String nama, + String? idClass, + String? gender, + DateTime? tanggalLahir, + String? alamat, + String? orangTua, + num? noTele, + }) async { + try { + await _supabase.from('murid').update({ + 'nis': nis, + 'nama': nama, + 'id_class': idClass, + 'gender': gender, + 'tanggal_lahir': tanggalLahir?.toIso8601String().split('T').first, + 'alamat': alamat, + 'orang_tua': orangTua, + 'no_tele': noTele, + }).eq('id_tabel', idTabel); + } catch (e) { + throw Exception('Gagal mengupdate profil: $e'); + } + } +} diff --git a/lib/dashboard/d_guru/database/db_namasekolah.dart b/lib/dashboard/d_guru/database/db_namasekolah.dart new file mode 100644 index 0000000..1abfe4e --- /dev/null +++ b/lib/dashboard/d_guru/database/db_namasekolah.dart @@ -0,0 +1,39 @@ +import 'package:supabase_flutter/supabase_flutter.dart'; +import 'package:shared_preferences/shared_preferences.dart'; + +class NamaSekolahService { + static final supabase = Supabase.instance.client; + + /// Mengambil nama sekolah saja (backward-compat). + static Future getNamaSekolah() async { + final info = await getSekolahInfo(); + return info['sekolah']; + } + + /// Mengambil informasi sekolah lengkap: nama sekolah dan wilayah. + /// Mengembalikan Map dengan key 'sekolah' dan 'wilayah'. + static Future> getSekolahInfo() async { + final prefs = await SharedPreferences.getInstance(); + final userId = prefs.getString('user_id_admin'); + if (userId == null) return {'sekolah': null, 'wilayah': null}; + + try { + final response = await supabase + .from('nama_sekolah') + .select('sekolah, wilayah') + .eq('user_id', userId) + .maybeSingle(); + + if (response != null) { + return { + 'sekolah': response['sekolah'] as String?, + 'wilayah': response['wilayah'] as String?, + }; + } + return {'sekolah': null, 'wilayah': null}; + } catch (e) { + print("Error fetching school info: $e"); + return {'sekolah': null, 'wilayah': null}; + } + } +} diff --git a/lib/dashboard/d_guru/database/db_pengumuman.dart b/lib/dashboard/d_guru/database/db_pengumuman.dart new file mode 100644 index 0000000..29ba27b --- /dev/null +++ b/lib/dashboard/d_guru/database/db_pengumuman.dart @@ -0,0 +1,87 @@ +import 'package:supabase_flutter/supabase_flutter.dart'; +import 'package:shared_preferences/shared_preferences.dart'; + +class DbPengumuman { + static final supabase = Supabase.instance.client; + + static Future getUserIdAsync() async { + final prefs = await SharedPreferences.getInstance(); + final ortuId = prefs.getString('user_id_admin'); + if (ortuId != null) return ortuId; + + final id = supabase.auth.currentUser?.id; + if (id != null) return id; + + throw Exception('User belum login'); + } + + // Insert pengumuman baru + static Future> insertPengumuman({ + required String title, + required String tanggalMulai, + required String tanggalSelesai, + String? keterangan, + String? idGuru, + }) async { + // Bersihkan pengumuman yang sudah kadaluarsa + await deleteExpiredPengumuman(); + + final userId = await getUserIdAsync(); + + final data = { + 'user_id': userId, + 'title': title, + 'tanggal_mulai': tanggalMulai, + 'tanggal_selesai': tanggalSelesai, + if (keterangan != null && keterangan.isNotEmpty) 'keterangan': keterangan, + if (idGuru != null && idGuru.isNotEmpty) 'id_guru': idGuru, + }; + + final res = await supabase.from('pengumuman').insert(data).select().single(); + return res; + } + + // Get pengumuman berdasarkan ID + static Future?> getPengumumanById(String id) async { + try { + final res = await supabase.from('pengumuman').select().eq('id_tabel', id).maybeSingle(); + return res; + } catch (e) { + return null; + } + } + + // Hapus otomatis pengumuman yang sudah berakhir (tanggal_selesai < hari ini) + static Future deleteExpiredPengumuman() async { + try { + final now = DateTime.now(); + final todayStr = "${now.year}-${now.month.toString().padLeft(2, '0')}-${now.day.toString().padLeft(2, '0')}"; + + // 1. Dapatkan semua ID pengumuman yang sudah kadaluarsa + final expired = await supabase + .from('pengumuman') + .select('id_tabel') + .lt('tanggal_selesai', todayStr); + + if (expired != null && expired.isNotEmpty) { + final List expiredIds = expired + .map((e) => e['id_tabel'].toString()) + .toList(); + + // 2. Kosongkan referensi id_pengumuman di tabel absen agar tidak melanggar foreign key constraint + await supabase + .from('absen') + .update({'id_pengumuman': null}) + .inFilter('id_pengumuman', expiredIds); + + // 3. Hapus pengumuman tersebut dari tabel pengumuman + await supabase + .from('pengumuman') + .delete() + .inFilter('id_tabel', expiredIds); + } + } catch (e) { + // Silently ignore or log error + } + } +} diff --git a/lib/dashboard/d_guru/database/db_pesan_private.dart b/lib/dashboard/d_guru/database/db_pesan_private.dart new file mode 100644 index 0000000..8c4d3f2 --- /dev/null +++ b/lib/dashboard/d_guru/database/db_pesan_private.dart @@ -0,0 +1,126 @@ +import 'package:flutter/foundation.dart'; +import 'package:supabase_flutter/supabase_flutter.dart'; +import 'package:shared_preferences/shared_preferences.dart'; + +class DbPesanPrivate { + static final supabase = Supabase.instance.client; + + static Future getUserIdAsync() async { + final prefs = await SharedPreferences.getInstance(); + final ortuId = prefs.getString('user_id_admin'); + if (ortuId != null) return ortuId; + + final id = supabase.auth.currentUser?.id; + if (id != null) return id; + + throw Exception('User belum login'); + } + + // Get Admin ID (for the current logged in user) + Future getAdminId() async { + try { + final userId = await getUserIdAsync(); + final res = await supabase + .from('user_admin') + .select('id') + .eq('id', userId) + .single(); + return res['id']?.toString(); + } catch (e) { + if (kDebugMode) print('Get Admin ID Error: $e'); + return null; + } + } + + // Stream chat between Admin and Guru + Stream>> getChatWithGuruStream(String idAdmin, String idGuru) { + return supabase + .from('chat_private') + .stream(primaryKey: ['id_tabel']) + .order('created_at', ascending: true) + .map((data) => data + .where((e) => + (e['pengirim_admin'] == idAdmin && e['penerima_guru'] == idGuru) || + (e['pengirim_guru'] == idGuru && e['penerima_admin'] == idAdmin)) + .map((e) => e as Map) + .toList()); + } + + // Stream chat between Admin and Murid + Stream>> getChatWithMuridStream(String idAdmin, String idMurid) { + return supabase + .from('chat_private') + .stream(primaryKey: ['id_tabel']) + .order('created_at', ascending: true) + .map((data) => data + .where((e) => + (e['pengirim_admin'] == idAdmin && e['penerima_murid'] == idMurid) || + (e['pengirim_murid'] == idMurid && e['penerima_admin'] == idAdmin)) + .map((e) => e as Map) + .toList()); + } + + // Send Message to Guru + Future sendMessageToGuru({ + required String text, + required String idAdmin, + required String idGuru, + }) async { + try { + final userId = await getUserIdAsync(); + await supabase.from('chat_private').insert({ + 'text': text, + 'pengirim_admin': idAdmin, + 'penerima_guru': idGuru, + 'user_id': userId, + }); + } catch (e) { + if (kDebugMode) print('Send Message Error: $e'); + throw Exception('Gagal mengirim pesan: $e'); + } + } + + // Send Message to Murid + Future sendMessageToMurid({ + required String text, + required String idAdmin, + required String idMurid, + }) async { + try { + final userId = await getUserIdAsync(); + await supabase.from('chat_private').insert({ + 'text': text, + 'pengirim_admin': idAdmin, + 'penerima_murid': idMurid, + 'user_id': userId, + }); + } catch (e) { + if (kDebugMode) print('Send Message Error: $e'); + throw Exception('Gagal mengirim pesan: $e'); + } + } + + // Stream chat between Admin and Murid (For Murid App) + Stream>> getChatWithAdminStream(String idMurid, String idAdmin) { + return supabase + .from('chat_private') + .stream(primaryKey: ['id_tabel']) + .order('created_at', ascending: true) + .map((data) => data + .where((e) => + (e['pengirim_admin'] == idAdmin && e['penerima_murid'] == idMurid) || + (e['pengirim_murid'] == idMurid && e['penerima_admin'] == idAdmin)) + .map((e) => e as Map) + .toList()); + } + + // Send message general (For Murid App sending to admin) + Future sendMessage(Map data) async { + try { + await supabase.from('chat_private').insert(data); + } catch (e) { + if (kDebugMode) print('Send Message Error: $e'); + throw Exception('Gagal mengirim pesan: $e'); + } + } +} diff --git a/lib/dashboard/d_guru/database/holiday_service.dart b/lib/dashboard/d_guru/database/holiday_service.dart new file mode 100644 index 0000000..f089dab --- /dev/null +++ b/lib/dashboard/d_guru/database/holiday_service.dart @@ -0,0 +1,82 @@ +import 'dart:convert'; +import 'package:flutter_dotenv/flutter_dotenv.dart'; +import 'package:http/http.dart' as http; +import 'package:intl/intl.dart'; +import 'package:shared_preferences/shared_preferences.dart'; + +class HolidayService { + static const String _cacheKey = 'holiday_cache_2026'; + + // Set of formatted dates "yyyy-MM-dd" + static Set _holidays = {}; + + // Fallback major 2026 Indonesian holidays + static const List _fallbackHolidays = [ + '2026-01-01', // Tahun Baru Masehi + '2026-01-27', // Isra Mikraj Nabi Muhammad SAW + '2026-02-17', // Tahun Baru Imlek + '2026-03-20', // Hari Suci Nyepi + '2026-04-03', // Wafat Yesus Kristus + '2026-04-05', // Kebangkitan Yesus Kristus + '2026-05-01', // Hari Buruh Internasional + '2026-05-14', // Kenaikan Yesus Kristus + '2026-05-27', // Hari Raya Idul Adha + '2026-06-01', // Hari Lahir Pancasila + '2026-06-16', // Tahun Baru Islam + '2026-08-17', // Hari Kemerdekaan RI + '2026-08-25', // Maulid Nabi Muhammad SAW + '2026-12-25', // Hari Raya Natal + ]; + + /// Initialize the holiday service. Loads cached values if available, + /// otherwise uses fallback values, and tries to fetch the latest values from API. + static Future init() async { + // 1. Try to load from local cache first + try { + final prefs = await SharedPreferences.getInstance(); + final cachedJson = prefs.getString(_cacheKey); + if (cachedJson != null) { + final List decoded = jsonDecode(cachedJson); + _holidays = decoded.cast().toSet(); + } + } catch (_) { + // Ignore cache load error + } + + // If cache is empty, load fallback initially + if (_holidays.isEmpty) { + _holidays = _fallbackHolidays.toSet(); + } + + // 2. Fetch from API with a 5-second timeout + try { + final apiUrl = dotenv.env['HOLIDAY_API_URL']; + if (apiUrl != null && apiUrl.isNotEmpty) { + final response = await http.get(Uri.parse(apiUrl)).timeout(const Duration(seconds: 5)); + if (response.statusCode == 200) { + final List data = jsonDecode(response.body); + final Set fetchedHolidays = {}; + for (var item in data) { + if (item is Map && item.containsKey('date')) { + fetchedHolidays.add(item['date'].toString()); + } + } + if (fetchedHolidays.isNotEmpty) { + _holidays = fetchedHolidays; + // Save to cache + final prefs = await SharedPreferences.getInstance(); + await prefs.setString(_cacheKey, jsonEncode(_holidays.toList())); + } + } + } + } catch (_) { + // Failed to fetch or parse, fallback/cache will be used + } + } + + /// Check if a date is a public holiday + static bool isHoliday(DateTime date) { + final dateStr = DateFormat('yyyy-MM-dd').format(date); + return _holidays.contains(dateStr); + } +} diff --git a/lib/dashboard/d_guru/database/storage/doc_pengumuman.dart b/lib/dashboard/d_guru/database/storage/doc_pengumuman.dart new file mode 100644 index 0000000..43030f8 --- /dev/null +++ b/lib/dashboard/d_guru/database/storage/doc_pengumuman.dart @@ -0,0 +1,19 @@ +import 'dart:typed_data'; +import 'package:supabase_flutter/supabase_flutter.dart'; + +class DocPengumuman { + static final supabase = Supabase.instance.client; + + static Future uploadDoc(Uint8List bytes, String title, String ext) async { + try { + // Membersihkan nama file dari karakter tidak valid + final cleanTitle = title.replaceAll(RegExp(r'[^a-zA-Z0-9]'), '_'); + final fileName = '${DateTime.now().millisecondsSinceEpoch}_$cleanTitle.$ext'; + + await supabase.storage.from('pengumuman').uploadBinary(fileName, bytes); + return supabase.storage.from('pengumuman').getPublicUrl(fileName); + } catch (e) { + return null; + } + } +} diff --git a/lib/dashboard/d_guru/database/storage/image_doc.dart b/lib/dashboard/d_guru/database/storage/image_doc.dart new file mode 100644 index 0000000..0704341 --- /dev/null +++ b/lib/dashboard/d_guru/database/storage/image_doc.dart @@ -0,0 +1,56 @@ +import 'dart:io'; +import 'dart:typed_data'; +import 'package:supabase_flutter/supabase_flutter.dart'; +import 'package:shared_preferences/shared_preferences.dart'; + +class ImageDocStorage { + static final supabase = Supabase.instance.client; + + static Future uploadFile(Uint8List bytes, String fileName) async { + try { + final prefs = await SharedPreferences.getInstance(); + final userId = prefs.getString('user_id_admin') ?? supabase.auth.currentUser?.id; + final nip = prefs.getString('guru_nik') ?? 'admin'; + + if (userId == null) return null; + + // path: userid/nip/doc_image/fileName (di dalam bucket chat_file) + final path = '$userId/$nip/doc_image/${DateTime.now().millisecondsSinceEpoch}_$fileName'; + + await supabase.storage.from('chat_file').uploadBinary( + path, + bytes, + fileOptions: const FileOptions(upsert: true), + ); + + return supabase.storage.from('chat_file').getPublicUrl(path); + } catch (e) { + print('Upload Image/Doc Error: $e'); + return null; + } + } + + static Future uploadFileObject(File file, String fileName) async { + try { + final prefs = await SharedPreferences.getInstance(); + final userId = prefs.getString('user_id_admin') ?? supabase.auth.currentUser?.id; + final nip = prefs.getString('guru_nik') ?? 'admin'; + + if (userId == null) return null; + + // path: userid/nip/doc_image/fileName + final path = '$userId/$nip/doc_image/${DateTime.now().millisecondsSinceEpoch}_$fileName'; + + await supabase.storage.from('chat_file').upload( + path, + file, + fileOptions: const FileOptions(upsert: true), + ); + + return supabase.storage.from('chat_file').getPublicUrl(path); + } catch (e) { + print('Upload File Error: $e'); + return null; + } + } +} diff --git a/lib/dashboard/d_guru/function/absen_excel/daftar_absen.dart b/lib/dashboard/d_guru/function/absen_excel/daftar_absen.dart new file mode 100644 index 0000000..b1f52d4 --- /dev/null +++ b/lib/dashboard/d_guru/function/absen_excel/daftar_absen.dart @@ -0,0 +1,928 @@ +import 'package:flutter/material.dart'; +import 'package:apk/dashboard/d_guru/function/absen_excel/download.dart'; +import 'package:apk/dashboard/d_guru/database/db_absensi.dart'; +import 'package:apk/dashboard/d_guru/database/db_namasekolah.dart'; +import 'package:apk/dashboard/d_guru/function/absen_excel/pdf/pdf_export_service.dart'; +import 'package:apk/dashboard/d_guru/function/absen_excel/pdf/export_pdf_button.dart'; +import 'package:apk/dashboard/d_guru/database/holiday_service.dart'; +import 'package:apk/dashboard/d_guru/function/absen_excel/setting_L/pengaturan_absen.dart'; +import 'package:shared_preferences/shared_preferences.dart'; +import 'dart:convert'; + +class DaftarAbsenExcelPage extends StatefulWidget { + final String monthName; + final String yearMonth; + final List> muridList; + final String namaKelas; + final String namaWaliKelas; + final String nipWaliKelas; + final String wilayah; + + const DaftarAbsenExcelPage({ + super.key, + required this.monthName, + required this.yearMonth, + required this.muridList, + this.namaKelas = '-', + this.namaWaliKelas = '-', + this.nipWaliKelas = '-', + this.wilayah = '', + }); + + @override + State createState() => _DaftarAbsenExcelPageState(); +} + +class _DaftarAbsenExcelPageState extends State { + final DbAbsensi _dbAbsensi = DbAbsensi(); + bool _isLoading = true; + String? _errorMessage; + String _namaSekolah = ''; + + // ScrollControllers untuk Scrollbar (wajib saat thumbVisibility: true) + final ScrollController _verticalScrollController = ScrollController(); + final ScrollController _horizontalScrollController = ScrollController(); + + // Struktur data: attendanceMap[nisStr][day] = status + final Map> _attendanceMap = {}; + // Map composite key "${idMurid}_$day" -> idTabel of the record + final Map _absenIdMap = {}; + int _daysInMonth = 31; + + String get _cacheKey => 'cache_absen_${widget.yearMonth}_${widget.namaKelas}'; + + Future _loadFromCache() async { + try { + final prefs = await SharedPreferences.getInstance(); + final cachedDataStr = prefs.getString(_cacheKey); + if (cachedDataStr != null) { + final Map cachedJson = jsonDecode(cachedDataStr); + + // Restore attendance map + final Map rawAttMap = cachedJson['attendanceMap'] ?? {}; + _attendanceMap.clear(); + rawAttMap.forEach((nis, daysObj) { + final Map dayMap = {}; + if (daysObj is Map) { + daysObj.forEach((dayStr, status) { + final dayInt = int.tryParse(dayStr); + if (dayInt != null) { + dayMap[dayInt] = status.toString(); + } + }); + } + _attendanceMap[nis] = dayMap; + }); + + // Restore absen ID map + final Map rawIdMap = cachedJson['absenIdMap'] ?? {}; + _absenIdMap.clear(); + rawIdMap.forEach((key, val) { + _absenIdMap[key] = val.toString(); + }); + + if (mounted) { + setState(() { + _isLoading = false; + }); + } + } + } catch (_) {} + } + + Future _saveToCache() async { + try { + final prefs = await SharedPreferences.getInstance(); + + // Convert attendance map day keys from int to String for JSON encoding + final Map> jsonAttMap = {}; + _attendanceMap.forEach((nis, dayMap) { + final Map strDayMap = {}; + dayMap.forEach((day, status) { + strDayMap[day.toString()] = status; + }); + jsonAttMap[nis] = strDayMap; + }); + + final Map cacheData = { + 'attendanceMap': jsonAttMap, + 'absenIdMap': _absenIdMap, + }; + + await prefs.setString(_cacheKey, jsonEncode(cacheData)); + } catch (_) {} + } + + @override + void initState() { + super.initState(); + _initData(); + } + + @override + void dispose() { + _verticalScrollController.dispose(); + _horizontalScrollController.dispose(); + super.dispose(); + } + + Future _initData() async { + setState(() => _isLoading = _attendanceMap.isEmpty); + await _loadFromCache(); + _syncInBackground(); + } + + Future _syncInBackground() async { + try { + // Ambil nama sekolah + final sekolah = await NamaSekolahService.getNamaSekolah(); + _namaSekolah = sekolah ?? ''; + + int year = DateTime.now().year; + int month = DateTime.now().month; + // Hitung jumlah hari dalam bulan ini + final parts = widget.yearMonth.split('-'); + if (parts.length == 2) { + year = int.parse(parts[0]); + month = int.parse(parts[1]); + _daysInMonth = DateTime(year, month + 1, 0).day; + } + + // Ambil daftar NIS (sebagai String agar tidak crash jika DB mengembalikan String) + final List listNis = widget.muridList + .map((m) => m['nis']?.toString()) + .where((nis) => nis != null && nis.isNotEmpty) + .cast() + .toList(); + + if (listNis.isEmpty) { + if (mounted) { + setState(() => _isLoading = false); + } + return; + } + + // Generate rekap bulan ini jika belum ada (hanya insert baris kosong, tidak overwrite) + // Kirim muridList langsung agar filter per kelas benar + await _dbAbsensi.generateMonthlyRekap(widget.yearMonth, widget.muridList); + + // Kumpulkan id_murid untuk sync kelas ini + final List listIdMuridStr = widget.muridList + .map((mu) => mu['id_tabel']?.toString()) + .where((id) => id != null) + .cast() + .toList(); + + // Sync otomatis saat pertama buka: data dari output_alat/access_bridge langsung masuk ke absen + // (user tidak perlu klik Refresh manual) + if (listIdMuridStr.isNotEmpty) { + await _dbAbsensi.syncMonthlyRekap(widget.yearMonth, listIdMuridStr); + } + + // Tampilkan data rekap + await _loadData(year: year, month: month); + } catch (e) { + if (mounted) { + setState(() { + _errorMessage = 'Gagal memuat rekap tabel: $e'; + _isLoading = false; + }); + } + } + } + + + /// Hanya fetch + tampilkan data dari DB tanpa menjalankan sync. + /// Dipanggil setelah manual update agar perubahan manual tidak tertimpa sync. + Future _loadData({int? year, int? month}) async { + try { + // Tentukan tahun & bulan jika belum ada + int y = year ?? DateTime.now().year; + int m = month ?? DateTime.now().month; + final parts = widget.yearMonth.split('-'); + if (parts.length == 2) { + y = int.parse(parts[0]); + m = int.parse(parts[1]); + _daysInMonth = DateTime(y, m + 1, 0).day; + } + + final List nisList = widget.muridList + .map((mu) => mu['nis']?.toString()) + .where((nis) => nis != null && nis.isNotEmpty) + .cast() + .toList(); + + _absenIdMap.clear(); + + // Inisialisasi map default (key = nis sebagai String) + for (var nisStr in nisList) { + _attendanceMap[nisStr] = {}; + for (int i = 1; i <= _daysInMonth; i++) { + final date = DateTime(y, m, i); + if (date.weekday == DateTime.sunday || HolidayService.isHoliday(date)) { + _attendanceMap[nisStr]![i] = 'L'; + } else { + _attendanceMap[nisStr]![i] = '-'; + } + } + } + + // Kumpulkan id_murid dari muridList untuk query rekap + final List listIdMuridStr = widget.muridList + .map((mu) => mu['id_tabel']?.toString()) + .where((id) => id != null) + .cast() + .toList(); + + final rekapRecords = await _dbAbsensi.getMonthlyRekapData( + widget.yearMonth, listIdMuridStr); + + // Build lookup id_murid -> nis (String) + final Map idMuridToNis = {}; + for (var mu in widget.muridList) { + final id = mu['id_tabel']?.toString(); + final nisStr = mu['nis']?.toString(); + if (id != null && nisStr != null && nisStr.isNotEmpty) { + idMuridToNis[id] = nisStr; + } + } + + // Mapping data rekap ke _attendanceMap + for (var record in rekapRecords) { + final idMurid = record['id_murid']?.toString(); + if (idMurid == null) continue; + final nisStr = idMuridToNis[idMurid]; + if (nisStr == null) continue; + final dateStr = record['date']?.toString(); + if (dateStr == null) continue; + + try { + final date = DateTime.parse(dateStr); + if (date.year != y || date.month != m) continue; + final day = date.day; + + final idTabel = record['id_tabel']?.toString(); + if (idTabel != null) { + _absenIdMap['${idMurid}_$day'] = idTabel; + } + + if (_attendanceMap.containsKey(nisStr) && day >= 1 && day <= _daysInMonth) { + String shortStatus = '-'; + if (record['Null_data']?.toString() == 'Belum Absen') { + shortStatus = '-'; + } else if (record['ket_libur'] != null && record['ket_libur'].toString().isNotEmpty) { + shortStatus = 'L'; + } else if (record['ket_sakit'] != null && record['ket_sakit'].toString().isNotEmpty) { + shortStatus = 'S'; + } else if (record['ket_izin'] != null && record['ket_izin'].toString().isNotEmpty) { + shortStatus = 'I'; + } else if (record['ket_alpha'] != null && record['ket_alpha'].toString().isNotEmpty) { + shortStatus = 'A'; + } else if (record['ket_hadir'] != null && record['ket_hadir'].toString().isNotEmpty) { + shortStatus = 'H'; // Terlambat tetap dihitung sebagai Hadir + } + _attendanceMap[nisStr]![day] = shortStatus; + } + } catch (_) {} + } + + await _saveToCache(); + + if (mounted) { + setState(() => _isLoading = false); + } + } catch (e) { + if (mounted) { + setState(() { + _errorMessage = 'Gagal memuat rekap tabel: $e'; + _isLoading = false; + }); + } + } + } + + Future _syncAndReload() async { + setState(() => _isLoading = true); + try { + // Kumpulkan id_murid untuk sync hanya kelas ini + final List listIdMuridStr = widget.muridList + .map((mu) => mu['id_tabel']?.toString()) + .where((id) => id != null) + .cast() + .toList(); + await _dbAbsensi.syncMonthlyRekap(widget.yearMonth, listIdMuridStr); + await _loadData(); + } catch (e) { + if (mounted) { + setState(() { + _errorMessage = 'Gagal sync data: $e'; + _isLoading = false; + }); + } + } + } + + // Menghitung rekap per siswa + int _countStatus(String nisStr, String shortStatus) { + if (!_attendanceMap.containsKey(nisStr)) return 0; + int count = 0; + for (int i = 1; i <= _daysInMonth; i++) { + final status = _attendanceMap[nisStr]![i] ?? '-'; + if (status.startsWith(shortStatus)) count++; + } + return count; + } + + // Mewarnai sel berdasarkan status + Color _getCellColor(String status) { + if (status.startsWith('H')) return Colors.green.withOpacity(0.2); + if (status.startsWith('S')) return Colors.blue.withOpacity(0.2); + if (status.startsWith('I')) return Colors.orange.withOpacity(0.2); + if (status.startsWith('A')) return Colors.red.withOpacity(0.2); + if (status.startsWith('T')) return Colors.purple.withOpacity(0.2); + if (status.startsWith('L')) return Colors.red.withOpacity(0.15); + return Colors.transparent; + } + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: Colors.white, + appBar: AppBar( + titleSpacing: 0, + title: Text('Rekap ${widget.monthName}'), + titleTextStyle: const TextStyle( + fontFamily: 'Inter', + fontSize: 16, + fontWeight: FontWeight.w700, + color: Colors.white, + ), + backgroundColor: const Color(0xFF2563EB), + elevation: 0, + iconTheme: const IconThemeData(color: Colors.white), + actions: [ + IconButton( + icon: const Icon(Icons.edit, color: Colors.white), + tooltip: 'Pembaruan Massal', + onPressed: () { + final allStudents = widget.muridList + .map((m) => m['id_tabel']?.toString()) + .whereType() + .toList(); + final allDays = List.generate(_daysInMonth, (i) => i + 1); + + showModalBottomSheet( + context: context, + backgroundColor: Colors.transparent, + isScrollControlled: true, + builder: (context) => UpdateAbsenBottomSheet( + muridList: widget.muridList, + daysInMonth: _daysInMonth, + yearMonth: widget.yearMonth, + absenIdMap: _absenIdMap, + initialSelectedStudentIds: allStudents, + initialSelectedDays: allDays, + onUpdated: _loadData, + ), + ); + }, + ), + IconButton( + icon: const Icon(Icons.refresh, color: Colors.white), + tooltip: 'Sync Data', + onPressed: _isLoading ? null : _syncAndReload, + ), + ], + ), + body: _isLoading + ? const Center(child: CircularProgressIndicator()) + : _errorMessage != null + ? Center( + child: Padding( + padding: const EdgeInsets.all(16), + child: Text(_errorMessage!, style: const TextStyle(color: Colors.red, fontFamily: 'Inter')), + ), + ) + : Column( + children: [ + // Kop Judul di dalam halaman (seperti foto Excel) + Container( + width: double.infinity, + padding: const EdgeInsets.symmetric(vertical: 20), + decoration: const BoxDecoration( + border: Border(bottom: BorderSide(color: Colors.black12, width: 1)), + ), + child: Column( + children: [ + if (_namaSekolah.isNotEmpty) ...[ + Text( + _namaSekolah.toUpperCase(), + textAlign: TextAlign.center, + style: const TextStyle( + fontFamily: 'Inter', + fontSize: 15, + fontWeight: FontWeight.bold, + letterSpacing: 1.2, + ), + ), + const SizedBox(height: 4), + ], + const Text( + 'ABSENSI SISWA', + style: TextStyle( + fontFamily: 'Inter', + fontSize: 18, + fontWeight: FontWeight.bold, + letterSpacing: 1.5, + ), + ), + const SizedBox(height: 8), + Text( + 'BULAN : ${widget.monthName.toUpperCase()}', + style: const TextStyle( + fontFamily: 'Inter', + fontSize: 14, + fontWeight: FontWeight.w600, + letterSpacing: 1.0, + ), + ), + ], + ), + ), + + // Info Kelas & Jumlah Murid (kiri atas tabel) + Padding( + padding: const EdgeInsets.fromLTRB(16, 12, 16, 0), + child: Align( + alignment: Alignment.centerLeft, + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + _buildInfoRow('Kelas', widget.namaKelas), + const SizedBox(height: 4), + _buildInfoRow('Jumlah Murid', '${widget.muridList.length} Siswa'), + ], + ), + ), + ), + + // Tombol Download Excel & PDF + Padding( + padding: const EdgeInsets.fromLTRB(16, 12, 16, 8), + child: Row( + children: [ + Expanded( + child: ElevatedButton.icon( + onPressed: _isLoading ? null : _downloadExcel, + style: ElevatedButton.styleFrom( + backgroundColor: const Color(0xFF16A34A), // Hijau untuk Excel + padding: const EdgeInsets.symmetric(vertical: 12), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(8), + ), + ), + icon: const Icon(Icons.grid_on, color: Colors.white, size: 18), + label: const Text( + 'Download Excel', + style: TextStyle( + color: Colors.white, + fontWeight: FontWeight.bold, + fontSize: 13, + fontFamily: 'Inter', + ), + ), + ), + ), + const SizedBox(width: 12), + Expanded( + child: ExportPdfButton( + onExport: _downloadPdf, + style: ExportButtonStyle.elevated, + ), + ), + ], + ), + ), + + // Tabel Data + Expanded(child: _buildExcelTable()), + + // Area Tanda Tangan Wali Kelas + _buildSignatureSection(), + ], + ), + ); + } + + Widget _buildInfoRow(String label, String value) { + return Row( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + SizedBox( + width: 110, + child: Text( + label, + style: const TextStyle( + fontFamily: 'Inter', + fontSize: 13, + fontWeight: FontWeight.w600, + color: Color(0xFF1E293B), + ), + ), + ), + const Text( + ': ', + style: TextStyle( + fontFamily: 'Inter', + fontSize: 13, + fontWeight: FontWeight.w600, + color: Color(0xFF1E293B), + ), + ), + Text( + value, + style: const TextStyle( + fontFamily: 'Inter', + fontSize: 13, + color: Color(0xFF334155), + ), + ), + ], + ); + } + + Widget _buildSignatureSection() { + final now = DateTime.now(); + final tanggal = + '${now.day.toString().padLeft(2, '0')}-${now.month.toString().padLeft(2, '0')}-${now.year}'; + final lokasiTanggal = + widget.wilayah.isNotEmpty ? '${widget.wilayah}, $tanggal' : tanggal; + + return Container( + padding: const EdgeInsets.fromLTRB(16, 16, 16, 20), + decoration: const BoxDecoration( + border: Border(top: BorderSide(color: Colors.black12, width: 1)), + ), + child: Align( + alignment: Alignment.centerRight, + child: SizedBox( + width: 200, + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + lokasiTanggal, + style: const TextStyle( + fontFamily: 'Inter', + fontSize: 13, + color: Color(0xFF334155), + ), + ), + const SizedBox(height: 2), + const Text( + 'Wali Kelas,', + style: TextStyle( + fontFamily: 'Inter', + fontSize: 13, + color: Color(0xFF334155), + ), + ), + const SizedBox(height: 60), // Ruang tanda tangan + Text( + widget.namaWaliKelas, + style: const TextStyle( + fontFamily: 'Inter', + fontSize: 13, + fontWeight: FontWeight.w600, + color: Color(0xFF1E293B), + ), + ), + const SizedBox(height: 4), + Container( + width: 200, + height: 1, + color: Colors.black54, + ), + const SizedBox(height: 4), + Text( + 'NIP. ${widget.nipWaliKelas}', + style: const TextStyle( + fontFamily: 'Inter', + fontSize: 12, + color: Color(0xFF334155), + ), + ), + ], + ), + ), + ), + ); + } + + Widget _buildExcelTable() { + if (widget.muridList.isEmpty) { + return const Center(child: Text('Tidak ada data murid.', style: TextStyle(fontFamily: 'Inter'))); + } + + return Scrollbar( + thumbVisibility: true, + controller: _verticalScrollController, + child: SingleChildScrollView( + controller: _verticalScrollController, + scrollDirection: Axis.vertical, + child: Scrollbar( + thumbVisibility: true, + controller: _horizontalScrollController, + child: SingleChildScrollView( + controller: _horizontalScrollController, + scrollDirection: Axis.horizontal, + child: Padding( + padding: const EdgeInsets.all(16.0), + child: _buildRawDataTable(), + ), + ), + ), + ), + ); + } + + Widget _buildRawDataTable() { + if (widget.muridList.isEmpty) { + return const Padding( + padding: EdgeInsets.symmetric(vertical: 20), + child: Center(child: Text('Tidak ada data murid.', style: TextStyle(fontFamily: 'Inter', color: Colors.black))), + ); + } + + return DataTable( + showCheckboxColumn: false, + headingRowColor: MaterialStateProperty.all(const Color(0xFFF1F5F9)), + columnSpacing: 16, + horizontalMargin: 8, + dataRowMinHeight: 35, + dataRowMaxHeight: 45, + headingRowHeight: 45, + border: TableBorder.all(color: Colors.grey.withOpacity(0.5), width: 1), + columns: [ + const DataColumn(label: Text('NO', style: TextStyle(fontWeight: FontWeight.bold, fontFamily: 'Inter', fontSize: 13))), + const DataColumn(label: Text('NIS', style: TextStyle(fontWeight: FontWeight.bold, fontFamily: 'Inter', fontSize: 13))), + const DataColumn(label: Text('NAMA SISWA', style: TextStyle(fontWeight: FontWeight.bold, fontFamily: 'Inter', fontSize: 13))), + const DataColumn(label: Text('L/P', style: TextStyle(fontWeight: FontWeight.bold, fontFamily: 'Inter', fontSize: 13))), + + // Kolom Tanggal 1 s/d 31 (Klik angka tanggal di header untuk pembaruan massal kolom/hari tersebut) + ...List.generate(_daysInMonth, (i) { + final d = i + 1; + return DataColumn( + label: InkWell( + onTap: () { + final allStudents = widget.muridList + .map((m) => m['id_tabel']?.toString()) + .whereType() + .toList(); + + showModalBottomSheet( + context: context, + backgroundColor: Colors.transparent, + isScrollControlled: true, + builder: (context) => UpdateAbsenBottomSheet( + muridList: widget.muridList, + daysInMonth: _daysInMonth, + yearMonth: widget.yearMonth, + absenIdMap: _absenIdMap, + initialSelectedStudentIds: allStudents, + initialSelectedDays: [d], + onUpdated: _loadData, + ), + ); + }, + child: Container( + width: 22, + alignment: Alignment.center, + padding: const EdgeInsets.symmetric(vertical: 8), + child: Text('$d', style: const TextStyle(fontWeight: FontWeight.bold, fontFamily: 'Inter', fontSize: 13)), + ), + ), + ); + }), + + // Kolom Rekap (Keterangan) + const DataColumn( + label: SizedBox( + width: 22, + child: Center( + child: Text('S', style: TextStyle(fontWeight: FontWeight.bold, fontFamily: 'Inter', fontSize: 13, color: Colors.blue)), + ), + ), + ), + const DataColumn( + label: SizedBox( + width: 22, + child: Center( + child: Text('I', style: TextStyle(fontWeight: FontWeight.bold, fontFamily: 'Inter', fontSize: 13, color: Colors.orange)), + ), + ), + ), + const DataColumn( + label: SizedBox( + width: 22, + child: Center( + child: Text('A', style: TextStyle(fontWeight: FontWeight.bold, fontFamily: 'Inter', fontSize: 13, color: Colors.red)), + ), + ), + ), + ], + rows: List.generate(widget.muridList.length, (index) { + final m = widget.muridList[index]; + final nisStr = m['nis']?.toString(); + final idMurid = m['id_tabel']?.toString(); + + // Cells standar (Identitas - Klik nama murid untuk update massal seluruh bulan/baris) + final cells = [ + DataCell(Text('${index + 1}', style: const TextStyle(fontFamily: 'Inter', fontSize: 12))), + DataCell(Text(nisStr ?? '-', style: const TextStyle(fontFamily: 'Inter', fontSize: 12))), + DataCell( + InkWell( + onTap: () { + if (idMurid == null) return; + final allDays = List.generate(_daysInMonth, (i) => i + 1); + + showModalBottomSheet( + context: context, + backgroundColor: Colors.transparent, + isScrollControlled: true, + builder: (context) => UpdateAbsenBottomSheet( + muridList: widget.muridList, + daysInMonth: _daysInMonth, + yearMonth: widget.yearMonth, + absenIdMap: _absenIdMap, + initialSelectedStudentIds: [idMurid], + initialSelectedDays: allDays, + onUpdated: _loadData, + ), + ); + }, + child: Row( + mainAxisSize: MainAxisSize.min, + children: [ + Text( + m['nama']?.toString() ?? '-', + style: const TextStyle( + fontFamily: 'Inter', + fontSize: 12, + fontWeight: FontWeight.w600, + color: Color(0xFF2563EB), + decoration: TextDecoration.underline, + ), + ), + const SizedBox(width: 4), + const Icon(Icons.edit, size: 10, color: Color(0xFF2563EB)), + ], + ), + ), + ), + DataCell( + Center( + child: Text( + m['gender']?.toString() ?? '-', + style: const TextStyle(fontFamily: 'Inter', fontSize: 12), + ), + ), + ), + ]; + + // Cells harian 1-31 + for (int d = 1; d <= _daysInMonth; d++) { + String status = '-'; + if (nisStr != null && _attendanceMap.containsKey(nisStr)) { + status = _attendanceMap[nisStr]![d] ?? '-'; + } + final idTabel = idMurid != null ? _absenIdMap['${idMurid}_$d'] : null; + + cells.add(DataCell( + InkWell( + onTap: idTabel == null || idMurid == null + ? null + : () { + showModalBottomSheet( + context: context, + backgroundColor: Colors.transparent, + isScrollControlled: true, + builder: (context) => UpdateAbsenBottomSheet( + muridList: widget.muridList, + daysInMonth: _daysInMonth, + yearMonth: widget.yearMonth, + absenIdMap: _absenIdMap, + initialSelectedStudentIds: [idMurid], + initialSelectedDays: [d], + onUpdated: _loadData, + ), + ); + }, + child: Container( + alignment: Alignment.center, + width: double.infinity, + height: double.infinity, + color: _getCellColor(status), + child: Text( + status, + style: TextStyle( + fontWeight: status != '-' ? FontWeight.bold : FontWeight.normal, + fontFamily: 'Inter', + fontSize: 12, + ), + ), + ), + ) + )); + } + + // Cells rekapitulasi akhir + String sVal = nisStr != null ? _countStatus(nisStr, 'S').toString() : '-'; + String iVal = nisStr != null ? _countStatus(nisStr, 'I').toString() : '-'; + String aVal = nisStr != null ? _countStatus(nisStr, 'A').toString() : '-'; + + cells.add(DataCell(Container(color: Colors.blue.withOpacity(0.1), alignment: Alignment.center, width: double.infinity, height: double.infinity, child: Text(sVal, style: const TextStyle(fontWeight: FontWeight.bold, fontFamily: 'Inter'))))); + cells.add(DataCell(Container(color: Colors.orange.withOpacity(0.1), alignment: Alignment.center, width: double.infinity, height: double.infinity, child: Text(iVal, style: const TextStyle(fontWeight: FontWeight.bold, fontFamily: 'Inter'))))); + cells.add(DataCell(Container(color: Colors.red.withOpacity(0.1), alignment: Alignment.center, width: double.infinity, height: double.infinity, child: Text(aVal, style: const TextStyle(fontWeight: FontWeight.bold, fontFamily: 'Inter'))))); + + return DataRow( + cells: cells, + ); + }), + ); + } + + Future _downloadExcel() async { + await AbsensiExcelDownloader.downloadExcel( + context: context, + namaSekolah: _namaSekolah, + monthName: widget.monthName, + yearMonth: widget.yearMonth, + namaKelas: widget.namaKelas, + namaWaliKelas: widget.namaWaliKelas, + nipWaliKelas: widget.nipWaliKelas, + wilayah: widget.wilayah, + muridList: widget.muridList, + daysInMonth: _daysInMonth, + attendanceMap: _attendanceMap, + countStatus: _countStatus, + ); + } + + Future _downloadPdf() async { + try { + final fullPath = await PdfExportService.absensi( + namaSekolah: _namaSekolah, + monthName: widget.monthName, + yearMonth: widget.yearMonth, + namaKelas: widget.namaKelas, + namaWaliKelas: widget.namaWaliKelas, + nipWaliKelas: widget.nipWaliKelas, + wilayah: widget.wilayah, + muridList: widget.muridList, + daysInMonth: _daysInMonth, + attendanceMap: _attendanceMap, + countStatus: _countStatus, + ); + + if (mounted) { + showDialog( + context: context, + builder: (ctx) => AlertDialog( + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(16)), + title: const Row( + children: [ + Icon(Icons.check_circle, color: Colors.green, size: 28), + SizedBox(width: 10), + Expanded( + child: Text( + 'PDF Berhasil Didownload', + style: TextStyle(fontFamily: 'Inter', fontWeight: FontWeight.bold, fontSize: 16), + ), + ), + ], + ), + content: Column( + mainAxisSize: MainAxisSize.min, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text('File: ${fullPath.split('/').last}', style: const TextStyle(fontFamily: 'Inter', fontSize: 13, fontWeight: FontWeight.w500)), + const SizedBox(height: 8), + const Text('Lokasi Penyimpanan:', style: TextStyle(fontFamily: 'Inter', fontSize: 11, color: Colors.grey)), + Text(fullPath, style: const TextStyle(fontFamily: 'Inter', fontSize: 11, color: Colors.black87)), + ], + ), + actions: [ + TextButton( + onPressed: () => Navigator.pop(ctx), + child: const Text('Tutup', style: TextStyle(fontFamily: 'Inter', fontWeight: FontWeight.bold)), + ), + ], + ), + ); + } + } catch (e) { + rethrow; + } + } +} diff --git a/lib/dashboard/d_guru/function/absen_excel/download.dart b/lib/dashboard/d_guru/function/absen_excel/download.dart new file mode 100644 index 0000000..a7d1924 --- /dev/null +++ b/lib/dashboard/d_guru/function/absen_excel/download.dart @@ -0,0 +1,429 @@ +import 'dart:io'; +import 'package:flutter/material.dart' hide Border, BorderStyle; +import 'package:excel/excel.dart'; +import 'package:apk/dashboard/d_guru/function/absen_excel/storage_helper.dart'; +import 'package:apk/dashboard/d_guru/database/holiday_service.dart'; + +class AbsensiExcelDownloader { + static Future downloadExcel({ + required BuildContext context, + required String namaSekolah, + required String monthName, + required String yearMonth, + required String namaKelas, + required String namaWaliKelas, + required String nipWaliKelas, + required String wilayah, + required List> muridList, + required int daysInMonth, + required Map> attendanceMap, + required int Function(String, String) countStatus, + }) async { + try { + showDialog( + context: context, + barrierDismissible: false, + builder: (context) => const Center(child: CircularProgressIndicator()), + ); + + int year = DateTime.now().year; + int month = DateTime.now().month; + final parts = yearMonth.split('-'); + if (parts.length == 2) { + year = int.parse(parts[0]); + month = int.parse(parts[1]); + } + + final excel = Excel.createExcel(); + final sheet = excel['Rekap Absensi']; + excel.setDefaultSheet('Rekap Absensi'); + + // Kop + if (namaSekolah.isNotEmpty) { + sheet.appendRow([TextCellValue(namaSekolah.toUpperCase())]); + } + sheet.appendRow([TextCellValue('ABSENSI SISWA')]); + sheet.appendRow([TextCellValue('BULAN : ${monthName.toUpperCase()}')]); + sheet.appendRow([TextCellValue('')]); + + sheet.appendRow([TextCellValue('Kelas'), TextCellValue(':'), TextCellValue(namaKelas)]); + sheet.appendRow([TextCellValue('Jumlah Murid'), TextCellValue(':'), TextCellValue('${muridList.length} Siswa')]); + sheet.appendRow([TextCellValue('')]); + + // Header Table + List headerRow1 = [ + TextCellValue('NO'), + TextCellValue('NIS'), + TextCellValue('NAMA SISWA'), + TextCellValue('TANGGAL'), + ]; + for (int i = 2; i <= daysInMonth; i++) { + headerRow1.add(TextCellValue('')); + } + headerRow1.add(TextCellValue('KET')); + for (int i = 1; i < 4; i++) { + headerRow1.add(TextCellValue('')); + } + sheet.appendRow(headerRow1); + + List headerRow2 = [ + TextCellValue(''), + TextCellValue(''), + TextCellValue(''), + ]; + for (int i = 1; i <= daysInMonth; i++) { + headerRow2.add(IntCellValue(i)); + } + headerRow2.addAll([ + TextCellValue('H'), + TextCellValue('I'), + TextCellValue('S'), + TextCellValue('A'), + ]); + sheet.appendRow(headerRow2); + + // Merge cells for header + sheet.merge(CellIndex.indexByColumnRow(columnIndex: 0, rowIndex: 7), CellIndex.indexByColumnRow(columnIndex: 0, rowIndex: 8)); + sheet.merge(CellIndex.indexByColumnRow(columnIndex: 1, rowIndex: 7), CellIndex.indexByColumnRow(columnIndex: 1, rowIndex: 8)); + sheet.merge(CellIndex.indexByColumnRow(columnIndex: 2, rowIndex: 7), CellIndex.indexByColumnRow(columnIndex: 2, rowIndex: 8)); + sheet.merge(CellIndex.indexByColumnRow(columnIndex: 3, rowIndex: 7), CellIndex.indexByColumnRow(columnIndex: 3 + daysInMonth - 1, rowIndex: 7)); + sheet.merge(CellIndex.indexByColumnRow(columnIndex: 3 + daysInMonth, rowIndex: 7), CellIndex.indexByColumnRow(columnIndex: 3 + daysInMonth + 3, rowIndex: 7)); + + // Data Rows + for (int index = 0; index < muridList.length; index++) { + final m = muridList[index]; + final nisStr = m['nis']?.toString(); + + List row = [ + IntCellValue(index + 1), + nisStr != null ? TextCellValue(nisStr) : TextCellValue('-'), + TextCellValue(m['nama']?.toString() ?? '-'), + ]; + + for (int d = 1; d <= daysInMonth; d++) { + String status = '-'; + if (nisStr != null && attendanceMap.containsKey(nisStr)) { + final studentMap = attendanceMap[nisStr]!; + status = studentMap[d]?.toString() ?? studentMap[d.toString()]?.toString() ?? '-'; + } + row.add(TextCellValue(status)); + } + + String hVal = nisStr != null ? countStatus(nisStr, 'H').toString() : '-'; + String iVal = nisStr != null ? countStatus(nisStr, 'I').toString() : '-'; + String sVal = nisStr != null ? countStatus(nisStr, 'S').toString() : '-'; + String aVal = nisStr != null ? countStatus(nisStr, 'A').toString() : '-'; + + row.addAll([ + TextCellValue(hVal), + TextCellValue(iVal), + TextCellValue(sVal), + TextCellValue(aVal), + ]); + + sheet.appendRow(row); + } + + // Signature + int totalColumns = 3 + daysInMonth + 4; + int signColumnIndex = 3 + daysInMonth - 2; + + final now = DateTime.now(); + final tanggal = + '${now.day.toString().padLeft(2, '0')}-${now.month.toString().padLeft(2, '0')}-${now.year}'; + final lokasiTanggal = + wilayah.isNotEmpty ? '$wilayah, $tanggal' : tanggal; + final nipText = 'NIP. $nipWaliKelas'; + + List emptyRow = + List.generate(totalColumns, (index) => TextCellValue('')); + + // Baris 1: wilayah + tanggal + List signRow0 = + List.generate(totalColumns, (index) => TextCellValue('')); + signRow0[signColumnIndex] = TextCellValue(lokasiTanggal); + + // Baris 2: jabatan + List signRow1 = + List.generate(totalColumns, (index) => TextCellValue('')); + signRow1[signColumnIndex] = TextCellValue('Wali Kelas,'); + + // Baris nama (bold + underline) — muncul setelah ruang tanda tangan + List signRow2 = + List.generate(totalColumns, (index) => TextCellValue('')); + signRow2[signColumnIndex] = TextCellValue(namaWaliKelas); + + // Baris NIP + List signRow3 = + List.generate(totalColumns, (index) => TextCellValue('')); + signRow3[signColumnIndex] = TextCellValue(nipText); + + sheet.appendRow(emptyRow); // pemisah dari tabel + sheet.appendRow(signRow0); // wilayah, tanggal + sheet.appendRow(signRow1); // Wali Kelas, + sheet.appendRow(emptyRow); // ruang tanda tangan + sheet.appendRow(emptyRow); + sheet.appendRow(emptyRow); + sheet.appendRow(signRow2); // nama (di atas garis — bold) + sheet.appendRow(signRow3); // NIP + + // ========================= + // STYLE & BORDERS + // ========================= + + final sideBorder = Border( + borderStyle: BorderStyle.Thin, + borderColorHex: ExcelColor.black, + ); + + final kopStyle = CellStyle( + bold: true, + horizontalAlign: HorizontalAlign.Center, + verticalAlign: VerticalAlign.Center, + ); + + final headerStyle = CellStyle( + bold: true, + horizontalAlign: HorizontalAlign.Center, + verticalAlign: VerticalAlign.Center, + leftBorder: sideBorder, + rightBorder: sideBorder, + topBorder: sideBorder, + bottomBorder: sideBorder, + textWrapping: TextWrapping.WrapText, + ); + + final dataCenterStyle = CellStyle( + horizontalAlign: HorizontalAlign.Center, + verticalAlign: VerticalAlign.Center, + leftBorder: sideBorder, + rightBorder: sideBorder, + topBorder: sideBorder, + bottomBorder: sideBorder, + textWrapping: TextWrapping.WrapText, + ); + + final sundayStyle = CellStyle( + fontColorHex: ExcelColor.red, + backgroundColorHex: ExcelColor.red100, + horizontalAlign: HorizontalAlign.Center, + verticalAlign: VerticalAlign.Center, + leftBorder: sideBorder, + rightBorder: sideBorder, + topBorder: sideBorder, + bottomBorder: sideBorder, + textWrapping: TextWrapping.WrapText, + ); + + final dataLeftStyle = CellStyle( + horizontalAlign: HorizontalAlign.Left, + verticalAlign: VerticalAlign.Center, + leftBorder: sideBorder, + rightBorder: sideBorder, + topBorder: sideBorder, + bottomBorder: sideBorder, + textWrapping: TextWrapping.WrapText, + ); + + // Merge Kop (Baris 1, 2, 3) + sheet.merge(CellIndex.indexByColumnRow(columnIndex: 0, rowIndex: 0), CellIndex.indexByColumnRow(columnIndex: totalColumns - 1, rowIndex: 0)); + sheet.merge(CellIndex.indexByColumnRow(columnIndex: 0, rowIndex: 1), CellIndex.indexByColumnRow(columnIndex: totalColumns - 1, rowIndex: 1)); + sheet.merge(CellIndex.indexByColumnRow(columnIndex: 0, rowIndex: 2), CellIndex.indexByColumnRow(columnIndex: totalColumns - 1, rowIndex: 2)); + + // Apply Kop Style + for (int i = 0; i < 3; i++) { + sheet.cell(CellIndex.indexByColumnRow(columnIndex: 0, rowIndex: i)).cellStyle = kopStyle; + } + + // Apply Header Table Style (baris 8 dan 9 -> row index 7 dan 8) + for (int r = 7; r <= 8; r++) { + for (int c = 0; c < totalColumns; c++) { + sheet.cell(CellIndex.indexByColumnRow(columnIndex: c, rowIndex: r)).cellStyle = headerStyle; + } + } + + // Override Sunday & Holiday Headers (Row index 8) + for (int i = 1; i <= daysInMonth; i++) { + final date = DateTime(year, month, i); + if (date.weekday == DateTime.sunday || HolidayService.isHoliday(date)) { + int columnIndex = 3 + i - 1; + sheet.cell(CellIndex.indexByColumnRow(columnIndex: columnIndex, rowIndex: 8)).cellStyle = CellStyle( + bold: true, + fontColorHex: ExcelColor.red, + backgroundColorHex: ExcelColor.red100, + horizontalAlign: HorizontalAlign.Center, + verticalAlign: VerticalAlign.Center, + leftBorder: sideBorder, + rightBorder: sideBorder, + topBorder: sideBorder, + bottomBorder: sideBorder, + ); + } + } + + // Apply Data Rows Style (mulai dari row index 9) + int startDataRow = 9; + for (int i = 0; i < muridList.length; i++) { + int r = startDataRow + i; + + // NO + sheet.cell(CellIndex.indexByColumnRow(columnIndex: 0, rowIndex: r)).cellStyle = dataCenterStyle; + // NIS + sheet.cell(CellIndex.indexByColumnRow(columnIndex: 1, rowIndex: r)).cellStyle = dataCenterStyle; + // NAMA SISWA + sheet.cell(CellIndex.indexByColumnRow(columnIndex: 2, rowIndex: r)).cellStyle = dataLeftStyle; + + // Attendance & Rekap (H, I, S, A) + for (int c = 3; c < totalColumns; c++) { + bool isSundayOrHoliday = false; + if (c < 3 + daysInMonth) { + int d = c - 2; + final date = DateTime(year, month, d); + isSundayOrHoliday = date.weekday == DateTime.sunday || HolidayService.isHoliday(date); + } + + if (isSundayOrHoliday) { + sheet.cell(CellIndex.indexByColumnRow(columnIndex: c, rowIndex: r)).cellStyle = sundayStyle; + } else { + sheet.cell(CellIndex.indexByColumnRow(columnIndex: c, rowIndex: r)).cellStyle = dataCenterStyle; + } + } + } + + // Apply Signature Style + final signNormalStyle = CellStyle( + horizontalAlign: HorizontalAlign.Left, + verticalAlign: VerticalAlign.Center, + fontSize: 11, + ); + + final signNameStyle = CellStyle( + bold: true, + underline: Underline.Single, + horizontalAlign: HorizontalAlign.Left, + verticalAlign: VerticalAlign.Center, + fontSize: 11, + ); + + int signStartRow = startDataRow + muridList.length; + // +0: empty separator + // +1: wilayah, tanggal + // +2: Wali Kelas, + // +3,+4,+5: empty (signature space) + // +6: nama (bold+underline) + // +7: NIP + sheet.cell(CellIndex.indexByColumnRow(columnIndex: signColumnIndex, rowIndex: signStartRow + 1)).cellStyle = signNormalStyle; + sheet.cell(CellIndex.indexByColumnRow(columnIndex: signColumnIndex, rowIndex: signStartRow + 2)).cellStyle = signNormalStyle; + sheet.cell(CellIndex.indexByColumnRow(columnIndex: signColumnIndex, rowIndex: signStartRow + 6)).cellStyle = signNameStyle; + sheet.cell(CellIndex.indexByColumnRow(columnIndex: signColumnIndex, rowIndex: signStartRow + 7)).cellStyle = signNormalStyle; + + // ========================= + // UKURAN KOLOM + // ========================= + + sheet.setColumnWidth(0, 6); // NO + sheet.setColumnWidth(1, 15); // NIS + sheet.setColumnWidth(2, 30); // NAMA SISWA + + // Tanggal (Harian) + for (int d = 1; d <= daysInMonth; d++) { + int columnIndex = 3 + d - 1; + bool hasTime = false; + for (var m in muridList) { + final nisStr = m['nis']?.toString(); + if (nisStr != null && attendanceMap.containsKey(nisStr)) { + final status = attendanceMap[nisStr]![d] ?? '-'; + if (status.length > 1) { + hasTime = true; + break; + } + } + } + sheet.setColumnWidth(columnIndex, hasTime ? 15 : 5); + } + + // Rekap columns (H, I, S, A) + for (int i = 3 + daysInMonth; i < totalColumns; i++) { + sheet.setColumnWidth(i, 5); + } + + // ========================= + // SAVE FILE + // ========================= + + final downloadDir = await StorageHelper.getDownloadDirectoryPath(); + final baseName = 'Absensi_${namaKelas.replaceAll('/', '_')}_${monthName.replaceAll(' ', '_')}'; + + var finalPath = StorageHelper.getUniqueFilePath(downloadDir, baseName, 'xlsx'); + var finalFileName = finalPath.split('/').last; + + final fileBytes = excel.save(); + + if (fileBytes != null) { + try { + final file = File(finalPath); + file.createSync(recursive: true); + file.writeAsBytesSync(fileBytes); + } catch (e) { + final nowTime = DateTime.now(); + final timestamp = '${nowTime.hour.toString().padLeft(2, '0')}${nowTime.minute.toString().padLeft(2, '0')}${nowTime.second.toString().padLeft(2, '0')}'; + final fallbackFileName = '${baseName}_$timestamp.xlsx'; + finalPath = '$downloadDir/$fallbackFileName'; + finalFileName = fallbackFileName; + final file = File(finalPath); + file.createSync(recursive: true); + file.writeAsBytesSync(fileBytes); + } + } + + if (context.mounted) { + Navigator.pop(context); // Tutup loading dialog + + showDialog( + context: context, + builder: (ctx) => AlertDialog( + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(16)), + title: const Row( + children: [ + Icon(Icons.check_circle, color: Colors.green, size: 28), + SizedBox(width: 10), + Expanded( + child: Text( + 'Excel Berhasil Didownload', + style: TextStyle(fontFamily: 'Inter', fontWeight: FontWeight.bold, fontSize: 16), + ), + ), + ], + ), + content: Column( + mainAxisSize: MainAxisSize.min, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text('File: $finalFileName', style: const TextStyle(fontFamily: 'Inter', fontSize: 13, fontWeight: FontWeight.w500)), + const SizedBox(height: 8), + const Text('Lokasi Penyimpanan:', style: TextStyle(fontFamily: 'Inter', fontSize: 11, color: Colors.grey)), + Text(finalPath, style: const TextStyle(fontFamily: 'Inter', fontSize: 11, color: Colors.black87)), + ], + ), + actions: [ + TextButton( + onPressed: () => Navigator.pop(ctx), + child: const Text('Tutup', style: TextStyle(fontFamily: 'Inter', fontWeight: FontWeight.bold)), + ), + ], + ), + ); + } + } catch (e) { + if (context.mounted) { + Navigator.pop(context); + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + content: Text('Gagal menyimpan Excel: $e'), + backgroundColor: Colors.red.shade600, + ), + ); + } + } + } +} diff --git a/lib/dashboard/d_guru/function/absen_excel/pdf/absen_baru_pdf.dart b/lib/dashboard/d_guru/function/absen_excel/pdf/absen_baru_pdf.dart new file mode 100644 index 0000000..0c0a10e --- /dev/null +++ b/lib/dashboard/d_guru/function/absen_excel/pdf/absen_baru_pdf.dart @@ -0,0 +1,184 @@ +import 'dart:io'; +import 'package:pdf/pdf.dart'; +import 'package:pdf/widgets.dart' as pw; +import 'package:intl/intl.dart'; +import 'package:intl/date_symbol_data_local.dart'; +import '../storage_helper.dart'; +import 'pdf_components.dart'; + +Future exportAbsenBaruPdf({ + required String judul, + required String date, + required List> students, +}) async { + await initializeDateFormatting('id_ID', null); + + String formattedDate = date; + try { + final parsed = DateTime.parse(date); + formattedDate = DateFormat('dd MMMM yyyy', 'id_ID').format(parsed); + } catch (_) {} + + final pdf = pw.Document(); + + pdf.addPage( + pw.MultiPage( + pageFormat: PdfPageFormat.a4, + margin: const pw.EdgeInsets.all(32), + header: (context) => buildPdfHeader('LAPORAN ABSENSI SESI', DateTime.now()), + footer: (context) => buildPdfFooter(context), + build: (context) { + return [ + // Meta info + pw.Row( + mainAxisAlignment: pw.MainAxisAlignment.spaceBetween, + children: [ + pw.Column( + crossAxisAlignment: pw.CrossAxisAlignment.start, + children: [ + _buildMeta('Judul', judul), + pw.SizedBox(height: 2), + _buildMeta('Tanggal', formattedDate), + ], + ), + pw.Column( + crossAxisAlignment: pw.CrossAxisAlignment.end, + children: [ + _buildMeta('Jumlah Siswa', '${students.length}'), + ], + ), + ], + ), + pw.SizedBox(height: 12), + + // Section title + buildSectionTitle('Daftar Absensi Siswa'), + pw.SizedBox(height: 8), + + // Table + _buildStudentTable(students), + pw.SizedBox(height: 24), + + // Signature block + pw.Align( + alignment: pw.Alignment.bottomRight, + child: pw.Container( + width: 160, + child: pw.Column( + crossAxisAlignment: pw.CrossAxisAlignment.center, + children: [ + pw.Text('Guru Pengajar,', style: const pw.TextStyle(fontSize: 8)), + pw.SizedBox(height: 40), + pw.Container(height: 0.5, color: PdfColors.black), + pw.SizedBox(height: 3), + pw.Text('(..........................)', style: pw.TextStyle(fontSize: 8, fontWeight: pw.FontWeight.bold)), + ], + ), + ), + ), + ]; + }, + ), + ); + + // Save file + final dirPath = await StorageHelper.getDownloadDirectoryPath(); + final sanitizedJudul = judul.replaceAll(RegExp(r'[^\w\s]'), '').replaceAll(' ', '_'); + final sanitizedDate = date.replaceAll('-', ''); + final baseName = 'Absensi_${sanitizedJudul}_$sanitizedDate'; + var finalPath = StorageHelper.getUniqueFilePath(dirPath, baseName, 'pdf'); + var file = File(finalPath); + + final bytes = await pdf.save(); + try { + await file.writeAsBytes(bytes, flush: true); + } catch (e) { + final nowTime = DateTime.now(); + final timestamp = '${nowTime.hour.toString().padLeft(2, '0')}${nowTime.minute.toString().padLeft(2, '0')}${nowTime.second.toString().padLeft(2, '0')}'; + final fallbackFileName = '${baseName}_$timestamp.pdf'; + finalPath = '$dirPath/$fallbackFileName'; + file = File(finalPath); + await file.writeAsBytes(bytes, flush: true); + } + + return finalPath; +} + +pw.Widget _buildMeta(String label, String value) { + return pw.RichText( + text: pw.TextSpan( + style: const pw.TextStyle(fontSize: 9), + children: [ + pw.TextSpan( + text: '$label: ', + style: pw.TextStyle(fontWeight: pw.FontWeight.bold, color: kPdfPrimary), + ), + pw.TextSpan(text: value), + ], + ), + ); +} + +pw.Widget _buildStudentTable(List> students) { + final headers = ['NO', 'NIS', 'NAMA SISWA', 'KETERANGAN']; + + final List> rows = []; + for (var s in students) { + final ket = s['keterangan']?.toString() ?? '-'; + PdfColor textColor = PdfColors.black; + PdfColor? bgColor; + + switch (ket) { + case 'Hadir': + textColor = PdfColors.green; + bgColor = const PdfColor.fromInt(0xFFE8F5E9); + break; + case 'Sakit': + textColor = PdfColors.blue; + bgColor = const PdfColor.fromInt(0xFFE3F2FD); + break; + case 'Izin': + textColor = PdfColors.orange; + bgColor = const PdfColor.fromInt(0xFFFFF3E0); + break; + case 'Alpha': + textColor = PdfColors.red; + bgColor = const PdfColor.fromInt(0xFFFFEBEE); + break; + case 'Libur': + textColor = PdfColors.purple; + bgColor = const PdfColor.fromInt(0xFFF3E5F5); + break; + } + + rows.add([ + pw.Center(child: pw.Text('${s['no']}', style: const pw.TextStyle(fontSize: 8))), + pw.Center(child: pw.Text(s['nis']?.toString() ?? '-', style: const pw.TextStyle(fontSize: 8))), + pw.Text(s['nama']?.toString() ?? '-', style: const pw.TextStyle(fontSize: 8), maxLines: 1), + pw.Container( + color: bgColor, + alignment: pw.Alignment.center, + padding: const pw.EdgeInsets.symmetric(horizontal: 4, vertical: 2), + child: pw.Text( + ket, + style: pw.TextStyle( + fontSize: 8, + fontWeight: pw.FontWeight.bold, + color: textColor, + ), + ), + ), + ]); + } + + return buildDataTable( + headers: headers, + rows: rows, + colWidths: { + 0: const pw.FixedColumnWidth(30), // NO + 1: const pw.FixedColumnWidth(60), // NIS + 2: const pw.FlexColumnWidth(3), // NAMA SISWA + 3: const pw.FixedColumnWidth(80), // KETERANGAN + }, + ); +} diff --git a/lib/dashboard/d_guru/function/absen_excel/pdf/absen_pdf_builder.dart b/lib/dashboard/d_guru/function/absen_excel/pdf/absen_pdf_builder.dart new file mode 100644 index 0000000..ea4c1eb --- /dev/null +++ b/lib/dashboard/d_guru/function/absen_excel/pdf/absen_pdf_builder.dart @@ -0,0 +1,281 @@ +import 'dart:io'; +import 'package:flutter/foundation.dart'; +import 'package:pdf/pdf.dart'; +import 'package:pdf/widgets.dart' as pw; +import 'package:intl/date_symbol_data_local.dart'; +import '../storage_helper.dart'; +import 'pdf_components.dart'; +import 'package:apk/dashboard/d_guru/database/holiday_service.dart'; + +pw.Widget _buildMetaText(String label, String value) { + return pw.RichText( + text: pw.TextSpan( + style: const pw.TextStyle(fontSize: 8), + children: [ + pw.TextSpan( + text: '$label: ', + style: pw.TextStyle(fontWeight: pw.FontWeight.bold, color: kPdfPrimary), + ), + pw.TextSpan(text: value), + ], + ), + ); +} + +pw.Widget _buildAttendanceTable({ + required int year, + required int month, + required List> muridList, + required int daysInMonth, + required Map> attendanceMap, + required int Function(String, String) countStatus, +}) { + // Headers + List headers = ['NO', 'NIS', 'NAMA SISWA']; + for (int i = 1; i <= daysInMonth; i++) { + headers.add('$i'); + } + headers.addAll(['H', 'I', 'S', 'A']); + + // Rows + List> rows = []; + for (int index = 0; index < muridList.length; index++) { + final m = muridList[index]; + final nisStr = m['nis']?.toString(); + + List rowCells = [ + pw.Center(child: pw.Text('${index + 1}', style: const pw.TextStyle(fontSize: 6.5))), + pw.Center(child: pw.Text(nisStr ?? '-', style: const pw.TextStyle(fontSize: 6.5))), + pw.Text(m['nama']?.toString() ?? '-', style: const pw.TextStyle(fontSize: 6.5), maxLines: 1), + ]; + + for (int d = 1; d <= daysInMonth; d++) { + String status = '-'; + if (nisStr != null && attendanceMap.containsKey(nisStr)) { + final studentMap = attendanceMap[nisStr]!; + status = studentMap[d]?.toString() ?? studentMap[d.toString()]?.toString() ?? '-'; + } + + final date = DateTime(year, month, d); + final isSundayOrHoliday = date.weekday == DateTime.sunday || HolidayService.isHoliday(date); + + PdfColor? cellColor; + PdfColor textColor = PdfColors.black; + if (isSundayOrHoliday) { + cellColor = PdfColor.fromInt(0xFFFFEBEE); // light red + textColor = PdfColors.red; + } else { + switch (status) { + case 'H': cellColor = PdfColor.fromInt(0xFFE8F5E9); break; // light green + case 'S': cellColor = PdfColor.fromInt(0xFFE3F2FD); break; // light blue + case 'I': cellColor = PdfColor.fromInt(0xFFFFF3E0); break; // light orange + case 'A': cellColor = PdfColor.fromInt(0xFFFFEBEE); break; // light red + } + } + + rowCells.add( + pw.Container( + color: cellColor, + alignment: pw.Alignment.center, + child: pw.Text( + status, + style: pw.TextStyle( + fontSize: 6.5, + color: textColor, + fontWeight: status != '-' ? pw.FontWeight.bold : pw.FontWeight.normal, + ), + ), + ), + ); + } + + String hVal = nisStr != null ? countStatus(nisStr, 'H').toString() : '-'; + String iVal = nisStr != null ? countStatus(nisStr, 'I').toString() : '-'; + String sVal = nisStr != null ? countStatus(nisStr, 'S').toString() : '-'; + String aVal = nisStr != null ? countStatus(nisStr, 'A').toString() : '-'; + + rowCells.addAll([ + pw.Container( + color: PdfColor.fromInt(0xFFE8F5E9), + alignment: pw.Alignment.center, + child: pw.Text(hVal, style: pw.TextStyle(fontSize: 6.5, fontWeight: pw.FontWeight.bold, color: PdfColors.green)), + ), + pw.Container( + color: PdfColor.fromInt(0xFFFFF3E0), + alignment: pw.Alignment.center, + child: pw.Text(iVal, style: pw.TextStyle(fontSize: 6.5, fontWeight: pw.FontWeight.bold, color: PdfColors.orange)), + ), + pw.Container( + color: PdfColor.fromInt(0xFFE3F2FD), + alignment: pw.Alignment.center, + child: pw.Text(sVal, style: pw.TextStyle(fontSize: 6.5, fontWeight: pw.FontWeight.bold, color: PdfColors.blue)), + ), + pw.Container( + color: PdfColor.fromInt(0xFFFFEBEE), + alignment: pw.Alignment.center, + child: pw.Text(aVal, style: pw.TextStyle(fontSize: 6.5, fontWeight: pw.FontWeight.bold, color: PdfColors.red)), + ), + ]); + + rows.add(rowCells); + } + + // Column Widths + Map colWidths = { + 0: const pw.FixedColumnWidth(16), // NO + 1: const pw.FixedColumnWidth(40), // NIS + 2: const pw.FixedColumnWidth(95), // NAMA SISWA + }; + for (int i = 3; i < 3 + daysInMonth; i++) { + colWidths[i] = const pw.FixedColumnWidth(14); // Days 1-31 + } + for (int i = 3 + daysInMonth; i < 3 + daysInMonth + 4; i++) { + colWidths[i] = const pw.FixedColumnWidth(15); // H, I, S, A + } + + return buildDataTable( + headers: headers, + rows: rows, + colWidths: colWidths, + ); +} + +Future exportAbsensiPdf({ + required String namaSekolah, + required String monthName, + required String yearMonth, + required String namaKelas, + required String namaWaliKelas, + required String nipWaliKelas, + required String wilayah, + required List> muridList, + required int daysInMonth, + required Map> attendanceMap, + required int Function(String, String) countStatus, +}) async { + try { + // Initialize Indonesian locale formatting + await initializeDateFormatting('id_ID', null); + + // Parse year & month + int year = DateTime.now().year; + int month = DateTime.now().month; + final parts = yearMonth.split('-'); + if (parts.length == 2) { + year = int.parse(parts[0]); + month = int.parse(parts[1]); + } + + // Generate date & location text + final now = DateTime.now(); + final tanggal = '${now.day.toString().padLeft(2, '0')}-${now.month.toString().padLeft(2, '0')}-${now.year}'; + final lokasiTanggal = wilayah.isNotEmpty ? '$wilayah, $tanggal' : tanggal; + + final pdf = pw.Document(); + + // Determine the month text header dynamically + final displayMonth = monthName.toUpperCase().contains(year.toString()) + ? monthName.toUpperCase() + : '${monthName.toUpperCase()} $year'; + + pdf.addPage( + pw.MultiPage( + pageFormat: PdfPageFormat.a4.landscape, + margin: const pw.EdgeInsets.symmetric(vertical: 24, horizontal: 24), + header: (context) => buildPdfHeader('LAPORAN BULANAN ABSENSI SISWA', DateTime.now()), + footer: (context) => buildPdfFooter(context), + build: (context) { + return [ + // Subtitle / School details + pw.Row( + mainAxisAlignment: pw.MainAxisAlignment.spaceBetween, + crossAxisAlignment: pw.CrossAxisAlignment.start, + children: [ + pw.Column( + crossAxisAlignment: pw.CrossAxisAlignment.start, + children: [ + _buildMetaText('Sekolah', namaSekolah.toUpperCase()), + pw.SizedBox(height: 2), + _buildMetaText('Kelas', namaKelas), + pw.SizedBox(height: 2), + _buildMetaText('Bulan', displayMonth), + ], + ), + pw.Column( + crossAxisAlignment: pw.CrossAxisAlignment.end, + children: [ + _buildMetaText('Wali Kelas', namaWaliKelas), + pw.SizedBox(height: 2), + _buildMetaText('Jumlah Murid', '${muridList.length} Siswa'), + ], + ), + ], + ), + pw.SizedBox(height: 10), + + // Table Header Title + buildSectionTitle('Tabel Absensi Harian & Rekapitulasi'), + pw.SizedBox(height: 6), + + // Table + _buildAttendanceTable( + year: year, + month: month, + muridList: muridList, + daysInMonth: daysInMonth, + attendanceMap: attendanceMap, + countStatus: countStatus, + ), + pw.SizedBox(height: 16), + + // Signature Block + pw.Align( + alignment: pw.Alignment.bottomRight, + child: pw.Container( + width: 160, + child: pw.Column( + crossAxisAlignment: pw.CrossAxisAlignment.start, + children: [ + pw.Text(lokasiTanggal, style: const pw.TextStyle(fontSize: 8)), + pw.SizedBox(height: 2), + pw.Text('Wali Kelas,', style: const pw.TextStyle(fontSize: 8)), + pw.SizedBox(height: 40), + pw.Text(namaWaliKelas, style: pw.TextStyle(fontSize: 8, fontWeight: pw.FontWeight.bold)), + pw.SizedBox(height: 2), + pw.Container(height: 0.5, color: PdfColors.black), + pw.SizedBox(height: 2), + pw.Text('NIP. $nipWaliKelas', style: const pw.TextStyle(fontSize: 8)), + ], + ), + ), + ), + ]; + }, + ), + ); + + final dirPath = await StorageHelper.getDownloadDirectoryPath(); + final baseName = 'Absensi_${namaKelas.replaceAll('/', '_')}_${monthName.replaceAll(' ', '_')}'; + var finalPath = StorageHelper.getUniqueFilePath(dirPath, baseName, 'pdf'); + var file = File(finalPath); + + final bytes = await pdf.save(); + try { + await file.writeAsBytes(bytes, flush: true); + } catch (e) { + final nowTime = DateTime.now(); + final timestamp = '${nowTime.hour.toString().padLeft(2, '0')}${nowTime.minute.toString().padLeft(2, '0')}${nowTime.second.toString().padLeft(2, '0')}'; + final fallbackFileName = '${baseName}_$timestamp.pdf'; + finalPath = '$dirPath/$fallbackFileName'; + file = File(finalPath); + await file.writeAsBytes(bytes, flush: true); + } + + return finalPath; + } catch (e, stack) { + debugPrint('=== PDF EXPORT RUNTIME ERROR ==='); + debugPrint(e.toString()); + debugPrint(stack.toString()); + rethrow; + } +} diff --git a/lib/dashboard/d_guru/function/absen_excel/pdf/export_pdf_button.dart b/lib/dashboard/d_guru/function/absen_excel/pdf/export_pdf_button.dart new file mode 100644 index 0000000..b4b0dae --- /dev/null +++ b/lib/dashboard/d_guru/function/absen_excel/pdf/export_pdf_button.dart @@ -0,0 +1,115 @@ +import 'package:flutter/material.dart'; + +/// ============================================================ +/// Export PDF Button — Reusable Widget +/// Letakkan di: lib/function/f_guru/absen_excel/pdf/export_pdf_button.dart +/// ============================================================ + +class ExportPdfButton extends StatefulWidget { + /// Callback async yang memanggil PdfExportService + final Future Function() onExport; + + /// Label tombol (default: "Download PDF") + final String label; + + /// Style: FAB (floating) atau ElevatedButton (inline) + final ExportButtonStyle style; + + const ExportPdfButton({ + super.key, + required this.onExport, + this.label = 'Download PDF', + this.style = ExportButtonStyle.elevated, + }); + + @override + State createState() => _ExportPdfButtonState(); +} + +class _ExportPdfButtonState extends State { + bool _isLoading = false; + + Future _handleExport() async { + if (_isLoading) return; + setState(() => _isLoading = true); + + try { + await widget.onExport(); + } catch (e) { + if (mounted) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + content: Text('Gagal download PDF: $e'), + backgroundColor: Colors.red.shade600, + ), + ); + } + } finally { + if (mounted) setState(() => _isLoading = false); + } + } + + @override + Widget build(BuildContext context) { + return widget.style == ExportButtonStyle.fab + ? _buildFab() + : _buildElevated(); + } + + // — FAB style (floating action button) + Widget _buildFab() { + return FloatingActionButton.extended( + onPressed: _isLoading ? null : _handleExport, + backgroundColor: const Color(0xFFEF4444), // Red for PDF + icon: _isLoading + ? const SizedBox( + width: 20, + height: 20, + child: CircularProgressIndicator( + strokeWidth: 2, + color: Colors.white, + ), + ) + : const Icon(Icons.picture_as_pdf, color: Colors.white), + label: Text( + _isLoading ? 'Menyiapkan...' : widget.label, + style: const TextStyle(color: Colors.white, fontWeight: FontWeight.bold, fontFamily: 'Inter'), + ), + ); + } + + // — Elevated button style (inline di dalam konten) + Widget _buildElevated() { + return ElevatedButton.icon( + onPressed: _isLoading ? null : _handleExport, + style: ElevatedButton.styleFrom( + backgroundColor: const Color(0xFFEF4444), // Red for PDF + padding: const EdgeInsets.symmetric(vertical: 12, horizontal: 16), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(8), + ), + ), + icon: _isLoading + ? const SizedBox( + width: 18, + height: 18, + child: CircularProgressIndicator( + strokeWidth: 2, + color: Colors.white, + ), + ) + : const Icon(Icons.picture_as_pdf, color: Colors.white, size: 18), + label: Text( + _isLoading ? 'Menyiapkan PDF...' : widget.label, + style: const TextStyle( + color: Colors.white, + fontWeight: FontWeight.bold, + fontSize: 13, + fontFamily: 'Inter', + ), + ), + ); + } +} + +enum ExportButtonStyle { fab, elevated } diff --git a/lib/dashboard/d_guru/function/absen_excel/pdf/pdf_components.dart b/lib/dashboard/d_guru/function/absen_excel/pdf/pdf_components.dart new file mode 100644 index 0000000..85fe806 --- /dev/null +++ b/lib/dashboard/d_guru/function/absen_excel/pdf/pdf_components.dart @@ -0,0 +1,288 @@ +import 'package:pdf/pdf.dart'; +import 'package:pdf/widgets.dart' as pw; +import 'package:intl/intl.dart'; + +// ─── Warna tema ─────────────────────────────────────────────── +const kPdfPrimary = PdfColor.fromInt(0xFF1565C0); +const kPdfAccent = PdfColor.fromInt(0xFF42A5F5); +const kPdfRowEven = PdfColor.fromInt(0xFFF5F9FF); +const kPdfBorder = PdfColor.fromInt(0xFFBBDEFB); + +// ─── Format tanggal ─────────────────────────────────────────── +final pdfDateFormat = DateFormat('dd MMMM yyyy', 'id_ID'); +final pdfTimeFormat = DateFormat('HH:mm:ss'); +final pdfFullFormat = DateFormat('dd MMM yyyy, HH:mm', 'id_ID'); + +// ================================================================ +// HEADER — muncul di setiap halaman +// ================================================================ +pw.Widget buildPdfHeader(String title, DateTime date) { + return pw.Container( + margin: const pw.EdgeInsets.only(bottom: 16), + decoration: const pw.BoxDecoration( + border: pw.Border( + bottom: pw.BorderSide(color: kPdfBorder, width: 1.5), + ), + ), + child: pw.Row( + mainAxisAlignment: pw.MainAxisAlignment.spaceBetween, + children: [ + pw.Column( + crossAxisAlignment: pw.CrossAxisAlignment.start, + children: [ + pw.Text( + title, + style: pw.TextStyle( + fontSize: 16, + fontWeight: pw.FontWeight.bold, + color: kPdfPrimary, + ), + ), + pw.SizedBox(height: 2), + pw.Text( + 'Sistem Informasi Akademik & Absensi', + style: pw.TextStyle(fontSize: 9, color: PdfColors.grey600), + ), + ], + ), + pw.Column( + crossAxisAlignment: pw.CrossAxisAlignment.end, + children: [ + pw.Text( + pdfDateFormat.format(date), + style: pw.TextStyle( + fontSize: 9, + fontWeight: pw.FontWeight.bold, + color: kPdfPrimary, + ), + ), + pw.Text( + pdfTimeFormat.format(date), + style: pw.TextStyle(fontSize: 8, color: PdfColors.grey600), + ), + ], + ), + ], + ), + ); +} + +// ================================================================ +// FOOTER — muncul di setiap halaman +// ================================================================ +pw.Widget buildPdfFooter(pw.Context context) { + return pw.Container( + margin: const pw.EdgeInsets.only(top: 12), + decoration: const pw.BoxDecoration( + border: pw.Border(top: pw.BorderSide(color: kPdfBorder, width: 1)), + ), + child: pw.Padding( + padding: const pw.EdgeInsets.only(top: 6), + child: pw.Row( + mainAxisAlignment: pw.MainAxisAlignment.spaceBetween, + children: [ + pw.Text( + 'Digenerate otomatis oleh Aplikasi Akademik', + style: pw.TextStyle(fontSize: 8, color: PdfColors.grey500), + ), + pw.Text( + 'Halaman ${context.pageNumber} / ${context.pagesCount}', + style: pw.TextStyle(fontSize: 8, color: PdfColors.grey500), + ), + ], + ), + ), + ); +} + +// ================================================================ +// SECTION TITLE — judul bagian dengan background biru +// ================================================================ +pw.Widget buildSectionTitle(String title) { + return pw.Container( + padding: const pw.EdgeInsets.symmetric(vertical: 6, horizontal: 10), + decoration: const pw.BoxDecoration( + color: kPdfPrimary, + borderRadius: pw.BorderRadius.all(pw.Radius.circular(4)), + ), + child: pw.Text( + title, + style: pw.TextStyle( + fontSize: 11, + fontWeight: pw.FontWeight.bold, + color: PdfColors.white, + ), + ), + ); +} + +// ================================================================ +// SUMMARY CARD — grid kartu nilai terkini +// ================================================================ +pw.Widget buildSummaryCard({ + required String title, + required String subtitle, + required List items, +}) { + return pw.Container( + padding: const pw.EdgeInsets.all(12), + decoration: pw.BoxDecoration( + color: const PdfColor.fromInt(0xFFE3F2FD), + borderRadius: const pw.BorderRadius.all(pw.Radius.circular(8)), + border: pw.Border.all(color: kPdfBorder), + ), + child: pw.Column( + crossAxisAlignment: pw.CrossAxisAlignment.start, + children: [ + pw.Text( + title, + style: pw.TextStyle( + fontSize: 11, + fontWeight: pw.FontWeight.bold, + color: kPdfPrimary, + ), + ), + pw.Text( + subtitle, + style: pw.TextStyle(fontSize: 8, color: PdfColors.grey600), + ), + pw.SizedBox(height: 8), + pw.Wrap( + spacing: 10, + runSpacing: 6, + children: items.map((item) => _summaryItemCard(item)).toList(), + ), + ], + ), + ); +} + +pw.Widget _summaryItemCard(SummaryItem item) { + return pw.Container( + width: 140, + padding: const pw.EdgeInsets.symmetric(vertical: 6, horizontal: 10), + decoration: pw.BoxDecoration( + color: PdfColors.white, + borderRadius: const pw.BorderRadius.all(pw.Radius.circular(6)), + border: pw.Border.all(color: kPdfBorder), + ), + child: pw.Row( + children: [ + pw.Text(item.emoji, style: const pw.TextStyle(fontSize: 14)), + pw.SizedBox(width: 6), + pw.Column( + crossAxisAlignment: pw.CrossAxisAlignment.start, + children: [ + pw.Text( + item.label, + style: pw.TextStyle(fontSize: 8, color: PdfColors.grey600), + ), + pw.Text( + item.value, + style: pw.TextStyle( + fontSize: 12, + fontWeight: pw.FontWeight.bold, + color: kPdfPrimary, + ), + ), + ], + ), + ], + ), + ); +} + +// ================================================================ +// BASE TABLE — semua tabel pakai ini +// ================================================================ +pw.Widget buildDataTable({ + required List headers, + required List> rows, + Map? colWidths, +}) { + return pw.Table( + border: pw.TableBorder.all(color: kPdfBorder, width: 0.5), + columnWidths: colWidths, + children: [ + // Header + pw.TableRow( + decoration: const pw.BoxDecoration(color: kPdfPrimary), + children: headers + .map((h) => pw.Padding( + padding: const pw.EdgeInsets.symmetric( + vertical: 5, horizontal: 4), + child: pw.Align( + alignment: pw.Alignment.center, + child: pw.Text( + h, + style: pw.TextStyle( + fontSize: 8, + fontWeight: pw.FontWeight.bold, + color: PdfColors.white, + ), + ), + ), + )) + .toList(), + ), + // Data rows + ...rows.asMap().entries.map((entry) { + final isEven = entry.key % 2 == 0; + return pw.TableRow( + decoration: pw.BoxDecoration( + color: isEven ? kPdfRowEven : PdfColors.white, + ), + children: entry.value + .map((cell) => pw.Padding( + padding: const pw.EdgeInsets.symmetric( + vertical: 3, horizontal: 4), + child: cell, + )) + .toList(), + ); + }), + ], + ); +} + +// ================================================================ +// KEY-VALUE TABLE — tabel 3 kolom: Parameter | Nilai | Satuan +// ================================================================ +pw.Widget buildKeyValueTable(List> rows) { + final headerRow = rows.first; + final dataRows = rows.skip(1).toList(); + + final List> widgetRows = dataRows.map((r) { + return r.map((cellText) => pw.Text(cellText, style: const pw.TextStyle(fontSize: 8))).toList(); + }).toList(); + + return buildDataTable( + headers: headerRow, + rows: widgetRows, + colWidths: { + 0: const pw.FlexColumnWidth(2), + 1: const pw.FlexColumnWidth(1.5), + 2: const pw.FlexColumnWidth(1), + }, + ); +} + +// ================================================================ +// HELPER CLASS +// ================================================================ +class SummaryItem { + final String label; + final String value; + final String emoji; + const SummaryItem(this.label, this.value, this.emoji); +} + +// ================================================================ +// STATS HELPER +// ================================================================ +Map calcStats(List data) { + if (data.isEmpty) return {'avg': 0, 'max': 0, 'min': 0}; + final sorted = List.from(data)..sort(); + final avg = data.reduce((a, b) => a + b) / data.length; + return {'avg': avg, 'max': sorted.last, 'min': sorted.first}; +} diff --git a/lib/dashboard/d_guru/function/absen_excel/pdf/pdf_export_service.dart b/lib/dashboard/d_guru/function/absen_excel/pdf/pdf_export_service.dart new file mode 100644 index 0000000..8cae4b3 --- /dev/null +++ b/lib/dashboard/d_guru/function/absen_excel/pdf/pdf_export_service.dart @@ -0,0 +1,40 @@ +import 'absen_pdf_builder.dart'; + +/// ============================================================ +/// PDF Export Service — Entry Point +/// Letakkan di: lib/function/f_guru/absen_excel/pdf/pdf_export_service.dart +/// +/// Ini cuma facade — semua logic ada di builder masing-masing. +/// Import file ini saja di screen kamu. +/// ============================================================ + +class PdfExportService { + PdfExportService._(); // tidak bisa di-instantiate + + static Future absensi({ + required String namaSekolah, + required String monthName, + required String yearMonth, + required String namaKelas, + required String namaWaliKelas, + required String nipWaliKelas, + required String wilayah, + required List> muridList, + required int daysInMonth, + required Map> attendanceMap, + required int Function(String, String) countStatus, + }) => + exportAbsensiPdf( + namaSekolah: namaSekolah, + monthName: monthName, + yearMonth: yearMonth, + namaKelas: namaKelas, + namaWaliKelas: namaWaliKelas, + nipWaliKelas: nipWaliKelas, + wilayah: wilayah, + muridList: muridList, + daysInMonth: daysInMonth, + attendanceMap: attendanceMap, + countStatus: countStatus, + ); +} diff --git a/lib/dashboard/d_guru/function/absen_excel/setting_L/pengaturan_absen.dart b/lib/dashboard/d_guru/function/absen_excel/setting_L/pengaturan_absen.dart new file mode 100644 index 0000000..104a842 --- /dev/null +++ b/lib/dashboard/d_guru/function/absen_excel/setting_L/pengaturan_absen.dart @@ -0,0 +1,645 @@ +import 'package:flutter/material.dart'; +import 'package:apk/dashboard/d_guru/database/db_absensi.dart'; + +class UpdateAbsenBottomSheet extends StatefulWidget { + final List> muridList; + final int daysInMonth; + final String yearMonth; + final Map absenIdMap; + final List initialSelectedStudentIds; + final List initialSelectedDays; + final VoidCallback onUpdated; + + const UpdateAbsenBottomSheet({ + super.key, + required this.muridList, + required this.daysInMonth, + required this.yearMonth, + required this.absenIdMap, + required this.initialSelectedStudentIds, + required this.initialSelectedDays, + required this.onUpdated, + }); + + @override + State createState() => _UpdateAbsenBottomSheetState(); +} + +class _UpdateAbsenBottomSheetState extends State { + final DbAbsensi _dbAbsensi = DbAbsensi(); + String? _selectedStatusKey = 'alpha'; + bool _isSaving = false; + String? _errorMessage; + + late Set _selectedStudentIds; + late Set _selectedDays; + + final List> _statusOptions = [ + { + 'key': 'alpha', + 'label': 'Alpha', + 'code': 'A', + 'color': const Color(0xFFDC2626), + 'lightColor': const Color(0xFFFEE2E2), + }, + { + 'key': 'libur', + 'label': 'Libur', + 'code': 'L', + 'color': const Color(0xFF4F46E5), + 'lightColor': const Color(0xFFE0E7FF), + }, + { + 'key': 'belum_absen', + 'label': 'Belum Absen', + 'code': '-', + 'color': const Color(0xFF64748B), + 'lightColor': const Color(0xFFF1F5F9), + }, + ]; + + @override + void initState() { + super.initState(); + _selectedStudentIds = Set.from(widget.initialSelectedStudentIds); + _selectedDays = Set.from(widget.initialSelectedDays); + } + + Future _saveChanges() async { + if (_selectedStudentIds.isEmpty) { + setState(() { + _errorMessage = 'Silakan centang minimal 1 siswa.'; + }); + return; + } + if (_selectedDays.isEmpty) { + setState(() { + _errorMessage = 'Silakan centang minimal 1 hari.'; + }); + return; + } + + setState(() { + _isSaving = true; + _errorMessage = null; + }); + + try { + final dbStatus = _selectedStatusKey == 'belum_absen' ? null : _selectedStatusKey; + + // Kumpulkan semua idTabel dari database untuk kombinasi yang dipilih + final List idsToUpdate = []; + for (final idM in _selectedStudentIds) { + for (final d in _selectedDays) { + final idTab = widget.absenIdMap['${idM}_$d']; + if (idTab != null) { + idsToUpdate.add(idTab); + } + } + } + + if (idsToUpdate.isEmpty) { + setState(() { + _errorMessage = 'Tidak ditemukan data absensi untuk kombinasi siswa & tanggal terpilih.'; + _isSaving = false; + }); + return; + } + + // Jalankan update secara paralel agar sangat cepat + await Future.wait( + idsToUpdate.map((id) => _dbAbsensi.updateStudentSessionStatus( + idTabel: id, + selectedStatus: dbStatus, + )) + ); + + if (mounted) { + widget.onUpdated(); + Navigator.pop(context); + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + content: Text('Absensi ${idsToUpdate.length} record berhasil diupdate.'), + backgroundColor: const Color(0xFF16A34A), + behavior: SnackBarBehavior.floating, + ), + ); + } + } catch (e) { + if (mounted) { + setState(() { + _errorMessage = 'Gagal menyimpan perubahan: $e'; + _isSaving = false; + }); + } + } + } + + @override + Widget build(BuildContext context) { + return Container( + decoration: const BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.only( + topLeft: Radius.circular(20), + topRight: Radius.circular(20), + ), + ), + padding: EdgeInsets.fromLTRB(20, 12, 20, MediaQuery.of(context).viewInsets.bottom + 24), + child: SingleChildScrollView( + child: Column( + mainAxisSize: MainAxisSize.min, + crossAxisAlignment: CrossAxisAlignment.stretch, + children: [ + // Handle bar + Center( + child: Container( + width: 40, + height: 4, + decoration: BoxDecoration( + color: Colors.grey[300], + borderRadius: BorderRadius.circular(2), + ), + ), + ), + const SizedBox(height: 16), + + // Header info + const Text( + 'Pembaruan Massal Absensi', + style: TextStyle( + fontFamily: 'Inter', + fontSize: 18, + fontWeight: FontWeight.bold, + color: Color(0xFF1E293B), + ), + ), + const SizedBox(height: 4), + Text( + 'Bulan/Tahun: ${widget.yearMonth}', + style: TextStyle( + fontFamily: 'Inter', + fontSize: 13, + color: Colors.grey[600], + ), + ), + const Divider(height: 24), + + if (_errorMessage != null) ...[ + Container( + padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 8), + decoration: BoxDecoration( + color: const Color(0xFFFEE2E2), + borderRadius: BorderRadius.circular(8), + border: Border.all(color: const Color(0xFFFCA5A5)), + ), + child: Text( + _errorMessage!, + style: const TextStyle( + fontFamily: 'Inter', + color: Color(0xFFDC2626), + fontSize: 13, + fontWeight: FontWeight.w500, + ), + ), + ), + const SizedBox(height: 12), + ], + + // Section 1: Pilihan Status + const Text( + '1. Pilih Status Absensi', + style: TextStyle( + fontFamily: 'Inter', + fontSize: 14, + fontWeight: FontWeight.bold, + color: Color(0xFF1E293B), + ), + ), + const SizedBox(height: 8), + GridView.builder( + shrinkWrap: true, + physics: const NeverScrollableScrollPhysics(), + gridDelegate: const SliverGridDelegateWithFixedCrossAxisCount( + crossAxisCount: 3, + crossAxisSpacing: 8, + mainAxisSpacing: 8, + childAspectRatio: 2.0, + ), + itemCount: _statusOptions.length, + itemBuilder: (context, index) { + final opt = _statusOptions[index]; + final isSelected = _selectedStatusKey == opt['key']; + return InkWell( + onTap: _isSaving + ? null + : () { + setState(() { + _selectedStatusKey = opt['key']; + if (_selectedStatusKey == 'libur') { + _selectedStudentIds = widget.muridList + .map((m) => m['id_tabel']?.toString()) + .whereType() + .toSet(); + } + }); + }, + borderRadius: BorderRadius.circular(8), + child: Container( + decoration: BoxDecoration( + color: isSelected ? opt['lightColor'] : Colors.white, + border: Border.all( + color: isSelected ? opt['color'] : const Color(0xFFE2E8F0), + width: isSelected ? 2 : 1, + ), + borderRadius: BorderRadius.circular(8), + ), + padding: const EdgeInsets.symmetric(horizontal: 6, vertical: 4), + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Container( + width: 24, + height: 24, + decoration: BoxDecoration( + color: opt['color'], + shape: BoxShape.circle, + ), + alignment: Alignment.center, + child: Text( + opt['code'], + style: const TextStyle( + fontFamily: 'Inter', + color: Colors.white, + fontWeight: FontWeight.bold, + fontSize: 11, + ), + ), + ), + const SizedBox(width: 6), + Expanded( + child: Text( + opt['label'], + style: TextStyle( + fontFamily: 'Inter', + fontWeight: isSelected ? FontWeight.bold : FontWeight.w500, + color: const Color(0xFF334155), + fontSize: 11, + ), + maxLines: 1, + overflow: TextOverflow.ellipsis, + ), + ), + ], + ), + ), + ); + }, + ), + + // Section 2: Pilihan Hari + const SizedBox(height: 20), + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text( + '2. Pilih Hari (${_selectedDays.length}/${widget.daysInMonth})', + style: const TextStyle( + fontFamily: 'Inter', + fontSize: 14, + fontWeight: FontWeight.bold, + color: Color(0xFF1E293B), + ), + ), + Row( + children: [ + TextButton( + onPressed: _isSaving + ? null + : () { + setState(() { + _selectedDays = List.generate(widget.daysInMonth, (i) => i + 1).toSet(); + }); + }, + style: TextButton.styleFrom( + padding: const EdgeInsets.symmetric(horizontal: 8, vertical: 4), + minimumSize: Size.zero, + tapTargetSize: MaterialTapTargetSize.shrinkWrap, + ), + child: const Text('Semua', style: TextStyle(fontFamily: 'Inter', fontSize: 12, fontWeight: FontWeight.bold)), + ), + const SizedBox(width: 8), + TextButton( + onPressed: _isSaving + ? null + : () { + setState(() { + _selectedDays.clear(); + }); + }, + style: TextButton.styleFrom( + padding: const EdgeInsets.symmetric(horizontal: 8, vertical: 4), + minimumSize: Size.zero, + tapTargetSize: MaterialTapTargetSize.shrinkWrap, + ), + child: const Text('Kosongkan', style: TextStyle(fontFamily: 'Inter', fontSize: 12, fontWeight: FontWeight.bold, color: Colors.red)), + ), + ], + ), + ], + ), + const SizedBox(height: 8), + Container( + padding: const EdgeInsets.all(10), + decoration: BoxDecoration( + color: const Color(0xFFF8FAFC), + borderRadius: BorderRadius.circular(12), + border: Border.all(color: const Color(0xFFE2E8F0)), + ), + child: Wrap( + spacing: 8, + runSpacing: 8, + alignment: WrapAlignment.start, + children: List.generate(widget.daysInMonth, (index) { + final d = index + 1; + final isSel = _selectedDays.contains(d); + return InkWell( + onTap: _isSaving + ? null + : () { + setState(() { + if (isSel) { + _selectedDays.remove(d); + } else { + _selectedDays.add(d); + } + }); + }, + borderRadius: BorderRadius.circular(20), + child: Container( + width: 32, + height: 32, + decoration: BoxDecoration( + color: isSel ? const Color(0xFF2563EB) : Colors.white, + shape: BoxShape.circle, + border: Border.all( + color: isSel ? const Color(0xFF2563EB) : const Color(0xFFCBD5E1), + width: 1, + ), + boxShadow: isSel + ? [ + BoxShadow( + color: const Color(0xFF2563EB).withOpacity(0.3), + blurRadius: 4, + offset: const Offset(0, 2), + ) + ] + : null, + ), + alignment: Alignment.center, + child: Text( + '$d', + style: TextStyle( + fontFamily: 'Inter', + color: isSel ? Colors.white : const Color(0xFF334155), + fontWeight: FontWeight.bold, + fontSize: 12, + ), + ), + ), + ); + }), + ), + ), + + // Section 3: Pilihan Siswa + const SizedBox(height: 20), + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text( + '3. Pilih Siswa (${_selectedStudentIds.length}/${widget.muridList.length})', + style: const TextStyle( + fontFamily: 'Inter', + fontSize: 14, + fontWeight: FontWeight.bold, + color: Color(0xFF1E293B), + ), + ), + Row( + children: [ + TextButton( + onPressed: _isSaving || _selectedStatusKey == 'libur' + ? null + : () { + setState(() { + _selectedStudentIds = widget.muridList + .map((m) => m['id_tabel']?.toString()) + .whereType() + .toSet(); + }); + }, + style: TextButton.styleFrom( + padding: const EdgeInsets.symmetric(horizontal: 8, vertical: 4), + minimumSize: Size.zero, + tapTargetSize: MaterialTapTargetSize.shrinkWrap, + ), + child: const Text('Semua', style: TextStyle(fontFamily: 'Inter', fontSize: 12, fontWeight: FontWeight.bold)), + ), + const SizedBox(width: 8), + TextButton( + onPressed: _isSaving || _selectedStatusKey == 'libur' + ? null + : () { + setState(() { + _selectedStudentIds.clear(); + }); + }, + style: TextButton.styleFrom( + padding: const EdgeInsets.symmetric(horizontal: 8, vertical: 4), + minimumSize: Size.zero, + tapTargetSize: MaterialTapTargetSize.shrinkWrap, + ), + child: const Text('Kosongkan', style: TextStyle(fontFamily: 'Inter', fontSize: 12, fontWeight: FontWeight.bold, color: Colors.red)), + ), + ], + ), + ], + ), + if (_selectedStatusKey == 'libur') ...[ + const SizedBox(height: 8), + Container( + padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 8), + decoration: BoxDecoration( + color: const Color(0xFFEFF6FF), + borderRadius: BorderRadius.circular(8), + border: Border.all(color: const Color(0xFFBFDBFE)), + ), + child: const Row( + children: [ + Icon(Icons.info_outline, color: Color(0xFF2563EB), size: 18), + SizedBox(width: 8), + Expanded( + child: Text( + 'Hari Libur otomatis berlaku untuk semua siswa.', + style: TextStyle( + fontFamily: 'Inter', + color: Color(0xFF1D4ED8), + fontSize: 12, + fontWeight: FontWeight.w500, + ), + ), + ), + ], + ), + ), + ], + const SizedBox(height: 8), + Container( + height: 200, + decoration: BoxDecoration( + color: const Color(0xFFF8FAFC), + borderRadius: BorderRadius.circular(12), + border: Border.all(color: const Color(0xFFE2E8F0)), + ), + child: Scrollbar( + thumbVisibility: true, + child: ListView.builder( + shrinkWrap: true, + itemCount: widget.muridList.length, + itemBuilder: (context, index) { + final m = widget.muridList[index]; + final idM = m['id_tabel']?.toString(); + final nama = m['nama']?.toString() ?? 'Siswa'; + final nis = m['nis']?.toString() ?? '-'; + final isSel = idM != null && _selectedStudentIds.contains(idM); + + return InkWell( + onTap: _isSaving || idM == null || _selectedStatusKey == 'libur' + ? null + : () { + setState(() { + if (isSel) { + _selectedStudentIds.remove(idM); + } else { + _selectedStudentIds.add(idM); + } + }); + }, + child: Padding( + padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 8), + child: Row( + children: [ + SizedBox( + width: 20, + height: 20, + child: Checkbox( + value: isSel, + activeColor: const Color(0xFF2563EB), + onChanged: _isSaving || idM == null || _selectedStatusKey == 'libur' + ? null + : (val) { + setState(() { + if (val == true) { + _selectedStudentIds.add(idM); + } else { + _selectedStudentIds.remove(idM); + } + }); + }, + ), + ), + const SizedBox(width: 12), + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + nama, + style: const TextStyle( + fontFamily: 'Inter', + fontSize: 13, + fontWeight: FontWeight.w600, + color: Color(0xFF1E293B), + ), + ), + Text( + 'NIS: $nis', + style: TextStyle( + fontFamily: 'Inter', + fontSize: 11, + color: Colors.grey[500], + ), + ), + ], + ), + ), + ], + ), + ), + ); + }, + ), + ), + ), + const SizedBox(height: 24), + + // Actions Buttons + Row( + children: [ + Expanded( + child: OutlinedButton( + onPressed: _isSaving ? null : () => Navigator.pop(context), + style: OutlinedButton.styleFrom( + padding: const EdgeInsets.symmetric(vertical: 14), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(12), + ), + ), + child: const Text( + 'Batal', + style: TextStyle( + fontFamily: 'Inter', + fontWeight: FontWeight.bold, + ), + ), + ), + ), + const SizedBox(width: 12), + Expanded( + child: ElevatedButton( + onPressed: _isSaving ? null : _saveChanges, + style: ElevatedButton.styleFrom( + backgroundColor: const Color(0xFF2563EB), + foregroundColor: Colors.white, + padding: const EdgeInsets.symmetric(vertical: 14), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(12), + ), + ), + child: _isSaving + ? const SizedBox( + width: 20, + height: 20, + child: CircularProgressIndicator( + strokeWidth: 2, + valueColor: AlwaysStoppedAnimation(Colors.white), + ), + ) + : const Text( + 'Simpan', + style: TextStyle( + fontFamily: 'Inter', + fontWeight: FontWeight.bold, + ), + ), + ), + ), + ], + ), + ], + ), + ), + ); + } +} diff --git a/lib/dashboard/d_guru/function/absen_excel/storage_helper.dart b/lib/dashboard/d_guru/function/absen_excel/storage_helper.dart new file mode 100644 index 0000000..fca8bc7 --- /dev/null +++ b/lib/dashboard/d_guru/function/absen_excel/storage_helper.dart @@ -0,0 +1,47 @@ +import 'dart:io'; +import 'package:path_provider/path_provider.dart'; + +class StorageHelper { + /// Mendapatkan path direktori Download publik di Android atau Documents di iOS/desktop. + static Future getDownloadDirectoryPath() async { + if (Platform.isAndroid) { + const path = '/storage/emulated/0/Download'; + final dir = Directory(path); + if (await dir.exists()) { + return path; + } + // Fallback 1: external storage directory + final externalDir = await getExternalStorageDirectory(); + if (externalDir != null) { + return externalDir.path; + } + // Fallback 2: cache / temporary directory + final tempDir = await getTemporaryDirectory(); + return tempDir.path; + } else { + final appDocDir = await getApplicationDocumentsDirectory(); + return appDocDir.path; + } + } + + /// Mendapatkan path file unik dengan menambahkan suffix (1), (2), dst. jika file sudah ada. + static String getUniqueFilePath(String dirPath, String baseName, String extension) { + final cleanExt = extension.startsWith('.') ? extension.substring(1) : extension; + String targetPath = '$dirPath/$baseName.$cleanExt'; + File file = File(targetPath); + if (!file.existsSync()) { + return targetPath; + } + + int index = 1; + while (true) { + targetPath = '$dirPath/$baseName ($index).$cleanExt'; + file = File(targetPath); + if (!file.existsSync()) { + return targetPath; + } + index++; + } + } +} + diff --git a/lib/dashboard/d_guru/function/absensi_baru/absen_siswa.dart b/lib/dashboard/d_guru/function/absensi_baru/absen_siswa.dart new file mode 100644 index 0000000..fc57ccd --- /dev/null +++ b/lib/dashboard/d_guru/function/absensi_baru/absen_siswa.dart @@ -0,0 +1,758 @@ +import 'package:flutter/material.dart'; +import 'package:intl/intl.dart'; +import 'package:apk/dashboard/d_guru/database/db_absensi.dart'; +import 'package:apk/dashboard/d_guru/function/absen_excel/pdf/absen_baru_pdf.dart'; + +class AbsenSiswaPage extends StatefulWidget { + final String judul; + final String date; + + const AbsenSiswaPage({ + super.key, + required this.judul, + required this.date, + }); + + @override + State createState() => _AbsenSiswaPageState(); +} + +class _AbsenSiswaPageState extends State { + bool _isLoading = true; + bool _isTableMode = false; + bool _isExporting = false; + String? _errorMessage; + List> _students = []; + + // Map id_tabel -> selected status ('hadir', 'izin', 'sakit', 'alpha', or null) + final Map _selectedStatus = {}; + + final List _statusOptions = ['hadir', 'izin', 'sakit', 'alpha']; + final Map _statusLabels = { + 'hadir': 'Hadir', + 'izin': 'Izin', + 'sakit': 'Sakit', + 'alpha': 'Alpha', + + }; + final Map _statusColors = { + 'hadir': const Color(0xFF10B981), + 'izin': const Color(0xFFF59E0B), + 'sakit': const Color(0xFF3B82F6), + 'alpha': const Color(0xFFEF4444), + + }; + final Map _statusIcons = { + 'hadir': Icons.check_circle, + 'izin': Icons.mail_outline, + 'sakit': Icons.local_hospital, + 'alpha': Icons.cancel, + + }; + + @override + void initState() { + super.initState(); + _fetchStudents(); + } + + Future _fetchStudents() async { + setState(() { + _isLoading = true; + _errorMessage = null; + }); + + try { + final students = await DbAbsensi().getSessionStudents(widget.judul, widget.date); + if (!mounted) return; + + // Initialize selected statuses from database + for (var s in students) { + final id = s['id_tabel'].toString(); + String? status; + if (s['Null_data']?.toString() == 'Belum Absen') { + status = null; + } else if (s['ket_hadir'] != null && s['ket_hadir'].toString().isNotEmpty) { + status = 'hadir'; + } else if (s['ket_izin'] != null && s['ket_izin'].toString().isNotEmpty) { + status = 'izin'; + } else if (s['ket_sakit'] != null && s['ket_sakit'].toString().isNotEmpty) { + status = 'sakit'; + } else if (s['ket_alpha'] != null && s['ket_alpha'].toString().isNotEmpty) { + status = 'alpha'; + } else if (s['ket_libur'] != null && s['ket_libur'].toString().isNotEmpty) { + status = 'libur'; + } + _selectedStatus[id] = status; + } + + setState(() { + _students = students; + _isLoading = false; + }); + } catch (e) { + if (!mounted) return; + setState(() { + _errorMessage = 'Gagal memuat data siswa: $e'; + _isLoading = false; + }); + } + } + + Future _updateStatus(String idTabel, String? status) async { + setState(() { + _selectedStatus[idTabel] = status; + }); + + try { + await DbAbsensi().updateStudentSessionStatus( + idTabel: idTabel, + selectedStatus: status, + ); + } catch (e) { + if (!mounted) return; + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text('Gagal menyimpan: $e', style: const TextStyle(fontFamily: 'Inter'))), + ); + } + } + + Future _deleteSession() async { + final confirm = await showDialog( + context: context, + builder: (ctx) => AlertDialog( + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(16)), + title: const Text('Hapus Sesi', style: TextStyle(fontFamily: 'Inter', fontWeight: FontWeight.bold)), + content: const Text('Apakah Anda yakin ingin menghapus sesi absensi ini? Data tidak dapat dikembalikan.', + style: TextStyle(fontFamily: 'Inter')), + actions: [ + TextButton( + onPressed: () => Navigator.pop(ctx, false), + child: const Text('Batal', style: TextStyle(fontFamily: 'Inter', color: Color(0xFF64748B))), + ), + ElevatedButton( + style: ElevatedButton.styleFrom( + backgroundColor: const Color(0xFFEF4444), + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(8)), + ), + onPressed: () => Navigator.pop(ctx, true), + child: const Text('Hapus', style: TextStyle(fontFamily: 'Inter', color: Colors.white)), + ), + ], + ), + ); + + if (confirm == true) { + try { + await DbAbsensi().deleteSession(widget.judul, widget.date); + if (!mounted) return; + Navigator.pop(context); + } catch (e) { + if (!mounted) return; + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text('Gagal menghapus: $e', style: const TextStyle(fontFamily: 'Inter'))), + ); + } + } + } + + void _switchToTableMode() { + setState(() { + _isTableMode = true; + }); + } + + Future _exportPdf() async { + setState(() => _isExporting = true); + + try { + // Build student data list for PDF + final List> pdfStudents = []; + for (int i = 0; i < _students.length; i++) { + final s = _students[i]; + final id = s['id_tabel'].toString(); + final status = _selectedStatus[id]; + final nama = s['murid']?['nama']?.toString() ?? 'Tanpa Nama'; + final nis = s['murid']?['nis']; + + String keterangan = '-'; + if (status != null && _statusLabels.containsKey(status)) { + keterangan = _statusLabels[status]!; + } + + pdfStudents.add({ + 'no': i + 1, + 'nis': nis, + 'nama': nama, + 'keterangan': keterangan, + }); + } + + final path = await exportAbsenBaruPdf( + judul: widget.judul, + date: widget.date, + students: pdfStudents, + ); + + if (!mounted) return; + + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + content: Text('PDF berhasil disimpan di: $path', style: const TextStyle(fontFamily: 'Inter')), + duration: const Duration(seconds: 4), + ), + ); + } catch (e) { + if (!mounted) return; + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text('Gagal export PDF: $e', style: const TextStyle(fontFamily: 'Inter'))), + ); + } finally { + if (mounted) setState(() => _isExporting = false); + } + } + + String _getFormattedDate() { + try { + final parsed = DateTime.parse(widget.date); + return DateFormat('dd MMMM yyyy', 'id_ID').format(parsed); + } catch (_) { + return widget.date; + } + } + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: const Color(0xFFF8FAFC), + appBar: AppBar( + titleSpacing: 0, + title: Text(_isTableMode ? 'Hasil Absensi' : 'Absen Siswa'), + titleTextStyle: const TextStyle( + fontFamily: 'Inter', + fontSize: 18, + fontWeight: FontWeight.w700, + color: Colors.white, + ), + backgroundColor: const Color(0xFF2563EB), + elevation: 0, + leading: IconButton( + icon: const Icon(Icons.arrow_back, color: Colors.white), + onPressed: () => Navigator.pop(context), + ), + ), + body: _isLoading + ? const Center(child: CircularProgressIndicator()) + : _errorMessage != null + ? Center( + child: Padding( + padding: const EdgeInsets.all(16.0), + child: Text(_errorMessage!, + style: const TextStyle(color: Colors.red, fontFamily: 'Inter')), + ), + ) + : _isTableMode + ? _buildTableMode() + : _buildChecklistMode(), + ); + } + + // ─── CHECKLIST MODE ────────────────────────────────────────────── + Widget _buildChecklistMode() { + return Column( + children: [ + // Header info + Container( + width: double.infinity, + padding: const EdgeInsets.all(20), + decoration: const BoxDecoration( + color: Color(0xFF2563EB), + borderRadius: BorderRadius.only( + bottomLeft: Radius.circular(24), + bottomRight: Radius.circular(24), + ), + ), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + widget.judul, + style: const TextStyle( + fontFamily: 'Inter', + fontSize: 20, + fontWeight: FontWeight.bold, + color: Colors.white, + ), + ), + const SizedBox(height: 4), + Row( + children: [ + const Icon(Icons.calendar_today, color: Colors.white70, size: 14), + const SizedBox(width: 6), + Text( + _getFormattedDate(), + style: const TextStyle( + fontFamily: 'Inter', + fontSize: 14, + color: Colors.white70, + ), + ), + const Spacer(), + Container( + padding: const EdgeInsets.symmetric(horizontal: 10, vertical: 4), + decoration: BoxDecoration( + color: Colors.white.withOpacity(0.2), + borderRadius: BorderRadius.circular(20), + ), + child: Text( + '${_students.length} Siswa', + style: const TextStyle( + fontFamily: 'Inter', + fontSize: 12, + color: Colors.white, + fontWeight: FontWeight.w500, + ), + ), + ), + ], + ), + ], + ), + ), + + // Student list + Expanded( + child: _students.isEmpty + ? Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Icon(Icons.people_outline, size: 80, color: Colors.grey[300]), + const SizedBox(height: 16), + Text('Tidak ada siswa', + style: TextStyle(fontFamily: 'Inter', fontSize: 18, fontWeight: FontWeight.bold, color: Colors.grey[600])), + ], + ), + ) + : ListView.builder( + padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 12), + itemCount: _students.length, + itemBuilder: (context, index) { + final student = _students[index]; + final idTabel = student['id_tabel'].toString(); + final nama = student['murid']?['nama']?.toString() ?? 'Tanpa Nama'; + final nis = student['murid']?['nis']?.toString() ?? '-'; + final currentStatus = _selectedStatus[idTabel]; + + return Container( + margin: const EdgeInsets.only(bottom: 12), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(16), + boxShadow: [ + BoxShadow( + color: Colors.black.withOpacity(0.04), + blurRadius: 8, + offset: const Offset(0, 2), + ), + ], + ), + child: Padding( + padding: const EdgeInsets.all(16), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + // Student info + Row( + children: [ + Container( + width: 40, + height: 40, + decoration: BoxDecoration( + color: const Color(0xFFEFF6FF), + borderRadius: BorderRadius.circular(10), + ), + child: Center( + child: Text( + '${index + 1}', + style: const TextStyle( + fontFamily: 'Inter', + fontSize: 16, + fontWeight: FontWeight.bold, + color: Color(0xFF2563EB), + ), + ), + ), + ), + const SizedBox(width: 12), + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + nama, + style: const TextStyle( + fontFamily: 'Inter', + fontSize: 15, + fontWeight: FontWeight.w600, + color: Color(0xFF1E293B), + ), + maxLines: 1, + overflow: TextOverflow.ellipsis, + ), + Text( + 'NIS: $nis', + style: const TextStyle( + fontFamily: 'Inter', + fontSize: 12, + color: Color(0xFF94A3B8), + ), + ), + ], + ), + ), + ], + ), + const SizedBox(height: 12), + // Status chips (radio-style) + Wrap( + spacing: 6, + runSpacing: 6, + children: _statusOptions.map((status) { + final isSelected = currentStatus == status; + final color = _statusColors[status]!; + return GestureDetector( + onTap: () { + // Toggle: tap again to unselect + final newStatus = isSelected ? null : status; + _updateStatus(idTabel, newStatus); + }, + child: AnimatedContainer( + duration: const Duration(milliseconds: 200), + padding: const EdgeInsets.symmetric(horizontal: 10, vertical: 6), + decoration: BoxDecoration( + color: isSelected ? color.withOpacity(0.15) : const Color(0xFFF8FAFC), + borderRadius: BorderRadius.circular(20), + border: Border.all( + color: isSelected ? color : const Color(0xFFE2E8F0), + width: isSelected ? 1.5 : 1, + ), + ), + child: Row( + mainAxisSize: MainAxisSize.min, + children: [ + Icon( + isSelected ? _statusIcons[status] : Icons.radio_button_unchecked, + size: 16, + color: isSelected ? color : const Color(0xFF94A3B8), + ), + const SizedBox(width: 4), + Text( + _statusLabels[status]!, + style: TextStyle( + fontFamily: 'Inter', + fontSize: 12, + fontWeight: isSelected ? FontWeight.w600 : FontWeight.w400, + color: isSelected ? color : const Color(0xFF64748B), + ), + ), + ], + ), + ), + ); + }).toList(), + ), + ], + ), + ), + ); + }, + ), + ), + + // Bottom buttons + Container( + padding: const EdgeInsets.all(16), + decoration: BoxDecoration( + color: Colors.white, + boxShadow: [ + BoxShadow( + color: Colors.black.withOpacity(0.05), + blurRadius: 10, + offset: const Offset(0, -2), + ), + ], + ), + child: Row( + children: [ + Expanded( + child: OutlinedButton.icon( + onPressed: _deleteSession, + icon: const Icon(Icons.delete_outline, color: Color(0xFFEF4444)), + label: const Text('Hapus', style: TextStyle(fontFamily: 'Inter', color: Color(0xFFEF4444))), + style: OutlinedButton.styleFrom( + side: const BorderSide(color: Color(0xFFEF4444)), + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(12)), + padding: const EdgeInsets.symmetric(vertical: 14), + ), + ), + ), + const SizedBox(width: 12), + Expanded( + flex: 2, + child: ElevatedButton.icon( + onPressed: _switchToTableMode, + icon: const Icon(Icons.check, color: Colors.white), + label: const Text('Selesai', + style: TextStyle(fontFamily: 'Inter', color: Colors.white, fontWeight: FontWeight.w600)), + style: ElevatedButton.styleFrom( + backgroundColor: const Color(0xFF2563EB), + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(12)), + padding: const EdgeInsets.symmetric(vertical: 14), + elevation: 0, + ), + ), + ), + ], + ), + ), + ], + ); + } + + // ─── TABLE MODE ────────────────────────────────────────────────── + Widget _buildTableMode() { + return Column( + children: [ + // Header + Container( + width: double.infinity, + padding: const EdgeInsets.symmetric(horizontal: 20, vertical: 16), + decoration: BoxDecoration( + color: Colors.white, + boxShadow: [ + BoxShadow( + color: Colors.black.withOpacity(0.04), + blurRadius: 8, + offset: const Offset(0, 2), + ), + ], + ), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text( + widget.judul, + style: const TextStyle( + fontFamily: 'Inter', + fontSize: 18, + fontWeight: FontWeight.bold, + color: Color(0xFF1E293B), + ), + ), + Container( + padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 6), + decoration: BoxDecoration( + color: const Color(0xFFEFF6FF), + borderRadius: BorderRadius.circular(20), + ), + child: Row( + mainAxisSize: MainAxisSize.min, + children: [ + const Icon(Icons.calendar_today, size: 14, color: Color(0xFF2563EB)), + const SizedBox(width: 6), + Text( + _getFormattedDate(), + style: const TextStyle( + fontFamily: 'Inter', + fontSize: 13, + color: Color(0xFF2563EB), + fontWeight: FontWeight.w500, + ), + ), + ], + ), + ), + ], + ), + ), + + // Summary row + Padding( + padding: const EdgeInsets.all(16), + child: Row( + children: _statusOptions.map((status) { + final count = _selectedStatus.values.where((v) => v == status).length; + return Expanded( + child: Container( + margin: const EdgeInsets.symmetric(horizontal: 3), + padding: const EdgeInsets.symmetric(vertical: 10), + decoration: BoxDecoration( + color: _statusColors[status]!.withOpacity(0.1), + borderRadius: BorderRadius.circular(10), + border: Border.all(color: _statusColors[status]!.withOpacity(0.3)), + ), + child: Column( + children: [ + Text( + '$count', + style: TextStyle( + fontFamily: 'Inter', + fontSize: 18, + fontWeight: FontWeight.bold, + color: _statusColors[status], + ), + ), + Text( + _statusLabels[status]!, + style: TextStyle( + fontFamily: 'Inter', + fontSize: 10, + color: _statusColors[status], + ), + ), + ], + ), + ), + ); + }).toList(), + ), + ), + + // Table + Expanded( + child: SingleChildScrollView( + padding: const EdgeInsets.symmetric(horizontal: 16), + child: Container( + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(16), + boxShadow: [ + BoxShadow( + color: Colors.black.withOpacity(0.04), + blurRadius: 8, + offset: const Offset(0, 2), + ), + ], + ), + child: ClipRRect( + borderRadius: BorderRadius.circular(16), + child: DataTable( + headingRowColor: WidgetStateProperty.all(const Color(0xFF2563EB)), + headingTextStyle: const TextStyle( + fontFamily: 'Inter', + fontSize: 13, + fontWeight: FontWeight.w600, + color: Colors.white, + ), + dataTextStyle: const TextStyle( + fontFamily: 'Inter', + fontSize: 13, + color: Color(0xFF334155), + ), + columnSpacing: 16, + columns: const [ + DataColumn(label: Text('No')), + DataColumn(label: Text('Nama')), + DataColumn(label: Text('Keterangan')), + ], + rows: List.generate(_students.length, (index) { + final s = _students[index]; + final id = s['id_tabel'].toString(); + final nama = s['murid']?['nama']?.toString() ?? 'Tanpa Nama'; + final status = _selectedStatus[id]; + final label = status != null ? _statusLabels[status]! : '-'; + final color = status != null ? _statusColors[status]! : const Color(0xFF94A3B8); + + return DataRow( + color: WidgetStateProperty.resolveWith( + (states) => index.isEven ? const Color(0xFFF8FAFC) : Colors.white, + ), + cells: [ + DataCell(Text('${index + 1}')), + DataCell(Text(nama, maxLines: 1, overflow: TextOverflow.ellipsis)), + DataCell( + Container( + padding: const EdgeInsets.symmetric(horizontal: 10, vertical: 4), + decoration: BoxDecoration( + color: color.withOpacity(0.1), + borderRadius: BorderRadius.circular(20), + ), + child: Text( + label, + style: TextStyle( + fontFamily: 'Inter', + fontSize: 12, + fontWeight: FontWeight.w600, + color: color, + ), + ), + ), + ), + ], + ); + }), + ), + ), + ), + ), + ), + + // Bottom buttons (Back to checklist + Download PDF) + Container( + padding: const EdgeInsets.all(16), + decoration: BoxDecoration( + color: Colors.white, + boxShadow: [ + BoxShadow( + color: Colors.black.withOpacity(0.05), + blurRadius: 10, + offset: const Offset(0, -2), + ), + ], + ), + child: Row( + children: [ + Expanded( + child: OutlinedButton.icon( + onPressed: () => setState(() => _isTableMode = false), + icon: const Icon(Icons.edit, color: Color(0xFF2563EB), size: 18), + label: const Text('Edit', style: TextStyle(fontFamily: 'Inter', color: Color(0xFF2563EB))), + style: OutlinedButton.styleFrom( + side: const BorderSide(color: Color(0xFF2563EB)), + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(12)), + padding: const EdgeInsets.symmetric(vertical: 14), + ), + ), + ), + const SizedBox(width: 12), + Expanded( + flex: 2, + child: ElevatedButton.icon( + onPressed: _isExporting ? null : _exportPdf, + icon: _isExporting + ? const SizedBox( + width: 18, + height: 18, + child: CircularProgressIndicator(strokeWidth: 2, color: Colors.white), + ) + : const Icon(Icons.picture_as_pdf, color: Colors.white), + label: Text( + _isExporting ? 'Mengunduh...' : 'Download PDF', + style: const TextStyle(fontFamily: 'Inter', color: Colors.white, fontWeight: FontWeight.w600), + ), + style: ElevatedButton.styleFrom( + backgroundColor: const Color(0xFF10B981), + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(12)), + padding: const EdgeInsets.symmetric(vertical: 14), + elevation: 0, + ), + ), + ), + ], + ), + ), + ], + ); + } +} diff --git a/lib/dashboard/d_guru/function/absensi_baru/daftar_absen.dart b/lib/dashboard/d_guru/function/absensi_baru/daftar_absen.dart new file mode 100644 index 0000000..798b967 --- /dev/null +++ b/lib/dashboard/d_guru/function/absensi_baru/daftar_absen.dart @@ -0,0 +1,180 @@ +import 'package:flutter/material.dart'; +import 'package:intl/intl.dart'; +import 'package:apk/dashboard/d_guru/database/db_absensi.dart'; +import 'package:apk/dashboard/d_guru/function/absensi_baru/absen_siswa.dart'; + +class DaftarAbsenSesiPage extends StatefulWidget { + const DaftarAbsenSesiPage({super.key}); + + @override + State createState() => _DaftarAbsenSesiPageState(); +} + +class _DaftarAbsenSesiPageState extends State { + bool _isLoading = true; + String? _errorMessage; + List> _sessions = []; + + @override + void initState() { + super.initState(); + _fetchSessions(); + } + + Future _fetchSessions() async { + setState(() { + _isLoading = true; + _errorMessage = null; + }); + + try { + final sessions = await DbAbsensi().getCustomSessions(); + if (!mounted) return; + setState(() { + _sessions = sessions; + _isLoading = false; + }); + } catch (e) { + if (!mounted) return; + setState(() { + _errorMessage = 'Gagal memuat daftar absensi: $e'; + _isLoading = false; + }); + } + } + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: const Color(0xFFF8FAFC), + appBar: AppBar( + titleSpacing: 0, + title: const Text('Daftar Absensi'), + titleTextStyle: const TextStyle( + fontFamily: 'Inter', + fontSize: 18, + fontWeight: FontWeight.w700, + color: Colors.white, + ), + backgroundColor: const Color(0xFF2563EB), + elevation: 0, + leading: IconButton( + icon: const Icon(Icons.arrow_back, color: Colors.white), + onPressed: () => Navigator.pop(context), + ), + actions: [ + IconButton( + icon: const Icon(Icons.refresh, color: Colors.white), + onPressed: _fetchSessions, + ), + ], + ), + body: _isLoading + ? const Center(child: CircularProgressIndicator()) + : _errorMessage != null + ? Center( + child: Padding( + padding: const EdgeInsets.all(16.0), + child: Text(_errorMessage!, style: const TextStyle(color: Colors.red, fontFamily: 'Inter')), + ), + ) + : _sessions.isEmpty + ? Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Icon(Icons.list_alt, size: 80, color: Colors.grey[300]), + const SizedBox(height: 16), + Text( + 'Belum Ada Sesi', + style: TextStyle(fontFamily: 'Inter', fontSize: 18, fontWeight: FontWeight.bold, color: Colors.grey[600]), + ), + const SizedBox(height: 8), + Text( + 'Anda belum membuat sesi absensi baru.', + style: TextStyle(fontFamily: 'Inter', fontSize: 14, color: Colors.grey[500]), + ), + ], + ), + ) + : ListView.builder( + padding: const EdgeInsets.all(16), + itemCount: _sessions.length, + itemBuilder: (context, index) { + final session = _sessions[index]; + final judul = session['judul'] ?? 'Tanpa Judul'; + final dateStr = session['date'] ?? ''; + String formattedDate = dateStr; + try { + final parsedDate = DateTime.parse(dateStr); + formattedDate = DateFormat('dd MMMM yyyy', 'id_ID').format(parsedDate); + } catch (_) {} + + return Card( + margin: const EdgeInsets.only(bottom: 12), + elevation: 2, + shadowColor: Colors.black.withOpacity(0.05), + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(16)), + child: InkWell( + borderRadius: BorderRadius.circular(16), + onTap: () { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => AbsenSiswaPage( + judul: judul, + date: dateStr, + ), + ), + ).then((_) => _fetchSessions()); // Refresh after back + }, + child: Padding( + padding: const EdgeInsets.all(20), + child: Row( + children: [ + Container( + width: 50, + height: 50, + decoration: BoxDecoration( + color: const Color(0xFFEFF6FF), + borderRadius: BorderRadius.circular(12), + ), + child: const Icon(Icons.assignment, color: Color(0xFF2563EB)), + ), + const SizedBox(width: 16), + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + judul, + style: const TextStyle( + fontFamily: 'Inter', + fontSize: 16, + fontWeight: FontWeight.bold, + color: Color(0xFF1E293B), + ), + ), + const SizedBox(height: 4), + Text( + formattedDate, + style: const TextStyle( + fontFamily: 'Inter', + fontSize: 13, + color: Color(0xFF64748B), + ), + ), + ], + ), + ), + const Icon(Icons.chevron_right, color: Color(0xFF94A3B8)), + ], + ), + ), + ), + ); + }, + ), + ); + } +} diff --git a/lib/dashboard/d_guru/function/absensi_baru/form_daftar_absen.dart b/lib/dashboard/d_guru/function/absensi_baru/form_daftar_absen.dart new file mode 100644 index 0000000..b34360d --- /dev/null +++ b/lib/dashboard/d_guru/function/absensi_baru/form_daftar_absen.dart @@ -0,0 +1,219 @@ +import 'package:flutter/material.dart'; +import 'package:intl/intl.dart'; +import 'package:apk/dashboard/d_guru/database/db_absensi.dart'; +import 'package:apk/dashboard/d_guru/function/absensi_baru/daftar_absen.dart' as absen_baru; + +class FormDaftarAbsenPage extends StatefulWidget { + const FormDaftarAbsenPage({super.key}); + + @override + State createState() => _FormDaftarAbsenPageState(); +} + +class _FormDaftarAbsenPageState extends State { + final _judulController = TextEditingController(); + DateTime _selectedDate = DateTime.now(); + bool _isLoading = false; + + Future _selectDate(BuildContext context) async { + final DateTime? picked = await showDatePicker( + context: context, + initialDate: _selectedDate, + firstDate: DateTime(2000), + lastDate: DateTime(2101), + builder: (context, child) { + return Theme( + data: Theme.of(context).copyWith( + colorScheme: const ColorScheme.light( + primary: Color(0xFF2563EB), + onPrimary: Colors.white, + onSurface: Color(0xFF1E293B), + ), + textButtonTheme: TextButtonThemeData( + style: TextButton.styleFrom( + foregroundColor: const Color(0xFF2563EB), + ), + ), + ), + child: child!, + ); + }, + ); + if (picked != null && picked != _selectedDate) { + setState(() { + _selectedDate = picked; + }); + } + } + + Future _simpan() async { + final judul = _judulController.text.trim(); + if (judul.isEmpty) { + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text('Judul absensi tidak boleh kosong.')), + ); + return; + } + + setState(() { + _isLoading = true; + }); + + try { + await DbAbsensi().createNewSession(judul, _selectedDate); + if (!mounted) return; + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text('Sesi absensi berhasil dibuat!', style: TextStyle(fontFamily: 'Inter'))), + ); + // Navigate to daftar absen list + Navigator.pushReplacement( + context, + MaterialPageRoute(builder: (context) => const absen_baru.DaftarAbsenSesiPage()), + ); + } catch (e) { + if (!mounted) return; + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text('Error: $e', style: const TextStyle(fontFamily: 'Inter'))), + ); + } finally { + if (mounted) { + setState(() { + _isLoading = false; + }); + } + } + } + + @override + void dispose() { + _judulController.dispose(); + super.dispose(); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: const Color(0xFFF8FAFC), + appBar: AppBar( + titleSpacing: 0, + title: const Text('Buat Absensi Baru'), + titleTextStyle: const TextStyle( + fontFamily: 'Inter', + fontSize: 18, + fontWeight: FontWeight.w700, + color: Colors.white, + ), + backgroundColor: const Color(0xFF2563EB), + elevation: 0, + leading: IconButton( + icon: const Icon(Icons.arrow_back, color: Colors.white), + onPressed: () => Navigator.pop(context), + ), + ), + body: _isLoading + ? const Center(child: CircularProgressIndicator()) + : SingleChildScrollView( + padding: const EdgeInsets.all(24.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + const Text( + "Judul Absensi", + style: TextStyle( + fontFamily: 'Inter', + fontSize: 16, + fontWeight: FontWeight.w600, + color: Color(0xFF334155), + ), + ), + const SizedBox(height: 8), + TextField( + controller: _judulController, + decoration: InputDecoration( + hintText: "Misal: Ujian Tengah Semester", + hintStyle: const TextStyle(color: Color(0xFF94A3B8), fontFamily: 'Inter'), + filled: true, + fillColor: Colors.white, + contentPadding: const EdgeInsets.symmetric(horizontal: 16, vertical: 14), + border: OutlineInputBorder( + borderRadius: BorderRadius.circular(12), + borderSide: const BorderSide(color: Color(0xFFE2E8F0)), + ), + enabledBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(12), + borderSide: const BorderSide(color: Color(0xFFE2E8F0)), + ), + focusedBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(12), + borderSide: const BorderSide(color: Color(0xFF2563EB)), + ), + ), + style: const TextStyle(fontFamily: 'Inter'), + ), + const SizedBox(height: 24), + const Text( + "Tanggal", + style: TextStyle( + fontFamily: 'Inter', + fontSize: 16, + fontWeight: FontWeight.w600, + color: Color(0xFF334155), + ), + ), + const SizedBox(height: 8), + InkWell( + onTap: () => _selectDate(context), + borderRadius: BorderRadius.circular(12), + child: Container( + padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 14), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(12), + border: Border.all(color: const Color(0xFFE2E8F0)), + ), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text( + DateFormat('dd MMMM yyyy', 'id_ID').format(_selectedDate), + style: const TextStyle( + fontFamily: 'Inter', + fontSize: 16, + color: Color(0xFF1E293B), + ), + ), + const Icon(Icons.calendar_today, color: Color(0xFF64748B), size: 20), + ], + ), + ), + ), + const SizedBox(height: 48), + SizedBox( + width: double.infinity, + height: 50, + child: ElevatedButton( + onPressed: _simpan, + style: ElevatedButton.styleFrom( + backgroundColor: const Color(0xFF2563EB), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(12), + ), + elevation: 0, + ), + child: const Text( + "Simpan", + style: TextStyle( + fontFamily: 'Inter', + fontSize: 16, + fontWeight: FontWeight.w600, + color: Colors.white, + ), + ), + ), + ), + ], + ), + ), + ); + } +} diff --git a/lib/dashboard/d_guru/function/d_guru/daftar_guru.dart b/lib/dashboard/d_guru/function/d_guru/daftar_guru.dart new file mode 100644 index 0000000..2b4b299 --- /dev/null +++ b/lib/dashboard/d_guru/function/d_guru/daftar_guru.dart @@ -0,0 +1,308 @@ +import 'package:flutter/material.dart'; +import 'package:apk/dashboard/a_admin/widget/custom_button.dart'; + +class DetailGuruPage extends StatefulWidget { + final Map data; + + const DetailGuruPage({ + super.key, + required this.data, + }); + + @override + State createState() => _DetailGuruPageState(); +} + +class _DetailGuruPageState extends State { + late String _nik; + late String _nama; + late String _bidang; + late bool isWali; + + @override + void initState() { + super.initState(); + _nik = widget.data['nik']?.toString() ?? "Belum diisi"; + _nama = widget.data['name'] ?? "Belum diisi"; + _bidang = widget.data['bidang'] ?? ""; + isWali = widget.data['wali'] == true; + } + + String get _badge { + final classNameObj = widget.data['class_name']; + String kelas = ""; + if (classNameObj != null) { + if (classNameObj is List && classNameObj.isNotEmpty) { + kelas = classNameObj[0]['name_class']?.toString() ?? ""; + } else if (classNameObj is Map) { + kelas = classNameObj['name_class']?.toString() ?? ""; + } + } + + if (isWali) { + return kelas.isEmpty ? "Wali Kelas" : kelas; + } + return _bidang.isEmpty ? "Guru" : _bidang; + } + + IconData _iconForLabel(String label) { + switch (label) { + case "NIK": + return Icons.badge_outlined; + case "Nama": + return Icons.person_outline; + case "Bidang": + return Icons.menu_book_outlined; + default: + return Icons.info_outline; + } + } + + Widget _infoCard({ + required IconData icon, + required String title, + required String value, + bool isEmpty = false, + }) { + return CustomCard( + title: title, + subtitle: value, + icon: icon, + iconPosition: IconPosition.left, + iconColor: const Color(0xFF2563EB), + iconSize: 24, + iconContainerSize: 46, + iconDecoration: BoxDecoration( + color: const Color(0xFFEFF6FF), + borderRadius: BorderRadius.circular(9), + ), + backgroundColor: Colors.white, + borderColor: Colors.transparent, + borderWidth: 0, + borderRadius: 0, + margin: EdgeInsets.zero, + padding: const EdgeInsets.symmetric(horizontal: 20, vertical: 16), + boxShadow: const [], + titleStyle: const TextStyle( + fontFamily: 'Inter', + fontSize: 14, + fontWeight: FontWeight.w500, + color: Color(0xFF8FA0BA), + ), + subtitleStyle: TextStyle( + fontFamily: 'Inter', + fontSize: 16, + fontWeight: FontWeight.w700, + fontStyle: isEmpty ? FontStyle.italic : FontStyle.normal, + color: isEmpty ? const Color(0xFFC8D2E0) : const Color(0xFF172033), + ), + showIcon: true, + ); + } + + Widget _sectionCard(List children) { + return Container( + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(20), + border: Border.all(color: const Color(0xFFE8EEF6)), + boxShadow: [ + BoxShadow( + color: Colors.black.withOpacity(0.04), + blurRadius: 10, + offset: const Offset(0, 3), + ), + ], + ), + child: ClipRRect( + borderRadius: BorderRadius.circular(20), + child: Column( + children: [ + for (int i = 0; i < children.length; i++) ...[ + children[i], + if (i != children.length - 1) + const Divider( + height: 1, + thickness: 1, + color: Color(0xFFF0F4FA), + indent: 82, + endIndent: 20, + ), + ], + ], + ), + ), + ); + } + + Widget _sectionTitle(String title) { + return Padding( + padding: const EdgeInsets.only(left: 4, bottom: 12), + child: Text( + title, + style: const TextStyle( + fontFamily: 'Inter', + fontSize: 15, + fontWeight: FontWeight.w800, + color: Color(0xFF64748B), + ), + ), + ); + } + + Widget _profileHeader() { + return SizedBox( + height: 128, + child: Stack( + alignment: Alignment.center, + children: [ + CustomCard( + title: "", + showIcon: false, + height: 126, + backgroundColor: Colors.white, + borderColor: const Color(0xFFE8EEF6), + borderWidth: 1, + borderRadius: 18, + margin: EdgeInsets.zero, + padding: EdgeInsets.zero, + boxShadow: [ + BoxShadow( + color: Colors.black.withOpacity(0.13), + blurRadius: 12, + offset: const Offset(0, 5), + ), + ], + ), + Column( + mainAxisSize: MainAxisSize.min, + children: [ + Text( + _nama, + textAlign: TextAlign.center, + style: const TextStyle( + fontFamily: 'Inter', + fontSize: 23, + fontWeight: FontWeight.w800, + color: Color(0xFF172033), + ), + ), + const SizedBox(height: 10), + Row( + mainAxisSize: MainAxisSize.min, + children: [ + const Icon( + Icons.badge_outlined, + size: 18, + color: Color(0xFF8FA0BA), + ), + const SizedBox(width: 6), + Text( + "NIK: $_nik", + style: const TextStyle( + fontFamily: 'Inter', + fontSize: 15, + fontWeight: FontWeight.w600, + color: Color(0xFF64748B), + ), + ), + ], + ), + const SizedBox(height: 18), + Container( + padding: + const EdgeInsets.symmetric(horizontal: 12, vertical: 7), + decoration: BoxDecoration( + color: const Color(0xFFEFF6FF), + borderRadius: BorderRadius.circular(18), + ), + child: Row( + mainAxisSize: MainAxisSize.min, + children: [ + const Icon( + Icons.school_outlined, + size: 18, + color: Color(0xFF2563EB), + ), + const SizedBox(width: 6), + Text( + _badge, + style: const TextStyle( + fontFamily: 'Inter', + fontSize: 15, + fontWeight: FontWeight.w700, + color: Color(0xFF2563EB), + ), + ), + ], + ), + ), + ], + ), + ], + ), + ); + } + + Widget field(String label, String value) { + return _infoCard( + icon: _iconForLabel(label), + title: label, + value: value.isEmpty ? "Belum diisi" : value, + isEmpty: value.isEmpty, + ); + } + + Widget kelasField() { + final classNameObj = widget.data['class_name']; + String kelas = "Belum diisi"; + if (classNameObj != null) { + if (classNameObj is List && classNameObj.isNotEmpty) { + kelas = classNameObj[0]['name_class']?.toString() ?? "Belum diisi"; + } else if (classNameObj is Map) { + kelas = classNameObj['name_class']?.toString() ?? "Belum diisi"; + } + } + + return _infoCard( + icon: Icons.school_outlined, + title: "Kelas", + value: kelas.isEmpty ? "Belum diisi" : kelas, + isEmpty: kelas.isEmpty, + ); + } + + Widget waliField() { + return _infoCard( + icon: Icons.verified_user_outlined, + title: "Wali Kelas", + value: isWali ? "Ya" : "Tidak", + ); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: const Color(0xFFF4F7FB), + appBar: AppBar( + title: const Text("Detail Guru", style: TextStyle(fontFamily: 'Inter', fontWeight: FontWeight.w600)), + backgroundColor: Colors.white, + foregroundColor: const Color(0xFF1E293B), + elevation: 0, + ), + body: ListView( + padding: const EdgeInsets.fromLTRB(24, 18, 24, 28), + children: [ + _profileHeader(), + const SizedBox(height: 20), + _sectionTitle("Identitas"), + _sectionCard([ + field("Bidang", _bidang), + waliField(), + if (isWali || widget.data['id_class'] != null) kelasField(), + ]), + ], + ), + ); + } +} diff --git a/lib/dashboard/d_guru/function/detail_murid/detail_murid.dart b/lib/dashboard/d_guru/function/detail_murid/detail_murid.dart new file mode 100644 index 0000000..6188051 --- /dev/null +++ b/lib/dashboard/d_guru/function/detail_murid/detail_murid.dart @@ -0,0 +1,262 @@ +import 'package:flutter/material.dart'; +import 'package:intl/intl.dart'; +import 'package:supabase_flutter/supabase_flutter.dart'; + +class DetailMuridPage extends StatefulWidget { + final Map data; + + const DetailMuridPage({ + super.key, + required this.data, + }); + + @override + State createState() => _DetailMuridPageState(); +} + +class _DetailMuridPageState extends State { + bool _isLoading = true; + Map _fullData = {}; + + @override + void initState() { + super.initState(); + _fullData = Map.from(widget.data); + _fetchFullData(); + } + + Future _fetchFullData() async { + try { + final idTabel = widget.data['id_tabel']?.toString(); + if (idTabel == null) return; + + final response = await Supabase.instance.client + .from('murid') + .select('*, class_name(name_class)') + .eq('id_tabel', idTabel) + .maybeSingle(); + + if (response != null && mounted) { + setState(() { + _fullData = Map.from(response); + _isLoading = false; + }); + } else { + if (mounted) setState(() => _isLoading = false); + } + } catch (e) { + if (mounted) setState(() => _isLoading = false); + } + } + + String _formatTanggalLahir(dynamic value) { + if (value == null) return '-'; + try { + final date = DateTime.parse(value.toString()); + return DateFormat('dd MMMM yyyy', 'id_ID').format(date); + } catch (_) { + return value.toString(); + } + } + + @override + Widget build(BuildContext context) { + final nama = _fullData['nama']?.toString() ?? '-'; + final nis = _fullData['nis']?.toString() ?? '-'; + final gender = _fullData['gender']?.toString() ?? '-'; + final tanggalLahir = _formatTanggalLahir(_fullData['tanggal_lahir']); + final alamat = _fullData['alamat']?.toString() ?? '-'; + final orangTua = _fullData['orang_tua']?.toString() ?? '-'; + final noTele = _fullData['no_tele']?.toString() ?? '-'; + + return Scaffold( + backgroundColor: const Color(0xFFF8FAFC), + body: CustomScrollView( + slivers: [ + // ─── App Bar / Header ─────────────────────────────────────────── + SliverAppBar( + expandedHeight: 150, + pinned: true, + backgroundColor: const Color(0xFF2563EB), + leading: IconButton( + icon: const Icon(Icons.arrow_back_ios_new, color: Colors.white), + onPressed: () => Navigator.pop(context), + ), + title: const Text( + 'Detail Siswa', + style: TextStyle( + fontFamily: 'Inter', + fontSize: 18, + fontWeight: FontWeight.w700, + color: Colors.white, + ), + ), + flexibleSpace: FlexibleSpaceBar( + background: Container( + decoration: const BoxDecoration( + gradient: LinearGradient( + colors: [Color(0xFF1D4ED8), Color(0xFF3B82F6)], + begin: Alignment.topLeft, + end: Alignment.bottomRight, + ), + ), + child: _isLoading + ? const Center( + child: CircularProgressIndicator(color: Colors.white), + ) + : Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + const SizedBox(height: 48), + Text( + nama, + style: const TextStyle( + fontFamily: 'Inter', + fontSize: 18, + fontWeight: FontWeight.bold, + color: Colors.white, + ), + ), + const SizedBox(height: 6), + _badgeWidget('NIS: $nis'), + ], + ), + ), + ), + ), + + // ─── Content ───────────────────────────────────────────────────── + SliverToBoxAdapter( + child: _isLoading + ? const SizedBox() + : Padding( + padding: const EdgeInsets.all(16), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + _sectionTitle('Identitas Siswa'), + const SizedBox(height: 8), + _infoCard([ + _infoRow(Icons.wc_rounded, 'Jenis Kelamin', gender), + _divider(), + _infoRow(Icons.cake_rounded, 'Tanggal Lahir', tanggalLahir), + _divider(), + _infoRow(Icons.location_on_rounded, 'Alamat', alamat), + ]), + const SizedBox(height: 20), + _sectionTitle('Kontak Orang Tua'), + const SizedBox(height: 8), + _infoCard([ + _infoRow(Icons.person_rounded, 'Nama Orang Tua', orangTua), + _divider(), + _infoRow(Icons.phone_rounded, 'No. Telepon', noTele), + ]), + const SizedBox(height: 32), + ], + ), + ), + ), + ], + ), + ); + } + + Widget _badgeWidget(String text) { + return Container( + padding: const EdgeInsets.symmetric(horizontal: 10, vertical: 4), + decoration: BoxDecoration( + color: Colors.white.withOpacity(0.2), + borderRadius: BorderRadius.circular(20), + border: Border.all(color: Colors.white.withOpacity(0.5)), + ), + child: Text( + text, + style: const TextStyle( + fontFamily: 'Inter', + fontSize: 12, + color: Colors.white, + fontWeight: FontWeight.w500, + ), + ), + ); + } + + Widget _sectionTitle(String title) { + return Text( + title, + style: const TextStyle( + fontFamily: 'Inter', + fontSize: 14, + fontWeight: FontWeight.w700, + color: Color(0xFF64748B), + letterSpacing: 0.5, + ), + ); + } + + Widget _infoCard(List children) { + return Container( + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(16), + boxShadow: [ + BoxShadow( + color: Colors.black.withOpacity(0.06), + blurRadius: 12, + offset: const Offset(0, 4), + ), + ], + ), + child: Column(children: children), + ); + } + + Widget _infoRow(IconData icon, String label, String value) { + return Padding( + padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 14), + child: Row( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Container( + width: 36, + height: 36, + decoration: BoxDecoration( + color: const Color(0xFFEFF6FF), + borderRadius: BorderRadius.circular(10), + ), + child: Icon(icon, size: 18, color: const Color(0xFF2563EB)), + ), + const SizedBox(width: 14), + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + label, + style: const TextStyle( + fontFamily: 'Inter', + fontSize: 12, + color: Color(0xFF94A3B8), + fontWeight: FontWeight.w500, + ), + ), + const SizedBox(height: 3), + Text( + value, + style: const TextStyle( + fontFamily: 'Inter', + fontSize: 14, + color: Color(0xFF1E293B), + fontWeight: FontWeight.w600, + ), + ), + ], + ), + ), + ], + ), + ); + } + + Widget _divider() => const Divider(height: 1, indent: 66, color: Color(0xFFF1F5F9)); +} diff --git a/lib/dashboard/d_guru/function/f_pesan_g/anggota_g/member_kelas_g.dart b/lib/dashboard/d_guru/function/f_pesan_g/anggota_g/member_kelas_g.dart new file mode 100644 index 0000000..8bd4f52 --- /dev/null +++ b/lib/dashboard/d_guru/function/f_pesan_g/anggota_g/member_kelas_g.dart @@ -0,0 +1,172 @@ +import 'package:flutter/material.dart'; +import 'package:supabase_flutter/supabase_flutter.dart'; +import 'package:apk/dashboard/d_guru/database/db_guru.dart'; +import 'package:apk/dashboard/d_guru/database/db_murid.dart'; + +class MemberKelasPageG extends StatefulWidget { + final String classId; + const MemberKelasPageG({super.key, required this.classId}); + + @override + State createState() => _MemberKelasPageGState(); +} + +class _MemberKelasPageGState extends State { + final DbGuru _dbGuru = DbGuru(); + final DbMurid _dbMurid = DbMurid(); + + bool _isLoading = true; + String? _errorMessage; + + List> _gurusInClass = []; + List> _muridsInClass = []; + String _className = 'Kelas'; + + @override + void initState() { + super.initState(); + _fetchMembers(); + } + + Future _fetchMembers() async { + try { + final guruList = await _dbGuru.getAllGuru(); + final muridList = await _dbMurid.getAllMurid(); + + final List> gurus = []; + final List> murids = []; + + // Ambil nama kelas untuk judul + final supabase = Supabase.instance.client; + final classInfo = await supabase.from('class_name').select('name_class').eq('id_tabel', widget.classId).maybeSingle(); + if (classInfo?['name_class'] != null) { + _className = classInfo!['name_class'].toString(); + } + + // Process Guru (Cek id_class dan boolean 'wali') + for (var guru in guruList) { + if (guru['id_class']?.toString() == widget.classId) { + if (guru['wali'] == true) { + guru['role'] = 'Guru / Wali Kelas'; + } else { + guru['role'] = 'Guru'; + } + gurus.add(guru); + } + } + + // Process Murid + for (var murid in muridList) { + if (murid['id_class']?.toString() == widget.classId) { + murid['role'] = 'Murid'; + murids.add(murid); + } + } + + setState(() { + _gurusInClass = gurus; + _muridsInClass = murids; + _isLoading = false; + }); + } catch (e) { + setState(() { + _errorMessage = 'Gagal memuat anggota kelas: $e'; + _isLoading = false; + }); + } + } + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: Colors.white, + appBar: AppBar( + titleSpacing: 0, + title: Text('Anggota $_className'), + backgroundColor: const Color(0xFF2563EB), + iconTheme: const IconThemeData(color: Colors.white), + titleTextStyle: const TextStyle( + fontFamily: 'Inter', + fontSize: 16, + fontWeight: FontWeight.w700, + color: Colors.white, + ), + ), + body: _isLoading + ? const Center(child: CircularProgressIndicator()) + : _errorMessage != null + ? Center( + child: Padding( + padding: const EdgeInsets.all(16), + child: Text(_errorMessage!, style: const TextStyle(color: Colors.red, fontFamily: 'Inter')), + ), + ) + : _buildMemberList(), + ); + } + + Widget _buildMemberList() { + if (_gurusInClass.isEmpty && _muridsInClass.isEmpty) { + return const Center(child: Text('Belum ada anggota di kelas ini.', style: TextStyle(fontFamily: 'Inter'))); + } + + return ListView( + padding: const EdgeInsets.all(16), + children: [ + if (_gurusInClass.isNotEmpty) + const Padding( + padding: EdgeInsets.symmetric(vertical: 8.0, horizontal: 16.0), + child: Align( + alignment: Alignment.centerLeft, + child: Text( + 'Daftar Guru:', + style: TextStyle( + fontFamily: 'Inter', + color: Color(0xFF2563EB), + fontWeight: FontWeight.w600), + ), + ), + ), + ..._gurusInClass.map((g) { + final name = g['name'] ?? '-'; + + return ListTile( + leading: const CircleAvatar( + backgroundColor: Color(0xFF2563EB), + child: Icon(Icons.person, color: Colors.white), + ), + title: Text(name, style: const TextStyle(fontFamily: 'Inter', fontWeight: FontWeight.w500)), + subtitle: Text(g['role'] ?? 'Guru', style: const TextStyle(fontFamily: 'Inter', fontSize: 13)), + ); + }).toList(), + + if (_muridsInClass.isNotEmpty) + const Padding( + padding: EdgeInsets.symmetric(vertical: 8.0, horizontal: 16.0), + child: Align( + alignment: Alignment.centerLeft, + child: Text( + 'Daftar Murid:', + style: TextStyle( + fontFamily: 'Inter', + color: Color(0xFF2563EB), + fontWeight: FontWeight.w600), + ), + ), + ), + ..._muridsInClass.map((m) { + final name = m['nama'] ?? '-'; + + return ListTile( + leading: CircleAvatar( + backgroundColor: Colors.orange[400], + child: const Icon(Icons.person_outline, color: Colors.white), + ), + title: Text(name, style: const TextStyle(fontFamily: 'Inter', fontWeight: FontWeight.w500)), + subtitle: const Text('Murid', style: const TextStyle(fontFamily: 'Inter', fontSize: 13)), + ); + }).toList(), + ], + ); + } +} diff --git a/lib/dashboard/d_guru/function/f_pesan_g/anggota_g/member_sekolah_g.dart b/lib/dashboard/d_guru/function/f_pesan_g/anggota_g/member_sekolah_g.dart new file mode 100644 index 0000000..bb5f228 --- /dev/null +++ b/lib/dashboard/d_guru/function/f_pesan_g/anggota_g/member_sekolah_g.dart @@ -0,0 +1,165 @@ +import 'package:flutter/material.dart'; +import 'package:apk/dashboard/d_guru/database/db_guru.dart'; +import 'package:apk/dashboard/d_guru/database/db_murid.dart'; + +class MemberSekolah extends StatefulWidget { + const MemberSekolah({super.key}); + + @override + State createState() => _MemberSekolahState(); +} + +class _MemberSekolahState extends State { + bool _isLoading = true; + List> _listClass = []; + List> _listGuru = []; + List> _listMurid = []; + + @override + void initState() { + super.initState(); + _loadData(); + } + + Future _loadData() async { + try { + final classRes = await DbMurid().getKelas(); + final guruRes = await DbGuru().getAllGuru(); + final muridRes = await DbMurid().getAllMurid(); + + if (mounted) { + setState(() { + _listClass = classRes; + _listGuru = guruRes; + _listMurid = muridRes; + _isLoading = false; + }); + } + } catch (e) { + if (mounted) { + setState(() => _isLoading = false); + ScaffoldMessenger.of(context) + .showSnackBar(SnackBar(content: Text('Error: $e'))); + } + } + } + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + title: const Text('Anggota Grup Sekolah'), + backgroundColor: const Color(0xFF2563EB), + iconTheme: const IconThemeData(color: Colors.white), + titleTextStyle: const TextStyle( + fontFamily: 'Inter', + fontSize: 16, + fontWeight: FontWeight.w700, + color: Colors.white, + ), + ), + body: _isLoading + ? const Center(child: CircularProgressIndicator()) + : _buildMemberList(), + ); + } + + Widget _buildMemberList() { + // Kita bisa mengelompokkan berdasarkan id_class + // Tambahkan 1 kelas "Tanpa Kelas" jika ada yang id_class nya null + List> allClasses = List.from(_listClass); + allClasses.add({ + 'id_tabel': null, + 'name_class': 'Tanpa Kelas (Belum Dimasukkan Kelas)' + }); + + return ListView.builder( + padding: const EdgeInsets.all(16), + itemCount: allClasses.length, + itemBuilder: (context, index) { + final currentClass = allClasses[index]; + final classId = currentClass['id_tabel']; + final className = currentClass['name_class']; + + // Filter Guru dan Murid untuk kelas ini + final gurusInClass = _listGuru + .where((g) => g['id_class'] == classId) + .toList(); + final muridsInClass = _listMurid + .where((m) => m['id_class'] == classId) + .toList(); + + if (gurusInClass.isEmpty && muridsInClass.isEmpty && classId == null) { + return const SizedBox.shrink(); // Jangan tampilkan 'Tanpa Kelas' jika kosong + } + + return ExpansionTile( + title: Text( + className, + style: const TextStyle( + fontWeight: FontWeight.bold, + fontFamily: 'Inter', + ), + ), + children: [ + if (gurusInClass.isNotEmpty) + const Padding( + padding: EdgeInsets.symmetric(vertical: 8.0, horizontal: 16.0), + child: Align( + alignment: Alignment.centerLeft, + child: Text( + 'Daftar Guru:', + style: TextStyle( + fontFamily: 'Inter', + color: Color(0xFF2563EB), + fontWeight: FontWeight.w600), + ), + ), + ), + ...gurusInClass.map((g) { + final isWali = g['wali'] == true; + return ListTile( + leading: const CircleAvatar( + backgroundColor: Color(0xFF2563EB), + child: Icon(Icons.person, color: Colors.white), + ), + title: Text(g['name'] ?? '-'), + subtitle: Text(isWali ? 'Guru / Wali Kelas' : 'Guru'), + ); + }).toList(), + + if (muridsInClass.isNotEmpty) + const Padding( + padding: EdgeInsets.symmetric(vertical: 8.0, horizontal: 16.0), + child: Align( + alignment: Alignment.centerLeft, + child: Text( + 'Daftar Murid:', + style: TextStyle( + fontFamily: 'Inter', + color: Color(0xFF2563EB), + fontWeight: FontWeight.w600), + ), + ), + ), + ...muridsInClass.map((m) { + return ListTile( + leading: CircleAvatar( + backgroundColor: Colors.orange[400], + child: const Icon(Icons.person_outline, color: Colors.white), + ), + title: Text(m['nama'] ?? '-'), + subtitle: const Text('Murid'), + ); + }).toList(), + if (gurusInClass.isEmpty && muridsInClass.isEmpty) + const Padding( + padding: EdgeInsets.all(16.0), + child: Text('Belum ada anggota di kelas ini.'), + ) + ], + ); + }, + ); + } +} diff --git a/lib/dashboard/d_guru/function/f_pesan_g/chat_admin_g.dart b/lib/dashboard/d_guru/function/f_pesan_g/chat_admin_g.dart new file mode 100644 index 0000000..9998407 --- /dev/null +++ b/lib/dashboard/d_guru/function/f_pesan_g/chat_admin_g.dart @@ -0,0 +1,462 @@ +import 'dart:io'; +import 'package:flutter/material.dart'; +import 'package:shared_preferences/shared_preferences.dart'; +import 'package:supabase_flutter/supabase_flutter.dart'; +import 'package:apk/dashboard/d_guru/database/db_pesan_private.dart'; +import 'package:intl/intl.dart'; +import 'package:file_picker/file_picker.dart'; +import 'package:image_picker/image_picker.dart'; +import 'package:url_launcher/url_launcher.dart'; +import 'package:apk/dashboard/d_guru/database/storage/image_doc.dart'; +import 'package:apk/dashboard/d_guru/function/f_pesan_g/doc_image.dart'; +import 'package:apk/dashboard/d_guru/function/f_pesan_g/f_notif/chat_private_n.dart'; + +class ChatAdminPageG extends StatefulWidget { + const ChatAdminPageG({super.key}); + + @override + State createState() => _ChatAdminPageGState(); +} + +class _ChatAdminPageGState extends State { + final TextEditingController _messageController = TextEditingController(); + final DbPesanPrivate _dbPesan = DbPesanPrivate(); + + bool _isLoading = true; + String? _errorMessage; + String? _idAdmin; + String? _idGuru; + String? _userIdAdmin; + + Stream>>? _chatStream; + + @override + void initState() { + super.initState(); + _fetchIdentities(); + } + + Future _fetchIdentities() async { + try { + final prefs = await SharedPreferences.getInstance(); + final nik = prefs.getString('guru_nik'); + _userIdAdmin = prefs.getString('user_id_admin'); + + if (nik == null || _userIdAdmin == null) { + throw Exception('Data login tidak lengkap (NIK atau User ID kosong)'); + } + + // 1. Dapatkan id_guru (id_tabel) + final guruRes = await Supabase.instance.client + .from('guru') + .select('id_tabel') + .eq('user_id', _userIdAdmin!) + .eq('nik', nik) + .single(); + _idGuru = guruRes['id_tabel']?.toString(); + + // 2. Dapatkan id_admin dari user_admin. Kolom `id` di tabel user_admin + // adalah foreign key yang terhubung langsung ke auth.users(id). + final adminRes = await Supabase.instance.client + .from('user_admin') + .select('id') + .eq('id', _userIdAdmin!) + .single(); + _idAdmin = adminRes['id']?.toString(); + + if (_idGuru != null && _idAdmin != null) { + _chatStream = _dbPesan.getChatWithGuruStream(_idAdmin!, _idGuru!); + ChatPrivateNotification.setSenderUnread(_idAdmin!, false); + } + } catch (e) { + _errorMessage = 'Error fetching identities: $e'; + debugPrint(_errorMessage); + } finally { + if (mounted) { + setState(() { + _isLoading = false; + }); + } + } + } + + Future _pickAndSendImage() async { + final picker = ImagePicker(); + final pickedFile = await picker.pickImage(source: ImageSource.gallery); + if (pickedFile != null) { + final file = File(pickedFile.path); + final name = pickedFile.name; + setState(() => _isLoading = true); + final url = await ImageDocStorage.uploadFileObject(file, name); + if (url != null) { + final currentUserId = Supabase.instance.client.auth.currentUser?.id ?? _userIdAdmin; + final data = { + 'text': 'IMAGE_URL:$url', + 'pengirim_guru': _idGuru, + 'penerima_admin': _idAdmin, + 'user_id': currentUserId, + }; + await _dbPesan.sendMessage(data); + _fetchIdentities(); + } else { + setState(() => _isLoading = false); + if (mounted) ScaffoldMessenger.of(context).showSnackBar(const SnackBar(content: Text('Gagal unggah gambar'))); + } + } + } + + Future _pickAndSendDoc() async { + final result = await FilePicker.pickFiles( + type: FileType.custom, + allowedExtensions: ['pdf', 'doc', 'docx', 'xls', 'xlsx', 'txt', 'zip', 'rar'], + withData: true, + ); + if (result != null && result.files.single.bytes != null) { + final bytes = result.files.single.bytes!; + final name = result.files.single.name; + setState(() => _isLoading = true); + final url = await ImageDocStorage.uploadFile(bytes, name); + if (url != null) { + final currentUserId = Supabase.instance.client.auth.currentUser?.id ?? _userIdAdmin; + final data = { + 'text': 'DOC_URL:$url', + 'pengirim_guru': _idGuru, + 'penerima_admin': _idAdmin, + 'user_id': currentUserId, + }; + await _dbPesan.sendMessage(data); + _fetchIdentities(); + } else { + setState(() => _isLoading = false); + if (mounted) ScaffoldMessenger.of(context).showSnackBar(const SnackBar(content: Text('Gagal unggah dokumen'))); + } + } + } + + String _formatTime(String isoString) { + try { + final date = DateTime.parse(isoString).toLocal(); + return DateFormat('HH:mm').format(date); + } catch (_) { + return ''; + } + } + + Future _sendMessage() async { + if (_messageController.text.trim().isEmpty) return; + if (_idGuru == null || _idAdmin == null || _userIdAdmin == null) return; + + final text = _messageController.text.trim(); + _messageController.clear(); + + final currentUserId = Supabase.instance.client.auth.currentUser?.id ?? _userIdAdmin; + + final data = { + 'text': text, + 'pengirim_guru': _idGuru, + 'penerima_admin': _idAdmin, + 'user_id': currentUserId, + }; + + try { + await _dbPesan.sendMessage(data); + + // Reload pembacaan database setelah mengirim pesan + if (mounted) { + setState(() { + _chatStream = _dbPesan.getChatWithGuruStream(_idAdmin!, _idGuru!); + }); + } + } catch (e) { + if (mounted) { + ScaffoldMessenger.of(context).showSnackBar(SnackBar(content: Text('Error: $e'))); + } + } + } + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: const Color(0xFFF1F5F9), + appBar: AppBar( + titleSpacing: 0, + title: const Text('Chat Admin Sekolah'), + titleTextStyle: const TextStyle( + fontFamily: 'Inter', + fontSize: 18, + fontWeight: FontWeight.w700, + color: Colors.white, + ), + backgroundColor: const Color(0xFF2563EB), + elevation: 0, + iconTheme: const IconThemeData(color: Colors.white), + ), + body: _isLoading + ? const Center(child: CircularProgressIndicator()) + : _errorMessage != null + ? Center(child: Padding(padding: const EdgeInsets.all(16), child: Text(_errorMessage!, textAlign: TextAlign.center, style: const TextStyle(color: Colors.red)))) + : Column( + children: [ + Expanded( + child: _chatStream == null + ? const Center(child: Text('Gagal memuat ruang obrolan (stream null)')) + : StreamBuilder>>( + stream: _chatStream, + builder: (context, snapshot) { + if (snapshot.connectionState == ConnectionState.waiting) { + return const Center(child: CircularProgressIndicator()); + } + if (snapshot.hasError) { + return Center(child: Text('Error: ${snapshot.error}')); + } + + final messages = snapshot.data ?? []; + + if (messages.isEmpty) { + return const Center( + child: Text( + 'Belum ada pesan.\nKirim pesan pertama Anda!', + textAlign: TextAlign.center, + style: TextStyle(color: Colors.grey, fontFamily: 'Inter'), + ), + ); + } + + return ListView.builder( + reverse: true, + padding: const EdgeInsets.all(16), + itemCount: messages.length, + itemBuilder: (context, index) { + final msg = messages[messages.length - 1 - index]; + final isMe = msg['pengirim_guru'] == _idGuru; + + return Align( + alignment: isMe ? Alignment.centerRight : Alignment.centerLeft, + child: Container( + margin: const EdgeInsets.symmetric(vertical: 4), + padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 10), + decoration: BoxDecoration( + color: isMe ? const Color(0xFF2563EB) : Colors.grey[200], + borderRadius: BorderRadius.only( + topLeft: const Radius.circular(16), + topRight: const Radius.circular(16), + bottomLeft: isMe ? const Radius.circular(16) : const Radius.circular(0), + bottomRight: isMe ? const Radius.circular(0) : const Radius.circular(16), + ), + ), + child: Column( + crossAxisAlignment: isMe ? CrossAxisAlignment.end : CrossAxisAlignment.start, + children: [ + if (msg['text']?.toString().startsWith('IMAGE_URL:') == true) + GestureDetector( + onTap: () { + Navigator.push(context, MaterialPageRoute(builder: (_) => DocImagePreviewPage(imageUrl: msg['text'].toString().replaceFirst('IMAGE_URL:', '')))); + }, + child: ClipRRect( + borderRadius: BorderRadius.circular(8), + child: Image.network( + msg['text'].toString().replaceFirst('IMAGE_URL:', ''), + width: 200, + height: 200, + fit: BoxFit.cover, + ), + ), + ) + else if (msg['text']?.toString().startsWith('DOC_URL:') == true) + Builder( + builder: (context) { + final url = msg['text'].toString().replaceFirst('DOC_URL:', ''); + final uri = Uri.tryParse(url); + String fileName = 'Dokumen'; + String extension = 'FILE'; + + if (uri != null && uri.pathSegments.isNotEmpty) { + fileName = Uri.decodeComponent(uri.pathSegments.last); + final regex = RegExp(r'^\d{13}_'); + fileName = fileName.replaceFirst(regex, ''); + final extIndex = fileName.lastIndexOf('.'); + if (extIndex != -1 && extIndex < fileName.length - 1) { + extension = fileName.substring(extIndex + 1).toUpperCase(); + } + } + + return GestureDetector( + onTap: () async { + final parsedUrl = Uri.parse(url); + try { + await launchUrl(parsedUrl, mode: LaunchMode.externalApplication); + } catch (e) { + if (context.mounted) { + ScaffoldMessenger.of(context).showSnackBar(const SnackBar(content: Text('Tidak dapat membuka dokumen'))); + } + } + }, + child: Container( + constraints: const BoxConstraints(maxWidth: 240), + padding: const EdgeInsets.all(8), + decoration: BoxDecoration( + color: isMe ? Colors.black.withOpacity(0.1) : Colors.white.withOpacity(0.5), + borderRadius: BorderRadius.circular(8), + ), + child: Row( + mainAxisSize: MainAxisSize.min, + children: [ + Container( + width: 42, + height: 52, + decoration: BoxDecoration( + color: isMe ? Colors.white.withOpacity(0.2) : Colors.black.withOpacity(0.05), + borderRadius: BorderRadius.circular(6), + ), + child: Center( + child: Text( + extension.length > 4 ? extension.substring(0, 4) : extension, + style: TextStyle( + fontSize: 12, + fontWeight: FontWeight.bold, + color: isMe ? Colors.white : Colors.black87, + ), + ), + ), + ), + const SizedBox(width: 12), + Flexible( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + fileName, + maxLines: 2, + overflow: TextOverflow.ellipsis, + style: TextStyle( + fontSize: 14, + color: isMe ? Colors.white : Colors.black87, + fontWeight: FontWeight.w500, + ), + ), + const SizedBox(height: 4), + Text( + '$extension • Dokumen', + style: TextStyle( + fontSize: 12, + color: isMe ? Colors.white70 : Colors.black54, + ), + ), + ], + ), + ), + ], + ), + ), + ); + }, + ) + else + Text( + msg['text'] ?? '', + style: TextStyle( + color: isMe ? Colors.white : Colors.black87, + ), + ), + const SizedBox(height: 4), + Text( + _formatTime(msg['created_at']), + style: TextStyle( + fontSize: 10, + color: isMe ? Colors.white70 : Colors.black54, + ), + ), + ], + ), + ), + ); + }, + ); + }, + ), + ), + _buildMessageInput(), + ], + ), + ); + } + + Widget _buildMessageInput() { + return Container( + padding: const EdgeInsets.all(8), + decoration: BoxDecoration( + color: Colors.white, + boxShadow: [ + BoxShadow( + color: Colors.black.withOpacity(0.05), + offset: const Offset(0, -2), + blurRadius: 4, + ), + ], + ), + child: SafeArea( + child: Row( + children: [ + PopupMenuButton( + icon: const Icon(Icons.attach_file, color: Colors.orange), + tooltip: 'Lampiran', + offset: const Offset(0, -120), + onSelected: (value) { + if (value == 'image') { + _pickAndSendImage(); + } else if (value == 'document') { + _pickAndSendDoc(); + } + }, + itemBuilder: (BuildContext context) => >[ + const PopupMenuItem( + value: 'image', + child: Row( + children: [ + Icon(Icons.image, color: Colors.blue), + SizedBox(width: 8), + Text('Gambar'), + ], + ), + ), + const PopupMenuItem( + value: 'document', + child: Row( + children: [ + Icon(Icons.insert_drive_file, color: Colors.red), + SizedBox(width: 8), + Text('Dokumen'), + ], + ), + ), + ], + ), + Expanded( + child: TextField( + controller: _messageController, + decoration: InputDecoration( + hintText: 'Tulis pesan...', + contentPadding: const EdgeInsets.symmetric(horizontal: 16, vertical: 10), + filled: true, + fillColor: Colors.grey[100], + border: OutlineInputBorder( + borderRadius: BorderRadius.circular(20), + borderSide: BorderSide.none, + ), + ), + ), + ), + const SizedBox(width: 8), + CircleAvatar( + backgroundColor: const Color(0xFF2563EB), + child: IconButton( + icon: const Icon(Icons.send, color: Colors.white, size: 20), + onPressed: _sendMessage, + ), + ), + ], + ), + ), + ); + } +} diff --git a/lib/dashboard/d_guru/function/f_pesan_g/chat_private_g.dart b/lib/dashboard/d_guru/function/f_pesan_g/chat_private_g.dart new file mode 100644 index 0000000..60937f7 --- /dev/null +++ b/lib/dashboard/d_guru/function/f_pesan_g/chat_private_g.dart @@ -0,0 +1,927 @@ +import 'dart:io'; +import 'package:flutter/material.dart'; +import 'package:supabase_flutter/supabase_flutter.dart'; +import 'package:apk/dashboard/d_guru/database/db_guru.dart'; +import 'package:intl/intl.dart'; +import 'package:file_picker/file_picker.dart'; +import 'package:image_picker/image_picker.dart'; +import 'package:url_launcher/url_launcher.dart'; +import 'package:apk/dashboard/d_guru/database/storage/image_doc.dart'; +import 'package:apk/dashboard/d_guru/function/f_pesan_g/doc_image.dart'; +import 'package:apk/dashboard/d_guru/database/db_grup_kelas.dart'; +import 'package:apk/dashboard/d_guru/function/f_pesan_g/f_notif/chat_private_n.dart'; + +class ChatPrivateG extends StatefulWidget { + final String receiverId; + final String receiverType; // 'guru' or 'murid' + final String receiverName; + + const ChatPrivateG({ + super.key, + required this.receiverId, + required this.receiverType, + required this.receiverName, + }); + + @override + State createState() => _ChatPrivateGState(); +} + +class _ChatPrivateGState extends State { + final TextEditingController _messageController = TextEditingController(); + final supabase = Supabase.instance.client; + + bool _isLoading = true; + String? _errorMessage; + String? _currentGuruId; + + Stream>>? _chatStream; + + @override + void initState() { + super.initState(); + _initChat(); + ChatPrivateNotification.setSenderUnread(widget.receiverId, false); + } + + Future _initChat() async { + try { + final guruInfo = await DbGuru().getLoggedInGuruInfo(); + _currentGuruId = guruInfo['id_tabel'].toString(); + + if (_currentGuruId != null) { + if (widget.receiverType == 'guru') { + _chatStream = supabase + .from('chat_private') + .stream(primaryKey: ['id_tabel']) + .order('created_at', ascending: true) + .map((data) => data + .where((e) => + (e['pengirim_guru']?.toString() == _currentGuruId && e['penerima_guru']?.toString() == widget.receiverId) || + (e['pengirim_guru']?.toString() == widget.receiverId && e['penerima_guru']?.toString() == _currentGuruId)) + .map((e) => e as Map) + .toList()); + } else if (widget.receiverType == 'murid') { + _chatStream = supabase + .from('chat_private') + .stream(primaryKey: ['id_tabel']) + .order('created_at', ascending: true) + .map((data) => data + .where((e) => + (e['pengirim_guru']?.toString() == _currentGuruId && e['penerima_murid']?.toString() == widget.receiverId) || + (e['pengirim_murid']?.toString() == widget.receiverId && e['penerima_guru']?.toString() == _currentGuruId)) + .map((e) => e as Map) + .toList()); + } + } else { + _errorMessage = 'Gagal memuat profil Guru.'; + } + } catch (e) { + _errorMessage = 'Error: $e'; + } finally { + if (mounted) { + setState(() { + _isLoading = false; + }); + } + } + } + + Future _pickAndSendImage() async { + final picker = ImagePicker(); + final pickedFile = await picker.pickImage(source: ImageSource.gallery); + if (pickedFile != null) { + final file = File(pickedFile.path); + final name = pickedFile.name; + setState(() => _isLoading = true); + final url = await ImageDocStorage.uploadFileObject(file, name); + if (url != null) { + final userId = supabase.auth.currentUser?.id; + if (widget.receiverType == 'guru') { + await supabase.from('chat_private').insert({ + 'text': 'IMAGE_URL:$url', + 'pengirim_guru': _currentGuruId, + 'penerima_guru': widget.receiverId, + 'user_id': userId, + }); + } else if (widget.receiverType == 'murid') { + await supabase.from('chat_private').insert({ + 'text': 'IMAGE_URL:$url', + 'pengirim_guru': _currentGuruId, + 'penerima_murid': widget.receiverId, + 'user_id': userId, + }); + } + await _initChat(); + } else { + setState(() => _isLoading = false); + if (mounted) ScaffoldMessenger.of(context).showSnackBar(const SnackBar(content: Text('Gagal unggah gambar'))); + } + } + } + + Future _pickAndSendDoc() async { + final result = await FilePicker.pickFiles( + type: FileType.custom, + allowedExtensions: ['pdf', 'doc', 'docx', 'xls', 'xlsx', 'txt', 'zip', 'rar'], + withData: true, + ); + if (result != null && result.files.single.bytes != null) { + final bytes = result.files.single.bytes!; + final name = result.files.single.name; + setState(() => _isLoading = true); + final url = await ImageDocStorage.uploadFile(bytes, name); + if (url != null) { + final userId = supabase.auth.currentUser?.id; + if (widget.receiverType == 'guru') { + await supabase.from('chat_private').insert({ + 'text': 'DOC_URL:$url', + 'pengirim_guru': _currentGuruId, + 'penerima_guru': widget.receiverId, + 'user_id': userId, + }); + } else if (widget.receiverType == 'murid') { + await supabase.from('chat_private').insert({ + 'text': 'DOC_URL:$url', + 'pengirim_guru': _currentGuruId, + 'penerima_murid': widget.receiverId, + 'user_id': userId, + }); + } + await _initChat(); + } else { + setState(() => _isLoading = false); + if (mounted) ScaffoldMessenger.of(context).showSnackBar(const SnackBar(content: Text('Gagal unggah dokumen'))); + } + } + } + + Future _sendMessage() async { + final text = _messageController.text.trim(); + if (text.isEmpty || _currentGuruId == null) return; + + _messageController.clear(); + + try { + final userId = supabase.auth.currentUser?.id; + + if (widget.receiverType == 'guru') { + await supabase.from('chat_private').insert({ + 'text': text, + 'pengirim_guru': _currentGuruId, + 'penerima_guru': widget.receiverId, + 'user_id': userId, + }); + } else if (widget.receiverType == 'murid') { + await supabase.from('chat_private').insert({ + 'text': text, + 'pengirim_guru': _currentGuruId, + 'penerima_murid': widget.receiverId, + 'user_id': userId, + }); + } + + if (mounted) { + setState(() { + _isLoading = true; + }); + await _initChat(); + } + } catch (e) { + if (mounted) { + ScaffoldMessenger.of(context).showSnackBar(SnackBar(content: Text('Error: $e'))); + } + } + } + + String _formatTime(String isoString) { + try { + final date = DateTime.parse(isoString).toLocal(); + return DateFormat('HH:mm').format(date); + } catch (_) { + return ''; + } + } + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + title: Text('Chat: ${widget.receiverName}'), + backgroundColor: const Color(0xFF2563EB), + iconTheme: const IconThemeData(color: Colors.white), + titleTextStyle: const TextStyle( + fontFamily: 'Inter', + fontSize: 16, + fontWeight: FontWeight.w700, + color: Colors.white, + ), + ), + body: _isLoading + ? const Center(child: CircularProgressIndicator()) + : _errorMessage != null + ? Center(child: Padding(padding: const EdgeInsets.all(16), child: Text(_errorMessage!, style: const TextStyle(color: Colors.red)))) + : Column( + children: [ + Expanded( + child: _chatStream == null + ? const Center(child: Text('Gagal memuat ruang obrolan')) + : StreamBuilder>>( + stream: _chatStream, + builder: (context, snapshot) { + if (snapshot.hasError) { + return Center(child: Text('Error: ${snapshot.error}')); + } + if (snapshot.connectionState == ConnectionState.waiting) { + return const Center(child: CircularProgressIndicator()); + } + + final messages = snapshot.data ?? []; + + if (messages.isEmpty) { + return const Center(child: Text('Belum ada pesan')); + } + + return ListView.builder( + reverse: true, + padding: const EdgeInsets.all(16), + itemCount: messages.length, + itemBuilder: (context, index) { + final msg = messages[messages.length - 1 - index]; + final isMe = msg['pengirim_guru']?.toString() == _currentGuruId; + final textMsg = msg['text']?.toString() ?? ''; + if (textMsg.startsWith("📋 *Pengajuan Izin*")) { + return _buildIzinCard(textMsg, widget.receiverName, _formatTime(msg['created_at']), isMe); + } + + return Align( + alignment: isMe ? Alignment.centerRight : Alignment.centerLeft, + child: Container( + margin: const EdgeInsets.symmetric(vertical: 4), + padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 10), + decoration: BoxDecoration( + color: isMe ? const Color(0xFF2563EB) : Colors.grey[200], + borderRadius: BorderRadius.only( + topLeft: const Radius.circular(16), + topRight: const Radius.circular(16), + bottomLeft: isMe ? const Radius.circular(16) : const Radius.circular(0), + bottomRight: isMe ? const Radius.circular(0) : const Radius.circular(16), + ), + ), + child: Column( + crossAxisAlignment: isMe ? CrossAxisAlignment.end : CrossAxisAlignment.start, + children: [ + if (msg['text']?.toString().startsWith('IMAGE_URL:') == true) + GestureDetector( + onTap: () { + Navigator.push(context, MaterialPageRoute(builder: (_) => DocImagePreviewPage(imageUrl: msg['text'].toString().replaceFirst('IMAGE_URL:', '')))); + }, + child: ClipRRect( + borderRadius: BorderRadius.circular(8), + child: Image.network( + msg['text'].toString().replaceFirst('IMAGE_URL:', ''), + width: 200, + height: 200, + fit: BoxFit.cover, + ), + ), + ) + else if (msg['text']?.toString().startsWith('DOC_URL:') == true) + Builder( + builder: (context) { + final url = msg['text'].toString().replaceFirst('DOC_URL:', ''); + final uri = Uri.tryParse(url); + String fileName = 'Dokumen'; + String extension = 'FILE'; + + if (uri != null && uri.pathSegments.isNotEmpty) { + fileName = Uri.decodeComponent(uri.pathSegments.last); + final regex = RegExp(r'^\d{13}_'); + fileName = fileName.replaceFirst(regex, ''); + final extIndex = fileName.lastIndexOf('.'); + if (extIndex != -1 && extIndex < fileName.length - 1) { + extension = fileName.substring(extIndex + 1).toUpperCase(); + } + } + + return GestureDetector( + onTap: () async { + final parsedUrl = Uri.parse(url); + try { + await launchUrl(parsedUrl, mode: LaunchMode.externalApplication); + } catch (e) { + if (context.mounted) { + ScaffoldMessenger.of(context).showSnackBar(const SnackBar(content: Text('Tidak dapat membuka dokumen'))); + } + } + }, + child: Container( + constraints: const BoxConstraints(maxWidth: 240), + padding: const EdgeInsets.all(8), + decoration: BoxDecoration( + color: isMe ? Colors.black.withOpacity(0.1) : Colors.white.withOpacity(0.5), + borderRadius: BorderRadius.circular(8), + ), + child: Row( + mainAxisSize: MainAxisSize.min, + children: [ + Container( + width: 42, + height: 52, + decoration: BoxDecoration( + color: isMe ? Colors.white.withOpacity(0.2) : Colors.black.withOpacity(0.05), + borderRadius: BorderRadius.circular(6), + ), + child: Center( + child: Text( + extension.length > 4 ? extension.substring(0, 4) : extension, + style: TextStyle( + fontSize: 12, + fontWeight: FontWeight.bold, + color: isMe ? Colors.white : Colors.black87, + ), + ), + ), + ), + const SizedBox(width: 12), + Flexible( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + fileName, + maxLines: 2, + overflow: TextOverflow.ellipsis, + style: TextStyle( + fontSize: 14, + color: isMe ? Colors.white : Colors.black87, + fontWeight: FontWeight.w500, + ), + ), + const SizedBox(height: 4), + Text( + '$extension • Dokumen', + style: TextStyle( + fontSize: 12, + color: isMe ? Colors.white70 : Colors.black54, + ), + ), + ], + ), + ), + ], + ), + ), + ); + }, + ) + else + Text( + msg['text'] ?? '', + style: TextStyle( + color: isMe ? Colors.white : Colors.black87, + ), + ), + const SizedBox(height: 4), + Text( + _formatTime(msg['created_at']), + style: TextStyle( + fontSize: 10, + color: isMe ? Colors.white70 : Colors.black54, + ), + ), + ], + ), + ), + ); + }, + ); + }, + ), + ), + Container( + padding: const EdgeInsets.all(8), + decoration: BoxDecoration( + color: Colors.white, + boxShadow: [ + BoxShadow( + color: Colors.black.withOpacity(0.05), + offset: const Offset(0, -2), + blurRadius: 4, + ), + ], + ), + child: Row( + children: [ + PopupMenuButton( + icon: const Icon(Icons.attach_file, color: Colors.orange), + tooltip: 'Lampiran', + offset: const Offset(0, -120), + onSelected: (value) { + if (value == 'image') { + _pickAndSendImage(); + } else if (value == 'document') { + _pickAndSendDoc(); + } + }, + itemBuilder: (BuildContext context) => >[ + const PopupMenuItem( + value: 'image', + child: Row( + children: [ + Icon(Icons.image, color: Colors.blue), + SizedBox(width: 8), + Text('Gambar'), + ], + ), + ), + const PopupMenuItem( + value: 'document', + child: Row( + children: [ + Icon(Icons.insert_drive_file, color: Colors.red), + SizedBox(width: 8), + Text('Dokumen'), + ], + ), + ), + ], + ), + Expanded( + child: TextField( + controller: _messageController, + decoration: InputDecoration( + hintText: 'Tulis pesan...', + contentPadding: const EdgeInsets.symmetric(horizontal: 16, vertical: 10), + filled: true, + fillColor: Colors.grey[100], + border: OutlineInputBorder( + borderRadius: BorderRadius.circular(20), + borderSide: BorderSide.none, + ), + ), + ), + ), + const SizedBox(width: 8), + CircleAvatar( + backgroundColor: const Color(0xFF2563EB), + child: IconButton( + icon: const Icon(Icons.send, color: Colors.white, size: 20), + onPressed: _sendMessage, + ), + ), + ], + ), + ), + ], + ), + ); + } + + Widget _buildIzinCard(String text, String senderName, String time, bool isMe) { + final lines = text.split('\n'); + String nama = ''; + String tanggal = ''; + String keterangan = ''; + List lampiranUrls = []; + String idIzin = ''; + String jenis = ''; + + for (var rawLine in lines) { + final line = rawLine.trim(); + if (line.startsWith('Nama: ')) nama = line.substring(6).trim(); + else if (line.startsWith('Tanggal: ')) tanggal = line.substring(9).trim(); + else if (line.startsWith('Keterangan: ')) keterangan = line.substring(12).trim(); + else if (line.startsWith('Lampiran: ')) { + final urlsString = line.substring(10).trim(); + if (urlsString.isNotEmpty) { + lampiranUrls = urlsString.split(RegExp(r'\s+')).where((s) => s.startsWith('http')).toList(); + } + } + else if (line.startsWith('ID_IZIN: ')) idIzin = line.substring(8).trim(); + else if (line.startsWith('Jenis: ')) jenis = line.substring(7).trim(); + else if (keterangan.isNotEmpty && lampiranUrls.isEmpty && !line.startsWith('📋') && !line.startsWith('ID_IZIN:') && !line.startsWith('Jenis:')) { + keterangan += '\n$line'; + } + } + + return Align( + alignment: isMe ? Alignment.centerRight : Alignment.centerLeft, + child: Container( + margin: const EdgeInsets.symmetric(vertical: 4), + constraints: BoxConstraints( + maxWidth: MediaQuery.of(context).size.width * 0.85, + ), + child: Card( + color: Colors.amber[50], + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(12)), + elevation: 2, + child: Padding( + padding: const EdgeInsets.all(16), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + children: [ + Icon( + jenis.toLowerCase() == 'sakit' ? Icons.sick : Icons.assignment_ind, + color: jenis.toLowerCase() == 'sakit' ? Colors.red : Colors.amber, + size: 28, + ), + const SizedBox(width: 8), + Expanded( + child: Text( + jenis.isNotEmpty ? 'Pengajuan $jenis' : 'Pengajuan Izin', + style: const TextStyle( + fontWeight: FontWeight.bold, + fontSize: 16, + ), + ), + ), + ], + ), + const Divider(), + Row( + children: [ + const Icon(Icons.person, size: 16, color: Colors.grey), + const SizedBox(width: 4), + Text( + nama, + style: const TextStyle(fontSize: 12, fontWeight: FontWeight.bold, color: Colors.black87), + ), + ], + ), + const SizedBox(height: 4), + Row( + children: [ + const Icon(Icons.date_range, size: 16, color: Colors.grey), + const SizedBox(width: 4), + Text( + tanggal, + style: const TextStyle(fontSize: 12, color: Colors.black87), + ), + ], + ), + if (keterangan.isNotEmpty) ...[ + const SizedBox(height: 8), + const Text('Keterangan:', style: TextStyle(fontSize: 12, color: Colors.grey)), + Text(keterangan, style: const TextStyle(fontSize: 14)), + ], + if (lampiranUrls.isNotEmpty) ...[ + const SizedBox(height: 12), + Wrap( + spacing: 8, + runSpacing: 8, + children: lampiranUrls.map((urlStr) { + final uri = Uri.tryParse(urlStr); + String extension = 'file'; + String cleanName = 'Lampiran'; + if (uri != null && uri.pathSegments.isNotEmpty) { + final fullName = Uri.decodeComponent(uri.pathSegments.last); + cleanName = fullName.replaceFirst(RegExp(r'^\d{13}_(?:camera_)?'), ''); + final extIdx = fullName.lastIndexOf('.'); + if (extIdx != -1 && extIdx < fullName.length - 1) { + extension = fullName.substring(extIdx + 1).toLowerCase(); + } + } + final isImage = ['jpg', 'jpeg', 'png', 'gif', 'webp'].contains(extension); + final extLabel = extension.length > 4 + ? extension.substring(0, 4).toUpperCase() + : extension.toUpperCase(); + + if (isImage) { + return GestureDetector( + onTap: () { + Navigator.push(context, MaterialPageRoute( + builder: (_) => DocImagePreviewPage(imageUrl: urlStr), + )); + }, + child: ClipRRect( + borderRadius: BorderRadius.circular(8), + child: Image.network( + urlStr, + width: 110, + height: 110, + fit: BoxFit.cover, + loadingBuilder: (ctx, child, progress) => + progress == null ? child : const SizedBox(width: 110, height: 110, child: Center(child: CircularProgressIndicator(strokeWidth: 2))), + errorBuilder: (ctx, _, __) => const SizedBox(width: 110, height: 110, child: Icon(Icons.broken_image)), + ), + ), + ); + } else { + return GestureDetector( + onTap: () async { + if (uri != null) { + try { + await launchUrl(uri, mode: LaunchMode.externalApplication); + } catch (_) { + if (context.mounted) { + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text('Tidak dapat membuka lampiran')), + ); + } + } + } + }, + child: Container( + constraints: const BoxConstraints(maxWidth: 220), + padding: const EdgeInsets.all(8), + decoration: BoxDecoration( + color: Colors.white.withOpacity(0.85), + borderRadius: BorderRadius.circular(8), + border: Border.all(color: Colors.black12), + ), + child: Row( + mainAxisSize: MainAxisSize.min, + children: [ + Container( + width: 42, + height: 52, + decoration: BoxDecoration( + color: Colors.black.withOpacity(0.05), + borderRadius: BorderRadius.circular(6), + ), + child: Center( + child: Text( + extLabel, + style: const TextStyle( + fontSize: 12, + fontWeight: FontWeight.bold, + color: Colors.black87, + ), + ), + ), + ), + const SizedBox(width: 10), + Flexible( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + cleanName, + maxLines: 2, + overflow: TextOverflow.ellipsis, + style: const TextStyle( + fontSize: 13, + color: Colors.black87, + fontWeight: FontWeight.w500, + ), + ), + const SizedBox(height: 2), + Text( + '$extLabel • Dokumen', + style: const TextStyle(fontSize: 11, color: Colors.black54), + ), + ], + ), + ), + ], + ), + ), + ); + } + }).toList(), + ), + ], + if (idIzin.isNotEmpty) ...[ + const Divider(), + IzinStatusWidget(idIzin: idIzin, isTeacher: true, textPesan: text), + ], + const SizedBox(height: 8), + Align( + alignment: Alignment.bottomRight, + child: Text( + time, + style: const TextStyle(fontSize: 10, color: Colors.black54), + ), + ), + ], + ), + ), + ), + ), + ); + } +} + +class IzinStatusWidget extends StatefulWidget { + final String idIzin; + final bool isTeacher; + final String? textPesan; + const IzinStatusWidget({super.key, required this.idIzin, required this.isTeacher, this.textPesan}); + + @override + State createState() => _IzinStatusWidgetState(); +} + +class _IzinStatusWidgetState extends State { + bool? _verifStatus; + bool _isLoading = true; + + @override + void initState() { + super.initState(); + _fetchStatus(); + } + + Future _fetchStatus() async { + if (widget.idIzin.isEmpty) { + setState(() => _isLoading = false); + return; + } + try { + final res = await Supabase.instance.client + .from('leave_request') + .select('verif') + .eq('id_tabel', widget.idIzin) + .maybeSingle(); + if (res != null && mounted) { + setState(() { + _verifStatus = res['verif']; + _isLoading = false; + }); + } else { + setState(() => _isLoading = false); + } + } catch (e) { + setState(() => _isLoading = false); + } + } + + Future _updateStatus(bool status) async { + setState(() => _isLoading = true); + try { + // 1. Fetch current status first to prevent duplicate posting + final currentRes = await Supabase.instance.client + .from('leave_request') + .select('verif, id_murid, id_kelas') + .eq('id_tabel', widget.idIzin) + .maybeSingle(); + + if (currentRes == null) { + throw Exception("Data pengajuan tidak ditemukan"); + } + + final bool? currentVerif = currentRes['verif']; + + // 2. Update status in database + await Supabase.instance.client + .from('leave_request') + .update({'verif': status}) + .eq('id_tabel', widget.idIzin); + + // 3. If transitioning to approved (verif was not true, now is true), send to group chat + if (status == true && currentVerif != true) { + final idMurid = currentRes['id_murid']?.toString(); + final idKelas = currentRes['id_kelas']?.toString(); + if (idMurid != null && idKelas != null && widget.textPesan != null && widget.textPesan!.isNotEmpty) { + try { + await DbGrupKelas().sendMessage( + text: widget.textPesan!, + senderId: idMurid, + role: 'murid', + idClass: idKelas, + ); + } catch (e) { + debugPrint("Gagal meneruskan izin ke grup kelas: $e"); + } + } + } + + if (mounted) { + setState(() { + _verifStatus = status; + _isLoading = false; + }); + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + content: Text(status ? 'Pengajuan izin disetujui!' : 'Pengajuan izin ditolak!'), + backgroundColor: status ? Colors.green : Colors.red, + ), + ); + } + } catch (e) { + if (mounted) { + setState(() => _isLoading = false); + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text('Gagal memperbarui status: $e')), + ); + } + } + } + + @override + Widget build(BuildContext context) { + if (_isLoading) { + return const Padding( + padding: EdgeInsets.symmetric(vertical: 4), + child: SizedBox( + height: 20, + width: 20, + child: CircularProgressIndicator(strokeWidth: 2), + ), + ); + } + + if (_verifStatus == true) { + return Container( + margin: const EdgeInsets.only(top: 8), + padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 6), + decoration: BoxDecoration( + color: const Color(0xFFD1FAE5), + borderRadius: BorderRadius.circular(8), + ), + child: const Row( + mainAxisSize: MainAxisSize.min, + children: [ + Icon(Icons.check_circle, color: Color(0xFF059669), size: 16), + SizedBox(width: 6), + Text( + 'Disetujui', + style: TextStyle(color: Color(0xFF059669), fontWeight: FontWeight.bold, fontSize: 12, fontFamily: 'Inter'), + ), + ], + ), + ); + } + + if (_verifStatus == false) { + return Container( + margin: const EdgeInsets.only(top: 8), + padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 6), + decoration: BoxDecoration( + color: const Color(0xFFFEE2E2), + borderRadius: BorderRadius.circular(8), + ), + child: const Row( + mainAxisSize: MainAxisSize.min, + children: [ + Icon(Icons.cancel, color: Color(0xFFDC2626), size: 16), + SizedBox(width: 6), + Text( + 'Ditolak', + style: TextStyle(color: Color(0xFFDC2626), fontWeight: FontWeight.bold, fontSize: 12, fontFamily: 'Inter'), + ), + ], + ), + ); + } + + // Status: Pending (null) + if (widget.isTeacher) { + return Container( + margin: const EdgeInsets.only(top: 12), + child: Row( + children: [ + ElevatedButton.icon( + onPressed: () => _updateStatus(true), + icon: const Icon(Icons.check, size: 16, color: Colors.white), + label: const Text('Setujui', style: TextStyle(color: Colors.white, fontFamily: 'Inter', fontWeight: FontWeight.bold)), + style: ElevatedButton.styleFrom( + backgroundColor: const Color(0xFF059669), + padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 8), + minimumSize: Size.zero, + tapTargetSize: MaterialTapTargetSize.shrinkWrap, + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(8)), + ), + ), + const SizedBox(width: 12), + OutlinedButton.icon( + onPressed: () => _updateStatus(false), + icon: const Icon(Icons.close, size: 16, color: Color(0xFFDC2626)), + label: const Text('Tolak', style: TextStyle(color: Color(0xFFDC2626), fontFamily: 'Inter', fontWeight: FontWeight.bold)), + style: OutlinedButton.styleFrom( + side: const BorderSide(color: Color(0xFFDC2626)), + padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 8), + minimumSize: Size.zero, + tapTargetSize: MaterialTapTargetSize.shrinkWrap, + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(8)), + ), + ), + ], + ), + ); + } + + return Container( + margin: const EdgeInsets.only(top: 8), + padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 6), + decoration: BoxDecoration( + color: const Color(0xFFFEF3C7), + borderRadius: BorderRadius.circular(8), + ), + child: const Row( + mainAxisSize: MainAxisSize.min, + children: [ + Icon(Icons.hourglass_empty, color: Color(0xFFD97706), size: 16), + SizedBox(width: 6), + Text( + 'Menunggu Persetujuan', + style: TextStyle(color: Color(0xFFD97706), fontWeight: FontWeight.bold, fontSize: 12, fontFamily: 'Inter'), + ), + ], + ), + ); + } +} diff --git a/lib/dashboard/d_guru/function/f_pesan_g/doc_image.dart b/lib/dashboard/d_guru/function/f_pesan_g/doc_image.dart new file mode 100644 index 0000000..8ed03a3 --- /dev/null +++ b/lib/dashboard/d_guru/function/f_pesan_g/doc_image.dart @@ -0,0 +1,31 @@ +import 'package:flutter/material.dart'; + +class DocImagePreviewPage extends StatelessWidget { + final String imageUrl; + + const DocImagePreviewPage({super.key, required this.imageUrl}); + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: Colors.black, + appBar: AppBar( + backgroundColor: Colors.black, + iconTheme: const IconThemeData(color: Colors.white), + ), + body: Center( + child: InteractiveViewer( + child: Image.network( + imageUrl, + fit: BoxFit.contain, + loadingBuilder: (context, child, loadingProgress) { + if (loadingProgress == null) return child; + return const Center(child: CircularProgressIndicator(color: Colors.white)); + }, + errorBuilder: (context, error, stackTrace) => const Icon(Icons.broken_image, color: Colors.white, size: 50), + ), + ), + ), + ); + } +} diff --git a/lib/dashboard/d_guru/function/f_pesan_g/f_notif/chat_private_n.dart b/lib/dashboard/d_guru/function/f_pesan_g/f_notif/chat_private_n.dart new file mode 100644 index 0000000..51c1cec --- /dev/null +++ b/lib/dashboard/d_guru/function/f_pesan_g/f_notif/chat_private_n.dart @@ -0,0 +1,219 @@ +import 'dart:async'; +import 'package:flutter/material.dart'; +import 'package:shared_preferences/shared_preferences.dart'; +import 'package:supabase_flutter/supabase_flutter.dart'; +import 'package:apk/dashboard/d_guru/database/db_guru.dart'; + + +/// Notification handler for Chat Private (Guru ↔ Ortu/Murid). +/// Must call [ChatPrivateNotification.init()] once after login. +/// Call [ChatPrivateNotification.dispose()] on logout. +class ChatPrivateNotification { + // GlobalKey provided by the root MaterialApp (shared with other notification handlers) + static GlobalKey? navigatorKey; + + static String? _currentUserId; // ID di tabel murid/guru (bukan auth.uid) + static String? _currentUserRole; // 'ortu', 'murid', or 'guru' + + // Supabase stream subscription + static StreamSubscription>>? _streamSubscription; + static DateTime? _lastSeenAt; + + static final ValueNotifier hasUnread = ValueNotifier(false); + static final ValueNotifier> unreadSenderIds = ValueNotifier>({}); + + static Future setSenderUnread(String senderId, bool isUnread) async { + final current = Set.from(unreadSenderIds.value); + if (isUnread) { + current.add(senderId); + } else { + current.remove(senderId); + } + unreadSenderIds.value = current; + hasUnread.value = current.isNotEmpty; + + try { + final prefs = await SharedPreferences.getInstance(); + await prefs.setStringList('chat_private_unread_senders', current.toList()); + await prefs.setBool('chat_private_has_unread', current.isNotEmpty); + if (!isUnread) { + await prefs.setString('chat_private_last_read_$senderId', DateTime.now().toUtc().toIso8601String()); + } + if (!isUnread) { + await prefs.setString('chat_private_last_read_$senderId', DateTime.now().toUtc().toIso8601String()); + } + } catch (e) { + debugPrint('[ChatPrivateNotification] setSenderUnread error: $e'); + } + } + + static Future setUnread(bool value) async { + if (!value) { + unreadSenderIds.value = {}; + hasUnread.value = false; + try { + final prefs = await SharedPreferences.getInstance(); + await prefs.remove('chat_private_unread_senders'); + await prefs.setBool('chat_private_has_unread', false); + } catch (e) { + debugPrint('[ChatPrivateNotification] setUnread error: $e'); + } + } else { + hasUnread.value = true; + } + } + + /// Initialize the listener. Safe to call multiple times — will re-initialize. + static Future init({GlobalKey? key}) async { + if (key != null) navigatorKey = key; + + await dispose(); // bersihkan state sebelumnya + + try { + final prefs = await SharedPreferences.getInstance(); + final role = prefs.getString('user_role') ?? ''; + + if (role == 'ortu' || role == 'murid') { + await _initForMurid(prefs); + } else if (role == 'guru') { + await _initForGuru(); + } + + if (_currentUserId != null) { + final unreadList = prefs.getStringList('chat_private_unread_senders') ?? []; + unreadSenderIds.value = unreadList.toSet(); + hasUnread.value = unreadSenderIds.value.isNotEmpty || (prefs.getBool('chat_private_has_unread') ?? false); + + + _subscribeRealtime(); + debugPrint('[ChatPrivateNotification] initialized (role: $_currentUserRole, id: $_currentUserId, unread: ${unreadSenderIds.value})'); + } + // Admin tidak perlu notif chat private di sini + } catch (e) { + debugPrint('[ChatPrivateNotification] init error: $e'); + } + } + + // ─── Init untuk Ortu/Murid ──────────────────────────────────────────────── + + static Future _initForMurid(SharedPreferences prefs) async { + final nis = prefs.getString('murid_nis'); + final adminId = prefs.getString('user_id_admin'); + if (nis == null || adminId == null) return; + + final muridRes = await Supabase.instance.client + .from('murid') + .select('id_tabel') + .eq('user_id', adminId) + .eq('nis', nis) + .or('status_akun.is.null,status_akun.eq.true') + .maybeSingle(); + + if (muridRes == null) return; + + _currentUserId = muridRes['id_tabel'].toString(); + _currentUserRole = 'murid'; + } + + // ─── Init untuk Guru ────────────────────────────────────────────────────── + + static Future _initForGuru() async { + final guruInfo = await DbGuru().getLoggedInGuruInfo(); + _currentUserId = guruInfo['id_tabel']?.toString(); + _currentUserRole = 'guru'; + } + + // ─── Tangani Entrig event yang diteruskan dari fcm_notif.dart ────────────── + + // ─── Supabase Realtime ──────────────────────────────────────────────────── + + static void _subscribeRealtime() async { + final supabase = Supabase.instance.client; + final prefs = await SharedPreferences.getInstance(); + _lastSeenAt = DateTime.now().toUtc(); + + _streamSubscription = supabase + .from('chat_private') + .stream(primaryKey: ['id_tabel']) + .order('created_at', ascending: false) + .listen( + (rows) { + // Filter: only messages where recipient matches our id + final filtered = rows.where((row) { + final recipientId = _currentUserRole == 'guru' + ? row['penerima_guru']?.toString() + : row['penerima_murid']?.toString(); + return recipientId == _currentUserId; + }).toList(); + + // Filter: only new messages (after init / lastSeenAt) + final newMsgs = filtered.where((row) { + final t = DateTime.tryParse(row['created_at']?.toString() ?? ''); + return t != null && t.isAfter(_lastSeenAt!); + }).toList(); + + for (final row in filtered) { + final senderId = row['pengirim_murid']?.toString() ?? row['pengirim_guru']?.toString() ?? row['pengirim_admin']?.toString(); + if (senderId != null && senderId != _currentUserId) { + final lastReadStr = prefs.getString('chat_private_last_read_$senderId'); + final lastRead = lastReadStr != null ? DateTime.parse(lastReadStr) : DateTime.fromMillisecondsSinceEpoch(0); + final t = DateTime.tryParse(row['created_at']?.toString() ?? ''); + if (t != null && t.isAfter(lastRead) && !unreadSenderIds.value.contains(senderId)) { + setSenderUnread(senderId, true); + } + } + } + + for (final row in filtered) { + final senderId = row['pengirim_murid']?.toString() ?? row['pengirim_guru']?.toString() ?? row['pengirim_admin']?.toString(); + if (senderId != null && senderId != _currentUserId) { + final lastReadStr = prefs.getString('chat_private_last_read_$senderId'); + final lastRead = lastReadStr != null ? DateTime.parse(lastReadStr) : DateTime.fromMillisecondsSinceEpoch(0); + final t = DateTime.tryParse(row['created_at']?.toString() ?? ''); + if (t != null && t.isAfter(lastRead) && !unreadSenderIds.value.contains(senderId)) { + setSenderUnread(senderId, true); + } + } + } + + if (newMsgs.isEmpty) return; + + // Update lastSeenAt + for (final row in newMsgs) { + final t = DateTime.tryParse(row['created_at'].toString()); + if (t != null && t.isAfter(_lastSeenAt!)) _lastSeenAt = t; + } + + debugPrint('[ChatPrivateNotification] stream → ${newMsgs.length} pesan baru'); + _handleRealtimeInsert(newMsgs.first); + }, + onError: (e) { + debugPrint('[ChatPrivateNotification] stream error: $e'); + }, + ); + } + + static void _handleRealtimeInsert(Map row) { + // Skip if sent by ourselves + final senderMurid = row['pengirim_murid']?.toString(); + final senderGuru = row['pengirim_guru']?.toString(); + final senderAdmin = row['pengirim_admin']?.toString(); + final senderId = senderMurid ?? senderGuru ?? senderAdmin; + + if (senderId != null && senderId == _currentUserId) { + return; + } + + if (senderId != null) { + setSenderUnread(senderId, true); + } + } + + // ─── Dispose ────────────────────────────────────────────────────────────── + + static Future dispose() async { + _streamSubscription?.cancel(); + _streamSubscription = null; + _lastSeenAt = null; + } +} diff --git a/lib/dashboard/d_guru/function/f_pesan_g/f_notif/fcm_notif.dart b/lib/dashboard/d_guru/function/f_pesan_g/f_notif/fcm_notif.dart new file mode 100644 index 0000000..705f19e --- /dev/null +++ b/lib/dashboard/d_guru/function/f_pesan_g/f_notif/fcm_notif.dart @@ -0,0 +1,148 @@ +import 'dart:async'; +import 'package:flutter/material.dart'; +import 'package:firebase_core/firebase_core.dart'; +import 'package:firebase_messaging/firebase_messaging.dart'; +import 'package:shared_preferences/shared_preferences.dart'; +import 'package:supabase_flutter/supabase_flutter.dart'; + +class NotificationFCM { + // GlobalKey to perform navigation from anywhere in the app without BuildContext + static final GlobalKey navigatorKey = GlobalKey(); + + /// Initialize listeners for FCM notification click events and foreground messages + static Future init() async { + // 0. Ensure Firebase is initialized + try { + if (Firebase.apps.isEmpty) { + await Firebase.initializeApp(); + debugPrint('[NotificationFCM] Firebase initialized'); + } else { + debugPrint('[NotificationFCM] Firebase default app already exists'); + } + } catch (e) { + debugPrint('[NotificationFCM] Error initializing Firebase: $e'); + } + + // 1. Request push notification permissions + try { + await FirebaseMessaging.instance.requestPermission( + alert: true, + announcement: false, + badge: true, + carPlay: false, + criticalAlert: false, + provisional: false, + sound: true, + ); + } catch (e) { + debugPrint('Error requesting notification permission: $e'); + } + + // 3. Listen for standard FCM Foreground Messages + FirebaseMessaging.onMessage.listen((RemoteMessage message) { + _handleIncomingRemoteMessage(message); + }); + + // 4. Handle notification when the app is in the background and opened by tapping it + FirebaseMessaging.onMessageOpenedApp.listen((RemoteMessage message) { + _handleRemoteMessageOpened(message); + }); + + // 5. Handle notification when the app was terminated and opened by tapping it + try { + final RemoteMessage? initialMessage = await FirebaseMessaging.instance.getInitialMessage(); + if (initialMessage != null) { + _handleRemoteMessageOpened(initialMessage); + } + } catch (e) { + debugPrint('Error getting initial message: $e'); + } + } + + + + /// Check if the notification's nama_user matches the logged-in student's name + static Future _shouldShowNotification(Map? data) async { + if (data == null) return true; // Show by default if no data payload to filter + + final namaUser = _extractNamaUser(data); + if (namaUser == null || namaUser.isEmpty) { + return true; // Show by default if data doesn't contain user filter key + } + + final prefs = await SharedPreferences.getInstance(); + String? loggedInStudentName = prefs.getString('murid_nama'); + + // If cache not found, fetch it from Supabase and cache it + if (loggedInStudentName == null || loggedInStudentName.isEmpty) { + final nis = prefs.getString('murid_nis'); + final userId = prefs.getString('user_id_admin'); + if (nis != null && userId != null) { + try { + final response = await Supabase.instance.client + .from('murid') + .select('nama') + .eq('user_id', userId) + .eq('nis', nis) + .maybeSingle(); + + if (response != null) { + loggedInStudentName = response['nama']?.toString(); + if (loggedInStudentName != null) { + await prefs.setString('murid_nama', loggedInStudentName); + } + } + } catch (e) { + debugPrint('Error fetching student name for notification filter: $e'); + } + } + } + + if (loggedInStudentName != null && loggedInStudentName.isNotEmpty) { + final matches = loggedInStudentName.trim().toLowerCase() == namaUser.trim().toLowerCase(); + debugPrint('Notification filter - Logged in: "$loggedInStudentName", Incoming: "$namaUser". Match: $matches'); + return matches; + } + + return true; + } + + /// Extract nama_user field dynamically from map (handles nested objects from foreign keys) + static String? _extractNamaUser(Map data) { + if (data.containsKey('nama_user')) { + final val = data['nama_user']; + if (val is Map) { + return val['name']?.toString() ?? val['nama']?.toString(); + } + return val?.toString(); + } + + // Case insensitive fallback + for (var key in data.keys) { + if (key.toString().toLowerCase() == 'nama_user') { + final val = data[key]; + if (val is Map) { + return val['name']?.toString() ?? val['nama']?.toString(); + } + return val?.toString(); + } + } + return null; + } + + /// Handle incoming standard FCM foreground messages + static Future _handleIncomingRemoteMessage(RemoteMessage message) async { + final shouldShow = await _shouldShowNotification(message.data); + if (!shouldShow) return; + + final title = message.notification?.title ?? message.data['title']?.toString() ?? 'Absensi Digital'; + final body = message.notification?.body ?? message.data['body']?.toString() ?? 'Melakukan Check-in'; + + debugPrint('[NotificationFCM] Incoming foreground FCM message: Title: $title, Body: $body'); + } + + /// Handle when standard FCM notification is clicked + static void _handleRemoteMessageOpened(RemoteMessage message) { + // No-op in Guru application + } +} diff --git a/lib/dashboard/d_guru/function/f_pesan_g/f_notif/grup_kelas_n.dart b/lib/dashboard/d_guru/function/f_pesan_g/f_notif/grup_kelas_n.dart new file mode 100644 index 0000000..018c036 --- /dev/null +++ b/lib/dashboard/d_guru/function/f_pesan_g/f_notif/grup_kelas_n.dart @@ -0,0 +1,136 @@ +import 'dart:async'; +import 'package:flutter/material.dart'; +import 'package:shared_preferences/shared_preferences.dart'; +import 'package:supabase_flutter/supabase_flutter.dart'; +import 'package:apk/dashboard/d_guru/database/db_grup_kelas.dart'; + + +/// Notification handler for Grup Kelas chat. +/// Must call [GrupKelasNotification.init()] once after login. +/// Call [GrupKelasNotification.dispose()] on logout. +class GrupKelasNotification { + // GlobalKey provided by the root MaterialApp (shared with NotificationFCM) + static GlobalKey? navigatorKey; + + + + static String? _currentUserId; + static String? _currentUserRole; + static String? _currentClassId; + + // Supabase stream subscription + static StreamSubscription>>? _streamSubscription; + static DateTime? _lastSeenAt; + + static final ValueNotifier hasUnread = ValueNotifier(false); + + static Future setUnread(bool value) async { + hasUnread.value = value; + try { + final prefs = await SharedPreferences.getInstance(); + await prefs.setBool('grup_kelas_has_unread', value); + if (!value) { + await prefs.setString('grup_kelas_last_read', DateTime.now().toUtc().toIso8601String()); + _lastSeenAt = DateTime.now().toUtc(); + } + if (!value) { + await prefs.setString('grup_kelas_last_read', DateTime.now().toUtc().toIso8601String()); + _lastSeenAt = DateTime.now().toUtc(); + } + } catch (e) { + debugPrint('[GrupKelasNotification] setUnread error: $e'); + } + } + + /// Initialize the listener. Safe to call multiple times — will re-initialize. + static Future init({GlobalKey? key}) async { + if (key != null) navigatorKey = key; + + await dispose(); // bersihkan state sebelumnya + + try { + final info = await DbGrupKelas.getCurrentUserRoleAndId(); + if (info == null) return; + + _currentUserId = info['id']; + _currentUserRole = info['role']; + _currentClassId = info['id_class']; + + if (_currentClassId == null || _currentClassId!.isEmpty) return; + + final prefs = await SharedPreferences.getInstance(); + hasUnread.value = prefs.getBool('grup_kelas_has_unread') ?? false; + + + + _subscribeRealtime(); + + debugPrint('[GrupKelasNotification] initialized (role: $_currentUserRole, class: $_currentClassId)'); + } catch (e) { + debugPrint('[GrupKelasNotification] init error: $e'); + } + } + + // ─── Supabase Realtime ──────────────────────────────────────────────────── + + static void _subscribeRealtime() { + final supabase = Supabase.instance.client; + _lastSeenAt = DateTime.now().toUtc(); + + _streamSubscription = supabase + .from('grup_kelas') + .stream(primaryKey: ['id_tabel']) + .order('created_at', ascending: false) + .listen( + (rows) { + // Filter: only messages for the same class_id + final filtered = _currentClassId != null + ? rows.where((r) => r['id_class']?.toString() == _currentClassId).toList() + : rows; + + // Filter: only new messages (after init / lastSeenAt) + final newMsgs = filtered.where((row) { + final t = DateTime.tryParse(row['created_at']?.toString() ?? ''); + return t != null && t.isAfter(_lastSeenAt!.subtract(const Duration(minutes: 5))); + }).toList(); + + if (newMsgs.isEmpty) return; + + // Update lastSeenAt + for (final row in newMsgs) { + final t = DateTime.tryParse(row['created_at'].toString()); + if (t != null && t.isAfter(_lastSeenAt!)) _lastSeenAt = t; + } + + debugPrint('[GrupKelasNotification] stream → ${newMsgs.length} pesan baru'); + _handleRealtimeInsert(newMsgs.first); + }, + onError: (e) { + debugPrint('[GrupKelasNotification] stream error: $e'); + }, + ); + } + + static void _handleRealtimeInsert(Map row) { + // Skip if sent by ourselves + final pengirimMurid = row['pengirim_murid']?.toString(); + final pengirimGuru = row['pengirim_guru']?.toString(); + final pengirimAdmin = row['pengirim_admin']?.toString(); + final senderId = pengirimMurid ?? pengirimGuru ?? pengirimAdmin; + + if (senderId != null && senderId == _currentUserId) { + return; + } + + final text = row['text']?.toString() ?? ''; + debugPrint('[GrupKelasNotification] Realtime → pesan baru: "$text"'); + + setUnread(true); + } + + static Future dispose() async { + _streamSubscription?.cancel(); + _streamSubscription = null; + _lastSeenAt = null; + } +} diff --git a/lib/dashboard/d_guru/function/f_pesan_g/f_notif/grup_sekolah_n.dart b/lib/dashboard/d_guru/function/f_pesan_g/f_notif/grup_sekolah_n.dart new file mode 100644 index 0000000..1e1a155 --- /dev/null +++ b/lib/dashboard/d_guru/function/f_pesan_g/f_notif/grup_sekolah_n.dart @@ -0,0 +1,159 @@ +import 'dart:async'; +import 'package:flutter/material.dart'; +import 'package:shared_preferences/shared_preferences.dart'; +import 'package:supabase_flutter/supabase_flutter.dart'; +import 'package:apk/dashboard/d_guru/database/db_grup_kelas.dart'; + + + +/// Notification handler for Grup Sekolah chat. +/// +/// Menggunakan dua mekanisme: +/// 1. **Supabase Realtime** — foreground notification utama (tidak bergantung FCM/Entrig). +/// Langsung listen INSERT pada tabel `grup_sekolah` dan tampilkan overlay. +/// 2. **Entrig callback** — fallback dari [NotificationFCM] jika event datang via FCM. +/// +/// Must call [GrupSekolahNotification.init()] once after login. +/// Call [GrupSekolahNotification.dispose()] on logout. +class GrupSekolahNotification { + // GlobalKey provided by the root MaterialApp (shared with NotificationFCM) + static GlobalKey? navigatorKey; + + + + static String? _currentUserId; + static String? _currentUserRole; + static String? _currentAdminId; // untuk filter per-sekolah (user_id di grup_sekolah) + + // Supabase stream subscription (lebih reliable dari onPostgresChanges) + static StreamSubscription>>? _streamSubscription; + static DateTime? _lastSeenAt; // untuk filter pesan baru saja + + static final ValueNotifier hasUnread = ValueNotifier(false); + + static Future setUnread(bool value) async { + hasUnread.value = value; + try { + final prefs = await SharedPreferences.getInstance(); + await prefs.setBool('grup_sekolah_has_unread', value); + if (!value) { + await prefs.setString('grup_sekolah_last_read', DateTime.now().toUtc().toIso8601String()); + _lastSeenAt = DateTime.now().toUtc(); + } + if (!value) { + await prefs.setString('grup_sekolah_last_read', DateTime.now().toUtc().toIso8601String()); + _lastSeenAt = DateTime.now().toUtc(); + } + } catch (e) { + debugPrint('[GrupSekolahNotification] setUnread error: $e'); + } + } + + /// Initialize listener. Safe to call multiple times — will re-initialize. + static Future init({GlobalKey? key}) async { + if (key != null) navigatorKey = key; + + dispose(); // bersihkan state sebelumnya + + try { + final info = await DbGrupKelas.getCurrentUserRoleAndId(); + if (info == null) return; + + _currentUserId = info['id']; + _currentUserRole = info['role']; + + // Ambil admin_id dari SharedPreferences untuk filter per-sekolah + final prefs = await SharedPreferences.getInstance(); + _currentAdminId = prefs.getString('user_id_admin'); + + // Load status unread + hasUnread.value = prefs.getBool('grup_sekolah_has_unread') ?? false; + + + + // 2. Supabase Realtime (mekanisme utama foreground) + _subscribeRealtime(); + + debugPrint( + '[GrupSekolahNotification] initialized ' + '(role: $_currentUserRole, adminId: $_currentAdminId)', + ); + } catch (e) { + debugPrint('[GrupSekolahNotification] init error: $e'); + } + } + + // ─── Supabase Realtime ──────────────────────────────────────────────────── + + static void _subscribeRealtime() async { + final supabase = Supabase.instance.client; + final prefs = await SharedPreferences.getInstance(); + final lastReadStr = prefs.getString('grup_sekolah_last_read'); + _lastSeenAt = lastReadStr != null ? DateTime.parse(lastReadStr) : DateTime.now().toUtc(); + + _streamSubscription = supabase + .from('grup_sekolah') + .stream(primaryKey: ['id_tabel']) + .order('created_at', ascending: false) + .listen( + (rows) { + // Filter: hanya pesan dari sekolah yang sama (client-side) + final filtered = _currentAdminId != null + ? rows.where((r) => r['user_id']?.toString() == _currentAdminId).toList() + : rows; + + // Filter: hanya pesan baru (setelah waktu init / lastSeenAt) + final newMsgs = filtered.where((row) { + final t = DateTime.tryParse(row['created_at']?.toString() ?? ''); + return t != null && t.isAfter(_lastSeenAt!.subtract(const Duration(minutes: 5))); + }).toList(); + + if (newMsgs.isEmpty) return; + + // Update lastSeenAt ke pesan paling baru + for (final row in newMsgs) { + final t = DateTime.tryParse(row['created_at'].toString()); + if (t != null && t.isAfter(_lastSeenAt!)) _lastSeenAt = t; + } + + debugPrint('[GrupSekolahNotification] stream → ${newMsgs.length} pesan baru'); + // Tampilkan notifikasi untuk pesan pertama (terbaru) + _handleRealtimeInsert(newMsgs.first); + }, + onError: (e) { + debugPrint('[GrupSekolahNotification] stream error: $e'); + }, + ); + + debugPrint('[GrupSekolahNotification] stream subscribed (lastSeenAt: $_lastSeenAt)'); + } + + /// Tangani INSERT baru dari Supabase Realtime. + static void _handleRealtimeInsert(Map row) { + // Skip jika pesan dari user ini sendiri + final pengirimMurid = row['pengirim_murid']?.toString(); + final pengirimGuru = row['pengirim_guru']?.toString(); + final pengirimAdmin = row['pengirim_admin']?.toString(); + final senderId = pengirimMurid ?? pengirimGuru ?? pengirimAdmin; + + if (senderId != null && senderId == _currentUserId) { + debugPrint('[GrupSekolahNotification] Skip own message'); + return; + } + + final text = row['text']?.toString() ?? ''; + debugPrint('[GrupSekolahNotification] Realtime → pesan baru: "$text"'); + + setUnread(true); + } + + // ─── Lifecycle ──────────────────────────────────────────────────────────── + + /// Bersihkan listener. + static void dispose() { + // Cancel stream subscription + _streamSubscription?.cancel(); + _streamSubscription = null; + _lastSeenAt = null; + } +} diff --git a/lib/dashboard/d_guru/function/f_pesan_g/grup_kelas_g.dart b/lib/dashboard/d_guru/function/f_pesan_g/grup_kelas_g.dart new file mode 100644 index 0000000..5dba8c0 --- /dev/null +++ b/lib/dashboard/d_guru/function/f_pesan_g/grup_kelas_g.dart @@ -0,0 +1,918 @@ +import 'dart:io'; +import 'package:flutter/material.dart'; +import 'package:intl/intl.dart'; +import 'package:url_launcher/url_launcher.dart'; +import 'package:supabase_flutter/supabase_flutter.dart'; +import 'package:apk/dashboard/d_guru/database/db_grup_kelas.dart'; +import 'package:apk/dashboard/d_guru/function/f_pesan_g/anggota_g/member_kelas_g.dart'; +import 'package:file_picker/file_picker.dart'; +import 'package:image_picker/image_picker.dart'; +import 'package:apk/dashboard/d_guru/database/storage/image_doc.dart'; +import 'package:apk/dashboard/d_guru/function/f_pesan_g/doc_image.dart'; +import 'package:apk/dashboard/d_guru/function/f_pesan_g/pengumuman.dart'; +import 'package:apk/dashboard/d_guru/function/f_pesan_g/f_notif/grup_kelas_n.dart'; + +class GrupKelasPageG extends StatefulWidget { + const GrupKelasPageG({super.key}); + + @override + State createState() => _GrupKelasPageGState(); +} + +class _GrupKelasPageGState extends State { + final TextEditingController _messageController = TextEditingController(); + + bool _isLoading = true; + String? _errorMessage; + + String? _currentUserId; + String? _currentUserRole; // 'admin', 'guru', or 'murid' + String? _currentClassId; + + Stream>>? _chatStream; + Map _userNames = {}; // mapping ID ke Nama + + @override + void initState() { + super.initState(); + _initChat(); + GrupKelasNotification.setUnread(false); + } + + Future _initChat() async { + try { + // Fetch mapping nama semua user + _userNames = await DbGrupKelas.fetchAllNames(); + + // Fetch current user info + final currentUserInfo = await DbGrupKelas.getCurrentUserRoleAndId(); + + if (currentUserInfo != null) { + _currentUserId = currentUserInfo['id']; + _currentUserRole = currentUserInfo['role']; + _currentClassId = currentUserInfo['id_class']; + + if (_currentUserRole == 'admin') { + _errorMessage = 'Admin tidak tergabung secara default dalam satu grup kelas spesifik.'; + } else if (_currentClassId == null || _currentClassId!.isEmpty) { + _errorMessage = 'Anda belum terdaftar di kelas manapun.'; + } else { + _chatStream = DbGrupKelas().getGrupKelasStream(_currentClassId!); + } + } else { + _errorMessage = 'Gagal memuat profil. Pastikan Anda telah login dengan benar.'; + } + } catch (e) { + _errorMessage = 'Error: $e'; + } finally { + if (mounted) { + setState(() { + _isLoading = false; + }); + } + } + } + + Future _pickAndSendImage() async { + final picker = ImagePicker(); + final pickedFile = await picker.pickImage(source: ImageSource.gallery); + if (pickedFile != null) { + final file = File(pickedFile.path); + final name = pickedFile.name; + setState(() => _isLoading = true); + final url = await ImageDocStorage.uploadFileObject(file, name); + if (url != null) { + await DbGrupKelas().sendMessage( + text: 'IMAGE_URL:$url', + senderId: _currentUserId!, + role: _currentUserRole!, + idClass: _currentClassId!, + ); + await _initChat(); + } else { + setState(() => _isLoading = false); + if (mounted) ScaffoldMessenger.of(context).showSnackBar(const SnackBar(content: Text('Gagal unggah gambar'))); + } + } + } + + Future _pickAndSendDoc() async { + final result = await FilePicker.pickFiles( + type: FileType.custom, + allowedExtensions: ['pdf', 'doc', 'docx', 'xls', 'xlsx', 'txt', 'zip', 'rar'], + withData: true, + ); + if (result != null && result.files.single.bytes != null) { + final bytes = result.files.single.bytes!; + final name = result.files.single.name; + setState(() => _isLoading = true); + final url = await ImageDocStorage.uploadFile(bytes, name); + if (url != null) { + await DbGrupKelas().sendMessage( + text: 'DOC_URL:$url', + senderId: _currentUserId!, + role: _currentUserRole!, + idClass: _currentClassId!, + ); + await _initChat(); + } else { + setState(() => _isLoading = false); + if (mounted) ScaffoldMessenger.of(context).showSnackBar(const SnackBar(content: Text('Gagal unggah dokumen'))); + } + } + } + + Future _sendMessage() async { + final text = _messageController.text.trim(); + if (text.isEmpty || _currentUserId == null || _currentUserRole == null || _currentClassId == null) return; + + _messageController.clear(); + + try { + await DbGrupKelas().sendMessage( + text: text, + senderId: _currentUserId!, + role: _currentUserRole!, + idClass: _currentClassId!, + ); + + // Reload stream dari database setelah mengirim pesan + if (mounted) { + setState(() { + _isLoading = true; + }); + await _initChat(); + } + } catch (e) { + if (mounted) { + ScaffoldMessenger.of(context).showSnackBar(SnackBar(content: Text('Error: $e'))); + } + } + } + + String _formatTime(String isoString) { + try { + final date = DateTime.parse(isoString).toLocal(); + return DateFormat('HH:mm').format(date); + } catch (_) { + return ''; + } + } + + String _getSenderId(Map msg) { + if (msg['pengirim_admin'] != null) return msg['pengirim_admin'].toString(); + if (msg['pengirim_guru'] != null) return msg['pengirim_guru'].toString(); + if (msg['pengirim_murid'] != null) return msg['pengirim_murid'].toString(); + return ''; + } + + Widget _buildIzinCard(String text, String senderName, String time, bool isMe) { + final lines = text.split('\n'); + String nama = ''; + String tanggal = ''; + String keterangan = ''; + List lampiranUrls = []; + String idIzin = ''; + String jenis = ''; + + for (var rawLine in lines) { + final line = rawLine.trim(); + if (line.startsWith('Nama: ')) nama = line.substring(6).trim(); + else if (line.startsWith('Tanggal: ')) tanggal = line.substring(9).trim(); + else if (line.startsWith('Keterangan: ')) keterangan = line.substring(12).trim(); + else if (line.startsWith('Lampiran: ')) { + final urlsString = line.substring(10).trim(); + if (urlsString.isNotEmpty) { + lampiranUrls = urlsString.split(RegExp(r'\s+')).where((s) => s.startsWith('http')).toList(); + } + } + else if (line.startsWith('ID_IZIN: ')) idIzin = line.substring(8).trim(); + else if (line.startsWith('Jenis: ')) jenis = line.substring(7).trim(); + else if (keterangan.isNotEmpty && lampiranUrls.isEmpty && !line.startsWith('📋') && !line.startsWith('ID_IZIN:') && !line.startsWith('Jenis:')) { + keterangan += '\n$line'; + } + } + + return Align( + alignment: isMe ? Alignment.centerRight : Alignment.centerLeft, + child: Container( + margin: const EdgeInsets.symmetric(vertical: 4), + constraints: BoxConstraints( + maxWidth: MediaQuery.of(context).size.width * 0.85, + ), + child: Card( + color: Colors.amber[50], + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(12)), + elevation: 2, + child: Padding( + padding: const EdgeInsets.all(16), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + children: [ + Icon( + jenis.toLowerCase() == 'sakit' ? Icons.sick : Icons.assignment_ind, + color: jenis.toLowerCase() == 'sakit' ? Colors.red : Colors.amber, + size: 28, + ), + const SizedBox(width: 8), + Expanded( + child: Text( + jenis.isNotEmpty ? 'Pengajuan $jenis' : 'Pengajuan Izin', + style: const TextStyle( + fontWeight: FontWeight.bold, + fontSize: 16, + ), + ), + ), + ], + ), + const Divider(), + Row( + children: [ + const Icon(Icons.person, size: 16, color: Colors.grey), + const SizedBox(width: 4), + Text( + nama, + style: const TextStyle(fontSize: 12, fontWeight: FontWeight.bold, color: Colors.black87), + ), + ], + ), + const SizedBox(height: 4), + Row( + children: [ + const Icon(Icons.date_range, size: 16, color: Colors.grey), + const SizedBox(width: 4), + Text( + tanggal, + style: const TextStyle(fontSize: 12, color: Colors.black87), + ), + ], + ), + if (keterangan.isNotEmpty) ...[ + const SizedBox(height: 8), + const Text('Keterangan:', style: TextStyle(fontSize: 12, color: Colors.grey)), + Text(keterangan, style: const TextStyle(fontSize: 14)), + ], + if (lampiranUrls.isNotEmpty) ...[ + const SizedBox(height: 12), + Wrap( + spacing: 8, + runSpacing: 8, + children: lampiranUrls.map((urlStr) { + final uri = Uri.tryParse(urlStr); + String extension = 'file'; + String cleanName = 'Lampiran'; + if (uri != null && uri.pathSegments.isNotEmpty) { + final fullName = Uri.decodeComponent(uri.pathSegments.last); + cleanName = fullName.replaceFirst(RegExp(r'^\d{13}_(?:camera_)?'), ''); + final extIdx = fullName.lastIndexOf('.'); + if (extIdx != -1 && extIdx < fullName.length - 1) { + extension = fullName.substring(extIdx + 1).toLowerCase(); + } + } + final isImage = ['jpg', 'jpeg', 'png', 'gif', 'webp'].contains(extension); + final extLabel = extension.length > 4 + ? extension.substring(0, 4).toUpperCase() + : extension.toUpperCase(); + + if (isImage) { + return GestureDetector( + onTap: () { + Navigator.push(context, MaterialPageRoute( + builder: (_) => DocImagePreviewPage(imageUrl: urlStr), + )); + }, + child: ClipRRect( + borderRadius: BorderRadius.circular(8), + child: Image.network( + urlStr, + width: 110, + height: 110, + fit: BoxFit.cover, + loadingBuilder: (ctx, child, progress) => + progress == null ? child : const SizedBox(width: 110, height: 110, child: Center(child: CircularProgressIndicator(strokeWidth: 2))), + errorBuilder: (ctx, _, __) => const SizedBox(width: 110, height: 110, child: Icon(Icons.broken_image)), + ), + ), + ); + } else { + return GestureDetector( + onTap: () async { + if (uri != null) { + try { + await launchUrl(uri, mode: LaunchMode.externalApplication); + } catch (_) { + if (context.mounted) { + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text('Tidak dapat membuka lampiran')), + ); + } + } + } + }, + child: Container( + constraints: const BoxConstraints(maxWidth: 220), + padding: const EdgeInsets.all(8), + decoration: BoxDecoration( + color: Colors.white.withOpacity(0.85), + borderRadius: BorderRadius.circular(8), + border: Border.all(color: Colors.black12), + ), + child: Row( + mainAxisSize: MainAxisSize.min, + children: [ + Container( + width: 42, + height: 52, + decoration: BoxDecoration( + color: Colors.black.withOpacity(0.05), + borderRadius: BorderRadius.circular(6), + ), + child: Center( + child: Text( + extLabel, + style: const TextStyle( + fontSize: 12, + fontWeight: FontWeight.bold, + color: Colors.black87, + ), + ), + ), + ), + const SizedBox(width: 10), + Flexible( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + cleanName, + maxLines: 2, + overflow: TextOverflow.ellipsis, + style: const TextStyle( + fontSize: 13, + color: Colors.black87, + fontWeight: FontWeight.w500, + ), + ), + const SizedBox(height: 2), + Text( + '$extLabel • Dokumen', + style: const TextStyle(fontSize: 11, color: Colors.black54), + ), + ], + ), + ), + ], + ), + ), + ); + } + }).toList(), + ), + ], + if (idIzin.isNotEmpty) ...[ + const Divider(), + IzinStatusWidget(idIzin: idIzin, isTeacher: true), + ], + const SizedBox(height: 8), + Align( + alignment: Alignment.bottomRight, + child: Text( + time, + style: const TextStyle(fontSize: 10, color: Colors.black54), + ), + ), + ], + ), + ), + ), + ), + ); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + title: const Text('Grup Kelas'), + backgroundColor: const Color(0xFF2563EB), + iconTheme: const IconThemeData(color: Colors.white), + titleTextStyle: const TextStyle( + fontFamily: 'Inter', + fontSize: 16, + fontWeight: FontWeight.w700, + color: Colors.white, + ), + actions: [ + IconButton( + icon: const Icon(Icons.people), + tooltip: 'Anggota Kelas', + onPressed: () { + if (_currentClassId != null && _currentClassId!.isNotEmpty) { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => MemberKelasPageG(classId: _currentClassId!), + ), + ); + } else { + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text('Anda belum tergabung di kelas mana pun')), + ); + } + }, + ) + ], + ), + body: _isLoading + ? const Center(child: CircularProgressIndicator()) + : _errorMessage != null + ? Center(child: Padding(padding: const EdgeInsets.all(16), child: Text(_errorMessage!, textAlign: TextAlign.center, style: const TextStyle(color: Colors.red)))) + : Column( + children: [ + Expanded( + child: _chatStream == null + ? const Center(child: Text('Gagal memuat ruang obrolan')) + : StreamBuilder>>( + stream: _chatStream, + builder: (context, snapshot) { + if (snapshot.hasError) { + return Center(child: Text('Error: ${snapshot.error}')); + } + if (snapshot.connectionState == ConnectionState.waiting) { + return const Center(child: CircularProgressIndicator()); + } + + final messages = snapshot.data ?? []; + + if (messages.isEmpty) { + return const Center(child: Text('Belum ada pesan di kelas ini')); + } + + return ListView.builder( + reverse: true, + padding: const EdgeInsets.all(16), + itemCount: messages.length, + itemBuilder: (context, index) { + final msg = messages[messages.length - 1 - index]; + final senderId = _getSenderId(msg); + final isMe = senderId == _currentUserId; + final senderName = isMe ? 'Anda' : (_userNames[senderId] ?? 'Tidak diketahui'); + + final textMsg = msg['text'] ?? ''; + if (textMsg.startsWith("📋 *Pengajuan Izin*")) { + return _buildIzinCard(textMsg, senderName, _formatTime(msg['created_at']), isMe); + } + + return Align( + alignment: isMe ? Alignment.centerRight : Alignment.centerLeft, + child: Container( + margin: const EdgeInsets.symmetric(vertical: 4), + constraints: BoxConstraints( + maxWidth: MediaQuery.of(context).size.width * 0.75, + ), + padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 10), + decoration: BoxDecoration( + color: isMe ? const Color(0xFF2563EB) : Colors.grey[200], + borderRadius: BorderRadius.only( + topLeft: const Radius.circular(16), + topRight: const Radius.circular(16), + bottomLeft: isMe ? const Radius.circular(16) : const Radius.circular(0), + bottomRight: isMe ? const Radius.circular(0) : const Radius.circular(16), + ), + ), + child: Column( + crossAxisAlignment: isMe ? CrossAxisAlignment.end : CrossAxisAlignment.start, + children: [ + if (!isMe) + Padding( + padding: const EdgeInsets.only(bottom: 4), + child: Text( + senderName, + style: const TextStyle( + fontSize: 12, + fontWeight: FontWeight.bold, + color: Color(0xFF2563EB), + ), + ), + ), + if (msg['text']?.toString().startsWith('PENGUMUMAN_ID:') == true) + PengumumanCard(pengumumanId: msg['text'].toString().split(':')[1]) + else if (msg['text']?.toString().startsWith('IMAGE_URL:') == true) + GestureDetector( + onTap: () { + Navigator.push(context, MaterialPageRoute(builder: (_) => DocImagePreviewPage(imageUrl: msg['text'].toString().replaceFirst('IMAGE_URL:', '')))); + }, + child: ClipRRect( + borderRadius: BorderRadius.circular(8), + child: Image.network( + msg['text'].toString().replaceFirst('IMAGE_URL:', ''), + width: 200, + height: 200, + fit: BoxFit.cover, + ), + ), + ) + else if (msg['text']?.toString().startsWith('DOC_URL:') == true) + Builder( + builder: (context) { + final url = msg['text'].toString().replaceFirst('DOC_URL:', ''); + final uri = Uri.tryParse(url); + String fileName = 'Dokumen'; + String extension = 'FILE'; + + if (uri != null && uri.pathSegments.isNotEmpty) { + fileName = Uri.decodeComponent(uri.pathSegments.last); + final regex = RegExp(r'^\d{13}_'); + fileName = fileName.replaceFirst(regex, ''); + final extIndex = fileName.lastIndexOf('.'); + if (extIndex != -1 && extIndex < fileName.length - 1) { + extension = fileName.substring(extIndex + 1).toUpperCase(); + } + } + + return GestureDetector( + onTap: () async { + final parsedUrl = Uri.parse(url); + try { + await launchUrl(parsedUrl, mode: LaunchMode.externalApplication); + } catch (e) { + if (context.mounted) { + ScaffoldMessenger.of(context).showSnackBar(const SnackBar(content: Text('Tidak dapat membuka dokumen'))); + } + } + }, + child: Container( + constraints: const BoxConstraints(maxWidth: 240), + padding: const EdgeInsets.all(8), + decoration: BoxDecoration( + color: isMe ? Colors.black.withOpacity(0.1) : Colors.white.withOpacity(0.5), + borderRadius: BorderRadius.circular(8), + ), + child: Row( + mainAxisSize: MainAxisSize.min, + children: [ + Container( + width: 42, + height: 52, + decoration: BoxDecoration( + color: isMe ? Colors.white.withOpacity(0.2) : Colors.black.withOpacity(0.05), + borderRadius: BorderRadius.circular(6), + ), + child: Center( + child: Text( + extension.length > 4 ? extension.substring(0, 4) : extension, + style: TextStyle( + fontSize: 12, + fontWeight: FontWeight.bold, + color: isMe ? Colors.white : Colors.black87, + ), + ), + ), + ), + const SizedBox(width: 12), + Flexible( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + fileName, + maxLines: 2, + overflow: TextOverflow.ellipsis, + style: TextStyle( + fontSize: 14, + color: isMe ? Colors.white : Colors.black87, + fontWeight: FontWeight.w500, + ), + ), + const SizedBox(height: 4), + Text( + '$extension • Dokumen', + style: TextStyle( + fontSize: 12, + color: isMe ? Colors.white70 : Colors.black54, + ), + ), + ], + ), + ), + ], + ), + ), + ); + }, + ) + else + Text( + msg['text'] ?? '', + style: TextStyle( + color: isMe ? Colors.white : Colors.black87, + ), + ), + const SizedBox(height: 4), + Text( + _formatTime(msg['created_at']), + style: TextStyle( + fontSize: 10, + color: isMe ? Colors.white70 : Colors.black54, + ), + ), + ], + ), + ), + ); + }, + ); + }, + ), + ), + Container( + padding: const EdgeInsets.all(8), + decoration: BoxDecoration( + color: Colors.white, + boxShadow: [ + BoxShadow( + color: Colors.black.withOpacity(0.05), + offset: const Offset(0, -2), + blurRadius: 4, + ), + ], + ), + child: SafeArea( + child: Row( + children: [ + PopupMenuButton( + icon: const Icon(Icons.attach_file, color: Colors.orange), + tooltip: 'Lampiran', + offset: const Offset(0, -160), + onSelected: (value) { + if (value == 'image') { + _pickAndSendImage(); + } else if (value == 'document') { + _pickAndSendDoc(); + } else if (value == 'announcement') { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => PengumumanPage(classId: _currentClassId), + ), + ); + } + }, + itemBuilder: (BuildContext context) => >[ + const PopupMenuItem( + value: 'image', + child: Row( + children: [ + Icon(Icons.image, color: Colors.blue), + SizedBox(width: 8), + Text('Gambar'), + ], + ), + ), + const PopupMenuItem( + value: 'document', + child: Row( + children: [ + Icon(Icons.insert_drive_file, color: Colors.red), + SizedBox(width: 8), + Text('Dokumen'), + ], + ), + ), + if (_currentUserRole == 'admin' || _currentUserRole == 'guru') + const PopupMenuItem( + value: 'announcement', + child: Row( + children: [ + Icon(Icons.campaign, color: Colors.orange), + SizedBox(width: 8), + Text('Pengumuman'), + ], + ), + ), + ], + ), + Expanded( + child: TextField( + controller: _messageController, + decoration: InputDecoration( + hintText: 'Tulis pesan kelas...', + contentPadding: const EdgeInsets.symmetric(horizontal: 16, vertical: 10), + filled: true, + fillColor: Colors.grey[100], + border: OutlineInputBorder( + borderRadius: BorderRadius.circular(20), + borderSide: BorderSide.none, + ), + ), + ), + ), + const SizedBox(width: 8), + CircleAvatar( + backgroundColor: const Color(0xFF2563EB), + child: IconButton( + icon: const Icon(Icons.send, color: Colors.white, size: 20), + onPressed: _sendMessage, + ), + ), + ], + ), + ), + ), + ], + ), + ); + } +} + +class IzinStatusWidget extends StatefulWidget { + final String idIzin; + final bool isTeacher; + const IzinStatusWidget({super.key, required this.idIzin, required this.isTeacher}); + + @override + State createState() => _IzinStatusWidgetState(); +} + +class _IzinStatusWidgetState extends State { + bool? _verifStatus; + bool _isLoading = true; + + @override + void initState() { + super.initState(); + _fetchStatus(); + } + + Future _fetchStatus() async { + if (widget.idIzin.isEmpty) { + setState(() => _isLoading = false); + return; + } + try { + final res = await Supabase.instance.client + .from('leave_request') + .select('verif') + .eq('id_tabel', widget.idIzin) + .maybeSingle(); + if (res != null && mounted) { + setState(() { + _verifStatus = res['verif']; + _isLoading = false; + }); + } else { + setState(() => _isLoading = false); + } + } catch (e) { + setState(() => _isLoading = false); + } + } + + Future _updateStatus(bool status) async { + setState(() => _isLoading = true); + try { + await Supabase.instance.client + .from('leave_request') + .update({'verif': status}) + .eq('id_tabel', widget.idIzin); + + if (mounted) { + setState(() { + _verifStatus = status; + _isLoading = false; + }); + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + content: Text(status ? 'Pengajuan izin disetujui!' : 'Pengajuan izin ditolak!'), + backgroundColor: status ? Colors.green : Colors.red, + ), + ); + } + } catch (e) { + if (mounted) { + setState(() => _isLoading = false); + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text('Gagal memperbarui status: $e')), + ); + } + } + } + + @override + Widget build(BuildContext context) { + if (_isLoading) { + return const Padding( + padding: EdgeInsets.symmetric(vertical: 4), + child: SizedBox( + height: 20, + width: 20, + child: CircularProgressIndicator(strokeWidth: 2), + ), + ); + } + + if (_verifStatus == true) { + return Container( + margin: const EdgeInsets.only(top: 8), + padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 6), + decoration: BoxDecoration( + color: const Color(0xFFD1FAE5), + borderRadius: BorderRadius.circular(8), + ), + child: const Row( + mainAxisSize: MainAxisSize.min, + children: [ + Icon(Icons.check_circle, color: Color(0xFF059669), size: 16), + SizedBox(width: 6), + Text( + 'Disetujui', + style: TextStyle(color: Color(0xFF059669), fontWeight: FontWeight.bold, fontSize: 12, fontFamily: 'Inter'), + ), + ], + ), + ); + } + + if (_verifStatus == false) { + return Container( + margin: const EdgeInsets.only(top: 8), + padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 6), + decoration: BoxDecoration( + color: const Color(0xFFFEE2E2), + borderRadius: BorderRadius.circular(8), + ), + child: const Row( + mainAxisSize: MainAxisSize.min, + children: [ + Icon(Icons.cancel, color: Color(0xFFDC2626), size: 16), + SizedBox(width: 6), + Text( + 'Ditolak', + style: TextStyle(color: Color(0xFFDC2626), fontWeight: FontWeight.bold, fontSize: 12, fontFamily: 'Inter'), + ), + ], + ), + ); + } + + // Status: Pending (null) + if (widget.isTeacher) { + return Container( + margin: const EdgeInsets.only(top: 12), + child: Row( + children: [ + ElevatedButton.icon( + onPressed: () => _updateStatus(true), + icon: const Icon(Icons.check, size: 16, color: Colors.white), + label: const Text('Setujui', style: TextStyle(color: Colors.white, fontFamily: 'Inter', fontWeight: FontWeight.bold)), + style: ElevatedButton.styleFrom( + backgroundColor: const Color(0xFF059669), + padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 8), + minimumSize: Size.zero, + tapTargetSize: MaterialTapTargetSize.shrinkWrap, + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(8)), + ), + ), + const SizedBox(width: 12), + OutlinedButton.icon( + onPressed: () => _updateStatus(false), + icon: const Icon(Icons.close, size: 16, color: Color(0xFFDC2626)), + label: const Text('Tolak', style: TextStyle(color: Color(0xFFDC2626), fontFamily: 'Inter', fontWeight: FontWeight.bold)), + style: OutlinedButton.styleFrom( + side: const BorderSide(color: Color(0xFFDC2626)), + padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 8), + minimumSize: Size.zero, + tapTargetSize: MaterialTapTargetSize.shrinkWrap, + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(8)), + ), + ), + ], + ), + ); + } + + return Container( + margin: const EdgeInsets.only(top: 8), + padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 6), + decoration: BoxDecoration( + color: const Color(0xFFFEF3C7), + borderRadius: BorderRadius.circular(8), + ), + child: const Row( + mainAxisSize: MainAxisSize.min, + children: [ + Icon(Icons.hourglass_empty, color: Color(0xFFD97706), size: 16), + SizedBox(width: 6), + Text( + 'Menunggu Persetujuan', + style: TextStyle(color: Color(0xFFD97706), fontWeight: FontWeight.bold, fontSize: 12, fontFamily: 'Inter'), + ), + ], + ), + ); + } +} + diff --git a/lib/dashboard/d_guru/function/f_pesan_g/grup_sekolah_g.dart b/lib/dashboard/d_guru/function/f_pesan_g/grup_sekolah_g.dart new file mode 100644 index 0000000..e19eda2 --- /dev/null +++ b/lib/dashboard/d_guru/function/f_pesan_g/grup_sekolah_g.dart @@ -0,0 +1,479 @@ +import 'dart:io'; +import 'package:flutter/material.dart'; +import 'package:intl/intl.dart'; +import 'package:apk/dashboard/d_guru/database/db_grup_sekolah.dart'; +import 'package:apk/dashboard/d_guru/function/f_pesan_g/anggota_g/member_sekolah_g.dart'; +import 'package:apk/dashboard/d_guru/function/f_pesan_g/pengumuman.dart'; +import 'package:file_picker/file_picker.dart'; +import 'package:image_picker/image_picker.dart'; +import 'package:url_launcher/url_launcher.dart'; +import 'package:apk/dashboard/d_guru/database/storage/image_doc.dart'; +import 'package:apk/dashboard/d_guru/function/f_pesan_g/doc_image.dart'; +import 'package:apk/dashboard/d_guru/function/f_pesan_g/f_notif/grup_sekolah_n.dart'; + +class GrupSekolahG extends StatefulWidget { + const GrupSekolahG({super.key}); + + @override + State createState() => _GrupSekolahGState(); +} + +class _GrupSekolahGState extends State { + final TextEditingController _messageController = TextEditingController(); + + bool _isLoading = true; + String? _errorMessage; + + String? _currentUserId; + String? _currentUserRole; // 'admin', 'guru', or 'murid' + + Stream>>? _chatStream; + Map _userNames = {}; // mapping ID ke Nama + + @override + void initState() { + super.initState(); + _initChat(); + GrupSekolahNotification.setUnread(false); + } + + Future _initChat() async { + try { + // Fetch mapping nama semua user + _userNames = await DbGrupSekolah.fetchAllNames(); + + // Fetch current user info + final currentUserInfo = await DbGrupSekolah.getCurrentUserRoleAndId(); + + if (currentUserInfo != null) { + _currentUserId = currentUserInfo['id']; + _currentUserRole = currentUserInfo['role']; + _chatStream = DbGrupSekolah().getGrupSekolahStream(); + } else { + _errorMessage = 'Gagal memuat profil. Pastikan Anda telah login dengan benar.'; + } + } catch (e) { + _errorMessage = 'Error: $e'; + } finally { + if (mounted) { + setState(() { + _isLoading = false; + }); + } + } + } + + Future _pickAndSendImage() async { + final picker = ImagePicker(); + final pickedFile = await picker.pickImage(source: ImageSource.gallery); + if (pickedFile != null) { + final file = File(pickedFile.path); + final name = pickedFile.name; + setState(() => _isLoading = true); + final url = await ImageDocStorage.uploadFileObject(file, name); + if (url != null) { + await DbGrupSekolah().sendMessage( + text: 'IMAGE_URL:$url', + senderId: _currentUserId!, + role: _currentUserRole!, + ); + await _initChat(); + } else { + setState(() => _isLoading = false); + if (mounted) ScaffoldMessenger.of(context).showSnackBar(const SnackBar(content: Text('Gagal unggah gambar'))); + } + } + } + + Future _pickAndSendDoc() async { + final result = await FilePicker.pickFiles( + type: FileType.custom, + allowedExtensions: ['pdf', 'doc', 'docx', 'xls', 'xlsx', 'txt', 'zip', 'rar'], + withData: true, + ); + if (result != null && result.files.single.bytes != null) { + final bytes = result.files.single.bytes!; + final name = result.files.single.name; + setState(() => _isLoading = true); + final url = await ImageDocStorage.uploadFile(bytes, name); + if (url != null) { + await DbGrupSekolah().sendMessage( + text: 'DOC_URL:$url', + senderId: _currentUserId!, + role: _currentUserRole!, + ); + await _initChat(); + } else { + setState(() => _isLoading = false); + if (mounted) ScaffoldMessenger.of(context).showSnackBar(const SnackBar(content: Text('Gagal unggah dokumen'))); + } + } + } + + Future _sendMessage() async { + final text = _messageController.text.trim(); + if (text.isEmpty || _currentUserId == null || _currentUserRole == null) return; + + _messageController.clear(); + + try { + await DbGrupSekolah().sendMessage( + text: text, + senderId: _currentUserId!, + role: _currentUserRole!, + ); + + // Reload stream dari database setelah mengirim pesan + if (mounted) { + setState(() { + _isLoading = true; + }); + await _initChat(); + } + } catch (e) { + if (mounted) { + ScaffoldMessenger.of(context).showSnackBar(SnackBar(content: Text('Error: $e'))); + } + } + } + + String _formatTime(String isoString) { + try { + final date = DateTime.parse(isoString).toLocal(); + return DateFormat('HH:mm').format(date); + } catch (_) { + return ''; + } + } + + String _getSenderId(Map msg) { + if (msg['pengirim_admin'] != null) return msg['pengirim_admin'].toString(); + if (msg['pengirim_guru'] != null) return msg['pengirim_guru'].toString(); + if (msg['pengirim_murid'] != null) return msg['pengirim_murid'].toString(); + return ''; + } + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + title: const Text('Grup Sekolah'), + backgroundColor: const Color(0xFF2563EB), + iconTheme: const IconThemeData(color: Colors.white), + titleTextStyle: const TextStyle( + fontFamily: 'Inter', + fontSize: 16, + fontWeight: FontWeight.w700, + color: Colors.white, + ), + actions: [ + IconButton( + icon: const Icon(Icons.people), + tooltip: 'Anggota Grup', + onPressed: () { + Navigator.push( + context, + MaterialPageRoute(builder: (context) => const MemberSekolah()), + ); + }, + ) + ], + ), + body: _isLoading + ? const Center(child: CircularProgressIndicator()) + : _errorMessage != null + ? Center(child: Padding(padding: const EdgeInsets.all(16), child: Text(_errorMessage!, style: const TextStyle(color: Colors.red)))) + : Column( + children: [ + Expanded( + child: _chatStream == null + ? const Center(child: Text('Gagal memuat ruang obrolan')) + : StreamBuilder>>( + stream: _chatStream, + builder: (context, snapshot) { + if (snapshot.hasError) { + return Center(child: Text('Error: ${snapshot.error}')); + } + if (snapshot.connectionState == ConnectionState.waiting) { + return const Center(child: CircularProgressIndicator()); + } + + final messages = snapshot.data ?? []; + + if (messages.isEmpty) { + return const Center(child: Text('Belum ada pesan. Mulai obrolan!')); + } + + return ListView.builder( + reverse: true, + padding: const EdgeInsets.all(16), + itemCount: messages.length, + itemBuilder: (context, index) { + final msg = messages[messages.length - 1 - index]; + bool isMe = false; + if (_currentUserRole == 'admin') { + isMe = msg['pengirim_admin']?.toString() == _currentUserId; + } else if (_currentUserRole == 'guru') { + isMe = msg['pengirim_guru']?.toString() == _currentUserId; + } else if (_currentUserRole == 'murid') { + isMe = msg['pengirim_murid']?.toString() == _currentUserId; + } + final senderId = _getSenderId(msg); + final senderName = _userNames[senderId] ?? 'Pengguna'; + + return Align( + alignment: isMe ? Alignment.centerRight : Alignment.centerLeft, + child: Container( + margin: const EdgeInsets.symmetric(vertical: 6), + child: Column( + crossAxisAlignment: isMe ? CrossAxisAlignment.end : CrossAxisAlignment.start, + children: [ + if (!isMe) + Padding( + padding: const EdgeInsets.only(left: 4, bottom: 2), + child: Text( + senderName, + style: const TextStyle( + fontSize: 12, + color: Colors.black54, + fontWeight: FontWeight.bold, + ), + ), + ), + Container( + padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 10), + decoration: BoxDecoration( + color: isMe ? const Color(0xFF2563EB) : Colors.grey[200], + borderRadius: BorderRadius.only( + topLeft: const Radius.circular(16), + topRight: const Radius.circular(16), + bottomLeft: isMe ? const Radius.circular(16) : const Radius.circular(0), + bottomRight: isMe ? const Radius.circular(0) : const Radius.circular(16), + ), + ), + child: Column( + crossAxisAlignment: isMe ? CrossAxisAlignment.end : CrossAxisAlignment.start, + children: [ + if (msg['text']?.toString().startsWith('PENGUMUMAN_ID:') == true) + PengumumanCard(pengumumanId: msg['text'].toString().split(':')[1]) + else if (msg['text']?.toString().startsWith('IMAGE_URL:') == true) + GestureDetector( + onTap: () { + Navigator.push(context, MaterialPageRoute(builder: (_) => DocImagePreviewPage(imageUrl: msg['text'].toString().replaceFirst('IMAGE_URL:', '')))); + }, + child: ClipRRect( + borderRadius: BorderRadius.circular(8), + child: Image.network( + msg['text'].toString().replaceFirst('IMAGE_URL:', ''), + width: 200, + height: 200, + fit: BoxFit.cover, + ), + ), + ) + else if (msg['text']?.toString().startsWith('DOC_URL:') == true) + Builder( + builder: (context) { + final url = msg['text'].toString().replaceFirst('DOC_URL:', ''); + final uri = Uri.tryParse(url); + String fileName = 'Dokumen'; + String extension = 'FILE'; + + if (uri != null && uri.pathSegments.isNotEmpty) { + fileName = Uri.decodeComponent(uri.pathSegments.last); + final regex = RegExp(r'^\d{13}_'); + fileName = fileName.replaceFirst(regex, ''); + final extIndex = fileName.lastIndexOf('.'); + if (extIndex != -1 && extIndex < fileName.length - 1) { + extension = fileName.substring(extIndex + 1).toUpperCase(); + } + } + + return GestureDetector( + onTap: () async { + final parsedUrl = Uri.parse(url); + try { + await launchUrl(parsedUrl, mode: LaunchMode.externalApplication); + } catch (e) { + if (context.mounted) { + ScaffoldMessenger.of(context).showSnackBar(const SnackBar(content: Text('Tidak dapat membuka dokumen'))); + } + } + }, + child: Container( + constraints: const BoxConstraints(maxWidth: 240), + padding: const EdgeInsets.all(8), + decoration: BoxDecoration( + color: isMe ? Colors.black.withOpacity(0.1) : Colors.white.withOpacity(0.5), + borderRadius: BorderRadius.circular(8), + ), + child: Row( + mainAxisSize: MainAxisSize.min, + children: [ + Container( + width: 42, + height: 52, + decoration: BoxDecoration( + color: isMe ? Colors.white.withOpacity(0.2) : Colors.black.withOpacity(0.05), + borderRadius: BorderRadius.circular(6), + ), + child: Center( + child: Text( + extension.length > 4 ? extension.substring(0, 4) : extension, + style: TextStyle( + fontSize: 12, + fontWeight: FontWeight.bold, + color: isMe ? Colors.white : Colors.black87, + ), + ), + ), + ), + const SizedBox(width: 12), + Flexible( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + fileName, + maxLines: 2, + overflow: TextOverflow.ellipsis, + style: TextStyle( + fontSize: 14, + color: isMe ? Colors.white : Colors.black87, + fontWeight: FontWeight.w500, + ), + ), + const SizedBox(height: 4), + Text( + '$extension • Dokumen', + style: TextStyle( + fontSize: 12, + color: isMe ? Colors.white70 : Colors.black54, + ), + ), + ], + ), + ), + ], + ), + ), + ); + }, + ) + else + Text( + msg['text'] ?? '', + style: TextStyle( + color: isMe ? Colors.white : Colors.black87, + ), + ), + const SizedBox(height: 4), + Text( + _formatTime(msg['created_at']), + style: TextStyle( + fontSize: 10, + color: isMe ? Colors.white70 : Colors.black54, + ), + ), + ], + ), + ), + ], + ), + ), + ); + }, + ); + }, + ), + ), + Container( + padding: const EdgeInsets.all(8), + decoration: BoxDecoration( + color: Colors.white, + boxShadow: [ + BoxShadow( + color: Colors.black.withOpacity(0.05), + offset: const Offset(0, -2), + blurRadius: 4, + ), + ], + ), + child: Row( + children: [ + if (_currentUserRole == 'admin') + IconButton( + icon: const Icon(Icons.campaign, color: Colors.orange), + tooltip: 'Buat Pengumuman', + onPressed: () { + Navigator.push( + context, + MaterialPageRoute(builder: (context) => const PengumumanPage()), + ); + }, + ), + PopupMenuButton( + icon: const Icon(Icons.attach_file, color: Colors.orange), + tooltip: 'Lampiran', + offset: const Offset(0, -120), + onSelected: (value) { + if (value == 'image') { + _pickAndSendImage(); + } else if (value == 'document') { + _pickAndSendDoc(); + } + }, + itemBuilder: (BuildContext context) => >[ + const PopupMenuItem( + value: 'image', + child: Row( + children: [ + Icon(Icons.image, color: Colors.blue), + SizedBox(width: 8), + Text('Gambar'), + ], + ), + ), + const PopupMenuItem( + value: 'document', + child: Row( + children: [ + Icon(Icons.insert_drive_file, color: Colors.red), + SizedBox(width: 8), + Text('Dokumen'), + ], + ), + ), + ], + ), + Expanded( + child: TextField( + controller: _messageController, + decoration: InputDecoration( + hintText: 'Tulis pesan...', + contentPadding: const EdgeInsets.symmetric(horizontal: 16, vertical: 10), + filled: true, + fillColor: Colors.grey[100], + border: OutlineInputBorder( + borderRadius: BorderRadius.circular(20), + borderSide: BorderSide.none, + ), + ), + ), + ), + const SizedBox(width: 8), + CircleAvatar( + backgroundColor: const Color(0xFF2563EB), + child: IconButton( + icon: const Icon(Icons.send, color: Colors.white, size: 20), + onPressed: _sendMessage, + ), + ), + ], + ), + ), + ], + ), + ); + } +} diff --git a/lib/dashboard/d_guru/function/f_pesan_g/pengumuman.dart b/lib/dashboard/d_guru/function/f_pesan_g/pengumuman.dart new file mode 100644 index 0000000..67098ae --- /dev/null +++ b/lib/dashboard/d_guru/function/f_pesan_g/pengumuman.dart @@ -0,0 +1,569 @@ +import 'package:flutter/material.dart'; +import 'package:intl/intl.dart'; +import 'package:file_picker/file_picker.dart'; +import 'package:apk/dashboard/d_guru/database/db_pengumuman.dart'; +import 'package:apk/dashboard/d_guru/database/storage/doc_pengumuman.dart'; +import 'package:apk/dashboard/d_guru/database/db_grup_sekolah.dart'; +import 'package:apk/dashboard/d_guru/database/db_grup_kelas.dart'; +import 'package:url_launcher/url_launcher.dart'; +import 'package:apk/dashboard/d_guru/function/f_pesan_g/doc_image.dart'; + +class PengumumanPage extends StatefulWidget { + final String? classId; + const PengumumanPage({super.key, this.classId}); + + @override + State createState() => _PengumumanPageState(); +} + +class _PengumumanPageState extends State { + final _titleController = TextEditingController(); + final _keteranganController = TextEditingController(); + DateTime? _tanggalMulai; + DateTime? _tanggalSelesai; + List _selectedFiles = []; + bool _isLoading = false; + + Future _pickFile() async { + FilePickerResult? result = await FilePicker.pickFiles( + type: FileType.any, + allowMultiple: true, + withData: true, + ); + + if (result != null) { + setState(() { + for (var file in result.files) { + if (file.bytes != null) { + _selectedFiles.add(file); + } + } + }); + } + } + + Future _selectDate(BuildContext context, bool isStart) async { + final picked = await showDatePicker( + context: context, + initialDate: DateTime.now(), + firstDate: DateTime(2000), + lastDate: DateTime(2101), + ); + if (picked != null) { + setState(() { + if (isStart) { + _tanggalMulai = picked; + } else { + _tanggalSelesai = picked; + } + }); + } + } + + Future _submit() async { + if (_titleController.text.isEmpty || _tanggalMulai == null || _tanggalSelesai == null) { + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text('Harap lengkapi Title, Tanggal Mulai, dan Tanggal Selesai')), + ); + return; + } + + setState(() => _isLoading = true); + + try { + // 1. Upload File if any + List uploadedUrls = []; + for (var file in _selectedFiles) { + if (file.bytes != null && file.extension != null) { + await Future.delayed(const Duration(milliseconds: 10)); // Ensure unique timestamp + final url = await DocPengumuman.uploadDoc(file.bytes!, _titleController.text, file.extension!); + if (url != null) uploadedUrls.add(url); + } + } + + // 2. Determine Guru ID if sender is guru + final roleInfo = await DbGrupSekolah.getCurrentUserRoleAndId(); + String? idGuru; + if (roleInfo != null && roleInfo['role'] == 'guru') { + idGuru = roleInfo['id']; + } + + // 3. Insert Pengumuman + String keterangan = _keteranganController.text; + if (uploadedUrls.isNotEmpty) { + keterangan += '\n\nLampiran: ${uploadedUrls.join(' ')}'; + } + + final pengumuman = await DbPengumuman.insertPengumuman( + title: _titleController.text, + tanggalMulai: DateFormat('yyyy-MM-dd').format(_tanggalMulai!), + tanggalSelesai: DateFormat('yyyy-MM-dd').format(_tanggalSelesai!), + keterangan: keterangan, + idGuru: idGuru, + ); + + final pengumumanId = pengumuman['id_tabel']; + + // 4. Send to Grup Sekolah or Grup Kelas + if (roleInfo != null) { + if (widget.classId != null && widget.classId!.isNotEmpty) { + await DbGrupKelas().sendMessage( + text: 'PENGUMUMAN_ID:$pengumumanId', + senderId: roleInfo['id']!, + role: roleInfo['role']!, + idClass: widget.classId!, + ); + } else { + await DbGrupSekolah().sendMessage( + text: 'PENGUMUMAN_ID:$pengumumanId', + senderId: roleInfo['id']!, + role: roleInfo['role']!, + ); + } + } + + if (mounted) { + Navigator.pop(context); + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + content: Text(widget.classId != null && widget.classId!.isNotEmpty + ? 'Pengumuman berhasil dikirim ke Grup Kelas' + : 'Pengumuman berhasil dikirim ke Grup Sekolah'), + ), + ); + } + } catch (e) { + if (mounted) { + ScaffoldMessenger.of(context).showSnackBar(SnackBar(content: Text('Error: $e'))); + } + } finally { + if (mounted) setState(() => _isLoading = false); + } + } + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + backgroundColor: const Color(0xFF2563EB), + elevation: 0, + automaticallyImplyLeading: true, + leading: IconButton( + icon: Image.asset('lib/assets/icons/Button.png', width: 30, height: 30), + onPressed: () => Navigator.pop(context), + ), + titleSpacing: -5, + title: const Text("Buat Pengumuman"), + titleTextStyle: const TextStyle( + fontFamily: "Inter", + fontSize: 14, + fontWeight: FontWeight.w700, + color: Colors.white, + ), + ), + backgroundColor: Colors.white, + body: _isLoading + ? const Center(child: CircularProgressIndicator()) + : SingleChildScrollView( + padding: const EdgeInsets.all(20.0), + child: Column( + crossAxisAlignment: CrossAxisAlignment.stretch, + children: [ + // Title + const Text("Title", style: TextStyle(fontFamily: 'Inter', fontWeight: FontWeight.bold, fontSize: 16)), + const SizedBox(height: 8), + TextField( + controller: _titleController, + style: const TextStyle(fontFamily: 'Inter'), + decoration: InputDecoration( + hintText: "Judul Pengumuman (Title)", + hintStyle: const TextStyle(color: Color(0xFFC4C4C4), fontFamily: 'Inter'), + filled: true, + fillColor: const Color(0xFFF1F5F9), + contentPadding: const EdgeInsets.symmetric(horizontal: 20, vertical: 18), + border: OutlineInputBorder( + borderRadius: BorderRadius.circular(16), + borderSide: const BorderSide(color: Color(0xFFE2E8F0)), + ), + enabledBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(16), + borderSide: const BorderSide(color: Color(0xFFE2E8F0)), + ), + ), + ), + const SizedBox(height: 16), + + // Dates + Row( + children: [ + Expanded(child: _buildDateCard("Tanggal Mulai", _tanggalMulai, true)), + const SizedBox(width: 12), + Expanded(child: _buildDateCard("Tanggal Selesai", _tanggalSelesai, false)), + ], + ), + const SizedBox(height: 16), + + // Keterangan + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + const Text("Keterangan", style: TextStyle(fontFamily: 'Inter', fontWeight: FontWeight.bold, fontSize: 16)), + Row( + children: const [ + Icon(Icons.format_size, size: 16, color: Colors.grey), + SizedBox(width: 4), + Icon(Icons.edit, size: 16, color: Colors.grey), + ], + ) + ], + ), + const SizedBox(height: 8), + TextField( + controller: _keteranganController, + maxLines: 5, + style: const TextStyle(fontFamily: 'Inter'), + decoration: InputDecoration( + hintText: "Tuliskan isi pengumuman secara detail di sini...", + hintStyle: const TextStyle(color: Color(0xFFC4C4C4), fontFamily: 'Inter'), + filled: true, + fillColor: const Color(0xFFF1F5F9), + contentPadding: const EdgeInsets.symmetric(horizontal: 20, vertical: 18), + border: OutlineInputBorder( + borderRadius: BorderRadius.circular(16), + borderSide: const BorderSide(color: Color(0xFFE2E8F0)), + ), + enabledBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(16), + borderSide: const BorderSide(color: Color(0xFFE2E8F0)), + ), + ), + ), + const SizedBox(height: 16), + + // Upload + Align( + alignment: Alignment.centerLeft, + child: OutlinedButton.icon( + onPressed: _pickFile, + icon: const Icon(Icons.upload_file, color: Colors.purple), + label: const Text('Upload Doc/Image', style: TextStyle(fontFamily: 'Inter', color: Colors.purple)), + style: OutlinedButton.styleFrom( + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(12)), + side: const BorderSide(color: Colors.purple, width: 1), + padding: const EdgeInsets.symmetric(horizontal: 32, vertical: 14), + ), + ), + ), + if (_selectedFiles.isNotEmpty) ...[ + const SizedBox(height: 16), + const Text("Uploaded Files : ", style: TextStyle(fontFamily: 'Inter', fontWeight: FontWeight.bold)), + const SizedBox(height: 8), + Wrap( + spacing: 8, + runSpacing: 8, + children: _selectedFiles.map((file) { + final ext = file.extension?.toLowerCase() ?? ''; + final isImage = ['jpg', 'jpeg', 'png', 'gif', 'webp'].contains(ext); + return Container( + padding: const EdgeInsets.symmetric(horizontal: 8, vertical: 4), + decoration: BoxDecoration( + color: Colors.grey[200], + borderRadius: BorderRadius.circular(16), + ), + child: Row( + mainAxisSize: MainAxisSize.min, + children: [ + Icon( + isImage ? Icons.image : Icons.picture_as_pdf, + color: isImage ? Colors.green : Colors.red, + size: 16, + ), + const SizedBox(width: 4), + Flexible( + child: Text( + file.name, + style: const TextStyle(fontFamily: 'Inter', fontSize: 12), + maxLines: 1, + overflow: TextOverflow.ellipsis, + ), + ), + const SizedBox(width: 4), + GestureDetector( + onTap: () { + setState(() { + _selectedFiles.remove(file); + }); + }, + child: const Icon(Icons.close, size: 14, color: Colors.grey), + ), + ], + ), + ); + }).toList(), + ), + ], + const SizedBox(height: 32), + + // Submit Button + ElevatedButton( + onPressed: _submit, + style: ElevatedButton.styleFrom( + backgroundColor: const Color(0xFF1E3A8A), // Dark blue + padding: const EdgeInsets.symmetric(vertical: 16), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(12), + ), + ), + child: const Text('Tulis Pengumuman', style: TextStyle(fontFamily: 'Inter', fontSize: 16, fontWeight: FontWeight.bold, color: Colors.white)), + ), + ], + ), + ), + ); + } + + Widget _buildDateCard(String title, DateTime? date, bool isStart) { + return GestureDetector( + onTap: () => _selectDate(context, isStart), + child: Container( + padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 12), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(12), + border: Border.all(color: const Color(0xFFE2E8F0)), + boxShadow: [ + BoxShadow( + color: Colors.black.withOpacity(0.05), + blurRadius: 4, + offset: const Offset(0, 2), + ) + ] + ), + child: Row( + children: [ + const Icon(Icons.calendar_today, color: Color(0xFF2563EB)), + const SizedBox(width: 8), + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text(title, style: const TextStyle(fontFamily: 'Inter', fontWeight: FontWeight.bold, fontSize: 12)), + const SizedBox(height: 4), + Text( + date == null ? '-' : DateFormat('dd MMM yyyy').format(date), + style: const TextStyle(fontFamily: 'Inter', fontSize: 12, color: Colors.black87), + ), + ], + ), + ), + ], + ), + ), + ); + } +} + +// Widget untuk menampilkan Pengumuman di dalam obrolan Grup Sekolah +class PengumumanCard extends StatelessWidget { + final String pengumumanId; + const PengumumanCard({super.key, required this.pengumumanId}); + + @override + Widget build(BuildContext context) { + return FutureBuilder?>( + future: DbPengumuman.getPengumumanById(pengumumanId), + builder: (context, snapshot) { + if (snapshot.connectionState == ConnectionState.waiting) { + return const Card( + child: Padding( + padding: EdgeInsets.all(16), + child: SizedBox( + height: 50, + width: 50, + child: Center(child: CircularProgressIndicator()), + ), + ), + ); + } + if (!snapshot.hasData || snapshot.data == null) { + return const Card( + child: Padding( + padding: EdgeInsets.all(16), + child: Text('Pengumuman tidak ditemukan'), + ), + ); + } + + final data = snapshot.data!; + + // Memisahkan keterangan dan URL lampiran jika ada + String textKeterangan = data['keterangan'] ?? ''; + List lampiranUrls = []; + + if (textKeterangan.contains('Lampiran: ')) { + final parts = textKeterangan.split('Lampiran: '); + textKeterangan = parts[0].trim(); + final urlsString = parts.length > 1 ? parts[1].trim() : ''; + lampiranUrls = urlsString.split(RegExp(r'\s+')).where((s) => s.startsWith('http')).toList(); + } + + return Card( + color: Colors.amber[50], + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(12)), + elevation: 2, + child: Padding( + padding: const EdgeInsets.all(16), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + children: [ + const Icon(Icons.campaign, color: Colors.amber, size: 28), + const SizedBox(width: 8), + Expanded( + child: Text( + data['title'] ?? 'Pengumuman', + style: const TextStyle( + fontWeight: FontWeight.bold, + fontSize: 16, + ), + ), + ), + ], + ), + const Divider(), + Row( + children: [ + const Icon(Icons.date_range, size: 16, color: Colors.grey), + const SizedBox(width: 4), + Text( + '${data['tanggal_mulai']} s/d ${data['tanggal_selesai']}', + style: const TextStyle(fontSize: 12, color: Colors.black87), + ), + ], + ), + if (textKeterangan.isNotEmpty) ...[ + const SizedBox(height: 8), + Text(textKeterangan, style: const TextStyle(fontSize: 14)), + ], + if (lampiranUrls.isNotEmpty) ...[ + const SizedBox(height: 8), + Wrap( + spacing: 8, + runSpacing: 8, + children: lampiranUrls.map((lampiranUrl) { + return Builder( + builder: (context) { + final uri = Uri.tryParse(lampiranUrl); + String extension = 'FILE'; + String fileName = 'Lampiran'; + if (uri != null && uri.pathSegments.isNotEmpty) { + final fullName = Uri.decodeComponent(uri.pathSegments.last); + fileName = fullName.replaceFirst(RegExp(r'^\d{13}_'), ''); + final extIndex = fullName.lastIndexOf('.'); + if (extIndex != -1 && extIndex < fullName.length - 1) { + extension = fullName.substring(extIndex + 1).toLowerCase(); + } + } + bool isImage = ['jpg', 'jpeg', 'png', 'gif', 'webp'].contains(extension); + + if (isImage) { + return GestureDetector( + onTap: () { + Navigator.push(context, MaterialPageRoute(builder: (_) => DocImagePreviewPage(imageUrl: lampiranUrl))); + }, + child: ClipRRect( + borderRadius: BorderRadius.circular(8), + child: Image.network( + lampiranUrl, + width: 200, + height: 200, + fit: BoxFit.cover, + ), + ), + ); + } else { + return GestureDetector( + onTap: () async { + final parsedUrl = Uri.parse(lampiranUrl); + try { + await launchUrl(parsedUrl, mode: LaunchMode.externalApplication); + } catch (e) { + if (context.mounted) { + ScaffoldMessenger.of(context).showSnackBar(const SnackBar(content: Text('Tidak dapat membuka lampiran'))); + } + } + }, + child: Container( + constraints: const BoxConstraints(maxWidth: 240), + padding: const EdgeInsets.all(8), + decoration: BoxDecoration( + color: Colors.white.withOpacity(0.8), + borderRadius: BorderRadius.circular(8), + border: Border.all(color: Colors.black12), + ), + child: Row( + mainAxisSize: MainAxisSize.min, + children: [ + Container( + width: 42, + height: 52, + decoration: BoxDecoration( + color: Colors.black.withOpacity(0.05), + borderRadius: BorderRadius.circular(6), + ), + child: Center( + child: Text( + extension.length > 4 ? extension.substring(0, 4).toUpperCase() : extension.toUpperCase(), + style: const TextStyle( + fontSize: 12, + fontWeight: FontWeight.bold, + color: Colors.black87, + ), + ), + ), + ), + const SizedBox(width: 12), + Flexible( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + fileName, + maxLines: 2, + overflow: TextOverflow.ellipsis, + style: const TextStyle( + fontSize: 14, + color: Colors.black87, + fontWeight: FontWeight.w500, + ), + ), + const SizedBox(height: 4), + Text( + '${extension.toUpperCase()} • Dokumen', + style: const TextStyle( + fontSize: 12, + color: Colors.black54, + ), + ), + ], + ), + ), + ], + ), + ), + ); + } + }, + ); + }).toList(), + ) + ] + ], + ), + ), + ); + }, + ); + } +} diff --git a/lib/dashboard/d_guru/function/f_pesan_g/pengumuman_g.dart b/lib/dashboard/d_guru/function/f_pesan_g/pengumuman_g.dart new file mode 100644 index 0000000..54ef8c2 --- /dev/null +++ b/lib/dashboard/d_guru/function/f_pesan_g/pengumuman_g.dart @@ -0,0 +1,502 @@ +import 'package:flutter/material.dart'; +import 'package:apk/dashboard/a_admin/widget/custom_button.dart'; +import 'package:apk/dashboard/d_guru/function/f_pesan_g/grup_sekolah_g.dart'; +import 'package:apk/dashboard/d_guru/function/f_pesan_g/grup_kelas_g.dart'; +import 'package:apk/dashboard/d_guru/function/f_pesan_g/chat_admin_g.dart'; +import 'package:apk/dashboard/d_guru/function/f_pesan_g/chat_private_g.dart'; +import 'package:supabase_flutter/supabase_flutter.dart'; +import 'package:shared_preferences/shared_preferences.dart'; + +class PengumumanG extends StatefulWidget { + const PengumumanG({super.key}); + + @override + State createState() => _PengumumanGState(); +} + +class _PengumumanGState extends State { + bool _isLoading = true; + List> _listGuru = []; + List> _listMurid = []; + + @override + void initState() { + super.initState(); + _loadData(); + } + + Future _loadData() async { + try { + final supabase = Supabase.instance.client; + final prefs = await SharedPreferences.getInstance(); + final userId = prefs.getString('user_id_admin'); + final nik = prefs.getString('guru_nik'); + + if (userId == null || nik == null) { + if (mounted) setState(() => _isLoading = false); + return; + } + + // 1. Dapatkan info guru yang login + final guruData = await supabase + .from('guru') + .select('id_tabel, id_class') + .eq('user_id', userId) + .eq('nik', nik) + .maybeSingle(); + + if (guruData == null) { + if (mounted) setState(() => _isLoading = false); + return; + } + + final guruIdTabel = guruData['id_tabel']; + final guruIdClass = guruData['id_class']; + + // 2. Kumpulkan semua ID Kelas (UUID) — pola dari db_kelas + Set validClassIds = {}; + if (guruIdClass != null) { + validClassIds.add(guruIdClass.toString()); + } + + final classDataList = await supabase + .from('class_name') + .select('id_tabel, id_class') + .eq('id_guru', guruIdTabel); + + for (var c in classDataList) { + validClassIds.add(c['id_tabel'].toString()); + } + + if (validClassIds.isEmpty) { + if (mounted) { + setState(() { + _listGuru = []; + _listMurid = []; + _isLoading = false; + }); + } + return; + } + + // 3. Ambil guru yang id_class-nya ada di validClassIds + final guruInClass = await supabase + .from('guru') + .select('id_tabel, nik, name, bidang, wali, id_class') + .inFilter('id_class', validClassIds.toList()); + + // Buang diri sendiri + final List> filteredGuru = []; + for (var g in guruInClass) { + if (g['id_tabel'].toString() != guruIdTabel.toString()) { + filteredGuru.add(g); + } + } + + // 4. Ambil murid — pola dari db_kelas.getMuridForGuru() + Map> allMurid = {}; + + final muridListA = await supabase + .from('murid') + .select('id_tabel, nis, nama, gender, id_class') + .inFilter('id_class', validClassIds.toList()); + + for (var m in muridListA) { + allMurid[m['id_tabel'].toString()] = m; + } + + final classMuridRows = await supabase + .from('class_name') + .select('id_murid') + .inFilter('id_tabel', validClassIds.toList()) + .not('id_murid', 'is', null); + + List muridIdsFromClass = classMuridRows + .map((r) => r['id_murid'].toString()) + .where((id) => id != 'null') + .toList(); + + if (muridIdsFromClass.isNotEmpty) { + final muridListB = await supabase + .from('murid') + .select('id_tabel, nis, nama, gender, id_class') + .inFilter('id_tabel', muridIdsFromClass); + + for (var m in muridListB) { + allMurid[m['id_tabel'].toString()] = m; + } + } + + final finalMuridList = allMurid.values.toList(); + finalMuridList.sort((a, b) => + (a['nama']?.toString() ?? '').compareTo(b['nama']?.toString() ?? '')); + + if (mounted) { + setState(() { + _listGuru = filteredGuru; + _listMurid = finalMuridList; + _isLoading = false; + }); + } + } catch (e) { + debugPrint('Error _loadData pengumuman_g: $e'); + if (mounted) { + setState(() => _isLoading = false); + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text('Error: $e')), + ); + } + } + } + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: AppBar( + titleSpacing: 20, + title: const Text('Pengumuman Sekolah'), + titleTextStyle: const TextStyle( + fontFamily: 'Inter', + fontSize: 16, + fontWeight: FontWeight.w700, + color: Colors.white, + ), + backgroundColor: const Color(0xFF2563EB), + elevation: 0, + actions: [ + Padding( + padding: const EdgeInsets.only(right: 10.0), + child: IconButton( + icon: const Icon(Icons.refresh, color: Colors.white), + onPressed: () { + setState(() { + _isLoading = true; + }); + _loadData(); + }, + ), + ), + ], + ), + body: _isLoading + ? const Center(child: CircularProgressIndicator()) + : ListView( + padding: const EdgeInsets.symmetric(vertical: 10.0), + children: [ + Padding( + padding: const EdgeInsets.symmetric(horizontal: 16.0, vertical: 6.0), + child: CustomCard( + title: 'Grup Sekolah', + titleStyle: const TextStyle( + fontFamily: 'Inter', + fontSize: 14, + fontWeight: FontWeight.w700, + color: Color(0xFF1E293B), + ), + customSubtitle: Row( + children: [ + const Text( + 'Forum', + style: TextStyle( + fontFamily: 'Inter', + fontSize: 12, + fontWeight: FontWeight.w500, + color: Color(0xFF64748B), + ), + ), + const SizedBox(width: 8), + Container( + width: 4, + height: 4, + decoration: const BoxDecoration( + color: Color(0xFFCBD5E1), + shape: BoxShape.circle, + ), + ), + const SizedBox(width: 8), + const Flexible( + child: Text( + 'Informasi & Diskusi', + style: TextStyle( + fontFamily: 'Inter', + fontSize: 12, + fontWeight: FontWeight.w500, + color: Color(0xFF64748B), + ), + overflow: TextOverflow.ellipsis, + ), + ), + ], + ), + showIcon: false, + backgroundColor: Colors.white, + borderColor: Colors.transparent, + borderWidth: 0, + margin: EdgeInsets.zero, + onTap: () { + Navigator.push( + context, + MaterialPageRoute(builder: (context) => const GrupSekolahG()), + ); + }, + ), + ), + Padding( + padding: const EdgeInsets.symmetric(horizontal: 16.0, vertical: 6.0), + child: CustomCard( + title: 'Grup Kelas', + titleStyle: const TextStyle( + fontFamily: 'Inter', + fontSize: 14, + fontWeight: FontWeight.w700, + color: Color(0xFF1E293B), + ), + customSubtitle: Row( + children: [ + const Text( + 'Kelas', + style: TextStyle( + fontFamily: 'Inter', + fontSize: 12, + fontWeight: FontWeight.w500, + color: Color(0xFF64748B), + ), + ), + const SizedBox(width: 8), + Container( + width: 4, + height: 4, + decoration: const BoxDecoration( + color: Color(0xFFCBD5E1), + shape: BoxShape.circle, + ), + ), + const SizedBox(width: 8), + const Flexible( + child: Text( + 'Diskusi Khusus Kelas Anda', + style: TextStyle( + fontFamily: 'Inter', + fontSize: 12, + fontWeight: FontWeight.w500, + color: Color(0xFF64748B), + ), + overflow: TextOverflow.ellipsis, + ), + ), + ], + ), + showIcon: false, + backgroundColor: Colors.white, + borderColor: Colors.transparent, + borderWidth: 0, + margin: EdgeInsets.zero, + onTap: () { + Navigator.push( + context, + MaterialPageRoute(builder: (context) => const GrupKelasPageG()), + ); + }, + ), + ), + Padding( + padding: const EdgeInsets.symmetric(horizontal: 16.0, vertical: 6.0), + child: CustomCard( + title: 'Admin Sekolah', + titleStyle: const TextStyle( + fontFamily: 'Inter', + fontSize: 14, + fontWeight: FontWeight.w700, + color: Color(0xFF1E293B), + ), + customSubtitle: Row( + children: [ + const Text( + 'Bantuan', + style: TextStyle( + fontFamily: 'Inter', + fontSize: 12, + fontWeight: FontWeight.w500, + color: Color(0xFF64748B), + ), + ), + const SizedBox(width: 8), + Container( + width: 4, + height: 4, + decoration: const BoxDecoration( + color: Color(0xFFCBD5E1), + shape: BoxShape.circle, + ), + ), + const SizedBox(width: 8), + const Flexible( + child: Text( + 'Hubungi Admin Sekolah', + style: TextStyle( + fontFamily: 'Inter', + fontSize: 12, + fontWeight: FontWeight.w500, + color: Color(0xFF64748B), + ), + overflow: TextOverflow.ellipsis, + ), + ), + ], + ), + showIcon: false, + backgroundColor: Colors.white, + borderColor: Colors.transparent, + borderWidth: 0, + margin: EdgeInsets.zero, + onTap: () { + Navigator.push( + context, + MaterialPageRoute(builder: (context) => const ChatAdminPageG()), + ); + }, + ), + ), + const SizedBox(height: 20), + const Padding( + padding: EdgeInsets.symmetric(horizontal: 16.0), + child: Text('List Guru', style: TextStyle(fontSize: 14, fontWeight: FontWeight.bold, fontFamily: 'Inter')), + ), + const SizedBox(height: 10), + ..._listGuru.map((guru) { + final nama = guru['name'] ?? '-'; + final isWali = guru['wali'] == true; + final roleText = isWali ? 'Wali Kelas' : 'Guru Mapel'; + + final classNameObj = guru['class_name']; + String kelas = "Belum ada kelas"; + if (classNameObj != null) { + if (classNameObj is String) { + kelas = classNameObj; + } else if (classNameObj is List && classNameObj.isNotEmpty) { + kelas = classNameObj[0]['name_class']?.toString() ?? "Belum ada kelas"; + } else if (classNameObj is Map) { + kelas = classNameObj['name_class']?.toString() ?? "Belum ada kelas"; + } + } + + return Padding( + padding: const EdgeInsets.symmetric(horizontal: 16.0, vertical: 6.0), + child: CustomCard( + title: nama, + titleStyle: const TextStyle( + fontFamily: 'Inter', + fontSize: 14, + fontWeight: FontWeight.w700, + color: Color(0xFF1E293B), + ), + customSubtitle: Row( + children: [ + Text( + roleText, + style: const TextStyle( + fontFamily: 'Inter', + fontSize: 12, + fontWeight: FontWeight.w500, + color: Color(0xFF64748B), + ), + ), + const SizedBox(width: 8), + Container( + width: 4, + height: 4, + decoration: const BoxDecoration( + color: Color(0xFFCBD5E1), + shape: BoxShape.circle, + ), + ), + const SizedBox(width: 8), + Flexible( + child: Text( + kelas, + style: const TextStyle( + fontFamily: 'Inter', + fontSize: 12, + fontWeight: FontWeight.w500, + color: Color(0xFF64748B), + ), + overflow: TextOverflow.ellipsis, + ), + ), + ], + ), + showIcon: false, + backgroundColor: Colors.white, + borderColor: Colors.transparent, + borderWidth: 0, + margin: EdgeInsets.zero, + onTap: () { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => ChatPrivateG( + receiverId: guru['id_tabel'].toString(), + receiverType: 'guru', + receiverName: nama, + ), + ), + ); + }, + ), + ); + }).toList(), + const SizedBox(height: 20), + const Padding( + padding: EdgeInsets.symmetric(horizontal: 16.0), + child: Text('List Murid', style: TextStyle(fontSize: 14, fontWeight: FontWeight.bold, fontFamily: 'Inter')), + ), + const SizedBox(height: 10), + ..._listMurid.map((murid) { + final nama = murid['nama'] ?? '-'; + + final nis = murid['nis']?.toString() ?? '-'; + + return Padding( + padding: const EdgeInsets.symmetric(horizontal: 16.0, vertical: 6.0), + child: CustomCard( + title: nama, + titleStyle: const TextStyle( + fontFamily: 'Inter', + fontSize: 14, + fontWeight: FontWeight.w700, + color: Color(0xFF1E293B), + ), + customSubtitle: Text( + 'NIS: $nis', + style: const TextStyle( + fontFamily: 'Inter', + fontSize: 12, + fontWeight: FontWeight.w500, + color: Color(0xFF64748B), + ), + ), + showIcon: false, + backgroundColor: Colors.white, + borderColor: Colors.transparent, + borderWidth: 0, + margin: EdgeInsets.zero, + onTap: () { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => ChatPrivateG( + receiverId: murid['id_tabel'].toString(), + receiverType: 'murid', + receiverName: nama, + ), + ), + ); + }, + ), + ); + }).toList(), + ], + ), + ); + } +} diff --git a/lib/dashboard/d_guru/function/setting_p/setting_p.dart b/lib/dashboard/d_guru/function/setting_p/setting_p.dart new file mode 100644 index 0000000..da12cb9 --- /dev/null +++ b/lib/dashboard/d_guru/function/setting_p/setting_p.dart @@ -0,0 +1,334 @@ +import 'package:flutter/material.dart'; +import 'package:apk/dashboard/a_admin/widget/custom_button.dart'; +import 'package:apk/dashboard/d_guru/function/setting_p/update_data.dart'; + +class SettingProfilPage extends StatefulWidget { + final Map data; + + const SettingProfilPage({ + super.key, + required this.data, + }); + + @override + State createState() => _SettingProfilPageState(); +} + +class _SettingProfilPageState extends State { + + bool get _isWali => widget.data['wali'] == true; + String get _nama => widget.data['name']?.toString().isEmpty ?? true ? "Belum diisi" : widget.data['name'].toString(); + String get _nik => widget.data['nik']?.toString().isEmpty ?? true ? "Belum diisi" : widget.data['nik'].toString(); + String get _bidang => widget.data['bidang']?.toString().isEmpty ?? true ? "Belum diisi" : widget.data['bidang'].toString(); + + String get _kelasStr { + final classNameObj = widget.data['class_name']; + String kelas = ""; + if (classNameObj != null) { + if (classNameObj is String) { + kelas = classNameObj; + } else if (classNameObj is List && classNameObj.isNotEmpty) { + kelas = classNameObj[0]['name_class']?.toString() ?? ""; + } else if (classNameObj is Map) { + kelas = classNameObj['name_class']?.toString() ?? ""; + } + } + return kelas; + } + + String get _badge { + String kelas = _kelasStr; + if (_isWali) { + return kelas.isEmpty ? "Wali Kelas" : kelas; + } + return _bidang == "Belum diisi" ? "Guru" : _bidang; + } + + Widget waliField() { + return _infoCard( + icon: Icons.verified_user_outlined, + title: "Wali Kelas", + value: _isWali ? "Ya" : "Tidak", + ); + } + + Widget kelasField() { + String kelas = _kelasStr; + return _infoCard( + icon: Icons.school_outlined, + title: "Kelas", + value: kelas.isEmpty ? "Belum diisi" : kelas, + isEmpty: kelas.isEmpty, + ); + } + + Widget bidangField() { + return _infoCard( + icon: Icons.menu_book_outlined, + title: "Bidang", + value: _bidang, + isEmpty: _bidang == "Belum diisi", + ); + } + + Widget _infoCard({ + required IconData icon, + required String title, + required String value, + bool isEmpty = false, + }) { + return CustomCard( + title: title, + subtitle: value, + icon: icon, + iconPosition: IconPosition.left, + iconColor: const Color(0xFF2563EB), + iconSize: 24, + iconContainerSize: 46, + iconDecoration: BoxDecoration( + color: const Color(0xFFEFF6FF), + borderRadius: BorderRadius.circular(9), + ), + backgroundColor: Colors.white, + borderColor: Colors.transparent, + borderWidth: 0, + borderRadius: 0, + margin: EdgeInsets.zero, + padding: const EdgeInsets.symmetric(horizontal: 20, vertical: 16), + boxShadow: const [], + titleStyle: const TextStyle( + fontFamily: 'Inter', + fontSize: 14, + fontWeight: FontWeight.w500, + color: Color(0xFF8FA0BA), + ), + subtitleStyle: TextStyle( + fontFamily: 'Inter', + fontSize: 16, + fontWeight: FontWeight.w700, + fontStyle: isEmpty ? FontStyle.italic : FontStyle.normal, + color: isEmpty ? const Color(0xFFC8D2E0) : const Color(0xFF172033), + ), + showIcon: true, + ); + } + + Widget _sectionCard(List children) { + return Container( + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(20), + border: Border.all(color: const Color(0xFFE8EEF6)), + boxShadow: [ + BoxShadow( + color: Colors.black.withOpacity(0.04), + blurRadius: 10, + offset: const Offset(0, 3), + ), + ], + ), + child: ClipRRect( + borderRadius: BorderRadius.circular(20), + child: Column( + children: [ + for (int i = 0; i < children.length; i++) ...[ + children[i], + if (i != children.length - 1) + const Divider( + height: 1, + thickness: 1, + color: Color(0xFFF0F4FA), + indent: 82, + endIndent: 20, + ), + ], + ], + ), + ), + ); + } + + Widget _sectionTitle(String title) { + return Padding( + padding: const EdgeInsets.only(left: 4, bottom: 12), + child: Text( + title, + style: const TextStyle( + fontFamily: 'Inter', + fontSize: 15, + fontWeight: FontWeight.w800, + color: Color(0xFF64748B), + ), + ), + ); + } + + Widget _profileHeader() { + return SizedBox( + height: 128, + child: Stack( + alignment: Alignment.center, + children: [ + CustomCard( + title: "", + showIcon: false, + height: 126, + backgroundColor: Colors.white, + borderColor: const Color(0xFFE8EEF6), + borderWidth: 1, + borderRadius: 18, + margin: EdgeInsets.zero, + padding: EdgeInsets.zero, + boxShadow: [ + BoxShadow( + color: Colors.black.withOpacity(0.13), + blurRadius: 12, + offset: const Offset(0, 5), + ), + ], + ), + Column( + mainAxisSize: MainAxisSize.min, + children: [ + Text( + _nama, + textAlign: TextAlign.center, + style: const TextStyle( + fontFamily: 'Inter', + fontSize: 23, + fontWeight: FontWeight.w800, + color: Color(0xFF172033), + ), + ), + const SizedBox(height: 10), + Row( + mainAxisSize: MainAxisSize.min, + children: [ + const Icon( + Icons.badge_outlined, + size: 18, + color: Color(0xFF8FA0BA), + ), + const SizedBox(width: 6), + Text( + "NIK: $_nik", + style: const TextStyle( + fontFamily: 'Inter', + fontSize: 15, + fontWeight: FontWeight.w600, + color: Color(0xFF64748B), + ), + ), + ], + ), + const SizedBox(height: 18), + Container( + padding: + const EdgeInsets.symmetric(horizontal: 12, vertical: 7), + decoration: BoxDecoration( + color: const Color(0xFFEFF6FF), + borderRadius: BorderRadius.circular(18), + ), + child: Row( + mainAxisSize: MainAxisSize.min, + children: [ + const Icon( + Icons.school_outlined, + size: 18, + color: Color(0xFF2563EB), + ), + const SizedBox(width: 6), + Text( + _badge, + style: const TextStyle( + fontFamily: 'Inter', + fontSize: 15, + fontWeight: FontWeight.w700, + color: Color(0xFF2563EB), + ), + ), + ], + ), + ), + ], + ), + ], + ), + ); + } + + Widget _actionButton({ + required String label, + required Color color, + required VoidCallback? onPressed, + }) { + return Expanded( + child: ElevatedButton( + onPressed: onPressed, + style: ElevatedButton.styleFrom( + backgroundColor: color, + foregroundColor: Colors.white, + elevation: 0, + padding: const EdgeInsets.symmetric(vertical: 16), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(24), + ), + ), + child: Text( + label, + style: const TextStyle( + fontFamily: 'Inter', + fontSize: 16, + fontWeight: FontWeight.w700, + ), + ), + ), + ); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: const Color(0xFFF4F7FB), + appBar: AppBar( + title: const Text("Setting Profil", style: TextStyle(fontFamily: 'Inter', fontWeight: FontWeight.w600)), + backgroundColor: Colors.white, + foregroundColor: const Color(0xFF1E293B), + elevation: 0, + ), + body: ListView( + padding: const EdgeInsets.fromLTRB(24, 18, 24, 28), + children: [ + _profileHeader(), + const SizedBox(height: 20), + _sectionTitle("Identitas"), + _sectionCard([ + bidangField(), + waliField(), + if (_isWali || _kelasStr.isNotEmpty) kelasField(), + ]), + const SizedBox(height: 24), + Row( + children: [ + _actionButton( + label: "Edit Profil", + color: const Color(0xFF2563EB), + onPressed: () async { + final result = await Navigator.push( + context, + MaterialPageRoute( + builder: (_) => UpdateProfilPage(data: widget.data), + ), + ); + if (result == true) { + setState(() {}); + } + }, + ), + ], + ), + ], + ), + ); + } +} diff --git a/lib/dashboard/d_guru/function/setting_p/update_data.dart b/lib/dashboard/d_guru/function/setting_p/update_data.dart new file mode 100644 index 0000000..75dc9a0 --- /dev/null +++ b/lib/dashboard/d_guru/function/setting_p/update_data.dart @@ -0,0 +1,248 @@ +import 'package:flutter/material.dart'; +import 'package:apk/dashboard/d_guru/database/db_guru.dart'; + +class UpdateProfilPage extends StatefulWidget { + final Map data; + + const UpdateProfilPage({ + super.key, + required this.data, + }); + + @override + State createState() => _UpdateProfilPageState(); +} + +class _UpdateProfilPageState extends State { + bool isSaving = false; + + late TextEditingController nikC; + late TextEditingController nameC; + late TextEditingController bidangC; + + final DbGuru _dbGuru = DbGuru(); + + @override + void initState() { + super.initState(); + nikC = TextEditingController(text: widget.data['nik']?.toString() ?? ""); + nameC = TextEditingController(text: widget.data['name'] ?? ""); + bidangC = TextEditingController(text: widget.data['bidang'] ?? ""); + } + + Future updateData() async { + if (nikC.text.isEmpty || nameC.text.isEmpty) { + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text("NIK dan Nama wajib diisi!")), + ); + return; + } + + setState(() => isSaving = true); + + try { + await _dbGuru.updateGuru( + idTabel: widget.data['id_tabel'], + nik: num.tryParse(nikC.text) ?? 0, + name: nameC.text, + bidang: bidangC.text.isEmpty ? null : bidangC.text, + idClass: widget.data['id_class'], // keep unchanged + wali: widget.data['wali'] == true, // keep unchanged + ); + + if (mounted) { + widget.data['nik'] = num.tryParse(nikC.text) ?? 0; + widget.data['name'] = nameC.text; + widget.data['bidang'] = bidangC.text; + + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text('Profil berhasil diperbarui')), + ); + Navigator.pop(context, true); + } + } catch (e) { + if (mounted) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + content: Text( + "Gagal menyimpan: ${e.toString().replaceAll('Exception: ', '')}", + ), + ), + ); + } + } finally { + if (mounted) { + setState(() => isSaving = false); + } + } + } + + Widget field( + String label, + TextEditingController c, { + TextInputType? keyboardType, + String hint = "", + }) { + return Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + label, + style: const TextStyle( + fontFamily: 'Inter', + fontWeight: FontWeight.w600, + fontSize: 14, + color: Color(0xFF1E293B), + ), + ), + const SizedBox(height: 6), + TextField( + controller: c, + keyboardType: keyboardType, + style: const TextStyle(fontFamily: 'Inter'), + decoration: InputDecoration( + hintText: hint, + hintStyle: const TextStyle(color: Color(0xFFC4C4C4), fontFamily: 'Inter'), + filled: true, + fillColor: const Color(0xFFF1F5F9), + contentPadding: const EdgeInsets.symmetric(horizontal: 20, vertical: 18), + border: OutlineInputBorder( + borderRadius: BorderRadius.circular(16), + borderSide: const BorderSide(color: Color(0xFFE2E8F0)), + ), + enabledBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(16), + borderSide: const BorderSide(color: Color(0xFFE2E8F0)), + ), + ), + ), + const SizedBox(height: 16), + ], + ); + } + + Widget _actionButton({ + required String label, + required Color color, + required VoidCallback? onPressed, + bool loading = false, + }) { + final bool isWhite = color == Colors.white; + return Expanded( + child: ElevatedButton( + onPressed: onPressed, + style: ElevatedButton.styleFrom( + backgroundColor: color, + foregroundColor: isWhite ? const Color(0xFF64748B) : Colors.white, + elevation: 0, + padding: const EdgeInsets.symmetric(vertical: 16), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(24), + side: isWhite ? const BorderSide(color: Color(0xFF94A3B8)) : BorderSide.none, + ), + ), + child: loading + ? SizedBox( + width: 20, + height: 20, + child: CircularProgressIndicator( + color: isWhite ? const Color(0xFF64748B) : Colors.white, + strokeWidth: 2, + ), + ) + : Text( + label, + style: const TextStyle( + fontFamily: 'Inter', + fontSize: 16, + fontWeight: FontWeight.w700, + ), + ), + ), + ); + } + + @override + void dispose() { + nikC.dispose(); + nameC.dispose(); + bidangC.dispose(); + super.dispose(); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: Colors.white, + appBar: AppBar( + title: const Text("Edit Setting Profil", style: TextStyle(fontFamily: 'Inter', fontWeight: FontWeight.w600)), + backgroundColor: Colors.white, + foregroundColor: const Color(0xFF1E293B), + elevation: 0, + ), + body: Container( + color: Colors.white, + padding: const EdgeInsets.all(24), + child: Column( + children: [ + Expanded( + child: ListView( + children: [ + Row( + children: const [ + Text("👩‍🏫", style: TextStyle(fontSize: 20)), + SizedBox(width: 8), + Text( + "Data Guru", + style: TextStyle( + fontFamily: 'Inter', + fontSize: 18, + fontWeight: FontWeight.w800, + color: Color(0xFF1E293B), + ), + ), + ], + ), + const SizedBox(height: 16), + Container( + padding: const EdgeInsets.all(20), + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(20), + border: Border.all(color: const Color(0xFFE2E8F0)), + ), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + field("NIK *", nikC, keyboardType: TextInputType.number, hint: "Contoh: 33111"), + field("Nama *", nameC, hint: "Contoh: Budi Santoso"), + field("Bidang", bidangC, hint: "Contoh: Matematika"), + ], + ), + ), + ], + ), + ), + const SizedBox(height: 16), + Row( + children: [ + _actionButton( + label: "Simpan", + color: const Color(0xFF2563EB), + onPressed: isSaving ? null : updateData, + loading: isSaving, + ), + const SizedBox(width: 10), + _actionButton( + label: "Batal", + color: Colors.white, + onPressed: isSaving ? null : () => Navigator.pop(context), + ), + ], + ), + ], + ), + ), + ); + } +} diff --git a/lib/error_handler/connection.dart b/lib/error_handler/connection.dart new file mode 100644 index 0000000..6a35f58 --- /dev/null +++ b/lib/error_handler/connection.dart @@ -0,0 +1,69 @@ +import 'dart:io'; +import 'package:flutter/foundation.dart'; +import 'package:flutter/material.dart'; + +class ConnectionHandler { + // Mengecek ketersediaan koneksi internet + static Future checkConnection() async { + if (kIsWeb) return true; + try { + final result = await InternetAddress.lookup('google.com'); + if (result.isNotEmpty && result[0].rawAddress.isNotEmpty) { + return true; + } + } on SocketException catch (_) { + return false; + } + return false; + } + + // Menampilkan pop up peringatan jika tidak ada koneksi + static void showNoConnectionDialog({ + required BuildContext context, + required VoidCallback onRetry, + }) { + showDialog( + context: context, + barrierDismissible: false, + builder: (BuildContext context) { + return AlertDialog( + shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(16)), + title: const Row( + children: [ + Icon(Icons.wifi_off, color: Colors.red, size: 28), + SizedBox(width: 8), + Text( + 'Tidak Ada Koneksi', + style: TextStyle( + fontFamily: 'Inter', + fontWeight: FontWeight.bold, + fontSize: 18, + ), + ), + ], + ), + content: const Text( + 'Pastikan perangkat Anda terhubung ke internet untuk memuat data terbaru.', + style: TextStyle(fontFamily: 'Inter', fontSize: 14), + ), + actions: [ + TextButton( + onPressed: () { + Navigator.of(context).pop(); + onRetry(); + }, + child: const Text( + 'Coba Lagi', + style: TextStyle( + fontFamily: 'Inter', + fontWeight: FontWeight.bold, + color: Color(0xFF2563EB), + ), + ), + ), + ], + ); + }, + ); + } +} diff --git a/lib/firebase_options.dart b/lib/firebase_options.dart new file mode 100644 index 0000000..446c9bc --- /dev/null +++ b/lib/firebase_options.dart @@ -0,0 +1,62 @@ +// File generated by FlutterFire CLI. +// ignore_for_file: type=lint +import 'package:firebase_core/firebase_core.dart' show FirebaseOptions; +import 'package:flutter/foundation.dart' + show defaultTargetPlatform, kIsWeb, TargetPlatform; + +/// Default [FirebaseOptions] for use with your Firebase apps. +/// +/// Example: +/// ```dart +/// import 'firebase_options.dart'; +/// // ... +/// await Firebase.initializeApp( +/// options: DefaultFirebaseOptions.currentPlatform, +/// ); +/// ``` +class DefaultFirebaseOptions { + static FirebaseOptions get currentPlatform { + if (kIsWeb) { + throw UnsupportedError( + 'DefaultFirebaseOptions have not been configured for web - ' + 'you can reconfigure this by running the FlutterFire CLI again.', + ); + } + switch (defaultTargetPlatform) { + case TargetPlatform.android: + return android; + case TargetPlatform.iOS: + throw UnsupportedError( + 'DefaultFirebaseOptions have not been configured for ios - ' + 'you can reconfigure this by running the FlutterFire CLI again.', + ); + case TargetPlatform.macOS: + throw UnsupportedError( + 'DefaultFirebaseOptions have not been configured for macos - ' + 'you can reconfigure this by running the FlutterFire CLI again.', + ); + case TargetPlatform.windows: + throw UnsupportedError( + 'DefaultFirebaseOptions have not been configured for windows - ' + 'you can reconfigure this by running the FlutterFire CLI again.', + ); + case TargetPlatform.linux: + throw UnsupportedError( + 'DefaultFirebaseOptions have not been configured for linux - ' + 'you can reconfigure this by running the FlutterFire CLI again.', + ); + default: + throw UnsupportedError( + 'DefaultFirebaseOptions are not supported for this platform.', + ); + } + } + + static const FirebaseOptions android = FirebaseOptions( + apiKey: 'AIzaSyDDAyv2LzeOXJfyDEysM1XvrW8AuC4d2U0', + appId: '1:1078157366732:android:cff3b9bc3759762b76f969', + messagingSenderId: '1078157366732', + projectId: 'fmc-firebasecloudmessaging', + storageBucket: 'fmc-firebasecloudmessaging.firebasestorage.app', + ); +} diff --git a/lib/main.dart b/lib/main.dart new file mode 100644 index 0000000..7f01576 --- /dev/null +++ b/lib/main.dart @@ -0,0 +1,146 @@ +import 'package:flutter/material.dart'; +import 'package:scaled_app/scaled_app.dart'; +import 'package:supabase_flutter/supabase_flutter.dart'; +import 'package:firebase_core/firebase_core.dart'; +import 'package:shared_preferences/shared_preferences.dart'; +import 'package:apk/firebase_options.dart'; +import 'package:apk/register/page1.dart'; +import 'package:apk/dashboard/a_admin/dashboard/class.dart'; +import 'package:apk/dashboard/a_admin/dashboard/announcement.dart'; +import 'package:apk/dashboard/a_admin/dashboard/add_person.dart'; +import 'package:flutter_dotenv/flutter_dotenv.dart'; +import 'package:apk/dashboard/a_admin/bottom_bar/main_screen.dart'; +import 'package:apk/register/admin/login_screen.dart'; +import 'package:apk/register/admin/signup_screen.dart'; +import 'package:apk/session_timer/session_time.dart'; +import 'package:apk/dashboard/a_admin/function/f_notif/notif_reddot.dart'; +import 'package:apk/dashboard/d_c_murid/function/FCM_absen.dart/fcm_notif.dart' as fcm_absen; + +double scaleFactorCallback(Size deviceSize) { + const double widthOfDesign = 375; + return deviceSize.width / widthOfDesign; +} + +Future main() async { + ScaledWidgetsFlutterBinding.ensureInitialized( + scaleFactor: scaleFactorCallback, + ); + + await dotenv.load(fileName: "lib/.env"); + + await Supabase.initialize( + url: dotenv.env['SUPABASE_URL']!, + anonKey: dotenv.env['SUPABASE_ANON_KEY']!, + ); + + // 1. Initialize Firebase FIRST dengan options yang benar (seperti apk2/apk3) + try { + await Firebase.initializeApp( + options: DefaultFirebaseOptions.currentPlatform, + ); + debugPrint('[Firebase] Initialized successfully'); + } catch (e) { + debugPrint('[Firebase] Initialization error: $e'); + } + + // 2. Removed Entrig Initialization + + // 3. Initialize notification listeners + try { + await NotifRedDot.init(); + await fcm_absen.NotificationFCM.init(); + } catch (_) { + // FCM tidak tersedia di platform ini (misal: Web) + } + + runApp(const MyApp()); +} + +class MyApp extends StatefulWidget { + const MyApp({super.key}); + + @override + State createState() => _MyAppState(); +} + +class _MyAppState extends State { + @override + void initState() { + super.initState(); + _setupFCMTokenRegistration(); + } + + /// Daftarkan perangkat ke Supabase secara persisten menggunakan FCM langsung + void _setupFCMTokenRegistration() async { + await _registerStoredUserDevice(); + + // Listener Supabase Auth (khusus role Admin) + Supabase.instance.client.auth.onAuthStateChange.listen((data) async { + final session = data.session; + final prefs = await SharedPreferences.getInstance(); + final userRole = prefs.getString('user_role'); + + if (session != null && userRole == 'admin') { + final userId = session.user.id; + await fcm_absen.NotificationFCM.saveTokenToSupabase(userId, 'admin'); + } + }); + } + + Future _registerStoredUserDevice() async { + try { + final prefs = await SharedPreferences.getInstance(); + final userRole = prefs.getString('user_role'); + + if (userRole == 'admin') { + final userId = Supabase.instance.client.auth.currentUser?.id; + if (userId != null && userId.isNotEmpty) { + await fcm_absen.NotificationFCM.saveTokenToSupabase(userId.trim(), 'admin'); + } + } else if (userRole == 'guru') { + final guruId = prefs.getString('guru_id_tabel'); + if (guruId != null && guruId.isNotEmpty) { + await fcm_absen.NotificationFCM.saveTokenToSupabase(guruId.trim(), 'guru'); + } + } else if (userRole == 'murid' || userRole == 'ortu') { + final muridId = prefs.getString('murid_id_tabel'); + + if (muridId != null && muridId.isNotEmpty) { + await fcm_absen.NotificationFCM.saveTokenToSupabase(muridId.trim(), 'murid'); + } + } + } catch (e) { + debugPrint('[FCM] Persistent token registration error: $e'); + } + } + + @override + Widget build(BuildContext context) { + return MaterialApp( + navigatorKey: NotifRedDot.navigatorKey, + builder: (context, child) { + final originalMediaQueryData = MediaQuery.of(context).copyWith( + textScaler: TextScaler.noScaling, + ); + return SessionTimeManager( + child: MediaQuery( + data: originalMediaQueryData.scale(), + child: child ?? const SizedBox.shrink(), + ), + ); + }, + debugShowCheckedModeBanner: false, + initialRoute: '/', + routes: { + '/': (context) => const Home(), + '/load_screen/login_screen': (context) => const LoginAdmin(), + '/load_screen/signup_screen': (context) => const SignupAdmin(), + '/page1': (context) => const Home(), + '/load_screen': (context) => const MainScreen(), + '/dashboard/class': (context) => const DaftarKelas(), + '/dashboard/announcement': (context) => const Pengumuman(), + '/dashboard/add_person': (context) => const TambahPengguna(), + }, + ); + } +} \ No newline at end of file diff --git a/lib/register/admin/login_screen.dart b/lib/register/admin/login_screen.dart new file mode 100644 index 0000000..82c3129 --- /dev/null +++ b/lib/register/admin/login_screen.dart @@ -0,0 +1,282 @@ +import 'package:apk/register/admin/signup_screen.dart'; +import 'package:flutter/material.dart'; +import 'package:shared_preferences/shared_preferences.dart'; +import 'package:apk/dashboard/a_admin/database/auth.dart'; +import 'package:apk/register/page1.dart'; + +class LoginAdmin extends StatefulWidget { + const LoginAdmin({super.key}); + + @override + State createState() => _LoginAdminState(); +} + +class _LoginAdminState extends State { + final AuthService _auth = AuthService(); + bool isHidden = true; + bool _isLoading = false; + + final TextEditingController nipController = TextEditingController(); + final TextEditingController passwordController = TextEditingController(); + + void _login() async { + setState(() => _isLoading = true); + try { + final email = nipController.text.trim(); + await _auth.signIn( + email, + passwordController.text.trim(), + ); + + final prefs = await SharedPreferences.getInstance(); + await prefs.setString('user_email', email); + await prefs.setString('user_role', 'admin'); + + if (!mounted) return; + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar( + content: Text("Login berhasil! Silakan tekan tombol Masuk."), + backgroundColor: Colors.green, + ), + ); + Navigator.pushAndRemoveUntil( + context, + MaterialPageRoute(builder: (_) => const Home()), + (route) => false, + ); + } catch (e) { + if (mounted) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text("Login gagal: $e")), + ); + } + } finally { + if (mounted) { + setState(() => _isLoading = false); + } + } + } + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: Colors.white, + body: ListView( + padding: const EdgeInsets.symmetric(horizontal: 60), + children: [ + const SizedBox(height: 70), + + Align( + alignment: Alignment.center, + child: Container( + padding: const EdgeInsets.all(14), + decoration: BoxDecoration( + color: const Color(0xFF2563EB), + borderRadius: BorderRadius.circular(16), + boxShadow: [ + BoxShadow( + color: Colors.blue.withOpacity(0.3), + blurRadius: 12, + offset: const Offset(0, 6), + ), + ], + ), + child: const Icon( + Icons.school_outlined, + color: Colors.white, + size: 42, + ), + ), + ), + + const SizedBox(height: 28), + + const Text( + "Masuk Sebagai Admin", + style: TextStyle( + fontSize: 22, + fontWeight: FontWeight.bold, + color: Color(0xFF1E293B), + ), + ), + + const SizedBox(height: 8), + + const Text( + "Silakan masukkan kredensial Anda", + style: TextStyle( + fontSize: 15, + color: Color(0xFF94A3B8), + ), + ), + + const SizedBox(height: 55), + + // EMAIL + const Align( + alignment: Alignment.centerLeft, + child: Text( + "Email", + style: TextStyle( + fontSize: 16, + color: Color(0xFF334155), + fontWeight: FontWeight.w500, + ), + ), + ), + + const SizedBox(height: 10), + + TextField( + controller: nipController, + decoration: InputDecoration( + hintText: "Masukkan Email", + hintStyle: const TextStyle( + color: Color(0xFFC4C4C4), + ), + filled: true, + fillColor: const Color(0xFFF1F5F9), + contentPadding: const EdgeInsets.symmetric( + horizontal: 20, + vertical: 18, + ), + border: OutlineInputBorder( + borderRadius: BorderRadius.circular(16), + borderSide: const BorderSide( + color: Color(0xFFE2E8F0), + ), + ), + enabledBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(16), + borderSide: const BorderSide( + color: Color(0xFFE2E8F0), + ), + ), + ), + ), + + const SizedBox(height: 22), + + // PASSWORD + const Align( + alignment: Alignment.centerLeft, + child: Text( + "Kata Sandi", + style: TextStyle( + fontSize: 16, + color: Color(0xFF334155), + fontWeight: FontWeight.w500, + ), + ), + ), + + const SizedBox(height: 10), + + TextField( + controller: passwordController, + obscureText: isHidden, + decoration: InputDecoration( + hintText: "Masukkan kata sandi", + hintStyle: const TextStyle( + color: Color(0xFFC4C4C4), + ), + filled: true, + fillColor: const Color(0xFFF1F5F9), + contentPadding: const EdgeInsets.symmetric( + horizontal: 20, + vertical: 18, + ), + suffixIcon: IconButton( + icon: Icon( + isHidden + ? Icons.visibility_outlined + : Icons.visibility_off_outlined, + color: const Color(0xFF94A3B8), + ), + onPressed: () { + setState(() { + isHidden = !isHidden; + }); + }, + ), + border: OutlineInputBorder( + borderRadius: BorderRadius.circular(16), + borderSide: const BorderSide( + color: Color(0xFFE2E8F0), + ), + ), + enabledBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(16), + borderSide: const BorderSide( + color: Color(0xFFE2E8F0), + ), + ), + ), + ), + + const SizedBox(height: 40), + + // BUTTON + SizedBox( + width: double.infinity, + height: 58, + child: ElevatedButton( + onPressed: _isLoading ? null : _login, + style: ElevatedButton.styleFrom( + backgroundColor: const Color(0xFF16A34A), + elevation: 8, + shadowColor: Colors.green.withOpacity(0.35), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(16), + ), + ), + child: _isLoading + ? const CircularProgressIndicator(color: Colors.white) + : const Text( + "Masuk", + style: TextStyle( + fontSize: 22, + fontWeight: FontWeight.bold, + color: Colors.white, + ), + ), + ), + ), + + const SizedBox(height: 24), + + Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + const Text( + "Belum punya akun? ", + style: TextStyle( + color: Color(0xFF64748B), + fontSize: 15, + ), + ), + GestureDetector( + onTap: () { + Navigator.push( + context, + MaterialPageRoute(builder: (context) => const SignupAdmin()), + ); + }, + child: const Text( + "Daftar", + style: TextStyle( + color: Color(0xFF2563EB), + fontSize: 15, + fontWeight: FontWeight.bold, + ), + ), + ), + ], + ), + + const SizedBox(height: 70), + ], + ), + ); + } +} \ No newline at end of file diff --git a/lib/register/admin/signup_screen.dart b/lib/register/admin/signup_screen.dart new file mode 100644 index 0000000..e695292 --- /dev/null +++ b/lib/register/admin/signup_screen.dart @@ -0,0 +1,422 @@ +import 'dart:async'; +import 'package:apk/register/admin/login_screen.dart'; +import 'package:flutter/material.dart'; +import 'package:apk/dashboard/a_admin/database/auth.dart'; + +class SignupAdmin extends StatefulWidget { + const SignupAdmin({super.key}); + + @override + State createState() => _SignupAdminState(); +} + +class _SignupAdminState extends State { + final _auth = AuthService(); + + final emailController = TextEditingController(); + final passwordController = TextEditingController(); + final otpController = TextEditingController(); + + bool isHidden = true; + bool isLoading = false; + bool isOtpSent = false; + + Timer? timer; + int secondsLeft = 300; // 5 menit + + /// =============================== + /// KIRIM OTP + /// =============================== + Future sendOtp() async { + setState(() => isLoading = true); + + try { + final email = emailController.text.trim(); + final password = passwordController.text.trim(); + + await _auth.signUp(email, password); + + startTimer(); + + setState(() { + isOtpSent = true; + isLoading = false; + }); + + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text("OTP dikirim ke email")), + ); + } catch (e) { + setState(() => isLoading = false); + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text("Error: $e")), + ); + } + } + + /// =============================== + /// TIMER 5 MENIT + /// =============================== + void startTimer() { + timer?.cancel(); + secondsLeft = 300; + + timer = Timer.periodic(const Duration(seconds: 1), (t) async { + if (secondsLeft == 0) { + t.cancel(); + + /// hapus user public (jika ada) + await _auth.deleteUserPublic(emailController.text.trim()); + + if (!mounted) return; + + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text("Waktu habis, silakan daftar ulang")), + ); + + setState(() { + isOtpSent = false; + otpController.clear(); + }); + + } else { + setState(() => secondsLeft--); + } + }); + } + + /// =============================== + /// VERIFY OTP + /// =============================== + Future verifyOtp() async { + setState(() => isLoading = true); + + try { + final email = emailController.text.trim(); + final otp = otpController.text.trim(); + + final res = await _auth.verifyOtp(email, otp); + final user = res.user; + + if (user != null) { + /// STOP TIMER + timer?.cancel(); + + /// INSERT SETELAH OTP VALID + await _auth.insertUser( + id: user.id, + email: email, + ); + + if (!mounted) return; + + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text("Verifikasi berhasil")), + ); + + Navigator.pushReplacement( + context, + MaterialPageRoute( + builder: (_) => const LoginAdmin(), + ), + ); + } + } catch (e) { + setState(() => isLoading = false); + + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text("OTP salah")), + ); + } + } + + String formatTime(int seconds) { + final m = (seconds ~/ 60).toString().padLeft(2, '0'); + final s = (seconds % 60).toString().padLeft(2, '0'); + return "$m:$s"; + } + + @override + void dispose() { + timer?.cancel(); + super.dispose(); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: Colors.white, + body: ListView( + padding: const EdgeInsets.symmetric(horizontal: 60), + children: [ + const SizedBox(height: 70), + + Align( + alignment: Alignment.center, + child: Container( + padding: const EdgeInsets.all(14), + decoration: BoxDecoration( + color: const Color(0xFF2563EB), + borderRadius: BorderRadius.circular(16), + boxShadow: [ + BoxShadow( + color: Colors.blue.withOpacity(0.3), + blurRadius: 12, + offset: const Offset(0, 6), + ), + ], + ), + child: const Icon( + Icons.school_outlined, + color: Colors.white, + size: 42, + ), + ), + ), + + const SizedBox(height: 28), + + const Text( + "Daftar Akun Admin", + style: TextStyle(fontSize: 22, fontWeight: FontWeight.bold), + ), + + const SizedBox(height: 8), + + const Text( + "Silakan masukkan kredensial Anda", + style: TextStyle( + fontSize: 15, + color: Color(0xFF94A3B8), + ), + ), + + const SizedBox(height: 55), + + // EMAIL + const Align( + alignment: Alignment.centerLeft, + child: Text( + "Email", + style: TextStyle( + fontSize: 16, + color: Color(0xFF334155), + fontWeight: FontWeight.w500, + ), + ), + ), + + const SizedBox(height: 10), + + /// EMAIL + TextField( + controller: emailController, + decoration: InputDecoration( + hintText: "Masukkan Email", + hintStyle: const TextStyle( + color: Color(0xFFC4C4C4), + ), + filled: true, + fillColor: const Color(0xFFF1F5F9), + contentPadding: const EdgeInsets.symmetric( + horizontal: 20, + vertical: 18, + ), + border: OutlineInputBorder( + borderRadius: BorderRadius.circular(16), + borderSide: const BorderSide( + color: Color(0xFFE2E8F0), + ), + ), + enabledBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(16), + borderSide: const BorderSide( + color: Color(0xFFE2E8F0), + ), + ), + ), + ), + + const SizedBox(height: 22), + + // PASSWORD + const Align( + alignment: Alignment.centerLeft, + child: Text( + "Kata Sandi", + style: TextStyle( + fontSize: 16, + color: Color(0xFF334155), + fontWeight: FontWeight.w500, + ), + ), + ), + + const SizedBox(height: 10), + + TextField( + controller: passwordController, + obscureText: isHidden, + decoration: InputDecoration( + hintText: "Masukkan kata sandi", + hintStyle: const TextStyle( + color: Color(0xFFC4C4C4), + ), + filled: true, + fillColor: const Color(0xFFF1F5F9), + contentPadding: const EdgeInsets.symmetric( + horizontal: 20, + vertical: 18, + ), + suffixIcon: IconButton( + icon: Icon( + isHidden + ? Icons.visibility_outlined + : Icons.visibility_off_outlined, + color: const Color(0xFF94A3B8), + ), + onPressed: () { + setState(() { + isHidden = !isHidden; + }); + }, + ), + border: OutlineInputBorder( + borderRadius: BorderRadius.circular(16), + borderSide: const BorderSide( + color: Color(0xFFE2E8F0), + ), + ), + enabledBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(16), + borderSide: const BorderSide( + color: Color(0xFFE2E8F0), + ), + ), + ), + ), + + /// OTP FIELD + if (isOtpSent) ...[ + const SizedBox(height: 22), + const Align( + alignment: Alignment.centerLeft, + child: Text( + "Kode OTP", + style: TextStyle( + fontSize: 16, + color: Color(0xFF334155), + fontWeight: FontWeight.w500, + ), + ), + ), + + const SizedBox(height: 10), + + TextField( + controller: otpController, + keyboardType: TextInputType.number, + decoration: InputDecoration( + hintText: "Masukkan OTP", + hintStyle: const TextStyle( + color: Color(0xFFC4C4C4), + ), + filled: true, + fillColor: const Color(0xFFF1F5F9), + contentPadding: const EdgeInsets.symmetric( + horizontal: 20, + vertical: 18, + ), + border: OutlineInputBorder( + borderRadius: BorderRadius.circular(16), + borderSide: const BorderSide( + color: Color(0xFFE2E8F0), + ), + ), + enabledBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(16), + borderSide: const BorderSide( + color: Color(0xFFE2E8F0), + ), + ), + ), + ), + const SizedBox(height: 10), + + Text( + "Waktu: ${formatTime(secondsLeft)}", + style: const TextStyle(color: Color(0xFF94A3B8)), + ), + ], + + const SizedBox(height: 40), + + /// BUTTON + SizedBox( + width: double.infinity, + height: 58, + child: ElevatedButton( + style: ElevatedButton.styleFrom( + backgroundColor: const Color(0xFF16A34A), + elevation: 8, + shadowColor: Colors.green.withOpacity(0.35), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(16), + ), + ), + onPressed: isLoading + ? null + : isOtpSent + ? verifyOtp + : sendOtp, + child: isLoading + ? const CircularProgressIndicator(color: Colors.white) + : Text(isOtpSent ? "Verifikasi" : "Daftar", + style: TextStyle( + fontSize: 22, + fontWeight: FontWeight.bold, + color: Colors.white, + ), + ), + ), + ), + + const SizedBox(height: 24), + + Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + const Text( + "Sudah punya akun? ", + style: TextStyle( + color: Color(0xFF64748B), + fontSize: 15, + ), + ), + GestureDetector( + onTap: () { + Navigator.push( + context, + MaterialPageRoute( + builder: (_) => const LoginAdmin(), + ), + ); + }, + child: const Text( + "Masuk", + style: TextStyle( + color: Color(0xFF2563EB), + fontSize: 15, + fontWeight: FontWeight.bold, + ), + ), + ), + ], + ), + + const SizedBox(height: 70), + ], + ), + ); + } +} \ No newline at end of file diff --git a/lib/register/guru/login_guru.dart b/lib/register/guru/login_guru.dart new file mode 100644 index 0000000..3be436b --- /dev/null +++ b/lib/register/guru/login_guru.dart @@ -0,0 +1,241 @@ +import 'package:flutter/material.dart'; +import 'package:shared_preferences/shared_preferences.dart'; +import 'package:apk/dashboard/d_c_murid/function/FCM_absen.dart/fcm_notif.dart' as fcm_absen; +import 'package:apk/dashboard/d_guru/database/auth_guru.dart'; +import 'package:apk/register/page1.dart'; + +class UserGuru extends StatefulWidget { + const UserGuru({super.key}); + + @override + State createState() => _UserGuruState(); +} + +class _UserGuruState extends State { + final AuthGuru _auth = AuthGuru(); + bool _isLoading = false; + + final TextEditingController userIdController = TextEditingController(); + final TextEditingController nipController = TextEditingController(); + + void _login() async { + setState(() => _isLoading = true); + try { + final emailAdmin = userIdController.text.trim(); + final nip = nipController.text.trim(); + final result = await _auth.signInGuru(emailAdmin, nip); + + final prefs = await SharedPreferences.getInstance(); + await prefs.setString('user_email', emailAdmin); + await prefs.setString('user_role', 'guru'); + + // Daftarkan token FCM ke Supabase + final guruId = result['id_tabel']?.toString(); + if (guruId != null && guruId.isNotEmpty) { + await fcm_absen.NotificationFCM.saveTokenToSupabase(guruId.trim(), 'guru'); + } + + if (!mounted) return; + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar( + content: Text("Login berhasil! Silakan tekan tombol Masuk."), + backgroundColor: Colors.green, + ), + ); + Navigator.pushAndRemoveUntil( + context, + MaterialPageRoute(builder: (context) => const Home()), + (route) => false, + ); + } catch (e) { + if (mounted) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text("Login gagal: $e")), + ); + } + } finally { + if (mounted) { + setState(() => _isLoading = false); + } + } + } + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: Colors.white, + body: ListView( + padding: EdgeInsets.symmetric(horizontal: 16, vertical: 0,), + children: [ + const SizedBox(height: 70), + + Align( + alignment: Alignment.center, + child: Container( + padding: const EdgeInsets.all(14), + decoration: BoxDecoration( + color: const Color(0xFF2563EB), + borderRadius: BorderRadius.circular(16), + boxShadow: [ + BoxShadow( + color: Colors.blue.withOpacity(0.3), + blurRadius: 12, + offset: const Offset(0, 6), + ), + ], + ), + child: const Icon( + Icons.school_outlined, + color: Colors.white, + size: 42, + ), + ), + ), + + const SizedBox(height: 28), + + const Text( + "Masuk Sebagai Guru", + style: TextStyle( + fontSize: 22, + fontWeight: FontWeight.bold, + color: Color(0xFF1E293B), + ), + ), + + const SizedBox(height: 8), + + const Text( + "Silakan masukkan kredensial Anda", + style: TextStyle( + fontSize: 15, + color: Color(0xFF94A3B8), + ), + ), + + const SizedBox(height: 55), + + // EMAIL + const Align( + alignment: Alignment.centerLeft, + child: Text( + "Email Admin", + style: TextStyle( + fontSize: 16, + color: Color(0xFF334155), + fontWeight: FontWeight.w500, + ), + ), + ), + + const SizedBox(height: 10), + + TextField( + controller: userIdController, + decoration: InputDecoration( + hintText: "Masukkan Email Admin", + hintStyle: const TextStyle( + color: Color(0xFFC4C4C4), + ), + filled: true, + fillColor: const Color(0xFFF1F5F9), + contentPadding: const EdgeInsets.symmetric( + horizontal: 20, + vertical: 18, + ), + border: OutlineInputBorder( + borderRadius: BorderRadius.circular(16), + borderSide: const BorderSide( + color: Color(0xFFE2E8F0), + ), + ), + enabledBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(16), + borderSide: const BorderSide( + color: Color(0xFFE2E8F0), + ), + ), + ), + ), + + const SizedBox(height: 22), + + // PASSWORD + const Align( + alignment: Alignment.centerLeft, + child: Text( + "NIP", + style: TextStyle( + fontSize: 16, + color: Color(0xFF334155), + fontWeight: FontWeight.w500, + ), + ), + ), + + const SizedBox(height: 10), + + TextField( + controller: nipController, + decoration: InputDecoration( + hintText: "Masukkan NIP", + hintStyle: const TextStyle( + color: Color(0xFFC4C4C4), + ), + filled: true, + fillColor: const Color(0xFFF1F5F9), + contentPadding: const EdgeInsets.symmetric( + horizontal: 20, + vertical: 18, + ), + border: OutlineInputBorder( + borderRadius: BorderRadius.circular(16), + borderSide: const BorderSide( + color: Color(0xFFE2E8F0), + ), + ), + enabledBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(16), + borderSide: const BorderSide( + color: Color(0xFFE2E8F0), + ), + ), + ), + ), + + const SizedBox(height: 40), + + // BUTTON + Padding( + padding: const EdgeInsets.symmetric(horizontal: 60), + child: SizedBox( + width: double.infinity, + height: 58, + child: ElevatedButton( + onPressed: _isLoading ? null : _login, + style: ElevatedButton.styleFrom( + backgroundColor: const Color(0xFF16A34A), + elevation: 8, + shadowColor: Colors.green.withOpacity(0.35), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(16), + ), + ), + child: _isLoading + ? const CircularProgressIndicator(color: Colors.white) + : const Text( + "Masuk", + style: TextStyle( + fontSize: 22, + fontWeight: FontWeight.bold, + color: Colors.white, + ), + ), + ), + ), + ), + ], + ), + ); + } +} \ No newline at end of file diff --git a/lib/register/murid/login_murid.dart b/lib/register/murid/login_murid.dart new file mode 100644 index 0000000..b58f93b --- /dev/null +++ b/lib/register/murid/login_murid.dart @@ -0,0 +1,242 @@ +import 'package:flutter/material.dart'; +import 'package:shared_preferences/shared_preferences.dart'; +import 'package:apk/dashboard/d_c_murid/function/FCM_absen.dart/fcm_notif.dart' as fcm_absen; +import 'package:apk/dashboard/d_c_murid/database/auth_ortu.dart'; +import 'package:apk/register/page1.dart'; + +class UserMurid extends StatefulWidget { + const UserMurid({super.key}); + + @override + State createState() => _UserMuridState(); +} + +class _UserMuridState extends State { + final AuthOrtu _auth = AuthOrtu(); + bool _isLoading = false; + + final TextEditingController userIdController = TextEditingController(); + final TextEditingController nisController = TextEditingController(); + + void _login() async { + setState(() => _isLoading = true); + try { + final emailAdmin = userIdController.text.trim(); + final nis = nisController.text.trim(); + final result = await _auth.signInOrtu(emailAdmin, nis); + + final prefs = await SharedPreferences.getInstance(); + await prefs.setString('user_email', emailAdmin); + await prefs.setString('user_role', 'murid'); + // Daftarkan token FCM ke Supabase + final muridId = result['id_tabel']?.toString(); + + if (muridId != null && muridId.isNotEmpty) { + await fcm_absen.NotificationFCM.saveTokenToSupabase(muridId.trim(), 'murid'); + } + + if (!mounted) return; + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar( + content: Text("Login berhasil! Silakan tekan tombol Masuk."), + backgroundColor: Colors.green, + ), + ); + Navigator.pushAndRemoveUntil( + context, + MaterialPageRoute(builder: (context) => const Home()), + (route) => false, + ); + } catch (e) { + if (mounted) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text("Login gagal: $e")), + ); + } + } finally { + if (mounted) { + setState(() => _isLoading = false); + } + } + } + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: Colors.white, + body: ListView( + padding: EdgeInsets.symmetric(horizontal: 16, vertical: 0,), + children: [ + const SizedBox(height: 70), + + Align( + alignment: Alignment.center, + child: Container( + padding: const EdgeInsets.all(14), + decoration: BoxDecoration( + color: const Color(0xFF2563EB), + borderRadius: BorderRadius.circular(16), + boxShadow: [ + BoxShadow( + color: Colors.blue.withOpacity(0.3), + blurRadius: 12, + offset: const Offset(0, 6), + ), + ], + ), + child: const Icon( + Icons.school_outlined, + color: Colors.white, + size: 42, + ), + ), + ), + + const SizedBox(height: 28), + + const Text( + "Masuk Sebagai Murid", + style: TextStyle( + fontSize: 22, + fontWeight: FontWeight.bold, + color: Color(0xFF1E293B), + ), + ), + + const SizedBox(height: 8), + + const Text( + "Silakan masukkan kredensial Anda", + style: TextStyle( + fontSize: 15, + color: Color(0xFF94A3B8), + ), + ), + + const SizedBox(height: 55), + + // EMAIL + const Align( + alignment: Alignment.centerLeft, + child: Text( + "Email Admin", + style: TextStyle( + fontSize: 16, + color: Color(0xFF334155), + fontWeight: FontWeight.w500, + ), + ), + ), + + const SizedBox(height: 10), + + TextField( + controller: userIdController, + decoration: InputDecoration( + hintText: "Masukkan Email Admin", + hintStyle: const TextStyle( + color: Color(0xFFC4C4C4), + ), + filled: true, + fillColor: const Color(0xFFF1F5F9), + contentPadding: const EdgeInsets.symmetric( + horizontal: 20, + vertical: 18, + ), + border: OutlineInputBorder( + borderRadius: BorderRadius.circular(16), + borderSide: const BorderSide( + color: Color(0xFFE2E8F0), + ), + ), + enabledBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(16), + borderSide: const BorderSide( + color: Color(0xFFE2E8F0), + ), + ), + ), + ), + + const SizedBox(height: 22), + + // PASSWORD + const Align( + alignment: Alignment.centerLeft, + child: Text( + "NIS", + style: TextStyle( + fontSize: 16, + color: Color(0xFF334155), + fontWeight: FontWeight.w500, + ), + ), + ), + + const SizedBox(height: 10), + + TextField( + controller: nisController, + decoration: InputDecoration( + hintText: "Masukkan NIS", + hintStyle: const TextStyle( + color: Color(0xFFC4C4C4), + ), + filled: true, + fillColor: const Color(0xFFF1F5F9), + contentPadding: const EdgeInsets.symmetric( + horizontal: 20, + vertical: 18, + ), + border: OutlineInputBorder( + borderRadius: BorderRadius.circular(16), + borderSide: const BorderSide( + color: Color(0xFFE2E8F0), + ), + ), + enabledBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(16), + borderSide: const BorderSide( + color: Color(0xFFE2E8F0), + ), + ), + ), + ), + + const SizedBox(height: 40), + + // BUTTON + Padding( + padding: const EdgeInsets.symmetric(horizontal: 60), + child: SizedBox( + width: double.infinity, + height: 58, + child: ElevatedButton( + onPressed: _isLoading ? null : _login, + style: ElevatedButton.styleFrom( + backgroundColor: const Color(0xFF16A34A), + elevation: 8, + shadowColor: Colors.green.withOpacity(0.35), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(16), + ), + ), + child: _isLoading + ? const CircularProgressIndicator(color: Colors.white) + : const Text( + "Masuk", + style: TextStyle( + fontSize: 22, + fontWeight: FontWeight.bold, + color: Colors.white, + ), + ), + ), + ), + ), + + ], + ), + ); + } +} diff --git a/lib/register/option_user.dart b/lib/register/option_user.dart new file mode 100644 index 0000000..0e3c036 --- /dev/null +++ b/lib/register/option_user.dart @@ -0,0 +1,170 @@ +import 'package:flutter/material.dart'; +import 'package:apk/register/admin/login_screen.dart'; +import 'package:apk/register/guru/login_guru.dart'; +import 'package:apk/register/murid/login_murid.dart'; + +class OptionUser extends StatelessWidget { + const OptionUser({super.key}); + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: Colors.white, + body: SafeArea( + child: Column( + children: [ + // Top Bar with back button + Padding( + padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 12), + child: Row( + children: [ + IconButton( + icon: const Icon(Icons.arrow_back_rounded, color: Color(0xFF1E293B)), + onPressed: () => Navigator.pop(context), + ), + ], + ), + ), + + Expanded( + child: ListView( + padding: const EdgeInsets.symmetric(horizontal: 24), + children: [ + const SizedBox(height: 10), + + // Title + const Text( + 'Pilih Peran', + style: TextStyle( + fontFamily: 'Inter', + fontSize: 26, + fontWeight: FontWeight.bold, + color: Color(0xFF0F172A), + ), + ), + const SizedBox(height: 6), + const Text( + 'Pilih jenis akun untuk masuk ke aplikasi.', + style: TextStyle( + fontFamily: 'Inter', + fontSize: 14, + color: Color(0xFF64748B), + ), + ), + + const SizedBox(height: 24), + + // 1. Admin Option Card + _buildRoleTile( + context: context, + icon: Icons.admin_panel_settings_rounded, + iconBgColor: const Color(0xFFEFF6FF), + iconColor: const Color(0xFF2563EB), + title: 'Admin Sekolah', + onTap: () { + Navigator.push( + context, + MaterialPageRoute(builder: (_) => const LoginAdmin()), + ); + }, + ), + + const SizedBox(height: 14), + + // 2. Guru Option Card + _buildRoleTile( + context: context, + icon: Icons.school_rounded, + iconBgColor: const Color(0xFFF0FDF4), + iconColor: const Color(0xFF16A34A), + title: 'Guru / Pengajar', + onTap: () { + Navigator.push( + context, + MaterialPageRoute(builder: (_) => const UserGuru()), + ); + }, + ), + + const SizedBox(height: 14), + + // 3. Murid Option Card + _buildRoleTile( + context: context, + icon: Icons.face_rounded, + iconBgColor: const Color(0xFFFAF5FF), + iconColor: const Color(0xFF9333EA), + title: 'Murid / Orang Tua', + onTap: () { + Navigator.push( + context, + MaterialPageRoute(builder: (_) => const UserMurid()), + ); + }, + ), + ], + ), + ), + ], + ), + ), + ); + } + + Widget _buildRoleTile({ + required BuildContext context, + required IconData icon, + required Color iconBgColor, + required Color iconColor, + required String title, + required VoidCallback onTap, + }) { + return Container( + decoration: BoxDecoration( + color: const Color(0xFFF8FAFC), + borderRadius: BorderRadius.circular(16), + border: Border.all(color: const Color(0xFFE2E8F0)), + ), + child: Material( + color: Colors.transparent, + borderRadius: BorderRadius.circular(16), + child: InkWell( + borderRadius: BorderRadius.circular(16), + onTap: onTap, + child: Padding( + padding: const EdgeInsets.symmetric(horizontal: 18, vertical: 16), + child: Row( + children: [ + Container( + padding: const EdgeInsets.all(12), + decoration: BoxDecoration( + color: iconBgColor, + borderRadius: BorderRadius.circular(12), + ), + child: Icon(icon, color: iconColor, size: 26), + ), + const SizedBox(width: 16), + Expanded( + child: Text( + title, + style: const TextStyle( + fontFamily: 'Inter', + fontSize: 16, + fontWeight: FontWeight.w700, + color: Color(0xFF0F172A), + ), + ), + ), + const Icon( + Icons.chevron_right_rounded, + color: Color(0xFF94A3B8), + size: 22, + ), + ], + ), + ), + ), + ), + ); + } +} \ No newline at end of file diff --git a/lib/register/page1.dart b/lib/register/page1.dart new file mode 100644 index 0000000..042c709 --- /dev/null +++ b/lib/register/page1.dart @@ -0,0 +1,203 @@ +import 'dart:async'; +import 'package:flutter/material.dart'; +import 'package:shared_preferences/shared_preferences.dart'; +import 'package:apk/register/option_user.dart'; +import 'package:apk/dashboard/a_admin/bottom_bar/main_screen.dart'; +import 'package:apk/dashboard/d_guru/bottom_bar/nav_screen_g.dart'; +import 'package:apk/dashboard/d_c_murid/bottom_bar/nav_screen_o.dart'; + +class Home extends StatefulWidget { + const Home({super.key}); + + @override + State createState() => _LoginState(); +} + +class _LoginState extends State { + late Timer _timer; + String _time = ""; + + @override + void initState() { + super.initState(); + _updateTime(); + + _timer = Timer.periodic(const Duration(minutes: 1), (timer) { + _updateTime(); + }); + } + + void _updateTime() { + final now = DateTime.now(); + setState(() { + _time = + "${now.hour.toString().padLeft(2, '0')}:${now.minute.toString().padLeft(2, '0')}"; + }); + } + + @override + void dispose() { + _timer.cancel(); + super.dispose(); + } + + void _login() async { + final prefs = await SharedPreferences.getInstance(); + final userEmail = prefs.getString('user_email'); + final userRole = prefs.getString('user_role'); + + if (!mounted) return; + + if (userEmail != null && userEmail.isNotEmpty) { + if (userRole == 'guru') { + Navigator.pushAndRemoveUntil( + context, + MaterialPageRoute(builder: (context) => const NavScreenG()), + (route) => false, + ); + } else if (userRole == 'murid' || userRole == 'ortu') { + Navigator.pushAndRemoveUntil( + context, + MaterialPageRoute(builder: (context) => const NavScreenM()), + (route) => false, + ); + } else { + Navigator.pushAndRemoveUntil( + context, + MaterialPageRoute(builder: (context) => const MainScreen()), + (route) => false, + ); + } + } else { + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar( + content: Text('Anda belum login. Silakan tekan tombol gembok 🔒 untuk login terlebih dahulu.'), + backgroundColor: Colors.redAccent, + duration: Duration(seconds: 3), + ), + ); + } + } + + void _loginWithLock() { + Navigator.push( + context, + MaterialPageRoute(builder: (context) => const OptionUser()), + ); + } + + @override + Widget build(BuildContext context) { + return Scaffold( + backgroundColor: Colors.white, + bottomSheet: Container( + color: Colors.white, + height: 60, + child: const Center( + child: Text( + 'Powered by Yourself', + style: TextStyle( + fontFamily: "Inter", + color: Color(0xFF94A3B8), + fontSize: 12, + fontWeight: FontWeight.w400, + ), + ), + ), + ), + body: Stack( + children: [ + Positioned( + top: 50, + right: 60, + child: Text( + _time, + style: const TextStyle( + fontFamily: 'Digital-7', + fontSize: 60, + color: Colors.black, + letterSpacing: 2, + ), + ), + ), + Padding( + padding: const EdgeInsets.only(left: 60, right: 60, bottom: 100), + child: Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.end, + children: [ + const Align( + alignment: Alignment.centerLeft, + child: Text( + 'Kelola semuanya\nlebih mudah & cepat', + style: TextStyle( + fontFamily: "Inter", + fontSize: 18, + color: Colors.black, + fontWeight: FontWeight.w700, + ), + ), + ), + const SizedBox(height: 30), + + // ===== BUTTON ROW ===== + Row( + children: [ + // Tombol utama + Expanded( + child: SizedBox( + height: 58, + child: ElevatedButton( + onPressed: _login, + style: ElevatedButton.styleFrom( + backgroundColor: + const Color.fromARGB(255, 15, 0, 221), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(10), + ), + ), + child: const Text( + 'Masuk', + style: TextStyle( + fontSize: 16, + color: Colors.white, + fontWeight: FontWeight.bold, + ), + ), + ), + ), + ), + + const SizedBox(width: 10), + + // Tombol icon kotak + SizedBox( + width: 58, + height: 58, + child: ElevatedButton( + onPressed: _loginWithLock, + style: ElevatedButton.styleFrom( + backgroundColor: + const Color.fromARGB(255, 15, 0, 221), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(10), + ), + padding: EdgeInsets.zero, + ), + child: const Icon( + Icons.lock, + color: Colors.white, + ), + ), + ), + ], + ), + ], + ), + ), + ), + ], + ), + ); + } +} \ No newline at end of file diff --git a/lib/session_timer/session_time.dart b/lib/session_timer/session_time.dart new file mode 100644 index 0000000..47b836f --- /dev/null +++ b/lib/session_timer/session_time.dart @@ -0,0 +1,62 @@ +import 'dart:async'; +import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; + +class SessionTimeManager extends StatefulWidget { + final Widget child; + + const SessionTimeManager({super.key, required this.child}); + + @override + State createState() => _SessionTimeManagerState(); +} + +class _SessionTimeManagerState extends State with WidgetsBindingObserver { + Timer? _bgTimer; + // Waktu timeout: 15 menit + final int _timeoutMinutes = 15; + + @override + void initState() { + super.initState(); + WidgetsBinding.instance.addObserver(this); + } + + @override + void dispose() { + WidgetsBinding.instance.removeObserver(this); + _bgTimer?.cancel(); + super.dispose(); + } + + @override + void didChangeAppLifecycleState(AppLifecycleState state) { + super.didChangeAppLifecycleState(state); + + if (state == AppLifecycleState.paused) { + // Aplikasi masuk ke background + _startBackgroundTimer(); + } else if (state == AppLifecycleState.resumed) { + // Aplikasi kembali dibuka (foreground) + _cancelBackgroundTimer(); + } + } + + void _startBackgroundTimer() { + _bgTimer?.cancel(); + _bgTimer = Timer(Duration(minutes: _timeoutMinutes), () { + // Menutup aplikasi secara paksa setelah 15 menit tidak aktif di background + SystemNavigator.pop(); + }); + } + + void _cancelBackgroundTimer() { + // Membatalkan timer jika pengguna kembali membuka aplikasi sebelum 15 menit + _bgTimer?.cancel(); + } + + @override + Widget build(BuildContext context) { + return widget.child; + } +} diff --git a/lib/ui_custom/custom_button.dart b/lib/ui_custom/custom_button.dart new file mode 100644 index 0000000..64d3a6d --- /dev/null +++ b/lib/ui_custom/custom_button.dart @@ -0,0 +1,236 @@ +import 'package:flutter/material.dart'; + +enum IconPosition { + left, + right, +} + +class CustomCard extends StatelessWidget { + final String title; + final String? subtitle; + final Widget? customSubtitle; + + // SIZE + final double? width; + final double? height; + + // ACTION + final VoidCallback? onTap; + + // CARD ALIGNMENT + final AlignmentGeometry alignment; + + // STYLE + final Color backgroundColor; + final Color borderColor; + final double borderWidth; + final double borderRadius; + + // TEXT STYLE + final TextStyle? titleStyle; + final TextStyle? subtitleStyle; + + // TEXT DEFAULT + final TextAlign titleAlign; + final TextAlign subtitleAlign; + final int? titleMaxLines; + final int? subtitleMaxLines; + final TextOverflow? titleOverflow; + final TextOverflow? subtitleOverflow; + + // ICON + final IconData? icon; + final Color iconColor; + final double iconSize; + final bool showIcon; + + // SPACING + final EdgeInsetsGeometry padding; + final EdgeInsetsGeometry margin; + + // SHADOW + final List? boxShadow; + + final Widget? customIcon; + + final IconPosition iconPosition; + final BoxDecoration? iconDecoration; + final Gradient? iconGradient; + final EdgeInsetsGeometry iconPadding; + final double iconContainerSize; + final Gradient? gradient; + + const CustomCard({ + super.key, + required this.title, + this.subtitle, + this.customSubtitle, + + this.width, + this.height, + this.onTap, + + this.alignment = Alignment.centerLeft, + + this.backgroundColor = const Color(0xFFF1F5F9), + this.borderColor = const Color(0xFFBFDBFE), + this.borderWidth = 1, + this.borderRadius = 16, + + this.titleStyle, + this.subtitleStyle, + + //TEXT DEFAULT + this.titleAlign = TextAlign.left, + this.subtitleAlign = TextAlign.left, + this.titleMaxLines, + this.subtitleMaxLines, + this.titleOverflow, + this.subtitleOverflow, + + this.icon = Icons.chevron_right, + this.iconColor = const Color(0xFF94A3B8), + this.iconSize = 24, + this.showIcon = true, + + this.padding = const EdgeInsets.all(16), + this.margin = const EdgeInsets.symmetric(horizontal: 20, vertical: 8), + + this.boxShadow, + + this.customIcon, + + this.iconPosition = IconPosition.right, + this.iconDecoration, + this.iconGradient, + this.iconPadding = const EdgeInsets.all(8), + this.iconContainerSize = 40, + this.gradient, + }); + + Widget _buildIcon() { + if (!showIcon) return const SizedBox(); + + Widget iconWidget = customIcon ?? + (icon != null + ? Icon( + icon, + color: iconColor, + size: iconSize, + ) + : const SizedBox()); + + return Container( + width: iconContainerSize, + height: iconContainerSize, + padding: iconPadding, + decoration: iconDecoration ?? + BoxDecoration( + gradient: iconGradient, + borderRadius: BorderRadius.circular(12), + ), + child: Center(child: iconWidget), + ); + } + + @override + Widget build(BuildContext context) { + return Align( + alignment: alignment, + child: InkWell( + borderRadius: BorderRadius.circular(borderRadius), + onTap: onTap, + child: Container( + width: width ?? double.infinity, + height: height, + margin: margin, + padding: padding, + decoration: BoxDecoration( + color: gradient == null ? backgroundColor : null, + gradient: gradient, + borderRadius: BorderRadius.circular(borderRadius), + border: Border.all( + color: borderColor, + width: borderWidth, + ), + boxShadow: boxShadow ?? + [ + BoxShadow( + // ignore: deprecated_member_use + color: Colors.black.withOpacity(0.05), + blurRadius: 10, + offset: const Offset(0, 4), + ), + ], + ), + + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + // ICON + if (iconPosition == IconPosition.left) ...[ + _buildIcon(), + const SizedBox(width: 8), + ], + + // TEXT + Expanded( + child: SingleChildScrollView( + physics: const NeverScrollableScrollPhysics(), + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + + // 🔥 ini ikut textAlign + crossAxisAlignment: titleAlign == TextAlign.right + ? CrossAxisAlignment.end + : titleAlign == TextAlign.center + ? CrossAxisAlignment.center + : CrossAxisAlignment.start, + + children: [ + Text( + title, + textAlign: titleAlign, + maxLines: titleMaxLines, + overflow: titleOverflow, + style: titleStyle ?? + const TextStyle( + fontFamily: 'Inter', + fontSize: 16, + fontWeight: FontWeight.w700, + color: Color(0xFF1E293B), + ), + ), + if (customSubtitle != null) ...[ + const SizedBox(height: 4), + customSubtitle!, + ] else if (subtitle != null) ...[ + const SizedBox(height: 4), + Text( + subtitle!, + textAlign: subtitleAlign, + maxLines: subtitleMaxLines, + overflow: subtitleOverflow, + style: subtitleStyle ?? + const TextStyle( + fontFamily: 'Inter', + fontSize: 14, + color: Color(0xFF64748B), + ), + ), + ], + ], + ), + ), + ), + if (iconPosition == IconPosition.right) ...[ + const SizedBox(width: 8), + _buildIcon(), + ], + ], + ), + ), + ), + ); + } +} \ No newline at end of file diff --git a/lib/ui_custom/custom_textfield.dart b/lib/ui_custom/custom_textfield.dart new file mode 100644 index 0000000..4d3053b --- /dev/null +++ b/lib/ui_custom/custom_textfield.dart @@ -0,0 +1,102 @@ +import 'package:flutter/material.dart'; + +class CustomTextField extends StatefulWidget { + final TextEditingController controller; + final String label; + final String? hint; + final IconData? prefixIcon; + final Widget? suffixIcon; + + final bool isPassword; + final bool readOnly; + final bool enabled; + final TextInputType keyboardType; + final int maxLines; + + final String? Function(String?)? validator; + final void Function(String)? onChanged; + final VoidCallback? onTap; + + final Color borderColor; + final Color focusColor; + + const CustomTextField({ + super.key, + required this.controller, + required this.label, + this.hint, + this.prefixIcon, + this.suffixIcon, + this.isPassword = false, + this.readOnly = false, + this.enabled = true, + this.keyboardType = TextInputType.text, + this.maxLines = 1, + this.validator, + this.onChanged, + this.onTap, + this.borderColor = Colors.grey, + this.focusColor = Colors.blue, + }); + + @override + State createState() => _CustomTextFieldState(); +} + +class _CustomTextFieldState extends State { + bool obscureText = true; + + @override + Widget build(BuildContext context) { + return TextFormField( + controller: widget.controller, + obscureText: widget.isPassword ? obscureText : false, + readOnly: widget.readOnly, + enabled: widget.enabled, + keyboardType: widget.keyboardType, + maxLines: widget.isPassword ? 1 : widget.maxLines, + validator: widget.validator, + onChanged: widget.onChanged, + onTap: widget.onTap, + + decoration: InputDecoration( + labelText: widget.label, + hintText: widget.hint, + + prefixIcon: widget.prefixIcon != null + ? Icon(widget.prefixIcon) + : null, + + suffixIcon: widget.isPassword + ? IconButton( + icon: Icon( + obscureText + ? Icons.visibility_off + : Icons.visibility, + ), + onPressed: () { + setState(() { + obscureText = !obscureText; + }); + }, + ) + : widget.suffixIcon, + + border: OutlineInputBorder( + borderRadius: BorderRadius.circular(12), + borderSide: BorderSide(color: widget.borderColor), + ), + + enabledBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(12), + borderSide: BorderSide(color: widget.borderColor), + ), + + focusedBorder: OutlineInputBorder( + borderRadius: BorderRadius.circular(12), + borderSide: BorderSide(color: widget.focusColor, width: 2), + ), + ), + ); + } +} \ No newline at end of file diff --git a/lib/ui_custom/time_helper.dart b/lib/ui_custom/time_helper.dart new file mode 100644 index 0000000..2473897 --- /dev/null +++ b/lib/ui_custom/time_helper.dart @@ -0,0 +1,19 @@ +import 'package:intl/intl.dart'; + +class TimeHelper { + static DateTime now() { + return DateTime.now(); + } + + static String getTime() { + return DateFormat('HH:mm').format(DateTime.now()); + } + + static String getDate() { + return DateFormat('dd-MM-yyyy').format(DateTime.now()); + } + + static String getDateTime() { + return DateFormat('dd MMM yyyy, HH:mm:ss').format(DateTime.now()); + } +} \ No newline at end of file diff --git a/lib/ui_custom/ui_jam.dart b/lib/ui_custom/ui_jam.dart new file mode 100644 index 0000000..e69de29 diff --git a/linux/.gitignore b/linux/.gitignore new file mode 100644 index 0000000..d3896c9 --- /dev/null +++ b/linux/.gitignore @@ -0,0 +1 @@ +flutter/ephemeral diff --git a/linux/CMakeLists.txt b/linux/CMakeLists.txt new file mode 100644 index 0000000..18f4fb3 --- /dev/null +++ b/linux/CMakeLists.txt @@ -0,0 +1,128 @@ +# Project-level configuration. +cmake_minimum_required(VERSION 3.13) +project(runner LANGUAGES CXX) + +# The name of the executable created for the application. Change this to change +# the on-disk name of your application. +set(BINARY_NAME "apk_full") +# The unique GTK application identifier for this application. See: +# https://wiki.gnome.org/HowDoI/ChooseApplicationID +set(APPLICATION_ID "com.example.apk_full") + +# Explicitly opt in to modern CMake behaviors to avoid warnings with recent +# versions of CMake. +cmake_policy(SET CMP0063 NEW) + +# Load bundled libraries from the lib/ directory relative to the binary. +set(CMAKE_INSTALL_RPATH "$ORIGIN/lib") + +# Root filesystem for cross-building. +if(FLUTTER_TARGET_PLATFORM_SYSROOT) + set(CMAKE_SYSROOT ${FLUTTER_TARGET_PLATFORM_SYSROOT}) + set(CMAKE_FIND_ROOT_PATH ${CMAKE_SYSROOT}) + set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) + set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY) + set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) + set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) +endif() + +# Define build configuration options. +if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES) + set(CMAKE_BUILD_TYPE "Debug" CACHE + STRING "Flutter build mode" FORCE) + set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS + "Debug" "Profile" "Release") +endif() + +# Compilation settings that should be applied to most targets. +# +# Be cautious about adding new options here, as plugins use this function by +# default. In most cases, you should add new options to specific targets instead +# of modifying this function. +function(APPLY_STANDARD_SETTINGS TARGET) + target_compile_features(${TARGET} PUBLIC cxx_std_14) + target_compile_options(${TARGET} PRIVATE -Wall -Werror) + target_compile_options(${TARGET} PRIVATE "$<$>:-O3>") + target_compile_definitions(${TARGET} PRIVATE "$<$>:NDEBUG>") +endfunction() + +# Flutter library and tool build rules. +set(FLUTTER_MANAGED_DIR "${CMAKE_CURRENT_SOURCE_DIR}/flutter") +add_subdirectory(${FLUTTER_MANAGED_DIR}) + +# System-level dependencies. +find_package(PkgConfig REQUIRED) +pkg_check_modules(GTK REQUIRED IMPORTED_TARGET gtk+-3.0) + +# Application build; see runner/CMakeLists.txt. +add_subdirectory("runner") + +# Run the Flutter tool portions of the build. This must not be removed. +add_dependencies(${BINARY_NAME} flutter_assemble) + +# Only the install-generated bundle's copy of the executable will launch +# correctly, since the resources must in the right relative locations. To avoid +# people trying to run the unbundled copy, put it in a subdirectory instead of +# the default top-level location. +set_target_properties(${BINARY_NAME} + PROPERTIES + RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/intermediates_do_not_run" +) + + +# Generated plugin build rules, which manage building the plugins and adding +# them to the application. +include(flutter/generated_plugins.cmake) + + +# === Installation === +# By default, "installing" just makes a relocatable bundle in the build +# directory. +set(BUILD_BUNDLE_DIR "${PROJECT_BINARY_DIR}/bundle") +if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) + set(CMAKE_INSTALL_PREFIX "${BUILD_BUNDLE_DIR}" CACHE PATH "..." FORCE) +endif() + +# Start with a clean build bundle directory every time. +install(CODE " + file(REMOVE_RECURSE \"${BUILD_BUNDLE_DIR}/\") + " COMPONENT Runtime) + +set(INSTALL_BUNDLE_DATA_DIR "${CMAKE_INSTALL_PREFIX}/data") +set(INSTALL_BUNDLE_LIB_DIR "${CMAKE_INSTALL_PREFIX}/lib") + +install(TARGETS ${BINARY_NAME} RUNTIME DESTINATION "${CMAKE_INSTALL_PREFIX}" + COMPONENT Runtime) + +install(FILES "${FLUTTER_ICU_DATA_FILE}" DESTINATION "${INSTALL_BUNDLE_DATA_DIR}" + COMPONENT Runtime) + +install(FILES "${FLUTTER_LIBRARY}" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" + COMPONENT Runtime) + +foreach(bundled_library ${PLUGIN_BUNDLED_LIBRARIES}) + install(FILES "${bundled_library}" + DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" + COMPONENT Runtime) +endforeach(bundled_library) + +# Copy the native assets provided by the build.dart from all packages. +set(NATIVE_ASSETS_DIR "${PROJECT_BUILD_DIR}native_assets/linux/") +install(DIRECTORY "${NATIVE_ASSETS_DIR}" + DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" + COMPONENT Runtime) + +# Fully re-copy the assets directory on each build to avoid having stale files +# from a previous install. +set(FLUTTER_ASSET_DIR_NAME "flutter_assets") +install(CODE " + file(REMOVE_RECURSE \"${INSTALL_BUNDLE_DATA_DIR}/${FLUTTER_ASSET_DIR_NAME}\") + " COMPONENT Runtime) +install(DIRECTORY "${PROJECT_BUILD_DIR}/${FLUTTER_ASSET_DIR_NAME}" + DESTINATION "${INSTALL_BUNDLE_DATA_DIR}" COMPONENT Runtime) + +# Install the AOT library on non-Debug builds only. +if(NOT CMAKE_BUILD_TYPE MATCHES "Debug") + install(FILES "${AOT_LIBRARY}" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" + COMPONENT Runtime) +endif() diff --git a/linux/flutter/CMakeLists.txt b/linux/flutter/CMakeLists.txt new file mode 100644 index 0000000..d5bd016 --- /dev/null +++ b/linux/flutter/CMakeLists.txt @@ -0,0 +1,88 @@ +# This file controls Flutter-level build steps. It should not be edited. +cmake_minimum_required(VERSION 3.10) + +set(EPHEMERAL_DIR "${CMAKE_CURRENT_SOURCE_DIR}/ephemeral") + +# Configuration provided via flutter tool. +include(${EPHEMERAL_DIR}/generated_config.cmake) + +# TODO: Move the rest of this into files in ephemeral. See +# https://github.com/flutter/flutter/issues/57146. + +# Serves the same purpose as list(TRANSFORM ... PREPEND ...), +# which isn't available in 3.10. +function(list_prepend LIST_NAME PREFIX) + set(NEW_LIST "") + foreach(element ${${LIST_NAME}}) + list(APPEND NEW_LIST "${PREFIX}${element}") + endforeach(element) + set(${LIST_NAME} "${NEW_LIST}" PARENT_SCOPE) +endfunction() + +# === Flutter Library === +# System-level dependencies. +find_package(PkgConfig REQUIRED) +pkg_check_modules(GTK REQUIRED IMPORTED_TARGET gtk+-3.0) +pkg_check_modules(GLIB REQUIRED IMPORTED_TARGET glib-2.0) +pkg_check_modules(GIO REQUIRED IMPORTED_TARGET gio-2.0) + +set(FLUTTER_LIBRARY "${EPHEMERAL_DIR}/libflutter_linux_gtk.so") + +# Published to parent scope for install step. +set(FLUTTER_LIBRARY ${FLUTTER_LIBRARY} PARENT_SCOPE) +set(FLUTTER_ICU_DATA_FILE "${EPHEMERAL_DIR}/icudtl.dat" PARENT_SCOPE) +set(PROJECT_BUILD_DIR "${PROJECT_DIR}/build/" PARENT_SCOPE) +set(AOT_LIBRARY "${PROJECT_DIR}/build/lib/libapp.so" PARENT_SCOPE) + +list(APPEND FLUTTER_LIBRARY_HEADERS + "fl_basic_message_channel.h" + "fl_binary_codec.h" + "fl_binary_messenger.h" + "fl_dart_project.h" + "fl_engine.h" + "fl_json_message_codec.h" + "fl_json_method_codec.h" + "fl_message_codec.h" + "fl_method_call.h" + "fl_method_channel.h" + "fl_method_codec.h" + "fl_method_response.h" + "fl_plugin_registrar.h" + "fl_plugin_registry.h" + "fl_standard_message_codec.h" + "fl_standard_method_codec.h" + "fl_string_codec.h" + "fl_value.h" + "fl_view.h" + "flutter_linux.h" +) +list_prepend(FLUTTER_LIBRARY_HEADERS "${EPHEMERAL_DIR}/flutter_linux/") +add_library(flutter INTERFACE) +target_include_directories(flutter INTERFACE + "${EPHEMERAL_DIR}" +) +target_link_libraries(flutter INTERFACE "${FLUTTER_LIBRARY}") +target_link_libraries(flutter INTERFACE + PkgConfig::GTK + PkgConfig::GLIB + PkgConfig::GIO +) +add_dependencies(flutter flutter_assemble) + +# === Flutter tool backend === +# _phony_ is a non-existent file to force this command to run every time, +# since currently there's no way to get a full input/output list from the +# flutter tool. +add_custom_command( + OUTPUT ${FLUTTER_LIBRARY} ${FLUTTER_LIBRARY_HEADERS} + ${CMAKE_CURRENT_BINARY_DIR}/_phony_ + COMMAND ${CMAKE_COMMAND} -E env + ${FLUTTER_TOOL_ENVIRONMENT} + "${FLUTTER_ROOT}/packages/flutter_tools/bin/tool_backend.sh" + ${FLUTTER_TARGET_PLATFORM} ${CMAKE_BUILD_TYPE} + VERBATIM +) +add_custom_target(flutter_assemble DEPENDS + "${FLUTTER_LIBRARY}" + ${FLUTTER_LIBRARY_HEADERS} +) diff --git a/linux/flutter/generated_plugin_registrant.cc b/linux/flutter/generated_plugin_registrant.cc new file mode 100644 index 0000000..e12c657 --- /dev/null +++ b/linux/flutter/generated_plugin_registrant.cc @@ -0,0 +1,23 @@ +// +// Generated file. Do not edit. +// + +// clang-format off + +#include "generated_plugin_registrant.h" + +#include +#include +#include + +void fl_register_plugins(FlPluginRegistry* registry) { + g_autoptr(FlPluginRegistrar) file_selector_linux_registrar = + fl_plugin_registry_get_registrar_for_plugin(registry, "FileSelectorPlugin"); + file_selector_plugin_register_with_registrar(file_selector_linux_registrar); + g_autoptr(FlPluginRegistrar) gtk_registrar = + fl_plugin_registry_get_registrar_for_plugin(registry, "GtkPlugin"); + gtk_plugin_register_with_registrar(gtk_registrar); + g_autoptr(FlPluginRegistrar) url_launcher_linux_registrar = + fl_plugin_registry_get_registrar_for_plugin(registry, "UrlLauncherPlugin"); + url_launcher_plugin_register_with_registrar(url_launcher_linux_registrar); +} diff --git a/linux/flutter/generated_plugin_registrant.h b/linux/flutter/generated_plugin_registrant.h new file mode 100644 index 0000000..e0f0a47 --- /dev/null +++ b/linux/flutter/generated_plugin_registrant.h @@ -0,0 +1,15 @@ +// +// Generated file. Do not edit. +// + +// clang-format off + +#ifndef GENERATED_PLUGIN_REGISTRANT_ +#define GENERATED_PLUGIN_REGISTRANT_ + +#include + +// Registers Flutter plugins. +void fl_register_plugins(FlPluginRegistry* registry); + +#endif // GENERATED_PLUGIN_REGISTRANT_ diff --git a/linux/flutter/generated_plugins.cmake b/linux/flutter/generated_plugins.cmake new file mode 100644 index 0000000..2127acd --- /dev/null +++ b/linux/flutter/generated_plugins.cmake @@ -0,0 +1,27 @@ +# +# Generated file, do not edit. +# + +list(APPEND FLUTTER_PLUGIN_LIST + file_selector_linux + gtk + url_launcher_linux +) + +list(APPEND FLUTTER_FFI_PLUGIN_LIST + jni +) + +set(PLUGIN_BUNDLED_LIBRARIES) + +foreach(plugin ${FLUTTER_PLUGIN_LIST}) + add_subdirectory(flutter/ephemeral/.plugin_symlinks/${plugin}/linux plugins/${plugin}) + target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin) + list(APPEND PLUGIN_BUNDLED_LIBRARIES $) + list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) +endforeach(plugin) + +foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST}) + add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/linux plugins/${ffi_plugin}) + list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries}) +endforeach(ffi_plugin) diff --git a/linux/runner/CMakeLists.txt b/linux/runner/CMakeLists.txt new file mode 100644 index 0000000..e97dabc --- /dev/null +++ b/linux/runner/CMakeLists.txt @@ -0,0 +1,26 @@ +cmake_minimum_required(VERSION 3.13) +project(runner LANGUAGES CXX) + +# Define the application target. To change its name, change BINARY_NAME in the +# top-level CMakeLists.txt, not the value here, or `flutter run` will no longer +# work. +# +# Any new source files that you add to the application should be added here. +add_executable(${BINARY_NAME} + "main.cc" + "my_application.cc" + "${FLUTTER_MANAGED_DIR}/generated_plugin_registrant.cc" +) + +# Apply the standard set of build settings. This can be removed for applications +# that need different build settings. +apply_standard_settings(${BINARY_NAME}) + +# Add preprocessor definitions for the application ID. +add_definitions(-DAPPLICATION_ID="${APPLICATION_ID}") + +# Add dependency libraries. Add any application-specific dependencies here. +target_link_libraries(${BINARY_NAME} PRIVATE flutter) +target_link_libraries(${BINARY_NAME} PRIVATE PkgConfig::GTK) + +target_include_directories(${BINARY_NAME} PRIVATE "${CMAKE_SOURCE_DIR}") diff --git a/linux/runner/main.cc b/linux/runner/main.cc new file mode 100644 index 0000000..e7c5c54 --- /dev/null +++ b/linux/runner/main.cc @@ -0,0 +1,6 @@ +#include "my_application.h" + +int main(int argc, char** argv) { + g_autoptr(MyApplication) app = my_application_new(); + return g_application_run(G_APPLICATION(app), argc, argv); +} diff --git a/linux/runner/my_application.cc b/linux/runner/my_application.cc new file mode 100644 index 0000000..0026732 --- /dev/null +++ b/linux/runner/my_application.cc @@ -0,0 +1,148 @@ +#include "my_application.h" + +#include +#ifdef GDK_WINDOWING_X11 +#include +#endif + +#include "flutter/generated_plugin_registrant.h" + +struct _MyApplication { + GtkApplication parent_instance; + char** dart_entrypoint_arguments; +}; + +G_DEFINE_TYPE(MyApplication, my_application, GTK_TYPE_APPLICATION) + +// Called when first Flutter frame received. +static void first_frame_cb(MyApplication* self, FlView* view) { + gtk_widget_show(gtk_widget_get_toplevel(GTK_WIDGET(view))); +} + +// Implements GApplication::activate. +static void my_application_activate(GApplication* application) { + MyApplication* self = MY_APPLICATION(application); + GtkWindow* window = + GTK_WINDOW(gtk_application_window_new(GTK_APPLICATION(application))); + + // Use a header bar when running in GNOME as this is the common style used + // by applications and is the setup most users will be using (e.g. Ubuntu + // desktop). + // If running on X and not using GNOME then just use a traditional title bar + // in case the window manager does more exotic layout, e.g. tiling. + // If running on Wayland assume the header bar will work (may need changing + // if future cases occur). + gboolean use_header_bar = TRUE; +#ifdef GDK_WINDOWING_X11 + GdkScreen* screen = gtk_window_get_screen(window); + if (GDK_IS_X11_SCREEN(screen)) { + const gchar* wm_name = gdk_x11_screen_get_window_manager_name(screen); + if (g_strcmp0(wm_name, "GNOME Shell") != 0) { + use_header_bar = FALSE; + } + } +#endif + if (use_header_bar) { + GtkHeaderBar* header_bar = GTK_HEADER_BAR(gtk_header_bar_new()); + gtk_widget_show(GTK_WIDGET(header_bar)); + gtk_header_bar_set_title(header_bar, "apk_full"); + gtk_header_bar_set_show_close_button(header_bar, TRUE); + gtk_window_set_titlebar(window, GTK_WIDGET(header_bar)); + } else { + gtk_window_set_title(window, "apk_full"); + } + + gtk_window_set_default_size(window, 1280, 720); + + g_autoptr(FlDartProject) project = fl_dart_project_new(); + fl_dart_project_set_dart_entrypoint_arguments( + project, self->dart_entrypoint_arguments); + + FlView* view = fl_view_new(project); + GdkRGBA background_color; + // Background defaults to black, override it here if necessary, e.g. #00000000 + // for transparent. + gdk_rgba_parse(&background_color, "#000000"); + fl_view_set_background_color(view, &background_color); + gtk_widget_show(GTK_WIDGET(view)); + gtk_container_add(GTK_CONTAINER(window), GTK_WIDGET(view)); + + // Show the window when Flutter renders. + // Requires the view to be realized so we can start rendering. + g_signal_connect_swapped(view, "first-frame", G_CALLBACK(first_frame_cb), + self); + gtk_widget_realize(GTK_WIDGET(view)); + + fl_register_plugins(FL_PLUGIN_REGISTRY(view)); + + gtk_widget_grab_focus(GTK_WIDGET(view)); +} + +// Implements GApplication::local_command_line. +static gboolean my_application_local_command_line(GApplication* application, + gchar*** arguments, + int* exit_status) { + MyApplication* self = MY_APPLICATION(application); + // Strip out the first argument as it is the binary name. + self->dart_entrypoint_arguments = g_strdupv(*arguments + 1); + + g_autoptr(GError) error = nullptr; + if (!g_application_register(application, nullptr, &error)) { + g_warning("Failed to register: %s", error->message); + *exit_status = 1; + return TRUE; + } + + g_application_activate(application); + *exit_status = 0; + + return TRUE; +} + +// Implements GApplication::startup. +static void my_application_startup(GApplication* application) { + // MyApplication* self = MY_APPLICATION(object); + + // Perform any actions required at application startup. + + G_APPLICATION_CLASS(my_application_parent_class)->startup(application); +} + +// Implements GApplication::shutdown. +static void my_application_shutdown(GApplication* application) { + // MyApplication* self = MY_APPLICATION(object); + + // Perform any actions required at application shutdown. + + G_APPLICATION_CLASS(my_application_parent_class)->shutdown(application); +} + +// Implements GObject::dispose. +static void my_application_dispose(GObject* object) { + MyApplication* self = MY_APPLICATION(object); + g_clear_pointer(&self->dart_entrypoint_arguments, g_strfreev); + G_OBJECT_CLASS(my_application_parent_class)->dispose(object); +} + +static void my_application_class_init(MyApplicationClass* klass) { + G_APPLICATION_CLASS(klass)->activate = my_application_activate; + G_APPLICATION_CLASS(klass)->local_command_line = + my_application_local_command_line; + G_APPLICATION_CLASS(klass)->startup = my_application_startup; + G_APPLICATION_CLASS(klass)->shutdown = my_application_shutdown; + G_OBJECT_CLASS(klass)->dispose = my_application_dispose; +} + +static void my_application_init(MyApplication* self) {} + +MyApplication* my_application_new() { + // Set the program name to the application ID, which helps various systems + // like GTK and desktop environments map this running application to its + // corresponding .desktop file. This ensures better integration by allowing + // the application to be recognized beyond its binary name. + g_set_prgname(APPLICATION_ID); + + return MY_APPLICATION(g_object_new(my_application_get_type(), + "application-id", APPLICATION_ID, "flags", + G_APPLICATION_NON_UNIQUE, nullptr)); +} diff --git a/linux/runner/my_application.h b/linux/runner/my_application.h new file mode 100644 index 0000000..db16367 --- /dev/null +++ b/linux/runner/my_application.h @@ -0,0 +1,21 @@ +#ifndef FLUTTER_MY_APPLICATION_H_ +#define FLUTTER_MY_APPLICATION_H_ + +#include + +G_DECLARE_FINAL_TYPE(MyApplication, + my_application, + MY, + APPLICATION, + GtkApplication) + +/** + * my_application_new: + * + * Creates a new Flutter-based application. + * + * Returns: a new #MyApplication. + */ +MyApplication* my_application_new(); + +#endif // FLUTTER_MY_APPLICATION_H_ diff --git a/macos/.gitignore b/macos/.gitignore new file mode 100644 index 0000000..746adbb --- /dev/null +++ b/macos/.gitignore @@ -0,0 +1,7 @@ +# Flutter-related +**/Flutter/ephemeral/ +**/Pods/ + +# Xcode-related +**/dgph +**/xcuserdata/ diff --git a/macos/Flutter/Flutter-Debug.xcconfig b/macos/Flutter/Flutter-Debug.xcconfig new file mode 100644 index 0000000..c2efd0b --- /dev/null +++ b/macos/Flutter/Flutter-Debug.xcconfig @@ -0,0 +1 @@ +#include "ephemeral/Flutter-Generated.xcconfig" diff --git a/macos/Flutter/Flutter-Release.xcconfig b/macos/Flutter/Flutter-Release.xcconfig new file mode 100644 index 0000000..c2efd0b --- /dev/null +++ b/macos/Flutter/Flutter-Release.xcconfig @@ -0,0 +1 @@ +#include "ephemeral/Flutter-Generated.xcconfig" diff --git a/macos/Flutter/GeneratedPluginRegistrant.swift b/macos/Flutter/GeneratedPluginRegistrant.swift new file mode 100644 index 0000000..00024d5 --- /dev/null +++ b/macos/Flutter/GeneratedPluginRegistrant.swift @@ -0,0 +1,26 @@ +// +// Generated file. Do not edit. +// + +import FlutterMacOS +import Foundation + +import app_links +import file_picker +import file_selector_macos +import firebase_core +import firebase_messaging +import share_plus +import shared_preferences_foundation +import url_launcher_macos + +func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { + AppLinksMacosPlugin.register(with: registry.registrar(forPlugin: "AppLinksMacosPlugin")) + FilePickerPlugin.register(with: registry.registrar(forPlugin: "FilePickerPlugin")) + FileSelectorPlugin.register(with: registry.registrar(forPlugin: "FileSelectorPlugin")) + FLTFirebaseCorePlugin.register(with: registry.registrar(forPlugin: "FLTFirebaseCorePlugin")) + FLTFirebaseMessagingPlugin.register(with: registry.registrar(forPlugin: "FLTFirebaseMessagingPlugin")) + SharePlusMacosPlugin.register(with: registry.registrar(forPlugin: "SharePlusMacosPlugin")) + SharedPreferencesPlugin.register(with: registry.registrar(forPlugin: "SharedPreferencesPlugin")) + UrlLauncherPlugin.register(with: registry.registrar(forPlugin: "UrlLauncherPlugin")) +} diff --git a/macos/Runner.xcodeproj/project.pbxproj b/macos/Runner.xcodeproj/project.pbxproj new file mode 100644 index 0000000..fb0be7b --- /dev/null +++ b/macos/Runner.xcodeproj/project.pbxproj @@ -0,0 +1,705 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 54; + objects = { + +/* Begin PBXAggregateTarget section */ + 33CC111A2044C6BA0003C045 /* Flutter Assemble */ = { + isa = PBXAggregateTarget; + buildConfigurationList = 33CC111B2044C6BA0003C045 /* Build configuration list for PBXAggregateTarget "Flutter Assemble" */; + buildPhases = ( + 33CC111E2044C6BF0003C045 /* ShellScript */, + ); + dependencies = ( + ); + name = "Flutter Assemble"; + productName = FLX; + }; +/* End PBXAggregateTarget section */ + +/* Begin PBXBuildFile section */ + 331C80D8294CF71000263BE5 /* RunnerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 331C80D7294CF71000263BE5 /* RunnerTests.swift */; }; + 335BBD1B22A9A15E00E9071D /* GeneratedPluginRegistrant.swift in Sources */ = {isa = PBXBuildFile; fileRef = 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */; }; + 33CC10F12044A3C60003C045 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC10F02044A3C60003C045 /* AppDelegate.swift */; }; + 33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F22044A3C60003C045 /* Assets.xcassets */; }; + 33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 33CC10F42044A3C60003C045 /* MainMenu.xib */; }; + 33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 331C80D9294CF71000263BE5 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 33CC10E52044A3C60003C045 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 33CC10EC2044A3C60003C045; + remoteInfo = Runner; + }; + 33CC111F2044C79F0003C045 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 33CC10E52044A3C60003C045 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 33CC111A2044C6BA0003C045; + remoteInfo = FLX; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXCopyFilesBuildPhase section */ + 33CC110E2044A8840003C045 /* Bundle Framework */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + ); + name = "Bundle Framework"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 331C80D5294CF71000263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + 331C80D7294CF71000263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = ""; }; + 333000ED22D3DE5D00554162 /* Warnings.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Warnings.xcconfig; sourceTree = ""; }; + 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GeneratedPluginRegistrant.swift; sourceTree = ""; }; + 33CC10ED2044A3C60003C045 /* apk_full.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "apk_full.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + 33CC10F02044A3C60003C045 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 33CC10F22044A3C60003C045 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Assets.xcassets; path = Runner/Assets.xcassets; sourceTree = ""; }; + 33CC10F52044A3C60003C045 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/MainMenu.xib; sourceTree = ""; }; + 33CC10F72044A3C60003C045 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = Info.plist; path = Runner/Info.plist; sourceTree = ""; }; + 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainFlutterWindow.swift; sourceTree = ""; }; + 33CEB47222A05771004F2AC0 /* Flutter-Debug.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Flutter-Debug.xcconfig"; sourceTree = ""; }; + 33CEB47422A05771004F2AC0 /* Flutter-Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "Flutter-Release.xcconfig"; sourceTree = ""; }; + 33CEB47722A0578A004F2AC0 /* Flutter-Generated.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = "Flutter-Generated.xcconfig"; path = "ephemeral/Flutter-Generated.xcconfig"; sourceTree = ""; }; + 33E51913231747F40026EE4D /* DebugProfile.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = DebugProfile.entitlements; sourceTree = ""; }; + 33E51914231749380026EE4D /* Release.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.entitlements; path = Release.entitlements; sourceTree = ""; }; + 33E5194F232828860026EE4D /* AppInfo.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = AppInfo.xcconfig; sourceTree = ""; }; + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Release.xcconfig; sourceTree = ""; }; + 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Debug.xcconfig; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 331C80D2294CF70F00263BE5 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 33CC10EA2044A3C60003C045 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 331C80D6294CF71000263BE5 /* RunnerTests */ = { + isa = PBXGroup; + children = ( + 331C80D7294CF71000263BE5 /* RunnerTests.swift */, + ); + path = RunnerTests; + sourceTree = ""; + }; + 33BA886A226E78AF003329D5 /* Configs */ = { + isa = PBXGroup; + children = ( + 33E5194F232828860026EE4D /* AppInfo.xcconfig */, + 9740EEB21CF90195004384FC /* Debug.xcconfig */, + 7AFA3C8E1D35360C0083082E /* Release.xcconfig */, + 333000ED22D3DE5D00554162 /* Warnings.xcconfig */, + ); + path = Configs; + sourceTree = ""; + }; + 33CC10E42044A3C60003C045 = { + isa = PBXGroup; + children = ( + 33FAB671232836740065AC1E /* Runner */, + 33CEB47122A05771004F2AC0 /* Flutter */, + 331C80D6294CF71000263BE5 /* RunnerTests */, + 33CC10EE2044A3C60003C045 /* Products */, + D73912EC22F37F3D000D13A0 /* Frameworks */, + ); + sourceTree = ""; + }; + 33CC10EE2044A3C60003C045 /* Products */ = { + isa = PBXGroup; + children = ( + 33CC10ED2044A3C60003C045 /* apk_full.app */, + 331C80D5294CF71000263BE5 /* RunnerTests.xctest */, + ); + name = Products; + sourceTree = ""; + }; + 33CC11242044D66E0003C045 /* Resources */ = { + isa = PBXGroup; + children = ( + 33CC10F22044A3C60003C045 /* Assets.xcassets */, + 33CC10F42044A3C60003C045 /* MainMenu.xib */, + 33CC10F72044A3C60003C045 /* Info.plist */, + ); + name = Resources; + path = ..; + sourceTree = ""; + }; + 33CEB47122A05771004F2AC0 /* Flutter */ = { + isa = PBXGroup; + children = ( + 335BBD1A22A9A15E00E9071D /* GeneratedPluginRegistrant.swift */, + 33CEB47222A05771004F2AC0 /* Flutter-Debug.xcconfig */, + 33CEB47422A05771004F2AC0 /* Flutter-Release.xcconfig */, + 33CEB47722A0578A004F2AC0 /* Flutter-Generated.xcconfig */, + ); + path = Flutter; + sourceTree = ""; + }; + 33FAB671232836740065AC1E /* Runner */ = { + isa = PBXGroup; + children = ( + 33CC10F02044A3C60003C045 /* AppDelegate.swift */, + 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */, + 33E51913231747F40026EE4D /* DebugProfile.entitlements */, + 33E51914231749380026EE4D /* Release.entitlements */, + 33CC11242044D66E0003C045 /* Resources */, + 33BA886A226E78AF003329D5 /* Configs */, + ); + path = Runner; + sourceTree = ""; + }; + D73912EC22F37F3D000D13A0 /* Frameworks */ = { + isa = PBXGroup; + children = ( + ); + name = Frameworks; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 331C80D4294CF70F00263BE5 /* RunnerTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 331C80DE294CF71000263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */; + buildPhases = ( + 331C80D1294CF70F00263BE5 /* Sources */, + 331C80D2294CF70F00263BE5 /* Frameworks */, + 331C80D3294CF70F00263BE5 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + 331C80DA294CF71000263BE5 /* PBXTargetDependency */, + ); + name = RunnerTests; + productName = RunnerTests; + productReference = 331C80D5294CF71000263BE5 /* RunnerTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; + 33CC10EC2044A3C60003C045 /* Runner */ = { + isa = PBXNativeTarget; + buildConfigurationList = 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */; + buildPhases = ( + 33CC10E92044A3C60003C045 /* Sources */, + 33CC10EA2044A3C60003C045 /* Frameworks */, + 33CC10EB2044A3C60003C045 /* Resources */, + 33CC110E2044A8840003C045 /* Bundle Framework */, + 3399D490228B24CF009A79C7 /* ShellScript */, + ); + buildRules = ( + ); + dependencies = ( + 33CC11202044C79F0003C045 /* PBXTargetDependency */, + ); + name = Runner; + productName = Runner; + productReference = 33CC10ED2044A3C60003C045 /* apk_full.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 33CC10E52044A3C60003C045 /* Project object */ = { + isa = PBXProject; + attributes = { + BuildIndependentTargetsInParallel = YES; + LastSwiftUpdateCheck = 0920; + LastUpgradeCheck = 1510; + ORGANIZATIONNAME = ""; + TargetAttributes = { + 331C80D4294CF70F00263BE5 = { + CreatedOnToolsVersion = 14.0; + TestTargetID = 33CC10EC2044A3C60003C045; + }; + 33CC10EC2044A3C60003C045 = { + CreatedOnToolsVersion = 9.2; + LastSwiftMigration = 1100; + ProvisioningStyle = Automatic; + SystemCapabilities = { + com.apple.Sandbox = { + enabled = 1; + }; + }; + }; + 33CC111A2044C6BA0003C045 = { + CreatedOnToolsVersion = 9.2; + ProvisioningStyle = Manual; + }; + }; + }; + buildConfigurationList = 33CC10E82044A3C60003C045 /* Build configuration list for PBXProject "Runner" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 33CC10E42044A3C60003C045; + productRefGroup = 33CC10EE2044A3C60003C045 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 33CC10EC2044A3C60003C045 /* Runner */, + 331C80D4294CF70F00263BE5 /* RunnerTests */, + 33CC111A2044C6BA0003C045 /* Flutter Assemble */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 331C80D3294CF70F00263BE5 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 33CC10EB2044A3C60003C045 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 33CC10F32044A3C60003C045 /* Assets.xcassets in Resources */, + 33CC10F62044A3C60003C045 /* MainMenu.xib in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 3399D490228B24CF009A79C7 /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + ); + outputFileListPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "echo \"$PRODUCT_NAME.app\" > \"$PROJECT_DIR\"/Flutter/ephemeral/.app_filename && \"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh embed\n"; + }; + 33CC111E2044C6BF0003C045 /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + Flutter/ephemeral/FlutterInputs.xcfilelist, + ); + inputPaths = ( + Flutter/ephemeral/tripwire, + ); + outputFileListPaths = ( + Flutter/ephemeral/FlutterOutputs.xcfilelist, + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"$FLUTTER_ROOT\"/packages/flutter_tools/bin/macos_assemble.sh && touch Flutter/ephemeral/tripwire"; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 331C80D1294CF70F00263BE5 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 331C80D8294CF71000263BE5 /* RunnerTests.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 33CC10E92044A3C60003C045 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */, + 33CC10F12044A3C60003C045 /* AppDelegate.swift in Sources */, + 335BBD1B22A9A15E00E9071D /* GeneratedPluginRegistrant.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 331C80DA294CF71000263BE5 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 33CC10EC2044A3C60003C045 /* Runner */; + targetProxy = 331C80D9294CF71000263BE5 /* PBXContainerItemProxy */; + }; + 33CC11202044C79F0003C045 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 33CC111A2044C6BA0003C045 /* Flutter Assemble */; + targetProxy = 33CC111F2044C79F0003C045 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin PBXVariantGroup section */ + 33CC10F42044A3C60003C045 /* MainMenu.xib */ = { + isa = PBXVariantGroup; + children = ( + 33CC10F52044A3C60003C045 /* Base */, + ); + name = MainMenu.xib; + path = Runner; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 331C80DB294CF71000263BE5 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.example.apkFull.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/apk_full.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/apk_full"; + }; + name = Debug; + }; + 331C80DC294CF71000263BE5 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.example.apkFull.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/apk_full.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/apk_full"; + }; + name = Release; + }; + 331C80DD294CF71000263BE5 /* Profile */ = { + isa = XCBuildConfiguration; + buildSettings = { + BUNDLE_LOADER = "$(TEST_HOST)"; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.example.apkFull.RunnerTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/apk_full.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/apk_full"; + }; + name = Profile; + }; + 338D0CE9231458BD00FA5F75 /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CODE_SIGN_IDENTITY = "-"; + COPY_PHASE_STRIP = NO; + DEAD_CODE_STRIPPING = YES; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.15; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = macosx; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + }; + name = Profile; + }; + 338D0CEA231458BD00FA5F75 /* Profile */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + ); + PROVISIONING_PROFILE_SPECIFIER = ""; + SWIFT_VERSION = 5.0; + }; + name = Profile; + }; + 338D0CEB231458BD00FA5F75 /* Profile */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Manual; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Profile; + }; + 33CC10F92044A3C60003C045 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CODE_SIGN_IDENTITY = "-"; + COPY_PHASE_STRIP = NO; + DEAD_CODE_STRIPPING = YES; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.15; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = macosx; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + }; + name = Debug; + }; + 33CC10FA2044A3C60003C045 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CODE_SIGN_IDENTITY = "-"; + COPY_PHASE_STRIP = NO; + DEAD_CODE_STRIPPING = YES; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_USER_SCRIPT_SANDBOXING = NO; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.15; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = macosx; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + }; + name = Release; + }; + 33CC10FC2044A3C60003C045 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_ENTITLEMENTS = Runner/DebugProfile.entitlements; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + ); + PROVISIONING_PROFILE_SPECIFIER = ""; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + }; + name = Debug; + }; + 33CC10FD2044A3C60003C045 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 33E5194F232828860026EE4D /* AppInfo.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_ENTITLEMENTS = Runner/Release.entitlements; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + INFOPLIST_FILE = Runner/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + ); + PROVISIONING_PROFILE_SPECIFIER = ""; + SWIFT_VERSION = 5.0; + }; + name = Release; + }; + 33CC111C2044C6BA0003C045 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Manual; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Debug; + }; + 33CC111D2044C6BA0003C045 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Automatic; + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 331C80DE294CF71000263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 331C80DB294CF71000263BE5 /* Debug */, + 331C80DC294CF71000263BE5 /* Release */, + 331C80DD294CF71000263BE5 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 33CC10E82044A3C60003C045 /* Build configuration list for PBXProject "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 33CC10F92044A3C60003C045 /* Debug */, + 33CC10FA2044A3C60003C045 /* Release */, + 338D0CE9231458BD00FA5F75 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 33CC10FB2044A3C60003C045 /* Build configuration list for PBXNativeTarget "Runner" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 33CC10FC2044A3C60003C045 /* Debug */, + 33CC10FD2044A3C60003C045 /* Release */, + 338D0CEA231458BD00FA5F75 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 33CC111B2044C6BA0003C045 /* Build configuration list for PBXAggregateTarget "Flutter Assemble" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 33CC111C2044C6BA0003C045 /* Debug */, + 33CC111D2044C6BA0003C045 /* Release */, + 338D0CEB231458BD00FA5F75 /* Profile */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 33CC10E52044A3C60003C045 /* Project object */; +} diff --git a/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme new file mode 100644 index 0000000..a6311c5 --- /dev/null +++ b/macos/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -0,0 +1,99 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/macos/Runner.xcworkspace/contents.xcworkspacedata b/macos/Runner.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..1d526a1 --- /dev/null +++ b/macos/Runner.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/macos/Runner/AppDelegate.swift b/macos/Runner/AppDelegate.swift new file mode 100644 index 0000000..b3c1761 --- /dev/null +++ b/macos/Runner/AppDelegate.swift @@ -0,0 +1,13 @@ +import Cocoa +import FlutterMacOS + +@main +class AppDelegate: FlutterAppDelegate { + override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool { + return true + } + + override func applicationSupportsSecureRestorableState(_ app: NSApplication) -> Bool { + return true + } +} diff --git a/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..a2ec33f --- /dev/null +++ b/macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,68 @@ +{ + "images" : [ + { + "size" : "16x16", + "idiom" : "mac", + "filename" : "app_icon_16.png", + "scale" : "1x" + }, + { + "size" : "16x16", + "idiom" : "mac", + "filename" : "app_icon_32.png", + "scale" : "2x" + }, + { + "size" : "32x32", + "idiom" : "mac", + "filename" : "app_icon_32.png", + "scale" : "1x" + }, + { + "size" : "32x32", + "idiom" : "mac", + "filename" : "app_icon_64.png", + "scale" : "2x" + }, + { + "size" : "128x128", + "idiom" : "mac", + "filename" : "app_icon_128.png", + "scale" : "1x" + }, + { + "size" : "128x128", + "idiom" : "mac", + "filename" : "app_icon_256.png", + "scale" : "2x" + }, + { + "size" : "256x256", + "idiom" : "mac", + "filename" : "app_icon_256.png", + "scale" : "1x" + }, + { + "size" : "256x256", + "idiom" : "mac", + "filename" : "app_icon_512.png", + "scale" : "2x" + }, + { + "size" : "512x512", + "idiom" : "mac", + "filename" : "app_icon_512.png", + "scale" : "1x" + }, + { + "size" : "512x512", + "idiom" : "mac", + "filename" : "app_icon_1024.png", + "scale" : "2x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} diff --git a/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png b/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png new file mode 100644 index 0000000000000000000000000000000000000000..82b6f9d9a33e198f5747104729e1fcef999772a5 GIT binary patch literal 102994 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ⅅ8MglG&ER{i5lN315cO?EdHNLrg? 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 z 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 Pe7HEdAEg|=c=LY&YVNkY literal 0 HcmV?d00001 diff --git a/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png b/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png new file mode 100644 index 0000000000000000000000000000000000000000..13b35eba55c6dabc3aac36f33d859266c18fa0d0 GIT binary patch literal 5680 zcmaiYXH?Tqu=Xz`p-L#B_gI#0we$cm_HcmYFP$?wjD#BaCN4mzC5#`>w9y6=ThxrYZc0WPXprg zYjB`UsV}0=eUtY$(P6YW}npdd;%9pi?zS3k-nqCob zSX_AQEf|=wYT3r?f!*Yt)ar^;l3Sro{z(7deUBPd2~(SzZ-s@0r&~Km2S?8r##9-< z)2UOSVaHqq6}%sA9Ww;V2LG=PnNAh6mA2iWOuV7T_lRDR z&N8-eN=U)-T|;wo^Wv=34wtV0g}sAAe}`Ph@~!|<;z7*K8(qkX0}o=!(+N*UWrkEja*$_H6mhK1u{P!AC39} z|3+Z(mAOq#XRYS)TLoHv<)d%$$I@+x+2)V{@o~~J-!YUI-Q9%!Ldi4Op&Lw&B>jj* zwAgC#Y>gbIqv!d|J5f!$dbCXoq(l3GR(S>(rtZ~Z*agXMMKN!@mWT_vmCbSd3dUUm z4M&+gz?@^#RRGal%G3dDvj7C5QTb@9+!MG+>0dcjtZEB45c+qx*c?)d<%htn1o!#1 zpIGonh>P1LHu3s)fGFF-qS}AXjW|M*2Xjkh7(~r(lN=o#mBD9?jt74=Rz85I4Nfx_ z7Z)q?!};>IUjMNM6ee2Thq7))a>My?iWFxQ&}WvsFP5LP+iGz+QiYek+K1`bZiTV- zHHYng?ct@Uw5!gquJ(tEv1wTrRR7cemI>aSzLI^$PxW`wL_zt@RSfZ1M3c2sbebM* ze0=;sy^!90gL~YKISz*x;*^~hcCoO&CRD)zjT(A2b_uRue=QXFe5|!cf0z1m!iwv5GUnLw9Dr*Ux z)3Lc!J@Ei;&&yxGpf2kn@2wJ2?t6~obUg;?tBiD#uo$SkFIasu+^~h33W~`r82rSa ztyE;ehFjC2hjpJ-e__EH&z?!~>UBb=&%DS>NT)1O3Isn-!SElBV2!~m6v0$vx^a<@ISutdTk1@?;i z<8w#b-%|a#?e5(n@7>M|v<<0Kpg?BiHYMRe!3Z{wYc2hN{2`6(;q`9BtXIhVq6t~KMH~J0~XtUuT06hL8c1BYZWhN zk4F2I;|za*R{ToHH2L?MfRAm5(i1Ijw;f+0&J}pZ=A0;A4M`|10ZskA!a4VibFKn^ zdVH4OlsFV{R}vFlD~aA4xxSCTTMW@Gws4bFWI@xume%smAnuJ0b91QIF?ZV!%VSRJ zO7FmG!swKO{xuH{DYZ^##gGrXsUwYfD0dxXX3>QmD&`mSi;k)YvEQX?UyfIjQeIm! z0ME3gmQ`qRZ;{qYOWt}$-mW*>D~SPZKOgP)T-Sg%d;cw^#$>3A9I(%#vsTRQe%moT zU`geRJ16l>FV^HKX1GG7fR9AT((jaVb~E|0(c-WYQscVl(z?W!rJp`etF$dBXP|EG z=WXbcZ8mI)WBN>3<@%4eD597FD5nlZajwh8(c$lum>yP)F}=(D5g1-WVZRc)(!E3} z-6jy(x$OZOwE=~{EQS(Tp`yV2&t;KBpG*XWX!yG+>tc4aoxbXi7u@O*8WWFOxUjcq z^uV_|*818$+@_{|d~VOP{NcNi+FpJ9)aA2So<7sB%j`$Prje&auIiTBb{oD7q~3g0 z>QNIwcz(V-y{Ona?L&=JaV5`o71nIsWUMA~HOdCs10H+Irew#Kr(2cn>orG2J!jvP zqcVX0OiF}c<)+5&p}a>_Uuv)L_j}nqnJ5a?RPBNi8k$R~zpZ33AA4=xJ@Z($s3pG9 zkURJY5ZI=cZGRt_;`hs$kE@B0FrRx(6K{`i1^*TY;Vn?|IAv9|NrN*KnJqO|8$e1& zb?OgMV&q5|w7PNlHLHF) zB+AK#?EtCgCvwvZ6*u|TDhJcCO+%I^@Td8CR}+nz;OZ*4Dn?mSi97m*CXXc=};!P`B?}X`F-B5v-%ACa8fo0W++j&ztmqK z;&A)cT4ob9&MxpQU41agyMU8jFq~RzXOAsy>}hBQdFVL%aTn~M>5t9go2j$i9=(rZ zADmVj;Qntcr3NIPPTggpUxL_z#5~C!Gk2Rk^3jSiDqsbpOXf^f&|h^jT4|l2ehPat zb$<*B+x^qO8Po2+DAmrQ$Zqc`1%?gp*mDk>ERf6I|42^tjR6>}4`F_Mo^N(~Spjcg z_uY$}zui*PuDJjrpP0Pd+x^5ds3TG#f?57dFL{auS_W8|G*o}gcnsKYjS6*t8VI<) zcjqTzW(Hk*t-Qhq`Xe+x%}sxXRerScbPGv8hlJ;CnU-!Nl=# zR=iTFf9`EItr9iAlAGi}i&~nJ-&+)Y| zMZigh{LXe)uR+4D_Yb+1?I93mHQ5{pId2Fq%DBr7`?ipi;CT!Q&|EO3gH~7g?8>~l zT@%*5BbetH)~%TrAF1!-!=)`FIS{^EVA4WlXYtEy^|@y@yr!C~gX+cp2;|O4x1_Ol z4fPOE^nj(}KPQasY#U{m)}TZt1C5O}vz`A|1J!-D)bR%^+=J-yJsQXDzFiqb+PT0! zIaDWWU(AfOKlSBMS};3xBN*1F2j1-_=%o($ETm8@oR_NvtMDVIv_k zlnNBiHU&h8425{MCa=`vb2YP5KM7**!{1O>5Khzu+5OVGY;V=Vl+24fOE;tMfujoF z0M``}MNnTg3f%Uy6hZi$#g%PUA_-W>uVCYpE*1j>U8cYP6m(>KAVCmbsDf39Lqv0^ zt}V6FWjOU@AbruB7MH2XqtnwiXS2scgjVMH&aF~AIduh#^aT1>*V>-st8%=Kk*{bL zzbQcK(l2~)*A8gvfX=RPsNnjfkRZ@3DZ*ff5rmx{@iYJV+a@&++}ZW+za2fU>&(4y`6wgMpQGG5Ah(9oGcJ^P(H< zvYn5JE$2B`Z7F6ihy>_49!6}(-)oZ(zryIXt=*a$bpIw^k?>RJ2 zQYr>-D#T`2ZWDU$pM89Cl+C<;J!EzHwn(NNnWpYFqDDZ_*FZ{9KQRcSrl5T>dj+eA zi|okW;6)6LR5zebZJtZ%6Gx8^=2d9>_670!8Qm$wd+?zc4RAfV!ZZ$jV0qrv(D`db zm_T*KGCh3CJGb(*X6nXzh!h9@BZ-NO8py|wG8Qv^N*g?kouH4%QkPU~Vizh-D3<@% zGomx%q42B7B}?MVdv1DFb!axQ73AUxqr!yTyFlp%Z1IAgG49usqaEbI_RnbweR;Xs zpJq7GKL_iqi8Md?f>cR?^0CA+Uk(#mTlGdZbuC*$PrdB$+EGiW**=$A3X&^lM^K2s zzwc3LtEs5|ho z2>U(-GL`}eNgL-nv3h7E<*<>C%O^=mmmX0`jQb6$mP7jUKaY4je&dCG{x$`0=_s$+ zSpgn!8f~ya&U@c%{HyrmiW2&Wzc#Sw@+14sCpTWReYpF9EQ|7vF*g|sqG3hx67g}9 zwUj5QP2Q-(KxovRtL|-62_QsHLD4Mu&qS|iDp%!rs(~ah8FcrGb?Uv^Qub5ZT_kn%I^U2rxo1DDpmN@8uejxik`DK2~IDi1d?%~pR7i#KTS zA78XRx<(RYO0_uKnw~vBKi9zX8VnjZEi?vD?YAw}y+)wIjIVg&5(=%rjx3xQ_vGCy z*&$A+bT#9%ZjI;0w(k$|*x{I1c!ECMus|TEA#QE%#&LxfGvijl7Ih!B2 z6((F_gwkV;+oSKrtr&pX&fKo3s3`TG@ye+k3Ov)<#J|p8?vKh@<$YE@YIU1~@7{f+ zydTna#zv?)6&s=1gqH<-piG>E6XW8ZI7&b@-+Yk0Oan_CW!~Q2R{QvMm8_W1IV8<+ zQTyy=(Wf*qcQubRK)$B;QF}Y>V6d_NM#=-ydM?%EPo$Q+jkf}*UrzR?Nsf?~pzIj$ z<$wN;7c!WDZ(G_7N@YgZ``l;_eAd3+;omNjlpfn;0(B7L)^;;1SsI6Le+c^ULe;O@ zl+Z@OOAr4$a;=I~R0w4jO`*PKBp?3K+uJ+Tu8^%i<_~bU!p%so z^sjol^slR`W@jiqn!M~eClIIl+`A5%lGT{z^mRbpv}~AyO%R*jmG_Wrng{B9TwIuS z0!@fsM~!57K1l0%{yy(#no}roy#r!?0wm~HT!vLDfEBs9x#`9yCKgufm0MjVRfZ=f z4*ZRc2Lgr(P+j2zQE_JzYmP0*;trl7{*N341Cq}%^M^VC3gKG-hY zmPT>ECyrhIoFhnMB^qpdbiuI}pk{qPbK^}0?Rf7^{98+95zNq6!RuV_zAe&nDk0;f zez~oXlE5%ve^TmBEt*x_X#fs(-En$jXr-R4sb$b~`nS=iOy|OVrph(U&cVS!IhmZ~ zKIRA9X%Wp1J=vTvHZ~SDe_JXOe9*fa zgEPf;gD^|qE=dl>Qkx3(80#SE7oxXQ(n4qQ#by{uppSKoDbaq`U+fRqk0BwI>IXV3 zD#K%ASkzd7u>@|pA=)Z>rQr@dLH}*r7r0ng zxa^eME+l*s7{5TNu!+bD{Pp@2)v%g6^>yj{XP&mShhg9GszNu4ITW=XCIUp2Xro&1 zg_D=J3r)6hp$8+94?D$Yn2@Kp-3LDsci)<-H!wCeQt$e9Jk)K86hvV^*Nj-Ea*o;G zsuhRw$H{$o>8qByz1V!(yV{p_0X?Kmy%g#1oSmlHsw;FQ%j9S#}ha zm0Nx09@jmOtP8Q+onN^BAgd8QI^(y!n;-APUpo5WVdmp8!`yKTlF>cqn>ag`4;o>i zl!M0G-(S*fm6VjYy}J}0nX7nJ$h`|b&KuW4d&W5IhbR;-)*9Y0(Jj|@j`$xoPQ=Cl literal 0 HcmV?d00001 diff --git a/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png b/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png new file mode 100644 index 0000000000000000000000000000000000000000..0a3f5fa40fb3d1e0710331a48de5d256da3f275d GIT binary patch literal 520 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 literal 0 HcmV?d00001 diff --git a/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png b/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png new file mode 100644 index 0000000000000000000000000000000000000000..2f1632cfddf3d9dade342351e627a0a75609fb46 GIT binary patch literal 2218 zcmV;b2vzrqP)Px#L}ge>W=%~1DgXcg2mk?xX#fNO00031000^Q000001E2u_0{{R30RRC20H6W@ z1ONa40RR91K%fHv1ONa40RR91KmY&$07g+lumAuE6iGxuRCodHTWf3-RTMruyW6Fu zQYeUM04eX6D5c0FCjKKPrco1(K`<0SL=crI{PC3-^hZU0kQie$gh-5!7z6SH6Q0J% zqot*`H1q{R5fHFYS}dje@;kG=v$L0(yY0?wY2%*c?A&{2?!D*x?m71{of2gv!$5|C z3>qG_BW}7K_yUcT3A5C6QD<+{aq?x;MAUyAiJn#Jv8_zZtQ{P zTRzbL3U9!qVuZzS$xKU10KiW~Bgdcv1-!uAhQxf3a7q+dU6lj?yoO4Lq4TUN4}h{N z*fIM=SS8|C2$(T>w$`t@3Tka!(r!7W`x z-isCVgQD^mG-MJ;XtJuK3V{Vy72GQ83KRWsHU?e*wrhKk=ApIYeDqLi;JI1e zuvv}5^Dc=k7F7?nm3nIw$NVmU-+R>> zyqOR$-2SDpJ}Pt;^RkJytDVXNTsu|mI1`~G7yw`EJR?VkGfNdqK9^^8P`JdtTV&tX4CNcV4 z&N06nZa??Fw1AgQOUSE2AmPE@WO(Fvo`%m`cDgiv(fAeRA%3AGXUbsGw{7Q`cY;1BI#ac3iN$$Hw z0LT0;xc%=q)me?Y*$xI@GRAw?+}>=9D+KTk??-HJ4=A>`V&vKFS75@MKdSF1JTq{S zc1!^8?YA|t+uKigaq!sT;Z!&0F2=k7F0PIU;F$leJLaw2UI6FL^w}OG&!;+b%ya1c z1n+6-inU<0VM-Y_s5iTElq)ThyF?StVcebpGI znw#+zLx2@ah{$_2jn+@}(zJZ{+}_N9BM;z)0yr|gF-4=Iyu@hI*Lk=-A8f#bAzc9f z`Kd6K--x@t04swJVC3JK1cHY-Hq+=|PN-VO;?^_C#;coU6TDP7Bt`;{JTG;!+jj(` zw5cLQ-(Cz-Tlb`A^w7|R56Ce;Wmr0)$KWOUZ6ai0PhzPeHwdl0H(etP zUV`va_i0s-4#DkNM8lUlqI7>YQLf)(lz9Q3Uw`)nc(z3{m5ZE77Ul$V%m)E}3&8L0 z-XaU|eB~Is08eORPk;=<>!1w)Kf}FOVS2l&9~A+@R#koFJ$Czd%Y(ENTV&A~U(IPI z;UY+gf+&6ioZ=roly<0Yst8ck>(M=S?B-ys3mLdM&)ex!hbt+ol|T6CTS+Sc0jv(& z7ijdvFwBq;0a{%3GGwkDKTeG`b+lyj0jjS1OMkYnepCdoosNY`*zmBIo*981BU%%U z@~$z0V`OVtIbEx5pa|Tct|Lg#ZQf5OYMUMRD>Wdxm5SAqV2}3!ceE-M2 z@O~lQ0OiKQp}o9I;?uxCgYVV?FH|?Riri*U$Zi_`V2eiA>l zdSm6;SEm6#T+SpcE8Ro_f2AwxzI z44hfe^WE3!h@W3RDyA_H440cpmYkv*)6m1XazTqw%=E5Xv7^@^^T7Q2wxr+Z2kVYr + + + + + + + + + + + + + + + + + + + + + +

    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 literal 0 HcmV?d00001 diff --git a/lib/assets/fonts/Inter_28pt-Medium.ttf b/lib/assets/fonts/Inter_28pt-Medium.ttf new file mode 100644 index 0000000000000000000000000000000000000000..00120fe72868f2245fe6a483796d64ed24a64208 GIT binary patch literal 342808 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

    4ibl@Ui~a?d!<&$*Y) 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 literal 0 HcmV?d00001 diff --git a/lib/assets/fonts/Inter_18pt-Regular.ttf b/lib/assets/fonts/Inter_18pt-Regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..ce097c8256a78e54c70e401c670a7fab0a138621 GIT binary patch literal 342680 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