Task #701: توحيد نموذج الحجز الداخلي مع نموذج الرابط العام
- Extended internal BookingDialog (artifacts/tx-os/src/pages/protocol.tsx) to match
the public booking form: requester name, phone, room, department, meeting title,
meeting type toggle (داخلي / مع جهة خارجية), conditional entity name (external only),
expected attendee count, purpose, from/to, key attendees in two columns
(من الهيئة / خارج الهيئة) with add/remove name+position rows, and notes.
- Edit mode prefills all new fields from the booking; click-to-book initialStart
behavior unchanged.
- api-server (artifacts/api-server/src/routes/protocol.ts): bookingCreateSchema and
bookingPatchSchema now accept requesterPhone, requesterOrg, department, meetingType,
purpose, keyAttendees; POST/PATCH /protocol/bookings persist them. requesterOrg is
nulled whenever effective meetingType is internal (create and patch).
- Added i18n keys protocol.bookings.form.{name,position,addRow,removeRow} (ar/en);
all other labels reuse existing protocol.bookings keys.
- Verified: tsc clean for changed files (push.ts / executive-meetings.ts errors are
pre-existing and unrelated); API workflow restarted and serving; architect review PASS.
- Note: entity name (اسم الجهة) is not enforced as required for external meetings on
the internal endpoint (unlike the strict public endpoint) — internal staff keep
flexibility; can be tightened later if requested.
This commit is contained in:
@@ -1818,6 +1818,12 @@
|
||||
"durationMinutes_few": "{{count}} دقائق",
|
||||
"durationMinutes_many": "{{count}} دقيقة",
|
||||
"durationMinutes_other": "{{count}} دقيقة"
|
||||
},
|
||||
"form": {
|
||||
"name": "الاسم",
|
||||
"position": "المنصب",
|
||||
"addRow": "إضافة صف",
|
||||
"removeRow": "حذف الصف"
|
||||
}
|
||||
},
|
||||
"external": {
|
||||
|
||||
Reference in New Issue
Block a user