1. 03 Jul, 2026 2 commits
  2. 22 Jun, 2026 1 commit
  3. 21 Jun, 2026 6 commits
  4. 06 Jun, 2026 3 commits
  5. 05 Jun, 2026 1 commit
  6. 31 May, 2026 1 commit
  7. 30 May, 2026 15 commits
  8. 26 May, 2026 2 commits
    • Mahmoud Aglan's avatar
      fix: replace Auth::csrfField() with Auth::csrfToken() + fix org-leaderboards view mismatch · 0dc3c835
      Mahmoud Aglan authored
      Auth::csrfField() doesn't exist — replaced all 24 occurrences across org modules
      with the correct <input type="hidden" name="_csrf" value="<?= Auth::csrfToken() ?>">.
      Also fixed org-leaderboards index.php which was actually the org-board view (using
      $org variable that wasn't passed by the index action), renamed it to org-board.php
      and created a proper index.php for global rankings. Fixed org_members column name
      (user_id → player_id) in org-applications controller.
      Co-Authored-By: 's avatarClaude Opus 4.6 <noreply@anthropic.com>
      0dc3c835
    • Mahmoud Aglan's avatar
      feat: Live Tournaments Update — public tournament pages with 40 features · e79d4439
      Mahmoud Aglan authored
      Full public-facing live tournament system:
      - Public pages at /live/{slug} with no auth required
      - 5 visual themes (default, neon, minimal, royal, arena)
      - Live standings, pairings, bracket with auto-refresh polling
      - Countdown timer, player roster, results feed, timeline
      - Prize display, announcements feed, photo gallery
      - QR code sharing, social share, embeddable widget
      - SEO meta tags (OG, Twitter Cards, JSON-LD)
      - Tournament ad slots with impression/click tracking
      - Analytics tracking (views, sections, referrers)
      - Admin config panel: visibility toggles, custom CSS, slug management
      - Mobile responsive with dark/light mode support
      - Print-optimized view
      
      New DB tables: tournament_announcements, tournament_ad_slots,
      tournament_page_views, tournament_media
      Co-Authored-By: 's avatarClaude Opus 4.6 <noreply@anthropic.com>
      e79d4439
  9. 25 May, 2026 9 commits
    • Mahmoud Aglan's avatar
      fix: update theme to El3ab brand identity + add reset button · 853341b5
      Mahmoud Aglan authored
      - Update variables.css surfaces to match brand navy (#152132)
      - Add sidebar-bg and input-bg CSS variables with fallbacks
      - Add "Reset to Brand Identity" button in branding settings
      - Add resetColors controller action that reverts all colors to
        their default_value from platform_theme
      - Reset live DB colors to brand defaults
      Co-Authored-By: 's avatarClaude Opus 4.6 <noreply@anthropic.com>
      853341b5
    • Mahmoud Aglan's avatar
      feat: organizational steroids update — 18 new modules + bugfixes · c08ba733
      Mahmoud Aglan authored
      - Add 18 org ecosystem modules: frames, invites, applications, chat,
        treasury, challenges, achievements, transfers, recruitment, events,
        content, leaderboards, partnerships, loyalty, rosters, training,
        media, spotlights (controllers + views + CSS assets)
      - Add core services: SupabaseStorage, OrgPermissions, ThemeService
      - Add migration 003 (23 new tables, RLS policies, indexes)
      - Fix games edit not saving (wrong column names: icon→icon_url,
        matchmaking_config→config)
      - Fix branding colors not reflecting (added ThemeService to inject
        DB theme colors as CSS variable overrides at render time)
      - Update permissions.php with new module access for admin/org roles
      - Update sidebar with org ecosystem navigation section
      - Add 120+ new routes for all org modules
      Co-Authored-By: 's avatarClaude Opus 4.6 <noreply@anthropic.com>
      c08ba733
    • Mahmoud Aglan's avatar
      tournament update · 8b678c5b
      Mahmoud Aglan authored
      8b678c5b
    • Mahmoud Aglan's avatar
      fix: chess bots not showing - extract bots array from API response · e87eca4e
      Mahmoud Aglan authored
      API returns {bots: [...], count: N} not a flat array.
      Also fixed pool stats mapping (pool_alive/pool_idle) and portrait URLs
      to use full Stockfish API base URL.
      Co-Authored-By: 's avatarClaude Opus 4.6 <noreply@anthropic.com>
      e87eca4e
    • Mahmoud Aglan's avatar
    • Mahmoud Aglan's avatar
      fix: align remaining modules to actual Supabase column schemas · 0402e2b4
      Mahmoud Aglan authored
      - ads: remove non-existent columns (advertiser, placement, cpm, title, body, click_url, image_url), use actual schema (campaign_type, target_slots, target_games, budget_daily)
      - moderation: resolution→action_taken, resolved_by→reviewed_by (UUID), resolved_at→reviewed_at
      - tournaments: el3ab_tournament_players→tournament_registrations, swiss_tournament_id→swiss_api_tournament_id
      - players: remove email from insert (not in profiles), banned_at removed, use ban_expires_at
      - notifications: remove is_broadcast (not in schema), detect broadcast by null user_id
      - settings: is_editable→is_secret, handle JSONB value column
      - auth: last_login→last_login_at
      - Created el3ab_tournament_rounds table on server
      Co-Authored-By: 's avatarClaude Opus 4.6 <noreply@anthropic.com>
      0402e2b4
    • Mahmoud Aglan's avatar
      fix: align all code to actual Supabase DB schema · 367e98e5
      Mahmoud Aglan authored
      Table renames: transactions→economy_transactions, organizations→el3ab_organizations
      Column fixes: user_id→player_id, last_active_at→last_seen_at, reported_id→reported_player_id,
      organizer_id→created_by, actor→actor_id, entity_type→resource_type, entity_id→resource_id
      Schema match: economy_transactions uses type credit/debit + reason + source_id,
      audit_log uses actor_id/resource_type/resource_id/details,
      org_members uses player_id, ad_campaigns uses spent_total.
      Created admin_users, approval_requests, workflow_rules tables on server.
      Co-Authored-By: 's avatarClaude Opus 4.6 <noreply@anthropic.com>
      367e98e5
    • Mahmoud Aglan's avatar
      k · 080ac7e2
      Mahmoud Aglan authored
      080ac7e2
    • Mahmoud Aglan's avatar
      feat: multi-tenant role system with workflows & user management · f50a8d54
      Mahmoud Aglan authored
      Complete overhaul from single-admin to multi-role multi-org system:
      
      - Auth: multi-user login from admin_users table with 9 roles
        (superadmin, admin, moderator, org_admin, org_manager,
        tournament_organizer, sponsor, charity, viewer)
      - Permissions: granular permission matrix with org-scoping
      - RuleEngine: event-driven workflow automation
      - Users module: full CRUD for admin user management
      - Workflows module: approval queue, automation rules, org requests
      - Dashboard: role-aware with scoped data per role
      - Sidebar: permission-filtered navigation per role
      - Topbar: shows role badge next to username
      - Login: supports all user types
      Co-Authored-By: 's avatarClaude Opus 4.6 <noreply@anthropic.com>
      f50a8d54