+
+
+
${name}
+ ${
}${artists class="d-block d-md-none text-truncate"}${}
+
+
+
+ ${}${artists-md class="d-none d-md-block text-truncate"}${}
+
+
+ ${}${release class="d-none d-lg-inline text-truncate text-decoration-none link-success"}${}
+
+
${duration}
- ${play-btn class="btn btn-sm btn-outline-secondary border-0"}
-
+ ${play-btn class="d-none d-sm-block btn btn-sm btn-outline-secondary border-0"}
+ ${del-btn class="btn btn-sm btn-outline-secondary border-0"}
+
${more-btn data-bs-toggle="dropdown" aria-expanded="false" class="btn btn-sm btn-outline-secondary border-0"}
- ${del-btn class="btn btn-sm btn-outline-secondary border-0"}
diff --git a/src/lms/ui/PlayQueue.cpp b/src/lms/ui/PlayQueue.cpp
index c4b6c0f7..fdef523a 100644
--- a/src/lms/ui/PlayQueue.cpp
+++ b/src/lms/ui/PlayQueue.cpp
@@ -28,6 +28,7 @@
#include
#include
+#include "services/database/Artist.hpp"
#include "services/database/Release.hpp"
#include "services/database/Session.hpp"
#include "services/database/Track.hpp"
@@ -489,6 +490,15 @@ PlayQueue::addEntry(const Database::TrackListEntry::pointer& tracklistEntry)
entry->bindString("name", Wt::WString::fromUTF8(track->getName()), Wt::TextFormat::Plain);
+ const auto artists {track->getArtistIds({Database::TrackArtistLinkType::Artist})};
+ LMS_LOG(UI, DEBUG) << "Found " << artists.size() << " artists!";
+ if (!artists.empty())
+ {
+ entry->setCondition("if-has-artists", true);
+ entry->bindWidget("artists", Utils::createArtistContainer(artists));
+ entry->bindWidget("artists-md", Utils::createArtistContainer(artists));
+ }
+
const auto release {track->getRelease()};
if (release)
{
@@ -542,6 +552,13 @@ PlayQueue::addEntry(const Database::TrackListEntry::pointer& tracklistEntry)
});
entry->bindNew("more-btn", Wt::WString::tr("Lms.template.more-btn"), Wt::TextFormat::XHTML);
+ entry->bindNew("play", Wt::WString::tr("Lms.Explore.play"))
+ ->clicked().connect([=]
+ {
+ const std::optional pos {_entriesContainer->getIndexOf(*entry)};
+ if (pos)
+ loadTrack(*pos, true);
+ });
auto isStarred {[=] { return Service::get()->isStarred(LmsApp->getUserId(), trackId); }};