Added css style for each cluster type. Unified cluster handling in UI
This commit is contained in:
@@ -19,10 +19,6 @@
|
|||||||
${releases class="list-group"}
|
${releases class="list-group"}
|
||||||
</message>
|
</message>
|
||||||
|
|
||||||
<message id="Lms.Explore.Artist.template.cluster-entry">
|
|
||||||
<span class="badge">${name}</span>
|
|
||||||
</message>
|
|
||||||
|
|
||||||
<message id="Lms.Explore.Artist.template.entry">
|
<message id="Lms.Explore.Artist.template.entry">
|
||||||
<div class="media list-group-item">
|
<div class="media list-group-item">
|
||||||
<div class="pull-left media-middle">
|
<div class="pull-left media-middle">
|
||||||
|
|||||||
+5
-1
@@ -12,10 +12,14 @@
|
|||||||
|
|
||||||
<message id="Lms.Explore.template.filters">
|
<message id="Lms.Explore.template.filters">
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
${add-filter}${filters}
|
${add-filter}${clusters}
|
||||||
</div>
|
</div>
|
||||||
</message>
|
</message>
|
||||||
|
|
||||||
|
<message id="Lms.Explore.template.cluster-entry">
|
||||||
|
<span class="badge">${<if-can-delete>}<i class="fa fa-times-circle"></i>${</if-can-delete>} ${name}</span>
|
||||||
|
</message>
|
||||||
|
|
||||||
<message id="Lms.Explore.template.add-filter">
|
<message id="Lms.Explore.template.add-filter">
|
||||||
<div class="form-horizontal">
|
<div class="form-horizontal">
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
|
|||||||
@@ -22,10 +22,6 @@
|
|||||||
${tracks}
|
${tracks}
|
||||||
</message>
|
</message>
|
||||||
|
|
||||||
<message id="Lms.Explore.Release.template.cluster-entry">
|
|
||||||
<span class="badge">${name}</span>
|
|
||||||
</message>
|
|
||||||
|
|
||||||
<message id="Lms.Explore.Release.template.entry">
|
<message id="Lms.Explore.Release.template.entry">
|
||||||
${<if-has-disc-number>}${disc-number}-${</if-has-disc-number>}${<if-has-track-number>}${track-number}. ${</if-has-track-number>}
|
${<if-has-disc-number>}${disc-number}-${</if-has-disc-number>}${<if-has-track-number>}${track-number}. ${</if-has-track-number>}
|
||||||
${<if-has-artist>}${artist-name} - ${</if-has-artist>}
|
${<if-has-artist>}${artist-name} - ${</if-has-artist>}
|
||||||
|
|||||||
@@ -172,6 +172,22 @@ LmsApplication::createReleaseAnchor(Database::Release::pointer release, bool add
|
|||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::unique_ptr<Wt::WTemplate>
|
||||||
|
LmsApplication::createCluster(Database::Cluster::pointer cluster, bool canDelete)
|
||||||
|
{
|
||||||
|
LMS_LOG(UI, DEBUG) << " Creating cluster for name " << cluster->getName();
|
||||||
|
auto res = std::make_unique<Wt::WTemplate>(Wt::WString::tr("Lms.Explore.template.cluster-entry"));
|
||||||
|
res->addFunction("tr", &Wt::WTemplate::Functions::tr);
|
||||||
|
|
||||||
|
res->bindString("name", Wt::WString::fromUTF8(cluster->getName()), Wt::TextFormat::Plain);
|
||||||
|
res->setCondition("if-can-delete", canDelete);
|
||||||
|
|
||||||
|
std::string styleClass = "cluster-type-" + std::to_string(cluster->getType().id() % 10);
|
||||||
|
res->setStyleClass(styleClass);
|
||||||
|
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
LmsApplication::goHome()
|
LmsApplication::goHome()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -60,6 +60,7 @@ class LmsApplication : public Wt::WApplication
|
|||||||
|
|
||||||
static std::unique_ptr<Wt::WAnchor> createArtistAnchor(Database::Artist::pointer artist, bool addText = true);
|
static std::unique_ptr<Wt::WAnchor> createArtistAnchor(Database::Artist::pointer artist, bool addText = true);
|
||||||
static std::unique_ptr<Wt::WAnchor> createReleaseAnchor(Database::Release::pointer release, bool addText = true);
|
static std::unique_ptr<Wt::WAnchor> createReleaseAnchor(Database::Release::pointer release, bool addText = true);
|
||||||
|
static std::unique_ptr<Wt::WTemplate> createCluster(Database::Cluster::pointer cluster, bool canDelete= false);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
|
|||||||
@@ -79,10 +79,7 @@ Artist::refresh()
|
|||||||
auto clusters = artist->getClusters(3);
|
auto clusters = artist->getClusters(3);
|
||||||
|
|
||||||
for (auto cluster : clusters)
|
for (auto cluster : clusters)
|
||||||
{
|
clusterContainers->addWidget(LmsApp->createCluster(cluster));
|
||||||
Wt::WTemplate* entry = clusterContainers->addNew<Wt::WTemplate>(Wt::WString::tr("Lms.Explore.Artist.template.cluster-entry"));
|
|
||||||
entry->bindString("name", Wt::WString::fromUTF8(cluster->getName()), Wt::TextFormat::Plain);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
t->bindString("name", Wt::WString::fromUTF8(artist->getName()), Wt::TextFormat::Plain);
|
t->bindString("name", Wt::WString::fromUTF8(artist->getName()), Wt::TextFormat::Plain);
|
||||||
|
|||||||
@@ -54,7 +54,6 @@ Filters::showDialog()
|
|||||||
for (auto type : types)
|
for (auto type : types)
|
||||||
typeCombo->addItem(Wt::WString::fromUTF8(type->getName()));
|
typeCombo->addItem(Wt::WString::fromUTF8(type->getName()));
|
||||||
|
|
||||||
|
|
||||||
if (!types.empty())
|
if (!types.empty())
|
||||||
{
|
{
|
||||||
auto values = types.front()->getClusters();
|
auto values = types.front()->getClusters();
|
||||||
@@ -114,11 +113,10 @@ Filters::showDialog()
|
|||||||
_filterIds.insert(clusterId);
|
_filterIds.insert(clusterId);
|
||||||
_sigUpdated.emit();
|
_sigUpdated.emit();
|
||||||
|
|
||||||
Wt::WPushButton* filterBtn = _filters->addNew<Wt::WPushButton>(Wt::WString::fromUTF8(value), Wt::TextFormat::Plain);
|
auto filter = _filters->addWidget(LmsApp->createCluster(cluster, true));
|
||||||
|
filter->clicked().connect(std::bind([=]
|
||||||
filterBtn->clicked().connect(std::bind([=]
|
|
||||||
{
|
{
|
||||||
_filters->removeWidget(filterBtn);
|
_filters->removeWidget(filter);
|
||||||
_filterIds.erase(clusterId);
|
_filterIds.erase(clusterId);
|
||||||
_sigUpdated.emit();
|
_sigUpdated.emit();
|
||||||
}));
|
}));
|
||||||
@@ -134,7 +132,7 @@ Filters::Filters()
|
|||||||
Wt::WPushButton *addFilterBtn = bindNew<Wt::WPushButton>("add-filter", Wt::WText::tr("Lms.Explore.add-filter"));
|
Wt::WPushButton *addFilterBtn = bindNew<Wt::WPushButton>("add-filter", Wt::WText::tr("Lms.Explore.add-filter"));
|
||||||
addFilterBtn->clicked().connect(this, &Filters::showDialog);
|
addFilterBtn->clicked().connect(this, &Filters::showDialog);
|
||||||
|
|
||||||
_filters = bindNew<Wt::WContainerWidget>("filters");
|
_filters = bindNew<Wt::WContainerWidget>("clusters");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -112,10 +112,7 @@ Release::refresh()
|
|||||||
auto clusters = release->getClusters(3);
|
auto clusters = release->getClusters(3);
|
||||||
|
|
||||||
for (auto cluster : clusters)
|
for (auto cluster : clusters)
|
||||||
{
|
clusterContainers->addWidget(LmsApp->createCluster(cluster));
|
||||||
Wt::WTemplate* entry = clusterContainers->addNew<Wt::WTemplate>(Wt::WString::tr("Lms.Explore.Release.template.cluster-entry"));
|
|
||||||
entry->bindString("name", Wt::WString::fromUTF8(cluster->getName()), Wt::TextFormat::Plain);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user