Minor cleanup to acces Application elements
This commit is contained in:
@@ -121,16 +121,16 @@ Artist::refresh()
|
|||||||
entry->addFunction("tr", Wt::WTemplate::Functions::tr);
|
entry->addFunction("tr", Wt::WTemplate::Functions::tr);
|
||||||
|
|
||||||
{
|
{
|
||||||
Wt::WAnchor* coverAnchor = new Wt::WAnchor(Wt::WLink(Wt::WLink::InternalPath, "/release/" + std::to_string(releaseId)));
|
Wt::WAnchor* coverAnchor = LmsApplication::createReleaseAnchor(releaseId);
|
||||||
Wt::WImage* cover = new Wt::WImage(coverAnchor);
|
Wt::WImage* cover = new Wt::WImage(coverAnchor);
|
||||||
cover->setImageLink(SessionImageResource()->getReleaseUrl(release.id(), 128));
|
cover->setImageLink(LmsApp->getImageResource()->getReleaseUrl(release.id(), 128));
|
||||||
// Some images may not be square
|
// Some images may not be square
|
||||||
cover->setWidth(128);
|
cover->setWidth(128);
|
||||||
entry->bindWidget("cover", coverAnchor);
|
entry->bindWidget("cover", coverAnchor);
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
Wt::WAnchor* releaseAnchor = new Wt::WAnchor(Wt::WLink(Wt::WLink::InternalPath, "/release/" + std::to_string(releaseId)));
|
Wt::WAnchor* releaseAnchor = LmsApplication::createReleaseAnchor(releaseId);
|
||||||
Wt::WText* releaseName = new Wt::WText(releaseAnchor);
|
Wt::WText* releaseName = new Wt::WText(releaseAnchor);
|
||||||
releaseName->setText(Wt::WString::fromUTF8(release->getName(), Wt::PlainText));
|
releaseName->setText(Wt::WString::fromUTF8(release->getName(), Wt::PlainText));
|
||||||
entry->bindWidget("name", releaseAnchor);
|
entry->bindWidget("name", releaseAnchor);
|
||||||
|
|||||||
@@ -93,7 +93,7 @@ Artists::addSome()
|
|||||||
entry->bindInt("nb-release", artist->getReleases(clusterIds).size());
|
entry->bindInt("nb-release", artist->getReleases(clusterIds).size());
|
||||||
|
|
||||||
{
|
{
|
||||||
Wt::WAnchor *artistAnchor = new Wt::WAnchor(Wt::WLink(Wt::WLink::InternalPath, "/artist/" + std::to_string(artist.id())));
|
Wt::WAnchor *artistAnchor = LmsApplication::createArtistAnchor(artist.id());
|
||||||
Wt::WText *artistText = new Wt::WText(artistAnchor);
|
Wt::WText *artistText = new Wt::WText(artistAnchor);
|
||||||
artistText->setText(Wt::WString::fromUTF8(artist->getName(), Wt::PlainText));
|
artistText->setText(Wt::WString::fromUTF8(artist->getName(), Wt::PlainText));
|
||||||
entry->bindWidget("name", artistAnchor);
|
entry->bindWidget("name", artistAnchor);
|
||||||
|
|||||||
+16
-11
@@ -17,12 +17,13 @@
|
|||||||
* along with LMS. If not, see <http://www.gnu.org/licenses/>.
|
* along with LMS. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <Wt/WEnvironment>
|
#include <Wt/WAnchor>
|
||||||
#include <Wt/WBootstrapTheme>
|
#include <Wt/WBootstrapTheme>
|
||||||
#include <Wt/WNavigationBar>
|
#include <Wt/WEnvironment>
|
||||||
#include <Wt/WStackedWidget>
|
|
||||||
#include <Wt/WMenu>
|
#include <Wt/WMenu>
|
||||||
|
#include <Wt/WNavigationBar>
|
||||||
#include <Wt/WPopupMenu>
|
#include <Wt/WPopupMenu>
|
||||||
|
#include <Wt/WStackedWidget>
|
||||||
#include <Wt/WText>
|
#include <Wt/WText>
|
||||||
#include <Wt/Auth/Identity>
|
#include <Wt/Auth/Identity>
|
||||||
|
|
||||||
@@ -30,7 +31,6 @@
|
|||||||
#include "utils/Logger.hpp"
|
#include "utils/Logger.hpp"
|
||||||
#include "utils/Utils.hpp"
|
#include "utils/Utils.hpp"
|
||||||
|
|
||||||
#include "Auth.hpp"
|
|
||||||
#include "Explore.hpp"
|
#include "Explore.hpp"
|
||||||
#include "HomeView.hpp"
|
#include "HomeView.hpp"
|
||||||
#include "MediaPlayer.hpp"
|
#include "MediaPlayer.hpp"
|
||||||
@@ -41,10 +41,6 @@
|
|||||||
|
|
||||||
#include "LmsApplication.hpp"
|
#include "LmsApplication.hpp"
|
||||||
|
|
||||||
namespace skeletons {
|
|
||||||
extern const char *AuthStrings_xml1;
|
|
||||||
}
|
|
||||||
|
|
||||||
namespace UserInterface {
|
namespace UserInterface {
|
||||||
|
|
||||||
Wt::WApplication*
|
Wt::WApplication*
|
||||||
@@ -112,9 +108,6 @@ LmsApplication::LmsApplication(const Wt::WEnvironment& env, Wt::Dbo::SqlConnecti
|
|||||||
|
|
||||||
if (firstConnection)
|
if (firstConnection)
|
||||||
{
|
{
|
||||||
// Hack, use the auth widget builtin strings
|
|
||||||
builtinLocalizedStrings().useBuiltin(skeletons::AuthStrings_xml1);
|
|
||||||
|
|
||||||
root()->addWidget(new Settings::FirstConnectionView());
|
root()->addWidget(new Settings::FirstConnectionView());
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -160,6 +153,18 @@ Scanner::MediaScanner& MediaScanner()
|
|||||||
return LmsApplication::instance()->getMediaScanner();
|
return LmsApplication::instance()->getMediaScanner();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Wt::WAnchor*
|
||||||
|
LmsApplication::createArtistAnchor(Database::id_type id)
|
||||||
|
{
|
||||||
|
return new Wt::WAnchor(Wt::WLink(Wt::WLink::InternalPath, "/artist/" + std::to_string(id)));
|
||||||
|
}
|
||||||
|
|
||||||
|
Wt::WAnchor*
|
||||||
|
LmsApplication::createReleaseAnchor(Database::id_type id)
|
||||||
|
{
|
||||||
|
return new Wt::WAnchor(Wt::WLink(Wt::WLink::InternalPath, "/release/" + std::to_string(id)));
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
LmsApplication::goHome()
|
LmsApplication::goHome()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -50,6 +50,9 @@ class LmsApplication : public Wt::WApplication
|
|||||||
void quit();
|
void quit();
|
||||||
void notify(const Wt::WString& message);
|
void notify(const Wt::WString& message);
|
||||||
|
|
||||||
|
static Wt::WAnchor* createArtistAnchor(Database::id_type id);
|
||||||
|
static Wt::WAnchor* createReleaseAnchor(Database::id_type id);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
LmsApplication(const Wt::WEnvironment& env, Wt::Dbo::SqlConnectionPool& connectionPool, Scanner::MediaScanner& scanner);
|
LmsApplication(const Wt::WEnvironment& env, Wt::Dbo::SqlConnectionPool& connectionPool, Scanner::MediaScanner& scanner);
|
||||||
@@ -72,14 +75,6 @@ Wt::Dbo::Session& DboSession();
|
|||||||
const Wt::Auth::User& CurrentAuthUser();
|
const Wt::Auth::User& CurrentAuthUser();
|
||||||
Database::User::pointer CurrentUser();
|
Database::User::pointer CurrentUser();
|
||||||
|
|
||||||
ImageResource *SessionImageResource();
|
|
||||||
TranscodeResource *SessionTranscodeResource();
|
|
||||||
|
|
||||||
Scanner::MediaScanner& MediaScanner();
|
|
||||||
|
|
||||||
void notify(const Wt::WString& message);
|
|
||||||
|
|
||||||
|
|
||||||
} // namespace UserInterface
|
} // namespace UserInterface
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -99,7 +99,7 @@ Release::refresh()
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Wt::WAnchor *artistAnchor = new Wt::WAnchor(Wt::WLink(Wt::WLink::InternalPath, "/artist/" + std::to_string(artists.front().id())));
|
Wt::WAnchor *artistAnchor = LmsApplication::createArtistAnchor(artists.front().id());
|
||||||
Wt::WText *artist = new Wt::WText(artistAnchor);
|
Wt::WText *artist = new Wt::WText(artistAnchor);
|
||||||
artist->setText(Wt::WString::fromUTF8(artists.front()->getName(), Wt::PlainText));
|
artist->setText(Wt::WString::fromUTF8(artists.front()->getName(), Wt::PlainText));
|
||||||
t->bindWidget("artist-name", artistAnchor);
|
t->bindWidget("artist-name", artistAnchor);
|
||||||
@@ -107,7 +107,7 @@ Release::refresh()
|
|||||||
}
|
}
|
||||||
|
|
||||||
Wt::WImage *cover = new Wt::WImage();
|
Wt::WImage *cover = new Wt::WImage();
|
||||||
cover->setImageLink(Wt::WLink (SessionImageResource()->getReleaseUrl(release.id(), 512)));
|
cover->setImageLink(Wt::WLink(LmsApp->getImageResource()->getReleaseUrl(release.id(), 512)));
|
||||||
t->bindWidget("cover", cover);
|
t->bindWidget("cover", cover);
|
||||||
|
|
||||||
auto clusterContainers = new Wt::WContainerWidget();
|
auto clusterContainers = new Wt::WContainerWidget();
|
||||||
@@ -161,7 +161,7 @@ Release::refresh()
|
|||||||
if (variousArtists && track->getArtist())
|
if (variousArtists && track->getArtist())
|
||||||
{
|
{
|
||||||
entry->setCondition("if-has-artist", true);
|
entry->setCondition("if-has-artist", true);
|
||||||
Wt::WAnchor *artistAnchor = new Wt::WAnchor(Wt::WLink(Wt::WLink::InternalPath, "/artist/" + std::to_string(track->getArtist().id())));
|
Wt::WAnchor *artistAnchor = LmsApplication::createArtistAnchor(track->getArtist().id());
|
||||||
Wt::WText *artistText = new Wt::WText(artistAnchor);
|
Wt::WText *artistText = new Wt::WText(artistAnchor);
|
||||||
artistText->setText(Wt::WString::fromUTF8(track->getArtist()->getName(), Wt::PlainText));
|
artistText->setText(Wt::WString::fromUTF8(track->getArtist()->getName(), Wt::PlainText));
|
||||||
entry->bindWidget("artist-name", artistAnchor);
|
entry->bindWidget("artist-name", artistAnchor);
|
||||||
|
|||||||
@@ -91,15 +91,15 @@ Releases::addSome()
|
|||||||
Wt::WTemplate* entry = new Wt::WTemplate(Wt::WString::tr("template-releases-entry"), _releasesContainer);
|
Wt::WTemplate* entry = new Wt::WTemplate(Wt::WString::tr("template-releases-entry"), _releasesContainer);
|
||||||
entry->addFunction("tr", Wt::WTemplate::Functions::tr);
|
entry->addFunction("tr", Wt::WTemplate::Functions::tr);
|
||||||
|
|
||||||
Wt::WAnchor* coverAnchor = new Wt::WAnchor(Wt::WLink(Wt::WLink::InternalPath, "/release/" + std::to_string(releaseId)));
|
Wt::WAnchor* coverAnchor = LmsApplication::createReleaseAnchor(releaseId);
|
||||||
Wt::WImage* cover = new Wt::WImage(coverAnchor);
|
Wt::WImage* cover = new Wt::WImage(coverAnchor);
|
||||||
cover->setImageLink(SessionImageResource()->getReleaseUrl(releaseId, 128));
|
cover->setImageLink(LmsApp->getImageResource()->getReleaseUrl(releaseId, 128));
|
||||||
// Some images may not be square
|
// Some images may not be square
|
||||||
cover->setWidth(128);
|
cover->setWidth(128);
|
||||||
entry->bindWidget("cover", coverAnchor);
|
entry->bindWidget("cover", coverAnchor);
|
||||||
|
|
||||||
{
|
{
|
||||||
Wt::WAnchor* releaseAnchor = new Wt::WAnchor(Wt::WLink(Wt::WLink::InternalPath, "/release/" + std::to_string(releaseId)));
|
Wt::WAnchor* releaseAnchor = LmsApplication::createReleaseAnchor(releaseId);
|
||||||
Wt::WText* releaseName = new Wt::WText(releaseAnchor);
|
Wt::WText* releaseName = new Wt::WText(releaseAnchor);
|
||||||
releaseName->setText(Wt::WString::fromUTF8(release->getName(), Wt::PlainText));
|
releaseName->setText(Wt::WString::fromUTF8(release->getName(), Wt::PlainText));
|
||||||
entry->bindWidget("release-name", releaseAnchor);
|
entry->bindWidget("release-name", releaseAnchor);
|
||||||
@@ -113,7 +113,7 @@ Releases::addSome()
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Wt::WAnchor* artistAnchor = new Wt::WAnchor(Wt::WLink(Wt::WLink::InternalPath, "/artist/" + std::to_string(artists.front().id())));
|
Wt::WAnchor* artistAnchor = LmsApplication::createArtistAnchor(artists.front().id());
|
||||||
Wt::WText* artist = new Wt::WText(artistAnchor);
|
Wt::WText* artist = new Wt::WText(artistAnchor);
|
||||||
artist->setText(Wt::WString::fromUTF8(artists.front()->getName(), Wt::PlainText));
|
artist->setText(Wt::WString::fromUTF8(artists.front()->getName(), Wt::PlainText));
|
||||||
entry->bindWidget("artist-name", artistAnchor);
|
entry->bindWidget("artist-name", artistAnchor);
|
||||||
|
|||||||
@@ -124,7 +124,7 @@ Tracks::addSome()
|
|||||||
if (artist)
|
if (artist)
|
||||||
{
|
{
|
||||||
entry->setCondition("if-has-artist", true);
|
entry->setCondition("if-has-artist", true);
|
||||||
Wt::WAnchor *artistAnchor = new Wt::WAnchor(Wt::WLink(Wt::WLink::InternalPath, "/artist/" + std::to_string(track->getArtist().id())));
|
Wt::WAnchor *artistAnchor = LmsApplication::createArtistAnchor(track->getArtist().id());
|
||||||
Wt::WText *artistText = new Wt::WText(artistAnchor);
|
Wt::WText *artistText = new Wt::WText(artistAnchor);
|
||||||
artistText->setText(Wt::WString::fromUTF8(artist->getName(), Wt::PlainText));
|
artistText->setText(Wt::WString::fromUTF8(artist->getName(), Wt::PlainText));
|
||||||
entry->bindWidget("artist-name", artistAnchor);
|
entry->bindWidget("artist-name", artistAnchor);
|
||||||
@@ -134,14 +134,14 @@ Tracks::addSome()
|
|||||||
if (release)
|
if (release)
|
||||||
{
|
{
|
||||||
entry->setCondition("if-has-release", true);
|
entry->setCondition("if-has-release", true);
|
||||||
Wt::WAnchor *releaseAnchor = new Wt::WAnchor(Wt::WLink(Wt::WLink::InternalPath, "/release/" + std::to_string(track->getRelease().id())));
|
Wt::WAnchor *releaseAnchor = LmsApplication::createReleaseAnchor(track->getRelease().id());
|
||||||
Wt::WText *releaseText = new Wt::WText(releaseAnchor);
|
Wt::WText *releaseText = new Wt::WText(releaseAnchor);
|
||||||
releaseText->setText(Wt::WString::fromUTF8(release->getName(), Wt::PlainText));
|
releaseText->setText(Wt::WString::fromUTF8(release->getName(), Wt::PlainText));
|
||||||
entry->bindWidget("release-name", releaseAnchor);
|
entry->bindWidget("release-name", releaseAnchor);
|
||||||
}
|
}
|
||||||
|
|
||||||
Wt::WImage *cover = new Wt::WImage();
|
Wt::WImage *cover = new Wt::WImage();
|
||||||
cover->setImageLink(SessionImageResource()->getTrackUrl(track.id(), 64));
|
cover->setImageLink(LmsApp->getImageResource()->getTrackUrl(track.id(), 64));
|
||||||
// Some images may not be square
|
// Some images may not be square
|
||||||
cover->setWidth(64);
|
cover->setWidth(64);
|
||||||
entry->bindWidget("cover", cover);
|
entry->bindWidget("cover", cover);
|
||||||
|
|||||||
@@ -267,9 +267,8 @@ DatabaseView::DatabaseView(Wt::WContainerWidget *parent)
|
|||||||
{
|
{
|
||||||
model->saveData();
|
model->saveData();
|
||||||
|
|
||||||
MediaScanner().reschedule();
|
LmsApp->getMediaScanner().reschedule();
|
||||||
|
LmsApp->notify(Wt::WString::tr("msg-notify-settings-saved"));
|
||||||
notify(Wt::WString::tr("msg-notify-settings-saved"));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Udate the view: Delete any validation message in the view, etc.
|
// Udate the view: Delete any validation message in the view, etc.
|
||||||
@@ -285,9 +284,8 @@ DatabaseView::DatabaseView(Wt::WContainerWidget *parent)
|
|||||||
|
|
||||||
immScanBtn->clicked().connect(std::bind([=] ()
|
immScanBtn->clicked().connect(std::bind([=] ()
|
||||||
{
|
{
|
||||||
MediaScanner().scheduleImmediateScan();
|
LmsApp->getMediaScanner().scheduleImmediateScan();
|
||||||
|
LmsApp->notify(Wt::WString::tr("msg-notify-scan-launched"));
|
||||||
notify(Wt::WString::tr("msg-notify-scan-launched"));
|
|
||||||
}));
|
}));
|
||||||
|
|
||||||
updateView(model);
|
updateView(model);
|
||||||
|
|||||||
@@ -149,7 +149,7 @@ FirstConnectionView::FirstConnectionView(Wt::WContainerWidget *parent)
|
|||||||
if (model->validate())
|
if (model->validate())
|
||||||
{
|
{
|
||||||
model->saveData();
|
model->saveData();
|
||||||
notify(Wt::WString::tr("msg-settings-first-connection-done"));
|
LmsApp->notify(Wt::WString::tr("msg-settings-first-connection-done"));
|
||||||
saveButton->setEnabled(false);
|
saveButton->setEnabled(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user