fix(core-wide): every edit form in the app was rendering blank — old() never returns null
السبب اللي خلّى شاشة تعديل اللاعب تبان كأنها «شاشة إضافة جديدة»:
old() في app/Core/Helpers.php مُعرّفة إنها ترجع (string) دايماً، يعني
بترجع '' مش null لما مفيش إدخال سابق. وكل الفورمات مكتوبة بالشكل ده:
old('full_name_ar') ?? $player['full_name_ar']
و ?? بيشتغل على null بس — و'' مش null — فالنتيجة دايماً '' مهما كانت
البيانات المحفوظة. يعني كل خانات كل شاشات التعديل في النظام كانت بتطلع
فاضية، والمستخدم يفتكرها شاشة إضافة.
اتصلّح 345 موضع في 37 ملف بتحويل ?? إلى ?: في نداءات old() تحديداً،
فالقيمة المحفوظة بتظهر لما ما يكونش فيه إدخال سابق.
ده بيمس: HR (كل الفورمات)، SportsActivity، TrainingGroups، Coaches،
PlayerAffairs، Tournaments، PoolManagement، Achievements، Waiver،
Installments.
كمان فورمات بتبعت على routes مش موجودة (الحفظ كان بيدي 404 من غير ما
الشاشة تشتكي):
- /hr/overtime/store -> الصح /hr/overtime
- /hr/shifts/assign -> الصح /hr/shifts/assignments
وحذف MirrorDisplayController وشاشتينه — مفيش أي route بيوصّلهم من ساعة
ما الميرور اتنقل لموديول FacilityGrids.
أدوات جديدة عشان النوع ده من الأعطال ما يوصلش للمستخدم تاني:
- tools/form_action_check.py: بيتأكد إن كل فورم POST بيبعت على route
موجود فعلاً (692 route اتفحصوا). الفحص ده كان هيمسك بَجّي الـ /update.
- tools/ui_verify.js: فحص بالمتصفح بيدوس الأزرار زي المستخدم بالظبط
ويفشل على أي استثناء في الصفحة — مش مجرد طلب GET على الـ route.
Showing
tools/form_action_check.py
0 → 100644
tools/ui_verify.js
0 → 100644
Please register or sign in to comment