Leptos-based staff portal SPA shell with module registration
| Tier | platform |
| Role | unclassified (baselined) |
| Path | crates/platform/staff-ui |
| Edition | 2021 |
| Targets | platform_staff_ui |
| Public items | 401 across 154 modules |
| Tests | 153 |
What it is for
Leptos-based staff portal SPA shell with module registration.
This crate provides a reusable staff UI shell that can be customized with domain-specific modules.
Capabilities
crate root
Leptos-based staff portal SPA shell with module registration.
| Item |
|---|
fn ProtectedRoute(children : ChildrenFn) -> impl IntoView |
AppSwitcherTarget
Leptos-based staff portal SPA shell with module registration.
| Item |
|---|
pub struct AppSwitcherTarget |
ModuleNavItems
Leptos-based staff portal SPA shell with module registration.
| Item |
|---|
pub struct ModuleNavItems |
ModuleRouteParams
Leptos-based staff portal SPA shell with module registration.
| Item |
|---|
pub struct ModuleRouteParams |
StaffAppBuilder
Leptos-based staff portal SPA shell with module registration.
| Item |
|---|
pub struct StaffAppBuilder |
StaffAppBuilder :: fn new() -> Self |
StaffAppBuilder :: fn config(mut self, config : StaffConfig) -> Self |
StaffAppBuilder :: fn api_url(mut self, url : impl Into <String>) -> Self |
StaffAppBuilder :: fn title(mut self, title : impl Into <String>) -> Self |
StaffAppBuilder :: fn module(mut self, module : StaffModule) -> Self |
StaffAppBuilder :: fn app_switcher_targets(mut self, targets : Vec <AppSwitcherTarget>) -> Self |
StaffAppBuilder :: fn i18n(mut self, ctx : rust_patterns_i18n::I18nContext) -> Self |
StaffAppBuilder :: fn get_config(& self) -> StaffConfig |
StaffAppBuilder :: fn get_modules(& self) -> ModuleRegistry |
StaffAppBuilder :: fn default() -> Self |
StaffConfig
Leptos-based staff portal SPA shell with module registration.
| Item |
|---|
pub struct StaffConfig |
StaffConfig :: fn default() -> Self |
fn StaffApp(# doc = " Configuration for the staff shell." config : StaffConfig, # doc = " Module registry with registered modules." # prop(default = ModuleRegistry::new()) modules : ModuleRegistry, # doc = " Additional routes to add outside the staff layout." # prop(optional) _additional_routes : Option <ChildrenFn>,) -> impl IntoView |
access (other)
Access-settings admin module — Sprint 23 US-23.4.
| Item |
|---|
fn access_module() -> StaffModule |
access::pages (other)
Access-settings editor — Sprint 23 US-23.4.
| Item |
|---|
fn AccessSettingsPage() -> impl IntoView |
account (other)
Account settings module (Sprint 0.85) — the signed-in user's own account
| Item |
|---|
fn account_module() -> StaffModule |
account::pages (other)
My Account page — the staff-ui mount of the shared
| Item |
|---|
fn AccountPage() -> impl IntoView |
accounting (other)
Accounting mode dashboard (/staff/accounting). VISUAL MOCKUP ONLY
| Item |
|---|
fn accounting_module() -> StaffModule |
accounting::pages (other)
Accounting dashboard view. VISUAL MOCKUP -- static content, no API
| Item |
|---|
fn AccountingDashboard() -> impl IntoView |
accounts_payable (other)
Accounts Payable (/staff/accounting/payable). VISUAL MOCKUP ONLY
| Item |
|---|
fn accounts_payable_module() -> StaffModule |
accounts_payable::pages (other)
Accounts Payable view. VISUAL MOCKUP -- static content, no API call.
| Item |
|---|
fn AccountsPayablePage() -> impl IntoView |
accounts_receivable (other)
Accounts Receivable (/staff/accounting/receivable). VISUAL MOCKUP
| Item |
|---|
fn accounts_receivable_module() -> StaffModule |
accounts_receivable::pages (other)
Accounts Receivable view. VISUAL MOCKUP -- static content, no API
| Item |
|---|
fn AccountsReceivablePage() -> impl IntoView |
analytics (other)
Analytics module — Sprint 29 dashboard + Sprint 30 reports Wave 1.
| Item |
|---|
fn analytics_module() -> StaffModule |
analytics::pages::conversions (other)
Sprint 32 — Conversions report.
| Item |
|---|
fn ConversionsPage() -> impl IntoView |
analytics::pages::dashboard (other)
Sprint 29 dashboard — overview tiles + SVG trend chart.
| Item |
|---|
fn DashboardPage() -> impl IntoView |
analytics::pages::devices (other)
Sprint 32 — Devices report.
| Item |
|---|
fn DevicesPage() -> impl IntoView |
analytics::pages::geo (other)
Sprint 30 US-30.3 — Geography report.
| Item |
|---|
fn GeoPage() -> impl IntoView |
analytics::pages::pages_report (other)
Sprint 30 US-30.1 — Pages report (top paths by conversions).
| Item |
|---|
fn PagesReportPage() -> impl IntoView |
analytics::pages::path_404 (other)
Sprint 30 US-30.2 — 404 dead-ends report.
| Item |
|---|
fn Path404Page() -> impl IntoView |
analytics::pages::shared (other)
Shared helpers for analytics pages — window selector, date math,
| Item |
|---|
pub const WINDOWS: & i64 |
pub const DEFAULT_WINDOW: i64 |
fn window_to_dates(window : i64) ->(String, String) |
fn WindowSelector(current : RwSignal <i64>) -> impl IntoView |
fn ReportsNav(active : & 'static str) -> impl IntoView |
analytics::pages::time (other)
Sprint 30 US-30.4 — Time-of-day call-conversion heatmap.
| Item |
|---|
fn TimePage() -> impl IntoView |
analytics::pages::visitors (other)
Sprint 32 — Visitors report.
| Item |
|---|
fn VisitorsPage() -> impl IntoView |
api (other)
API client for making HTTP requests to the backend.
| Item |
|---|
fn encode_param(s : & str) -> String |
ApiClient:ApiClient
API client for making HTTP requests to the backend.
| Item |
|---|
pub struct ApiClient |
ApiClient:base
API client for making HTTP requests to the backend.
| Item |
|---|
ApiClient :: fn base_url(& self) -> & str |
ApiClient:csrf
API client for making HTTP requests to the backend.
| Item |
|---|
ApiClient :: fn csrf_cookie_name(& self) -> & str |
ApiClient:delete
API client for making HTTP requests to the backend.
| Item |
|---|
ApiClient :: async fn delete <T : DeserializeOwned>(& self, path : & str) -> Result <T, ApiError> |
ApiClient :: async fn delete_no_content(& self, path : & str) -> Result <(), ApiError> |
ApiClient:get
API client for making HTTP requests to the backend.
| Item |
|---|
ApiClient :: async fn get <T : DeserializeOwned>(& self, path : & str) -> Result <T, ApiError> |
ApiClient :: async fn get_optional <T : DeserializeOwned>(& self, path : & str,) -> Result <Option <T>, ApiError> |
ApiClient:new
API client for making HTTP requests to the backend.
| Item |
|---|
ApiClient :: fn new(base_url : & str) -> Self |
ApiClient:patch
API client for making HTTP requests to the backend.
| Item |
|---|
ApiClient :: async fn patch <T : DeserializeOwned, B : Serialize>(& self, path : & str, body : & B,) -> Result <T, ApiError> |
ApiClient :: async fn patch_no_content <B : Serialize>(& self, path : & str, body : & B,) -> Result <(), ApiError> |
ApiClient:post
API client for making HTTP requests to the backend.
| Item |
|---|
ApiClient :: async fn post <T : DeserializeOwned, B : Serialize>(& self, path : & str, body : & B,) -> Result <T, ApiError> |
ApiClient :: async fn post_action <B : Serialize>(& self, path : & str, body : & B) -> Result <(), ApiError> |
ApiClient :: async fn post_no_content(& self, path : & str) -> Result <(), ApiError> |
ApiClient:put
API client for making HTTP requests to the backend.
| Item |
|---|
ApiClient :: async fn put <T : DeserializeOwned, B : Serialize>(& self, path : & str, body : & B,) -> Result <T, ApiError> |
ApiClient :: async fn put_action <B : Serialize>(& self, path : & str, body : & B) -> Result <(), ApiError> |
ApiClient:upload
API client for making HTTP requests to the backend.
| Item |
|---|
ApiClient :: async fn upload <T : DeserializeOwned>(& self, path : & str, form_data : web_sys::FormData,) -> Result <T, ApiError> |
ApiClient:use
API client for making HTTP requests to the backend.
| Item |
|---|
fn use_api() -> ApiClient |
ApiClient:with
API client for making HTTP requests to the backend.
| Item |
|---|
ApiClient :: fn with_csrf_cookie(mut self, name : impl Into <String>) -> Self |
ApiClient :: fn with_unauthorized_handler(mut self, cb : Callback <()>) -> Self |
AsyncResource
API client for making HTTP requests to the backend.
| Item |
|---|
pub struct AsyncResource<T : Clone + 'static> |
fn create_api_resource <T, F, Fut>(fetcher : F) -> AsyncResource <T> where T : Clone + 'static, F : Fn() -> Fut + Clone + 'static, Fut : std::future::Future <Output = Result <T, ApiError>>, |
AsyncResource<T>
API client for making HTTP requests to the backend.
| Item |
|---|
AsyncResource<T> :: fn refetch(& self) |
api_keys (other)
API keys management module — Sprint 0.67.
| Item |
|---|
fn api_keys_module() -> StaffModule |
api_keys::pages (other)
API keys management page — list + create (plaintext shown once) + revoke.
| Item |
|---|
fn ApiKeysPage() -> impl IntoView |
approvals (other)
Approvals admin module — Sprint 19 (Track 3).
| Item |
|---|
fn approvals_module() -> StaffModule |
approvals::pages (other)
Approvals admin page — reviewer queue + approve/reject buttons.
| Item |
|---|
fn ApprovalsPage() -> impl IntoView |
ApprovalProposal
Approvals admin page — reviewer queue + approve/reject buttons.
| Item |
|---|
pub struct ApprovalProposal |
attachments (other)
Attachments admin module — Sprint 18 (Track 3) + Sprint 18.C
| Item |
|---|
fn attachments_module() -> StaffModule |
attachments::audit_page (other)
Attachment audit-event log viewer — Sprint 18.C Phase 2.
| Item |
|---|
fn AttachmentAuditPage() -> impl IntoView |
AuditEvent
Attachment audit-event log viewer — Sprint 18.C Phase 2.
| Item |
|---|
pub struct AuditEvent |
attachments::pages (other)
Attachments admin page — list by target entity + per-row
| Item |
|---|
fn AttachmentsPage() -> impl IntoView |
Attachment
Attachments admin page — list by target entity + per-row
| Item |
|---|
pub struct Attachment |
audit (other)
Logs viewer (read-only) — Sprint 0.54: tabbed audit + job-runs.
| Item |
|---|
fn audit_module() -> StaffModule |
audit::pages (other)
Logs viewer (Sprint 0.54) — tabbed, read-only views over the audit spine +
| Item |
|---|
fn LogsPage() -> impl IntoView |
auth (other)
Authentication context and provider.
| Item |
|---|
fn AuthProvider(children : Children) -> impl IntoView |
fn use_user() -> Signal <Option <UserInfo>> |
fn use_require_auth() -> Signal <Option <UserInfo>> |
fn RequireRole(# doc = " Required role name." role : & 'static str, # doc = " Content to show if user has role." children : ChildrenFn, # doc = " Optional fallback if user doesn't have role." # prop(optional) fallback : Option <ChildrenFn>,) -> impl IntoView |
fn RequirePermission(# doc = " Required permission name." permission : & 'static str, # doc = " Content to show if user has permission." children : ChildrenFn, # doc = " Optional fallback if user doesn't have permission." # prop(optional) fallback : Option <ChildrenFn>,) -> impl IntoView |
AuthContext:AuthContext
Authentication context and provider.
| Item |
|---|
pub struct AuthContext |
AuthContext:check
Authentication context and provider.
| Item |
|---|
AuthContext :: async fn check_session_with_api(& self, api : ApiClient) |
AuthContext :: async fn check_session(& self) |
AuthContext:has
Authentication context and provider.
| Item |
|---|
AuthContext :: fn has_role(& self, role : & str) -> bool |
AuthContext :: fn has_permission(& self, permission : & str) -> bool |
AuthContext:login
Authentication context and provider.
| Item |
|---|
AuthContext :: async fn login_with_api(& self, api : ApiClient, email : String, password : String,) -> Result <(), ApiError> |
AuthContext :: async fn login(& self, email : String, password : String) -> Result <(), ApiError> |
AuthContext:logout
Authentication context and provider.
| Item |
|---|
AuthContext :: async fn logout(& self) -> Result <(), ApiError> |
AuthContext:refresh
Authentication context and provider.
| Item |
|---|
AuthContext :: async fn refresh_tenants_with_api(& self, api : ApiClient) |
AuthContext:select
Authentication context and provider.
| Item |
|---|
AuthContext :: fn select_tenant(& self, tenant : TenantInfo) |
AuthContext:selected
Authentication context and provider.
| Item |
|---|
AuthContext :: fn selected_tenant_id(& self) -> Option <Uuid> |
AuthContext:switch
Authentication context and provider.
| Item |
|---|
AuthContext :: async fn switch_tenant_with_api(& self, api : ApiClient, tenant : TenantInfo,) -> Result <(), ApiError> |
AuthContext:use
Authentication context and provider.
| Item |
|---|
fn use_auth() -> AuthContext |
backdrops (other)
Backdrops module — operator binds marketing slugs (home, about,
| Item |
|---|
fn backdrops_module() -> StaffModule |
backdrops::pages (other)
Backdrops admin page. Ported from
| Item |
|---|
fn BackdropsPage() -> impl IntoView |
BackdropAssignment
Backdrops admin page. Ported from
| Item |
|---|
pub enum BackdropAssignment |
BackdropSlot
Backdrops admin page. Ported from
| Item |
|---|
pub struct BackdropSlot |
bank_reconciliation (other)
Bank & Reconciliation (/staff/accounting/bank). VISUAL MOCKUP ONLY
| Item |
|---|
fn bank_reconciliation_module() -> StaffModule |
bank_reconciliation::pages (other)
Bank & Reconciliation view. VISUAL MOCKUP -- static content, no API
| Item |
|---|
fn BankReconciliationPage() -> impl IntoView |
billing (other)
Billing/invoices (/staff/billing). VISUAL MOCKUP ONLY (operator,
| Item |
|---|
fn billing_module() -> StaffModule |
billing::pages (other)
Billing view. VISUAL MOCKUP -- static content, no API call. See
| Item |
|---|
fn BillingPage() -> impl IntoView |
budgeting (other)
Budgeting (/staff/accounting/budgeting). VISUAL MOCKUP ONLY
| Item |
|---|
fn budgeting_module() -> StaffModule |
budgeting::pages (other)
Budgeting view. VISUAL MOCKUP -- static content, no API call. See
| Item |
|---|
fn BudgetingPage() -> impl IntoView |
campaigns (other)
Marketing mode -- campaigns (/staff/campaigns). VISUAL MOCKUP ONLY
| Item |
|---|
fn campaigns_module() -> StaffModule |
campaigns::pages (other)
Campaigns view. VISUAL MOCKUP -- static content, no API call. See
| Item |
|---|
fn CampaignsPage() -> impl IntoView |
catalog (other)
Catalog admin module — Sprint 25.UI (Q1=B four-sibling
| Item |
|---|
fn catalog_module() -> StaffModule |
catalog::pages (other)
Catalog items admin page — list / search-filter / create /
| Item |
|---|
fn CatalogPage() -> impl IntoView |
CatalogItem
Catalog items admin page — list / search-filter / create /
| Item |
|---|
pub struct CatalogItem |
categories (other)
Blog categories module — Sprint 11 (Track 3).
| Item |
|---|
fn categories_module() -> StaffModule |
categories::pages (other)
Blog categories admin — list + create/edit + delete (with
| Item |
|---|
fn CategoriesPage() -> impl IntoView |
Category
Blog categories admin — list + create/edit + delete (with
| Item |
|---|
pub struct Category |
cms (other)
CMS module for content pages management.
| Item |
|---|
fn cms_module() -> StaffModule |
cms::composer (other)
Sprint 0.76 T4 — the block composer for composed pages.
| Item |
|---|
fn BlockComposer(field_name : String, label : String, metadata : RwSignal <serde_json::Value>, # doc = " Sprint 0.79 P1 — the context the blocks field lives in(page composer)." # doc = " Each block instance re-roots it onto its own block definition + surface." ctx : crate::cms::test_id::FieldContext, # doc = " The canonical data-test-id for the composer container(control =" # doc = " block_composer)." test_id : String, # doc = " The composer's own semantic data-field-path(the blocks field)." field_path : String, # doc = " The real data-test-perm role gate(cms.pages.write)." perm : String,) -> impl IntoView |
BlockDefinition
Sprint 0.76 T4 — the block composer for composed pages.
| Item |
|---|
pub struct BlockDefinition |
fn use_blocks() -> Resource <(), Result <Vec <BlockDefinition>, String>> |
BlocksResponse
Sprint 0.76 T4 — the block composer for composed pages.
| Item |
|---|
pub struct BlocksResponse |
SlotDefinition
Sprint 0.76 T4 — the block composer for composed pages.
| Item |
|---|
pub struct SlotDefinition |
SlotType
Sprint 0.76 T4 — the block composer for composed pages.
| Item |
|---|
pub enum SlotType |
SlotType :: fn is_list(self) -> bool |
SlotType :: fn allowed_widget_keys(self) -> & 'static & 'static str |
WidgetDefinition
Sprint 0.76 T4 — the block composer for composed pages.
| Item |
|---|
pub struct WidgetDefinition |
fn use_widgets() -> Resource <(), Result <Vec <WidgetDefinition>, String>> |
WidgetsResponse
Sprint 0.76 T4 — the block composer for composed pages.
| Item |
|---|
pub struct WidgetsResponse |
cms::gallery (other)
Sprint 0.75 — New-Page template gallery (US-0.75.1 / US-0.75.3).
| Item |
|---|
fn TemplateGallery() -> impl IntoView |
cms::pages (other)
Content pages UI components.
| Item |
|---|
fn PagesList() -> impl IntoView |
fn PageForm(# doc = " Page ID for editing, None for new page." # prop(optional) id : Option <String>,) -> impl IntoView |
fn PageDetail(# doc = " Page ID to display." id : String,) -> impl IntoView |
cms::preview (other)
Draft-preview viewer for content pages.
| Item |
|---|
fn PreviewShell(# doc = " Page ID to preview. None(no route param) renders an error." # prop(optional) id : Option <String>,) -> impl IntoView |
cms::slot_composer (other)
Sprint 0.76 T7 — the slot widget sub-composer for a block's declared slots.
| Item |
|---|
fn SlotComposer(slot_def : SlotDefinition, block_edit : RwSignal <serde_json::Value>, # doc = " Sprint 0.79 P1 — the enclosing block instance's context; each widget in" # doc = " this slot re-roots it onto its own widget surface+definition." block_ctx : crate::cms::test_id::FieldContext,) -> impl IntoView |
FieldDefinition
Sprint 46: per-template fieldset renderer for the page editor.
| Item |
|---|
pub struct FieldDefinition |
FieldKind
Sprint 46: per-template fieldset renderer for the page editor.
| Item |
|---|
pub enum FieldKind |
TemplateDefinition
Sprint 46: per-template fieldset renderer for the page editor.
| Item |
|---|
pub struct TemplateDefinition |
fn use_templates() -> Resource <(), Result <Vec <TemplateDefinition>, String>> |
fn find_definition(defs : & TemplateDefinition, key : & str) -> TemplateDefinition |
fn DynamicTemplateFields(definition : TemplateDefinition, metadata : RwSignal <serde_json::Value>,) -> impl IntoView |
TemplatesResponse
Sprint 46: per-template fieldset renderer for the page editor.
| Item |
|---|
pub struct TemplatesResponse |
cms::test_id (other)
Sprint 0.79 P1 — emit the E2E `data-test` contract on every CMS field
| Item |
|---|
pub const PAGE_WRITE_PERMISSION: & str |
fn control_for(kind : & FieldKind) -> ControlKind |
FieldContext
Sprint 0.79 P1 — emit the E2E `data-test` contract on every CMS field
| Item |
|---|
pub struct FieldContext |
FieldContext :: fn page_template(def : impl Into <String>) -> Self |
FieldContext :: fn descend(& self, segment : FieldPathSegment) -> Self |
FieldContext :: fn enter_definition(& self, surface : Surface, entity : Entity, def : impl Into <String>, instance_segment : FieldPathSegment,) -> Self |
FieldContext :: fn test_id(& self, field_name : & str, kind : & FieldKind) -> Option <TestId> |
FieldContext :: fn test_id_attr(& self, field_name : & str, kind : & FieldKind) -> String |
FieldContext :: fn field_path_attr(& self, field_name : & str) -> String |
cms::versions (other)
Page version history UI (Sprint 0.37 US-0.37.3).
| Item |
|---|
fn VersionTimeline(id : String) -> impl IntoView |
fn VersionDetail(id : String, vid : String) -> impl IntoView |
fn VersionDiff(id : String, vid : String) -> impl IntoView |
comments (other)
Comments admin module — Sprint 21 (Track 3).
| Item |
|---|
fn comments_module() -> StaffModule |
comments::pages (other)
Comments moderation page — list comments for an entity or
| Item |
|---|
fn CommentsPage() -> impl IntoView |
Comment
Comments moderation page — list comments for an entity or
| Item |
|---|
pub struct Comment |
contacts (other)
Contact inbox + (Sprint 10A.4 follow-on) per-contact detail with
| Item |
|---|
fn contacts_module() -> StaffModule |
contacts::pages (other)
Contact inbox page.
| Item |
|---|
fn ContactInboxPage() -> impl IntoView |
ContactSubmission
Contact inbox page.
| Item |
|---|
pub struct ContactSubmission |
crm (other)
CRM pipeline staff UI module.
| Item |
|---|
fn crm_module() -> StaffModule |
crm::pages (other)
CRM pipeline staff UI pages.
| Item |
|---|
fn OpportunityList() -> impl IntoView |
fn OpportunityCreate() -> impl IntoView |
fn OpportunityDetail() -> impl IntoView |
fn StageAdmin() -> impl IntoView |
dba (other)
God Mode -- DBA dashboard (/staff/dba). Real data over
| Item |
|---|
fn dba_module() -> StaffModule |
dba::pages (other)
DBA dashboard view. Reads /api/v1/admin/dba/overview (same-origin
| Item |
|---|
fn DbaPage() -> impl IntoView |
directory (other)
Directory listings module for staff platform.
| Item |
|---|
fn directory_module() -> StaffModule |
directory::pages (other)
Directory listing UI components.
| Item |
|---|
fn DirectoryList() -> impl IntoView |
fn DirectoryDetail(# doc = " Listing ID to display." id : String,) -> impl IntoView |
fn PendingList() -> impl IntoView |
fn DirectoryEdit(# doc = " Listing ID to edit." id : String,) -> impl IntoView |
fn PendingWidget() -> impl IntoView |
discounts (other)
Discounts admin module — Sprint 25.UI (Q1=B sibling) +
| Item |
|---|
fn discounts_module() -> StaffModule |
discounts::pages (other)
Customer-role discount rate editor — Sprint 25.tier admin
| Item |
|---|
fn DiscountsPage() -> impl IntoView |
DiscountRow
Customer-role discount rate editor — Sprint 25.tier admin
| Item |
|---|
pub struct DiscountRow |
dlp (other)
DLP masked-alert viewer staff UI module.
| Item |
|---|
fn dlp_module() -> StaffModule |
dlp::pages (other)
DLP alerts staff UI page.
| Item |
|---|
fn AlertsPage() -> impl IntoView |
docs (other)
Docs viewer module — Sprint 27 (Track 4 subsystem port).
| Item |
|---|
fn docs_module() -> StaffModule |
docs::pages (other)
Docs viewer page — Sprint 27.
| Item |
|---|
fn DocsPage() -> impl IntoView |
downloads (other)
Downloads admin module — Sprint 26 (Track 4 subsystem port).
| Item |
|---|
fn downloads_module() -> StaffModule |
downloads::pages (other)
Downloads admin page — Sprint 26.
| Item |
|---|
fn DownloadsPage() -> impl IntoView |
Download
Downloads admin page — Sprint 26.
| Item |
|---|
pub struct Download |
ecommerce (other)
Website mode -- ecommerce/storefront overview (/staff/ecommerce).
| Item |
|---|
fn ecommerce_module() -> StaffModule |
ecommerce::pages (other)
Ecommerce view. VISUAL MOCKUP -- static content, no API call. See
| Item |
|---|
fn EcommercePage() -> impl IntoView |
financial_reports (other)
Financial Reports (/staff/accounting/reports). VISUAL MOCKUP ONLY
| Item |
|---|
fn financial_reports_module() -> StaffModule |
financial_reports::pages (other)
Financial Reports view. VISUAL MOCKUP -- static content, no API call.
| Item |
|---|
fn FinancialReportsPage() -> impl IntoView |
fixed_assets (other)
Fixed Assets (/staff/accounting/assets). VISUAL MOCKUP ONLY
| Item |
|---|
fn fixed_assets_module() -> StaffModule |
fixed_assets::pages (other)
Fixed Assets view. VISUAL MOCKUP -- static content, no API call. See
| Item |
|---|
fn FixedAssetsPage() -> impl IntoView |
fleet (other)
Fleet/USD hosts dashboard (/staff/fleet) — sprint 3.102 correction
| Item |
|---|
fn fleet_module() -> StaffModule |
fleet::pages (other)
Fleet dashboard view. Reads /api/v1/admin/fleet/hosts (same-origin
| Item |
|---|
fn FleetDashboard() -> impl IntoView |
i18n (other)
Staff-UI internationalization (Sprint 0.84).
| Item |
|---|
fn build_i18n_context(initial : & str) -> rust_patterns_i18n::I18nContext |
fn use_locale() -> Signal <Locale> |
fn translate(locale : Locale, key : StaffKey, args : & Args) -> String |
fn t(key : StaffKey) -> impl Fn() -> String |
fn ti(key : StaffKey, args : Args) -> impl Fn() -> String |
fn t_dyn(key : StaffKey, make_args : impl Fn() -> Args + 'static) -> impl Fn() -> String |
fn tr_at(locale : Locale, key : StaffKey, args : & Args) -> String |
i18n::catalog (other)
Compile-time embedded, typed catalogs (EN + ES).
| Item |
|---|
fn en(key : StaffKey) -> Message |
fn es(key : StaffKey) -> Message |
fn lookup(locale : Locale, key : StaffKey) -> Message |
i18n::intl (other)
Locale-aware number / date formatting via the browser Intl API.
| Item |
|---|
fn number(locale : Locale, n : f64) -> String |
fn integer(locale : Locale, n : i64) -> String |
fn datetime_from_millis(locale : Locale, millis : f64) -> String |
StaffKey
StaffKey — the typed, semantic key set for every localized staff-UI string.
| Item |
|---|
pub enum StaffKey |
StaffKey :: const fn id(self) -> & 'static str |
Direction
Staff-UI locale — a closed, typed set of supported locales.
| Item |
|---|
pub enum Direction |
Direction :: const fn as_str(self) -> & 'static str |
Locale
Staff-UI locale — a closed, typed set of supported locales.
| Item |
|---|
pub enum Locale |
Locale :: const fn as_str(self) -> & 'static str |
Locale :: fn from_bcp47(tag : & str) -> Option <Locale> |
Locale :: fn from_bcp47_or_fallback(tag : & str) -> Locale |
Locale :: const fn dir(self) -> Direction |
Locale :: const fn endonym(self) -> & 'static str |
Locale :: fn fmt(& self, f : & mut fmt::Formatter <'_>) -> fmt::Result |
Locale :: fn default() -> Self |
i18n::message (other)
Message templates: typed interpolation + pluralization.
| Item |
|---|
fn render(message : & Message, locale : Locale, args : & Args) -> String |
fn placeholders(template : & str) -> std::collections::BTreeSet <String> |
Args
Message templates: typed interpolation + pluralization.
| Item |
|---|
pub struct Args |
Args :: fn none() -> Self |
Args :: fn count(mut self, n : i64) -> Self |
Args :: fn var(mut self, name : & 'static str, value : impl Into <String>) -> Self |
Args :: fn count_value(& self) -> Option <i64> |
Message
Message templates: typed interpolation + pluralization.
| Item |
|---|
pub enum Message |
fn message_placeholders(message : & Message) -> std::collections::BTreeSet <String> |
PluralCategory
Message templates: typed interpolation + pluralization.
| Item |
|---|
pub enum PluralCategory |
fn plural_category(locale : Locale, count : i64) -> PluralCategory |
PluralForms
Message templates: typed interpolation + pluralization.
| Item |
|---|
pub struct PluralForms |
PluralForms :: const fn new(one : & 'static str, other : & 'static str) -> Self |
PluralForms :: fn select(& self, category : PluralCategory) -> & 'static str |
PluralForms :: fn templates(& self) -> Vec <& 'static str> |
inventory (other)
Inventory admin module — Sprint 25.UI (Q1=B sibling).
| Item |
|---|
fn inventory_module() -> StaffModule |
inventory::pages (other)
Inventory locations admin page — Sprint 25.UI.
| Item |
|---|
fn InventoryPage() -> impl IntoView |
Location
Inventory locations admin page — Sprint 25.UI.
| Item |
|---|
pub struct Location |
jobs (other)
Jobs admin module — Sprint 16 (Track 3).
| Item |
|---|
fn jobs_module() -> StaffModule |
jobs::pages (other)
Jobs admin page — list + status filter + bulk retry-failed +
| Item |
|---|
fn JobsPage() -> impl IntoView |
Job
Jobs admin page — list + status filter + bulk retry-failed +
| Item |
|---|
pub struct Job |
layout (other)
Layout components for the staff shell.
| Item |
|---|
fn StaffLayout(children : Children) -> impl IntoView |
fn Sidebar() -> impl IntoView |
fn menu_label(tag : & str) -> String |
fn ApplicationSwitcher(title : String) -> impl IntoView |
fn TenantSwitcher() -> impl IntoView |
fn Header() -> impl IntoView |
ActiveMenuState
Layout components for the staff shell.
| Item |
|---|
pub struct ActiveMenuState |
SidebarExtra
Layout components for the staff shell.
| Item |
|---|
pub struct SidebarExtra |
SidebarState
Layout components for the staff shell.
| Item |
|---|
pub struct SidebarState |
SwitcherAction
Layout components for the staff shell.
| Item |
|---|
pub enum SwitcherAction |
fn app_switcher_options(current_title : & str, menus : & & 'static str, targets : & AppSwitcherTarget,) -> Vec <(String, String, SwitcherAction)> |
ledger (other)
Finance/ledger staff UI module.
| Item |
|---|
fn ledger_module() -> StaffModule |
ledger::pages (other)
Chart-of-accounts staff UI page.
| Item |
|---|
fn AccountsPage() -> impl IntoView |
links (other)
Marketing mode -- shortlink/QR tracking-link generator (/staff/links).
| Item |
|---|
fn links_module() -> StaffModule |
links::pages (other)
Links (shortlink/QR) view. VISUAL MOCKUP -- static content, no API
| Item |
|---|
fn LinksPage() -> impl IntoView |
media (other)
Media library module for asset management.
| Item |
|---|
fn media_module() -> StaffModule |
fn library_module() -> StaffModule |
media::library_page (other)
Library page: a "Media" tab (the existing pages::MediaList) plus a
| Item |
|---|
fn LibraryPage() -> impl IntoView |
media::pages (other)
Media library UI components.
| Item |
|---|
fn MediaList() -> impl IntoView |
fn MediaUpload(# doc = " Fires once per successfully uploaded asset." on_uploaded : Callback <MediaAsset>,) -> impl IntoView |
fn MediaPicker(# doc = " Whether the picker is open." open : ReadSignal <bool>, # doc = " Called when an asset is selected." on_select : Callback <MediaSummary>, # doc = " Called when the picker is closed." on_close : Callback <()>, # doc = " Filter to specific asset types." # prop(optional) asset_type : Option <AssetType>, # doc = " Filter to assets carrying this tag(e.g. \"backdrop\" for the pool picker)." # prop(optional) tag : Option <String>,) -> impl IntoView |
media::visibility (other)
Shared asset-visibility control (Sprint 0.78 T3).
| Item |
|---|
fn AssetVisibility(# doc = " The asset whose visibility this controls." asset_id : String, # doc = " The asset's current tier, if the caller already knows it(paints the toggle" # doc = " without a round-trip). Defaults to gated(fail-closed) when unknown." # prop(optional) initial_public : Option <bool>, # doc = " Fires after a successful tier change with the new \"is public\" value, so a" # doc = " parent grid can refresh its badge." # prop(optional) on_tier_change : Option <Callback <bool>>,) -> impl IntoView |
modules (other)
Module registration system for staff platform.
| Item |
|---|
fn permits(required : & String, held : & String) -> bool |
fn use_route_param(name : & str) -> String |
DashboardWidget
Module registration system for staff platform.
| Item |
|---|
pub struct DashboardWidget |
ModuleRegistry:ModuleRegistry
Module registration system for staff platform.
| Item |
|---|
pub struct ModuleRegistry |
ModuleRegistry:all
Module registration system for staff platform.
| Item |
|---|
ModuleRegistry :: fn all_nav_items(& self) -> Vec <NavItem> |
ModuleRegistry :: fn all_routes(& self) -> Vec <(String, ModuleRoute)> |
ModuleRegistry :: fn all_routes_scoped(& self) -> Vec <(String, ModuleRoute, Vec <String>)> |
ModuleRegistry :: fn all_widgets(& self) -> Vec <& DashboardWidget> |
ModuleRegistry:get
Module registration system for staff platform.
| Item |
|---|
ModuleRegistry :: fn get(& self, id : & str) -> Option <& StaffModule> |
ModuleRegistry:known
Module registration system for staff platform.
| Item |
|---|
ModuleRegistry :: fn known_menus(& self, held : & String) -> Vec <& 'static str> |
ModuleRegistry:modules
Module registration system for staff platform.
| Item |
|---|
ModuleRegistry :: fn modules(& self) -> Vec <& StaffModule> |
ModuleRegistry:nav
Module registration system for staff platform.
| Item |
|---|
ModuleRegistry :: fn nav_items_for(& self, held : & String) -> Vec <NavItem> |
ModuleRegistry :: fn nav_sections_for(& self, held : & String) -> Vec <NavSection> |
ModuleRegistry :: fn nav_sections_for_menu(& self, held : & String, active_menu : Option <& 'static str>,) -> Vec <NavSection> |
ModuleRegistry:new
Module registration system for staff platform.
| Item |
|---|
ModuleRegistry :: fn new() -> Self |
ModuleRegistry:provide
Module registration system for staff platform.
| Item |
|---|
fn provide_modules(registry : ModuleRegistry) |
ModuleRegistry:register
Module registration system for staff platform.
| Item |
|---|
ModuleRegistry :: fn register(& mut self, module : StaffModule) |
ModuleRegistry:use
Module registration system for staff platform.
| Item |
|---|
fn use_modules() -> ModuleRegistry |
ModuleRegistry:visible
Module registration system for staff platform.
| Item |
|---|
ModuleRegistry :: fn visible_modules(& self, held : & String) -> Vec <& StaffModule> |
ModuleRoute
Module registration system for staff platform.
| Item |
|---|
pub struct ModuleRoute |
ModuleRoute :: fn new <F>(path : impl Into <String>, view : F) -> Self where F : Fn() -> View + Send + Sync + 'static, |
ModuleRoute :: fn staff <F>(path : impl Into <String>, view : F) -> Self where F : Fn() -> View + Send + Sync + 'static, |
NavItem
Module registration system for staff platform.
| Item |
|---|
pub struct NavItem |
NavItem :: fn new(label : impl Into <NavLabel>, path : impl Into <String>) -> Self |
NavItem :: fn with_icon(mut self, icon : impl Into <String>) -> Self |
NavItem :: fn with_children(mut self, children : Vec <NavItem>) -> Self |
NavItem :: fn with_badge(mut self, badge : i64) -> Self |
NavItem :: fn exact(mut self) -> Self |
NavLabel
Module registration system for staff platform.
| Item |
|---|
pub enum NavLabel |
NavLabel :: fn resolve(& self, locale : Locale) -> String |
NavLabel :: fn from(key : StaffKey) -> Self |
NavLabel :: fn from(s : & str) -> Self |
NavLabel :: fn from(s : String) -> Self |
NavSection
Module registration system for staff platform.
| Item |
|---|
pub struct NavSection |
StaffModule
Module registration system for staff platform.
| Item |
|---|
pub struct StaffModule |
StaffModule :: fn builder(id : impl Into <String>) -> StaffModuleBuilder |
StaffModule :: fn is_permitted(& self, held : & String) -> bool |
StaffModule :: fn with_permissions <S : Into <String>>(mut self, permissions : Vec <S>) -> Self |
StaffModule :: fn in_group(mut self, group : impl Into <NavLabel>) -> Self |
StaffModule :: fn in_menu(mut self, menu_group : & 'static str) -> Self |
StaffModuleBuilder:StaffModuleBuilder
Module registration system for staff platform.
| Item |
|---|
pub struct StaffModuleBuilder |
StaffModuleBuilder:base
Module registration system for staff platform.
| Item |
|---|
StaffModuleBuilder :: fn base_path(mut self, path : impl Into <String>) -> Self |
StaffModuleBuilder:build
Module registration system for staff platform.
| Item |
|---|
StaffModuleBuilder :: fn build(self) -> StaffModule |
StaffModuleBuilder:group
Module registration system for staff platform.
| Item |
|---|
StaffModuleBuilder :: fn group(mut self, group : impl Into <NavLabel>) -> Self |
StaffModuleBuilder:icon
Module registration system for staff platform.
| Item |
|---|
StaffModuleBuilder :: fn icon(mut self, icon : impl Into <String>) -> Self |
StaffModuleBuilder:menu
Module registration system for staff platform.
| Item |
|---|
StaffModuleBuilder :: fn menu_group(mut self, menu_group : & 'static str) -> Self |
StaffModuleBuilder:name
Module registration system for staff platform.
| Item |
|---|
StaffModuleBuilder :: fn name(mut self, name : impl Into <String>) -> Self |
StaffModuleBuilder:nav
Module registration system for staff platform.
| Item |
|---|
StaffModuleBuilder :: fn nav_item(mut self, item : NavItem) -> Self |
StaffModuleBuilder :: fn nav_items(mut self, items : Vec <NavItem>) -> Self |
StaffModuleBuilder:new
Module registration system for staff platform.
| Item |
|---|
StaffModuleBuilder :: fn new(id : impl Into <String>) -> Self |
StaffModuleBuilder:permission
Module registration system for staff platform.
| Item |
|---|
StaffModuleBuilder :: fn permission(mut self, perm : impl Into <String>) -> Self |
StaffModuleBuilder:route
Module registration system for staff platform.
| Item |
|---|
StaffModuleBuilder :: fn route(mut self, route : ModuleRoute) -> Self |
StaffModuleBuilder:routes
Module registration system for staff platform.
| Item |
|---|
StaffModuleBuilder :: fn routes(mut self, routes : Vec <ModuleRoute>) -> Self |
StaffModuleBuilder:widget
Module registration system for staff platform.
| Item |
|---|
StaffModuleBuilder :: fn widget(mut self, widget : DashboardWidget) -> Self |
platform_leptos_components::NavLinkSpec
Module registration system for staff platform.
| Item |
|---|
platform_leptos_components::NavLinkSpec :: fn from(item : NavItem) -> Self |
notifications (other)
Notifications admin module — Sprint 15 (Track 3).
| Item |
|---|
fn notifications_module() -> StaffModule |
notifications::pages (other)
Notifications admin page — list + mark-read + mark-all-read.
| Item |
|---|
fn NotificationsPage() -> impl IntoView |
Notification
Notifications admin page — list + mark-read + mark-all-read.
| Item |
|---|
pub struct Notification |
orders (other)
Orders admin module — Sprint 25.UI (Q1=B sibling module).
| Item |
|---|
fn orders_module() -> StaffModule |
orders::pages (other)
Orders admin page — list with status filter + inline
| Item |
|---|
fn OrdersPage() -> impl IntoView |
Order
Orders admin page — list with status filter + inline
| Item |
|---|
pub struct Order |
parties (other)
Parties/Person staff UI module.
| Item |
|---|
fn parties_module() -> StaffModule |
parties::model (other)
Row model for the party list (sprint 3.92).
| Item |
|---|
fn filter_rows(rows : & PartyRow, kind : Option <PartyKind>) -> Vec <PartyRow> |
PartyKind
Row model for the party list (sprint 3.92).
| Item |
|---|
pub enum PartyKind |
PartyKind :: fn as_str(self) -> & 'static str |
PartyKind :: fn from_filter_value(value : & str) -> Option <Self> |
PartyRow
Row model for the party list (sprint 3.92).
| Item |
|---|
pub struct PartyRow |
PartyRow :: fn from_person(p : & PersonSummary) -> Self |
PartyRow :: fn from_organization(o : & OrganizationSummary) -> Self |
PartyRow :: fn location(& self) -> String |
fn merge_rows(persons : & PersonSummary, organizations : & OrganizationSummary,) -> Vec <PartyRow> |
parties::pages (other)
Person/Parties staff UI pages.
| Item |
|---|
fn PartyList() -> impl IntoView |
fn PartyCreate() -> impl IntoView |
fn PartyEdit() -> impl IntoView |
fn OrganizationEdit() -> impl IntoView |
fn PartyDetail() -> impl IntoView |
fn PersonEdit() -> impl IntoView |
payroll (other)
Payroll (/staff/accounting/payroll). VISUAL MOCKUP ONLY (operator,
| Item |
|---|
fn payroll_module() -> StaffModule |
payroll::pages (other)
Payroll view. VISUAL MOCKUP -- static content, no API call. See
| Item |
|---|
fn PayrollPage() -> impl IntoView |
posts (other)
Posts module — Sprint 12 (Track 3 module-wiring batch).
| Item |
|---|
fn posts_module() -> StaffModule |
posts::pages (other)
Posts admin — list + create-draft + inline publish toggle + delete.
| Item |
|---|
fn PostsPage() -> impl IntoView |
Post
Posts admin — list + create-draft + inline publish toggle + delete.
| Item |
|---|
pub struct Post |
profile (other)
Operator-self profile + change-password module.
| Item |
|---|
fn profile_module() -> StaffModule |
profile::pages (other)
Profile page — display name edit + change password.
| Item |
|---|
fn ProfilePage() -> impl IntoView |
Profile
Profile page — display name edit + change password.
| Item |
|---|
pub struct Profile |
projects (other)
Projects (/staff/projects). VISUAL MOCKUP ONLY (operator, 2026-08-13:
| Item |
|---|
fn projects_module() -> StaffModule |
projects::pages (other)
Projects view. VISUAL MOCKUP -- static content, no API call. See
| Item |
|---|
fn ProjectsPage() -> impl IntoView |
rbac_admin (other)
Users + roles + permissions admin module.
| Item |
|---|
fn rbac_admin_module() -> StaffModule |
rbac_admin::pages (other)
Users + roles admin pages.
| Item |
|---|
fn UsersPage() -> impl IntoView |
fn RolesPage() -> impl IntoView |
PermissionRow
Users + roles admin pages.
| Item |
|---|
pub struct PermissionRow |
RoleRow
Users + roles admin pages.
| Item |
|---|
pub struct RoleRow |
UserRow
Users + roles admin pages.
| Item |
|---|
pub struct UserRow |
redirects (other)
URL redirects admin module — Sprint 13 (Track 3).
| Item |
|---|
fn redirects_module() -> StaffModule |
redirects::pages (other)
Redirects admin page — list + create + per-row delete. Engine
| Item |
|---|
fn RedirectsPage() -> impl IntoView |
Redirect
Redirects admin page — list + create + per-row delete. Engine
| Item |
|---|
pub struct Redirect |
repairs (other)
Repairs (/staff/repairs). REAL DATA -- reads
| Item |
|---|
fn repairs_module() -> StaffModule |
repairs::pages (other)
Repairs view. Reads /api/v1/admin/repairs/jobs (same-origin cookie
| Item |
|---|
fn RepairsPage() -> impl IntoView |
reports (other)
Test Reports surface (/staff/test-reports) — reads the application-test-results
| Item |
|---|
fn reports_module() -> StaffModule |
fn status_pill_class(status : & str) -> & 'static str |
fn format_duration(started : & str, finished : Option <& str>) -> String |
fn fmt_dur_ms(ms : i64) -> String |
fn sparkline_points(values : & f64, width : f64, height : f64) -> String |
reports::pages (other)
Test Reports views: runs list, run detail, metric sparkline. Reads the
| Item |
|---|
fn TestReportsList() -> impl IntoView |
fn RunDetail() -> impl IntoView |
fn FlakeBadge(suite : String, name : String, project : String) -> impl IntoView |
fn MetricSparkline(values : ReadSignal <Vec <f64>>) -> impl IntoView |
reservations (other)
Reservations admin module — Sprint 24 (Track 3).
| Item |
|---|
fn reservations_module() -> StaffModule |
reservations::pages (other)
Reservations admin page — list capacity pools for a tenant.
| Item |
|---|
fn ReservationsPage() -> impl IntoView |
CapacityPool
Reservations admin page — list capacity pools for a tenant.
| Item |
|---|
pub struct CapacityPool |
reviews (other)
Reviews module — Sprint 14 (Track 3 module-wiring batch).
| Item |
|---|
fn reviews_module() -> StaffModule |
reviews::pages (other)
Reviews admin — list + curate (body_short / sequence / is_active)
| Item |
|---|
fn ReviewsPage() -> impl IntoView |
Review
Reviews admin — list + curate (body_short / sequence / is_active)
| Item |
|---|
pub struct Review |
rfp (other)
RFP Module — its own switcher-level menu (sprint 3.110/3.111, elevated to
| Item |
|---|
fn rfp_module() -> StaffModule |
rfp::pages (other)
RFP Module — Opportunities, full CRUD.
| Item |
|---|
fn OpportunitiesList() -> impl IntoView |
fn OpportunityCreate() -> impl IntoView |
fn OpportunityEdit() -> impl IntoView |
fn FundersList() -> impl IntoView |
fn FunderCreate() -> impl IntoView |
fn FunderEdit() -> impl IntoView |
OpportunityListItem
RFP Module — Opportunities, full CRUD.
| Item |
|---|
pub struct OpportunityListItem |
scheduling (other)
Scheduling admin module — Sprint 24 (Track 3).
| Item |
|---|
fn scheduling_module() -> StaffModule |
scheduling::pages (other)
Scheduling admin page — list schedules for a tenant.
| Item |
|---|
fn SchedulingPage() -> impl IntoView |
Schedule
Scheduling admin page — list schedules for a tenant.
| Item |
|---|
pub struct Schedule |
search (other)
Search staff UI module.
| Item |
|---|
fn search_module() -> StaffModule |
search::pages (other)
Search staff UI page.
| Item |
|---|
fn SearchPage() -> impl IntoView |
security (other)
Security mode -- physical security overview (/staff/security).
| Item |
|---|
fn building_module() -> StaffModule |
security::pages (other)
Building (physical security) view. VISUAL MOCKUP -- static content,
| Item |
|---|
fn BuildingPage() -> impl IntoView |
settings (other)
Site settings JSON-blob editor + per-module settings subsections.
| Item |
|---|
fn settings_module() -> StaffModule |
settings::jobs (other)
Jobs / background-worker settings sub-page (Sprint 0.49) — /staff/settings/jobs.
| Item |
|---|
fn JobsSettingsPage() -> impl IntoView |
settings::media (other)
Media Library settings sub-page (Sprint 0.49) — /staff/settings/media.
| Item |
|---|
fn MediaLibrarySettingsPage() -> impl IntoView |
settings::messaging (other)
Messaging settings sub-page — 10-provider config surface.
| Item |
|---|
fn MessagingSettingsPage() -> impl IntoView |
settings::pages (other)
Settings page — toggles + string fields edit a site-wide JSON
| Item |
|---|
fn SettingsPage() -> impl IntoView |
support (other)
Support tickets (/staff/support). VISUAL MOCKUP ONLY (operator,
| Item |
|---|
fn support_module() -> StaffModule |
support::pages (other)
Support tickets view. VISUAL MOCKUP -- static content, no API call.
| Item |
|---|
fn SupportPage() -> impl IntoView |
tax (other)
Tax (/staff/accounting/tax). VISUAL MOCKUP ONLY (operator,
| Item |
|---|
fn tax_module() -> StaffModule |
tax::pages (other)
Tax view. VISUAL MOCKUP -- static content, no API call. See mod.rs
| Item |
|---|
fn TaxPage() -> impl IntoView |
tenants (other)
God Mode -- tenant management (/staff/tenants). VISUAL MOCKUP ONLY
| Item |
|---|
fn tenants_module() -> StaffModule |
tenants::pages (other)
Tenants (God Mode) view. VISUAL MOCKUP -- static rows, no API call, no
| Item |
|---|
fn TenantsPage() -> impl IntoView |
terminal (other)
God Mode -- terminal multiplexer ("cmux", operator naming, 2026-08-13).
| Item |
|---|
fn terminal_module() -> StaffModule |
terminal::pages (other)
Terminal (cmux) view. VISUAL MOCKUP -- static styled panes, no PTY, no
| Item |
|---|
fn TerminalPage() -> impl IntoView |
triggers (other)
Triggers admin module — Sprint 17 (Track 3).
| Item |
|---|
fn triggers_module() -> StaffModule |
triggers::pages (other)
Triggers admin page — list + enable/disable toggle.
| Item |
|---|
fn TriggersPage() -> impl IntoView |
Trigger
Triggers admin page — list + enable/disable toggle.
| Item |
|---|
pub struct Trigger |
wiki (other)
Wiki dashboard (/staff/wiki) — sprint 3.101, dashboard-first rescope.
| Item |
|---|
fn wiki_module() -> StaffModule |
wiki::pages (other)
Wiki dashboard view. Reads /api/v1/admin/wiki/stats (same-origin
| Item |
|---|
fn WikiDashboard() -> impl IntoView |
How to use it
No examples/ target and no doctest in this crate's rustdoc. The tests listed under Verification are the closest executable usage.
Module structure
platform_staff_ui
accessaccess::pagesaccountaccount::pagesaccountingaccounting::pagesaccounts_payableaccounts_payable::pagesaccounts_receivableaccounts_receivable::pagesanalyticsanalytics::pagesanalytics::pages::conversionsanalytics::pages::dashboardanalytics::pages::devicesanalytics::pages::geoanalytics::pages::pages_reportanalytics::pages::path_404analytics::pages::sharedanalytics::pages::timeanalytics::pages::visitorsapiapi_keysapi_keys::pagesapprovalsapprovals::pagesattachmentsattachments::audit_pageattachments::pagesauditaudit::pagesauthbackdropsbackdrops::pagesbank_reconciliationbank_reconciliation::pagesbillingbilling::pagesbudgetingbudgeting::pagescampaignscampaigns::pagescatalogcatalog::pagescategoriescategories::pagescmscms::composercms::gallerycms::pagescms::previewcms::slot_composercms::template_formcms::test_idcms::versionscommentscomments::pagescontactscontacts::pagescrmcrm::pagesdbadba::pagesdirectorydirectory::pagesdiscountsdiscounts::pagesdlpdlp::pagesdocsdocs::pagesdownloadsdownloads::pagesecommerceecommerce::pagesfinancial_reportsfinancial_reports::pagesfixed_assetsfixed_assets::pagesfleetfleet::pagesi18ni18n::catalogi18n::intli18n::keyi18n::localei18n::messageinventoryinventory::pagesjobsjobs::pageslayoutledgerledger::pageslinkslinks::pagesmediamedia::library_pagemedia::pagesmedia::visibilitymodulesnotificationsnotifications::pagesordersorders::pagespagespartiesparties::modelparties::pagespayrollpayroll::pagespostsposts::pagesprofileprofile::pagesprojectsprojects::pagesrbac_adminrbac_admin::pagesredirectsredirects::pagesrepairsrepairs::pagesreportsreports::pagesreservationsreservations::pagesreviewsreviews::pagesrfprfp::pagesschedulingscheduling::pagessearchsearch::pagessecuritysecurity::pagessettingssettings::jobssettings::mediasettings::messagingsettings::pagessupportsupport::pagestaxtax::pagestenantstenants::pagesterminalterminal::pagestriggerstriggers::pageswikiwiki::pages
_154 modules: past 25 the diagram stops being readable, so the tree above is the complete picture._
Public surface
`crate root`
| Item | What it is |
|---|---|
pub struct AppSwitcherTarget | Sprint 3.102 -- an entry in the top-left application switcher: a SEPARATE application/host (e.g |
pub struct StaffConfig | Staff shell configuration. |
StaffConfig :: fn default() -> Self | — |
fn StaffApp(# doc = " Configuration for the staff shell." config : StaffConfig, # doc = " Module registry with registered modules." # prop(default = ModuleRegistry::new()) modules : ModuleRegistry, # doc = " Additional routes to add outside the staff layout." # prop(optional) _additional_routes : Option <ChildrenFn>,) -> impl IntoView | Staff shell application component |
pub struct ModuleRouteParams | Resolver for dynamic module routes |
pub struct ModuleNavItems | Wrapper for module nav items in context. |
fn ProtectedRoute(children : ChildrenFn) -> impl IntoView | Protected route wrapper that redirects to login if not authenticated. |
pub struct StaffAppBuilder | Create a StaffApp with modules using a builder pattern |
StaffAppBuilder :: fn new() -> Self | — |
StaffAppBuilder :: fn config(mut self, config : StaffConfig) -> Self | — |
StaffAppBuilder :: fn api_url(mut self, url : impl Into <String>) -> Self | — |
StaffAppBuilder :: fn title(mut self, title : impl Into <String>) -> Self | — |
StaffAppBuilder :: fn module(mut self, module : StaffModule) -> Self | — |
StaffAppBuilder :: fn app_switcher_targets(mut self, targets : Vec <AppSwitcherTarget>) -> Self | Sprint 3.102 -- other applications reachable from the top-left switcher (e.g |
StaffAppBuilder :: fn i18n(mut self, ctx : rust_patterns_i18n::I18nContext) -> Self | Sprint 10A (D-10A.3) — set the i18n context for bilingual / multilingual deployments |
StaffAppBuilder :: fn get_config(& self) -> StaffConfig | Get the config for use with StaffApp component. |
StaffAppBuilder :: fn get_modules(& self) -> ModuleRegistry | Get the modules for use with StaffApp component. |
StaffAppBuilder :: fn default() -> Self | — |
`access`
| Item | What it is |
|---|---|
fn access_module() -> StaffModule | — |
`access::pages`
| Item | What it is |
|---|---|
fn AccessSettingsPage() -> impl IntoView | — |
`account`
| Item | What it is |
|---|---|
fn account_module() -> StaffModule | The account-settings module |
`account::pages`
| Item | What it is |
|---|---|
fn AccountPage() -> impl IntoView | — |
`accounting`
| Item | What it is |
|---|---|
fn accounting_module() -> StaffModule | Register the Accounting dashboard module. |
`accounting::pages`
| Item | What it is |
|---|---|
fn AccountingDashboard() -> impl IntoView | — |
`accounts_payable`
| Item | What it is |
|---|---|
fn accounts_payable_module() -> StaffModule | — |
`accounts_payable::pages`
| Item | What it is |
|---|---|
fn AccountsPayablePage() -> impl IntoView | — |
`accounts_receivable`
| Item | What it is |
|---|---|
fn accounts_receivable_module() -> StaffModule | — |
`accounts_receivable::pages`
| Item | What it is |
|---|---|
fn AccountsReceivablePage() -> impl IntoView | — |
`analytics`
| Item | What it is |
|---|---|
fn analytics_module() -> StaffModule | — |
`analytics::pages::conversions`
| Item | What it is |
|---|---|
fn ConversionsPage() -> impl IntoView | — |
`analytics::pages::dashboard`
| Item | What it is |
|---|---|
fn DashboardPage() -> impl IntoView | — |
`analytics::pages::devices`
| Item | What it is |
|---|---|
fn DevicesPage() -> impl IntoView | — |
`analytics::pages::geo`
| Item | What it is |
|---|---|
fn GeoPage() -> impl IntoView | — |
`analytics::pages::pages_report`
| Item | What it is |
|---|---|
fn PagesReportPage() -> impl IntoView | — |
`analytics::pages::path_404`
| Item | What it is |
|---|---|
fn Path404Page() -> impl IntoView | — |
`analytics::pages::shared`
| Item | What it is |
|---|---|
pub const WINDOWS: & i64 | The window selector — 7 / 30 / 90 days |
pub const DEFAULT_WINDOW: i64 | — |
fn window_to_dates(window : i64) ->(String, String) | Format a window selection into the (from, to) ISO date pair used by engine query endpoints |
fn WindowSelector(current : RwSignal <i64>) -> impl IntoView | The window-selector pill row, shared across every analytics page. |
fn ReportsNav(active : & 'static str) -> impl IntoView | The cross-report nav row — links between dashboard / pages / 404 / geo / time |
`analytics::pages::time`
| Item | What it is |
|---|---|
fn TimePage() -> impl IntoView | — |
`analytics::pages::visitors`
| Item | What it is |
|---|---|
fn VisitorsPage() -> impl IntoView | — |
`api`
| Item | What it is |
|---|---|
pub struct ApiClient | API client for making authenticated requests. |
ApiClient :: fn new(base_url : & str) -> Self | — |
ApiClient :: fn with_csrf_cookie(mut self, name : impl Into <String>) -> Self | Override the CSRF cookie name |
ApiClient :: fn with_unauthorized_handler(mut self, cb : Callback <()>) -> Self | Install a callback that fires when any request returns 401 |
ApiClient :: fn csrf_cookie_name(& self) -> & str | The CSRF cookie name (exposed for components like FileUpload that build their own XHR). |
ApiClient :: fn base_url(& self) -> & str | The base URL for direct-fetch components (e.g |
ApiClient :: async fn get <T : DeserializeOwned>(& self, path : & str) -> Result <T, ApiError> | Make a GET request. |
ApiClient :: async fn get_optional <T : DeserializeOwned>(& self, path : & str,) -> Result <Option <T>, ApiError> | GET a resource that may legitimately be absent |
ApiClient :: async fn post <T : DeserializeOwned, B : Serialize>(& self, path : & str, body : & B,) -> Result <T, ApiError> | Make a POST request with JSON body. |
ApiClient :: async fn put <T : DeserializeOwned, B : Serialize>(& self, path : & str, body : & B,) -> Result <T, ApiError> | Make a PUT request with JSON body. |
ApiClient :: async fn patch <T : DeserializeOwned, B : Serialize>(& self, path : & str, body : & B,) -> Result <T, ApiError> | Make a PATCH request with JSON body. |
ApiClient :: async fn delete <T : DeserializeOwned>(& self, path : & str) -> Result <T, ApiError> | Make a DELETE request. |
ApiClient :: async fn delete_no_content(& self, path : & str) -> Result <(), ApiError> | Make a DELETE request that returns no content. |
ApiClient :: async fn post_action <B : Serialize>(& self, path : & str, body : & B) -> Result <(), ApiError> | POST a JSON body to an action that responds 204 No Content (or any 2xx with an empty body) |
ApiClient :: async fn put_action <B : Serialize>(& self, path : & str, body : & B) -> Result <(), ApiError> | PUT a JSON body to an endpoint that responds 204 No Content — e.g |
ApiClient :: async fn patch_no_content <B : Serialize>(& self, path : & str, body : & B,) -> Result <(), ApiError> | PATCH a JSON body to an endpoint that responds 204 No Content — e.g |
ApiClient :: async fn post_no_content(& self, path : & str) -> Result <(), ApiError> | POST an action that responds 204 No Content (no body to parse) |
ApiClient :: async fn upload <T : DeserializeOwned>(& self, path : & str, form_data : web_sys::FormData,) -> Result <T, ApiError> | Upload a file with multipart form data. |
fn use_api() -> ApiClient | Hook to get the API client from context. |
pub struct AsyncResource<T : Clone + 'static> | Resource wrapper for async data fetching with loading/error states. |
AsyncResource<T> :: fn refetch(& self) | Trigger a refetch of the resource. |
fn create_api_resource <T, F, Fut>(fetcher : F) -> AsyncResource <T> where T : Clone + 'static, F : Fn() -> Fut + Clone + 'static, Fut : std::future::Future <Output = Result <T, ApiError>>, | Create an async resource that fetches data from the API. |
fn encode_param(s : & str) -> String | Percent-encode a query-param VALUE (RFC 3986 unreserved set passes through; everything else — including the composite-cursor `\ |
`api_keys`
| Item | What it is |
|---|---|
fn api_keys_module() -> StaffModule | Self-service API-key management surface at /staff/api-keys. |
`api_keys::pages`
| Item | What it is |
|---|---|
fn ApiKeysPage() -> impl IntoView | — |
`approvals`
| Item | What it is |
|---|---|
fn approvals_module() -> StaffModule | — |
`approvals::pages`
| Item | What it is |
|---|---|
pub struct ApprovalProposal | View-model for the approvals queue row |
fn ApprovalsPage() -> impl IntoView | — |
`attachments`
| Item | What it is |
|---|---|
fn attachments_module() -> StaffModule | — |
`attachments::audit_page`
| Item | What it is |
|---|---|
pub struct AuditEvent | — |
fn AttachmentAuditPage() -> impl IntoView | AttachmentAuditPage shows the WORM audit-event log for a single attachment |
`attachments::pages`
| Item | What it is |
|---|---|
pub struct Attachment | — |
fn AttachmentsPage() -> impl IntoView | — |
`audit`
| Item | What it is |
|---|---|
fn audit_module() -> StaffModule | — |
`audit::pages`
| Item | What it is |
|---|---|
fn LogsPage() -> impl IntoView | — |
`auth`
| Item | What it is |
|---|---|
pub struct AuthContext | Authentication context containing user state and auth methods. |
AuthContext :: async fn login_with_api(& self, api : ApiClient, email : String, password : String,) -> Result <(), ApiError> | Attempt to log in with email and password |
AuthContext :: fn select_tenant(& self, tenant : TenantInfo) | Select a tenant. |
AuthContext :: async fn switch_tenant_with_api(& self, api : ApiClient, tenant : TenantInfo,) -> Result <(), ApiError> | Switch the active tenant server-side (model D, US-0.55.8b): POST /auth/switch-tenant, then update the local selection |
AuthContext :: fn selected_tenant_id(& self) -> Option <Uuid> | Get the currently selected tenant ID. |
AuthContext :: async fn refresh_tenants_with_api(& self, api : ApiClient) | Load the user's tenants + active tenant from the server (GET /auth/tenants) so the switcher hydrates on any page load, not just right after login (the session, not login, is the source of truth) |
AuthContext :: async fn login(& self, email : String, password : String) -> Result <(), ApiError> | Attempt to log in with email and password. |
AuthContext :: async fn logout(& self) -> Result <(), ApiError> | Log out the current user. |
AuthContext :: async fn check_session_with_api(& self, api : ApiClient) | Check the current session and refresh user info |
AuthContext :: async fn check_session(& self) | Check the current session and refresh user info. |
AuthContext :: fn has_role(& self, role : & str) -> bool | Check if the user has the specified role |
AuthContext :: fn has_permission(& self, permission : & str) -> bool | Check if the user has a specific permission. |
fn AuthProvider(children : Children) -> impl IntoView | Authentication provider component. |
fn use_auth() -> AuthContext | Hook to get the auth context. |
fn use_user() -> Signal <Option <UserInfo>> | Hook to get the current user (returns None if not authenticated). |
fn use_require_auth() -> Signal <Option <UserInfo>> | Hook to require authentication |
fn RequireRole(# doc = " Required role name." role : & 'static str, # doc = " Content to show if user has role." children : ChildrenFn, # doc = " Optional fallback if user doesn't have role." # prop(optional) fallback : Option <ChildrenFn>,) -> impl IntoView | Component that only renders children if user has required role. |
fn RequirePermission(# doc = " Required permission name." permission : & 'static str, # doc = " Content to show if user has permission." children : ChildrenFn, # doc = " Optional fallback if user doesn't have permission." # prop(optional) fallback : Option <ChildrenFn>,) -> impl IntoView | Component that only renders children if user has required permission. |
`backdrops`
| Item | What it is |
|---|---|
fn backdrops_module() -> StaffModule | — |
`backdrops::pages`
| Item | What it is |
|---|---|
pub struct BackdropSlot | — |
pub enum BackdropAssignment | — |
fn BackdropsPage() -> impl IntoView | — |
`bank_reconciliation`
| Item | What it is |
|---|---|
fn bank_reconciliation_module() -> StaffModule | — |
`bank_reconciliation::pages`
| Item | What it is |
|---|---|
fn BankReconciliationPage() -> impl IntoView | — |
`billing`
| Item | What it is |
|---|---|
fn billing_module() -> StaffModule | Register the Billing module. |
`billing::pages`
| Item | What it is |
|---|---|
fn BillingPage() -> impl IntoView | — |
`budgeting`
| Item | What it is |
|---|---|
fn budgeting_module() -> StaffModule | — |
`budgeting::pages`
| Item | What it is |
|---|---|
fn BudgetingPage() -> impl IntoView | — |
`campaigns`
| Item | What it is |
|---|---|
fn campaigns_module() -> StaffModule | Register the Campaigns module. |
`campaigns::pages`
| Item | What it is |
|---|---|
fn CampaignsPage() -> impl IntoView | — |
`catalog`
| Item | What it is |
|---|---|
fn catalog_module() -> StaffModule | — |
`catalog::pages`
| Item | What it is |
|---|---|
pub struct CatalogItem | — |
fn CatalogPage() -> impl IntoView | — |
`categories`
| Item | What it is |
|---|---|
fn categories_module() -> StaffModule | — |
`categories::pages`
| Item | What it is |
|---|---|
pub struct Category | — |
fn CategoriesPage() -> impl IntoView | — |
`cms`
| Item | What it is |
|---|---|
fn cms_module() -> StaffModule | Create the CMS staff module. |
`cms::composer`
| Item | What it is |
|---|---|
pub struct SlotDefinition | A declared block slot as served by GET /admin/blocks (mirrors the application-cms SlotDefinition) |
pub enum SlotType | The slot type (mirrors the application-cms SlotType) |
SlotType :: fn is_list(self) -> bool | Whether the slot holds a list (true) or exactly one widget (false) |
SlotType :: fn allowed_widget_keys(self) -> & 'static & 'static str | The widget keys this slot offers in the palette |
pub struct BlockDefinition | A block definition as served by GET /admin/blocks (mirrors the application-cms BlockDefinition + flattened wireframe) |
pub struct BlocksResponse | — |
pub struct WidgetDefinition | A widget definition as served by GET /admin/widgets (mirrors the application-cms WidgetDefinition + flattened wireframe) |
pub struct WidgetsResponse | — |
fn use_widgets() -> Resource <(), Result <Vec <WidgetDefinition>, String>> | Fetch the widget registry from GET /admin/widgets once per mount (Sprint 0.76 T7) |
fn use_blocks() -> Resource <(), Result <Vec <BlockDefinition>, String>> | Fetch the block registry from GET /admin/blocks once per mount |
fn BlockComposer(field_name : String, label : String, metadata : RwSignal <serde_json::Value>, # doc = " Sprint 0.79 P1 — the context the blocks field lives in(page composer)." # doc = " Each block instance re-roots it onto its own block definition + surface." ctx : crate::cms::test_id::FieldContext, # doc = " The canonical data-test-id for the composer container(control =" # doc = " block_composer)." test_id : String, # doc = " The composer's own semantic data-field-path(the blocks field)." field_path : String, # doc = " The real data-test-perm role gate(cms.pages.write)." perm : String,) -> impl IntoView | The block composer for a blocks field. |
`cms::gallery`
| Item | What it is |
|---|---|
fn TemplateGallery() -> impl IntoView | The New-Page template gallery view |
`cms::pages`
| Item | What it is |
|---|---|
fn PagesList() -> impl IntoView | Pages list view |
fn PageForm(# doc = " Page ID for editing, None for new page." # prop(optional) id : Option <String>,) -> impl IntoView | Page create/edit form. |
fn PageDetail(# doc = " Page ID to display." id : String,) -> impl IntoView | Page detail/view component. |
`cms::preview`
| Item | What it is |
|---|---|
fn PreviewShell(# doc = " Page ID to preview. None(no route param) renders an error." # prop(optional) id : Option <String>,) -> impl IntoView | Draft-preview shell |
`cms::slot_composer`
| Item | What it is |
|---|---|
fn SlotComposer(slot_def : SlotDefinition, block_edit : RwSignal <serde_json::Value>, # doc = " Sprint 0.79 P1 — the enclosing block instance's context; each widget in" # doc = " this slot re-roots it onto its own widget surface+definition." block_ctx : crate::cms::test_id::FieldContext,) -> impl IntoView | The widget sub-composer for one declared slot of a block instance |
`cms::template_form`
| Item | What it is |
|---|---|
pub enum FieldKind | Field kind mirrored from the engine's cms::template_definitions module |
pub struct FieldDefinition | — |
pub struct TemplateDefinition | — |
pub struct TemplatesResponse | — |
fn use_templates() -> Resource <(), Result <Vec <TemplateDefinition>, String>> | Fetches the engine's template definitions exactly once per component-tree mount and caches them in context. |
fn find_definition(defs : & TemplateDefinition, key : & str) -> TemplateDefinition | Find the matching definition for a template key |
fn DynamicTemplateFields(definition : TemplateDefinition, metadata : RwSignal <serde_json::Value>,) -> impl IntoView | Renders the dynamic fieldsets for a template |
`cms::test_id`
| Item | What it is |
|---|---|
pub const PAGE_WRITE_PERMISSION: & str | The real role gate for editing CMS page content |
fn control_for(kind : & FieldKind) -> ControlKind | Map the staff-ui local FieldKind mirror to the contract's ControlKind |
pub struct FieldContext | The static facts a control needs to build its TestId beyond its own field name: which surface it renders on, which registry its definition lives in, and the definition key |
FieldContext :: fn page_template(def : impl Into <String>) -> Self | The top-level context for a page template form: no enclosing container. |
FieldContext :: fn descend(& self, segment : FieldPathSegment) -> Self | Derive a child context that descends into segment (e.g |
FieldContext :: fn enter_definition(& self, surface : Surface, entity : Entity, def : impl Into <String>, instance_segment : FieldPathSegment,) -> Self | Re-root this context onto a new surface/entity/def while keeping the current semantic parent_path — used when a block composer descends from the page surface into a specific block instance's own definition. |
FieldContext :: fn test_id(& self, field_name : & str, kind : & FieldKind) -> Option <TestId> | Build the canonical TestId for a leaf field named field_name of kind kind within this context |
FieldContext :: fn test_id_attr(& self, field_name : & str, kind : & FieldKind) -> String | The data-test-id string for a leaf field, or an empty string if it could not be built (never, in practice — see FieldContext::test_id) |
FieldContext :: fn field_path_attr(& self, field_name : & str) -> String | The data-field-path string for a leaf field within this context. |
`cms::versions`
| Item | What it is |
|---|---|
fn VersionTimeline(id : String) -> impl IntoView | /staff/pages/:id/versions — newest-first version list. |
fn VersionDetail(id : String, vid : String) -> impl IntoView | /staff/pages/:id/versions/:vid — one version's snapshot + actions. |
fn VersionDiff(id : String, vid : String) -> impl IntoView | /staff/pages/:id/versions/:vid/diff — side-by-side line diff |
`comments`
| Item | What it is |
|---|---|
fn comments_module() -> StaffModule | — |
`comments::pages`
| Item | What it is |
|---|---|
pub struct Comment | View-model — subset of the engine's Comment shape, just the fields the moderation page renders |
fn CommentsPage() -> impl IntoView | CommentsPage reads filters from local inputs — the operator pastes either an entity_type+entity_id pair or a thread_id and hits Load |
`contacts`
| Item | What it is |
|---|---|
fn contacts_module() -> StaffModule | — |
`contacts::pages`
| Item | What it is |
|---|---|
pub struct ContactSubmission | — |
fn ContactInboxPage() -> impl IntoView | — |
`crm`
| Item | What it is |
|---|---|
fn crm_module() -> StaffModule | Create the CRM pipeline staff module. |
`crm::pages`
| Item | What it is |
|---|---|
fn OpportunityList() -> impl IntoView | Opportunity pipeline list -- list/filter/stage-dropdown (AC-tenant-scope, AC-party-link, AC-pipeline-move, AC-rbac gated by crm.opportunity.read at the nav level). |
fn OpportunityCreate() -> impl IntoView | Create an opportunity attached to an existing Person/Organization (AC-party-link). |
fn OpportunityDetail() -> impl IntoView | Opportunity detail -- read-only fields plus the stage-move / close actions (AC-pipeline-move, AC-close). |
fn StageAdmin() -> impl IntoView | Tenant-configurable pipeline stage admin (create/list stages, and seed the default pipeline). |
`dba`
| Item | What it is |
|---|---|
fn dba_module() -> StaffModule | Register the DBA module. |
`dba::pages`
| Item | What it is |
|---|---|
fn DbaPage() -> impl IntoView | — |
`directory`
| Item | What it is |
|---|---|
fn directory_module() -> StaffModule | Create the Directory staff module. |
`directory::pages`
| Item | What it is |
|---|---|
fn DirectoryList() -> impl IntoView | Directory listings list view. |
fn DirectoryDetail(# doc = " Listing ID to display." id : String,) -> impl IntoView | Directory listing detail/view component. |
fn PendingList() -> impl IntoView | Pending listings page. |
fn DirectoryEdit(# doc = " Listing ID to edit." id : String,) -> impl IntoView | Directory listing edit form. |
fn PendingWidget() -> impl IntoView | Dashboard widget showing pending count. |
`discounts`
| Item | What it is |
|---|---|
fn discounts_module() -> StaffModule | — |
`discounts::pages`
| Item | What it is |
|---|---|
pub struct DiscountRow | — |
fn DiscountsPage() -> impl IntoView | — |
`dlp`
| Item | What it is |
|---|---|
fn dlp_module() -> StaffModule | Create the DLP alerts staff module. |
`dlp::pages`
| Item | What it is |
|---|---|
fn AlertsPage() -> impl IntoView | Masked-alert list -- read-only viewer, most-recent 100 for the caller's active tenant. |
`docs`
| Item | What it is |
|---|---|
fn docs_module() -> StaffModule | — |
`docs::pages`
| Item | What it is |
|---|---|
fn DocsPage() -> impl IntoView | — |
`downloads`
| Item | What it is |
|---|---|
fn downloads_module() -> StaffModule | — |
`downloads::pages`
| Item | What it is |
|---|---|
pub struct Download | — |
fn DownloadsPage() -> impl IntoView | — |
`ecommerce`
| Item | What it is |
|---|---|
fn ecommerce_module() -> StaffModule | Register the Ecommerce module. |
`ecommerce::pages`
| Item | What it is |
|---|---|
fn EcommercePage() -> impl IntoView | — |
`financial_reports`
| Item | What it is |
|---|---|
fn financial_reports_module() -> StaffModule | — |
`financial_reports::pages`
| Item | What it is |
|---|---|
fn FinancialReportsPage() -> impl IntoView | — |
`fixed_assets`
| Item | What it is |
|---|---|
fn fixed_assets_module() -> StaffModule | — |
`fixed_assets::pages`
| Item | What it is |
|---|---|
fn FixedAssetsPage() -> impl IntoView | — |
`fleet`
| Item | What it is |
|---|---|
fn fleet_module() -> StaffModule | Register the Fleet module. |
`fleet::pages`
| Item | What it is |
|---|---|
fn FleetDashboard() -> impl IntoView | — |
`i18n`
| Item | What it is |
|---|---|
fn build_i18n_context(initial : & str) -> rust_patterns_i18n::I18nContext | Seed the i18n locale at the SPA root from a resolved BCP-47 string (typically the authenticated user's /me/preferences.locale, already normalized server-side by user-prefs::resolve_locale) |
fn use_locale() -> Signal <Locale> | The reactive active locale, derived from the rust-patterns-i18n context |
fn translate(locale : Locale, key : StaffKey, args : & Args) -> String | Resolve a key for a specific locale, applying the missing-key policy |
fn t(key : StaffKey) -> impl Fn() -> String | Reactive translation of a simple key |
fn ti(key : StaffKey, args : Args) -> impl Fn() -> String | Reactive translation with typed interpolation / plural args |
fn t_dyn(key : StaffKey, make_args : impl Fn() -> Args + 'static) -> impl Fn() -> String | Reactive translation where the args are recomputed on each render (e.g |
fn tr_at(locale : Locale, key : StaffKey, args : & Args) -> String | Non-reactive, one-shot translation for a known locale — for callbacks/toasts where you already hold the value and don't need a closure (e.g |
`i18n::catalog`
| Item | What it is |
|---|---|
fn en(key : StaffKey) -> Message | The EN message for key |
fn es(key : StaffKey) -> Message | The ES message for key |
fn lookup(locale : Locale, key : StaffKey) -> Message | Look up the Message for key in locale. |
`i18n::intl`
| Item | What it is |
|---|---|
fn number(locale : Locale, n : f64) -> String | Format a floating-point number for locale (e.g |
fn integer(locale : Locale, n : i64) -> String | Format an integer for locale. |
fn datetime_from_millis(locale : Locale, millis : f64) -> String | Format a UNIX-millis timestamp as a locale date-time. |
`i18n::key`
| Item | What it is |
|---|---|
pub enum StaffKey | A localized string identity |
StaffKey :: const fn id(self) -> & 'static str | The stable, dotted semantic id, e.g |
`i18n::locale`
| Item | What it is |
|---|---|
pub enum Locale | A locale supported by the staff UI |
pub enum Direction | Text direction for a locale |
Direction :: const fn as_str(self) -> & 'static str | The HTML dir attribute value. |
Locale :: const fn as_str(self) -> & 'static str | The primary BCP-47 language subtag, e.g |
Locale :: fn from_bcp47(tag : & str) -> Option <Locale> | Parse a BCP-47 tag (e.g |
Locale :: fn from_bcp47_or_fallback(tag : & str) -> Locale | Parse a BCP-47 tag, falling back to Locale::FALLBACK for any unknown/empty input |
Locale :: const fn dir(self) -> Direction | The text direction for this locale. |
Locale :: const fn endonym(self) -> & 'static str | The endonym (name of the language in that language) — for the locale selector |
Locale :: fn fmt(& self, f : & mut fmt::Formatter <'_>) -> fmt::Result | — |
Locale :: fn default() -> Self | — |
`i18n::message`
| Item | What it is |
|---|---|
pub enum PluralCategory | CLDR-style plural category |
fn plural_category(locale : Locale, count : i64) -> PluralCategory | Select the CLDR plural category for count in locale |
pub enum Message | A localized message template for ONE locale |
pub struct PluralForms | Plural templates keyed by category |
PluralForms :: const fn new(one : & 'static str, other : & 'static str) -> Self | Build plural forms |
PluralForms :: fn select(& self, category : PluralCategory) -> & 'static str | The template for category, falling back to other when a specific form is absent (CLDR guarantees other always exists). |
PluralForms :: fn templates(& self) -> Vec <& 'static str> | All non-empty template strings — used by the completeness gate to scan placeholder sets across every form. |
pub struct Args | The typed arguments a call site passes for interpolation |
Args :: fn none() -> Self | No-argument args (for Message::Simple with no placeholders). |
Args :: fn count(mut self, n : i64) -> Self | Set the count (enables plural selection; also fills {count}). |
Args :: fn var(mut self, name : & 'static str, value : impl Into <String>) -> Self | Set a named variable, replacing {name} in the template. |
Args :: fn count_value(& self) -> Option <i64> | The count, if any. |
fn render(message : & Message, locale : Locale, args : & Args) -> String | Render message for locale with args |
fn placeholders(template : & str) -> std::collections::BTreeSet <String> | Extract the set of {placeholder} names referenced by a template |
fn message_placeholders(message : & Message) -> std::collections::BTreeSet <String> | All placeholders referenced by a message (across plural forms). |
`inventory`
| Item | What it is |
|---|---|
fn inventory_module() -> StaffModule | — |
`inventory::pages`
| Item | What it is |
|---|---|
pub struct Location | — |
fn InventoryPage() -> impl IntoView | — |
`jobs`
| Item | What it is |
|---|---|
fn jobs_module() -> StaffModule | — |
`jobs::pages`
| Item | What it is |
|---|---|
pub struct Job | View-model — subset of infrastructure_jobs::Job |
fn JobsPage() -> impl IntoView | JobsPage — paste tenant_id, pick a status, see the queue |
`layout`
| Item | What it is |
|---|---|
fn StaffLayout(children : Children) -> impl IntoView | Staff layout with sidebar and header. |
pub struct SidebarState | Sidebar state context. |
pub struct ActiveMenuState | Active switcher menu (sprint 3.102 correction, 2026-08-13) |
pub struct SidebarExtra | A consumer-provided extra rendered in the sidebar's brand block, below the app switcher (ApplicationSwitcher, which is a menu/app switcher, not a data filter — see its own doc comment) |
fn Sidebar() -> impl IntoView | Sidebar navigation component. |
fn menu_label(tag : & str) -> String | Human label for a switcher menu tag |
pub enum SwitcherAction | A switcher option's action once selected. |
fn app_switcher_options(current_title : & str, menus : & & 'static str, targets : & AppSwitcherTarget,) -> Vec <(String, String, SwitcherAction)> | (label, value) options for the application switcher's <select>, and the action each value resolves to |
fn ApplicationSwitcher(title : String) -> impl IntoView | Application switcher (sprint 3.102, corrected 2026-08-13) -- top-left, at the logo |
fn TenantSwitcher() -> impl IntoView | Header component |
fn Header() -> impl IntoView | — |
`ledger`
| Item | What it is |
|---|---|
fn ledger_module() -> StaffModule | Create the finance/ledger staff module. |
`ledger::pages`
| Item | What it is |
|---|---|
fn AccountsPage() -> impl IntoView | Chart-of-accounts list + create (AC-mount, AC-gate). |
`links`
| Item | What it is |
|---|---|
fn links_module() -> StaffModule | Register the Links module. |
`links::pages`
| Item | What it is |
|---|---|
fn LinksPage() -> impl IntoView | — |
`media`
| Item | What it is |
|---|---|
fn media_module() -> StaffModule | Create the Media Library staff module. |
fn library_module() -> StaffModule | Same page (pages::MediaList), a second registration under the default (Secretary/CRM) menu -- operator, 2026-08-13: "add back Library to crm mode" |
`media::library_page`
| Item | What it is |
|---|---|
fn LibraryPage() -> impl IntoView | — |
`media::pages`
| Item | What it is |
|---|---|
fn MediaList() -> impl IntoView | Media library list view with grid layout. |
fn MediaUpload(# doc = " Fires once per successfully uploaded asset." on_uploaded : Callback <MediaAsset>,) -> impl IntoView | Reusable upload control: a drag-drop / click-to-pick zone that POSTs each picked file as multipart file to /admin/media |
fn MediaPicker(# doc = " Whether the picker is open." open : ReadSignal <bool>, # doc = " Called when an asset is selected." on_select : Callback <MediaSummary>, # doc = " Called when the picker is closed." on_close : Callback <()>, # doc = " Filter to specific asset types." # prop(optional) asset_type : Option <AssetType>, # doc = " Filter to assets carrying this tag(e.g. \"backdrop\" for the pool picker)." # prop(optional) tag : Option <String>,) -> impl IntoView | Media picker modal for selecting assets. |
`media::visibility`
| Item | What it is |
|---|---|
fn AssetVisibility(# doc = " The asset whose visibility this controls." asset_id : String, # doc = " The asset's current tier, if the caller already knows it(paints the toggle" # doc = " without a round-trip). Defaults to gated(fail-closed) when unknown." # prop(optional) initial_public : Option <bool>, # doc = " Fires after a successful tier change with the new \"is public\" value, so a" # doc = " parent grid can refresh its badge." # prop(optional) on_tier_change : Option <Callback <bool>>,) -> impl IntoView | The shared asset-visibility control |
`modules`
| Item | What it is |
|---|---|
pub enum NavLabel | A navigation label: either a framework i18n catalog key (resolved per-locale by staff-ui) or a literal string |
NavLabel :: fn resolve(& self, locale : Locale) -> String | Resolve to a display string for locale: Key via the i18n catalog, Text verbatim. |
NavLabel :: fn from(key : StaffKey) -> Self | — |
NavLabel :: fn from(s : & str) -> Self | — |
NavLabel :: fn from(s : String) -> Self | — |
pub struct NavItem | Navigation item for sidebar. |
NavItem :: fn new(label : impl Into <NavLabel>, path : impl Into <String>) -> Self | — |
NavItem :: fn with_icon(mut self, icon : impl Into <String>) -> Self | — |
NavItem :: fn with_children(mut self, children : Vec <NavItem>) -> Self | — |
NavItem :: fn with_badge(mut self, badge : i64) -> Self | Set a badge count (e.g |
NavItem :: fn exact(mut self) -> Self | Opt this item into exact active-route matching |
platform_leptos_components::NavLinkSpec :: fn from(item : NavItem) -> Self | — |
pub struct DashboardWidget | Dashboard widget definition. |
pub struct ModuleRoute | Route definition for modules. |
ModuleRoute :: fn new <F>(path : impl Into <String>, view : F) -> Self where F : Fn() -> View + Send + Sync + 'static, | — |
ModuleRoute :: fn staff <F>(path : impl Into <String>, view : F) -> Self where F : Fn() -> View + Send + Sync + 'static, | — |
pub struct NavSection | A sidebar section: an optional group heading and the nav items under it |
fn permits(required : & String, held : & String) -> bool | Whether a principal holding held satisfies required |
pub struct StaffModule | Staff module definition |
StaffModule :: fn builder(id : impl Into <String>) -> StaffModuleBuilder | Create a new module builder. |
StaffModule :: fn is_permitted(& self, held : & String) -> bool | Whether a principal holding held may see this module. |
StaffModule :: fn with_permissions <S : Into <String>>(mut self, permissions : Vec <S>) -> Self | Replace the module's declared permissions |
StaffModule :: fn in_group(mut self, group : impl Into <NavLabel>) -> Self | Put this module under a sidebar group heading. |
StaffModule :: fn in_menu(mut self, menu_group : & 'static str) -> Self | Assign this module to a switcher menu (sprint 3.102 correction) -- it renders only while that menu is the active one, never in the default ("Secretary") menu. |
pub struct StaffModuleBuilder | Builder for creating StaffModule instances. |
StaffModuleBuilder :: fn new(id : impl Into <String>) -> Self | — |
StaffModuleBuilder :: fn name(mut self, name : impl Into <String>) -> Self | — |
StaffModuleBuilder :: fn icon(mut self, icon : impl Into <String>) -> Self | — |
StaffModuleBuilder :: fn base_path(mut self, path : impl Into <String>) -> Self | — |
StaffModuleBuilder :: fn nav_item(mut self, item : NavItem) -> Self | — |
StaffModuleBuilder :: fn nav_items(mut self, items : Vec <NavItem>) -> Self | — |
StaffModuleBuilder :: fn route(mut self, route : ModuleRoute) -> Self | — |
StaffModuleBuilder :: fn routes(mut self, routes : Vec <ModuleRoute>) -> Self | — |
StaffModuleBuilder :: fn widget(mut self, widget : DashboardWidget) -> Self | — |
StaffModuleBuilder :: fn permission(mut self, perm : impl Into <String>) -> Self | — |
StaffModuleBuilder :: fn group(mut self, group : impl Into <NavLabel>) -> Self | Group this module under a shared sidebar heading (see NavSection). |
StaffModuleBuilder :: fn menu_group(mut self, menu_group : & 'static str) -> Self | Assign this module to a switcher menu (see StaffModule::in_menu). |
StaffModuleBuilder :: fn build(self) -> StaffModule | — |
pub struct ModuleRegistry | Module registry for managing registered modules. |
ModuleRegistry :: fn new() -> Self | — |
ModuleRegistry :: fn register(& mut self, module : StaffModule) | Register a module. |
ModuleRegistry :: fn get(& self, id : & str) -> Option <& StaffModule> | Get a module by ID. |
ModuleRegistry :: fn modules(& self) -> Vec <& StaffModule> | Get all registered modules in registration order. |
ModuleRegistry :: fn all_nav_items(& self) -> Vec <NavItem> | Get all navigation items from all modules |
ModuleRegistry :: fn visible_modules(& self, held : & String) -> Vec <& StaffModule> | Registered modules whose declared permissions held satisfies |
ModuleRegistry :: fn known_menus(& self, held : & String) -> Vec <& 'static str> | Distinct switcher-menu tags among the modules held may see, in first-registration order (sprint 3.102 correction, 2026-08-13) |
ModuleRegistry :: fn nav_items_for(& self, held : & String) -> Vec <NavItem> | Navigation items of the modules held may see, flat. |
ModuleRegistry :: fn nav_sections_for(& self, held : & String) -> Vec <NavSection> | Navigation items of the modules held may see, folded into NavSections by their declared group |
ModuleRegistry :: fn nav_sections_for_menu(& self, held : & String, active_menu : Option <& 'static str>,) -> Vec <NavSection> | Self::nav_sections_for, additionally filtered to modules whose StaffModule::menu_group matches active_menu (sprint 3.102 correction, 2026-08-13) -- None for the default ("Secretary") menu, Some(tag) for a switcher menu (e.g |
ModuleRegistry :: fn all_routes(& self) -> Vec <(String, ModuleRoute)> | Get all routes from all modules |
ModuleRegistry :: fn all_routes_scoped(& self) -> Vec <(String, ModuleRoute, Vec <String>)> | Every route, paired with the permissions its declaring module requires |
ModuleRegistry :: fn all_widgets(& self) -> Vec <& DashboardWidget> | Get all dashboard widgets from all modules. |
fn use_modules() -> ModuleRegistry | Hook to get the module registry from context. |
fn provide_modules(registry : ModuleRegistry) | Provide the module registry to the component tree. |
fn use_route_param(name : & str) -> String | Read a :param captured by the module router |
`notifications`
| Item | What it is |
|---|---|
fn notifications_module() -> StaffModule | — |
`notifications::pages`
| Item | What it is |
|---|---|
pub struct Notification | View-model — subset of the engine's Notification shape, just the fields the list page renders |
fn NotificationsPage() -> impl IntoView | NotificationsPage reads the operator's tenant + party from the session-injected context |
`orders`
| Item | What it is |
|---|---|
fn orders_module() -> StaffModule | — |
`orders::pages`
| Item | What it is |
|---|---|
pub struct Order | — |
fn OrdersPage() -> impl IntoView | — |
`parties`
| Item | What it is |
|---|---|
fn parties_module() -> StaffModule | Create the Parties/Person staff module. |
`parties::model`
| Item | What it is |
|---|---|
pub enum PartyKind | Which subtype of party a row is |
PartyKind :: fn as_str(self) -> & 'static str | Stable value used by the type-filter control and data-test-ids. |
PartyKind :: fn from_filter_value(value : & str) -> Option <Self> | Parse the filter control's value |
pub struct PartyRow | One row of the party list, from either endpoint. |
PartyRow :: fn from_person(p : & PersonSummary) -> Self | — |
PartyRow :: fn from_organization(o : & OrganizationSummary) -> Self | — |
PartyRow :: fn location(& self) -> String | "Duluth, MN" / "Duluth" / "" — the list's location cell. |
fn merge_rows(persons : & PersonSummary, organizations : & OrganizationSummary,) -> Vec <PartyRow> | Merge both endpoints' pages into one list, ordered by display name |
fn filter_rows(rows : & PartyRow, kind : Option <PartyKind>) -> Vec <PartyRow> | Apply the type filter |
`parties::pages`
| Item | What it is |
|---|---|
fn PartyList() -> impl IntoView | Party list (sprint 3.92) — every party, not just persons |
fn PartyCreate() -> impl IntoView | Full new-party form (sprint 3.92; expanded to every field in sprint 3.76) |
fn PartyEdit() -> impl IntoView | Edit dispatcher (sprint 3.92) |
fn OrganizationEdit() -> impl IntoView | Organization edit form (sprint 3.92, wireframe party-organization-edit.md) |
fn PartyDetail() -> impl IntoView | Party detail page (Sprint 3.71) — Dashboard + Profile tabs for a single Person or Organization |
fn PersonEdit() -> impl IntoView | Person edit form |
`payroll`
| Item | What it is |
|---|---|
fn payroll_module() -> StaffModule | — |
`payroll::pages`
| Item | What it is |
|---|---|
fn PayrollPage() -> impl IntoView | — |
`posts`
| Item | What it is |
|---|---|
fn posts_module() -> StaffModule | — |
`posts::pages`
| Item | What it is |
|---|---|
pub struct Post | — |
fn PostsPage() -> impl IntoView | — |
`profile`
| Item | What it is |
|---|---|
fn profile_module() -> StaffModule | — |
`profile::pages`
| Item | What it is |
|---|---|
pub struct Profile | — |
fn ProfilePage() -> impl IntoView | — |
`projects`
| Item | What it is |
|---|---|
fn projects_module() -> StaffModule | Register the Projects module. |
`projects::pages`
| Item | What it is |
|---|---|
fn ProjectsPage() -> impl IntoView | — |
`rbac_admin`
| Item | What it is |
|---|---|
fn rbac_admin_module() -> StaffModule | — |
`rbac_admin::pages`
| Item | What it is |
|---|---|
pub struct UserRow | — |
pub struct RoleRow | — |
pub struct PermissionRow | — |
fn UsersPage() -> impl IntoView | — |
fn RolesPage() -> impl IntoView | — |
`redirects`
| Item | What it is |
|---|---|
fn redirects_module() -> StaffModule | — |
`redirects::pages`
| Item | What it is |
|---|---|
pub struct Redirect | — |
fn RedirectsPage() -> impl IntoView | — |
`repairs`
| Item | What it is |
|---|---|
fn repairs_module() -> StaffModule | — |
`repairs::pages`
| Item | What it is |
|---|---|
fn RepairsPage() -> impl IntoView | — |
`reports`
| Item | What it is |
|---|---|
fn reports_module() -> StaffModule | Register the Test Reports module (list at base, detail at /:id). |
fn status_pill_class(status : & str) -> & 'static str | Tailwind classes for a run/result status pill. |
fn format_duration(started : & str, finished : Option <& str>) -> String | Human duration between two RFC-3339 instants |
fn fmt_dur_ms(ms : i64) -> String | Format a millisecond duration: <1s → "NNNms", else "N.Ns". |
fn sparkline_points(values : & f64, width : f64, height : f64) -> String | SVG polyline points for a sparkline over values (left→right = order given) |
`reports::pages`
| Item | What it is |
|---|---|
fn TestReportsList() -> impl IntoView | — |
fn RunDetail() -> impl IntoView | — |
fn FlakeBadge(suite : String, name : String, project : String) -> impl IntoView | Fetches a case's flake classification (suite::name) and renders a badge for non-stable cases — the marquee history signal, right on the result row. |
fn MetricSparkline(values : ReadSignal <Vec <f64>>) -> impl IntoView | Inline SVG sparkline over a value series (left→right = oldest→newest). |
`reservations`
| Item | What it is |
|---|---|
fn reservations_module() -> StaffModule | — |
`reservations::pages`
| Item | What it is |
|---|---|
pub struct CapacityPool | View-model — subset of the engine's CapacityPool shape |
fn ReservationsPage() -> impl IntoView | — |
`reviews`
| Item | What it is |
|---|---|
fn reviews_module() -> StaffModule | — |
`reviews::pages`
| Item | What it is |
|---|---|
pub struct Review | — |
fn ReviewsPage() -> impl IntoView | — |
`rfp`
| Item | What it is |
|---|---|
fn rfp_module() -> StaffModule | Register the RFP module as its own switcher menu + internal dropdown. |
`rfp::pages`
| Item | What it is |
|---|---|
pub struct OpportunityListItem | — |
fn OpportunitiesList() -> impl IntoView | — |
fn OpportunityCreate() -> impl IntoView | — |
fn OpportunityEdit() -> impl IntoView | — |
fn FundersList() -> impl IntoView | — |
fn FunderCreate() -> impl IntoView | — |
fn FunderEdit() -> impl IntoView | — |
`scheduling`
| Item | What it is |
|---|---|
fn scheduling_module() -> StaffModule | — |
`scheduling::pages`
| Item | What it is |
|---|---|
pub struct Schedule | View-model — subset of the engine's Schedule shape |
fn SchedulingPage() -> impl IntoView | — |
`search`
| Item | What it is |
|---|---|
fn search_module() -> StaffModule | Create the search staff module. |
`search::pages`
| Item | What it is |
|---|---|
fn SearchPage() -> impl IntoView | Search page -- a query box and a result list across every entity type Sprint 20 indexes (pages, posts, media, tags, reviews, comments, categories, contacts). |
`security`
| Item | What it is |
|---|---|
fn building_module() -> StaffModule | Register the Building (physical security) module. |
`security::pages`
| Item | What it is |
|---|---|
fn BuildingPage() -> impl IntoView | — |
`settings`
| Item | What it is |
|---|---|
fn settings_module() -> StaffModule | — |
`settings::jobs`
| Item | What it is |
|---|---|
fn JobsSettingsPage() -> impl IntoView | Jobs settings page: wake mode + poll/reaper cadence + max attempts. |
`settings::media`
| Item | What it is |
|---|---|
fn MediaLibrarySettingsPage() -> impl IntoView | Media Library settings page: variant-generation mode + immediate set + worker concurrency. |
`settings::messaging`
| Item | What it is |
|---|---|
fn MessagingSettingsPage() -> impl IntoView | — |
`settings::pages`
| Item | What it is |
|---|---|
fn SettingsPage() -> impl IntoView | — |
`support`
| Item | What it is |
|---|---|
fn support_module() -> StaffModule | Register the Support module. |
`support::pages`
| Item | What it is |
|---|---|
fn SupportPage() -> impl IntoView | — |
`tax`
| Item | What it is |
|---|---|
fn tax_module() -> StaffModule | — |
`tax::pages`
| Item | What it is |
|---|---|
fn TaxPage() -> impl IntoView | — |
`tenants`
| Item | What it is |
|---|---|
fn tenants_module() -> StaffModule | Register the Tenants (God Mode) module. |
`tenants::pages`
| Item | What it is |
|---|---|
fn TenantsPage() -> impl IntoView | — |
`terminal`
| Item | What it is |
|---|---|
fn terminal_module() -> StaffModule | Register the terminal (cmux) module. |
`terminal::pages`
| Item | What it is |
|---|---|
fn TerminalPage() -> impl IntoView | — |
`triggers`
| Item | What it is |
|---|---|
fn triggers_module() -> StaffModule | — |
`triggers::pages`
| Item | What it is |
|---|---|
pub struct Trigger | View-model — subset of the engine's Trigger shape, just the fields the list page renders |
fn TriggersPage() -> impl IntoView | TriggersPage lists every trigger definition for the operator to audit + toggle |
`wiki`
| Item | What it is |
|---|---|
fn wiki_module() -> StaffModule | Register the Wiki module. |
`wiki::pages`
| Item | What it is |
|---|---|
fn WikiDashboard() -> impl IntoView | — |
Re-exports. Exported here, defined elsewhere.
| Export | Defined in |
|---|---|
AccessSettingsPage} | access::{access_module,pages::AccessSettingsPage} |
AccountPage} | account::{account_module,pages::AccountPage} |
AccountingDashboard} | accounting::{accounting_module,pages::AccountingDashboard} |
AccountsPage | pages::AccountsPage |
AccountsPage} | ledger::{ledger_module,pages::AccountsPage} |
AccountsPayablePage} | accounts_payable::{accounts_payable_module,pages::AccountsPayablePage} |
AccountsReceivablePage} | accounts_receivable::{accounts_receivable_module,pages::AccountsReceivablePage} |
AlertsPage | pages::AlertsPage |
AlertsPageasDlpAlertsPage} | dlp::{dlp_module,pages::AlertsPageasDlpAlertsPage} |
ApiKeysPage} | api_keys::{api_keys_module,pages::ApiKeysPage} |
ApprovalsPage} | approvals::{approvals_module,pages::ApprovalsPage} |
Args | message::Args |
AttachmentsPage,} | attachments::{attachments_module,audit_page::AttachmentAuditPage,pages::AttachmentsPage,} |
BackdropsPage} | backdrops::{backdrops_module,pages::BackdropsPage} |
BankReconciliationPage} | bank_reconciliation::{bank_reconciliation_module,pages::BankReconciliationPage} |
BillingPage} | billing::{billing_module,pages::BillingPage} |
BudgetingPage} | budgeting::{budgeting_module,pages::BudgetingPage} |
BuildingPage} | security::{building_module,pages::BuildingPage} |
CampaignsPage} | campaigns::{campaigns_module,pages::CampaignsPage} |
CatalogPage} | catalog::{catalog_module,pages::CatalogPage} |
CategoriesPage} | categories::{categories_module,pages::CategoriesPage} |
CommentsPage} | comments::{comments_module,pages::CommentsPage} |
ContactInboxPage} | contacts::{contacts_module,pages::ContactInboxPage} |
DashboardPage | dashboard::DashboardPage |
DbaPage} | dba::{dba_module,pages::DbaPage} |
DiscountsPage} | discounts::{discounts_module,pages::DiscountsPage} |
DocsPage} | docs::{docs_module,pages::DocsPage} |
DownloadsPage} | downloads::{downloads_module,pages::DownloadsPage} |
EcommercePage} | ecommerce::{ecommerce_module,pages::EcommercePage} |
FinancialReportsPage} | financial_reports::{financial_reports_module,pages::FinancialReportsPage} |
FixedAssetsPage} | fixed_assets::{fixed_assets_module,pages::FixedAssetsPage} |
FleetDashboard} | fleet::{fleet_module,pages::FleetDashboard} |
ForbiddenPage | forbidden::ForbiddenPage |
InventoryPage} | inventory::{inventory_module,pages::InventoryPage} |
JobsPage} | jobs::{jobs_module,pages::JobsPage} |
LinksPage} | links::{links_module,pages::LinksPage} |
LoginPage | login::LoginPage |
LogsPage} | audit::{audit_module,pages::LogsPage} |
NotFoundPage | not_found::NotFoundPage |
NotificationsPage} | notifications::{notifications_module,pages::NotificationsPage} |
OrdersPage} | orders::{orders_module,pages::OrdersPage} |
PayrollPage,payroll_module} | payroll::{pages::PayrollPage,payroll_module} |
PostsPage,posts_module} | posts::{pages::PostsPage,posts_module} |
ProfilePage,profile_module} | profile::{pages::ProfilePage,profile_module} |
ProjectsPage,projects_module} | projects::{pages::ProjectsPage,projects_module} |
RedirectsPage,redirects_module} | redirects::{pages::RedirectsPage,redirects_module} |
RepairsPage,repairs_module} | repairs::{pages::RepairsPage,repairs_module} |
ReservationsPage,reservations_module} | reservations::{pages::ReservationsPage,reservations_module} |
ReviewsPage,reviews_module} | reviews::{pages::ReviewsPage,reviews_module} |
SchedulingPage,scheduling_module} | scheduling::{pages::SchedulingPage,scheduling_module} |
SearchPage | pages::SearchPage |
SearchPage,search_module} | search::{pages::SearchPage,search_module} |
SettingsPage,settings_module} | settings::{pages::SettingsPage,settings_module} |
StaffKey | key::StaffKey |
SupportPage,support_module} | support::{pages::SupportPage,support_module} |
TaxPage,tax_module} | tax::{pages::TaxPage,tax_module} |
TenantsPage,tenants_module} | tenants::{pages::TenantsPage,tenants_module} |
TerminalPage,terminal_module} | terminal::{pages::TerminalPage,terminal_module} |
TriggersPage,triggers_module} | triggers::{pages::TriggersPage,triggers_module} |
WikiDashboard,wiki_module} | wiki::{pages::WikiDashboard,wiki_module} |
analytics_module | analytics::analytics_module |
reports_module | reports::reports_module |
{Direction,Locale} | locale::{Direction,Locale} |
{DirectoryDetail,DirectoryEdit,DirectoryList,PendingList,PendingWidget} | pages::{DirectoryDetail,DirectoryEdit,DirectoryList,PendingList,PendingWidget} |
{FunderCreate,FunderEdit,FundersList,OpportunitiesList,OpportunityCreate,OpportunityEdit,} | pages::{FunderCreate,FunderEdit,FundersList,OpportunitiesList,OpportunityCreate,OpportunityEdit,} |
{Header,Sidebar,SidebarExtra,StaffLayout} | layout::{Header,Sidebar,SidebarExtra,StaffLayout} |
{MediaList,MediaPicker},} | media::{library_module,media_module,pages::{MediaList,MediaPicker},} |
{OpportunityCreate,OpportunityDetail,OpportunityList,StageAdmin} | pages::{OpportunityCreate,OpportunityDetail,OpportunityList,StageAdmin} |
{OrganizationEdit,PartyCreate,PartyDetail,PartyEdit,PartyList,PersonEdit} | pages::{OrganizationEdit,PartyCreate,PartyDetail,PartyEdit,PartyList,PersonEdit} |
{PageDetail,PageForm,PagesList},} | cms::{cms_module,pages::{PageDetail,PageForm,PagesList},} |
{RolesPage,UsersPage},rbac_admin_module,} | rbac_admin::{pages::{RolesPage,UsersPage},rbac_admin_module,} |
{build_i18n_context,t,ti,use_locale,Args,Locale,StaffKey} | i18n::{build_i18n_context,t,ti,use_locale,Args,Locale,StaffKey} |
{crm_module,OpportunityCreate,OpportunityDetail,OpportunityList,StageAdmin} | crm::{crm_module,OpportunityCreate,OpportunityDetail,OpportunityList,StageAdmin} |
{directory_module,DirectoryDetail,DirectoryEdit,DirectoryList,PendingList,PendingWidget,} | directory::{directory_module,DirectoryDetail,DirectoryEdit,DirectoryList,PendingList,PendingWidget,} |
{parties_module,OrganizationEdit,PartyCreate,PartyDetail,PartyEdit,PartyList,PersonEdit,} | parties::{parties_module,OrganizationEdit,PartyCreate,PartyDetail,PartyEdit,PartyList,PersonEdit,} |
{permits,provide_modules,use_modules,DashboardWidget,ModuleRegistry,ModuleRoute,NavItem,NavLabel,NavSection,StaffModule,StaffModuleBuilder,} | modules::{permits,provide_modules,use_modules,DashboardWidget,ModuleRegistry,ModuleRoute,NavItem,NavLabel,NavSection,StaffModule,StaffModuleBuilder,} |
{rfp_module,OpportunitiesList} | rfp::{rfp_module,OpportunitiesList} |
{use_api,ApiClient} | api::{use_api,ApiClient} |
{use_auth,use_require_auth,use_user,AuthContext,AuthProvider,RequirePermission,RequireRole,} | auth::{use_auth,use_require_auth,use_user,AuthContext,AuthProvider,RequirePermission,RequireRole,} |
Boundary
Reaches into operations.
Shares tier platform with 9 other crates: platform-api, platform-corpus-console, platform-customer-ui, platform-disclosure-lab, platform-dto, platform-html-components, platform-leptos-components, platform-privacy-scan-api, … (9 total).
_What this crate deliberately does NOT own is a judgment. No committed registry records one for it, so none is stated here._
Where it sits
| Tier (ontology) | platform |
| Architectural role (taxonomy) | unclassified (baselined) |
| Location | crates/platform/staff-ui |
| Vocabulary in force (lexicon) | current |
Tier flow. Which tiers this crate's own edges cross.
flowchart LR n_platform["platform"] --> n_operations["operations"]
Dependencies
Runtime, in this workspace.
| Crate | Tier | Optional | Only on |
|---|---|---|---|
| `operations-e2e-contract` | operations | no | always |
| `platform-dto` | platform | no | always |
| `platform-leptos-components` | platform | no | always |
Runtime, from outside the workspace.
| Crate | Requirement | Features | Optional | Only on |
|---|---|---|---|---|
chrono | ^0.4 | serde | no | always |
gloo-net | ^0.6 | — | no | always |
gloo-storage | ^0.3 | — | no | always |
gloo-timers | ^0.3 | futures | no | always |
js-sys | ^0.3.102 | — | no | always |
leptos | ^0.6 | csr | no | always |
leptos_meta | ^0.6 | csr | no | always |
leptos_router | ^0.6 | csr | no | always |
rust-patterns-i18n | * | — | no | always |
rust_decimal | ^1 | serde | no | always |
serde | ^1 | derive | no | always |
serde_json | ^1 | — | no | always |
uuid | ^1 | v4, v7, serde, js | no | always |
wasm-bindgen | ^0.2 | — | no | always |
wasm-bindgen-futures | ^0.4 | — | no | always |
web-sys | ^0.3 | Window, Document, Storage, console, HtmlInputElement, FormData, … (16 total) | no | always |
Development, from outside the workspace.
| Crate | Requirement | Features | Optional | Only on |
|---|---|---|---|---|
wasm-bindgen-test | ^0.3 | — | no | always |
Build. None.
Depended on by. 2 workspace crates.
Signal flow — what reaches this crate, and what it reaches.
flowchart LR n_application_staff_ui["application-staff-ui"] -->|uses| SELF n_platform_corpus_console["platform-corpus-console"] -->|uses| SELF SELF["platform-staff-ui"] SELF -->|runtime| n_operations_e2e_contract["operations-e2e-contract"] SELF -->|runtime| n_platform_dto["platform-dto"] SELF -->|runtime| n_platform_leptos_components["platform-leptos-components"] classDef self fill:#1f883d,stroke:#1f883d,color:#fff; class SELF self;
Feature flags
No Cargo features are defined: every capability is unconditional, so no consumer can receive a half-wired crate.
Targets
| Kind | Name | Source |
|---|---|---|
| cdylib | platform_staff_ui | `src/lib.rs` |
Error model
No public error type was detected: no public item declares a type named *Error, and no public signature returns one.
Operational characteristics
| Property | Evidence |
|---|---|
| async public surface | yes |
| async runtime | none detected |
| database access | none detected |
| network I/O | none detected |
| unsafe code | none detected |
| environment variables | yes |
No unsafe block, unsafe fn, unsafe impl or unsafe trait was found by the parser anywhere in this crate's source.
Configuration
| Variable | Read in |
|---|---|
CARGO_MANIFEST_DIR | src/i18n/guard.rs |
Related capabilities
2 workspace crates depend on this one: application-staff-ui, platform-corpus-console.
Verification
| Kind | Count |
|---|---|
| Unit tests | 153 |
| Integration tests | 0 |
| Examples | 0 |
| Doctests | 0 |
Evidence by module. How often each public module is named by something executable.
| Module | Tests | Examples | Consumers |
|---|---|---|---|
crate root | 7 | 0 | 1 |
access | 1 | 0 | 0 |
access::pages | 1 | 0 | 0 |
account | 1 | 0 | 0 |
account::pages | 1 | 0 | 0 |
accounting | 1 | 0 | 0 |
accounting::pages | 1 | 0 | 0 |
accounts_payable | 1 | 0 | 0 |
accounts_payable::pages | 1 | 0 | 0 |
accounts_receivable | 1 | 0 | 0 |
accounts_receivable::pages | 1 | 0 | 0 |
analytics | 1 | 0 | 0 |
analytics::pages::conversions | 1 | 0 | 0 |
analytics::pages::dashboard | 1 | 0 | 0 |
analytics::pages::devices | 1 | 0 | 0 |
analytics::pages::geo | 1 | 0 | 0 |
analytics::pages::pages_report | 1 | 0 | 0 |
analytics::pages::path_404 | 1 | 0 | 0 |
analytics::pages::shared | 5 | 0 | 0 |
analytics::pages::time | 1 | 0 | 0 |
analytics::pages::visitors | 1 | 0 | 0 |
api | 5 | 0 | 3 |
api_keys | 1 | 0 | 0 |
api_keys::pages | 1 | 0 | 0 |
approvals | 1 | 0 | 0 |
approvals::pages | 2 | 0 | 0 |
attachments | 1 | 0 | 0 |
attachments::audit_page | 2 | 0 | 0 |
attachments::pages | 2 | 0 | 0 |
audit | 1 | 0 | 0 |
audit::pages | 1 | 0 | 0 |
auth | 7 | 0 | 2 |
backdrops | 1 | 0 | 0 |
backdrops::pages | 3 | 0 | 0 |
bank_reconciliation | 1 | 0 | 0 |
bank_reconciliation::pages | 1 | 0 | 0 |
billing | 1 | 0 | 0 |
billing::pages | 1 | 0 | 0 |
budgeting | 1 | 0 | 0 |
budgeting::pages | 1 | 0 | 0 |
campaigns | 1 | 0 | 0 |
campaigns::pages | 1 | 0 | 0 |
catalog | 1 | 0 | 0 |
catalog::pages | 2 | 0 | 0 |
categories | 1 | 0 | 0 |
categories::pages | 2 | 0 | 0 |
cms | 1 | 0 | 1 |
cms::composer | 9 | 0 | 0 |
cms::gallery | 1 | 0 | 0 |
cms::pages | 3 | 0 | 0 |
cms::preview | 1 | 0 | 0 |
cms::slot_composer | 1 | 0 | 0 |
cms::template_form | 7 | 0 | 0 |
cms::test_id | 3 | 0 | 0 |
cms::versions | 3 | 0 | 0 |
comments | 1 | 0 | 0 |
comments::pages | 2 | 0 | 0 |
contacts | 1 | 0 | 0 |
contacts::pages | 2 | 0 | 0 |
crm | 1 | 0 | 1 |
crm::pages | 4 | 0 | 0 |
dba | 1 | 0 | 0 |
dba::pages | 1 | 0 | 0 |
directory | 1 | 0 | 0 |
directory::pages | 5 | 0 | 0 |
discounts | 1 | 0 | 0 |
discounts::pages | 2 | 0 | 0 |
dlp | 1 | 0 | 0 |
dlp::pages | 1 | 0 | 0 |
docs | 1 | 0 | 1 |
docs::pages | 1 | 0 | 1 |
downloads | 1 | 0 | 0 |
downloads::pages | 2 | 0 | 0 |
ecommerce | 1 | 0 | 0 |
ecommerce::pages | 1 | 0 | 0 |
financial_reports | 1 | 0 | 0 |
financial_reports::pages | 1 | 0 | 0 |
fixed_assets | 1 | 0 | 0 |
fixed_assets::pages | 1 | 0 | 0 |
fleet | 1 | 0 | 0 |
fleet::pages | 1 | 0 | 0 |
i18n | 7 | 0 | 1 |
i18n::catalog | 3 | 0 | 2 |
i18n::intl | 3 | 0 | 1 |
i18n::key | 1 | 0 | 1 |
i18n::locale | 2 | 0 | 0 |
i18n::message | 8 | 0 | 2 |
inventory | 1 | 0 | 0 |
inventory::pages | 2 | 0 | 0 |
jobs | 1 | 0 | 0 |
jobs::pages | 2 | 0 | 0 |
layout | 11 | 0 | 4 |
ledger | 1 | 0 | 0 |
ledger::pages | 1 | 0 | 0 |
links | 1 | 0 | 0 |
links::pages | 1 | 0 | 0 |
media | 2 | 0 | 0 |
media::library_page | 1 | 0 | 0 |
media::pages | 3 | 0 | 0 |
media::visibility | 1 | 0 | 0 |
modules | 12 | 0 | 4 |
notifications | 1 | 0 | 0 |
notifications::pages | 2 | 0 | 0 |
orders | 1 | 0 | 0 |
orders::pages | 2 | 0 | 0 |
parties | 1 | 0 | 0 |
parties::model | 4 | 0 | 0 |
parties::pages | 6 | 0 | 0 |
payroll | 1 | 0 | 0 |
payroll::pages | 1 | 0 | 0 |
posts | 1 | 0 | 0 |
posts::pages | 2 | 0 | 0 |
profile | 1 | 0 | 0 |
profile::pages | 2 | 0 | 0 |
projects | 1 | 0 | 0 |
projects::pages | 1 | 0 | 0 |
rbac_admin | 1 | 0 | 0 |
rbac_admin::pages | 5 | 0 | 0 |
redirects | 1 | 0 | 0 |
redirects::pages | 2 | 0 | 0 |
repairs | 1 | 0 | 0 |
repairs::pages | 1 | 0 | 0 |
reports | 5 | 0 | 0 |
reports::pages | 4 | 0 | 0 |
reservations | 1 | 0 | 0 |
reservations::pages | 2 | 0 | 0 |
reviews | 1 | 0 | 0 |
reviews::pages | 2 | 0 | 0 |
rfp | 1 | 0 | 0 |
rfp::pages | 7 | 0 | 0 |
scheduling | 1 | 0 | 0 |
scheduling::pages | 2 | 0 | 0 |
search | 1 | 0 | 0 |
search::pages | 1 | 0 | 1 |
security | 1 | 0 | 0 |
security::pages | 1 | 0 | 0 |
settings | 1 | 0 | 0 |
settings::jobs | 1 | 0 | 0 |
settings::media | 1 | 0 | 0 |
settings::messaging | 1 | 0 | 0 |
settings::pages | 1 | 0 | 0 |
support | 1 | 0 | 0 |
support::pages | 1 | 0 | 0 |
tax | 1 | 0 | 0 |
tax::pages | 1 | 0 | 0 |
tenants | 1 | 0 | 0 |
tenants::pages | 1 | 0 | 0 |
terminal | 1 | 0 | 1 |
terminal::pages | 1 | 0 | 1 |
triggers | 1 | 0 | 0 |
triggers::pages | 2 | 0 | 0 |
wiki | 1 | 0 | 0 |
wiki::pages | 1 | 0 | 0 |
What the tests establish, by name:
non_2xx_empty_body_reports_status_not_eof—src/api.rsnon_2xx_preserves_server_api_error—src/api.rsok_empty_body_is_clear_error_not_eof—src/api.rsok_garbage_is_parse_error_tagged_with_status—src/api.rsok_valid_json_parses—src/api.rsquery_values_are_percent_encoded—src/api.rsstatus_pill_colors_reconciled_green_and_in_progress_blue—src/bank_reconciliation/pages.rsstatus_pill_colors_paid_green_and_overdue_red—src/billing/pages.rsclearing_featured_image_serializes_explicit_null—src/cms/pages.rsdeserializes_flat_envelope_without_tree—src/cms/pages.rsdeserializes_translations_full_from_detail—src/cms/pages.rsdeserializes_tree_envelope_with_parent_and_depth—src/cms/pages.rsindent_only_applies_in_tree_mode—src/cms/pages.rslist_url_adds_filters_and_encodes—src/cms/pages.rslist_url_appends_cursor_encoded—src/cms/pages.rslist_url_base_has_limit—src/cms/pages.rslist_url_omits_empty_filters—src/cms/pages.rsno_change_yields_none—src/cms/pages.rsonly_changed_fields_are_present—src/cms/pages.rssetting_featured_image_serializes_uuid_string—src/cms/pages.rsunchanged_featured_image_omits_the_key—src/cms/pages.rslist_slot_reads_array_single_slot_reads_object—src/cms/slot_composer.rsnext_widget_id_is_unique_and_increments—src/cms/slot_composer.rsseed_widget_carries_discriminator_id_and_sample—src/cms/slot_composer.rsset_slot_rows_writes_array_for_list_object_for_single—src/cms/slot_composer.rsslot_type_single_vs_list_and_allowed_widgets—src/cms/slot_composer.rsblock_instance_re_roots_to_block_surface_and_def—src/cms/test_id.rscontrol_mapping_matches_contract—src/cms/test_id.rsrepeater_row_field_id_carries_index_path—src/cms/test_id.rstop_level_template_field_id—src/cms/test_id.rs- _… 123 more_
Documentation coverage
| Measure | Documented | Total |
|---|---|---|
| Public items with rustdoc | 243 | 401 |
Public modules with a //! block | 154 | 154 |
pie showData
title Public items with rustdoc
"Documented" : 243
"No rustdoc detected" : 158
Metrics
| Metric | Value |
|---|---|
| Rust source files | 163 |
| Source lines | 41899 |
| Code lines | 35594 |
| Public API items | 401 |
| Public modules | 154 |
| Tests | 153 |
| Examples | 0 |
| Cargo features | 0 |
| Direct runtime dependencies | 19 |
| Workspace reverse dependencies | 2 |
pie showData
title Public API by kind
"constant" : 3
"enum" : 11
"function" : 220
"method" : 112
"struct" : 55
pie showData
title Rust source composition
"Code" : 35594
"Blank or comment" : 6305
Generation
Rendered by tools-corpus corpus readme from repository evidence alone, renderer schema 2, lexicon current. No model, network service or database was consulted. Regenerate with tools-corpus corpus readme --write; verify with --check.