API Reference PhoenixKitLocations v#0.3.0

Copy Markdown View Source

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.