package frontend type PaginationRange struct { Before []int Current int MaxPage int After []int } type Notification struct { Type string `json:"type"` Message string `json:"message"` } func NewErrorNotification(message string) Notification { return Notification{"error", message} } func NewNotification(message string) Notification { return Notification{"info", message} } // PaginationFromPage gibt die Seiten vor und nach der gegebenen Seite zurück. pageRange gibt an, wie viele Seiten vor und nach der aktuellen Page angezeigt werden soll. func PaginationFromPage(pageRange, currentPage, maxPage int) PaginationRange { var before []int var after []int startPage := currentPage - pageRange endPage := currentPage + pageRange if startPage < 1 { endPage += -startPage + 1 startPage = 1 } if endPage > maxPage { startPage -= (endPage - maxPage) endPage = maxPage if startPage < 1 { startPage = 1 } } for i := startPage; i < currentPage; i++ { if i > maxPage { break } before = append(before, i) } for i := currentPage + 1; i < endPage+1; i++ { after = append(after, i) } return PaginationRange{ before, currentPage, maxPage, after, } }