Skip to content

Give the web tools a page of their own, and bring the three that work into the new design #210

Description

@openipc-ai

Part of #206 (Phase 1). Depends on nothing. Blocks #217.

Why

June listed /tools as a Phase 2 page. Today there is no landing page: the three working tools (/tools/firmware-partitions-calculation, /tools/high-resolution-timer, /tools/qr-code-generator) hang under a "Web tools" header in the Ecosystem dropdown, are absent from the footer, and render in the old container styled by pages/_calculator.scss. /utilities is a hardcoded English list of seven vendor tools with /dl/ download links, sitting next to them. The high-resolution timer is the tool for measuring glass-to-glass latency, and /low-latency does not link it. The QR generator loads qrcode@1.5.1 from jsdelivr, the one third-party script left after #121 removed the CDN fonts for the same reason. timelaps-interval-calculator.html.erb is an unrouted form stub with no calculation, no i18n and a typo in its name (config/routes.rb:138-142 documents it).

What to change

  • pages#tools, /tools, full-bleed, three locales: a section for the web tools we host, one card per tool, and a section for the vendor downloads folded from utilities.html.erb (the seven tools become data in PagesHelper, labels translated; the /dl/ links stay as they are, served from the host bind-mount). /utilities becomes a 301 to /tools, tested.
  • The three tool pages set content_for :fullwidth and pages/_calculator.scss is rewritten against the new tokens. Inline scripts stay inline: the timer's comment on why it must not depend on the JS bundle holds, and the partition calculator keeps its Turbo-safe IIFE. The calculator's hardcoded validation strings ("Unknown MTD device name …") move to i18n.
  • qrcode.js is vendored into the tree and served through the asset pipeline; the jsdelivr tag and its SRI hash go.
  • /low-latency links the timer where it describes measuring latency; the footer's Ecosystem column links /tools.
  • Delete app/views/pages/timelaps-interval-calculator.html.erb and the routes.rb comment about it. Nothing routes to it, nothing tests it, and it computes nothing.
  • The navbar's "Web tools" group becomes a single /tools entry.

Done means

  • /tools and the three tools render in three locales with no missing translation; all four are in relaunch_pages_test.rb's list.
  • grep -r 'cdn.jsdelivr' app/ config/ is empty.
  • /utilities answers 301 to /tools in the redirect test; the timelapse template is gone from the tree.
  • Screenshots of the four pages before any PR.

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions