Skip to content

feat(ui): add htmx ui foundation#188

Open
angela-helios wants to merge 4 commits into
HeliosSoftware:feat/htmx-ui-foundationfrom
angela-helios:feat/htmx-ui-foundation
Open

feat(ui): add htmx ui foundation#188
angela-helios wants to merge 4 commits into
HeliosSoftware:feat/htmx-ui-foundationfrom
angela-helios:feat/htmx-ui-foundation

Conversation

@angela-helios

Copy link
Copy Markdown

Summary

Adds a minimal HTMX-based UI foundation for HFS.

This introduces a new optional helios-ui crate under crates/ui, mounted by the hfs binary when the ui feature is enabled. The UI currently exposes a small proof-of-concept page at /ui that displays the running HFS version, plus an HTMX-powered /ui/version partial refresh endpoint.

The headless feature path is also included so HFS can be built without compiling or mounting the UI.

Changes

  • Add new helios-ui crate for optional web UI code
  • Add ui default feature to helios-hfs
  • Add headless feature flag for no-UI builds
  • Mount /ui and /ui/version from the HFS binary when UI is enabled
  • Add minimal HTMX interaction for refreshing the displayed HFS version
  • Keep FHIR routes available as fallback behind the UI routes

Testing

  • cargo fmt --all
  • cargo test -p helios-ui
  • cargo check -p helios-hfs
  • cargo check -p helios-hfs --no-default-features --features R4,sqlite,headless

@smunini smunini left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@angela-helios I would prefer to name the crate 'ui' on disk instead of 'web' and have the crate name be 'helios-ui' instead of 'helios-web' I think web is too much of a generic term.

@angela-helios angela-helios requested a review from smunini July 3, 2026 15:19
@doug-helios

Copy link
Copy Markdown
Contributor

NIT should we update CLAUDE.md? @angela-helios @smunini @mauripunzueta

Comment thread crates/web/Cargo.toml Outdated

# Compile-time, type-checked, auto-escaping templates (Jinja2-like).
# Markup lives in templates/, never in Rust source.
askama = "0.12"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I believe this is outdated as there is 0.16.0 already available

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants