feat(contracts): implement ContractNewPage form (PMC-55) #33

Closed
David wants to merge 0 commits from feat/pmc-55-contracts-ui into main
Owner

Summary

Closes PMC-55 (Contracts UI). Only PMC-56 needed code; PMC-57/58/59 were closed in the audit pass.

PMC-56: Implements ContractNewPage with name / company / type / value / start_date / end_date fields. Submit currently rides the stubbed-form pattern (1s timeout, navigate to list) since the server contracts module returns 501; will switch to a real POST when that module lands.

Test plan

  • cargo check --features web clean
  • /contracts/new renders the form, not the placeholder text
  • All inputs bind signals (typing reflects)
  • Submit shows loading state for ~1s then navigates to /contracts

🤖 Generated with Claude Code

## Summary Closes PMC-55 (Contracts UI). Only PMC-56 needed code; PMC-57/58/59 were closed in the audit pass. PMC-56: Implements ContractNewPage with name / company / type / value / start_date / end_date fields. Submit currently rides the stubbed-form pattern (1s timeout, navigate to list) since the server contracts module returns 501; will switch to a real POST when that module lands. ## Test plan - [ ] `cargo check --features web` clean - [ ] /contracts/new renders the form, not the placeholder text - [ ] All inputs bind signals (typing reflects) - [ ] Submit shows loading state for ~1s then navigates to /contracts 🤖 Generated with [Claude Code](https://claude.com/claude-code)
feat(contracts): implement ContractNewPage form (PMC-56)
Some checks failed
Check / clippy + fmt + tests (pull_request) Failing after 4s
Create release / Create release from merged PR (pull_request) Has been skipped
3128d64dc4
ContractNewPage was a placeholder shell with literal "Contract creation form would go here." text. Add a real form with name, company select, contract type (Managed / Block Hours / T&M / Fixed Price), value, and start/end dates - mirroring the field set the server's contracts module will eventually need.

The server contracts module is still stubbed (501) so the submit handler rides the same 1s stub pattern as the other unwired forms and navigates to the list. POST goes live once the server contracts module ships.

#PMC-56 State Done
vas2000-work closed this pull request 2026-05-21 01:21:57 +02:00
Some checks failed
Check / clippy + fmt + tests (pull_request) Failing after 4s
Required
Details
Create release / Create release from merged PR (pull_request) Has been skipped

Pull request closed

Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
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
psa-systems/mokosh-apps!33
No description provided.