- scaffold 14 placeholder crates (app, db, engine, gen, http, logic,
policy, ql, service, sub, txn, ui, value, wal) — empty Cargo.toml +
src/lib.rs to receive code phase-by-phase from `rt`
- restructure docs/examples/ecommerce into multi-app layout: apps/admin
and apps/storefront, with shared/ types/logic/components, per-app
app.wo + wo.toml, and reusable .htmlx components (layout, money,
order-row)
- add reference/rest/{blog,ecommerce}.rest — VS Code/JetBrains HTTP
request files driving the running prototype, including 501/404/405
expectations for stubbed endpoints
- add docs/plan/09-concurrency-scaleout.md and docs/plan/ui/00-overview.md;
refine docs/plan/assembly/02-writeonce-stance.md
- refresh templates (about, article, header/footer, home, layout, styles)
and add static favicon/logo
- add infra/sync.sh and tighten .gitignore for reference/ symlinks
31 lines
1 KiB
Text
31 lines
1 KiB
Text
-- Storefront home — public product list. Live inventory: when a checkout
|
|
-- reserves the last unit, the "In stock" badge flips to "Out of stock" on
|
|
-- every open browser without refresh.
|
|
--
|
|
-- Angular-component-style layout: home/{home.wo, home.htmlx, home.css}.
|
|
-- home.wo is the declarative spec; home.htmlx (when added) lets an author
|
|
-- hand-tune the template while the compiler still generates the
|
|
-- <wo:live> + wo:bind subscription glue. See
|
|
-- [docs/plan/ui/00-overview.md](../../../../../plan/ui/00-overview.md).
|
|
|
|
##ui
|
|
#home
|
|
title: "Shop"
|
|
source: Product
|
|
live: true
|
|
|
|
columns:
|
|
- meta.images[0] label: "" renderer: image
|
|
- name
|
|
- sku renderer: code
|
|
- price renderer: money
|
|
- available label: "In stock" renderer: stock-badge -- computed on Product
|
|
|
|
sort:
|
|
default: name asc
|
|
|
|
actions:
|
|
row-click: /product/:sku
|
|
add-to-cart: add_to_cart(self, 1) role: Customer | Ops | Admin
|
|
|
|
pagination: 24
|