From c7366417c4755b0574f2fd1ffa25106e9953f91e Mon Sep 17 00:00:00 2001 From: Flatlogic Bot Date: Thu, 16 Apr 2026 06:26:16 +0000 Subject: [PATCH] splitting pages --- application_detail.php | 41 ++++++-- applications.php | 50 +++++++-- assets/css/custom.css | 179 ++++++++++++++++++++++++++++++++ center_application.php | 224 +++++++++++++++++++++++++---------------- 4 files changed, 396 insertions(+), 98 deletions(-) diff --git a/application_detail.php b/application_detail.php index dab87de..b7631c1 100644 --- a/application_detail.php +++ b/application_detail.php @@ -51,22 +51,43 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') { $application = get_application($applicationId); $statusMeta = status_meta((string) $application['status']); +$scoreValue = $application['evaluation_score'] !== null ? max(0, min(100, (int) $application['evaluation_score'])) : null; render_page_start('تفاصيل الطلب #' . $applicationId, 'applications', 'عرض تفصيلي لطلب فتح المركز مع نموذج المراجعة للمشرف العام.'); render_flash($flash); ?>
+
+
+
+ ملف مستقل للمراجعة +

+

مرجع الطلب # — مقدم الطلب من .

+
+ تاريخ الإرسال: + آخر تحديث: +
+
+
+
+
الحالة الحالية
+
+
هذا الملف مخصص لاتخاذ القرار وتوثيق الملاحظات بدلاً من خلطه مع قائمة الطلبات.
+
+
+
+
+
-
مرجع الطلب #
-
-
مقدم الطلب:
+
بيانات المركز
+
عرض منظم لجميع البيانات المرسلة من صاحب الطلب في بطاقة واحدة.
- + العودة إلى القائمة
@@ -93,7 +114,7 @@ render_flash($flash);
الحالة الحالية:
-
آخر تحديث بتاريخ .
+
آخر تحديث موثق بتاريخ .
ملاحظات المشرف العام
@@ -106,15 +127,21 @@ render_flash($flash);
- +
diff --git a/applications.php b/applications.php index fbc7e35..af59287 100644 --- a/applications.php +++ b/applications.php @@ -7,24 +7,51 @@ $statusFilter = clean_text((string) ($_GET['status'] ?? 'all'), 50); $applications = list_applications($statusFilter); $stats = dashboard_metrics(); $statusTabs = ['all' => 'الكل'] + array_map(fn ($meta) => $meta['label'], status_map()); +$currentCount = count($applications); +$reviewBacklog = $stats['submitted'] + $stats['under_review']; +$approvalRate = $stats['all'] > 0 ? (int) round(($stats['approved'] / $stats['all']) * 100) : 0; render_page_start('لوحة الطلبات', 'applications', 'قائمة موحدة لطلبات فتح المراكز الصيفية مع فلترة حسب حالة المراجعة.'); render_flash($flash); ?>
+
+
+
+ صفحة مستقلة للمراجعة +

لوحة طلبات فتح المراكز

+

تم تخصيص هذه الصفحة بالكامل لمتابعة الطلبات: مؤشرات سريعة، فلاتر واضحة، وجدول مراجعة عملي يقود مباشرة إلى صفحة التفاصيل واتخاذ القرار.

+
+
+
+
الحمل التشغيلي الحالي
+
+
طلبات تحتاج عملاً من المشرف العام الآن، مع نسبة اعتماد إجمالية تبلغ ٪.
+
+
+
+
+ +
+
إجمالي الطلبات
جميع الطلبات في قاعدة البيانات.
+
بانتظار الاستلام
طلبات جديدة لم يبدأ تقييمها بعد.
+
تحت المراجعة
ملفات قيد التحقق والملاحظات.
+
معتمد
مراكز جاهزة للانتقال لمرحلة التشغيل.
+
+
-
لوحة طلبات فتح المراكز
-
واجهة المشرف العام لمراجعة جميع الطلبات، فرزها بالحالة، ثم الانتقال إلى التفاصيل لاتخاذ القرار.
+
أدوات الفرز والمتابعة
+
اختر حالة محددة للتركيز على شريحة واحدة من الطلبات، أو ارجع إلى الكل لمراجعة الصورة العامة.
-
+ +
+
الفلتر الحالي:
+
عدد السجلات المعروضة:
+
لا توجد طلبات ضمن هذا التصنيف.
-

ابدأ بإنشاء أول طلب فتح مركز ليظهر هنا فوراً.

- إنشاء طلب +

يمكنك إنشاء طلب جديد أو العودة إلى جميع الطلبات لاستكمال المراجعة.

