Integrate tag overview into settings file
This commit is contained in:
parent
48cfa204e2
commit
96c0a75c2f
@ -76,9 +76,6 @@ extension Content {
|
|||||||
let externalFiles = storage.loadExternalFileList() ?? []
|
let externalFiles = storage.loadExternalFileList() ?? []
|
||||||
if externalFiles.isEmpty { print("No external files loaded") }
|
if externalFiles.isEmpty { print("No external files loaded") }
|
||||||
|
|
||||||
let tagOverviewData = storage.loadTagOverview()
|
|
||||||
if tagOverviewData == nil { print("No tag overview loaded") }
|
|
||||||
|
|
||||||
print("Loaded data from disk, processing...")
|
print("Loaded data from disk, processing...")
|
||||||
// All data loaded from storage, start constructing the data model
|
// All data loaded from storage, start constructing the data model
|
||||||
|
|
||||||
@ -134,7 +131,7 @@ extension Content {
|
|||||||
linkedPage: linkedPage)
|
linkedPage: linkedPage)
|
||||||
}
|
}
|
||||||
|
|
||||||
let tagOverview = tagOverviewData.map { file in
|
let tagOverview = settings.tagOverview.map { file in
|
||||||
TagOverviewPage(
|
TagOverviewPage(
|
||||||
content: self,
|
content: self,
|
||||||
german: .init(content: self, file: file.german, image: file.german.linkPreviewImage.map { files[$0] }),
|
german: .init(content: self, file: file.german, image: file.german.linkPreviewImage.map { files[$0] }),
|
||||||
|
@ -12,7 +12,7 @@ extension Content {
|
|||||||
failedSaves += pages.count { !storage.save(pageMetadata: $0.pageFile, for: $0.id) }
|
failedSaves += pages.count { !storage.save(pageMetadata: $0.pageFile, for: $0.id) }
|
||||||
failedSaves += posts.count { !storage.save(post: $0.postFile, for: $0.id) }
|
failedSaves += posts.count { !storage.save(post: $0.postFile, for: $0.id) }
|
||||||
failedSaves += tags.count { !storage.save(tagMetadata: $0.file, for: $0.id) }
|
failedSaves += tags.count { !storage.save(tagMetadata: $0.file, for: $0.id) }
|
||||||
failedSaves.increment(!storage.save(settings: settings.file))
|
failedSaves.increment(!storage.save(settings: settings.file(tagOverview: tagOverview)))
|
||||||
|
|
||||||
let fileDescriptions: [FileDescriptions] = files.sorted().compactMap { file in
|
let fileDescriptions: [FileDescriptions] = files.sorted().compactMap { file in
|
||||||
guard !file.english.isEmpty || !file.german.isEmpty else {
|
guard !file.english.isEmpty || !file.german.isEmpty else {
|
||||||
@ -25,7 +25,6 @@ extension Content {
|
|||||||
}
|
}
|
||||||
|
|
||||||
failedSaves.increment(!storage.save(fileDescriptions: fileDescriptions))
|
failedSaves.increment(!storage.save(fileDescriptions: fileDescriptions))
|
||||||
failedSaves.increment(!storage.save(tagOverview: tagOverview?.file))
|
|
||||||
|
|
||||||
let externalFileList = files.filter { $0.isExternallyStored }.map { $0.id }
|
let externalFileList = files.filter { $0.isExternallyStored }.map { $0.id }
|
||||||
failedSaves.increment(!storage.save(externalFileList: externalFileList))
|
failedSaves.increment(!storage.save(externalFileList: externalFileList))
|
||||||
|
@ -60,13 +60,14 @@ final class Settings: ObservableObject {
|
|||||||
self.english = .init(file: file.english)
|
self.english = .init(file: file.english)
|
||||||
}
|
}
|
||||||
|
|
||||||
var file: SettingsFile {
|
func file(tagOverview: TagOverviewPage?) -> SettingsFile {
|
||||||
.init(
|
.init(
|
||||||
paths: paths.file,
|
paths: paths.file,
|
||||||
navigation: navigation.file,
|
navigation: navigation.file,
|
||||||
posts: posts.file,
|
posts: posts.file,
|
||||||
pages: pages.file,
|
pages: pages.file,
|
||||||
audioPlayer: audioPlayer.file,
|
audioPlayer: audioPlayer.file,
|
||||||
|
tagOverview: tagOverview?.file,
|
||||||
german: german.file,
|
german: german.file,
|
||||||
english: english.file)
|
english: english.file)
|
||||||
}
|
}
|
||||||
|
@ -13,6 +13,8 @@ struct SettingsFile {
|
|||||||
|
|
||||||
let audioPlayer: AudioPlayerSettingsFile
|
let audioPlayer: AudioPlayerSettingsFile
|
||||||
|
|
||||||
|
let tagOverview: TagOverviewFile?
|
||||||
|
|
||||||
let german: LocalizedPostSettingsFile
|
let german: LocalizedPostSettingsFile
|
||||||
|
|
||||||
let english: LocalizedPostSettingsFile
|
let english: LocalizedPostSettingsFile
|
||||||
@ -29,6 +31,7 @@ extension SettingsFile {
|
|||||||
posts: .default,
|
posts: .default,
|
||||||
pages: .default,
|
pages: .default,
|
||||||
audioPlayer: AudioPlayerSettings.default.file,
|
audioPlayer: AudioPlayerSettings.default.file,
|
||||||
|
tagOverview: nil,
|
||||||
german: .default,
|
german: .default,
|
||||||
english: .default
|
english: .default
|
||||||
)
|
)
|
||||||
|
@ -34,8 +34,6 @@ final class Storage: ObservableObject {
|
|||||||
|
|
||||||
private let settingsDataFileName = "settings.json"
|
private let settingsDataFileName = "settings.json"
|
||||||
|
|
||||||
private let tagOverviewFileName = "tag-overview.json"
|
|
||||||
|
|
||||||
private let contentPathBookmarkKey = "contentPathBookmark"
|
private let contentPathBookmarkKey = "contentPathBookmark"
|
||||||
|
|
||||||
// MARK: Properties
|
// MARK: Properties
|
||||||
@ -227,17 +225,6 @@ final class Storage: ObservableObject {
|
|||||||
return contentScope.encode(fileDescriptions, to: fileDescriptionFilename)
|
return contentScope.encode(fileDescriptions, to: fileDescriptionFilename)
|
||||||
}
|
}
|
||||||
|
|
||||||
// MARK: Tag overview
|
|
||||||
|
|
||||||
func loadTagOverview() -> TagOverviewFile? {
|
|
||||||
contentScope?.decode(at: tagOverviewFileName)
|
|
||||||
}
|
|
||||||
|
|
||||||
func save(tagOverview: TagOverviewFile?) -> Bool {
|
|
||||||
guard let contentScope else { return false }
|
|
||||||
return contentScope.encode(tagOverview, to: tagOverviewFileName)
|
|
||||||
}
|
|
||||||
|
|
||||||
// MARK: Files
|
// MARK: Files
|
||||||
|
|
||||||
func size(of file: String) -> Int? {
|
func size(of file: String) -> Int? {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user