Task #348: Arabic-friendly Executive Meetings audit log

- Reorder audit table columns to RTL order: المستخدم، الوقت، الإجراء،
  النوع، التغييرات. Drop the entityId ("المعرف") column entirely. Update
  loading/empty colSpan from 6 to 5 to match the new column count.
- Rename audit.col.actor copy: "المنفّذ" → "المستخدم" (ar.json) and
  "Actor" → "User" (en.json). Underlying data field name unchanged.
- Localize the Changes cell in AuditDiffSummary:
  - Field-name labels (titleAr, titleEn, meetingDate, dailyNumber,
    startTime, endTime, location, meetingUrl, platform, status,
    isHighlighted, notes, assignedTo, taskType, dueAt, reviewDecision,
    reviewNotes) now resolve via executiveMeetings.audit.field.* with a
    raw-key fallback so unknown future fields don't crash the row.
  - Enum values render via existing label namespaces:
    `platform` → executiveMeetings.platform.*, `status` →
    executiveMeetings.status.*, `isHighlighted` → executiveMeetings.common.yes/no.
  - Both the diff view and the single-side created/removed view use the
    same labelForKey/fmtValue helpers.
- Added matching audit.field.* keys to ar.json and en.json with sensible
  Arabic and English labels.
- No test changes needed: no existing test asserts on the old column
  count, the "Actor"/"المنفّذ" header, the entityId column, or raw
  English field names in Changes.
- tsc passes for @workspace/tx-os.
This commit is contained in:
riyadhafraa
2026-05-03 13:57:22 +00:00
parent 0a18cf2abe
commit 3d2d80c250
3 changed files with 77 additions and 13 deletions
+20 -1
View File
@@ -1343,7 +1343,7 @@
"all": "الكل",
"col": {
"when": "الوقت",
"actor": "المنفّذ",
"actor": "المستخدم",
"action": "الإجراء",
"entity": "النوع",
"entityId": "المعرف",
@@ -1353,6 +1353,25 @@
"created": "تم إنشاء",
"removed": "تم حذف",
"moreChanges": "تغييرات أخرى",
"field": {
"titleAr": "العنوان",
"titleEn": "العنوان (إنجليزي)",
"meetingDate": "التاريخ",
"dailyNumber": "الرقم اليومي",
"startTime": "وقت البدء",
"endTime": "وقت الانتهاء",
"location": "المكان",
"meetingUrl": "رابط الاجتماع",
"platform": "المنصة",
"status": "الحالة",
"isHighlighted": "مميّز",
"notes": "ملاحظات",
"assignedTo": "المُسند إليه",
"taskType": "نوع المهمة",
"dueAt": "موعد الاستحقاق",
"reviewDecision": "قرار المراجعة",
"reviewNotes": "ملاحظات المراجعة"
},
"entity": {
"meeting": "اجتماع",
"attendee": "حاضر",