# ✅ اختبار الروابط - نظام مقايسة مشاريع IoT ## خريطة الروابط الكاملة ### 1. الصفحة الرئيسية (index.php) #### الروابط الصادرة: - ✅ `add.php` - إضافة مشروع جديد - ✅ `templates/devices.php` - قوالب الأجهزة - ✅ `templates/rooms.php` - قوالب الغرف - ✅ `view.php?id={id}` - عرض مشروع - ✅ `edit.php?id={id}` - تعديل مشروع - ✅ `rooms.php?project_id={id}` - إدارة الغرف - ✅ `print.php?id={id}` - طباعة المقايسة - ✅ `delete.php` (API) - حذف مشروع #### الروابط الواردة: - من: `add.php` (زر إلغاء) - من: `edit.php` (زر العودة) - من: `view.php` (زر العودة) - من: `rooms.php` (زر العودة) - من: `templates/devices.php` (زر العودة) - من: `templates/rooms.php` (زر العودة) --- ### 2. إضافة مشروع (add.php) #### الروابط الصادرة: - ✅ `index.php` - العودة للقائمة (زر العودة) - ✅ `index.php` - إلغاء - ✅ `rooms.php?project_id={id}&new=1` - بعد الحفظ (تلقائي) #### الروابط الواردة: - من: `index.php` (زر مشروع جديد) --- ### 3. تعديل مشروع (edit.php) #### الروابط الصادرة: - ✅ `view.php?id={id}` - عرض المشروع - ✅ `index.php` - العودة - ✅ `view.php?id={id}` - إلغاء - ✅ `rooms.php?project_id={id}` - إدارة الغرف #### الروابط الواردة: - من: `index.php` (أيقونة تعديل) - من: `view.php` (زر تعديل) --- ### 4. عرض مشروع (view.php) #### الروابط الصادرة: - ✅ `print.php?id={id}` - طباعة المقايسة - ✅ `edit.php?id={id}` - تعديل - ✅ `index.php` - العودة - ✅ `rooms.php?project_id={id}` - إضافة غرف (إذا لا توجد غرف) - ✅ `devices.php?room_id={id}` - إضافة أجهزة (لكل غرفة) #### الروابط الواردة: - من: `index.php` (أيقونة عرض) - من: `edit.php` (زر عرض المشروع) - من: `rooms.php` (زر إنهاء وعرض المشروع) - من: `devices.php` (زر إنهاء وعرض المشروع) --- ### 5. إدارة الغرف (rooms.php) #### الروابط الصادرة: - ✅ `view.php?id={project_id}` - عرض المشروع - ✅ `index.php` - العودة - ✅ `devices.php?room_id={id}` - إدارة الأجهزة (لكل غرفة) - ✅ `api/add-room.php` (API) - إضافة غرفة - ✅ `api/delete-room.php` (API) - حذف غرفة #### الروابط الواردة: - من: `add.php` (بعد إنشاء مشروع) - من: `index.php` (أيقونة الغرف) - من: `edit.php` (زر إدارة الغرف) - من: `view.php` (إذا لا توجد غرف) - من: `devices.php` (زر إضافة غرفة أخرى) --- ### 6. إدارة الأجهزة (devices.php) #### الروابط الصادرة: - ✅ `rooms.php?project_id={id}` - العودة للغرف - ✅ `view.php?id={project_id}` - عرض المشروع - ✅ `view.php?id={project_id}` - إنهاء وعرض المشروع - ✅ `rooms.php?project_id={id}` - إضافة غرفة أخرى - ✅ `api/add-device.php` (API) - إضافة جهاز - ✅ `api/delete-device.php` (API) - حذف جهاز #### الروابط الواردة: - من: `rooms.php` (أيقونة إدارة الأجهزة) - من: `view.php` (رابط إضافة أجهزة) --- ### 7. طباعة المقايسة (print.php) #### الروابط الصادرة: - لا يوجد (صفحة طباعة فقط) #### الروابط الواردة: - من: `index.php` (أيقونة طباعة) - من: `view.php` (زر طباعة المقايسة) --- ### 8. قوالب الأجهزة (templates/devices.php) #### الروابط الصادرة: - ✅ `../index.php` - العودة - ✅ `devices.php` - إعادة تعيين (نفس الصفحة) #### الروابط الواردة: - من: `index.php` (زر قوالب الأجهزة) --- ### 9. قوالب الغرف (templates/rooms.php) #### الروابط الصادرة: - ✅ `../index.php` - العودة #### الروابط الواردة: - من: `index.php` (زر قوالب الغرف) --- ## API Endpoints ### 1. إضافة غرفة (api/add-room.php) - **الاستدعاء من:** `rooms.php` (نموذج إضافة غرفة) - **الطريقة:** POST - **المعاملات:** project_id, room_name, room_type, area_sqm, floor_number, notes - **الاستجابة:** JSON ### 2. حذف غرفة (api/delete-room.php) - **الاستدعاء من:** `rooms.php` (زر حذف) - **الطريقة:** POST (JSON) - **المعاملات:** id - **الاستجابة:** JSON ### 3. إضافة جهاز (api/add-device.php) - **الاستدعاء من:** `devices.php` (نموذج إضافة جهاز) - **الطريقة:** POST - **المعاملات:** room_id, device_name, device_type, quantity, unit_price, installation_cost, total_price, notes - **الاستجابة:** JSON ### 4. حذف جهاز (api/delete-device.php) - **الاستدعاء من:** `devices.php` (زر حذف) - **الطريقة:** POST (JSON) - **المعاملات:** id - **الاستجابة:** JSON ### 5. حذف مشروع (delete.php) - **الاستدعاء من:** `index.php` (زر حذف) - **الطريقة:** POST (JSON) - **المعاملات:** id - **الاستجابة:** JSON --- ## مسارات التنقل الشائعة ### السيناريو 1: إنشاء مشروع كامل ``` index.php → add.php (إضافة مشروع) → rooms.php (إضافة غرف) → devices.php (إضافة أجهزة) → view.php (عرض المشروع) → print.php (طباعة) ``` ### السيناريو 2: تعديل مشروع موجود ``` index.php → view.php (عرض المشروع) → edit.php (تعديل المعلومات) → view.php (العودة للعرض) ``` ### السيناريو 3: إدارة الغرف والأجهزة ``` index.php → rooms.php (إدارة الغرف) → devices.php (إدارة أجهزة غرفة) → rooms.php (العودة للغرف) → view.php (عرض المشروع) ``` ### السيناريو 4: استخدام القوالب ``` index.php → templates/devices.php (تصفح قوالب الأجهزة) → index.php (العودة) index.php → templates/rooms.php (تصفح قوالب الغرف) → index.php (العودة) ``` --- ## اختبار الروابط ### ✅ الروابط المباشرة (تم التحقق) - [x] index.php → add.php - [x] index.php → edit.php - [x] index.php → view.php - [x] index.php → rooms.php - [x] index.php → print.php - [x] index.php → templates/devices.php - [x] index.php → templates/rooms.php - [x] add.php → rooms.php - [x] edit.php → view.php - [x] edit.php → rooms.php - [x] view.php → edit.php - [x] view.php → print.php - [x] view.php → rooms.php - [x] view.php → devices.php - [x] rooms.php → devices.php - [x] rooms.php → view.php - [x] devices.php → rooms.php - [x] devices.php → view.php - [x] templates/devices.php → index.php - [x] templates/rooms.php → index.php ### ✅ روابط API (تم التحقق) - [x] rooms.php → api/add-room.php - [x] rooms.php → api/delete-room.php - [x] devices.php → api/add-device.php - [x] devices.php → api/delete-device.php - [x] index.php → delete.php --- ## الملفات المطلوبة ### ✅ ملفات PHP الرئيسية (8 ملفات) - [x] index.php - [x] add.php - [x] edit.php - [x] view.php - [x] rooms.php - [x] devices.php - [x] print.php - [x] delete.php ### ✅ ملفات API (4 ملفات) - [x] api/add-room.php - [x] api/delete-room.php - [x] api/add-device.php - [x] api/delete-device.php ### ✅ ملفات القوالب (2 ملف) - [x] templates/devices.php - [x] templates/rooms.php ### ✅ ملفات الاعتماديات - [x] ../includes/header.php (موجود) - [x] ../includes/footer.php (موجود) - [x] ../includes/sidebar.php (موجود - تم إضافة رابط النظام) - [x] ../../config/database.php (موجود) --- ## نتيجة الاختبار ### ✅ جميع الروابط تعمل بشكل صحيح! **الإحصائيات:** - إجمالي الروابط المباشرة: 20 رابط ✅ - إجمالي روابط API: 5 روابط ✅ - إجمالي الملفات: 14 ملف ✅ - الملفات المفقودة: 0 ❌ **الحالة:** 🟢 جميع الروابط متصلة وتعمل بشكل صحيح --- ## ملاحظات مهمة ### المسارات النسبية - الصفحات الرئيسية تستخدم: `../includes/` - صفحات القوالب تستخدم: `../../includes/` - صفحات API تستخدم: `../../../config/` ### الروابط الديناميكية جميع الروابط التي تحتوي على معرفات (IDs) تعمل بشكل صحيح: - `?id={project_id}` - `?project_id={id}` - `?room_id={id}` ### الروابط الخارجية - رابط النظام في القائمة الجانبية: ✅ `iot-estimation/index.php` --- ## التوصيات ### ✅ تم تنفيذها 1. جميع الروابط تستخدم مسارات نسبية صحيحة 2. جميع الصفحات تحتوي على أزرار العودة 3. جميع API endpoints تعمل بشكل صحيح 4. جميع الملفات المطلوبة موجودة ### 🔄 للمستقبل 1. إضافة breadcrumbs للتنقل الأفضل 2. إضافة روابط سريعة في header 3. إضافة اختصارات لوحة المفاتيح 4. إضافة تاريخ التنقل (back/forward) --- **تاريخ الاختبار:** 2025-11-22 **الحالة:** ✅ جميع الروابط تعمل بشكل صحيح **المختبر:** نظام الاختبار الآلي