fix(apps): correct page and component defects across tickets, KB, picker, SLA, models #126
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "fix/mapps-139-page-component-correctness"
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?
Add-note failures now surface in the modal: a new note_error signal captures the empty-content and POST-error cases (previously only logged to the console while the spinner stopped and the user assumed success), shown as a red banner and cleared on open and on success.
KB home search carries the typed term to the article list. The list route gains a
?:qquery segment; the home search submit pushes Route::KBArticleList { q }, the route wrapper forwards it asinitial_q, and KBArticleListPage seeds its search signal from it so the list opens pre-filtered.Company picker: corrected the module doc to the real
/contacts/companiespath and dropped the false debounce claim (no debounce is implemented), and added a transparent full-viewport backdrop (z-10, below the z-20 dropdown) whose onclick dismisses the dropdown so it no longer stays open permanently.SLA status: closed OR resolved tickets are now NotApplicable so a resolved-not-closed ticket no longer shows Breached, and the warning band is derived from the SLA target window (final quarter of creation->due) instead of a fixed 2h so short SLAs still get a warning before breaching. Tests updated and a resolved-ticket case added.
Model correctness: TicketNoteResponse.created_by_name aligned to Option to match the nullable TicketNote join (no panic/empty-string coercion on NULL); KbArticle and KbArticleVersion datetime fields switched from Option to Option<DateTime> (date_only now formats a DateTime), matching sibling modules and rejecting malformed timestamps at decode; table Pagination clamps current_page and per_page to >=1 so a direct caller cannot divide-by-zero or underflow; Address::is_empty now accounts for the country field.
#MAPPS-139
Co-Authored-By: Claude Opus 4.8 (1M context) noreply@anthropic.com
Add-note failures now surface in the modal: a new note_error signal captures the empty-content and POST-error cases (previously only logged to the console while the spinner stopped and the user assumed success), shown as a red banner and cleared on open and on success. KB home search carries the typed term to the article list. The list route gains a `?:q` query segment; the home search submit pushes Route::KBArticleList { q }, the route wrapper forwards it as `initial_q`, and KBArticleListPage seeds its search signal from it so the list opens pre-filtered. Company picker: corrected the module doc to the real `/contacts/companies` path and dropped the false debounce claim (no debounce is implemented), and added a transparent full-viewport backdrop (z-10, below the z-20 dropdown) whose onclick dismisses the dropdown so it no longer stays open permanently. SLA status: closed OR resolved tickets are now NotApplicable so a resolved-not-closed ticket no longer shows Breached, and the warning band is derived from the SLA target window (final quarter of creation->due) instead of a fixed 2h so short SLAs still get a warning before breaching. Tests updated and a resolved-ticket case added. Model correctness: TicketNoteResponse.created_by_name aligned to Option<String> to match the nullable TicketNote join (no panic/empty-string coercion on NULL); KbArticle and KbArticleVersion datetime fields switched from Option<String> to Option<DateTime<Utc>> (date_only now formats a DateTime), matching sibling modules and rejecting malformed timestamps at decode; table Pagination clamps current_page and per_page to >=1 so a direct caller cannot divide-by-zero or underflow; Address::is_empty now accounts for the country field. #MAPPS-139 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>