Compare commits
2 commits
e004491b55
...
090de0554b
Author | SHA1 | Date | |
---|---|---|---|
090de0554b | |||
9a27dbdc37 |
6 changed files with 32 additions and 13 deletions
|
@ -3,20 +3,20 @@
|
||||||
<h2>Editing: Tracks</h2>
|
<h2>Editing: Tracks</h2>
|
||||||
<a id="add-track"
|
<a id="add-track"
|
||||||
class="button new"
|
class="button new"
|
||||||
href="/admin/release/{{.ID}}/addtrack"
|
href="/admin/release/{{.Release.ID}}/addtrack"
|
||||||
hx-get="/admin/release/{{.ID}}/addtrack"
|
hx-get="/admin/release/{{.Release.ID}}/addtrack"
|
||||||
hx-target="body"
|
hx-target="body"
|
||||||
hx-swap="beforeend"
|
hx-swap="beforeend"
|
||||||
>Add</a>
|
>Add</a>
|
||||||
</header>
|
</header>
|
||||||
|
|
||||||
<form action="/api/v1/music/{{.ID}}/tracks">
|
<form action="/api/v1/music/{{.Release.ID}}/tracks">
|
||||||
<ul>
|
<ul>
|
||||||
{{range $i, $track := .Tracks}}
|
{{range $i, $track := .Release.Tracks}}
|
||||||
<li class="track" data-track="{{$track.ID}}" data-title="{{$track.Title}}" data-number="{{$track.Add $i 1}}" draggable="true">
|
<li class="track" data-track="{{$track.ID}}" data-title="{{$track.Title}}" data-number="{{$track.Add $i 1}}" draggable="true">
|
||||||
<div>
|
<div>
|
||||||
<p class="track-name">
|
<p class="track-name">
|
||||||
<span class="track-number">{{$track.Add $i 1}}</span>
|
<span class="track-number">{{.Add $i 1}}</span>
|
||||||
{{$track.Title}}
|
{{$track.Title}}
|
||||||
</p>
|
</p>
|
||||||
<a class="delete">Delete</a>
|
<a class="delete">Delete</a>
|
||||||
|
|
|
@ -145,7 +145,16 @@ func serveEditLinks(release *model.Release) http.Handler {
|
||||||
func serveEditTracks(release *model.Release) http.Handler {
|
func serveEditTracks(release *model.Release) http.Handler {
|
||||||
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
||||||
w.Header().Set("Content-Type", "text/html")
|
w.Header().Set("Content-Type", "text/html")
|
||||||
err := components["edittracks"].Execute(w, release)
|
|
||||||
|
type editTracksData struct {
|
||||||
|
Release *model.Release
|
||||||
|
Add func(a int, b int) int
|
||||||
|
}
|
||||||
|
|
||||||
|
err := components["edittracks"].Execute(w, editTracksData{
|
||||||
|
Release: release,
|
||||||
|
Add: func(a, b int) int { return a + b },
|
||||||
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Printf("Error rendering edit tracks component for %s: %s\n", release.ID, err)
|
fmt.Printf("Error rendering edit tracks component for %s: %s\n", release.ID, err)
|
||||||
http.Error(w, http.StatusText(http.StatusInternalServerError), http.StatusInternalServerError)
|
http.Error(w, http.StatusText(http.StatusInternalServerError), http.StatusInternalServerError)
|
||||||
|
|
|
@ -206,13 +206,13 @@ form {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
display: block;
|
display: block;
|
||||||
}
|
}
|
||||||
label {
|
form label {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
margin: 1rem 0 .5rem 0;
|
margin: 1rem 0 .5rem 0;
|
||||||
display: block;
|
display: block;
|
||||||
color: #10101080;
|
color: #10101080;
|
||||||
}
|
}
|
||||||
input {
|
form input {
|
||||||
margin: .5rem 0;
|
margin: .5rem 0;
|
||||||
padding: .3rem .5rem;
|
padding: .3rem .5rem;
|
||||||
display: block;
|
display: block;
|
||||||
|
|
|
@ -5,10 +5,11 @@ div.card {
|
||||||
}
|
}
|
||||||
|
|
||||||
label {
|
label {
|
||||||
width: 100%;
|
width: auto;
|
||||||
margin: 1rem 0 .5rem 0;
|
margin: 0;
|
||||||
display: block;
|
display: flex;
|
||||||
color: #10101080;
|
align-items: center;
|
||||||
|
color: inherit;
|
||||||
}
|
}
|
||||||
input {
|
input {
|
||||||
width: min(20rem, calc(100% - 1rem));
|
width: min(20rem, calc(100% - 1rem));
|
||||||
|
|
|
@ -228,12 +228,14 @@ dialog div.dialog-actions {
|
||||||
}
|
}
|
||||||
|
|
||||||
#editcredits .credit .credit-info .credit-attribute label {
|
#editcredits .credit .credit-info .credit-attribute label {
|
||||||
|
width: auto;
|
||||||
|
margin: 0;
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
#editcredits .credit .credit-info .credit-attribute input[type="text"] {
|
#editcredits .credit .credit-info .credit-attribute input[type="text"] {
|
||||||
margin-left: .25em;
|
margin: 0 0 0 .25em;
|
||||||
padding: .2em .4em;
|
padding: .2em .4em;
|
||||||
flex-grow: 1;
|
flex-grow: 1;
|
||||||
font-family: inherit;
|
font-family: inherit;
|
||||||
|
@ -241,6 +243,9 @@ dialog div.dialog-actions {
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
color: inherit;
|
color: inherit;
|
||||||
}
|
}
|
||||||
|
#editcredits .credit .credit-info .credit-attribute input[type="checkbox"] {
|
||||||
|
margin: 0 .3em;
|
||||||
|
}
|
||||||
|
|
||||||
#editcredits .credit .artist-name {
|
#editcredits .credit .artist-name {
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
|
@ -369,8 +374,10 @@ dialog div.dialog-actions {
|
||||||
#editlinks td input[type="text"] {
|
#editlinks td input[type="text"] {
|
||||||
width: calc(100% - .6em);
|
width: calc(100% - .6em);
|
||||||
height: 100%;
|
height: 100%;
|
||||||
|
margin: 0;
|
||||||
padding: 0 .3em;
|
padding: 0 .3em;
|
||||||
border: none;
|
border: none;
|
||||||
|
border-radius: 0;
|
||||||
outline: none;
|
outline: none;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
background: none;
|
background: none;
|
||||||
|
|
|
@ -12,6 +12,8 @@ type (
|
||||||
Description string `json:"description"`
|
Description string `json:"description"`
|
||||||
Lyrics string `json:"lyrics" db:"lyrics"`
|
Lyrics string `json:"lyrics" db:"lyrics"`
|
||||||
PreviewURL string `json:"previewURL" db:"preview_url"`
|
PreviewURL string `json:"previewURL" db:"preview_url"`
|
||||||
|
|
||||||
|
Number int
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue