مكتبة المحتوى المشترك — مكتبة الأصول المشتركة والإشراف
يمرّ المحتوى الذي يرفعه المستخدمون ويُشارَك بين المنتجات (أغاني WorshipCommons، ودروس Lessons.church، وقوالب FreeShow، وقوالب موقع B1) عبر قائمة مراجعة إشراف واحدة، بدلاً من مسار مراجعة منفصل لكل منتج. تغطي هذه الصفحة دورة حياة الإرسال والموافقة، ونموذج بيانات الأصول المشتركة، وموقع أدوات الإشراف.
العمود الفقري للأصول
يحمل جدولان كل عنصر في المكتبة المشتركة، بغض النظر عن المنتج:
assets— صف الهوية العام.status:pending|published|unpublished|removed. تُخزَّن البيانات الخاصة بكل نوع (تفاصيل الأغنية والمؤلفون) في جداول تابعة مرتبطة بـassetId.assetFiles— كل ملف مرفق بأصل (صوت، صور، مستندات)، ويحل محل الأعمدة القديمةpathوعمودfilesالمفصول بفواصل في جداول المحتوى الفردية.submissions— وحدة الإشراف. دورة الحياة:draft → pending → approved | rejected | withdrawn. يمكن أن يكون الإرسال أصلاً جديداً تماماً، أو تعديلاً على أصل منشور موجود (من قِبل المؤلف الأصلي أو طرف ثالث).
عند الموافقة على إرسال، يُشغَّل خطاف نشر خاص بالمنتج (Api/src/modules/commons/helpers/publishHooks/، مثل song.ts) فيحوّل الإرسال إلى السجلات الخاصة بذلك المنتج.
تدفق الإرسال
CommonsSubmissionController (Api/src/modules/commons/) هو واجهة برمجة التطبيقات الموجَّهة للمستخدم النهائي: إنشاء مسودة، وطلب توقيع مسبق لرفع الملفات وإرفاقها، وإرسال الطلب للمراجعة، أو سحبه. عملاؤه الفعليون هم المواقع المنتجة الخارجية (موقع WorshipCommons، وLessons.church، وFreeShow، ومعرض قوالب موقع B1) — وليس B1Admin.
الاستهلاك الموجَّه للكنيسة
بالإضافة إلى الإشراف، يقرأ B1Admin أيضاً من العمود الفقري للمكتبة المشتركة مباشرةً. فبحث "Add Song" في Serving → Songs يستعلم عن GET /songs?sundayReady=true إلى جانب قاعدة بيانات الأغاني الخارجية الموجودة، فيعرض الأغاني المنشورة من WorshipCommons التي وسمها الموظفون بأنها جاهزة ليوم الأحد (انظر بوابة الاستماع أدناه) مع شارة الترخيص. وعند اختيار إحداها يُربط SongDetail الجديد بمصدره عبر songDetailLinks. هذا هو المسار الوحيد الذي يلمس فيه B1Admin الخاص بكنيسة فردية بيانات المكتبة المشتركة مباشرةً، بدلاً من المرور عبر أدوات Server Admin المخصصة لموظفي الخادم. للاطلاع على الوصف الموجَّه للكنيسة، انظر قسم الأغاني المجانية من WorshipCommons في مستند الدعم.
قائمة الإشراف
تقع القائمة في B1Admin → Server Admin → Commons (B1Admin/src/serverAdmin/components/CommonsTab.tsx)، ومحمية بالصلاحية Permissions.server.admin — وهي الصلاحية نفسها التي تحمي Churches وImpersonate وJobs في تلك الصفحة. هذه أداة داخلية مخصصة لموظفي ChurchApps فقط، وليست شيئاً تراه الكنائس الفردية.
تضم ثلاثة تبويبات فرعية:
-
Queue — كل إرسال معلَّق عبر جميع المنتجات، قابل للتصفية حسب المنتج أو نوع الأصل. يعرض كل صف شارةً تحدد ما إذا كان الإرسال أصلاً جديداً أم تعديلاً من المؤلف أم تعديلاً من طرف ثالث، وسجلّ موافقات المُرسِل، وملخصاً لفروقات الحقول والملفات، والعمر (ويُعلَّم ما يتجاوز 72 ساعة). يفتح الزر Review درجاً يعرض فروقات على مستوى الحقول ومعاينات الملفات ومعاينةً للمنتج للقراءة فقط مضمَّنةً فيه. ويدعم الزران Approve وReject اختصارات لوحة المفاتيح (
jوkللتنقل، وaوrللتنفيذ). -
Reports — تقارير حقوق النشر والسياسات/الجودة على الأصول المنشورة، مقسَّمة إلى قائمتين بالإضافة إلى سجلّ التقارير المعالجة. يطالب أحد الموظفين بالتقرير ثم يعالجه بقرار (upheld / dismissed / duplicate) وإجراء (none / unpublish / remove).
-
Assets — متصفح قابل للبحث للمحتوى المنشور، مع إجراءات لكل أصل: تمييزه، أو إلغاء نشره أو إعادة نشره، أو إزالته (السبب: حقوق النشر أو السياسة). بالنسبة للأغاني، تُعدّ بوابة الاستماع هنا الوسيلة التي تصبح بها الأغنية "جاهزة ليوم الأحد": يضع الموظفون علامةً عليها بعد أن يستمعوا إلى كل مفتاح موسيقي منشور، ويتأكدوا من أن النوتة والأكوردات والشرائح كلها موجودة.
تتحقق كل نقطة نهاية ضمن /commons/admin/* (CommonsAdminController.ts) من صلاحية الإدارة على الخادم بشكل مستقل.
صُمّم هذا النظام بقائمة إشراف واحدة عن قصد: فقد أُوقفت واجهة الإشراف الخاصة بـ WorshipCommons على /admin، وأصبحت إرساءات كل منتج تُوجَّه عبر أدوات Server Admin في B1Admin.
المكونات المتأثرة
Api (وحدة commons)، وB1Admin (Server Admin)، والمواقع المنتجة الخارجية: WorshipCommons وLessons.church وFreeShow وقوالب منشئ موقع B1.