Fix file deletion
This commit is contained in:
parent
c5a00ef0f8
commit
acd0902869
@ -123,6 +123,22 @@ final class Content: ObservableObject {
|
|||||||
|
|
||||||
func remove(_ file: FileResource) {
|
func remove(_ file: FileResource) {
|
||||||
files.remove(file)
|
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 linkPreviewTitle: String? { get }
|
||||||
|
|
||||||
var linkPreviewDescription: 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)
|
return text.contains(string)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func remove(_ file: FileResource) {
|
||||||
|
if images.contains(file) {
|
||||||
|
images.remove(file)
|
||||||
|
}
|
||||||
|
remove(linkPreviewImage: file)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
extension LocalizedPost: LinkPreviewItem {
|
extension LocalizedPost: LinkPreviewItem {
|
||||||
|
@ -156,6 +156,14 @@ final class Page: Item {
|
|||||||
func hasContent(in language: ContentLanguage) -> Bool {
|
func hasContent(in language: ContentLanguage) -> Bool {
|
||||||
content.storage.hasPageContent(for: id, language: language)
|
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 {
|
extension Page: DateItem {
|
||||||
|
@ -135,6 +135,11 @@ final class Post: Item {
|
|||||||
id = newId
|
id = newId
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func remove(_ file: FileResource) {
|
||||||
|
english.remove(file)
|
||||||
|
german.remove(file)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
extension Post: DateItem {
|
extension Post: DateItem {
|
||||||
|
@ -51,6 +51,15 @@ final class AudioPlayerSettings: ObservableObject {
|
|||||||
german: german.file,
|
german: german.file,
|
||||||
english: english.file)
|
english: english.file)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func remove(_ file: FileResource) {
|
||||||
|
if audioPlayerJsFile == file {
|
||||||
|
audioPlayerJsFile = nil
|
||||||
|
}
|
||||||
|
if audioPlayerCssFile == file {
|
||||||
|
audioPlayerCssFile = nil
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
extension AudioPlayerSettings {
|
extension AudioPlayerSettings {
|
||||||
|
@ -57,6 +57,24 @@ final class PageSettings: ObservableObject {
|
|||||||
german: german.file,
|
german: german.file,
|
||||||
english: english.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 {
|
extension PageSettings: LocalizedItem {
|
||||||
|
@ -62,6 +62,18 @@ final class PostSettings: ObservableObject {
|
|||||||
german: german.file,
|
german: german.file,
|
||||||
english: english.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 {
|
extension PostSettings {
|
||||||
|
@ -48,6 +48,12 @@ final class Settings: ObservableObject {
|
|||||||
audioPlayer: audioPlayer.file,
|
audioPlayer: audioPlayer.file,
|
||||||
tagOverview: tagOverview?.file)
|
tagOverview: tagOverview?.file)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func remove(_ file: FileResource) {
|
||||||
|
pages.remove(file)
|
||||||
|
posts.remove(file)
|
||||||
|
audioPlayer.remove(file)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
extension Settings {
|
extension Settings {
|
||||||
|
@ -66,6 +66,11 @@ final class Tag: Item {
|
|||||||
func contains(urlComponent: String) -> Bool {
|
func contains(urlComponent: String) -> Bool {
|
||||||
german.urlComponent == urlComponent || english.urlComponent == urlComponent
|
german.urlComponent == urlComponent || english.urlComponent == urlComponent
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func remove(_ file: FileResource) {
|
||||||
|
english.remove(linkPreviewImage: file)
|
||||||
|
german.remove(linkPreviewImage: file)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
extension Tag: LocalizedItem {
|
extension Tag: LocalizedItem {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user