Moon ERP · UX Proposal · النفاذ السريع

نادِ على أي مستند من أي مكان — في لمح البصر.

بدل ما تفتح الموديول وتدوّر، شريط أوامر عام (⌘K) يلاقيلك أي فاتورة/أمر/عميل من أي شاشة، ويفتحه على صفحته الخاصة بلينك تقدر تشاركه وتفتحه في تاب جديد.

أو اضغط Ctrl + K
١

الوضع الحالي — وين المشكلة؟

فحصنا الكود فعليًا — مش افتراض:

مفيش لينك للمستند

الفاتورة بتفتح في Dialog جوه القائمة (viewDialogVisible). مفيش URL خاص بيها → مينفعش bookmark، ولا تاب جديد، ولا تشارك لينك، والـ back مابيرجعّهاش.

مفيش بحث عام

البحث الموجود محلّي داخل الموديول بس (LIS/worklist). الـ topbar فيه إشعارات ومستخدم — مفيش "افتح برقم" ولا بحث شامل عبر المستندات.

وصول بطيء

توصل لفاتورة معيّنة = افتح الموديول ← القائمة ← فلتر/دوّر ← اضغط. كتير لمستخدم بيدخّل عشرات المستندات في الساعة.

٢

التصور — الـ Command Bar داخل البرنامج

ده شكل الحل بالثيم الحقيقي. اضغط على شريط البحث فوق (أو ⌘K) عشان تحسّه بنفسك:

https://erp.moon.app/sales/invoices
المبيعاتالمشترياتالمخزونالمعملالحسابات
ابحث عن أي مستند، عميل، صنف… ⌘K
🔔
CtrlK — من أي شاشة، نادِ على اللي عايزه فورًا.

↑↓ للتنقّل · ↵ للفتح · النتائج مجمّعة حسب النوع · بحث بالرقم أو الاسم أو العميل.

٣

كل مستند له صفحته ولينكه (Deep Link)

القفزة من البحث بتوديك لصفحة المستند جوه شكل الموديول (السياق محفوظ) — وبلينك حقيقي:

https://erp.moon.app/sales/invoices/1042  ·  🔗 نسخ اللينك   ⧉ تاب جديد
المبيعاتالمشترياتالمخزون
بحث… ⌘K
INVOICE · sales/invoices/1042
فاتورة INV-2025-1042
العميل: شركة النور الطبية · التاريخ: 2026-06-21
12,400.00
مستحقة
✦ نفس الصفحة تفتح سواء جيت من القائمة، أو من الـ Command Bar، أو من لينك متبعوت — والـ back يرجّعك لمكانك.
٤

الخطة — على مرحلتين

Phase 1 الأساس عالي العائد

  • Deep-link routes للفواتير: /sales/invoices/:id و /purchases/bills/:id — فتح الـ Dialog يبقى صفحة (أو يدعم ?open=id).
  • Command Bar component في الـ topbar (⌘K) — input + نتائج مجمّعة + تنقّل بالكيبورد.
  • BE search endpoint موحّد للفواتير + الأوامر + العملاء (رقم/اسم/مبلغ).
  • زر "🔗 نسخ اللينك" و"⧉ تاب جديد" في رأس المستند.

Phase 2 التوسعة

  • توسيع البحث لكل المستندات (مخزون، معمل، حسابات، أصناف، موردين).
  • آخر المستندات / المثبّتة (Recent & Pinned) في الـ topbar.
  • نطاقات بحث (Scopes) + اختصارات (مثلاً اكتب #1042 = فاتورة، @عميل).
  • أوامر سريعة (Actions): "فاتورة جديدة"، "تحصيل"، إلخ من نفس الشريط.
٥

التصميم التقني

القطعةالتفصيل
Routes (FE)صفحة تفصيل لكل مستند بـ :id param (Angular lazy route + paramMap). الحالي dialog-only → نضيف route تفتح نفس الكمبوننت في صفحة.
Command Bar (FE)كمبوننت في layout/topbar + خدمة CommandBarService (overlay, debounce، تنقّل كيبورد، recent في localStorage). يفتح بـ ⌘K / Ctrl+K.
Search API (BE)GET /search?q=&types=invoices,orders,customers — يرجّع {type, id, title, subtitle, badge, route} مرتّبة بالصلة، يحترم صلاحيات المستخدم (per-module).
الأداءdebounce 200ms، حد 8 لكل نوع، فهرسة على رقم المستند/الاسم. النتايج تفتح route جاهز (مفيش تحميل تاني).
الصلاحياتالبحث + الفتح يمرّان بنفس permissionGuard — اللي ملوش صلاحية مبيشوفش المستند.
أعلى عائد لو هنبدأ بحاجة: Phase 1 (Deep-link الفواتير + Command Bar + search endpoint للفواتير/الأوامر/العملاء). ده اللي بيحوّل "أنادي عليها من أي مكان" من فكرة لواقع.
⚠︎
الموازنة: تحويل الـ Dialog لصفحة بلينك شغل متوسط (لكن مرة واحدة لكل نوع مستند). المكسب: سرعة وصول رهيبة + لينكات قابلة للمشاركة — وده بالظبط اللي بيخدم سرعة الإدخال اللي بتركّز عليها.
Moon ERP · Knowledge Base · مقترح النفاذ السريع · مولّد 2026-06-21 · moonui2.elbaset.com/knowledge-base/plans/global-command-bar-plan.html