71 lines
2.3 KiB
Plaintext
Raw Normal View History

2018-03-13 01:49:54 +01:00
component SoundTrackPage(track *arn.SoundTrack, user *arn.User)
2017-11-05 14:54:58 -04:00
SoundTrackTabs(track, user)
2018-03-11 15:43:17 +01:00
.soundtrack-full-page
2017-10-13 00:44:19 +02:00
if track.Title == ""
h1.mountable untitled
else
h1.mountable= track.Title
2017-06-28 00:16:45 +02:00
2018-03-11 15:43:17 +01:00
.widget-form.soundtrack-media-list
2017-10-13 00:44:19 +02:00
each media in track.Media
.widget.mountable
h3.widget-title= media.Service
2018-03-11 15:43:17 +01:00
.soundtrack-media.video-container
iframe.lazy.video(data-src=media.EmbedLink(), allowfullscreen="allowfullscreen")
2018-03-11 03:00:06 +01:00
2018-03-11 04:51:10 +01:00
if user != nil && media.Service == "Youtube" && track.File != ""
2018-03-11 03:00:06 +01:00
.buttons
2018-03-11 18:17:35 +01:00
button.action(data-action="playAudio", data-trigger="click", data-audio-src="/audio/" + track.File, data-soundtrack-id=track.ID)
2018-03-11 03:00:06 +01:00
Icon("play")
span Play in background
2017-11-05 14:54:58 -04:00
2017-10-16 01:26:41 +02:00
.widget.mountable
h3.widget-title Anime
2018-03-11 15:43:17 +01:00
.soundtrack-anime-list
2017-10-16 01:26:41 +02:00
each anime in track.Anime()
2018-03-11 15:43:17 +01:00
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))
2017-11-05 14:54:58 -04:00
2018-03-13 16:45:40 +01:00
//- TODO: This is quite ineffective, performance-wise
if len(track.OsuBeatmaps()) > 0 || len(track.EtternaBeatmaps()) > 0
2017-10-22 14:36:55 +02:00
.widget.mountable
h3.widget-title Beatmaps
ul.beatmaps
2018-03-13 16:45:40 +01:00
for index, beatmap := range track.OsuBeatmaps()
2017-10-22 14:36:55 +02:00
li
2018-03-13 16:45:40 +01:00
a.beatmap(href="https://osu.ppy.sh/s/" + beatmap, target="_blank")= "Osu Beatmap #" + strconv.Itoa(index + 1)
for index, beatmap := range track.EtternaBeatmaps()
li
a.beatmap(href="https://etternaonline.com/song/view/" + beatmap, target="_blank")= "Etterna Beatmap #" + strconv.Itoa(index + 1)
2018-03-13 01:49:54 +01:00
2017-10-15 20:19:45 +02:00
.widget.mountable
h3.widget-title Tags
2018-03-13 01:49:54 +01:00
2017-10-16 01:35:28 +02:00
.tags
2017-10-15 20:19:45 +02:00
each tag in track.Tags
2018-03-13 01:49:54 +01:00
a.tag.ajax(href="/soundtracks/tag/" + tag)= tag
.footer.mountable
2017-10-13 00:44:19 +02:00
if track.EditedBy != ""
2017-11-13 21:28:03 +01:00
span Edited
2017-10-13 00:44:19 +02:00
span.utc-date(data-date=track.Edited)
2017-11-13 21:28:03 +01:00
span by
2017-10-13 00:44:19 +02:00
span= track.EditedByUser().Nick
else
2017-11-13 21:28:03 +01:00
span Posted
2017-10-13 00:44:19 +02:00
span.utc-date(data-date=track.Created)
2017-11-13 21:28:03 +01:00
span by
2017-10-18 18:18:15 +02:00
span= track.Creator().Nick
2017-11-05 14:54:58 -04:00
2017-10-13 00:44:19 +02:00
span .
2017-10-12 17:52:46 +02:00
2017-11-05 14:54:58 -04:00
component SoundTrackTabs(track *arn.SoundTrack, user *arn.User)
2017-10-12 17:52:46 +02:00
.tabs
2018-03-01 14:39:43 +01:00
TabLike(strconv.Itoa(len(track.Likes)), "heart", "track", track, user)
2017-10-12 17:52:46 +02:00
Tab("Soundtrack", "music", track.Link())
2017-11-05 14:54:58 -04:00
Tab("Edit", "pencil", track.Link() + "/edit")
Tab("History", "history", track.Link() + "/history")