Added a show more functionnality

This commit is contained in:
emeric
2018-02-21 13:34:29 +01:00
parent f40df1fc29
commit 5b4fe044de
14 changed files with 89 additions and 26 deletions
+22 -7
View File
@@ -39,16 +39,25 @@ Artists::Artists(Filters* filters, Wt::WContainerWidget* parent)
: Wt::WContainerWidget(parent),
_filters(filters)
{
auto artists = new Wt::WTemplate(Wt::WString::tr("template-artists"), this);
artists->addFunction("tr", &Wt::WTemplate::Functions::tr);
auto container = new Wt::WTemplate(Wt::WString::tr("template-artists"), this);
container->addFunction("tr", &Wt::WTemplate::Functions::tr);
_search = new Wt::WLineEdit();
artists->bindWidget("search", _search);
container->bindWidget("search", _search);
_search->setPlaceholderText(Wt::WString::tr("msg-search-placeholder"));
_search->textInput().connect(this, &Artists::refresh);
_artistsContainer = new Wt::WContainerWidget();
artists->bindWidget("artists", _artistsContainer);
container->bindWidget("artists", _artistsContainer);
_showMore = new Wt::WTemplate(Wt::WString::tr("template-show-more"));
_showMore->addFunction("tr", &Wt::WTemplate::Functions::tr);
container->bindWidget("show-more", _showMore);
_showMore->clicked().connect(std::bind([=]
{
add_some();
}));
refresh();
@@ -58,9 +67,14 @@ Artists::Artists(Filters* filters, Wt::WContainerWidget* parent)
void
Artists::refresh()
{
auto searchKeywords = splitString(_search->text().toUTF8(), " ");
_artistsContainer->clear();
add_some();
}
void
Artists::add_some()
{
auto searchKeywords = splitString(_search->text().toUTF8(), " ");
auto clusterIds = _filters->getClusterIds();
@@ -70,7 +84,7 @@ Artists::refresh()
auto artists = Artist::getByFilter(DboSession(),
clusterIds,
searchKeywords,
0, 40, moreResults);
_artistsContainer->count(), 20, moreResults);
for (auto artist : artists)
{
@@ -86,6 +100,7 @@ Artists::refresh()
}
}
_showMore->setHidden(!moreResults);
}
} // namespace UserInterface
+2
View File
@@ -37,8 +37,10 @@ class Artists : public Wt::WContainerWidget
private:
void refresh();
void add_some();
Filters* _filters;
Wt::WTemplate* _showMore;
Wt::WLineEdit* _search;
Wt::WContainerWidget* _artistsContainer;
};
+25 -8
View File
@@ -40,36 +40,49 @@ Releases::Releases(Filters* filters, Wt::WContainerWidget* parent)
: Wt::WContainerWidget(parent),
_filters(filters)
{
auto releases = new Wt::WTemplate(Wt::WString::tr("template-releases"), this);
releases->addFunction("tr", &Wt::WTemplate::Functions::tr);
auto container = new Wt::WTemplate(Wt::WString::tr("template-releases"), this);
container->addFunction("tr", &Wt::WTemplate::Functions::tr);
_search = new Wt::WLineEdit();
releases->bindWidget("search", _search);
container->bindWidget("search", _search);
_search->setPlaceholderText(Wt::WString::tr("msg-search-placeholder"));
_search->textInput().connect(this, &Releases::refresh);
_releasesContainer = new Wt::WContainerWidget();
releases->bindWidget("releases", _releasesContainer);
container->bindWidget("releases", _releasesContainer);
_showMore = new Wt::WTemplate(Wt::WString::tr("template-show-more"));
_showMore->addFunction("tr", &Wt::WTemplate::Functions::tr);
container->bindWidget("show-more", _showMore);
_showMore->clicked().connect(std::bind([=]
{
add_some();
}));
refresh();
filters->updated().connect(this, &Releases::refresh);
}
void
Releases::refresh()
{
auto searchKeywords = splitString(_search->text().toUTF8(), " ");
_releasesContainer->clear();
add_some();
}
void
Releases::add_some()
{
auto searchKeywords = splitString(_search->text().toUTF8(), " ");
auto clusterIds = _filters->getClusterIds();
Wt::Dbo::Transaction transaction(DboSession());
bool moreResults;
auto releases = Release::getByFilter(DboSession(), clusterIds, searchKeywords, 0, 40, moreResults);
auto releases = Release::getByFilter(DboSession(), clusterIds, searchKeywords, _releasesContainer->count(), 20, moreResults);
for (auto release : releases)
{
@@ -120,6 +133,10 @@ Releases::refresh()
releaseAdd.emit(releaseId);
}));
}
std::cerr << "if-show-more = " << moreResults << "\n";
_showMore->setHidden(!moreResults);
}
} // namespace UserInterface
+3
View File
@@ -21,6 +21,7 @@
#include <Wt/WContainerWidget>
#include <Wt/WLineEdit>
#include <Wt/WText>
namespace UserInterface {
@@ -36,8 +37,10 @@ class Releases : public Wt::WContainerWidget
private:
void refresh();
void add_some();
Filters* _filters;
Wt::WTemplate* _showMore;
Wt::WLineEdit* _search;
Wt::WContainerWidget* _releasesContainer;
};
+22 -8
View File
@@ -20,7 +20,6 @@
#include <Wt/WAnchor>
#include <Wt/WImage>
#include <Wt/WLineEdit>
#include <Wt/WTemplate>
#include <Wt/WText>
#include "database/Types.hpp"
@@ -40,16 +39,25 @@ Tracks::Tracks(Filters* filters, Wt::WContainerWidget* parent)
: Wt::WContainerWidget(parent),
_filters(filters)
{
auto tracks = new Wt::WTemplate(Wt::WString::tr("template-tracks"), this);
tracks->addFunction("tr", &Wt::WTemplate::Functions::tr);
auto container = new Wt::WTemplate(Wt::WString::tr("template-tracks"), this);
container->addFunction("tr", &Wt::WTemplate::Functions::tr);
_search = new Wt::WLineEdit();
tracks->bindWidget("search", _search);
container->bindWidget("search", _search);
_search->setPlaceholderText(Wt::WString::tr("msg-search-placeholder"));
_search->textInput().connect(this, &Tracks::refresh);
_tracksContainer = new Wt::WContainerWidget();
tracks->bindWidget("tracks", _tracksContainer);
container->bindWidget("tracks", _tracksContainer);
_showMore = new Wt::WTemplate(Wt::WString::tr("template-show-more"));
_showMore->addFunction("tr", &Wt::WTemplate::Functions::tr);
container->bindWidget("show-more", _showMore);
_showMore->clicked().connect(std::bind([=]
{
add_some();
}));
refresh();
@@ -60,16 +68,21 @@ Tracks::Tracks(Filters* filters, Wt::WContainerWidget* parent)
void
Tracks::refresh()
{
auto searchKeywords = splitString(_search->text().toUTF8(), " ");
_tracksContainer->clear();
add_some();
}
void
Tracks::add_some()
{
auto searchKeywords = splitString(_search->text().toUTF8(), " ");
auto clusterIds = _filters->getClusterIds();
Wt::Dbo::Transaction transaction(DboSession());
bool moreResults;
auto tracks = Track::getByFilter(DboSession(), clusterIds, searchKeywords, 0, 40, moreResults);
auto tracks = Track::getByFilter(DboSession(), clusterIds, searchKeywords, _tracksContainer->count(), 20, moreResults);
for (auto track : tracks)
{
@@ -120,6 +133,7 @@ Tracks::refresh()
}));
}
_showMore->setHidden(!moreResults);
}
} // namespace UserInterface
+3
View File
@@ -21,6 +21,7 @@
#include <Wt/WContainerWidget>
#include <Wt/WLineEdit>
#include <Wt/WTemplate>
namespace UserInterface {
@@ -35,8 +36,10 @@ class Tracks : public Wt::WContainerWidget
private:
void refresh();
void add_some();
Wt::WContainerWidget* _tracksContainer;
Wt::WTemplate* _showMore;
Wt::WLineEdit* _search;
Filters* _filters;
};