Improved company list

This commit is contained in:
Eduard Urbach 2017-11-29 15:26:11 +01:00
parent 7d2136a973
commit c53ab95e1e
3 changed files with 33 additions and 11 deletions

View File

@ -2,6 +2,7 @@ package companies
import ( import (
"sort" "sort"
"strings"
"github.com/aerogo/aero" "github.com/aerogo/aero"
"github.com/animenotifier/arn" "github.com/animenotifier/arn"
@ -9,8 +10,6 @@ import (
"github.com/animenotifier/notify.moe/utils" "github.com/animenotifier/notify.moe/utils"
) )
const maxEntries = 24
// Get renders the companies page. // Get renders the companies page.
func Get(ctx *aero.Context) string { func Get(ctx *aero.Context) string {
user := utils.GetUser(ctx) user := utils.GetUser(ctx)
@ -20,12 +19,25 @@ func Get(ctx *aero.Context) string {
}) })
sort.Slice(companies, func(i, j int) bool { sort.Slice(companies, func(i, j int) bool {
return companies[i].Created > companies[j].Created return strings.ToLower(companies[i].Name.English) < strings.ToLower(companies[j].Name.English)
}) })
if len(companies) > maxEntries { groups := [][]*arn.Company{}
companies = companies[:maxEntries] currentGroupIndex := -1
previousFirstLetter := ""
for _, company := range companies {
firstLetter := strings.ToLower(company.Name.English[:1])
if firstLetter != previousFirstLetter {
groups = append(groups, []*arn.Company{})
currentGroupIndex++
previousFirstLetter = firstLetter
}
groups[currentGroupIndex] = append(groups[currentGroupIndex], company)
} }
return ctx.HTML(components.Companies(companies, user)) return ctx.HTML(components.Companies(groups, user))
} }

View File

@ -1,4 +1,4 @@
component Companies(companies []*arn.Company, user *arn.User) component Companies(groups [][]*arn.Company, user *arn.User)
h1 Companies h1 Companies
.corner-buttons .corner-buttons
@ -12,7 +12,12 @@ component Companies(companies []*arn.Company, user *arn.User)
Icon("pencil") Icon("pencil")
span Edit draft span Edit draft
ul .companies
each company in companies each group in groups
li .companies-group
a.ajax(href=company.Link())= company.Name.English h3= group[0].Name.English[:1]
ul
each company in group
li
a.ajax(href=company.Link())= company.Name.English

View File

@ -0,0 +1,5 @@
.companies
//
.companies-group
//