Modules
Locations module for PhoenixKit.
Folder-scoped file attachments + featured image for Locations resources (Location, Space). Designed for multi-resource LVs: many Files cards can live on the same page, each keyed by an opaque string "scope" — typically the resource's id or a draft id.
Central mapping from error atoms (returned by the Locations module's public API and used across its LiveViews) to translated human-readable strings.
Gettext backend for phoenix_kit_locations.
Context module for managing locations and location types.
Centralized path helpers for the Locations module.
Schema for locations.
Schema for location types (e.g., Showroom, Storage, Office).
Join table for many-to-many between locations and location types.
A nested space inside a Location — a floor, room, zone, etc.
Context for nested spaces under a Location — rooms, floors, zones, etc. forming a per-location tree.
Reusable Files + Featured Image card body. Renders the same UI
for Location, floors, and rooms — each instance scoped by the
scope attr, which is forwarded as phx-value-scope on every
event button. The single shared upload config is owned by the
parent LiveView; each dropzone here also sets :active_upload_scope
on click so the upload routes to the right folder.
Shared tab navigation between a Location's "Details" and "Structure"
pages. Each tab is served by a separate LiveView (LocationFormLive
and LocationStructureLive), so tab links use navigate rather than
patch, mirroring PhoenixKitWarehouse.Web.Components.WarehouseHeader.
LiveComponent for picking a Location, and optionally a Space inside
it, in one widget — a search-combobox for the Location half and the
existing SpaceTree (read-only picker mode) for the Space half.
Recursive tree of a Location's Space hierarchy (floors, rooms, zones,
sections, aisles, shelves) — an adaptation of
PhoenixKitWeb.Components.FolderExplorer.folder_tree_node/1 for
PhoenixKitLocations.Spaces.list_tree/1 nodes. Simplified relative to
that model: no desktop-only fixed-width sidebar and no drag/drop or
connector-line CSS — a single full-width column.
Create/edit form for locations with multilang, type toggles, and feature checkboxes.
The "Structure" tab of a Location's admin page — mounts the Location,
loads its Space tree via Spaces.list_tree/1, and renders it through
SpaceTree.space_tree/1 next to LocationTabs.location_tabs/1 (the
shared tab header with LocationFormLive's "Details" tab).
Create/edit form for location types with multilang support.
Landing page for the Locations module.