1. 28 Jul, 2026 9 commits
  2. 27 Jul, 2026 5 commits
    • Fares's avatar
      feat(sa): extend facility grid system to all facility types · 26eb4204
      Fares authored
      The zone grid was previously restricted to pool-type facilities only.
      Now any facility can have a grid configured (rows × cols, max 25 each)
      via the create/edit forms. Facilities with grid dimensions get the
      visual grid manager; those without keep the unit-based mirror view.
      
      Changes:
      - Remove facility_type='pool' filter from PoolGridService::getFacility
      - MirrorController routes by grid dimensions instead of facility type
      - Facility create/edit forms now include grid rows/cols fields
      - FacilityController store/update save grid dimensions
      - Facility model fillable updated with grid columns
      - Grid size limit increased from 20 to 25
      - Facility show page adds "الشبكة" button when grid is configured
      - MirrorStateService and SlotAvailabilityService check grid dims
        instead of facility_type for zone booking cross-checks
      Co-Authored-By: 's avatarClaude Opus 4.6 <noreply@anthropic.com>
      26eb4204
    • Fares's avatar
      fix(sa): improve group player search with status info and treasury button · 858cd3f6
      Fares authored
      - Player search now shows type (member/non-member), medical status, and
        serial number in dropdown results for accurate identification
      - Group player table adds columns for player type and medical status
      - Pending payment players now show a "الخزينة" button linking to cashier
      - Enrollment form stays visible when group is full (uses force-enroll)
      - SearchableSelect prioritizes label field for richer display text
      Co-Authored-By: 's avatarClaude Opus 4.6 <noreply@anthropic.com>
      858cd3f6
    • Fares's avatar
      fix(swimming): show accurate member/non-member pricing on assignment page · 8d0f495b
      Fares authored
      Display both fee tiers on each group card with the applicable one highlighted
      based on the player's registration type, preventing pricing confusion.
      Co-Authored-By: 's avatarClaude Opus 4.6 <noreply@anthropic.com>
      8d0f495b
    • Fares's avatar
      feat(swimming): add discipline dropdown filter to player assignment page · 2b19960d
      Fares authored
      The assignment page now shows a dropdown to select which sport's programs/groups
      to display. Defaults to Swimming but allows switching to any active discipline.
      Groups are filtered by the selected discipline and show their program names.
      Co-Authored-By: 's avatarClaude Opus 4.6 <noreply@anthropic.com>
      2b19960d
    • Fares's avatar
      fix(sa): fix coach dropdown click bug and auto-create group on program creation · 60d769cf
      Fares authored
      1. searchable-select.js: mouseover was calling renderList() which replaced
         innerHTML and destroyed the click target DOM node, making options unclickable.
         Now mouseover only toggles inline styles without re-rendering.
      
      2. ProgramController: auto-creates a default group (code-G1) when a new program
         is created, using the first available coach for that discipline.
      Co-Authored-By: 's avatarClaude Opus 4.6 <noreply@anthropic.com>
      60d769cf
  3. 26 Jul, 2026 5 commits
  4. 23 Jul, 2026 3 commits
  5. 22 Jul, 2026 18 commits