65 lines
2.0 KiB
Plaintext

component SoundTrackPage(track *arn.SoundTrack, user *arn.User)
SoundTrackTabs(track, user)
.soundtrack-full-page
if track.Title == ""
h1.mountable untitled
else
h1.mountable= track.Title
.widget-form.soundtrack-media-list
each media in track.Media
.widget.mountable
h3.widget-title= media.Service
.soundtrack-media.video-container
iframe.lazy.video(data-src=media.EmbedLink(), allowfullscreen="allowfullscreen")
if user != nil && media.Service == "Youtube" && track.File != ""
.buttons
button.action(data-action="playAudio", data-trigger="click", data-audio-src="/audio/" + track.File, data-soundtrack-id=track.ID)
Icon("play")
span Play in background
.widget.mountable
h3.widget-title Anime
.soundtrack-anime-list
each anime in track.Anime()
a.soundtrack-anime-list-item.ajax(href=anime.Link(), title=anime.Title.ByUser(user))
img.soundtrack-anime-list-item-image.lazy(data-src=anime.Image("small"), data-webp="true", alt=anime.Title.ByUser(user))
if len(track.Beatmaps()) > 0
.widget.mountable
h3.widget-title Beatmaps
ul.beatmaps
for index, beatmap := range track.Beatmaps()
li
a.beatmap(href="https://osu.ppy.sh/s/" + beatmap, target="_blank")= "Beatmap #" + strconv.Itoa(index + 1)
.widget.mountable
h3.widget-title Tags
.tags
each tag in track.Tags
a.tag.ajax(href="/soundtracks/tag/" + tag)= tag
.footer.mountable
if track.EditedBy != ""
span Edited
span.utc-date(data-date=track.Edited)
span by
span= track.EditedByUser().Nick
else
span Posted
span.utc-date(data-date=track.Created)
span by
span= track.Creator().Nick
span .
component SoundTrackTabs(track *arn.SoundTrack, user *arn.User)
.tabs
TabLike(strconv.Itoa(len(track.Likes)), "heart", "track", track, user)
Tab("Soundtrack", "music", track.Link())
Tab("Edit", "pencil", track.Link() + "/edit")