لوحة تحكم مساحة العمل
ما تفعله لوحة التحكم متعددة المستأجرين: تسجيل الدخول وإنشاء الحساب، وإنشاء مساحة عمل، والصفحات في الشريط الجانبي ومن يراها، والنظرة العامة، والبحث، وسجل النشاط مع تصديره بصيغة CSV، وإعدادات مساحة العمل.
لحزمة الحزمة الكاملة
الصفحات
كل صفحة موجودة بالإنجليزية تحت /en وبالعربية تحت /ar. تفتح لوحة التحكم على /en/dashboard بعد تسجيل الدخول في /en/auth/signin. للشريط الجانبي عمودان: مساحة العمل لأعضائها، وإدارة المنصة لطاقم المنصة. ولا يظهر أي صف إلا إذا كان الحساب المسجَّل يملك صلاحيته في مساحة العمل التي يعمل فيها.
| عنصر الشريط الجانبي | المسار | الصلاحية | وظيفته |
|---|---|---|---|
| نظرة عامة | /en/dashboard | لا شيء (كل عضو) | المشاريع، واستخدام هذا الشهر، ونشاط المشاريع في الأسبوع، وقائمة الإطلاق، والمشاريع التي تحتاج إلى متابعة، والنشاط الأخير. |
| المشاريع | /en/dashboard/projects | projects.read | كل مشروع مع حالته ومالكه وتقدمه وتاريخ استحقاقه؛ ولوحة كل مشروع ونشاطه وملفاته. |
| الفريق | /en/dashboard/team | workspace.read | الأعضاء والدعوات المعلقة، مع الدعوة وتغيير الأدوار والإزالة ونقل الملكية. |
| الأدوار | /en/dashboard/roles | workspace.read | ما يستطيع كل دور في مساحة العمل فعله. المالك وحده يغيّره، ويراه الآخرون للقراءة فقط. |
| الفوترة | /en/dashboard/billing | billing.read | الخطة والاستخدام والفواتير وبريد الفوترة. |
| الإعدادات | /en/dashboard/settings | workspace.read | تفاصيل مساحة العمل، وملفك الشخصي وبيانات تسجيل الدخول، والإشعارات، ومفاتيح API. |
| المساعد الذكي | /en/dashboard/ai-assistant | ai.read | يجيب عن أسئلة هذه المساحة ويقترح مهام تطبّقها أنت. |
- يُفتح النشاط (
/en/dashboard/activity،audit.read) من روابط «عرض كل النشاط» في النظرة العامة ومن الجرس. وتُفتح المشاريع المؤرشفة (/en/dashboard/projects/deleted،projects.read) من قائمة المشاريع. - تحتوي قائمة الحساب في أسفل الشريط الجانبي على ملفي الشخصي والتفضيلات (الإعدادات، في تبويبي الملف الشخصي والإشعارات) وتسجيل الخروج. وتحتها يفتح التوثيق المسار
/docsفي الموقع (NEXT_PUBLIC_WEBSITE_URL)، ويظهر مسؤول المنصة للحسابات التي تملك صلاحية على المنصة. - يضم الشريط العلوي مسار الصفحة، والبحث (Ctrl K، أو Cmd K على Mac)، ومبدّل اللغة، ومبدّل المظهر، والجرس.
- الصفحة التي تُفتح بعنوانها من دون الصلاحية تُظهر الوصول مطلوب: «لا يشمل دورك في مساحة العمل هذه هذه الصفحة.» وترفض واجهة API الطلبات نفسها مهما أظهرت الشاشة.
- الحساب الذي ليس له مساحة عمل يُحال إلى الإعداد الأول، أو إلى إدارة المنصة إذا كان من طاقم المنصة.
تسجيل الدخول وإنشاء الحساب
- يسجّل الجميع الدخول في الصفحة نفسها،
/en/auth/signin، بالبريد وكلمة المرور: أعضاء مساحة العمل وطاقم المنصة على حد سواء. الحسابات الأولية مذكورة في دليل التثبيت. - خيار تذكّرني محدد افتراضيًا ويُبقي الجلسة 30 يومًا؛ وإذا ألغيت تحديده تنتهي الجلسة بعد 12 ساعة. عندما ترفض واجهة API جلسة، تسجّل لوحة التحكم الخروج وتفتح صفحة تسجيل الدخول.
- البريد الخاطئ وكلمة المرور الخاطئة يعرضان الرسالة نفسها: «البريد وكلمة المرور لا يطابقان أي حساب.» وبعد
RATE_LIMIT_LOGINمن محاولات الدخول الفاشلة (10 في.env.example) من عنوان واحد خلال 15 دقيقة، ترفض واجهة API كل محاولة منه، حتى بكلمة المرور الصحيحة، إلى أن يمضي 15 دقيقة على أقدم فشل، ويقول النموذج: «محاولات تسجيل دخول فاشلة كثيرة. انتظر 15 دقيقة ثم حاول مرة أخرى.» - يطلب أنشئ حسابًا (
/en/auth/signup) الاسم الكامل وبريد العمل وكلمة مرور من 8 أحرف على الأقل والموافقة على الشروط. يُسجَّل دخول الحساب الجديد ويذهب إلى الإعداد الأول. يجوز لعنوان واحد بدء 10 عمليات تسجيل في الساعة؛ وبعد ذلك، وطوال إيقاف التسجيلات الجديدة في المنصة، يعرض النموذج جملة واجهة API نفسها. - يجيب نسيت كلمة المرور؟ (
/en/auth/forgot-password) بالطريقة نفسها سواء كان للبريد حساب أم لا، ويرسل رابطًا إلى/en/auth/reset-passwordيعمل مرة واحدة وتنتهي صلاحيته بعد ساعة. وبلاSMTP_HOSTتُكتب الرسالة، ومعها الرابط، في سجل واجهة API. - تربط صفحة تسجيل الدخول بصفحتي الخصوصية والشروط في الموقع (
NEXT_PUBLIC_WEBSITE_URL). - مع البيانات التجريبية المدمجة، بلا واجهة API، تسجّل أي كلمة مرور الدخول: انظر بيانات تجريبية.
إنشاء مساحة عمل
تنشئ /en/onboarding مساحة عمل في ثلاث خطوات. يصل إليها الحساب الجديد بعد التسجيل، ويفتحها أي حساب مرة أخرى من إنشاء مساحة عمل في مبدّل مساحات العمل.
| الخطوة | ما تطلبه |
|---|---|
| مساحة العمل | اسم مساحة العمل (من 2 إلى 60 حرفًا)، وعنوانها (3 أحرف أو أكثر من الأحرف الصغيرة والأرقام والواصلات، يُتحقق منه أثناء الكتابة، مع اقتراح عنوان متاح إذا كان المطلوب مأخوذًا)، والمنطقة: أوروبا أو أمريكا الشمالية أو آسيا والمحيط الهادئ. |
| الفريق | دعوات اختيارية: بريد ودور (مسؤول أو عضو أو الفوترة) لكل شخص، تحت سطر يذكر التجربة: «تبدأ مساحات العمل الجديدة بتجربة مجانية لخطة Starter مدتها 14 يومًا مع 3 مقاعد.» تخطَّ هذه الخطوة لدعوة الناس لاحقًا من الفريق. |
| جاهز | مراجعة للاسم والعنوان والمنطقة والخطة («Starter، تجربة 14 يومًا») والدعوات، ثم إنشاء مساحة عمل. |
يصبح المُنشئ مالك مساحة العمل. تبدأ مساحة العمل الجديدة على Starter، موسومة تجربةً طوال مدة إعداد «مدة التجربة» في المنصة (14 يومًا كما في البيانات الأولية، وتُقرأ من GET /api/public-settings العامة في واجهة API، فيذكر الإعداد الأول المدة قبل وجود مساحة العمل)، مع مصفوفة الأدوار الافتراضية، وتُرسل كل دعوة بالبريد (أو تُكتب في سجل واجهة API). تعرض الفوترة تاريخ انتهاء التجربة. وعندما يمضي من دون خطة مدفوعة تصبح مساحة العمل متأخرة السداد وتبدأ فترة السماح، كما بعد دفعة فاشلة.
عندما يوقف طاقم المنصة التسجيلات الجديدة، ترفض واجهة API التسجيل ومساحة العمل الجديدة معًا، ويقول النموذج، أو خطوة المراجعة في الإعداد الأول: «التسجيلات الجديدة مغلقة على هذه المنصة حاليًا.»
تبديل مساحة العمل
- تعرض الكتلة أعلى الشريط الجانبي اسم مساحة العمل وخطتها. وتسرد قائمتها كل مساحة عمل ينتمي إليها الحساب، مع إنشاء مساحة عمل تحتها. المالك الأولي،
owner@northstack.example، يملك Forma Studio وهو مسؤول في Monogram. - اختيار واحدة يُسقط كل ما عُرض للمساحة السابقة ويعيد تحميل الصفحات للمساحة الجديدة، فلا يظهر صف من مساحة عمل تحت أخرى. يُحفظ الاختيار في الحساب، وتفتح عملية تسجيل الدخول التالية مساحة العمل نفسها.
- الدور خاص بكل مساحة عمل: يمكن للشخص نفسه أن يكون مالك إحداها وعضوًا في أخرى، ويتبع الشريط الجانبي الدور في مساحة العمل المختارة.
النظرة العامة
| اللوحة | ما تعرضه | تظهر لـ |
|---|---|---|
| المشاريع | كم مشروعًا مفتوحًا ومكتملًا. | projects.read |
| استخدام هذا الشهر | طلبات API والمقاعد مقابل حدود الخطة. | كل عضو |
| نشاط المشاريع | أحداث المهام في كل يوم خلال الأيام السبعة الأخيرة، مع أكثر الأيام نشاطًا. | projects.read |
| قائمة الإطلاق | ضبط النطاق، ودعوة الفريق، وربط الفوترة، وإضافة مفاتيح الإنتاج، وتُقرأ كلها من الحالة الفعلية لمساحة العمل. الخطوة المفتوحة ترتبط بمكان إنجازها فقط للدور الذي يستطيع إنجازها. | كل عضو |
| مشاريع تحتاج إلى متابعة | حتى ثلاثة مشاريع مفتوحة يحين موعدها خلال الفترة، الأقرب أولًا. | projects.read |
| آخر النشاط | آخر ستة أحداث في الفترة. الدور الذي يقرأ الفوترة فقط يراها باسم نشاط الفوترة، وفيها أحداث الفوترة وحدها. | projects.read أو audit.read أو billing.read |
فترة التقرير (آخر 7 أيام أو آخر 30 يومًا أو آخر 90 يومًا، و30 افتراضيًا) تضيّق المشاريع التي تحتاج إلى متابعة وآخر النشاط؛ أما المخطط الأسبوعي فيحتفظ بأيامه السبعة. تُحفظ الفترة في العنوان (?period=7d). ويظهر مشروع جديد للأعضاء الذين يملكون projects.write.
البحث والجرس
- يجد البحث (Ctrl K أو Cmd K) الصفحات، وبعد كتابة حرفين يجد مشاريع مساحة العمل ومهامها وأعضاءها، خمسة من كل نوع. لا تظهر المشاريع والمهام إلا للأعضاء الذين يملكون
projects.read. وفي إدارة المنصة يبحث في المؤسسات. - يسرد الجرس أحدث ثمانية أحداث في مساحة العمل مع عدد غير المقروء منذ آخر مرة ضغط فيها القارئ تعليم الكل كمقروء، ويتحدث كل دقيقة. وهو يعرض الأحداث نفسها التي في آخر النشاط بالنظرة العامة: كلها لمن يملك
projects.readأوaudit.read، وأحداث الفوترة للدور الذي يقرأ الفوترة فقط، ولا شيء لغير ذلك. ويفتح عرض كل النشاط سجل النشاط للأعضاء الذين يملكونaudit.read.
سجل النشاط
كل تغيير في مساحة العمل يكتب حدثًا: المشاريع والمهام والملفات والدعوات والأعضاء والأدوار والإعدادات ومفاتيح API والفوترة والاقتراحات التي طبّقها المساعد. تسردها /en/dashboard/activity من الأحدث، عشرة في كل صفحة، للأعضاء الذين يملكون audit.read (المالك والمسؤولون كما في البيانات الأولية).
- المرشحات: بحث، والإجراء (إحدى المجموعات أعلاه)، والشخص، وتاريخا من وإلى. يمسحها إعادة الضبط. وكل مرشح يُحفظ في العنوان.
- ينزّل تصدير CSV كل حدث تطابقه المرشحات باسم
<workspace-address>-activity.csv، بالأعمدةdateوactorوactionوsubjectوdetails. القيمة التي تبدأ بـ=أو+أو-أو@تُكتب بعلامة اقتباس في أولها كي لا ينفذها برنامج الجداول.
الإعدادات
للإعدادات (/en/dashboard/settings) خمسة تبويبات، ويُحفظ المفتوح منها في العنوان (?tab=profile). يفتحها كل عضو؛ وما يستطيع تغييره يتبع دوره.
| التبويب | ما الذي يحتويه | من يغيّره |
|---|---|---|
| عام | تفاصيل مساحة العمل: الاسم والعنوان واللغة (الإنجليزية أو العربية) والمنطقة الزمنية، مع مفاتيح الإشعارات، وأحدث مفاتيح API لمن يملك keys.manage، ومنطقة الخطر للمالك. | workspace.update (المالكون والمسؤولون كما في البيانات الأولية)؛ وللقراءة فقط لغيرهم |
| الملف الشخصي | اسمك الأول واسم العائلة وعنوان بريدك. | كل حساب، لنفسه |
| الأمان | كلمة مرورك: الحالية، ثم جديدة من 8 أحرف على الأقل فيها حرف كبير وحرف صغير ورقم. يحتفظ الجهاز الذي سجّل الدخول بجلسته حتى تنتهي (12 ساعة، أو 30 يومًا مع تذكّرني). | كل حساب، لنفسه |
| الإشعارات | مفتاحان لمساحة العمل كلها: إشعارات البريد والملخص الأسبوعي. | workspace.update |
| مفاتيح API | مفاتيح مساحة العمل، تُنشأ وتُلغى هنا. يظهر التبويب لمن يملك keys.manage فقط. | keys.manage (المالكون والمسؤولون كما في البيانات الأولية) |
- إشعارات البريد تشغّل رسائل الفوترة أو توقفها: دفعة فاشلة، وتجربة منتهية، وتغيير خطة مدفوعة، وتغيير مجدول يُطبَّق عند التجديد، وتُرسل إلى المالك وأعضاء الفوترة وبريد الفوترة الخاص بمساحة العمل. أما الدعوات وإعادة تعيين كلمة المرور وإيصالات الترخيص فتُرسل دائمًا.
- الملخص الأسبوعي يرسل إلى كل عضو نشط ملخصًا للأسبوع الماضي، أيام الاثنين من الساعة 08:00 بالتوقيت العالمي، مرة واحدة لكل مساحة عمل في الأسبوع. وأرقام المشاريع والمهام تذهب فقط إلى الأدوار التي تملك
projects.read، ويتبع عدد الأنشطة ما يستطيع الدور رؤيته. ويغطي أول ملخص لمساحة العمل أول أسبوع كامل لها، وفي التثبيت الجديد يكتفي التشغيل الأول بتعليم الأسبوع الحالي ولا يرسل شيئًا، فتخرج أولى الملخصات يوم الاثنين الذي يليه. - كل بريد يُكتب بلغة المستلم نفسه، أو بلغة مساحة العمل إذا لم يختر لغة. أما لغة الشاشات فهي دائمًا اللغة الموجودة في العنوان. وبلا إعدادات SMTP تكتب واجهة API كل بريد في سجلها بدلًا من إرساله.
- حذف مساحة العمل، في منطقة الخطر، للمالك وحده: اكتب اسم مساحة العمل وكلمة مرورك. ثم تلغي واجهة API اشتراكها في Stripe، إن وُجد، دون رصيد عن الأيام المتبقية، وتعلّم مساحة العمل محذوفة (حذف ناعم): يفقد كل عضو الوصول، وتتوقف مفاتيح API الخاصة بها، وتخرج من كل قائمة ومبدّل، وتبقى صفوفها في قاعدة البيانات ويبقى عنوانها محجوزًا. وإذا تعذّر الوصول إلى Stripe فلا يُحذف شيء، ويطلب إشعار المحاولة بعد دقائق.
- اسم العلامة والشعار والألوان لا تُضبط هنا: تأتي من ملفات العلامة في لوحة التحكم.
اللغة والمظهر
يبدّل الشريط العلوي بين الإنجليزية والعربية (تعمل الصفحات العربية من اليمين إلى اليسار) وبين المظهر الفاتح والداكن. يتبع المظهر إعداد الحاسوب إلى أن يُبدَّل، ويُحفظ الاختيار في ذلك المتصفح.
كيف تترابط أجزاء كود لوحة الإدارة
مُضمَّن مع مشترياتك. سجّل الدخول لقراءته، أو افتحه في ملف التنزيل.
بنية الكود، ووصفة إضافة صفحة.