UI: added away to filter all the views by music library

This commit is contained in:
emeric
2024-04-28 23:37:59 +02:00
parent 83c71ee90c
commit 391d859272
35 changed files with 558 additions and 305 deletions
+23 -4
View File
@@ -43,17 +43,19 @@ namespace lms::db
query.groupBy("c.id");
if (params.track.isValid() || params.release.isValid())
{
query.join("track_cluster t_c ON t_c.cluster_id = c.id");
query.join("track t ON t.id = t_c.track_id");
}
if (!params.clusterTypeName.empty())
query.join("cluster_type c_t ON c_t.id = c.cluster_type_id");
if (params.track.isValid())
query.where("t.id = ?").bind(params.track);
query.where("t_c.track_id = ?").bind(params.track);
if (params.release.isValid())
{
query.join("track t ON t.id = t_c.track_id");
query.where("t.release_id = ?").bind(params.release);
}
assert(!params.clusterType.isValid() || params.clusterTypeName.empty());
if (params.clusterType.isValid())
@@ -61,6 +63,17 @@ namespace lms::db
else if (!params.clusterTypeName.empty())
query.where("c_t.name = ?").bind(params.clusterTypeName);
switch (params.sortMethod)
{
case ClusterSortMethod::None:
break;
case ClusterSortMethod::Name:
query.orderBy("c.name COLLATE NOCASE");
break;
}
query.groupBy("c.id");
return query;
}
@@ -208,6 +221,12 @@ namespace lms::db
return utils::execRangeQuery<ClusterTypeId>(query, range);
}
void ClusterType::find(Session& session, const std::function<void(const pointer&)>& func)
{
auto query{ session.getDboSession()->find<ClusterType>() };
return utils::forEachQueryResult(query, func);
}
ClusterType::pointer ClusterType::find(Session& session, std::string_view name)
{
session.checkReadTransaction();