Added a link to music brainz for releaseS/artists
This commit is contained in:
@@ -77,10 +77,11 @@ Artist::refreshView()
|
||||
|
||||
auto transaction {LmsApp->getDbSession().createSharedTransaction()};
|
||||
|
||||
const Database::Artist::pointer artist = Database::Artist::getById(LmsApp->getDbSession(), *artistId);
|
||||
const Database::Artist::pointer artist {Database::Artist::getById(LmsApp->getDbSession(), *artistId)};
|
||||
if (!artist)
|
||||
throw ArtistNotFoundException {*artistId};
|
||||
|
||||
refreshLinks(artist);
|
||||
refreshSimilarArtists(similarArtistIds);
|
||||
|
||||
Wt::WContainerWidget* clusterContainers = bindNew<Wt::WContainerWidget>("clusters");
|
||||
@@ -199,7 +200,7 @@ Artist::createRelease(const Database::Artist::pointer& artist, const Release::po
|
||||
void
|
||||
Artist::refreshSimilarArtists(const std::vector<Database::IdType>& similarArtistsId)
|
||||
{
|
||||
auto* similarArtistsContainer {bindNew<Wt::WContainerWidget>("similar-artists")};
|
||||
Wt::WContainerWidget* similarArtistsContainer {bindNew<Wt::WContainerWidget>("similar-artists")};
|
||||
|
||||
for (Database::IdType artistId : similarArtistsId)
|
||||
{
|
||||
@@ -211,5 +212,20 @@ Artist::refreshSimilarArtists(const std::vector<Database::IdType>& similarArtist
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
Artist::refreshLinks(const Database::Artist::pointer& artist)
|
||||
{
|
||||
const auto mbid {artist->getMBID()};
|
||||
if (mbid)
|
||||
{
|
||||
setCondition("if-has-mbid", true);
|
||||
|
||||
Wt::WLink link {"https://musicbrainz.org/artist/" + std::string {mbid->getAsString()}};
|
||||
link.setTarget(Wt::LinkTarget::NewWindow);
|
||||
|
||||
bindNew<Wt::WAnchor>("mbid-link", link, Wt::WString::tr("Lms.Explore.musicbrainz-artist"));
|
||||
}
|
||||
}
|
||||
|
||||
} // namespace UserInterface
|
||||
|
||||
|
||||
@@ -50,6 +50,7 @@ class Artist : public Wt::WTemplate
|
||||
private:
|
||||
void refreshView();
|
||||
void refreshSimilarArtists(const std::vector<Database::IdType>& similarArtistsId);
|
||||
void refreshLinks(const Wt::Dbo::ptr<Database::Artist>& artist);
|
||||
|
||||
std::unique_ptr<Wt::WTemplate> createRelease(const Wt::Dbo::ptr<Database::Artist>& artist, const Wt::Dbo::ptr<Database::Release>& release);
|
||||
|
||||
|
||||
@@ -84,6 +84,7 @@ Release::refreshView()
|
||||
throw ReleaseNotFoundException {*releaseId};
|
||||
|
||||
refreshCopyright(release);
|
||||
refreshLinks(release);
|
||||
refreshSimilarReleases(similarReleasesIds);
|
||||
|
||||
bindString("name", Wt::WString::fromUTF8(release->getName()), Wt::TextFormat::Plain);
|
||||
@@ -261,24 +262,40 @@ Release::refreshCopyright(const Database::Release::pointer& release)
|
||||
std::optional<std::string> copyright {release->getCopyright()};
|
||||
std::optional<std::string> copyrightURL {release->getCopyrightURL()};
|
||||
|
||||
setCondition("if-has-copyright-or-copyright-url", copyright || copyrightURL);
|
||||
if (!copyright && !copyrightURL)
|
||||
return;
|
||||
|
||||
setCondition("if-has-copyright", true);
|
||||
|
||||
std::string copyrightText {copyright ? *copyright : ""};
|
||||
if (copyrightText.empty() && copyrightURL)
|
||||
copyrightText = *copyrightURL;
|
||||
|
||||
if (copyrightURL)
|
||||
{
|
||||
setCondition("if-has-copyright-url", true);
|
||||
|
||||
Wt::WLink link {*copyrightURL};
|
||||
link.setTarget(Wt::LinkTarget::NewWindow);
|
||||
|
||||
Wt::WAnchor* anchor {bindNew<Wt::WAnchor>("copyright-url", link)};
|
||||
anchor->setTextFormat(Wt::TextFormat::XHTML);
|
||||
anchor->setText(Wt::WString::tr("Lms.Explore.Release.template.link-btn"));
|
||||
Wt::WAnchor* anchor {bindNew<Wt::WAnchor>("copyright", link)};
|
||||
anchor->setTextFormat(Wt::TextFormat::Plain);
|
||||
anchor->setText(Wt::WString::fromUTF8(copyrightText));
|
||||
}
|
||||
|
||||
if (copyright)
|
||||
{
|
||||
setCondition("if-has-copyright", true);
|
||||
else
|
||||
bindString("copyright", Wt::WString::fromUTF8(*copyright), Wt::TextFormat::Plain);
|
||||
}
|
||||
|
||||
void
|
||||
Release::refreshLinks(const Database::Release::pointer& release)
|
||||
{
|
||||
const auto mbid {release->getMBID()};
|
||||
if (mbid)
|
||||
{
|
||||
setCondition("if-has-mbid", true);
|
||||
|
||||
Wt::WLink link {"https://musicbrainz.org/release/" + std::string {mbid->getAsString()}};
|
||||
link.setTarget(Wt::LinkTarget::NewWindow);
|
||||
|
||||
bindNew<Wt::WAnchor>("mbid-link", link, Wt::WString::tr("Lms.Explore.musicbrainz-release"));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -47,6 +47,7 @@ namespace UserInterface
|
||||
private:
|
||||
void refreshView();
|
||||
void refreshCopyright(const Wt::Dbo::ptr<Database::Release>& release);
|
||||
void refreshLinks(const Wt::Dbo::ptr<Database::Release>& release);
|
||||
void refreshSimilarReleases(const std::vector<Database::IdType>& similarReleasesId);
|
||||
|
||||
Filters* _filters {};
|
||||
|
||||
Reference in New Issue
Block a user