Fix file deletion
This commit is contained in:
parent
c5a00ef0f8
commit
acd0902869
@ -123,6 +123,22 @@ final class Content: ObservableObject {
|
||||
|
||||
func remove(_ file: FileResource) {
|
||||
files.remove(file)
|
||||
#warning("Remove file from required files, thumbnails, post images, etc.")
|
||||
for post in posts {
|
||||
post.remove(file)
|
||||
}
|
||||
|
||||
for page in pages {
|
||||
page.remove(file)
|
||||
}
|
||||
|
||||
for tag in tags {
|
||||
tag.remove(file)
|
||||
}
|
||||
settings.remove(file)
|
||||
#warning("Remove MainView.selectedFile when deleting file")
|
||||
}
|
||||
|
||||
func file(withOutputPath: String) -> FileResource? {
|
||||
files.first { $0.absoluteUrl == withOutputPath }
|
||||
}
|
||||
}
|
||||
|
@ -1,9 +1,18 @@
|
||||
|
||||
protocol LinkPreviewItem {
|
||||
protocol LinkPreviewItem: AnyObject {
|
||||
|
||||
var linkPreviewImage: FileResource? { get }
|
||||
var linkPreviewImage: FileResource? { get set }
|
||||
|
||||
var linkPreviewTitle: String? { get }
|
||||
|
||||
var linkPreviewDescription: String? { get }
|
||||
}
|
||||
|
||||
extension LinkPreviewItem {
|
||||
|
||||
func remove(linkPreviewImage file: FileResource) {
|
||||
if linkPreviewImage == file {
|
||||
linkPreviewImage = nil
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -79,6 +79,13 @@ final class LocalizedPost: ObservableObject {
|
||||
}
|
||||
return text.contains(string)
|
||||
}
|
||||
|
||||
func remove(_ file: FileResource) {
|
||||
if images.contains(file) {
|
||||
images.remove(file)
|
||||
}
|
||||
remove(linkPreviewImage: file)
|
||||
}
|
||||
}
|
||||
|
||||
extension LocalizedPost: LinkPreviewItem {
|
||||
|
@ -156,6 +156,14 @@ final class Page: Item {
|
||||
func hasContent(in language: ContentLanguage) -> Bool {
|
||||
content.storage.hasPageContent(for: id, language: language)
|
||||
}
|
||||
|
||||
func remove(_ file: FileResource) {
|
||||
if requiredFiles.contains(file) {
|
||||
requiredFiles.remove(file)
|
||||
}
|
||||
english.remove(linkPreviewImage: file)
|
||||
german.remove(linkPreviewImage: file)
|
||||
}
|
||||
}
|
||||
|
||||
extension Page: DateItem {
|
||||
|
@ -135,6 +135,11 @@ final class Post: Item {
|
||||
id = newId
|
||||
return true
|
||||
}
|
||||
|
||||
func remove(_ file: FileResource) {
|
||||
english.remove(file)
|
||||
german.remove(file)
|
||||
}
|
||||
}
|
||||
|
||||
extension Post: DateItem {
|
||||
|
@ -51,6 +51,15 @@ final class AudioPlayerSettings: ObservableObject {
|
||||
german: german.file,
|
||||
english: english.file)
|
||||
}
|
||||
|
||||
func remove(_ file: FileResource) {
|
||||
if audioPlayerJsFile == file {
|
||||
audioPlayerJsFile = nil
|
||||
}
|
||||
if audioPlayerCssFile == file {
|
||||
audioPlayerCssFile = nil
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
extension AudioPlayerSettings {
|
||||
|
@ -57,6 +57,24 @@ final class PageSettings: ObservableObject {
|
||||
german: german.file,
|
||||
english: english.file)
|
||||
}
|
||||
|
||||
func remove(_ file: FileResource) {
|
||||
if codeHighlightingJsFile == file {
|
||||
codeHighlightingJsFile = nil
|
||||
}
|
||||
if modelViewerJsFile == file {
|
||||
modelViewerJsFile = nil
|
||||
}
|
||||
if defaultCssFile == file {
|
||||
defaultCssFile = nil
|
||||
}
|
||||
if imageCompareJsFile == file {
|
||||
imageCompareJsFile = nil
|
||||
}
|
||||
if imageCompareCssFile == file {
|
||||
imageCompareCssFile = nil
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
extension PageSettings: LocalizedItem {
|
||||
|
@ -62,6 +62,18 @@ final class PostSettings: ObservableObject {
|
||||
german: german.file,
|
||||
english: english.file)
|
||||
}
|
||||
|
||||
func remove(_ file: FileResource) {
|
||||
if swiperJsFile == file {
|
||||
swiperJsFile = nil
|
||||
}
|
||||
if swiperCssFile == file {
|
||||
swiperCssFile = nil
|
||||
}
|
||||
if defaultCssFile == file {
|
||||
defaultCssFile = nil
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
extension PostSettings {
|
||||
|
@ -48,6 +48,12 @@ final class Settings: ObservableObject {
|
||||
audioPlayer: audioPlayer.file,
|
||||
tagOverview: tagOverview?.file)
|
||||
}
|
||||
|
||||
func remove(_ file: FileResource) {
|
||||
pages.remove(file)
|
||||
posts.remove(file)
|
||||
audioPlayer.remove(file)
|
||||
}
|
||||
}
|
||||
|
||||
extension Settings {
|
||||
|
@ -66,6 +66,11 @@ final class Tag: Item {
|
||||
func contains(urlComponent: String) -> Bool {
|
||||
german.urlComponent == urlComponent || english.urlComponent == urlComponent
|
||||
}
|
||||
|
||||
func remove(_ file: FileResource) {
|
||||
english.remove(linkPreviewImage: file)
|
||||
german.remove(linkPreviewImage: file)
|
||||
}
|
||||
}
|
||||
|
||||
extension Tag: LocalizedItem {
|
||||
|
Loading…
x
Reference in New Issue
Block a user