diff --git a/admin/http.go b/admin/http.go
index da25279..05a20e9 100644
--- a/admin/http.go
+++ b/admin/http.go
@@ -33,23 +33,32 @@ func Handler() http.Handler {
return
}
- type IndexData struct {
- Releases []*musicModel.Release
- Artists []*musicModel.Artist
- Tracks []*musicModel.Track
- }
-
- var orphan_tracks = []*musicModel.Track{}
- for _, track := range global.Tracks {
- if track.Release == nil {
- orphan_tracks = append(orphan_tracks, track)
+ type (
+ Track struct {
+ *musicModel.Track
+ Lyrics template.HTML
+ // Number int
}
+ IndexData struct {
+ Releases []*musicModel.Release
+ Artists []*musicModel.Artist
+ Tracks []Track
+ }
+ )
+
+
+ var tracks = []Track{}
+ for _, track := range global.Tracks {
+ tracks = append(tracks, Track{
+ Track: track,
+ Lyrics: template.HTML(strings.Replace(track.Lyrics, "\n", "
", -1)),
+ })
}
serveTemplate("index.html", IndexData{
Releases: global.Releases,
Artists: global.Artists,
- Tracks: global.Tracks,
+ Tracks: tracks,
}).ServeHTTP(w, r)
}))
diff --git a/admin/static/admin.css b/admin/static/admin.css
index 7024a9c..9ec1e36 100644
--- a/admin/static/admin.css
+++ b/admin/static/admin.css
@@ -226,13 +226,39 @@ a:hover {
}
h2.track-title {
- margin: 0
+ margin: 0;
+ display: flex;
+ flex-direction: row;
+ justify-content: space-between;
+}
+
+.track-album {
+ margin-left: auto;
+ font-style: italic;
+ font-size: .75em;
+ opacity: .5;
+}
+
+.track-album.empty {
+ color: #ff2020;
+ opacity: 1;
}
.track-description {
font-style: italic;
}
+.track-lyrics {
+ max-height: 10em;
+ overflow-y: scroll;
+}
+
.track .empty {
opacity: 0.75;
}
+
+@media screen and (max-width: 520px) {
+ body {
+ font-size: 12px;
+ }
+}
diff --git a/music/controller/track.go b/music/controller/track.go
index b5a329e..ffa2c61 100644
--- a/music/controller/track.go
+++ b/music/controller/track.go
@@ -55,8 +55,7 @@ func UpdateTrackDB(db *sqlx.DB, track *model.Track) error {
_, err := db.Exec(
"UPDATE musictrack "+
"SET title=$2, description=$3, lyrics=$4, preview_url=$5 "+
- "WHERE id=$1"+
- "RETURNING id",
+ "WHERE id=$1",
track.ID,
track.Title,
track.Description,
diff --git a/music/view/release.go b/music/view/release.go
index 7c236fa..65ddc3a 100644
--- a/music/view/release.go
+++ b/music/view/release.go
@@ -3,7 +3,9 @@ package view
import (
"encoding/json"
"fmt"
+ "html/template"
"net/http"
+ "strings"
"arimelody.me/arimelody.me/admin"
"arimelody.me/arimelody.me/global"
@@ -52,6 +54,7 @@ func ServeGateway() http.Handler {
type (
GatewayTrack struct {
*model.Track
+ Lyrics template.HTML
Number int
}
@@ -72,6 +75,7 @@ func ServeGateway() http.Handler {
for i, track := range release.Tracks {
tracks = append([]GatewayTrack{GatewayTrack{
Track: track,
+ Lyrics: template.HTML(strings.Replace(track.Lyrics, "\n", "
", -1)),
Number: len(release.Tracks) - i,
}}, tracks...)
}
diff --git a/views/admin/index.html b/views/admin/index.html
index 8724996..660866f 100644
--- a/views/admin/index.html
+++ b/views/admin/index.html
@@ -62,7 +62,14 @@
{{$Track.Description}}
{{else}}