Added css style for each cluster type. Unified cluster handling in UI

This commit is contained in:
emeric
2018-05-06 17:50:18 +02:00
parent 57e745b460
commit 142ef53b6f
8 changed files with 28 additions and 23 deletions
-4
View File
@@ -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
View File
@@ -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">
-4
View File
@@ -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>}
+16
View File
@@ -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()
{ {
+1
View File
@@ -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:
+1 -4
View File
@@ -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);
+4 -6
View File
@@ -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");
} }
+1 -4
View File
@@ -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);
}
} }
{ {