release-search-table.templ (1359B)
1 package releasesearchtable 2 3 import ( 4 "fmt" 5 "lyrics/internal/domain" 6 "lyrics/internal/server/routes" 7 "lyrics/internal/server/ui/partials/table" 8 ) 9 10 templ ReleaseSearchTable(params ReleaseSearchTableParams) { 11 @table.Table(table.TableParams{ 12 Headers: []string{"title", "latin title", "artist", "type", "tracks"}, 13 TotalPages: params.TotalPages, 14 CurrentPage: params.CurrentPage, 15 GetURL: fmt.Sprintf("/release/search?format=table&query=%s&limit=%d", params.Query, params.Limit), 16 PushURL: fmt.Sprintf("/search?query=%s&type=release&limit=%d", params.Query, params.Limit), 17 }) { 18 <tbody> 19 for _, release := range params.Releases { 20 <tr> 21 <th><a href={ routes.Release(release) }>{ release.Title }</a></th> 22 if release.LatinTitle != nil { 23 <th>{ *release.LatinTitle }</th> 24 } else { 25 <th></th> 26 } 27 for idx, artist := range release.Artists { 28 <th> 29 <a href={ routes.Artist(artist.Artist) }> 30 if artist.Role == domain.RolePrimary { 31 { artist.Artist.Name } 32 if artist.Artist.LatinName != nil { 33 ({ *artist.Artist.LatinName }) 34 } 35 } 36 if idx < len(release.Artists) - 1 { 37 & 38 } 39 </a> 40 </th> 41 } 42 <th>{ release.Type }</th> 43 <th>{ release.ReleaseDate.Format("Jan 2, 2006") }</th> 44 </tr> 45 } 46 </tbody> 47 } 48 }