API Reference PhoenixKitProjects v#0.19.0

Copy Markdown View Source

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.

The single resolver for "whose work is this?" questions against the polymorphic assignment assignee (person OR team OR department).

Maps projects — and, for the default Tasks mode, their scheduled tasks — 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.

The shared durations→dates schedule walk behind the project show page's Timeline (gantt) and Calendar tabs.

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.

Shared state glue for the calendar assignee/overdue filter — the chip-rail model (person chips via the core search_picker, a Me quick-toggle, an Unassigned lens, Personal-only and Overdue-only refinements, one Clear).

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.

<.assignee_filter_panel> — the Filters funnel button (badged with the active-filter count) plus its client-side popup panel: person typeahead, Me/Unassigned quick-adders, active chips, Personal-only and Overdue-only refinements, and Clear.

Status presentation for an Assignment.status value ("todo", "in_progress", "done"). Mirrors DerivedStatusBadge but for the assignment lifecycle instead of the project lifecycle.

<.day_popup_modal> — the whole-day popup both calendars share.

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 <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.

Shared plumbing for the admin list pages (Projects / Tasks / Templates): column-visibility persistence, search-param coercion, the client-search haystack builder, and the Columns dropdown component.

Projects module dashboard.

Opinionated wrapper LV that pairs the <.popup_host> function component with the emit-mode PubSub contract.

Calendar view of a project — the same scheduled data as the Timeline (gantt) tab, rendered as all-day bars on a month grid via the standalone phoenix_live_calendar component instead of bars on a date axis.

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.

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.