Repository navigation
Duty picker fixes and one shared search-result row - #741
Conversation
…hared rows - Duty search_text now includes the institution name and padalinys shortname, so "atstovas matematikos" / "pirmininkas MIF" match (Typesense matches all tokens inside one field; duty and institution names were separate fields). - DutySearchField renders the shared SearchHitRow (highlights, current holders, tenant and inactive badges) and offers "Rodyti daugiau" with keyboard support. SearchHitRow gets an optional trailing="none" for pickers. - AssignDutyUserSheet: "use original duty title" moved out of Papildomi nustatymai. - Changelog and Pareigybės / Nariai guide pages updated. Deploy: reindex duties (scout:import "App\Models\Duty") for the combined search. Written by Codex. Claude review: plan, diff review, test runs, fixed one assertion that relied on placeholder replacement the test i18n mock doesn't do. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- InlineSearchField: the inline combobox shell (keyboard nav, show more, selected card) rendering SearchHitRow; DutySearchField and MemberSearchField are now thin wrappers with unchanged APIs. - UserSearchField: people from api.v1.admin.users.search (with create-new), mapped via normalizeUserApiHit; ProblemForm's hand-rolled reka combobox for the responsible person now uses it. - useSearchHitMatches + SearchHitCardText: ActionWindow institution search cards show highlighted matches and status like SearchHitRow. - InvolvedUsersPicker shows email under the name when the payload has it (the support-request payloads don't include email today). - pickers.md rule: don't hand-roll search result rows. Changelog and guides. Written by Codex. Claude review: restored constraint comments Codex trimmed in InstitutionSearchScreen, braces on one-line ifs, EN changelog wording. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Bundle ReportChanges will increase total bundle size by 560 bytes (0.01%) ⬆️. This is within the configured threshold ✅ Detailed changes
Affected Assets, Files, and Routes:view changes for bundle: vusa-frontend-esmAssets Changed:
Files in
Files in
Files in
Files in
Files in
Files in
Files in
Files in
Files in
Files in
Files in
Files in
Files in
|
Codecov Report❌ Patch coverage is 📢 Thoughts on this report? Let us know! |
- AssignDutyUserSheet: "use original duty title" sits below the dates. - SearchSplitView panes are bg-card, so picker results no longer sit on the grey paper inside a white dialog; ActionChoiceButton is bg-card in light mode. - SearchResultListItem: one 18px square mark for both modes (check for many, filled square for one) inside a 32/44px target, with checkbox/radio roles. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
MeetingWhenScreen and CheckInUntilScreen turned the chevron off, so ActionChoiceButton drew a check box, but never passed which preset matched the draft; the box stayed empty after going back. Presets now compare with draft.meeting.start_time / draft.checkIn.endDate, and the "other date" choice is marked when none matches. Institution picker, institution search and the activity-request campaign screen mark the earlier choice too (true | undefined, so the rest keep their chevrons). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Vue casts an omitted boolean prop to false, so ActionChoiceButton's `selected !== undefined` was always true: every card, even on "Ką norėtum padaryti?", drew an empty check box instead of a chevron. `showChevron` is replaced by `indicator: 'chevron' | 'check'`. Steps that move on keep the chevron and mark the earlier answer with a brand outline and aria-current; the activity-request institution/people toggles and the agenda item type dialog use check boxes with aria-pressed. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
An answer that fills in the record (institution, meeting type, date, time, check-in end, request type and mode) shows a check box and marks the earlier answer. Menus (Ką norėtum padaryti?, persona actions, report branching) and options that open another screen (Kita institucija, other date or time) keep the chevron. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Summary
Duty picker in "Pridėti pareigybę" (user record)
search_text_lt/ennow also carries the institution name and padalinys shortname (SearchText::forModel).SearchHitRow: highlighted matches, current holders, inactive-institution badge.One search-result row, a few shells
InlineSearchField— the inline picker shell (sheets/forms);DutySearchFieldandMemberSearchFieldare thin wrappers with unchanged APIs.UserSearchField— people fromusers.search(with create-new), vianormalizeUserApiHit; replaces ProblemForm's hand-rolled reka combobox.useSearchHitMatches+SearchHitCardText— ActionWindow institution search cards get highlights/status likeSearchHitRow.InvolvedUsersPickershows email when present (support-request payloads don't send it today; backend left unchanged)..ai/rules/pickers.md: don't hand-roll result rows.Changelog (LT/EN) and guide pages (Pareigybės, Nariai, Problemos, Platforma) updated.
Who made what
Deploy notes
php artisan scout:import "App\Models\Duty".Check by hand
Tests
DutySearchField.component.test.ts, updatedAssignDutyUserSheet,SearchHitRow,ProblemFormtests.tests/Feature/Search/SearchExperienceTest.php(new duty search-text case).🤖 Generated with Claude Code