Show drafts in generation view

This commit is contained in:
Christoph Hagen
2025-05-04 10:13:59 +02:00
parent e689903f3c
commit dd720d6646
2 changed files with 37 additions and 22 deletions

View File

@ -12,6 +12,14 @@ struct GenerationContentView: View {
@Environment(\.dismiss) @Environment(\.dismiss)
private var dismiss private var dismiss
var draftPages: Set<Page> {
Set(content.pages.filter { $0.isDraft })
}
var draftPosts: Set<Post> {
Set(content.posts.filter { $0.isDraft })
}
var body: some View { var body: some View {
VStack(alignment: .leading) { VStack(alignment: .leading) {
Text("Website Generation") Text("Website Generation")
@ -45,7 +53,7 @@ struct GenerationContentView: View {
GenerationStringIssuesView( GenerationStringIssuesView(
text: "output files", text: "output files",
statusWhenNonEmpty: .nominal, statusWhenNonEmpty: .nominal,
items: $content.results.outputFiles) items: content.results.outputFiles)
GenerationResultsIssueView( GenerationResultsIssueView(
text: "\(content.results.imagesToGenerate.count) images", text: "\(content.results.imagesToGenerate.count) images",
status: .nominal, status: .nominal,
@ -57,54 +65,62 @@ struct GenerationContentView: View {
GenerationStringIssuesView( GenerationStringIssuesView(
text: "external links", text: "external links",
statusWhenNonEmpty: .nominal, statusWhenNonEmpty: .nominal,
items: $content.results.externalLinks) items: content.results.externalLinks)
GenerationStringIssuesView( GenerationStringIssuesView(
text: "required files", text: "required files",
statusWhenNonEmpty: .nominal, statusWhenNonEmpty: .nominal,
items: $content.results.requiredFiles) { $0.id } items: content.results.requiredFiles) { $0.id }
GenerationStringIssuesView( GenerationStringIssuesView(
text: "external files", text: "external files",
statusWhenNonEmpty: .nominal, statusWhenNonEmpty: .nominal,
items: $content.results.externalFiles) { $0.id } items: content.results.externalFiles) { $0.id }
GenerationStringIssuesView( GenerationStringIssuesView(
text: "empty pages", text: "empty pages",
statusWhenNonEmpty: .warning, statusWhenNonEmpty: .warning,
items: $content.results.emptyPages) { "\($0.pageId) (\($0.language))" } items: content.results.emptyPages) { "\($0.pageId) (\($0.language))" }
GenerationStringIssuesView(
text: "draft pages",
statusWhenNonEmpty: .warning,
items: draftPages) { $0.id }
GenerationStringIssuesView(
text: "draft posts",
statusWhenNonEmpty: .warning,
items: draftPosts) { $0.id }
GenerationStringIssuesView( GenerationStringIssuesView(
text: "additional output files", text: "additional output files",
statusWhenNonEmpty: .warning, statusWhenNonEmpty: .warning,
items: $content.results.unusedFilesInOutput) items: content.results.unusedFilesInOutput)
GenerationStringIssuesView( GenerationStringIssuesView(
text: "inaccessible files", text: "inaccessible files",
items: $content.results.inaccessibleFiles) { $0.id } items: content.results.inaccessibleFiles) { $0.id }
GenerationStringIssuesView( GenerationStringIssuesView(
text: "unparsable files", text: "unparsable files",
items: $content.results.unparsableFiles) { $0.id } items: content.results.unparsableFiles) { $0.id }
GenerationStringIssuesView( GenerationStringIssuesView(
text: "unsaved output files", text: "unsaved output files",
items: $content.results.unsavedOutputFiles) items: content.results.unsavedOutputFiles)
GenerationStringIssuesView( GenerationStringIssuesView(
text: "failed image generations", text: "failed image generations",
items: $content.results.failedImages) { $0.outputPath } items: content.results.failedImages) { $0.outputPath }
GenerationStringIssuesView( GenerationStringIssuesView(
text: "missing files", text: "missing files",
items: $content.results.missingFiles) items: content.results.missingFiles)
GenerationStringIssuesView( GenerationStringIssuesView(
text: "missing tags", text: "missing tags",
items: $content.results.missingTags) items: content.results.missingTags)
GenerationStringIssuesView( GenerationStringIssuesView(
text: "missing pages", text: "missing pages",
items: $content.results.missingPages) items: content.results.missingPages)
GenerationStringIssuesView( GenerationStringIssuesView(
text: "invalid commands", text: "invalid commands",
items: $content.results.invalidCommands) items: content.results.invalidCommands)
GenerationStringIssuesView( GenerationStringIssuesView(
text: "invalid blocks", text: "invalid blocks",
items: $content.results.invalidBlocks) items: content.results.invalidBlocks)
GenerationStringIssuesView( GenerationStringIssuesView(
text: "warnings", text: "warnings",
statusWhenNonEmpty: .warning, statusWhenNonEmpty: .warning,
items: $content.results.warnings) items: content.results.warnings)
HorizontalCenter { HorizontalCenter {
Button(action: { dismiss() }) { Button(action: { dismiss() }) {
Text("Close") Text("Close")

View File

@ -6,8 +6,7 @@ struct GenerationStringIssuesView<T>: View where T: Hashable {
let statusWhenNonEmpty: IssueStatus let statusWhenNonEmpty: IssueStatus
@Binding let items: Set<T>
var items: Set<T>
let map: (T) -> String let map: (T) -> String
@ -18,10 +17,10 @@ struct GenerationStringIssuesView<T>: View where T: Hashable {
items.isEmpty ? .nominal : statusWhenNonEmpty items.isEmpty ? .nominal : statusWhenNonEmpty
} }
init(text: String, statusWhenNonEmpty: IssueStatus = .error, items: Binding<Set<T>>, map: @escaping (T) -> String) { init(text: String, statusWhenNonEmpty: IssueStatus = .error, items: Set<T>, map: @escaping (T) -> String) {
self.text = text self.text = text
self.statusWhenNonEmpty = statusWhenNonEmpty self.statusWhenNonEmpty = statusWhenNonEmpty
self._items = items self.items = items
self.map = map self.map = map
} }
@ -56,10 +55,10 @@ struct GenerationStringIssuesView<T>: View where T: Hashable {
extension GenerationStringIssuesView where T == String { extension GenerationStringIssuesView where T == String {
init(text: String, statusWhenNonEmpty: IssueStatus = .error, items: Binding<Set<String>>) { init(text: String, statusWhenNonEmpty: IssueStatus = .error, items: Set<String>) {
self.text = text self.text = text
self.statusWhenNonEmpty = statusWhenNonEmpty self.statusWhenNonEmpty = statusWhenNonEmpty
self._items = items self.items = items
self.map = { $0 } self.map = { $0 }
} }
} }