summaryrefslogtreecommitdiff
path: root/DomainDig/WatchlistView.swift
diff options
context:
space:
mode:
authorChristian Cleberg <[email protected]>2026-07-16 23:48:10 -0500
committerChristian Cleberg <[email protected]>2026-07-16 23:48:10 -0500
commitd8195992e519343d6d8ff7fb17aa98358800d913 (patch)
tree09ef08c1c06ac55c84299d5fd1251755fe0cac4f /DomainDig/WatchlistView.swift
parent1edf5bc83c0dcc07246908af341f37e2c871edd7 (diff)
downloaddomain-dig-d8195992e519343d6d8ff7fb17aa98358800d913.tar.gz
domain-dig-d8195992e519343d6d8ff7fb17aa98358800d913.tar.bz2
domain-dig-d8195992e519343d6d8ff7fb17aa98358800d913.zip
DomainDig v4.4.1: Consolidate Audit Mode and remove the CLI targetv4.4.1
- Make DomainDig/DomainDig/Audit* the single active Audit Mode implementation (models, views, exporter) with an Audit tab and session/export UI - Include audit sessions in backup/restore lifecycle counts, summaries, and merge behavior via DomainDataPortabilityService - Remove the DomainDigCLI target, source file, scheme, and all project references; keep the shared inspection/report pipeline for the app - Align AppVersion.current to 4.4.1 and refresh README/architecture docs - Add RELEASE_ROADMAP.md
Diffstat (limited to 'DomainDig/WatchlistView.swift')
-rw-r--r--DomainDig/WatchlistView.swift28
1 files changed, 28 insertions, 0 deletions
diff --git a/DomainDig/WatchlistView.swift b/DomainDig/WatchlistView.swift
index d092f65..d91dd5d 100644
--- a/DomainDig/WatchlistView.swift
+++ b/DomainDig/WatchlistView.swift
@@ -476,6 +476,8 @@ struct TrackedDomainDetailView: View {
@State private var isEditingNote = false
@State private var showRerunOptions = false
@State private var shareEntity: ShareableEntity?
+ @State private var showingAuditTimeline = false
+ @State private var auditStartInFlight = false
private var liveTrackedDomain: TrackedDomain {
viewModel.trackedDomains.first(where: { $0.id == trackedDomain.id }) ?? trackedDomain
@@ -513,6 +515,27 @@ struct TrackedDomainDetailView: View {
}
Button {
+ Task {
+ auditStartInFlight = true
+ if await viewModel.startAudit(for: liveTrackedDomain.domain) != nil {
+ showingAuditTimeline = true
+ }
+ auditStartInFlight = false
+ }
+ } label: {
+ Label(auditStartInFlight ? "Starting Audit…" : "Start Audit", systemImage: "checklist")
+ }
+ .disabled(auditStartInFlight)
+
+ if !viewModel.audits(for: liveTrackedDomain.domain).isEmpty {
+ Button {
+ showingAuditTimeline = true
+ } label: {
+ Label("View Audits", systemImage: "clock.badge.checkmark")
+ }
+ }
+
+ Button {
viewModel.togglePinned(for: liveTrackedDomain)
} label: {
Label(liveTrackedDomain.isPinned ? "Unpin Domain" : "Pin Domain", systemImage: liveTrackedDomain.isPinned ? "pin.slash" : "pin")
@@ -651,5 +674,10 @@ struct TrackedDomainDetailView: View {
.sheet(item: $shareEntity) { entity in
CloudSharingSheet(entity: entity, title: liveTrackedDomain.domain)
}
+ .sheet(isPresented: $showingAuditTimeline) {
+ NavigationStack {
+ AuditDomainTimelineView(viewModel: viewModel, domain: liveTrackedDomain.domain)
+ }
+ }
}
}