Commit Graph

4 Commits

Author SHA1 Message Date
riyadhafraa 7a2ae8434d Update project documentation and code comments to remove platform-specific references
Refactor documentation files and code comments to remove references to Replit, specific task numbers, and other platform-specific identifiers.

Replit-Commit-Author: Agent
Replit-Commit-Session-Id: 77cfe984-2c65-4152-bb7a-0df28274fe66
Replit-Commit-Checkpoint-Type: full_checkpoint
Replit-Commit-Event-Id: fa18e5d4-a810-4bd5-8cde-2a60d64d9e3f
Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/c3c252e4-c83d-40ca-9fff-99a3ea60701e/77cfe984-2c65-4152-bb7a-0df28274fe66/kI0sxlu
Replit-Helium-Checkpoint-Created: true
2026-05-14 06:23:49 +00:00
riyadhafraa 9a0935f58e Rename Edit toggle to "تعديل" and tint # cell with row color (Task #193)
Two small UX polish items on the executive-meetings schedule:

1. Arabic label rename
   - artifacts/tx-os/src/locales/ar.json: changed
     editToggle / editToggleAria / editToggleOn / editToggleOff
     from "تحرير" / "وضع التحرير" → "تعديل" / "وضع التعديل".
   - English strings unchanged (user only asked about Arabic
     wording). No other key/UI re-uses these strings.

2. Row color now wraps the # (number) cell
   - In MeetingRow's case "number", added an IIFE-built
     numberCellInlineStyle that applies backgroundColor following
     a strict priority chain:
       (a) highlight || isCancelled → no inline bg, so the
           bg-red-600 utility on numberCellCls keeps winning.
       (b) tintBg (current-meeting wash) → highlightColor + white
           text (unchanged behavior).
       (c) rowBg (user-picked row color) → tints the # cell to
           match the rest of the row. Palette is all light tints,
           so the existing dark text remains readable.
       (d) otherwise → falls back to bg-white from numberCellCls.

Tests
- Added a focused Playwright spec in
  tests/executive-meetings-row-actions-menu.spec.mjs that:
    * picks a non-current, non-cancelled row (CSS
      :not([data-current-meeting="true"]) + a runtime "starts
      white" precondition, so it cannot accidentally target a
      red-badge row),
    * opens the kebab → Row color → red swatch,
    * asserts the # cell's computed background is rgb(254,226,226),
    * resets to "default" and asserts it returns to white.
  test.skip is used (rather than fail) when seed data has no
  eligible row, so the regression guard never produces false
  negatives on a sparse schedule.

Verification
- All 6 specs in executive-meetings-row-actions-menu.spec.mjs +
  executive-meetings-edit-toggle.spec.mjs pass locally.
- Type-check shows no new errors in executive-meetings.tsx.

Code review (architect, evaluate_task) flagged the original test's
filter({ hasNot }) as unreliable for excluding current rows; the
test was rewritten before commit per that feedback.
2026-04-30 06:47:28 +00:00
riyadhafraa 5c21bf9737 Improve test to accurately verify meeting row actions menu
Refactor e2e test assertion for executive meeting row actions menu to use a more robust check for kebab visibility and count.

Replit-Commit-Author: Agent
Replit-Commit-Session-Id: 77cfe984-2c65-4152-bb7a-0df28274fe66
Replit-Commit-Checkpoint-Type: full_checkpoint
Replit-Commit-Event-Id: 4624aae4-b60d-45dd-aeaa-32ff564cc1b9
Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/c3c252e4-c83d-40ca-9fff-99a3ea60701e/77cfe984-2c65-4152-bb7a-0df28274fe66/wd2kz0e
Replit-Helium-Checkpoint-Created: true
2026-04-30 06:27:40 +00:00
riyadhafraa 311d59ccad Task #191: Consolidate row-cell overlay icons into single kebab menu
The schedule's per-row affordances (delete, row color, merge cells)
used to render as three separate hover-revealed icon buttons stacked
inside the same narrow cell, which collided visually on iPad and
small screens. Replaced them with a single MoreVertical kebab trigger
that opens a Radix popover with three views (main / color / merge),
plus a "Back" affordance to return from sub-views to the main menu.

Implementation:
- New RowActionsMenu component (artifacts/tx-os/src/pages/executive-meetings.tsx)
  rendered once per row, anchored at the trailing-top of the first
  visible cell (matching the previous overlay anchor logic). Resets
  to "main" view on close.
- Old DeleteRowButton, RowColorPicker, and MergeMenu components removed.
- Existing testids preserved on the popover items so external tests
  still target em-delete-row-{id}, em-row-color-trigger, and
  em-merge-trigger-{id}. New testids added: em-row-actions-{id} for
  the kebab trigger, em-row-actions-back for the Back button.
- Locale keys added in ar.json/en.json: rowActions.label, rowActions.back.
- New imports: MoreVertical, ChevronLeft, ChevronRight (RTL-aware Back arrow).
- Merged-cell branch also uses RowActionsMenu so merge/unmerge stays
  reachable when the # column is hidden.

Tests:
- New regression spec: executive-meetings-row-actions-menu.spec.mjs
  exercises the full menu flow (open → color → back → main → merge → escape).
- Existing executive-meetings-edit-toggle.spec.mjs and
  executive-meetings-schedule-features.spec.mjs continue to pass —
  legacy testids remain absent in view mode and present inside the
  popover when opened in edit mode.

Pre-existing test failures (NOT caused by this change):
- "non-mutate user (executive_viewer)" spec fails because seeded user
  "ahmed" is missing from the dev DB (parallel task #131 drizzle work).
- TS errors in admin.tsx tracked by other tasks (api-client codegen
  out of sync).

Follow-up proposed:
- #192: show row color + merge previews inline in the main menu items.
2026-04-30 06:24:57 +00:00