summaryrefslogtreecommitdiff
path: root/DomainDig/HistoryView.swift
diff options
context:
space:
mode:
authorChristian Cleberg <[email protected]>2026-04-22 10:14:30 -0500
committerChristian Cleberg <[email protected]>2026-04-22 10:14:30 -0500
commit9384a668bf36f23f71e25d05b490d1040d308845 (patch)
tree6681f4b262a9414c7fc96148652599215b7973fc /DomainDig/HistoryView.swift
parent7b41195620eadd54d25fa98dcd36735cba906ba3 (diff)
downloaddomain-dig-9384a668bf36f23f71e25d05b490d1040d308845.tar.gz
domain-dig-9384a668bf36f23f71e25d05b490d1040d308845.tar.bz2
domain-dig-9384a668bf36f23f71e25d05b490d1040d308845.zip
feat(v2.8.0): add workflows and repeatable inspection automation
* introduce DomainWorkflow model and persistence * add WorkflowsView and execution flow * support batch inspection via workflows * add workflow-based export (TXT/CSV/JSON) * enable bulk add from history/watchlist * add quick actions for common operations * integrate workflows with tracking and history
Diffstat (limited to 'DomainDig/HistoryView.swift')
-rw-r--r--DomainDig/HistoryView.swift20
1 files changed, 19 insertions, 1 deletions
diff --git a/DomainDig/HistoryView.swift b/DomainDig/HistoryView.swift
index 9505c12..3bda59d 100644
--- a/DomainDig/HistoryView.swift
+++ b/DomainDig/HistoryView.swift
@@ -5,6 +5,7 @@ struct HistoryView: View {
@Bindable var viewModel: DomainViewModel
@Environment(\.dismiss) private var dismiss
@State private var showClearAllConfirmation = false
+ @State private var showWorkflowAddSheet = false
private var groupedHistory: [HistoryGroup] {
HistoryGroup.groups(for: viewModel.filteredHistory)
@@ -105,6 +106,12 @@ struct HistoryView: View {
Button("Clear All", role: .destructive) {
showClearAllConfirmation = true
}
+
+ if !viewModel.filteredHistory.isEmpty {
+ Button("Add to Workflow") {
+ showWorkflowAddSheet = true
+ }
+ }
} label: {
Image(systemName: "line.3.horizontal.decrease.circle")
}
@@ -121,6 +128,13 @@ struct HistoryView: View {
} message: {
Text("This will delete all saved history entries. This cannot be undone.")
}
+ .sheet(isPresented: $showWorkflowAddSheet) {
+ WorkflowBulkAddSheet(
+ viewModel: viewModel,
+ title: "Add History Domains",
+ availableDomains: Array(Set(viewModel.filteredHistory.map(\.domain))).sorted()
+ )
+ }
.onChange(of: viewModel.rerunNavigationToken) { _, _ in
dismiss()
}
@@ -170,6 +184,7 @@ struct HistoryDetailView: View {
confidence: snapshot.availabilityConfidence,
snapshotNote: entry.note,
trackedDomain: viewModel.trackedDomains.first(where: { $0.domain.lowercased() == entry.domain.lowercased() }),
+ workflows: viewModel.workflowsContaining(domain: entry.domain),
trackingLimitMessage: nil,
onTrack: {
_ = viewModel.trackDomain(domain: entry.domain, availabilityStatus: entry.availabilityResult?.status)
@@ -178,7 +193,10 @@ struct HistoryDetailView: View {
guard let trackedDomain = viewModel.trackedDomains.first(where: { $0.domain.lowercased() == entry.domain.lowercased() }) else { return }
viewModel.togglePinned(for: trackedDomain)
},
- onEditNote: nil
+ onEditNote: nil,
+ onAddToWorkflow: nil,
+ onOpenWorkflow: nil,
+ onRunWorkflow: nil
)
.padding(.top, appDensity.metrics.sectionSpacing)
OwnershipSectionView(