cityuni-webserver/pageHandler/pages/index/template-marshal.go

69 lines
1.5 KiB
Go
Raw Permalink Normal View History

package index
import (
"html/template"
"sort"
)
type Marshal struct {
Data DataYaml
Parameters template.URL
OrderStartDate int8
OrderEndDate int8
OrderName int8
OrderDuration int8
Light bool
2022-07-30 15:07:10 +01:00
Counter int
}
2022-07-30 15:07:10 +01:00
func (m *Marshal) GetEntries() (toReturn []EntryYaml) {
toReturn = m.Data.Entries
if m.OrderStartDate > 0 {
sort.Slice(toReturn, func(i, j int) bool {
return toReturn[i].StartDate.Before(toReturn[j].StartDate.Time)
})
}
if m.OrderStartDate < 0 {
sort.Slice(toReturn, func(i, j int) bool {
return toReturn[i].StartDate.After(toReturn[j].StartDate.Time)
})
}
if m.OrderEndDate > 0 {
sort.Slice(toReturn, func(i, j int) bool {
return toReturn[i].GetEndTime().Before(toReturn[j].GetEndTime())
})
}
if m.OrderEndDate < 0 {
sort.Slice(toReturn, func(i, j int) bool {
return toReturn[i].GetEndTime().After(toReturn[j].GetEndTime())
})
}
if m.OrderName > 0 {
sort.Slice(toReturn, func(i, j int) bool {
return toReturn[i].Name < toReturn[j].Name
})
}
if m.OrderName < 0 {
sort.Slice(toReturn, func(i, j int) bool {
return toReturn[i].Name > toReturn[j].Name
})
}
if m.OrderDuration > 0 {
sort.Slice(toReturn, func(i, j int) bool {
return toReturn[i].GetDuration() < toReturn[j].GetDuration()
})
}
if m.OrderDuration < 0 {
sort.Slice(toReturn, func(i, j int) bool {
return toReturn[i].GetDuration() > toReturn[j].GetDuration()
})
}
return toReturn
}
2022-07-30 15:07:10 +01:00
func (m *Marshal) CounterPlusPlus() int {
toret := m.Counter
m.Counter++
return toret
}