+
@@ -51,10 +85,11 @@ render_flash($flash); المرجع المركز المدينة - المدير + المسؤول الفترة الحالة التقييم + إجراء @@ -76,6 +111,7 @@ render_flash($flash); + فتح الملف diff --git a/assets/css/custom.css b/assets/css/custom.css index 8261a74..3a0af88 100644 --- a/assets/css/custom.css +++ b/assets/css/custom.css @@ -569,3 +569,182 @@ textarea.form-control { .link-card p { margin: 0; } + +.page-banner { + padding: 1.5rem 1.7rem; + border: 1px solid var(--border); + border-radius: var(--radius-lg); + background: linear-gradient(135deg, #ffffff 0%, #f7fafc 60%, #eef6f5 100%); + box-shadow: var(--shadow); +} + +.page-title { + font-size: clamp(1.8rem, 2.5vw, 2.6rem); + line-height: 1.35; + font-weight: 700; + margin: 0; +} + +.page-copy { + color: var(--muted); + max-width: 60ch; + font-size: 1rem; +} + +.page-banner-panel, +.stat-tile, +.form-section-block { + border: 1px solid var(--border); + border-radius: var(--radius-md); + background: rgba(255, 255, 255, 0.88); +} + +.page-banner-panel, +.stat-tile { + padding: 1.15rem; +} + +.mini-stat-label { + color: var(--muted); + font-size: 0.82rem; + font-weight: 600; +} + +.mini-stat-value { + font-size: clamp(1.7rem, 2.2vw, 2.3rem); + font-weight: 700; + color: var(--primary); + margin-top: 0.35rem; +} + +.mini-stat-copy { + color: var(--muted); + margin-top: 0.45rem; + line-height: 1.75; +} + +.form-section-block { + padding: 1.1rem; + background: var(--surface-muted); +} + +.form-section-heading { + display: flex; + align-items: flex-start; + justify-content: space-between; + gap: 1rem; + margin-bottom: 1rem; +} + +.form-section-title { + font-size: 1rem; + font-weight: 700; + margin: 0 0 0.2rem; +} + +.form-section-copy, +.table-toolbar-copy, +.process-item small, +.quick-link-item span { + color: var(--muted); +} + +.form-section-copy { + margin: 0; +} + +.process-list, +.quick-link-stack { + display: grid; + gap: 0.85rem; +} + +.process-item, +.quick-link-item { + display: flex; + align-items: flex-start; + gap: 0.85rem; + padding: 0.9rem 0.95rem; + border: 1px solid var(--border); + border-radius: var(--radius-md); + background: var(--surface-muted); +} + +.process-item span { + width: 2rem; + height: 2rem; + flex: 0 0 2rem; + display: inline-flex; + align-items: center; + justify-content: center; + border-radius: 999px; + background: #e6f6f4; + color: var(--accent); + font-weight: 700; +} + +.process-item.active span { + background: var(--accent); + color: #fff; +} + +.process-item strong, +.quick-link-item strong { + display: block; + margin-bottom: 0.15rem; +} + +.quick-link-item { + text-decoration: none; + color: inherit; + transition: transform 0.18s ease, border-color 0.18s ease, background-color 0.18s ease; +} + +.quick-link-item:hover { + transform: translateY(-1px); + border-color: var(--border-strong); + background: #fff; +} + +.table-toolbar { + display: flex; + flex-wrap: wrap; + align-items: center; + justify-content: space-between; + gap: 0.75rem; + padding-top: 0.95rem; + border-top: 1px solid #e9edf3; +} + +.score-bar { + width: 100%; + height: 0.65rem; + background: #e8edf3; + border-radius: 999px; + overflow: hidden; +} + +.score-bar span { + display: block; + height: 100%; + border-radius: inherit; + background: linear-gradient(90deg, #0f766e 0%, #14b8a6 100%); +} + +.status-panel .status-badge { + font-size: 0.86rem; + padding-inline: 0.85rem; + padding-block: 0.45rem; +} + +@media (max-width: 991.98px) { + .page-banner { + padding: 1.1rem; + } + + .form-section-block, + .stat-tile, + .page-banner-panel { + padding: 1rem; + } +} diff --git a/center_application.php b/center_application.php index 8631a6d..6d3ea43 100644 --- a/center_application.php +++ b/center_application.php @@ -5,6 +5,7 @@ require_once __DIR__ . '/includes/app.php'; $flash = consume_flash(); $values = application_defaults(); $errors = []; +$stats = dashboard_metrics(); if ($_SERVER['REQUEST_METHOD'] === 'POST') { [$values, $errors] = validate_application_input($_POST); @@ -26,15 +27,32 @@ render_flash($flash); ?>
+
+
+
+ صفحة مستقلة للتقديم +

طلب فتح مركز صيفي

+

هذه الصفحة مخصصة بالكامل لبيانات طلب المركز: تعريف الجهة، المسؤول المباشر، الطاقة التشغيلية، وملاحظات التنفيذ قبل انتقال الملف إلى لوحة المراجعة.

+
+
+
+
حالة سير الطلبات الحالية
+
+
إجمالي الطلبات المسجلة داخل النظام حتى الآن، منها بانتظار الاستلام و تحت المراجعة.
+
+
+
+
+
-
تقديم طلب فتح مركز صيفي
-
املأ الحقول التالية ليظهر الطلب مباشرة في لوحة المشرف العام ويبدأ مسار المراجعة.
+
بيانات الطلب الأساسية
+
قسّمنا النموذج إلى مجموعات واضحة حتى لا تختلط بيانات المركز مع بيانات التشغيل والتواصل.
- نموذج أولي + نموذج منظم
@@ -42,104 +60,142 @@ render_flash($flash);
-
-
- - -
-
-
- - -
+
+
+
+

تعريف المركز

+

معلومات الهوية الرسمية للمركز ومكان تشغيله والفئة التي سيخدمها.

+
+
+
+ + +
+
+
+ + +
+
-
- - -
-
-
- - -
-
- -
- - -
-
-
- - -
-
-
- - -
-
- -
- - -
-
-
- - -
-
-
- - -
-
- -
- - +
+ + +
+
+
+ + +
+
-
+
+
+
+

بيانات المسؤول والتواصل

+

تُستخدم هذه البيانات للتواصل السريع أثناء التحقق واستكمال الملاحظات.

+
+
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+
+
+ +
+
+
+

التشغيل والجدول الزمني

+

قدّم تقديراً للطاقة الاستيعابية والفترة الزمنية واحتياجات التنفيذ المباشرة.

+
+
+
+
+ + +
+
+
+ + +
+
+
+ + +
+
+ +
+ + +
+
+
+ +
+
-