Share message strings across sessions
This commit is contained in:
@@ -64,6 +64,48 @@
|
|||||||
|
|
||||||
namespace UserInterface {
|
namespace UserInterface {
|
||||||
|
|
||||||
|
static
|
||||||
|
std::shared_ptr<Wt::WMessageResourceBundle>
|
||||||
|
createMessageResourceBundle()
|
||||||
|
{
|
||||||
|
const std::string appRoot {Wt::WApplication::appRoot()};
|
||||||
|
|
||||||
|
auto res {std::make_shared<Wt::WMessageResourceBundle>()};
|
||||||
|
res->use(appRoot + "admin-database");
|
||||||
|
res->use(appRoot + "admin-initwizard");
|
||||||
|
res->use(appRoot + "admin-scannercontroller");
|
||||||
|
res->use(appRoot + "admin-user");
|
||||||
|
res->use(appRoot + "admin-users");
|
||||||
|
res->use(appRoot + "artist");
|
||||||
|
res->use(appRoot + "artists");
|
||||||
|
res->use(appRoot + "error");
|
||||||
|
res->use(appRoot + "explore");
|
||||||
|
res->use(appRoot + "login");
|
||||||
|
res->use(appRoot + "main");
|
||||||
|
res->use(appRoot + "mediaplayer");
|
||||||
|
res->use(appRoot + "messages");
|
||||||
|
res->use(appRoot + "misc");
|
||||||
|
res->use(appRoot + "notifications");
|
||||||
|
res->use(appRoot + "playqueue");
|
||||||
|
res->use(appRoot + "release");
|
||||||
|
res->use(appRoot + "releases");
|
||||||
|
res->use(appRoot + "search");
|
||||||
|
res->use(appRoot + "settings");
|
||||||
|
res->use(appRoot + "tracklist");
|
||||||
|
res->use(appRoot + "tracklists");
|
||||||
|
res->use(appRoot + "tracks");
|
||||||
|
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
|
static
|
||||||
|
std::shared_ptr<Wt::WMessageResourceBundle>
|
||||||
|
getOrCreateMessageBundle()
|
||||||
|
{
|
||||||
|
static std::shared_ptr<Wt::WMessageResourceBundle> res {createMessageResourceBundle()};
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
static constexpr const char* defaultPath {"/releases"};
|
static constexpr const char* defaultPath {"/releases"};
|
||||||
|
|
||||||
std::unique_ptr<Wt::WApplication>
|
std::unique_ptr<Wt::WApplication>
|
||||||
@@ -169,32 +211,8 @@ LmsApplication::init()
|
|||||||
useStyleSheet("resources/font-awesome/css/font-awesome.min.css");
|
useStyleSheet("resources/font-awesome/css/font-awesome.min.css");
|
||||||
require("js/mediaplayer.js");
|
require("js/mediaplayer.js");
|
||||||
|
|
||||||
setTitle("LMS");
|
setTitle();
|
||||||
|
setLocalizedStrings(getOrCreateMessageBundle());
|
||||||
// Add a resource bundle
|
|
||||||
messageResourceBundle().use(appRoot() + "admin-database");
|
|
||||||
messageResourceBundle().use(appRoot() + "admin-initwizard");
|
|
||||||
messageResourceBundle().use(appRoot() + "admin-scannercontroller");
|
|
||||||
messageResourceBundle().use(appRoot() + "admin-user");
|
|
||||||
messageResourceBundle().use(appRoot() + "admin-users");
|
|
||||||
messageResourceBundle().use(appRoot() + "artist");
|
|
||||||
messageResourceBundle().use(appRoot() + "artists");
|
|
||||||
messageResourceBundle().use(appRoot() + "error");
|
|
||||||
messageResourceBundle().use(appRoot() + "explore");
|
|
||||||
messageResourceBundle().use(appRoot() + "login");
|
|
||||||
messageResourceBundle().use(appRoot() + "main");
|
|
||||||
messageResourceBundle().use(appRoot() + "mediaplayer");
|
|
||||||
messageResourceBundle().use(appRoot() + "messages");
|
|
||||||
messageResourceBundle().use(appRoot() + "misc");
|
|
||||||
messageResourceBundle().use(appRoot() + "notifications");
|
|
||||||
messageResourceBundle().use(appRoot() + "playqueue");
|
|
||||||
messageResourceBundle().use(appRoot() + "release");
|
|
||||||
messageResourceBundle().use(appRoot() + "releases");
|
|
||||||
messageResourceBundle().use(appRoot() + "search");
|
|
||||||
messageResourceBundle().use(appRoot() + "settings");
|
|
||||||
messageResourceBundle().use(appRoot() + "tracklist");
|
|
||||||
messageResourceBundle().use(appRoot() + "tracklists");
|
|
||||||
messageResourceBundle().use(appRoot() + "tracks");
|
|
||||||
|
|
||||||
// Handle Media Scanner events and other session events
|
// Handle Media Scanner events and other session events
|
||||||
enableUpdates(true);
|
enableUpdates(true);
|
||||||
@@ -599,6 +617,15 @@ LmsApplication::post(std::function<void()> func)
|
|||||||
Wt::WServer::instance()->post(LmsApp->sessionId(), std::move(func));
|
Wt::WServer::instance()->post(LmsApp->sessionId(), std::move(func));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
LmsApplication::setTitle(const Wt::WString& title)
|
||||||
|
{
|
||||||
|
if (title.empty())
|
||||||
|
WApplication::setTitle("LMS");
|
||||||
|
else
|
||||||
|
WApplication::setTitle(title + " | LMS");
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
LmsApplication::notifyMsg(Notification::Type type, const Wt::WString& category, const Wt::WString& message, std::chrono::milliseconds duration)
|
LmsApplication::notifyMsg(Notification::Type type, const Wt::WString& category, const Wt::WString& message, std::chrono::milliseconds duration)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -75,6 +75,7 @@ class LmsApplication : public Wt::WApplication
|
|||||||
|
|
||||||
// Utils
|
// Utils
|
||||||
void post(std::function<void()> func);
|
void post(std::function<void()> func);
|
||||||
|
void setTitle(const Wt::WString& title = "");
|
||||||
|
|
||||||
// Used to classify the message sent to the user
|
// Used to classify the message sent to the user
|
||||||
void notifyMsg(Notification::Type type, const Wt::WString& category, const Wt::WString& message, std::chrono::milliseconds duration = std::chrono::milliseconds {5000});
|
void notifyMsg(Notification::Type type, const Wt::WString& category, const Wt::WString& message, std::chrono::milliseconds duration = std::chrono::milliseconds {5000});
|
||||||
|
|||||||
Reference in New Issue
Block a user