feat(contacts): attach existing contacts, new-ticket from company, breadcrumbs #204
Loading…
Reference in a new issue
No description provided.
Delete branch "feat/mapps-207-relational-gaps"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Close the MAPPS-207 relational gaps across the company and ticket flows.
Add a reusable ContactPicker component (mirrors CompanyPicker/AssetPicker): searches GET /contacts/contacts on each keystroke, reports the selected contact id and name through callbacks, and optionally scopes results to a company via the server's company_id filter.
Company "Add Contact" now opens an AddContactModal that searches and selects an existing contact, attaching it to the company with a single-field PUT to /contacts/contacts/{id} (the server's UpdateContactRequest accepts a bare company_id). Creating a brand-new contact is still offered inside the same modal via a link to the prefilled new-contact form.
The company Recent Tickets card gains a New Ticket affordance that links to /tickets/new with the company prefilled, alongside the existing View All. The New Ticket form reads that company prefill from the URL, seeds the CompanyPicker, and adds an optional ContactPicker scoped to the selected company; the picked contact is sent as contact_id on TicketCreateRequest and is cleared whenever the company changes.
Add breadcrumbs to the company detail, new-ticket, and new-contact pages so these flows always provide a way back (the View All destination previously left no path back, per PMS-312).
#MAPPS-207
Co-Authored-By: Claude Opus 4.8 (1M context) noreply@anthropic.com
Close the MAPPS-207 relational gaps across the company and ticket flows. Add a reusable ContactPicker component (mirrors CompanyPicker/AssetPicker): searches GET /contacts/contacts on each keystroke, reports the selected contact id and name through callbacks, and optionally scopes results to a company via the server's company_id filter. Company "Add Contact" now opens an AddContactModal that searches and selects an existing contact, attaching it to the company with a single-field PUT to /contacts/contacts/{id} (the server's UpdateContactRequest accepts a bare company_id). Creating a brand-new contact is still offered inside the same modal via a link to the prefilled new-contact form. The company Recent Tickets card gains a New Ticket affordance that links to /tickets/new with the company prefilled, alongside the existing View All. The New Ticket form reads that company prefill from the URL, seeds the CompanyPicker, and adds an optional ContactPicker scoped to the selected company; the picked contact is sent as contact_id on TicketCreateRequest and is cleared whenever the company changes. Add breadcrumbs to the company detail, new-ticket, and new-contact pages so these flows always provide a way back (the View All destination previously left no path back, per PMS-312). #MAPPS-207 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>