Public Asset Profile
Public Asset Profile
Every asset in Global Watch has a public profile at assets.global.watch/{assetId} that adapts to the visitor's device. Desktop and tablet users see a vertical-stacked layout with all sections visible at once; mobile users see a swipeable carousel with one section per page.
Overview
The public profile surfaces:
- Cover — Hero image, asset name, operational status, template category.
- Details — Gallery, 3D model viewer (when available), GPS centroid, adoption call-to-action.
- Catalog — Template-specific fields (serial, number, custom attributes).
- Map — Read-only mini-map; tapping opens the asset focused in the full
apps/mapviewer. - Tasks — Recent work orders for the asset (gated; see Access Tiers).
- Inspections — Recent inspections for the asset (gated).
Sections are conditionally shown: an asset without a template skips the catalog section, an asset without geometry skips the map section, and so on. On mobile, the dots-progress indicator only counts visible steps.
Adaptive UI
The same URL serves two layouts:
| Device | Layout | Behavior |
|---|---|---|
| Desktop (Mac, Windows, Linux) | Vertical stacked | All sections visible; standard scroll. |
| Tablet (iPad Safari, Android tablets) | Vertical stacked | Treated as desktop — two-handed ergonomics. |
| Mobile (iPhone, Android phones) | Swipe carousel | One section per page; swipe or arrow-key navigation; dots indicator. |
A viewport cookie can override automatic detection for testing or accessibility.
Carousel navigation (mobile)
- Swipe — left/right to advance/rewind steps.
- Arrow keys —
ArrowLeft/ArrowRight(mirrored under RTL);Home/Endjump to first/last step. - No submit / next / back buttons — the carousel is read-only.
Keyboard navigation respects form inputs: if a step contains a text field, key events inside the field are not intercepted by the carousel.
Access Tiers
The tasks and inspections sections are gated because operational data is sensitive:
| Visitor | Tasks & Inspections |
|---|---|
| Anonymous | Sign-in call-to-action. |
| Authenticated, not a project supporter | "Become a supporter" call-to-action when the asset has adoption enabled, otherwise "Not available". |
| Authenticated supporter (matching project) | Lists the 10 most recent work orders and inspections, each with status, date, and assignee/inspector name. |
The gating logic runs server-side. Non-supporter visitors never trigger queries against work orders or inspections.
Map deep-link
Tapping the mini-map opens the asset in the standalone map viewer at map.global.watch, focused on the asset via a URL hash. No additional clicks required.
Languages
The profile is fully translated to:
- 🇬🇧 English
- 🇧🇷 Portuguese (Brazil)
- 🇸🇦 Arabic (with RTL layout — carousel swipe direction inverts, dots order mirrors)
Language is detected from the browser's Accept-Language header with cookie override.
SEO
Both desktop and mobile branches are server-rendered. Page metadata (title, description) is composed from the asset name and description, cached per request, and independent of the visitor's identity. Search engines see the same canonical HTML as anonymous human visitors.