feat: implement navigation and operator UI for modules UI #141

Merged
addison merged 26 commits from feat/core-entities-ui-nav-operator into main 2026-03-05 04:57:57 -05:00
Collaborator
  • Fixed operator delete eligibility logic (canDelete) to handle reference checks safely.
  • Updated operator list UI filtering to clearer active/archived behavior with a fixed, centered segmented control.
  • Improved archived operator presentation (kept name text readable, adjusted list hierarchy).
  • Added/expanded UI implementation guidance in AGENTS.md (consistency + no elevation rules).
  • Included environment/build housekeeping updates (Android flake/dev shell tweaks).
  • Added recent docs updates for design and workflow notes.
- Fixed operator delete eligibility logic (canDelete) to handle reference checks safely. - Updated operator list UI filtering to clearer active/archived behavior with a fixed, centered segmented control. - Improved archived operator presentation (kept name text readable, adjusted list hierarchy). - Added/expanded UI implementation guidance in AGENTS.md (consistency + no elevation rules). - Included environment/build housekeeping updates (Android flake/dev shell tweaks). - Added recent docs updates for design and workflow notes.
Co-authored-by: Shelley <shelley@exe.dev>
Co-authored-by: Shelley <shelley@exe.dev>
Co-authored-by: Shelley <shelley@exe.dev>
Settings page tiles for Parcels, Crops, and Seasons had empty onTap
callbacks. Wire them up to show ComingSoonDialog so they are tappable
and communicate unimplemented status to the user.

Co-authored-by: Shelley <shelley@exe.dev>
Action buttons now follow the exclusive precedence:
  1. Archived → Unarchive only
  2. Deletable (no refs) → Delete only
  3. Has refs → Archive only

Previous code could show both Delete and Archive simultaneously,
which contradicts the spec.

Co-authored-by: Shelley <shelley@exe.dev>
fix(operator): allow clearing license number on save
All checks were successful
Flutter CI / test (pull_request) Successful in 5m16s
PR Build / build (pull_request) Successful in 25m0s
271e3f8ce1
Add ApplicatorLicensesDao.deleteByOperatorId() and call it in the
edit-operator save flow when the license field is left empty.
Previously, clearing an existing license number had no effect because
the empty-string branch was silently skipped.

Co-authored-by: Shelley <shelley@exe.dev>
addison changed title from feat(core-ui): implement navigation and operator UI for spec 3 to feat: implement navigation and operator UI for modules UI 2026-03-03 14:23:16 -05:00

📦 Build Successful!

Commit: 271e3f8
Size: 58M

Download APK

## 📦 Build Successful! **Commit:** `271e3f8` **Size:** 58M [Download APK](https://git.kwila.cloud/kwila/karriba/actions/runs/852/artifacts/karriba-apk)
fix(operator-ui): move archived filter out of app bar
All checks were successful
Flutter CI / test (pull_request) Successful in 9m32s
PR Build / build (pull_request) Successful in 46m16s
1a52bf4033
Co-authored-by: Shelley <shelley@exe.dev>
refactor(operator-ui): use segmented filter control on operators page
All checks were successful
Flutter CI / test (pull_request) Successful in 9m51s
PR Build / build (pull_request) Successful in 24m59s
453c8bdfe3
Co-authored-by: Shelley <shelley@exe.dev>

📦 Build Successful!

Commit: 453c8bd
Size: 58M

Download APK

