================================================================================
            ✅ الحل النهائي الكامل - Bulk Actions
================================================================================

التاريخ: 2025-11-29
الحالة: ✅ جاهز للاستخدام 100%

================================================================================
الخطوات للاستخدام الآن:
================================================================================

1. افتح الصفحة في المتصفح:
   http://15.204.231.210/iptv/index.php/streams/index

2. افتح Console (اضغط F12 ثم اختر Console)

3. يجب أن ترى هذه الرسائل:
   === FORCE BULK FIX LOADED ===
   Document ready - attaching handlers
   === ALL HANDLERS ATTACHED ===
   Buttons found: {delete: 1, restart: 1, stop: 1, disable: 1}

4. اختر واحد أو أكثر من الـ streams (ضع علامة ✓)

5. في Console اكتب:
   $('.stream_checkbox:checked').length

   يجب أن ترى رقم > 0 (عدد الـ streams المحددة)

6. اضغط على أي زر من الأزرار الأربعة:
   - Delete Selected
   - Restart Selected
   - Stop Selected
   - Disable Selected

7. في Console ستظهر:
   [RESTART] Selected: [3, 5, 7]
   [RESTART] Sending request...
   [RESTART] Success: <span>...</span>

8. على الصفحة ستظهر رسالة:
   ✓ Successfully restarted 3 stream(s) on external panel

================================================================================
إذا لم تعمل الأزرار:
================================================================================

A. تحقق من Console:

1. افتح Console (F12)
2. هل ترى "FORCE BULK FIX LOADED"?
   - نعم: السكريبت يعمل ✓
   - لا: انتقل للخطوة B

3. هل ترى "Buttons found: {delete: 1, ...}"?
   - نعم: الأزرار موجودة ✓
   - لا: مشكلة في HTML

4. اختر streams واكتب في Console:
   $('.stream_checkbox:checked').length

   - إذا كانت النتيجة 0: الـ checkboxes لا تعمل
   - إذا كانت النتيجة > 0: الـ checkboxes تعمل ✓

B. إذا لم يظهر "FORCE BULK FIX LOADED":

1. افتح tab Network في Console
2. أعد تحميل الصفحة (F5)
3. ابحث عن "force_bulk_fix.js"
4. انقر عليه:
   - Status 200: الملف يتم تحميله ✓
   - Status 404: الملف غير موجود ✗

C. إذا كان Status 404:

تأكد من وجود الملف:
/var/www/html/iptv/style/js/force_bulk_fix.js

D. اختبار الـ API مباشرة:

افتح في Terminal:
curl -X POST "http://15.204.231.210/iptv/apps/streams_bulk_actions.php?action=BulkRestart" \
  -d "ids[]=3" -d "ids[]=5"

يجب أن ترى:
Successfully restarted X stream(s) on external panel

================================================================================
الملفات المهمة:
================================================================================

1. JavaScript Handler:
   /var/www/html/iptv/style/js/force_bulk_fix.js
   - يحتوي على event handlers للأزرار

2. PHP Handler:
   /var/www/html/iptv/apps/streams_bulk_actions.php
   - يستقبل الطلبات من JavaScript
   - يوجهها لدوال AdminStreams

3. Bulk Functions:
   /var/www/html/iptv/includes/AdminStreams.php
   - BulkRestart (السطر 1248)
   - BulkStop (السطر 1287)
   - BulkDelete (السطر 1221)
   - BulkDisable (السطر 1319)

4. صفحات الاختبار:
   - http://15.204.231.210/iptv/test_buttons_simple.html
   - http://15.204.231.210/iptv/debug_bulk_actions.php

================================================================================
كيف يعمل النظام:
================================================================================

1. المستخدم يختار streams ويضغط على زر

2. JavaScript (force_bulk_fix.js) يجمع IDs:
   var ids = [3, 5, 7];

3. يرسل AJAX request:
   POST /iptv/apps/streams_bulk_actions.php?action=BulkRestart
   Data: {ids: [3, 5, 7]}

4. streams_bulk_actions.php يستدعي:
   $adminStreams->BulkRestart();

5. BulkRestart() يستدعي External Panel API:
   Stop: http://45.154.207.117:8000/api/streams/stop/API_KEY/3/5/7
   Start: http://45.154.207.117:8000/api/streams/start/API_KEY/3/5/7

6. API يرد بـ: {"result":true}

7. يتم عرض الرسالة للمستخدم:
   ✓ Successfully restarted 3 stream(s) on external panel

================================================================================
الـ Logs للتشخيص:
================================================================================

في حالة وجود مشكلة، تحقق من:

1. Apache Error Log:
   tail -50 /var/log/apache2/error.log | grep -i "bulk"

   ستجد:
   - BulkRestart: Stopping streams: 3,5
   - MidnightStreamer API: http://...
   - Response: {"result":true}

2. Browser Console (F12):
   - [RESTART] Selected: [...]
   - [RESTART] Sending request...
   - [RESTART] Success: ...

================================================================================
التأكد من أن كل شيء يعمل:
================================================================================

✓ افتح: http://15.204.231.210/iptv/index.php/streams/index
✓ افتح Console (F12)
✓ ترى "FORCE BULK FIX LOADED"
✓ اختر streams
✓ $('.stream_checkbox:checked').length > 0
✓ اضغط على زر
✓ ترى "[ACTION] Selected: [...]"
✓ ترى رسالة نجاح على الصفحة

================================================================================
الأزرار الأربعة:
================================================================================

1. Delete Selected ✅
   - يحذف من قاعدة البيانات المحلية
   - يحذف من External Panel

2. Restart Selected ✅
   - يعيد تشغيل على External Panel
   - يرسل Stop ثم Start

3. Stop Selected ✅
   - يوقف على External Panel

4. Disable Selected ✅
   - يعطل في قاعدة البيانات المحلية

================================================================================
الخلاصة:
================================================================================

✅ الأزرار تعمل
✅ JavaScript محمّل
✅ API يعمل مع External Panel
✅ التقارير واضحة
✅ Console logging مفصل
✅ Error handling جيد

جرب الآن وستعمل! 🎉

================================================================================
