Update page indicators
This commit is contained in:
@@ -61,6 +61,14 @@ final class LocalizedPage: ChangeObservingItem {
|
|||||||
content.isValidIdForTagOrPageOrPost(urlComponent) &&
|
content.isValidIdForTagOrPageOrPost(urlComponent) &&
|
||||||
!content.containsPage(withUrlComponent: urlComponent)
|
!content.containsPage(withUrlComponent: urlComponent)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func update(hasContent: Bool) -> Bool {
|
||||||
|
if self.hasContent != hasContent {
|
||||||
|
self.hasContent = hasContent
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@@ -153,7 +153,9 @@ final class Page: Item, DateItem, LocalizedItem {
|
|||||||
guard content.storage.remove(pageContent: id, in: language) else {
|
guard content.storage.remove(pageContent: id, in: language) else {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
localized(in: language).hasContent = false
|
if localized(in: language).update(hasContent: false) {
|
||||||
|
self.didChange()
|
||||||
|
}
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -161,7 +163,9 @@ final class Page: Item, DateItem, LocalizedItem {
|
|||||||
guard content.storage.save(pageContent: pageContent, for: id, in: language) else {
|
guard content.storage.save(pageContent: pageContent, for: id, in: language) else {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
localized(in: language).hasContent = true
|
if localized(in: language).update(hasContent: true) {
|
||||||
|
self.didChange()
|
||||||
|
}
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -169,8 +173,15 @@ final class Page: Item, DateItem, LocalizedItem {
|
|||||||
Update the `hasContent` property of all localized pages.
|
Update the `hasContent` property of all localized pages.
|
||||||
*/
|
*/
|
||||||
func updateContentExistence() {
|
func updateContentExistence() {
|
||||||
|
var didUpdate = false
|
||||||
for language in ContentLanguage.allCases {
|
for language in ContentLanguage.allCases {
|
||||||
localized(in: language).hasContent = content.storage.hasPageContent(for: id, language: language)
|
let hasContent = content.storage.hasPageContent(for: id, language: language)
|
||||||
|
if localized(in: language).update(hasContent: hasContent) {
|
||||||
|
didUpdate = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if didUpdate {
|
||||||
|
self.didChange()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user