تأكيد حذف المنشور – إضافة مربع حوار للتأكيد قبل حذف المنشورات

:information_source: ملخص مكون خفيف للمظهر يطلب التأكيد قبل حذف المنشور
:hammer_and_wrench: مستودع الكود GitHub - scavin/discourse-confirm-delete · GitHub
:question: دليل التثبيت كيفية تثبيت مظهر أو مكون مظهر
:open_book: جديد في مظاهر Discourse؟ دليل المبتدئين لاستخدام مظاهر Discourse

تثبيت هذا المكون

أشارك هنا مكون مظهر صغيرًا يضيف خطوة تأكيد قبل حذف المنشور.

بشكل افتراضي، يؤدي النقر على زر الحذف إلى تنفيذ إجراء الحذف القياسي في Discourse فورًا. يعرض هذا المكون مربع حوار التأكيد الأصلي لـ Discourse أولاً، مما يساعد على منع الحذف غير المقصود.

ماذا يفعل؟

عندما ينقر المستخدم على زر حذف في منشور، يعرض المكون مربع حوار للتأكيد:

حذف المنشور
هل أنت متأكد من رغبتك في حذف هذا المنشور؟

الإجراءات المتاحة هي:

  • إلغاء — يغلق الحوار دون القيام بأي شيء
  • حذف — يستمر في تنفيذ إجراء الحذف الأصلي في Discourse

الميزات الرئيسية

:white_check_mark: يستخدم واجهة حوار Discourse الأصلية
:white_check_mark: يستخدم زر حذف أحمر بتنسيق الخطر
:white_check_mark: يحافظ على سلوك الحذف الأصلي في Discourse
:white_check_mark: لا يغير عمليات التحقق من الأذونات
:white_check_mark: لا يعدل نواة Discourse
:white_check_mark: لا يتطلب إضافة (plugin)
:white_check_mark: لا يستخدم jQuery أو window.confirm()
:white_check_mark: لا يحاكي نقرات DOM
:white_check_mark: يعمل على سطح المكتب والهاتف المحمول
:white_check_mark: ترجمات للإنجليزية والصينية المبسطة
:white_check_mark: تعتمد اللغات الأخرى على الإنجليزية
:white_check_mark: يمكن للمسؤولين تجاوز النصوص عبر ترجمات المظهر

كيف يعمل

يستخدم المكون واجهات برمجة التطبيقات (APIs) الأمامية الرسمية لـ Discourse:

  • apiInitializer
  • محوّل القيمة post-menu-buttons
  • خدمة dialog.deleteConfirm() المدمجة

يستبدل مكون زر الحذف في قائمة المنشور بغلاف صغير. بعد التأكيد، يستدعي الغلاف إجراء deletePost الأصلي.

هذا يعني أن المكون لا يعيد تنفيذ الحذف، ولا يقدم طلب API خاص به، ولا يتجاوز منطق التفويض الموجود في Discourse.

بعد التثبيت:

  1. افتح المكون في الإدارة → تخصيص → المظاهر
  2. أضفه إلى المظاهر التي يجب تمكينه فيها
  3. قم بتحديث صفحة الموضوع
  4. انقر على زر الحذف في منشور لاختبار مربع حوار التأكيد

الترجمات

يشمل المكون حاليًا:

  • الإنجليزية (en)
  • الصينية المبسطة (zh_CN)

يستخدم عنوان الحوار، والرسالة، وزر الإلغاء، وزر الحذف جميعًا مفاتيح ترجمة المظهر. نرحب بالترجمات الإضافية.

التوافق

مصمم لإصدارات Discourse الحالية التي تستخدم قائمة المنشورات الحديثة Glimmer وواجهة برمجة التطبيقات للإضافات (Plugin API).

أتمنى أن يساعد هذا المكون الصغير في منع الحذف غير المقصود للمنشورات. نرحب بالتعليقات، وتقارير الأخطاء، والترجمات، والاقتراحات! :slight_smile:

6 إعجابات