diff --git a/maloja/web/jinja/admin_manual.jinja b/maloja/web/jinja/admin_manual.jinja index f870f0c..3ed2ea5 100644 --- a/maloja/web/jinja/admin_manual.jinja +++ b/maloja/web/jinja/admin_manual.jinja @@ -26,6 +26,21 @@ + + + Album artists (Optional): + + + + + + + Album (Optional): + + + + +
diff --git a/maloja/web/static/js/manualscrobble.js b/maloja/web/static/js/manualscrobble.js index 5095337..6b7502a 100644 --- a/maloja/web/static/js/manualscrobble.js +++ b/maloja/web/static/js/manualscrobble.js @@ -10,11 +10,23 @@ function addArtist(artist) { document.getElementById("artists_td").insertBefore(artistelement,newartistfield); newartistfield.placeholder = "Backspace to remove last" } +function addAlbumartist(artist) { + var newartistfield = document.getElementById("albumartists"); + var artistelement = document.createElement("span"); + artistelement.innerHTML = artist; + artistelement.style = "padding:5px;"; + document.getElementById("albumartists_td").insertBefore(artistelement,newartistfield); + newartistfield.placeholder = "Backspace to remove last" +} function keyDetect(event) { if (event.key === "Enter" || event.key === "Tab") { addEnteredArtist() } if (event.key === "Backspace" && document.getElementById("artists").value == "") { removeArtist() } } +function keyDetect2(event) { + if (event.key === "Enter" || event.key === "Tab") { addEnteredAlbumartist() } + if (event.key === "Backspace" && document.getElementById("albumartists").value == "") { removeAlbumartist() } +} function addEnteredArtist() { var newartistfield = document.getElementById("artists"); @@ -24,6 +36,14 @@ function addEnteredArtist() { addArtist(newartist); } } +function addEnteredAlbumartist() { + var newartistfield = document.getElementById("albumartists"); + var newartist = newartistfield.value.trim(); + newartistfield.value = ""; + if (newartist != "") { + addAlbumartist(newartist); + } +} function removeArtist() { var artists = document.getElementById("artists_td").getElementsByTagName("span") var lastartist = artists[artists.length-1] @@ -32,14 +52,28 @@ function removeArtist() { document.getElementById("artists").placeholder = "Separate with Enter" } } +function removeAlbumartist() { + var artists = document.getElementById("albumartists_td").getElementsByTagName("span") + var lastartist = artists[artists.length-1] + document.getElementById("albumartists_td").removeChild(lastartist); + if (artists.length < 1) { + document.getElementById("albumartists").placeholder = "Separate with Enter" + } +} function clear() { document.getElementById("title").value = ""; document.getElementById("artists").value = ""; + document.getElementById("album").value = ""; + document.getElementById("albumartists").value = ""; var artists = document.getElementById("artists_td").getElementsByTagName("span") while (artists.length > 0) { removeArtist(); } + var albumartists = document.getElementById("albumartists_td").getElementsByTagName("span") + while (albumartists.length > 0) { + removeAlbumartist(); + } } @@ -55,18 +89,30 @@ function scrobbleNew() { for (let node of artistnodes) { artists.push(node.textContent); } + + var albumartistnodes = document.getElementById("albumartists_td").getElementsByTagName("span"); + var albumartists = []; + for (let node of albumartistnodes) { + albumartists.push(node.textContent); + } + var title = document.getElementById("title").value; - scrobble(artists,title); + var album = document.getElementById("album").value; + scrobble(artists,title,albumartists,album); } -function scrobble(artists,title) { +function scrobble(artists,title,albumartists,album) { lastArtists = artists; lastTrack = title; + lastAlbum = album; + lastAlbumartists = albumartists; var payload = { "artists":artists, - "title":title + "title":title, + "albumartists": albumartists, + "album": album } @@ -74,12 +120,7 @@ function scrobble(artists,title) { neo.xhttpreq("/apis/mlj_1/newscrobble",data=payload,method="POST",callback=notifyCallback,json=true) } - document.getElementById("title").value = ""; - document.getElementById("artists").value = ""; - var artists = document.getElementById("artists_td").getElementsByTagName("span"); - while (artists.length > 0) { - removeArtist(); - } + clear() } function scrobbledone(req) { @@ -98,6 +139,10 @@ function repeatLast() { addArtist(artist); } document.getElementById("title").value = lastTrack; + for (let artist of lastAlbumartists) { + addAlbumartist(artist); + } + document.getElementById("album").value = lastAlbum; }