Check page state for overviews
This commit is contained in:
@ -250,11 +250,23 @@ extension Element {
|
||||
elements.contains { $0.containsElements }
|
||||
}
|
||||
|
||||
var sortedItems: [Element] {
|
||||
if useManualSorting {
|
||||
return elements.sorted { $0.sortIndex! < $1.sortIndex! }
|
||||
func itemsForOverview(_ count: Int? = nil) -> [Element] {
|
||||
if let shownItemCount = count {
|
||||
return Array(sortedItems.prefix(shownItemCount))
|
||||
} else {
|
||||
return sortedItems
|
||||
}
|
||||
return elements.sorted { $0.date! > $1.date! }
|
||||
}
|
||||
|
||||
private var sortedItems: [Element] {
|
||||
if useManualSorting {
|
||||
return shownItems.sorted { $0.sortIndex! < $1.sortIndex! }
|
||||
}
|
||||
return shownItems.sorted { $0.date! > $1.date! }
|
||||
}
|
||||
|
||||
private var shownItems: [Element] {
|
||||
elements.filter { $0.state.isShownInOverview }
|
||||
}
|
||||
|
||||
/**
|
||||
@ -340,9 +352,9 @@ extension Element {
|
||||
/**
|
||||
Get the next language to switch to with the language button.
|
||||
*/
|
||||
func nextLanguage(for languageIdentifier: String) -> String? {
|
||||
func nextLanguage(for language: String) -> String? {
|
||||
let langs = languages.map { $0.language }
|
||||
guard let index = langs.firstIndex(of: languageIdentifier) else {
|
||||
guard let index = langs.firstIndex(of: language) else {
|
||||
return nil
|
||||
}
|
||||
for i in 1..<langs.count {
|
||||
@ -350,7 +362,7 @@ extension Element {
|
||||
guard hasContent(for: next) else {
|
||||
continue
|
||||
}
|
||||
guard next != languageIdentifier else {
|
||||
guard next != language else {
|
||||
return nil
|
||||
}
|
||||
|
||||
@ -393,7 +405,10 @@ extension Element {
|
||||
}
|
||||
|
||||
private func hasContent(for language: String) -> Bool {
|
||||
existingContentUrl(for: language) != nil
|
||||
if !elements.isEmpty {
|
||||
return true
|
||||
}
|
||||
return existingContentUrl(for: language) != nil
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -16,3 +16,26 @@ enum PageState: String {
|
||||
*/
|
||||
case hide
|
||||
}
|
||||
|
||||
extension PageState {
|
||||
|
||||
var isShownInOverview: Bool {
|
||||
switch self {
|
||||
case .standard, .draft:
|
||||
return true
|
||||
case .hide:
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
var hasThumbnailLink: Bool {
|
||||
switch self {
|
||||
case .standard:
|
||||
return true
|
||||
case .draft:
|
||||
return false
|
||||
case .hide:
|
||||
return false
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user