lyrics

lyrics
git clone git://brookjeynes.dev/bjeynes/lyrics.git
Log | Files | Refs

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 }