diff options
| author | Christian Cleberg <[email protected]> | 2026-04-01 22:03:14 -0500 |
|---|---|---|
| committer | Christian Cleberg <[email protected]> | 2026-04-01 22:03:14 -0500 |
| commit | 902055d5eaa7f5512b76e22f57df3939f956181f (patch) | |
| tree | 08b7bb220b980adc9eaa9c195dc26e846707b311 /Hutch/Models/Todo.swift | |
| parent | 209155dc431cf70d9c8dba20625bab7e3b1a5085 (diff) | |
| download | hutch-2.7.0.tar.gz hutch-2.7.0.tar.bz2 hutch-2.7.0.zip | |
Add tracker management (delete/update, ACLs, labels)v2.7.0
- Add swipe actions (delete/edit) to tracker list
- Add tracker settings menu on detail screen
- Implement updateTracker and deleteTracker mutations
- Implement ACL management (updateUserACL, updateTrackerACL, deleteACL)
- Implement label management (createLabel, updateLabel, deleteLabel)
- Add dedicated UI flows for ACLs and labels
- Ensure state refresh after mutations
- Handle loading, errors, and destructive confirmations
Implements: https://todo.sr.ht/~ccleberg/Hutch/12
Diffstat (limited to 'Hutch/Models/Todo.swift')
| -rw-r--r-- | Hutch/Models/Todo.swift | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/Hutch/Models/Todo.swift b/Hutch/Models/Todo.swift index 8a2b06c..129d4bf 100644 --- a/Hutch/Models/Todo.swift +++ b/Hutch/Models/Todo.swift @@ -81,6 +81,55 @@ struct TicketLabel: Codable, Sendable, Identifiable, Hashable { let foregroundColor: String } +// MARK: - Tracker ACL + +struct TrackerACLPermissions: Codable, Sendable, Hashable { + let browse: Bool + let submit: Bool + let comment: Bool + let edit: Bool + let triage: Bool +} + +struct TrackerACL: Codable, Sendable, Identifiable, Hashable { + let id: Int + let created: Date + let entity: Entity + let browse: Bool + let submit: Bool + let comment: Bool + let edit: Bool + let triage: Bool + + var permissions: TrackerACLPermissions { + TrackerACLPermissions( + browse: browse, + submit: submit, + comment: comment, + edit: edit, + triage: triage + ) + } +} + +struct DefaultTrackerACL: Codable, Sendable, Hashable { + let browse: Bool + let submit: Bool + let comment: Bool + let edit: Bool + let triage: Bool + + var permissions: TrackerACLPermissions { + TrackerACLPermissions( + browse: browse, + submit: submit, + comment: comment, + edit: edit, + triage: triage + ) + } +} + // MARK: - Tracker /// A bug tracker from todo.sr.ht. |
