Commit 5d2aceb8 authored by Mahmoud Aglan's avatar Mahmoud Aglan

Fixed Sidebar

parent 8b2afbf2
<?php <?php
declare(strict_types=1); declare(strict_types=1);
use App\Core\Registries\MenuRegistry;
use App\Core\Registries\PermissionRegistry; use App\Core\Registries\PermissionRegistry;
MenuRegistry::register('carnets', [ // Menu registered centrally via Members/bootstrap.php under "membership" parent.
'label_ar' => 'الكارنيهات',
'label_en' => 'Carnets',
'icon' => 'id-card',
'route' => '/carnets',
'permission' => 'carnet.view_log',
'parent' => null,
'order' => 660,
'children' => [
['label_ar' => 'كل الكارنيهات', 'label_en' => 'All Carnets', 'route' => '/carnets', 'permission' => 'carnet.view_log', 'order' => 1],
],
]);
PermissionRegistry::register('carnets', [ PermissionRegistry::register('carnets', [
'carnet.print' => ['ar' => 'طباعة كارنيه', 'en' => 'Print Carnet'], 'carnet.print' => ['ar' => 'طباعة كارنيه', 'en' => 'Print Carnet'],
......
<?php <?php
declare(strict_types=1); declare(strict_types=1);
use App\Core\Registries\MenuRegistry;
use App\Core\Registries\PermissionRegistry; use App\Core\Registries\PermissionRegistry;
use App\Core\EventBus; use App\Core\EventBus;
MenuRegistry::register('documents', [ // Menu registered centrally via Members/bootstrap.php under "membership" parent.
'label_ar' => 'المستندات',
'label_en' => 'Documents',
'icon' => 'file',
'route' => '/documents',
'permission' => 'document.view',
'parent' => null,
'order' => 670,
'children' => [
['label_ar' => 'كل المستندات', 'label_en' => 'All Documents', 'route' => '/documents', 'permission' => 'document.view', 'order' => 1],
],
]);
PermissionRegistry::register('documents', [ PermissionRegistry::register('documents', [
'document.upload' => ['ar' => 'رفع مستندات', 'en' => 'Upload Documents'], 'document.upload' => ['ar' => 'رفع مستندات', 'en' => 'Upload Documents'],
......
<?php <?php
declare(strict_types=1); declare(strict_types=1);
use App\Core\Registries\MenuRegistry;
use App\Core\Registries\PermissionRegistry; use App\Core\Registries\PermissionRegistry;
MenuRegistry::register('fines', [ // Menu registered centrally via Members/bootstrap.php under "membership" parent.
'label_ar' => 'المخالفات والغرامات',
'label_en' => 'Violations & Fines',
'icon' => 'alert',
'route' => '/violations',
'permission' => 'fine.view',
'parent' => null,
'order' => 530,
'children' => [
['label_ar' => 'المخالفات', 'label_en' => 'Violations', 'route' => '/violations', 'permission' => 'fine.view', 'order' => 1],
['label_ar' => 'الغرامات', 'label_en' => 'Fines', 'route' => '/fines', 'permission' => 'fine.view', 'order' => 2],
],
]);
PermissionRegistry::register('fines', [ PermissionRegistry::register('fines', [
'fine.view' => ['ar' => 'عرض الغرامات', 'en' => 'View Fines'], 'fine.view' => ['ar' => 'عرض الغرامات', 'en' => 'View Fines'],
......
<?php <?php
declare(strict_types=1); declare(strict_types=1);
use App\Core\Registries\MenuRegistry; // Menu registered centrally via Members/bootstrap.php under "membership" parent.
\ No newline at end of file
MenuRegistry::register('foreign', [
'label_ar' => 'الأعضاء الأجانب',
'label_en' => 'Foreign Members',
'icon' => 'globe',
'route' => '/foreign',
'permission' => 'member.view',
'parent' => null,
'order' => 400,
'children' => [],
]);
\ No newline at end of file
<?php <?php
declare(strict_types=1); declare(strict_types=1);
use App\Core\Registries\MenuRegistry; // Menu registered centrally via Members/bootstrap.php under "membership" parent.
\ No newline at end of file
MenuRegistry::register('honorary', [
'label_ar' => 'العضوية الشرفية',
'label_en' => 'Honorary Membership',
'icon' => 'star',
'route' => '/honorary',
'permission' => 'member.view',
'parent' => null,
'order' => 395,
'children' => [],
]);
\ No newline at end of file
<?php <?php
declare(strict_types=1); declare(strict_types=1);
use App\Core\Registries\MenuRegistry;
use App\Core\Registries\PermissionRegistry; use App\Core\Registries\PermissionRegistry;
MenuRegistry::register('installments', [ // Menu registered centrally via Members/bootstrap.php under "membership" parent.
'label_ar' => 'الأقساط',
'label_en' => 'Installments',
'icon' => 'calendar',
'route' => '/installments',
'permission' => 'installment.view',
'parent' => null,
'order' => 510,
'children' => [
['label_ar' => 'كل الخطط', 'label_en' => 'All Plans', 'route' => '/installments', 'permission' => 'installment.view', 'order' => 1],
],
]);
PermissionRegistry::register('installments', [ PermissionRegistry::register('installments', [
'installment.view' => ['ar' => 'عرض الأقساط', 'en' => 'View Installments'], 'installment.view' => ['ar' => 'عرض الأقساط', 'en' => 'View Installments'],
......
<?php <?php
declare(strict_types=1); declare(strict_types=1);
use App\Core\Registries\MenuRegistry;
use App\Core\Registries\PermissionRegistry; use App\Core\Registries\PermissionRegistry;
MenuRegistry::register('interviews', [ // Menu registered centrally via Members/bootstrap.php under "membership" parent.
'label_ar' => 'المقابلات',
'label_en' => 'Interviews',
'icon' => 'calendar',
'route' => '/interviews',
'permission' => 'interview.view',
'parent' => null,
'order' => 650,
'children' => [
['label_ar' => 'كل المقابلات', 'label_en' => 'All Interviews', 'route' => '/interviews', 'permission' => 'interview.view', 'order' => 1],
],
]);
PermissionRegistry::register('interviews', [ PermissionRegistry::register('interviews', [
'interview.view' => ['ar' => 'عرض المقابلات', 'en' => 'View Interviews'], 'interview.view' => ['ar' => 'عرض المقابلات', 'en' => 'View Interviews'],
......
...@@ -4,18 +4,39 @@ declare(strict_types=1); ...@@ -4,18 +4,39 @@ declare(strict_types=1);
use App\Core\Registries\MenuRegistry; use App\Core\Registries\MenuRegistry;
use App\Core\Registries\PermissionRegistry; use App\Core\Registries\PermissionRegistry;
MenuRegistry::register('members', [ MenuRegistry::register('membership', [
'label_ar' => 'إدارة الأعضاء', 'label_ar' => 'شئون العضوية',
'label_en' => 'Member Management', 'label_en' => 'Membership',
'icon' => '👥', 'icon' => 'users',
'route' => '/members', 'route' => '/members',
'permission' => 'member.view', 'permission' => 'member.view',
'parent' => null, 'parent' => null,
'order' => 300, 'order' => 300,
'children' => [ 'children' => [
// ── Core Members ────────────────────────────
['label_ar' => 'كل الأعضاء', 'label_en' => 'All Members', 'route' => '/members', 'permission' => 'member.view', 'order' => 1], ['label_ar' => 'كل الأعضاء', 'label_en' => 'All Members', 'route' => '/members', 'permission' => 'member.view', 'order' => 1],
['label_ar' => 'عضو جديد', 'label_en' => 'New Member', 'route' => '/members/create', 'permission' => 'member.create', 'order' => 2], ['label_ar' => 'عضو جديد', 'label_en' => 'New Member', 'route' => '/members/create', 'permission' => 'member.create', 'order' => 2],
['label_ar' => 'بحث الأعضاء', 'label_en' => 'Search Members', 'route' => '/members/search', 'permission' => 'member.search', 'order' => 3], ['label_ar' => 'بحث الأعضاء', 'label_en' => 'Search Members', 'route' => '/members/search', 'permission' => 'member.search', 'order' => 3],
// ── Membership Types ────────────────────────
['label_ar' => 'الأعضاء المؤقتون', 'label_en' => 'Temporary Members', 'route' => '/temporary', 'permission' => 'temp.view', 'order' => 10],
['label_ar' => 'العضوية الموسمية', 'label_en' => 'Seasonal Memberships', 'route' => '/seasonal', 'permission' => 'temp.view', 'order' => 11],
['label_ar' => 'العضوية الرياضية', 'label_en' => 'Sports Membership', 'route' => '/sports', 'permission' => 'temp.view', 'order' => 12],
['label_ar' => 'العضوية الشرفية', 'label_en' => 'Honorary Membership', 'route' => '/honorary', 'permission' => 'member.view', 'order' => 13],
['label_ar' => 'الأعضاء الأجانب', 'label_en' => 'Foreign Members', 'route' => '/foreign', 'permission' => 'member.view', 'order' => 14],
// ── Subscriptions & Financial ───────────────
['label_ar' => 'الاشتراكات السنوية', 'label_en' => 'Annual Subscriptions', 'route' => '/subscriptions', 'permission' => 'subscription.view', 'order' => 20],
['label_ar' => 'توليد اشتراكات', 'label_en' => 'Batch Generate', 'route' => '/subscriptions/batch-generate', 'permission' => 'subscription.generate_batch', 'order' => 21],
['label_ar' => 'الأقساط', 'label_en' => 'Installments', 'route' => '/installments', 'permission' => 'installment.view', 'order' => 22],
['label_ar' => 'المخالفات والغرامات', 'label_en' => 'Violations & Fines', 'route' => '/violations', 'permission' => 'fine.view', 'order' => 23],
// ── Procedures ──────────────────────────────
['label_ar' => 'المقابلات', 'label_en' => 'Interviews', 'route' => '/interviews', 'permission' => 'interview.view', 'order' => 30],
['label_ar' => 'الكارنيهات', 'label_en' => 'Carnets', 'route' => '/carnets', 'permission' => 'carnet.view_log', 'order' => 31],
['label_ar' => 'المستندات', 'label_en' => 'Documents', 'route' => '/documents', 'permission' => 'document.view', 'order' => 32],
// ── Transfers & Separations ─────────────────
['label_ar' => 'طلبات التحويل', 'label_en' => 'Transfer Requests', 'route' => '/transfers', 'permission' => 'transfer.view', 'order' => 40],
['label_ar' => 'حالات الطلاق', 'label_en' => 'Divorce Cases', 'route' => '/divorce', 'permission' => 'transfer.view', 'order' => 41],
['label_ar' => 'حالات الوفاة', 'label_en' => 'Death Cases', 'route' => '/death', 'permission' => 'transfer.view', 'order' => 42],
['label_ar' => 'طلبات التنازل', 'label_en' => 'Waiver Requests', 'route' => '/waivers', 'permission' => 'waiver.view', 'order' => 43],
], ],
]); ]);
......
<?php <?php
declare(strict_types=1); declare(strict_types=1);
use App\Core\Registries\MenuRegistry;
use App\Core\EventBus; use App\Core\EventBus;
MenuRegistry::register('seasonal', [ // Menu registered centrally via Members/bootstrap.php under "membership" parent.
'label_ar' => 'العضوية الموسمية',
'label_en' => 'Seasonal Memberships',
'icon' => 'calendar',
'route' => '/seasonal',
'permission' => 'temp.view',
'parent' => null,
'order' => 385,
'children' => [],
]);
EventBus::listen('member.profile_data', function (array &$data) { EventBus::listen('member.profile_data', function (array &$data) {
if (isset($data['member']) && $data['member']) { if (isset($data['member']) && $data['member']) {
......
<?php <?php
declare(strict_types=1); declare(strict_types=1);
use App\Core\Registries\MenuRegistry; // Menu registered centrally via Members/bootstrap.php under "membership" parent.
\ No newline at end of file
MenuRegistry::register('sports', [
'label_ar' => 'العضوية الرياضية',
'label_en' => 'Sports Membership',
'icon' => 'trophy',
'route' => '/sports',
'permission' => 'temp.view',
'parent' => null,
'order' => 390,
'children' => [],
]);
\ No newline at end of file
<?php <?php
declare(strict_types=1); declare(strict_types=1);
use App\Core\Registries\MenuRegistry;
use App\Core\Registries\PermissionRegistry; use App\Core\Registries\PermissionRegistry;
MenuRegistry::register('subscriptions', [ // Menu registered centrally via Members/bootstrap.php under "membership" parent.
'label_ar' => 'الاشتراكات السنوية',
'label_en' => 'Annual Subscriptions',
'icon' => 'repeat',
'route' => '/subscriptions',
'permission' => 'subscription.view',
'parent' => null,
'order' => 520,
'children' => [
['label_ar' => 'كل الاشتراكات', 'label_en' => 'All Subscriptions', 'route' => '/subscriptions', 'permission' => 'subscription.view', 'order' => 1],
['label_ar' => 'توليد دفعة', 'label_en' => 'Batch Generate', 'route' => '/subscriptions/batch-generate', 'permission' => 'subscription.generate_batch', 'order' => 2],
],
]);
PermissionRegistry::register('subscriptions', [ PermissionRegistry::register('subscriptions', [
'subscription.view' => ['ar' => 'عرض الاشتراكات', 'en' => 'View Subscriptions'], 'subscription.view' => ['ar' => 'عرض الاشتراكات', 'en' => 'View Subscriptions'],
......
<?php <?php
declare(strict_types=1); declare(strict_types=1);
use App\Core\Registries\MenuRegistry;
use App\Core\Registries\PermissionRegistry; use App\Core\Registries\PermissionRegistry;
use App\Core\EventBus; use App\Core\EventBus;
MenuRegistry::register('temporary', [ // Menu registered centrally via Members/bootstrap.php under "membership" parent.
'label_ar' => 'الأعضاء المؤقتون',
'label_en' => 'Temporary Members',
'icon' => 'user-clock',
'route' => '/temporary',
'permission' => 'temp.view',
'parent' => null,
'order' => 380,
'children' => [],
]);
PermissionRegistry::register('temporary', [ PermissionRegistry::register('temporary', [
'temp.add' => ['ar' => 'إضافة عضو مؤقت', 'en' => 'Add Temporary Member'], 'temp.add' => ['ar' => 'إضافة عضو مؤقت', 'en' => 'Add Temporary Member'],
......
<?php <?php
declare(strict_types=1); declare(strict_types=1);
use App\Core\Registries\MenuRegistry;
use App\Core\Registries\PermissionRegistry; use App\Core\Registries\PermissionRegistry;
MenuRegistry::register('transfers', [ // Menu registered centrally via Members/bootstrap.php under "membership" parent.
'label_ar' => 'التحويلات والفصل',
'label_en' => 'Transfers & Separations',
'icon' => 'swap',
'route' => '/transfers',
'permission' => 'transfer.view',
'parent' => null,
'order' => 700,
'children' => [
['label_ar' => 'طلبات التحويل', 'label_en' => 'Transfer Requests', 'route' => '/transfers', 'permission' => 'transfer.view', 'order' => 1],
['label_ar' => 'حالات الطلاق', 'label_en' => 'Divorce Cases', 'route' => '/divorce', 'permission' => 'transfer.view', 'order' => 2],
['label_ar' => 'حالات الوفاة', 'label_en' => 'Death Cases', 'route' => '/death', 'permission' => 'transfer.view', 'order' => 3],
['label_ar' => 'طلبات التنازل', 'label_en' => 'Waiver Requests', 'route' => '/waivers', 'permission' => 'waiver.view', 'order' => 4],
],
]);
PermissionRegistry::register('transfers', [ PermissionRegistry::register('transfers', [
'transfer.initiate' => ['ar' => 'بدء تحويل/فصل', 'en' => 'Initiate Transfer'], 'transfer.initiate' => ['ar' => 'بدء تحويل/فصل', 'en' => 'Initiate Transfer'],
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment