/* assets/js/ua_workspace_registry.js
   Workspace Registry - تعريف مركزي لصفحات مساحة العمل.
   لا يغيّر الشكل ولا ينقل أي عنصر؛ يمد Window Manager بعناوين الصفحات والاستثناءات فقط. */
(function(){
  'use strict';

  var previous = window.UAWorkspaceRegistry || {};

  var transientProtectedPages = Object.assign({}, previous.transientProtectedPages || {}, {
    'super_admin_confirm.php': 1,
    'subscribers_history.php': 1,
    'subscribers_view.php': 1,
    'subscribers_edit.php': 1,
    'subscribers_distribution.php': 1,
    'subscribers_cancel.php': 1,
    'subscribers_ppp_toggle.php': 1,
    'subscribers_history_clear.php': 1
  });

  var titleMap = Object.assign({}, previous.titleMap || {}, {
    'dashboard.php': 'لوحة التحكم الرئيسية',
    'about.php': 'عن البرنامج',
    'support.php': 'الدعم',

    'automation_comms.php': 'لوحة الشبكة',
    'mikrotik_dashboard.php': 'مراقبة MikroTik',
    'security_monitor.php': 'مراقب الشبكة',
    'security_alerts.php': 'سجل تنبيهات الأمان',
    'mtwatch_allowlist.php': 'قائمة سماح تنبيهات الشبكة',
    'routers.php': 'إدارة الراوترات',
    'sectors.php': 'إدارة القطاعات',
    'subscribers_distribution.php': 'توزيع المشتركين',
    'customer_connect.php': 'ربط الزبائن',
    'wizard_network.php': 'معالج الإعداد',
    'mikrotik.php': 'إعدادات MikroTik',
    'mikrotik_import.php': 'استيراد من MikroTik',

    'subscribers.php': 'عرض المشتركين',
    'subscribers_add.php': 'إضافة مشترك',

    'finance_reports.php': 'الملخص المالي',
    'invoices.php': 'الفواتير',
    'finance_payments.php': 'الحركة المالية',
    'purchases_report.php': 'المشتريات',

    'sales.php': 'لوحة المبيعات',
    'sales_new.php': 'عملية بيع جديدة',
    'sales_products.php': 'الأصناف والمنتجات',
    'sales_history.php': 'سجل المبيعات',
    'sales_summary.php': 'ملخص المبيعات',

    'vouchers_settings.php': 'إعدادات الكروت',
    'vouchers.php': 'إدارة وبيع الكروت',
    'vouchers_generate.php': 'توليد دفعات',
    'vouchers_print.php': 'طباعة الكروت',

    'automation.php': 'لوحة الأتمتة',
    'automation_cut.php': 'القطع التلقائي',
    'automation_throttle.php': 'التخفيض/الحد',
    'quota_setup.php': 'نظام الحجم والقص',
    'automation_vouchers.php': 'إعدادات الكروت QR',
    'automation_invoices.php': 'توليد الفواتير تلقائيًا',
    'automation_reports.php': 'تقارير أسبوعية',
    'automation_maintenance.php': 'صيانة تلقائية',
    'automation_commands.php': 'أوامر الأتمتة',
    'automation_log.php': 'سجل الأتمتة',
    'enforce_now.php': 'تنفيذ الآن',

    'messages_outbox.php': 'الرسائل',
    'messages_campaigns.php': 'الحملات',
    'messages_templates.php': 'قوالب الرسائل',
    'message_log.php': 'سجل الرسائل',

    'system.php': 'مركز الإعدادات',
    'company_admin.php': 'بيانات الشركة',
    'packages_prices.php': 'أسعار الباقات والسرعات',
    'settings_mikrotik.php': 'MikroTik',
    'settings_sms.php': 'إعدادات SMS',
    'settings_whatsapp.php': 'إعدادات WhatsApp',
    'settings_print.php': 'إعدادات الطباعة',
    'airmax_monitor_settings.php': 'إدارة الأجهزة',
    'app_settings.php': 'إعدادات البرنامج',
    'user_profile.php': 'ملفي الشخصي',
    'users_permissions.php': 'المستخدمون والصلاحيات',
    'roles.php': 'الأدوار',

    'agents_report.php': 'تقارير المعتمدين',
    'agents.php': 'المعتمدون',
    'agents_portal_preview.php': 'معاينة واجهة المعتمد',
    'agent_portal.php': 'واجهة المعتمد',
    'agent_subscriber_add.php': 'إضافة مشترك للمعتمد',
    'agent_subscriber_status.php': 'حالة مشترك',
    'agent_transactions.php': 'حركات رصيد المعتمدين',
    'agents_balances.php': 'أرصدة المعتمدين',
    'update_version.php': 'تحديث الإصدار',
    'maintenance.php': 'صيانة النظام',
    'all_links.php': 'كل الروابط',
    'template_page.php': 'صفحة قالب'
  });

  function clean(value){
    return String(value == null ? '' : value).replace(/\s+/g, ' ').trim();
  }

  function fileKey(input){
    var raw = clean(input);
    if (!raw) return '';
    try {
      var u = new URL(raw, window.location.href);
      var file = (u.pathname.split('/').pop() || '').replace(/^\.\//, '');
      return file || 'dashboard.php';
    } catch(e) {
      return (raw.split('?')[0] || raw).split('#')[0].split('/').pop() || '';
    }
  }

  function resolveTitle(url, fallback){
    var key = fileKey(url);
    return clean(titleMap[key] || fallback || key || 'صفحة') || 'صفحة';
  }

  function titleFromLink(anchor, fallback){
    if (!anchor) return resolveTitle('', fallback);
    return resolveTitle(anchor.getAttribute('href') || '',
      anchor.getAttribute('data-ua-title') ||
      anchor.getAttribute('data-title') ||
      anchor.getAttribute('title') ||
      anchor.textContent ||
      fallback
    );
  }

  function isTransientProtected(url){
    var key = fileKey(url);
    return !!(key && transientProtectedPages[key]);
  }

  window.UAWorkspaceRegistry = {
    version: '2026-05-19-workspace-registry-v1',
    titleMap: titleMap,
    transientProtectedPages: transientProtectedPages,
    fileKey: fileKey,
    resolveTitle: resolveTitle,
    titleFromLink: titleFromLink,
    isTransientProtected: isTransientProtected
  };
})();
