Modules
Projects module for PhoenixKit.
PhoenixKitAI.Translatable adapter for projects resources —
the small per-module hook into PhoenixKitAI's generic AI-translation pipeline.
PhoenixKitAI.Components.AITranslate.FormBinding for projects forms — the
storage-specific half of the shared AI-translate glue.
Activity logging wrapper for the Projects module.
Maps projects to PhoenixLiveCalendar.Event structs for the Overview
dashboard calendar.
The dashboard widgets phoenix_kit_projects contributes to
phoenix_kit_dashboards.
Atom → translated-string dispatcher for Projects context errors.
Global display settings for the projects Gantt/Timeline chart.
Gettext backend for projects-module-specific UI strings.
Tiny locale-aware date/time formatting helpers used by the projects UI.
Centralized path helpers for the Projects module.
Context for projects, tasks, assignments, and dependencies.
Real-time updates for the projects module, backed by
PhoenixKit.PubSub.Manager.
A task instance within a project. Copies description and duration from the task template at creation time — editable independently.
A dependency link: assignment_uuid cannot start until depends_on_uuid
is done. Both must be in the same project (enforced at the context layer).
A project container. Can start immediately (set up tasks first, then mark as started) or be scheduled for a future date.
A project's cemented workflow status — a local snapshot of a catalog
status row, copied from the phoenix_kit_entities vocabulary when the
project starts.
Reusable task template with title, description, estimated duration, and optional default assignee.
Default dependency between task templates. When both tasks are added to the same project, the assignment dependency is auto-created.
User-defined project workflow statuses, configured through the
optional phoenix_kit_entities module and cemented locally when a
project starts.
Add a task to a project or edit an existing assignment. Supports picking from library or creating new. Manages assignment dependencies (which tasks in this project must finish first).
Aggregator for the projects module's reusable UI components.
Status presentation for an Assignment.status value ("todo",
"in_progress", "done"). Mirrors DerivedStatusBadge but for the
assignment lifecycle instead of the project lifecycle.
Badge that renders a project's Project.derived_status/1 value as
a daisyUI badge with the canonical icon + color + gettext'd label.
Section heading + description + action button row used by every admin LV in the projects module (Overview, Projects list, Tasks, Templates, Project show, every form).
Layered daisyUI <dialog> modal stack driven by a modal_stack
assign. The function component renders the always-visible content
(default slot) plus one <dialog> per stack frame, delegating each
frame's body rendering to the :frame slot the host provides.
One project in the dashboard's "Running" section, rendered as a hierarchical
summary (V127): a top line with the project name + tier + progress, a
one-line summary (N tasks · M sub-projects), a status breakdown
(X done · Y in progress · Z todo), and then each embedded sub-project nested
underneath as an indented sub-step with its own summary + breakdown — all the
way down.
Embed-mode aware link.
Embed-mode aware <li> entry for use inside <.table_row_menu>.
Compact bordered card with a label and a big number. Used in OverviewLive's top stats row (Running / Tasks in progress / Tasks todo / Tasks done) and in the bottom navigation row.
daisyUI tabs tabs-boxed segment switcher driven by the active
value + a list of {value, label, icon} tuples. Used in
AssignmentFormLive ("From library" / "Create new") and ready
for reuse anywhere a small set of mutually-exclusive panes shares
a single LV-managed assign.
Status pill rendered next to a project title on the Running dashboard. Encodes the prioritized-tier classification
The shared "Workflow status" form section (V125), reused by every form that
edits a project-like record: ProjectFormLive, TemplateFormLive, and
AssignmentFormLive's sub-project mode. A sub-project and a template are both
projects, so they get the same status-source picker a project has.
Cross-cutting helpers for the projects module's LiveView layer.
Projects module dashboard.
Opinionated wrapper LV that pairs the <.popup_host> function
component with the emit-mode PubSub contract.
Create or edit a project.
Gantt / waterfall view of a project — the same data as
ProjectShowLive, rendered as horizontal bars on a date axis via the
PhoenixLiveGantt component instead of the vertical timeline.
Show a project with a vertical timeline of assignments. Supports inline status changes, duration editing, dependency management, and tracks who completed each task.
List projects.
Projects module settings (global, under the core Settings area).
Create or edit a reusable task template, including default dependencies.
List reusable task templates.
Create or edit a project template.
List project templates.
Dashboard widget: the running projects with the NEAREST planned ends —
soonest first, overdue flagged — so slipping work surfaces on the dashboard
before someone opens the projects page. Data comes from
Projects.project_summaries/1 (the same batched math as the overview:
weekend-aware planned_end, progress %). Views: detailed (date, progress,
late badge) / compact (name + date). Settings: "limit".
Shared helpers + frame for the dashboard widgets phoenix_kit_projects
contributes to phoenix_kit_dashboards via phoenix_kit_widgets/0.
Dashboard widget: the CURRENT USER's open assignments across every active
project — the personal "what's on my plate" view. Resolves the viewer through
the host-provided scope assign → their staff person →
Projects.list_assignments_for_user/1 (which degrades gracefully on a Staff
outage). Views: detailed (task, project, status, progress) / compact
(task + status dot). Settings: "limit".
Dashboard widget: the current ongoing (todo + in-progress) tasks of a project.
Views: detailed (task, assignee, status, progress) / compact (task + status
dot). Settings: "project" (name / id / substring) and "limit".
Dashboard widget: a single project's schedule/estimate — total estimated hours,
progress, planned end, and a live ETA (with an on-track / late cue). Views:
detailed / simple. Settings: "project".
Dashboard widget: the status of a single project — lifecycle + workflow status,
progress, task counts, and a live ETA. Views: detailed / simple (auto-simple
when small). Pick the project via the "project" setting (name / id / substring).
Dashboard widget: every project at a glance, coloured by status.
Views: grid (a uniform tile per project, tinted by lifecycle and
attention-sorted — overdue first, completed last — with the workflow status
as a second line) / counts (a bucket per workflow status with a count).
No settings — shows all projects.
Dashboard widget: workspace-wide projects + task workload at a glance — project
lifecycle counts (running / overdue / scheduled / completed) and assignment
status counts (todo / in progress / done). Views: detailed / simple.