## 📦 Build Successful! **Commit:** `453c8bd` **Size:** 58M [Download APK](https://git.kwila.cloud/kwila/karriba/actions/runs/856/artifacts/karriba-apk)
fix(operator-ui): simplify filters and improve operators list visual hierarchy
Some checks failed
Flutter CI / test (pull_request) Successful in 10m25s
PR Build / build (pull_request) Failing after 49m15s
6af8444ba1
Co-authored-by: Shelley <shelley@exe.dev>
fix(operator-ui): filter operators by active or archived only
Some checks failed
Flutter CI / test (pull_request) Successful in 13m30s
PR Build / build (pull_request) Failing after 24m33s
873dd7aecc
Co-authored-by: Shelley <shelley@exe.dev>
fix(operator-ui): use fixed-width segmented filter control
Some checks failed
Flutter CI / test (pull_request) Successful in 12m56s
PR Build / build (pull_request) Failing after 29m16s
0d64c5c201
Co-authored-by: Shelley <shelley@exe.dev>
fix(operator-ui): keep archived operator names at normal text color
Some checks failed
Flutter CI / test (pull_request) Successful in 16m56s
PR Build / build (pull_request) Failing after 35m5s
0499a78b8e
Co-authored-by: Shelley <shelley@exe.dev>
docs: add UI implementation rules to AGENTS.md
All checks were successful
Flutter CI / test (pull_request) Successful in 14m41s
PR Build / build (pull_request) Successful in 18m30s
959958dd38
Captures lessons learned during core-entities UI work:
- Follow spec mockups before custom interpretation
- No filters/toggles in AppBar unless spec shows them
- Confirm filter semantics (Active/Archived/All) before coding
- Keep controls layout-stable (no width/position shifts on state change)
- Use explicit archived badge/chip instead of muting primary text
- Prefer targeted fixes over full-screen redesigns

Co-authored-by: Shelley <shelley@exe.dev>

📦 Build Successful!

Commit: 959958d
Size: 58M

Download APK

## 📦 Build Successful! **Commit:** `959958d` **Size:** 58M [Download APK](https://git.kwila.cloud/kwila/karriba/actions/runs/866/artifacts/karriba-apk)
fix(operator-ui): center segmented filter and use list tiles
Some checks failed
Flutter CI / test (pull_request) Successful in 7m29s
PR Build / build (pull_request) Failing after 36m47s
a87d06d994
Co-authored-by: Shelley <shelley@exe.dev>
docs(agents): add UI consistency and no-elevation rules
All checks were successful
Flutter CI / test (pull_request) Successful in 8m44s
PR Build / build (pull_request) Successful in 25m2s
c92c95156f
Co-authored-by: Shelley <shelley@exe.dev>

📦 Build Successful!

Commit: c92c951
Size: 58M

Download APK

## 📦 Build Successful! **Commit:** `c92c951` **Size:** 58M [Download APK](https://git.kwila.cloud/kwila/karriba/actions/runs/870/artifacts/karriba-apk)
chore: update nix dev shell
Some checks failed
Flutter CI / test (pull_request) Successful in 17m28s
PR Build / build (pull_request) Failing after 52m52s
e1fba56eb8
fix: canDelete
Some checks failed
Flutter CI / test (pull_request) Failing after 16m7s
PR Build / build (pull_request) Failing after 52m48s
fe83539a07
chore: update lock
Some checks failed
Flutter CI / test (pull_request) Failing after 16m42s
PR Build / build (pull_request) Failing after 52m44s
5f2970bb46
refactor: inline widget and add TODO
Some checks failed
Flutter CI / test (pull_request) Failing after 10m19s
PR Build / build (pull_request) Failing after 35m58s
ea97b588fd
docs: update spec
Some checks failed
Flutter CI / test (pull_request) Failing after 9m53s
PR Build / build (pull_request) Failing after 26m14s
3cd9b00359
Fix SQLite FFI in Nix dev shell
Some checks failed
Flutter CI / test (pull_request) Failing after 25m26s
PR Build / build (pull_request) Has been cancelled
e7b41f69e4
Amp-Thread-ID: https://ampcode.com/threads/T-019cbd6b-2e04-752b-a6f6-5a66bed60d9e
Co-authored-by: Amp <amp@ampcode.com>
chore: update lock
Some checks failed
Flutter CI / test (pull_request) Successful in 10m40s
PR Build / build (pull_request) Has been cancelled
f625c57225
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
3 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
kwila/karriba!141
No description provided.