mirror of
https://github.com/Theodor-Springmann-Stiftung/kgpz_web.git
synced 2025-10-29 09:05:30 +00:00
Added sorting to arr in xmlprovider
This commit is contained in:
@@ -30,7 +30,7 @@ func GetIssue(kgpz *xmlmodels.Library) fiber.Handler {
|
|||||||
return c.SendStatus(fiber.StatusNotFound)
|
return c.SendStatus(fiber.StatusNotFound)
|
||||||
}
|
}
|
||||||
|
|
||||||
issue, err := viewmodels.NewSingleIssueView(y, d, kgpz)
|
issue, err := viewmodels.NewSingleIssueView(yi, di, kgpz)
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logging.Error(err, "Issue could not be found")
|
logging.Error(err, "Issue could not be found")
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package xmlprovider
|
package xmlprovider
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"log"
|
||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
)
|
)
|
||||||
@@ -47,7 +48,6 @@ func Sort[T XMLItem](i, j T) int {
|
|||||||
}
|
}
|
||||||
|
|
||||||
int_b, err := strconv.Atoi(sort_b[i])
|
int_b, err := strconv.Atoi(sort_b[i])
|
||||||
if err != nil {
|
|
||||||
if item < sort_b[i] {
|
if item < sort_b[i] {
|
||||||
return -1
|
return -1
|
||||||
}
|
}
|
||||||
@@ -23,17 +23,46 @@ type PiecesByPage struct {
|
|||||||
// TODO: Next & Prev
|
// TODO: Next & Prev
|
||||||
type IssueVM struct {
|
type IssueVM struct {
|
||||||
xmlmodels.Issue
|
xmlmodels.Issue
|
||||||
|
Next *xmlmodels.Issue
|
||||||
|
Prev *xmlmodels.Issue
|
||||||
Pieces PiecesByPage
|
Pieces PiecesByPage
|
||||||
AdditionalPieces PiecesByPage
|
AdditionalPieces PiecesByPage
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewSingleIssueView(y string, no string, lib *xmlmodels.Library) (*IssueVM, error) {
|
func NewSingleIssueView(y, no int, lib *xmlmodels.Library) (*IssueVM, error) {
|
||||||
issue := lib.Issues.Item(no + "-" + y)
|
lib.Issues.Lock()
|
||||||
|
var issue *xmlmodels.Issue = nil
|
||||||
|
var next *xmlmodels.Issue = nil
|
||||||
|
var prev *xmlmodels.Issue = nil
|
||||||
|
|
||||||
|
for i, iss := range lib.Issues.Array {
|
||||||
|
if iss.Datum.When.Year == y && iss.Number.No == no {
|
||||||
|
issue = &iss
|
||||||
|
if i > 0 {
|
||||||
|
prev = &lib.Issues.Array[i-1]
|
||||||
|
}
|
||||||
|
if i < len(lib.Issues.Array)-1 {
|
||||||
|
next = &lib.Issues.Array[i+1]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if issue == nil {
|
if issue == nil {
|
||||||
return nil, fmt.Errorf("No issue found for %v-%v", y, no)
|
return nil, fmt.Errorf("No issue found for %v-%v", y, no)
|
||||||
}
|
}
|
||||||
|
|
||||||
sivm := IssueVM{Issue: *issue}
|
var Next *xmlmodels.Issue = nil
|
||||||
|
var Prev *xmlmodels.Issue = nil
|
||||||
|
if next != nil {
|
||||||
|
Next = &*next
|
||||||
|
}
|
||||||
|
if prev != nil {
|
||||||
|
Prev = &*prev
|
||||||
|
}
|
||||||
|
|
||||||
|
sivm := IssueVM{Issue: *issue, Next: Next, Prev: Prev}
|
||||||
|
|
||||||
|
lib.Issues.Unlock()
|
||||||
ppi, ppa, err := PiecesForIsssue(lib, *issue)
|
ppi, ppa, err := PiecesForIsssue(lib, *issue)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@@ -5,6 +5,20 @@
|
|||||||
Zurück zum Jahr
|
Zurück zum Jahr
|
||||||
{{ $date.Year }}
|
{{ $date.Year }}
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
{{ if $model.Prev }}
|
||||||
|
<a href="/{{- $model.Prev.Datum.When.Year -}}/{{- $model.Prev.Number.No -}}">
|
||||||
|
← Zurück
|
||||||
|
</a>
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
|
{{ if $model.Next }}
|
||||||
|
<a href="/{{- $model.Next.Datum.When.Year -}}/{{- $model.Next.Number.No -}}">
|
||||||
|
Weiter →
|
||||||
|
</a>
|
||||||
|
{{ end }}
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
|
|||||||
@@ -46,7 +46,7 @@
|
|||||||
|
|
||||||
<!-- Notizen -->
|
<!-- Notizen -->
|
||||||
{{ range $annotation := $piece.AnnotationNote.Annotations }}
|
{{ range $annotation := $piece.AnnotationNote.Annotations }}
|
||||||
<div>
|
<div class="italic">
|
||||||
{{ $annotation.Inner.InnerXML }}
|
{{ $annotation.Inner.InnerXML }}
|
||||||
</div>
|
</div>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
|||||||
@@ -39,12 +39,13 @@ func (i Issue) Keys() []string {
|
|||||||
}
|
}
|
||||||
|
|
||||||
res := make([]string, 2)
|
res := make([]string, 2)
|
||||||
|
res = append(res, i.Reference())
|
||||||
|
|
||||||
date := i.Datum.When.String()
|
date := i.Datum.When.String()
|
||||||
if date != "" {
|
if date != "" {
|
||||||
res = append(res, date)
|
res = append(res, date)
|
||||||
}
|
}
|
||||||
|
|
||||||
res = append(res, i.Reference())
|
|
||||||
i.keys = res
|
i.keys = res
|
||||||
|
|
||||||
return res
|
return res
|
||||||
@@ -55,7 +56,7 @@ func (i Issue) Year() int {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (i Issue) Reference() string {
|
func (i Issue) Reference() string {
|
||||||
return strconv.Itoa(i.Number.No) + "-" + strconv.Itoa(i.Datum.When.Year)
|
return strconv.Itoa(i.Datum.When.Year) + "-" + strconv.Itoa(i.Number.No)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (i Issue) String() string {
|
func (i Issue) String() string {
|
||||||
|
|||||||
Reference in New Issue
Block a user