diff --git a/README.md b/README.md index 1707c526..ea2b8707 100644 --- a/README.md +++ b/README.md @@ -3,13 +3,15 @@ LMS is a self-hosted media streaming software, released under the GPLv3 license. It allows you to access your music using an http(s) web interface. -## Features -- Audio transcode for maximum interoperability and low bandwith requirements -- User management +## Main features +- Responsive design - Browse your audio collection using tag-based filters - Custom tag support +- User management +- Persistent play queue +- Radio mode - MusicBrainzID support to handle duplicated artist and release names -- Reverse proxy support +- Audio transcode for maximum interoperability and low bandwith requirements LMS is written entirely in C++. Therefore, it is suitable to run on embedded devices, where space and memory are limited. diff --git a/approot/artist.xml b/approot/artist.xml index 96a537bf..ba4778f9 100644 --- a/approot/artist.xml +++ b/approot/artist.xml @@ -8,19 +8,19 @@ ${clusters} ${play-btn}${add-btn} - ${releases class="list-group"} + ${releases} -
-
- ${cover class="media-object"} -
-
-

${name}

-
- ${}${tr:Lms.Explore.various-artists}${} -

${}${year}${}${} (${orig-year})${}

+
+ ${cover class="media-object"} +
+
+

+ ${name} +

+ ${}

${tr:Lms.Explore.various-artists}

${
} +

${}${year}${}${} (${orig-year})${}

${play-btn}${add-btn}
diff --git a/approot/artists.xml b/approot/artists.xml index 43dcc37c..19470876 100644 --- a/approot/artists.xml +++ b/approot/artists.xml @@ -12,15 +12,14 @@ ${search}
- ${artists class="list-group"} + ${artists} ${show-more}
-
- ${nb-release} - ${name} - ${clusters} +
+

${name}

+ ${nb-release}
diff --git a/approot/explore.xml b/approot/explore.xml index 6b3110f5..4857750a 100644 --- a/approot/explore.xml +++ b/approot/explore.xml @@ -3,11 +3,11 @@
-
+
${filters class="Lms-explore-filters"} ${info class="Lms-explore-info hidden-xs"}
-
+
${contents}
diff --git a/approot/messages.xml b/approot/messages.xml index 5e020a35..02350719 100644 --- a/approot/messages.xml +++ b/approot/messages.xml @@ -62,7 +62,7 @@ Welcome! -Add +Add filter Artists Filters Albums diff --git a/approot/release.xml b/approot/release.xml index 0cb63499..51b9bc9d 100644 --- a/approot/release.xml +++ b/approot/release.xml @@ -9,9 +9,9 @@
@@ -22,7 +22,7 @@
${}${disc-number}-${}${}${track-number}. ${} - ${}${artist-name} - ${} + ${}${artist-name} - ${} ${name}
diff --git a/approot/releases.xml b/approot/releases.xml index c15f3db0..76f36933 100644 --- a/approot/releases.xml +++ b/approot/releases.xml @@ -12,19 +12,19 @@ ${search}
- ${releases class="list-group"} + ${releases} ${show-more}
-
-
- ${cover class="media-object"} -
-
-

${release-name}

- ${}${artist-name}${} -
+
+ ${cover class="media-object"} +
+
+

+ ${release-name} +

+ ${}

${artist-name}

${
} ${clusters} ${play-btn}${add-btn}
diff --git a/approot/releasesinfo.xml b/approot/releasesinfo.xml index 9d6db922..8c9c2330 100644 --- a/approot/releasesinfo.xml +++ b/approot/releasesinfo.xml @@ -10,9 +10,15 @@ - ${cover} - ${release-name} - ${}${artist-name}${} +
+ ${cover class="media-object"} +
+
+
+ ${release-name} +
+ ${}${artist-name}${} +
diff --git a/docroot/css/lms.css b/docroot/css/lms.css index c5ad3ed5..c965dc27 100644 --- a/docroot/css/lms.css +++ b/docroot/css/lms.css @@ -118,6 +118,18 @@ a:hover { text-align: center; } +.Lms-explore-artists-entry { + min-height: 48px; +} + +.Lms-explore-artists-entry:hover { + background-color: lightgrey; +} + +.Lms-explore-artists-entry-nb-releases { + margin: 8px; +} + .Lms-explore-btn { font-size: 22px !important; cursor: pointer; diff --git a/src/ui/explore/ArtistView.cpp b/src/ui/explore/ArtistView.cpp index 4c790fa4..088f5b13 100644 --- a/src/ui/explore/ArtistView.cpp +++ b/src/ui/explore/ArtistView.cpp @@ -125,6 +125,7 @@ Artist::refresh() Wt::WTemplate* entry = releasesContainer->addNew(Wt::WString::tr("Lms.Explore.Artist.template.entry")); entry->addFunction("tr", Wt::WTemplate::Functions::tr); + entry->setStyleClass("media"); { Wt::WAnchor* anchor = entry->bindWidget("cover", LmsApplication::createReleaseAnchor(release, false)); diff --git a/src/ui/explore/Filters.cpp b/src/ui/explore/Filters.cpp index abbf6626..f91587c6 100644 --- a/src/ui/explore/Filters.cpp +++ b/src/ui/explore/Filters.cpp @@ -145,7 +145,7 @@ Filters::Filters() addFunction("tr", &Functions::tr); // Filters - Wt::WPushButton *addFilterBtn = bindNew("add-filter", Wt::WText::tr("Lms.Explore.add-filter")); + Wt::WPushButton *addFilterBtn = bindNew("add-filter", Wt::WText::tr("Lms.add")); addFilterBtn->clicked().connect(this, &Filters::showDialog); _filters = bindNew("clusters"); diff --git a/src/ui/explore/ReleasesInfoView.cpp b/src/ui/explore/ReleasesInfoView.cpp index 99e85331..7d564e52 100644 --- a/src/ui/explore/ReleasesInfoView.cpp +++ b/src/ui/explore/ReleasesInfoView.cpp @@ -43,11 +43,12 @@ void addEntries(Wt::WContainerWidget* container, const std::vectoraddNew(Wt::WString::tr("Lms.Explore.ReleasesInfo.template.entry")); + entry->setStyleClass("media"); entry->bindWidget("release-name", LmsApplication::createReleaseAnchor(release)); Wt::WAnchor* anchor = entry->bindWidget("cover", LmsApplication::createReleaseAnchor(release, false)); auto cover = std::make_unique(); - cover->setImageLink(LmsApp->getImageResource()->getReleaseUrl(release.id(), 128)); + cover->setImageLink(LmsApp->getImageResource()->getReleaseUrl(release.id(), 48)); anchor->setImage(std::move(cover)); auto artists = release->getArtists(); diff --git a/src/ui/explore/ReleasesView.cpp b/src/ui/explore/ReleasesView.cpp index 34fd7d07..89bd9f07 100644 --- a/src/ui/explore/ReleasesView.cpp +++ b/src/ui/explore/ReleasesView.cpp @@ -87,6 +87,7 @@ Releases::addSome() Wt::WTemplate* entry = _container->addNew(Wt::WString::tr("Lms.Explore.Releases.template.entry")); entry->addFunction("tr", Wt::WTemplate::Functions::tr); + entry->setStyleClass("media"); Wt::WAnchor* anchor = entry->bindWidget("cover", LmsApplication::createReleaseAnchor(release, false)); auto cover = std::make_unique();