Bug fixes + interview-mode app view + mobile-responsive admin#24
Merged
Conversation
Surfaces /dashboard from the global nav so signed-in users can return to the action-card grid without backing up through their browser history. Added in both the desktop list and the mobile drawer.
When the form is opened from /dashboard's "Host an Activity" card, no day is implied by the entry point, so the user couldn't pick which day their activity belonged to — everything defaulted to Saturday. Render a Day select dropdown in that case (driven by ScheduleItem::DAY_META). When the form is opened from /plan's "+ Add custom block" link the day is already implied by the section, so keep using a hidden field there. The distinguisher is whether the caller passes show_day_picker: true.
Single source of truth — the override flows through kind_display_label and propagates to the kind filter chips, public schedule cards, and admin index automatically.
The confirmation page advertised "2 pages" but the rendered PDF is actually 3 pages — page-one's instructions overflow into a second sheet before the notary addendum starts on the third.
The show page was a single dense card of <dl>/<dt>/<dd> styled with undefined CSS classes, so the questions and answers blurred together and the attaché had no way to scan during the stamping interview. Restructure as: - Header row with applicant + appointment + submitted timestamp - Two-up "interview cheat sheet" panel: notary assignment (with follow-up prompt) and Section 3 random pool draw - Pill-style jump-nav across the five sections - Each section gets a strong header, instructions, and (for section 3) a "random pool" badge so the attaché knows the questions vary - Each Q&A renders as its own card: a "1.3" tag, the external_id, the question label in muted text, and the answer in a left-accented callout box that's the visual focus Answer rendering by type: - short/long/select/date: prose in the callout, simple_format-aware - checkbox_group: pill chips instead of bulleted list (faster to scan) - checkbox: green "✓ Affirmed" / red "✗ Not affirmed" - blank: muted italic "— Blank —" Extracts a _question_row partial to keep the case-by-field-type logic out of the show template.
Replace the card-per-question layout with a dense 3-column grid ([1.3] | question | answer) so the whole application fits without scrolling far. Drop section instructions and jump-nav (interview context, not form-filling). Collapse cheat-sheet panel into a single-row notary strip — pool draw IDs were noise and got cut. Section 3 (the randomized pool) gets a tinted background and a prominent "★ Randomized question pool" badge so the attaché's eye lands on it instantly; gold tags on each row carry that signal through when scrolling. Restore "Download PDF" button text — the truncated "PDF" label was unclear about the action.
The admin navy bar was a single flex row with seven inline links, which collapsed badly on mobile. Mirror the signed-in user navbar pattern: brand left, burger right, with a toggleable drawer that stacks the links on screens below the lg breakpoint. Drops the flex layout from .admin-nav so the inner toggle wrapper handles both desktop row and mobile column flows. Reuses the existing toggle Stimulus controller, the burger SVG markup, and the click@window-to-close behavior.
Missed in a694778 — the partial still emitted the old qa-question card markup, which paired with the new qa-row CSS meant questions rendered unstyled on the deployed page.
Wrap every admin table in a .table-scroll container with overflow-x: auto so wide tables (Users, Schedule Items, Embassy Applications, Delivered, Question Bank, Notary Pool, Archived Questions) become horizontally swipable on narrow screens instead of blowing out the layout. Move the table's border-radius and shadow up to the wrapper so the visual chrome survives the overflow clip. Add gap-3 flex-wrap to admin page header rows so the title and action buttons can stack vertically on mobile instead of overlapping. Same for the search forms on the embassy application queues. Add flex-wrap to the question-bank section headers (CSS-side fix).
The hand-written CSS in application.css only defines lg:block and lg:hidden — there's no lg:flex utility. The desktop link container had "hidden lg:flex" so on desktop the hidden class never got overridden and the links stayed display: none. Mirror the user navbar's nesting pattern: outer "hidden lg:block" wrapper for visibility, inner "flex items-center gap-x-6" div for layout. The inner flex always resolves; the outer block toggles in/out at the lg breakpoint.
The mobile-responsive rewrite changed the admin nav markup and used Tailwind utilities (lg:flex, gap-x-6) that aren't actually defined in the hand-rolled application.css, so links rendered smushed and the desktop navbar no longer matched the screenshot it was supposed to mirror. Restore the original markup and the original .admin-nav CSS (display: flex, gap: 1.5rem, padding: 0.875rem 2rem) byte-for-byte. The mobile burger is now an additional last-child of the nav with display: none on desktop — zero visual effect at lg+ widths. Below the lg breakpoint, a CSS rule hides every nav child except the brand and burger, and the drawer (a sibling of the nav, never visible on desktop thanks to a !important guard) reveals the full link list when toggled. Also rename the "User Dashboard" link to "back to User Dashboard" in both the desktop nav and the mobile drawer.
|
🚅 Deployed to the ruby-embassy-pr-24 environment in ruby-embassy
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
KIND_DISPLAY_OVERRIDES, and a corrected page count ("3 pages") on the passport application confirmation page.[1.3] | question | answer), notary cheat-sheet strip, prominent Section 3 random-pool callout (yellow tint + badge); replaces the previous unstyled<dl>markup that referenced undefined CSS classes..table-scrollcontainer withoverflow-x: auto(border-radius/shadow moved to the wrapper to survive overflow clipping), and admin index header rows now usegap-3 flex-wrapso action buttons stack on narrow screens instead of squashing..admin-navflex/gap CSS is restored byte-for-byte and the burger lives entirely below the lg breakpoint via a CSS-only:not()rule. Plus a "Back to User Dashboard" rename and a new "Guide" link in the user navbar pointing toblueridgeruby.com/guide.Test plan