Show drafts in generation view
This commit is contained in:
@ -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")
|
||||||
|
@ -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 }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user