Made the release search results size the same as in release lists
This commit is contained in:
@@ -33,10 +33,11 @@ using namespace Database;
|
|||||||
namespace UserInterface::ReleaseListHelpers
|
namespace UserInterface::ReleaseListHelpers
|
||||||
{
|
{
|
||||||
|
|
||||||
|
static
|
||||||
std::unique_ptr<Wt::WTemplate>
|
std::unique_ptr<Wt::WTemplate>
|
||||||
createEntrySmall(const Database::Release::pointer& release)
|
createEntryInternal(const Database::Release::pointer& release, const std::string& templateKey)
|
||||||
{
|
{
|
||||||
auto entry {std::make_unique<Wt::WTemplate>(Wt::WString::tr("Lms.Explore.Releases.template.entry-small"))};
|
auto entry {std::make_unique<Wt::WTemplate>(Wt::WString::tr(templateKey))};
|
||||||
|
|
||||||
entry->bindWidget("release-name", LmsApplication::createReleaseAnchor(release));
|
entry->bindWidget("release-name", LmsApplication::createReleaseAnchor(release));
|
||||||
|
|
||||||
@@ -64,5 +65,17 @@ namespace UserInterface::ReleaseListHelpers
|
|||||||
return entry;
|
return entry;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::unique_ptr<Wt::WTemplate>
|
||||||
|
createEntry(const Release::pointer& release)
|
||||||
|
{
|
||||||
|
return createEntryInternal(release, "Lms.Explore.Releases.template.entry");
|
||||||
|
}
|
||||||
|
|
||||||
|
std::unique_ptr<Wt::WTemplate>
|
||||||
|
createEntrySmall(const Release::pointer& release)
|
||||||
|
{
|
||||||
|
return createEntryInternal(release, "Lms.Explore.Releases.template.entry-small");
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace UserInterface
|
} // namespace UserInterface
|
||||||
|
|
||||||
|
|||||||
@@ -32,6 +32,6 @@ namespace UserInterface::ReleaseListHelpers
|
|||||||
{
|
{
|
||||||
|
|
||||||
std::unique_ptr<Wt::WTemplate> createEntrySmall(const Wt::Dbo::ptr<Database::Release>& release);
|
std::unique_ptr<Wt::WTemplate> createEntrySmall(const Wt::Dbo::ptr<Database::Release>& release);
|
||||||
|
std::unique_ptr<Wt::WTemplate> createEntry(const Wt::Dbo::ptr<Database::Release>& release);
|
||||||
} // namespace UserInterface
|
} // namespace UserInterface
|
||||||
|
|
||||||
|
|||||||
@@ -29,12 +29,11 @@
|
|||||||
#include "database/Release.hpp"
|
#include "database/Release.hpp"
|
||||||
#include "database/User.hpp"
|
#include "database/User.hpp"
|
||||||
#include "database/TrackList.hpp"
|
#include "database/TrackList.hpp"
|
||||||
|
|
||||||
#include "utils/Logger.hpp"
|
#include "utils/Logger.hpp"
|
||||||
#include "utils/String.hpp"
|
#include "utils/String.hpp"
|
||||||
|
|
||||||
#include "resource/ImageResource.hpp"
|
#include "resource/ImageResource.hpp"
|
||||||
|
#include "ReleaseListHelpers.hpp"
|
||||||
#include "Filters.hpp"
|
#include "Filters.hpp"
|
||||||
#include "LmsApplication.hpp"
|
#include "LmsApplication.hpp"
|
||||||
|
|
||||||
@@ -106,52 +105,6 @@ Releases::refreshView(Mode mode)
|
|||||||
refreshView();
|
refreshView();
|
||||||
}
|
}
|
||||||
|
|
||||||
std::unique_ptr<Wt::WTemplate>
|
|
||||||
Releases::createEntry(const Release::pointer& release)
|
|
||||||
{
|
|
||||||
const IdType releaseId {release.id()};
|
|
||||||
|
|
||||||
auto entry = std::make_unique<Wt::WTemplate>(Wt::WString::tr("Lms.Explore.Releases.template.entry"));
|
|
||||||
entry->addFunction("tr", Wt::WTemplate::Functions::tr);
|
|
||||||
|
|
||||||
Wt::WAnchor* anchor = entry->bindWidget("cover", LmsApplication::createReleaseAnchor(release, false));
|
|
||||||
auto cover = std::make_unique<Wt::WImage>();
|
|
||||||
cover->setImageLink(LmsApp->getImageResource()->getReleaseUrl(release.id(), ImageResource::Size::Small));
|
|
||||||
cover->setStyleClass("Lms-cover");
|
|
||||||
anchor->setImage(std::move(cover));
|
|
||||||
|
|
||||||
entry->bindWidget("release-name", LmsApplication::createReleaseAnchor(release));
|
|
||||||
|
|
||||||
auto artists = release->getReleaseArtists();
|
|
||||||
if (artists.empty())
|
|
||||||
artists = release->getArtists();
|
|
||||||
|
|
||||||
if (artists.size() > 1)
|
|
||||||
{
|
|
||||||
entry->setCondition("if-has-artist", true);
|
|
||||||
entry->bindNew<Wt::WText>("artist-name", Wt::WString::tr("Lms.Explore.various-artists"));
|
|
||||||
}
|
|
||||||
else if (artists.size() == 1)
|
|
||||||
{
|
|
||||||
entry->setCondition("if-has-artist", true);
|
|
||||||
entry->bindWidget("artist-name", LmsApplication::createArtistAnchor(artists.front()));
|
|
||||||
}
|
|
||||||
|
|
||||||
Wt::WText* playBtn = entry->bindNew<Wt::WText>("play-btn", Wt::WString::tr("Lms.Explore.template.play-btn"), Wt::TextFormat::XHTML);
|
|
||||||
playBtn->clicked().connect([=]
|
|
||||||
{
|
|
||||||
releasesAction.emit(PlayQueueAction::Play, {releaseId});
|
|
||||||
});
|
|
||||||
|
|
||||||
Wt::WText* addBtn = entry->bindNew<Wt::WText>("add-btn", Wt::WString::tr("Lms.Explore.template.add-btn"), Wt::TextFormat::XHTML);
|
|
||||||
addBtn->clicked().connect([=]
|
|
||||||
{
|
|
||||||
releasesAction.emit(PlayQueueAction::AddLast, {releaseId});
|
|
||||||
});
|
|
||||||
|
|
||||||
return entry;
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
void
|
||||||
Releases::addSome()
|
Releases::addSome()
|
||||||
{
|
{
|
||||||
@@ -161,7 +114,7 @@ Releases::addSome()
|
|||||||
|
|
||||||
for (const Release::pointer& release : getReleases(Range {static_cast<std::size_t>(_container->count()), batchSize}, moreResults))
|
for (const Release::pointer& release : getReleases(Range {static_cast<std::size_t>(_container->count()), batchSize}, moreResults))
|
||||||
{
|
{
|
||||||
_container->addWidget(createEntry(release));
|
_container->addWidget(ReleaseListHelpers::createEntry(release));
|
||||||
}
|
}
|
||||||
|
|
||||||
_showMore->setHidden(!moreResults);
|
_showMore->setHidden(!moreResults);
|
||||||
|
|||||||
@@ -61,7 +61,6 @@ class Releases : public Wt::WTemplate
|
|||||||
std::vector<Wt::Dbo::ptr<Database::Release>> getReleases(std::optional<Database::Range> range, bool& moreResults);
|
std::vector<Wt::Dbo::ptr<Database::Release>> getReleases(std::optional<Database::Range> range, bool& moreResults);
|
||||||
std::vector<Wt::Dbo::ptr<Database::Release>> getRandomReleases(std::optional<Database::Range> range, bool& moreResults);
|
std::vector<Wt::Dbo::ptr<Database::Release>> getRandomReleases(std::optional<Database::Range> range, bool& moreResults);
|
||||||
std::vector<Database::IdType> getAllReleases();
|
std::vector<Database::IdType> getAllReleases();
|
||||||
std::unique_ptr<Wt::WTemplate> createEntry(const Wt::Dbo::ptr<Database::Release>& release);
|
|
||||||
|
|
||||||
static constexpr Mode defaultMode {Mode::Random};
|
static constexpr Mode defaultMode {Mode::Random};
|
||||||
static constexpr std::size_t batchSize {20};
|
static constexpr std::size_t batchSize {20};
|
||||||
|
|||||||
@@ -155,7 +155,7 @@ namespace UserInterface
|
|||||||
auto* container {bindNew<Wt::WContainerWidget>("releases")};
|
auto* container {bindNew<Wt::WContainerWidget>("releases")};
|
||||||
|
|
||||||
for (const Database::Release::pointer& release : releases)
|
for (const Database::Release::pointer& release : releases)
|
||||||
container->addWidget(ReleaseListHelpers::createEntrySmall(release));
|
container->addWidget(ReleaseListHelpers::createEntry(release));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user