Added a notify system
This commit is contained in:
@@ -23,6 +23,7 @@
|
|||||||
<message id="msg-settings-media-directory">Media root directory</message>
|
<message id="msg-settings-media-directory">Media root directory</message>
|
||||||
<message id="msg-settings-update-period">Update period</message>
|
<message id="msg-settings-update-period">Update period</message>
|
||||||
<message id="msg-settings-update-start-time">Update start time</message>
|
<message id="msg-settings-update-start-time">Update start time</message>
|
||||||
|
<message id="msg-settings-update-start-time">Update start time</message>
|
||||||
<message id="msg-update-period-never">Never</message>
|
<message id="msg-update-period-never">Never</message>
|
||||||
<message id="msg-update-period-daily">Daily</message>
|
<message id="msg-update-period-daily">Daily</message>
|
||||||
<message id="msg-update-period-weekly">Weekly</message>
|
<message id="msg-update-period-weekly">Weekly</message>
|
||||||
@@ -31,5 +32,8 @@
|
|||||||
<message id="msg-btn-apply">Apply</message>
|
<message id="msg-btn-apply">Apply</message>
|
||||||
<message id="msg-btn-discard">Discard</message>
|
<message id="msg-btn-discard">Discard</message>
|
||||||
<message id="msg-btn-immediate-scan">Scan now!</message>
|
<message id="msg-btn-immediate-scan">Scan now!</message>
|
||||||
|
<message id="msg-notify-scan-launched">Scan launched!</message>
|
||||||
|
<message id="msg-notify-settings-saved">New settings saved!</message>
|
||||||
|
<message id="msg-notify-scan-complete">Scan finished, {1} imported file(s), {2} removed file(s)!</message>
|
||||||
|
|
||||||
</messages>
|
</messages>
|
||||||
|
|||||||
@@ -318,6 +318,21 @@ LmsApplication::handleAuthEvent(void)
|
|||||||
auto player = new MediaPlayer();
|
auto player = new MediaPlayer();
|
||||||
main->bindWidget("player", player);
|
main->bindWidget("player", player);
|
||||||
|
|
||||||
|
// Events from MediaScanner
|
||||||
|
// TODO: only if admin
|
||||||
|
enableUpdates(true);
|
||||||
|
std::string sessionId = this->sessionId();
|
||||||
|
_scanner.scanComplete().connect(std::bind([=] (Scanner::MediaScanner::Stats stats)
|
||||||
|
{
|
||||||
|
Wt::WServer::instance()->post(sessionId, [=]
|
||||||
|
{
|
||||||
|
notify(Wt::WString::tr("msg-notify-scan-complete").arg(stats.nbAdded).arg(stats.nbRemoved));
|
||||||
|
triggerUpdate();
|
||||||
|
});
|
||||||
|
// notify("TEST");
|
||||||
|
}, std::placeholders::_1));
|
||||||
|
|
||||||
|
|
||||||
internalPathChanged().connect(std::bind([=]
|
internalPathChanged().connect(std::bind([=]
|
||||||
{
|
{
|
||||||
handlePathChange(mainStack);
|
handlePathChange(mainStack);
|
||||||
@@ -326,6 +341,18 @@ LmsApplication::handleAuthEvent(void)
|
|||||||
handlePathChange(mainStack);
|
handlePathChange(mainStack);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
LmsApplication::notify(const Wt::WString& message)
|
||||||
|
{
|
||||||
|
LMS_LOG(UI, INFO) << "Notifying message '" << message.toUTF8() << "'";
|
||||||
|
root()->addWidget(new Wt::WText(message));
|
||||||
|
}
|
||||||
|
|
||||||
|
void notify(const Wt::WString& message)
|
||||||
|
{
|
||||||
|
LmsApplication::instance()->notify(message);
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace UserInterface
|
} // namespace UserInterface
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -48,6 +48,7 @@ class LmsApplication : public Wt::WApplication
|
|||||||
|
|
||||||
// Utils
|
// Utils
|
||||||
void goHome();
|
void goHome();
|
||||||
|
void notify(const Wt::WString& message);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
@@ -77,6 +78,9 @@ TranscodeResource *SessionTranscodeResource();
|
|||||||
|
|
||||||
Scanner::MediaScanner& MediaScanner();
|
Scanner::MediaScanner& MediaScanner();
|
||||||
|
|
||||||
|
void notify(const Wt::WString& message);
|
||||||
|
|
||||||
|
|
||||||
} // namespace UserInterface
|
} // namespace UserInterface
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -270,6 +270,8 @@ DatabaseView::DatabaseView(Wt::WContainerWidget *parent)
|
|||||||
immScanBtn->clicked().connect(std::bind([=] ()
|
immScanBtn->clicked().connect(std::bind([=] ()
|
||||||
{
|
{
|
||||||
MediaScanner().scheduleImmediateScan();
|
MediaScanner().scheduleImmediateScan();
|
||||||
|
|
||||||
|
notify(Wt::WString::tr("msg-notify-scan-launched"));
|
||||||
}));
|
}));
|
||||||
|
|
||||||
updateView(_model);
|
updateView(_model);
|
||||||
@@ -288,11 +290,15 @@ DatabaseView::processSave()
|
|||||||
{
|
{
|
||||||
updateModel(_model);
|
updateModel(_model);
|
||||||
|
|
||||||
if (_model->validate()) {
|
if (_model->validate())
|
||||||
|
{
|
||||||
_model->saveData();
|
_model->saveData();
|
||||||
|
|
||||||
MediaScanner().reschedule();
|
MediaScanner().reschedule();
|
||||||
|
|
||||||
|
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.
|
||||||
updateView(_model);
|
updateView(_model);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user