fix(apps): correct page and component defects across tickets, KB, picker, SLA, models #126

Merged
David merged 2 commits from fix/mapps-139-page-component-correctness into main 2026-06-13 14:54:55 +02:00
Owner

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 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>
fix(apps): correct page and component defects across tickets, KB, picker, SLA, models
All checks were successful
Check / clippy + fmt + tests (pull_request) Successful in 1m26s
133287271f
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>
Merge branch 'main' into fix/mapps-139-page-component-correctness
All checks were successful
Create release / Create release from merged PR (pull_request) Has been skipped
Check / clippy + fmt + tests (pull_request) Successful in 55s
f7a313f1e7
David merged commit 9f813e056a into main 2026-06-13 14:54:55 +02:00
David deleted branch fix/mapps-139-page-component-correctness 2026-06-13 14:54:55 +02:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
psa-systems/mokosh-apps!126
No description provided.