diff --git a/approot/release.xml b/approot/release.xml
index 448868d9..1c80b1e3 100644
--- a/approot/release.xml
+++ b/approot/release.xml
@@ -12,7 +12,7 @@
${cover}
-
${name}
+
${name}${}[${comment}]${}
${
}${artists}${}
${}${year} ยท ${}${duration}
${clusters class="mb-2"}
@@ -41,7 +41,7 @@
${}
${tr:Lms.Explore.Release.similar-releases}
- ${similar-releases class="row row-cols-2 row-cols-md-3 row-cols-lg-4 row-cols-xl-6 gx-2 gy-4"}
+ ${similar-releases class="row row-cols-2 row-cols-md-3 row-cols-lg-4 row-cols-xl-5 gx-2 gy-4"}
${}
diff --git a/approot/releases.xml b/approot/releases.xml
index 534480d9..ed30939d 100644
--- a/approot/releases.xml
+++ b/approot/releases.xml
@@ -27,15 +27,15 @@
${cover class="shadow-sm"}
- ${release-name class="d-block text-truncate text-nowrap text-decoration-none link-success"}
- ${}${artist-name class="d-block text-truncate text-nowrap"}${}
+ ${release-name class="Lms-multiline-clamp text-decoration-none link-success"}
+ ${}${artist-name class="Lms-multiline-clamp"}${}
${}${year}
${}
- ${elements class="row row-cols-2 row-cols-md-3 row-cols-lg-4 row-cols-xl-6 gx-2 gy-4"}
+ ${elements class="row row-cols-2 row-cols-md-3 row-cols-lg-4 row-cols-xl-5 gx-2 gy-4"}
${loading-indicator}
diff --git a/docroot/css/lms.css b/docroot/css/lms.css
index 775c648a..11956758 100644
--- a/docroot/css/lms.css
+++ b/docroot/css/lms.css
@@ -103,6 +103,15 @@ body {
background-color: var(--bs-gray-900);
}
+.Lms-multiline-clamp {
+ line-clamp: 2;
+ -webkit-line-clamp: 2;
+ overflow: hidden;
+ display: -webkit-box;
+ word-break: break-word;
+ -webkit-box-orient: vertical;
+}
+
.Lms-notification-container {
position: fixed;
bottom: 78px;
diff --git a/src/lms/ui/Utils.cpp b/src/lms/ui/Utils.cpp
index f353af0d..d85c815d 100644
--- a/src/lms/ui/Utils.cpp
+++ b/src/lms/ui/Utils.cpp
@@ -299,10 +299,16 @@ namespace lms::ui::utils
std::unique_ptr createReleaseAnchor(db::Release::pointer release, bool setText)
{
auto res = std::make_unique(createReleaseLink(release));
-
if (setText)
{
std::string releaseName{ release->getName() };
+ if (std::string_view releaseComment{ release->getComment() }; !releaseComment.empty())
+ {
+ releaseName += " [";
+ releaseName += releaseComment;
+ releaseName += ']';
+ }
+
res->setTextFormat(Wt::TextFormat::Plain);
res->setText(Wt::WString::fromUTF8(releaseName));
res->setToolTip(Wt::WString::fromUTF8(releaseName), Wt::TextFormat::Plain);
diff --git a/src/lms/ui/explore/ReleaseView.cpp b/src/lms/ui/explore/ReleaseView.cpp
index 76466ca4..2e67839e 100644
--- a/src/lms/ui/explore/ReleaseView.cpp
+++ b/src/lms/ui/explore/ReleaseView.cpp
@@ -216,7 +216,7 @@ namespace lms::ui
if (!releaseId)
throw ReleaseNotFoundException{};
- auto similarReleasesIds{ core::Service::get()->getSimilarReleases(*releaseId, 6) };
+ auto similarReleasesIds{ core::Service::get()->getSimilarReleases(*releaseId, 5) };
auto transaction{ LmsApp->getDbSession().createReadTransaction() };
@@ -232,6 +232,11 @@ namespace lms::ui
refreshSimilarReleases(similarReleasesIds);
bindString("name", Wt::WString::fromUTF8(std::string{ release->getName() }), Wt::TextFormat::Plain);
+ if (std::string_view comment{ release->getComment() }; !comment.empty())
+ {
+ setCondition("if-has-release-comment", true);
+ bindString("comment", Wt::WString::fromUTF8(std::string{ comment }), Wt::TextFormat::Plain);
+ }
Wt::WString year{ releaseHelpers::buildReleaseYearString(release->getYear(), release->getOriginalYear()) };
if (!year.empty())