Download Latest Version v0.9.1 -- Sentiment split + Projekt-Cockpit + inline-edit UX source code.zip (14.2 MB) Google Add to Preferred Sources
Home / v0.9.1
Name Modified Size InfoDownloads / Week
Parent folder
README.md 2026-10-15 4.2 kB
v0.9.1 -- Sentiment split + Projekt-Cockpit + inline-edit UX source code.tar.gz 2026-10-15 14.1 MB
v0.9.1 -- Sentiment split + Projekt-Cockpit + inline-edit UX source code.zip 2026-10-15 14.2 MB
Totals: 3 Items   28.2 MB 0

v0.9.1 — Sentiment split + Projekt-Cockpit + inline-edit UX

Hotfix on top of v0.9.0 that addresses user feedback from the first click-through — four scope issues (#122, [#123], [#124], scopes/intro) plus three polish items. Last 0.9.x — next release is v1.0.0.

Headline changes

Sentiment-Tracking split in Mood + Flow (#122)

Previously a single 1-5 "Stimmung" per day. Problem: it conflated personal mood with work-flow — an "innerlich gekündigt" developer can be privately cheerful (fine mood) and simultaneously stuck in a frustrating project (bad flow). One scalar hid that pattern.

  • Daily form shows two independent 5-smiley rows:
  • Mood (persönliche Stimmung): 😞 😕 😐 🙂 😄
  • Flow (wie läuft die Arbeit): 🛑 🐢 😐 🏃 🚀
  • Each row is optional, "überspringen" radio for NULL; submit refused only if both are empty.
  • Personal history + team summary render two sparkline rows + two independent averages.
  • Portable PHP migration renames score → mood (same semantics, keeps data), adds flow INTEGER NULL, drops NOT NULL on mood (SQLite via table rebuild, MySQL MODIFY COLUMN).

Projekt-Cockpit (#124)

The v0.9.0 Report was a snapshot (one row per project with Soll/Ist/%); v0.9.1 ships a real per-project cockpit at project_show?id=<id>.

  • Burn-up line chart — cumulative Ist hours over time + horizontal dashed Soll line + status-tinted path color. Inline SVG, geometry computed server-side, no JS chart library.
  • KPI tiles: Soll / Ist / Rest-or-Over (sign-aware) / % / 4-week h-per-week trend / status badge.
  • CSS-only line toggles (:has() selector) hide/show Ist, Soll, plus two Pro-locked toggles (Budget in €, Ideal-Verlauf).
  • Projekt-Health-Checks list — seven Pro-only automatic signals (offene Rechnungen, Angebot vs Aufwand, Terminverschiebungs-Log, Budget-Burn, Ressourcen-Konflikt, Portfolio-Heatmap, PDF-Export). Dashed border + "in Pro freischalten"-CTA.
  • Last 10 project entries below.
  • Linked from the projects list (name = link) and the dashboard planning tile.
  • Nav "Report" renamed to "Portfolio" for IA clarity — drill-down lives on each project.

Abstract inline list-editor pattern (#123)

The "statisches Form-Panel neben der Liste"-pattern used across six views was unclear — users couldn't tell which row was being edited.

  • New abstract partial views/partials/list_editor.php + per-model form partials under views/partials/forms/.
  • Edit form now expands inline in a <tr> directly below the clicked row; the clicked row gets .is-editing (soft background) and the edit row carries a brand-tinted left stripe.
  • "neu" lives above the list instead of beside it.
  • Rolled out across Clients, Projects, Workpackages, Tasks, Admin→Users, Admin→Roles.
  • Future pattern changes happen in one place, not six.

UX polish

  • Sidepanel-Overlap on topbar + footer fixed via body:has(.sidepanel) .topbar, …foot { padding-right: 200px } with matching breakpoint drop.
  • Feiertags-Liste below the week grid — the holiday overlay from v0.9.0 only surfaced as tiny badges in the day heads, hard to discover. Now a full list of the current week + next 90 days.
  • Projekt-Report Empty-State actionable — no more dead "Lege ein Soll an"-text; the page now lists active unplanned projects with a direct "Soll setzen"-button straight into each project's edit form, or links to project creation when there are none.
  • Scopes intro clearer — the Nachweis-Sichten edit form now explains what proof views are (saved filter + rebooking profile for the Statistics page), where they show up (dropdown there), with a collapsible Trägerwechsel-example.

Upgrade notes

  • The on-boot migrator handles the Sentiment schema change idempotently (SQLite + MySQL). Existing single-score entries migrate as Mood values; Flow starts out NULL.
  • No new permission codes.
  • No changes to any public API, route table or on-disk layout beyond the one new migration file and the project_show route.

Tests

131 tests, 439 assertions, all green.

🤖 Generated with Claude Code

Source: README.md, updated 2026-10-15