Still converting to bootstrap 5. Reworked album layout. Switched to bootswatch solar theme
This commit is contained in:
@@ -164,10 +164,9 @@ LmsApplication::~LmsApplication() = default;
|
||||
void
|
||||
LmsApplication::init()
|
||||
{
|
||||
setTheme(std::make_shared<Wt::WBootstrap5Theme>());
|
||||
setTheme(std::make_shared<LmsTheme>());
|
||||
|
||||
useStyleSheet("resources/font-awesome/css/font-awesome.min.css");
|
||||
useStyleSheet("css/lms.css");
|
||||
require("js/mediaplayer.js");
|
||||
|
||||
setTitle("LMS");
|
||||
|
||||
+10
-60
@@ -22,68 +22,18 @@
|
||||
#include "utils/Logger.hpp"
|
||||
#include "LmsApplication.hpp"
|
||||
|
||||
namespace UserInterface {
|
||||
|
||||
LmsTheme::LmsTheme(Database::UITheme theme)
|
||||
: _theme {theme}
|
||||
namespace UserInterface
|
||||
{
|
||||
}
|
||||
|
||||
void
|
||||
LmsTheme::setTheme(Database::UITheme )
|
||||
{
|
||||
|
||||
/* if (theme == _theme)
|
||||
return;
|
||||
|
||||
// Hack, use the application interface directly since changing theme is not allowed
|
||||
const auto currentStyleSheets {getStyleSheets(_theme)};
|
||||
for (auto it {std::crbegin(currentStyleSheets)}; it != std::crend(currentStyleSheets); ++it)
|
||||
LmsApp->removeStyleSheet(*it);
|
||||
|
||||
_theme = theme;
|
||||
for (const auto& styleSheet : getStyleSheets(theme))
|
||||
LmsApp->useStyleSheet(styleSheet);
|
||||
*/
|
||||
}
|
||||
/*
|
||||
std::vector<Wt::WLinkedCssStyleSheet>
|
||||
LmsTheme::styleSheets() const
|
||||
{
|
||||
/ const std::vector<Wt::WLink> styleSheets {getStyleSheets(_theme)};
|
||||
std::vector<Wt::WLinkedCssStyleSheet> res;
|
||||
res.reserve(styleSheets.size());
|
||||
|
||||
std::transform(std::cbegin(styleSheets), std::cend(styleSheets), std::back_inserter(res), [](const Wt::WLink& styleSheet) { return Wt::WLinkedCssStyleSheet {styleSheet}; });
|
||||
return res;
|
||||
}
|
||||
|
||||
std::vector<Wt::WLink>
|
||||
LmsTheme::getStyleSheets(Database::UITheme )
|
||||
{
|
||||
switch (theme)
|
||||
std::vector<Wt::WLinkedCssStyleSheet>
|
||||
LmsTheme::styleSheets() const
|
||||
{
|
||||
case Database::UITheme::Dark:
|
||||
return
|
||||
{
|
||||
{"css/fonts.css"},
|
||||
{"css/bootstrap-darkly.min.css"},
|
||||
{"resources/themes/bootstrap/3/wt.css"},
|
||||
{"css/lms.css"},
|
||||
{"css/lms-darkly.css"},
|
||||
};
|
||||
static const std::vector<Wt::WLinkedCssStyleSheet> files
|
||||
{
|
||||
{"css/bootstrap.solar.min.css"},
|
||||
{"resources/themes/bootstrap/5/wt.min.css"},
|
||||
{"css/lms.css"},
|
||||
};
|
||||
|
||||
case Database::UITheme::Light:
|
||||
return
|
||||
{
|
||||
{"css/fonts.css"},
|
||||
{"css/bootstrap-flatly.min.css"},
|
||||
{"resources/themes/bootstrap/3/wt.css"},
|
||||
{"css/lms.css"},
|
||||
{"css/lms-flatly.css"},
|
||||
};
|
||||
return files;
|
||||
}
|
||||
return {};
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
+2
-11
@@ -24,21 +24,12 @@
|
||||
#include <Wt/WBootstrap5Theme.h>
|
||||
#include <Wt/WLinkedCssStyleSheet.h>
|
||||
|
||||
#include "services/database/Types.hpp"
|
||||
|
||||
namespace UserInterface
|
||||
{
|
||||
class LmsTheme : public Wt::WBootstrap5Theme
|
||||
{
|
||||
public:
|
||||
LmsTheme(Database::UITheme theme);
|
||||
|
||||
void setTheme(Database::UITheme theme);
|
||||
|
||||
private:
|
||||
// std::vector<Wt::WLinkedCssStyleSheet> styleSheets() const override;
|
||||
// static std::vector<Wt::WLink> getStyleSheets(Database::UITheme theme);
|
||||
|
||||
Database::UITheme _theme;
|
||||
std::vector<Wt::WLinkedCssStyleSheet> styleSheets() const override;
|
||||
static std::vector<Wt::WLink> getStyleSheets();
|
||||
};
|
||||
}
|
||||
|
||||
@@ -42,7 +42,6 @@
|
||||
#include "utils/Service.hpp"
|
||||
|
||||
#include "LmsApplication.hpp"
|
||||
#include "LmsTheme.hpp"
|
||||
#include "MediaPlayer.hpp"
|
||||
|
||||
namespace UserInterface {
|
||||
@@ -53,7 +52,6 @@ class SettingsModel : public Wt::WFormModel
|
||||
{
|
||||
public:
|
||||
// Associate each field with a unique string literal.
|
||||
static inline const Field DarkModeField {"dark-mode"};
|
||||
static inline const Field TranscodeModeField {"transcode-mode"};
|
||||
static inline const Field TranscodeFormatField {"transcode-format"};
|
||||
static inline const Field TranscodeBitrateField {"transcode-bitrate"};
|
||||
@@ -80,7 +78,6 @@ class SettingsModel : public Wt::WFormModel
|
||||
{
|
||||
initializeModels();
|
||||
|
||||
addField(DarkModeField);
|
||||
addField(TranscodeModeField);
|
||||
addField(TranscodeBitrateField);
|
||||
addField(TranscodeFormatField);
|
||||
@@ -139,14 +136,6 @@ class SettingsModel : public Wt::WFormModel
|
||||
|
||||
User::pointer user {LmsApp->getUser()};
|
||||
|
||||
{
|
||||
const UITheme newTheme {Wt::asNumber(value(DarkModeField)) ? UITheme::Dark : UITheme::Light};
|
||||
LmsTheme* lmsTheme {static_cast<LmsTheme*>(LmsApp->theme().get())};
|
||||
lmsTheme->setTheme(newTheme);
|
||||
|
||||
user.modify()->setUITheme(newTheme);
|
||||
}
|
||||
|
||||
{
|
||||
MediaPlayer::Settings settings;
|
||||
|
||||
@@ -209,8 +198,6 @@ class SettingsModel : public Wt::WFormModel
|
||||
|
||||
User::pointer user {LmsApp->getUser()};
|
||||
|
||||
setValue(DarkModeField, user->getUITheme() == UITheme::Dark);
|
||||
|
||||
{
|
||||
const auto settings {*LmsApp->getMediaPlayer().getSettings()};
|
||||
|
||||
@@ -408,12 +395,6 @@ SettingsView::refreshView()
|
||||
|
||||
auto model {std::make_shared<SettingsModel>(authPasswordService, !LmsApp->isUserAuthStrong())};
|
||||
|
||||
// Appearance
|
||||
{
|
||||
auto darkMode {std::make_unique<Wt::WCheckBox>()};
|
||||
t->setFormWidget(SettingsModel::DarkModeField, std::move(darkMode));
|
||||
}
|
||||
|
||||
if (authPasswordService)
|
||||
{
|
||||
t->setCondition("if-has-change-password", true);
|
||||
|
||||
Reference in New Issue
Block a user