Rework path storage, add start screen
This commit is contained in:
@ -105,8 +105,7 @@ struct AddFileView: View {
|
||||
id: file.uniqueId,
|
||||
isExternallyStored: file.url == nil,
|
||||
en: "", de: "")
|
||||
// TODO: Insert at correct index?
|
||||
content.files.insert(resource, at: 0)
|
||||
content.add(resource)
|
||||
selectedFile = resource
|
||||
}
|
||||
dismiss()
|
||||
|
@ -5,13 +5,13 @@ struct FolderOnDiskPropertyView: View {
|
||||
let title: LocalizedStringKey
|
||||
|
||||
@Binding
|
||||
var folder: String
|
||||
var folder: URL?
|
||||
|
||||
let footer: LocalizedStringKey
|
||||
|
||||
let update: (URL) -> Void
|
||||
|
||||
init(title: LocalizedStringKey, folder: Binding<String>, footer: LocalizedStringKey, update: @escaping (URL) -> Void) {
|
||||
init(title: LocalizedStringKey, folder: Binding<URL?>, footer: LocalizedStringKey, update: @escaping (URL) -> Void) {
|
||||
self.title = title
|
||||
self._folder = folder
|
||||
self.footer = footer
|
||||
@ -21,7 +21,7 @@ struct FolderOnDiskPropertyView: View {
|
||||
var body: some View {
|
||||
GenericPropertyView(title: title, footer: footer) {
|
||||
HStack(alignment: .firstTextBaseline) {
|
||||
Text(folder)
|
||||
Text(folder?.path() ?? "No folder selected")
|
||||
Spacer()
|
||||
Button("Select") {
|
||||
guard let url = openFolderSelectionPanel() else {
|
||||
|
@ -81,7 +81,7 @@ struct AddPageView: View {
|
||||
urlString: "page",
|
||||
title: "A Title"),
|
||||
tags: [])
|
||||
content.pages.insert(page, at: 0)
|
||||
content.add(page)
|
||||
selectedPage = page
|
||||
dismissSheet()
|
||||
}
|
||||
|
@ -82,11 +82,10 @@ struct PageDetailView: View {
|
||||
}
|
||||
|
||||
private func generate() {
|
||||
guard content.settings.paths.outputDirectoryPath != "" else {
|
||||
guard let url = content.storage.outputPath else {
|
||||
print("Invalid output path")
|
||||
return
|
||||
}
|
||||
let url = content.settings.outputDirectory
|
||||
|
||||
guard FileManager.default.fileExists(atPath: url.path) else {
|
||||
print("Missing output folder")
|
||||
|
@ -184,7 +184,7 @@ struct PageIssueView: View {
|
||||
isExternallyStored: true,
|
||||
en: "",
|
||||
de: "")
|
||||
content.files.append(file)
|
||||
content.add(file)
|
||||
|
||||
retryPageCheck()
|
||||
}
|
||||
|
@ -59,11 +59,10 @@ struct GenerationContentView: View {
|
||||
}
|
||||
|
||||
private func generateFeed() {
|
||||
guard content.settings.paths.outputDirectoryPath != "" else {
|
||||
guard let url = content.storage.outputPath else {
|
||||
print("Invalid output path")
|
||||
return
|
||||
}
|
||||
let url = content.settings.outputDirectory
|
||||
|
||||
guard FileManager.default.fileExists(atPath: url.path) else {
|
||||
print("Missing output folder")
|
||||
|
@ -17,22 +17,19 @@ struct PathSettingsView: View {
|
||||
|
||||
FolderOnDiskPropertyView(
|
||||
title: "Content Folder",
|
||||
folder: $content.settings.paths.contentDirectoryPath,
|
||||
folder: $content.storage.contentPath,
|
||||
footer: "The folder where the raw content of the website is stored") { url in
|
||||
guard content.storage.save(folderUrl: url, in: .contentPath) else {
|
||||
guard content.storage.save(contentPath: url) else {
|
||||
return
|
||||
}
|
||||
content.settings.paths.contentDirectoryPath = url.path()
|
||||
#warning("Reload database")
|
||||
}
|
||||
|
||||
FolderOnDiskPropertyView(
|
||||
title: "Output Folder",
|
||||
folder: $content.settings.paths.outputDirectoryPath,
|
||||
folder: $content.storage.outputPath,
|
||||
footer: "The folder where the generated website is stored") { url in
|
||||
guard content.storage.save(folderUrl: url, in: .outputPath) else {
|
||||
return
|
||||
}
|
||||
content.settings.paths.outputDirectoryPath = url.path()
|
||||
content.storage.save(outputPath: url)
|
||||
}
|
||||
|
||||
StringPropertyView(
|
||||
|
Reference in New Issue
Block a user