diff options
Diffstat (limited to 'iosApp/iosApp/Details')
-rw-r--r-- | iosApp/iosApp/Details/DetailsView.swift | 2 | ||||
-rw-r--r-- | iosApp/iosApp/Details/Reports/UnitReportsView.swift | 55 | ||||
-rw-r--r-- | iosApp/iosApp/Details/Reports/UnitReportsViewModel.swift | 14 |
3 files changed, 64 insertions, 7 deletions
diff --git a/iosApp/iosApp/Details/DetailsView.swift b/iosApp/iosApp/Details/DetailsView.swift index c869369..9b75aec 100644 --- a/iosApp/iosApp/Details/DetailsView.swift +++ b/iosApp/iosApp/Details/DetailsView.swift @@ -50,7 +50,7 @@ struct DetailsView: View { .navigationBarTitleView( Picker(selection: $action) { Text("details").tag(DeviceRow.Action.details) - //Text("reports").tag(DeviceRow.Action.reports) + Text("reports").tag(DeviceRow.Action.reports) Text("commands").tag(DeviceRow.Action.commands) } label: { EmptyView() diff --git a/iosApp/iosApp/Details/Reports/UnitReportsView.swift b/iosApp/iosApp/Details/Reports/UnitReportsView.swift index 322e853..b73c9e7 100644 --- a/iosApp/iosApp/Details/Reports/UnitReportsView.swift +++ b/iosApp/iosApp/Details/Reports/UnitReportsView.swift @@ -34,11 +34,60 @@ struct UnitReportsView: View { VStack { MapView(layer: $unitReportsViewModel.layer, markers: $unitReportsViewModel.markers, - selected: $unitReportsViewModel.selectedMarker) + selected: $unitReportsViewModel.selectedMarker, + isReport: true) VStack { HStack { - Text("period") - } + Text("report-period") + Spacer() + Picker(selection: $unitReportsViewModel.reportPeriod) { + Text("period-today").tag(ReportDates.ReportPeriod.today) + Text("period-last-24").tag(ReportDates.ReportPeriod.last24) + Text("period-yesterday").tag(ReportDates.ReportPeriod.yesterday) + Text("period-this-week").tag(ReportDates.ReportPeriod.thisWeek) + Text("period-last-7").tag(ReportDates.ReportPeriod.last7) + Text("period-this-month").tag(ReportDates.ReportPeriod.thisMonth) + Text("period-last-30").tag(ReportDates.ReportPeriod.last30) + } label: { + switch unitReportsViewModel.reportPeriod { + case .today: + Text("period-today") + case .last24: + Text("period-last-24") + case .yesterday: + Text("period-yesterday") + case .thisWeek: + Text("period-this-week") + case .last7: + Text("period-last-7") + case .thisMonth: + Text("period-this-month") + case .last30: + Text("period-last-30") + default: + Text("period-today") + } + } + }.padding() + Picker(selection: $unitReportsViewModel.reportType) { + Text("report-positions").tag(ReportController.ReportType.positions) + Text("report-events").tag(ReportController.ReportType.events) + Text("report-stops").tag(ReportController.ReportType.stops) + } label: { + EmptyView() + }.pickerStyle(SegmentedPickerStyle()) + + HStack { + Group { + Button {} label: { + Text("report-save") + } + + Button {} label: { + Text("report-share") + } + }.frame(maxWidth: .infinity) + }.padding() }.padding() }.onAppear { unitReportsViewModel.fetchReport() diff --git a/iosApp/iosApp/Details/Reports/UnitReportsViewModel.swift b/iosApp/iosApp/Details/Reports/UnitReportsViewModel.swift index 8f67d7a..5e85e89 100644 --- a/iosApp/iosApp/Details/Reports/UnitReportsViewModel.swift +++ b/iosApp/iosApp/Details/Reports/UnitReportsViewModel.swift @@ -14,8 +14,16 @@ class UnitReportsViewModel: ObservableObject { @Inject var reportController: ReportController @Published var deviceId: Int32? = nil - @Published var reportType: ReportController.ReportType = .positions - @Published var reportPeriod: ReportDates.ReportPeriod = .today + @Published var reportType: ReportController.ReportType = .positions { + didSet { + fetchReport() + } + } + @Published var reportPeriod: ReportDates.ReportPeriod = .today { + didSet { + fetchReport() + } + } @Published var report: ReportController.Report? = nil { didSet { switch report { @@ -65,7 +73,7 @@ class UnitReportsViewModel: ObservableObject { .textMessage, .driverChanged, .unknown - ]) + ]) { _, _ in } } } } |