إنتقل إلى المحتوى الرئيسي

نظام التنبيهات الفورية وحالة الاتصال (SignalR)

الهدف

فهم آلية عمل التنبيهات الفورية في لوحة تحكم Skool.Cool، ومتابعة تقدم العمليات الطويلة (مثل استيراد Excel)، والتعامل مع حالة الاتصال بالخادم.


كيف تعمل التنبيهات في Skool.Cool؟

يعتمد نظام التنبيهات في المنصة على مصدريين رئيسيين لتغذية صندوق التنبيهات:

  1. تنبيهات النظام الدائمة (Persisted Notifications):

    • تنبيهات مسجلة في خادم البيانات يتم سحبها فور دخولك للنظام وتحديثها لحظياً.
    • تشمل التنبيهات المهمة مثل: تقديم طلب تسجيل جديد من قبل أولياء الأمور، تأكيد عملية دفع مالي، أو طلبات التنسيق بين المدارس.
    • يظهر بجانب التنبيهات غير المقروءة نقطة زرقاء خفيفة، وتزول عند قراءتها أو الضغط على زر [Mark all read].
  2. تنبيهات العمليات المؤقتة (Progress notifications):

    • تنبيهات تقدم معالجة العمليات الحية التي تتم في الخلفية، مثل:
      • استيراد ملفات Excel: يظهر لك تنبيه دوار يوضح نسبة تقدم معالجة الملف (مثال: Importing parents: 45%).
      • إرسال رسائل التذكير: مثل رسائل البريد الإلكتروني لبدء الأنشطة أو تقييمات الطلاب.
    • هذه التنبيهات تظهر فقط خلال الجلسة الحالية وتختفي بمجرد إغلاق المتصفح أو تسجيل الخروج ولا يتم حفظها في الخادم.

تصنيف التنبيهات ورموزها

تُصنف التنبيهات بصرياً إلى ثلاثة مستويات لتسهيل التمييز بينها:

التصنيفاللون البصريالرمز المستخدممثال واقعي
💡 النجاح (Success)أخضرعلامة الصح (✔️)اكتمال استيراد ملف الطلاب بنجاح (مثال: Import children completed).
📘 إعلامي (Info)أزرقطائرة ورقية (✉️)بدء إرسال رسائل التذكير بالبريد لأولياء الأمور.
⚠️ تحذير (Warning)برتقاليمثلث التحذير (⚠️)وجود أخطاء في أسطر ملف الاستيراد المرفوع (مثال: Import parents failed: invalid format).

إدارة التنبيهات وحالة الاتصال

1. قراءة التنبيهات

  • عند الضغط على أيقونة الجرس في الشريط العلوي، تُعرض آخر 50 تنبيهًا.
  • يمكنك الضغط على رابط [Mark all read] في زاوية نافذة التنبيهات لتحديد كافة التنبيهات كـ "مقروءة" في خادم البيانات، وتصفير عداد التنبيهات غير المقروءة.

2. حالة الاتصال بالخادم (SignalR Connection Recovery)

  • تعتمد المنصة على قناة اتصال حية ومفتوحة (SignalR).
  • مؤشر إعادة الاتصال: إذا انقطع اتصال الإنترنت أو تمت ترقية خوادم المنصة، ستتحول أيقونة الجرس للوضع الدوار وسيظهر تلميح عند تمرير الفأرة: Connecting to realtime notifications... (أو بالإنجليزية reconnecting).
  • إعادة المزامنة التلقائية: بمجرد عودة الاتصال بنجاح، يقوم النظام تلقائياً باستدعاء واجهة المزامنة (hydrate()) لجلب كافة التنبيهات التي تمت في فترة الانقطاع لضمان عدم ضياع أي تنبيه تشغيلي دون الحاجة لإعادة تحميل الصفحة يدوياً. لقطة شاشة من النظام: topbar-notifications-list