From c30604dcc42e055969c08cfb48c45bba5674c2c5 Mon Sep 17 00:00:00 2001 From: emeric Date: Mon, 24 Sep 2018 13:42:42 +0200 Subject: [PATCH 1/7] Make the copyright link less invasive --- approot/release.xml | 4 ++++ docroot/css/lms.css | 6 +++--- src/ui/explore/ReleaseView.cpp | 4 ++-- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/approot/release.xml b/approot/release.xml index ea9191ec..0824a57b 100644 --- a/approot/release.xml +++ b/approot/release.xml @@ -2,6 +2,10 @@ + + + +
diff --git a/docroot/css/lms.css b/docroot/css/lms.css index 7bf20079..0485a49b 100644 --- a/docroot/css/lms.css +++ b/docroot/css/lms.css @@ -158,7 +158,7 @@ a:hover { } .Lms-explore-release-entry-controls { - text-align: center; + text-align: right; } .Lms-explore-release-entry-playing { @@ -202,7 +202,7 @@ a:hover { } .Lms-explore-tracks-entry-controls { - text-align: center; + text-align: right; } .Lms-explore-tracksinfo-entry { @@ -235,7 +235,7 @@ a:hover { } .Lms-playqueue-entry-controls { - text-align: center; + text-align: right; } .Lms-playqueue-btn { diff --git a/src/ui/explore/ReleaseView.cpp b/src/ui/explore/ReleaseView.cpp index f03ff4a0..e1c0e139 100644 --- a/src/ui/explore/ReleaseView.cpp +++ b/src/ui/explore/ReleaseView.cpp @@ -106,8 +106,8 @@ Release::refresh() Wt::WLink link(*copyrightURL); link.setTarget(Wt::LinkTarget::NewWindow); Wt::WAnchor* anchor = t->bindNew("copyright-url", link); - anchor->setTextFormat(Wt::TextFormat::Plain); - anchor->setText(Wt::WString::fromUTF8(*copyrightURL)); + anchor->setTextFormat(Wt::TextFormat::XHTML); + anchor->setText(Wt::WString::tr("Lms.Explore.Release.template.link-btn")); } if (copyright) From ed7b461c812f6da7bef7804dc7ea04bb605d3870 Mon Sep 17 00:00:00 2001 From: emeric Date: Wed, 26 Sep 2018 13:42:42 +0200 Subject: [PATCH 2/7] Prevent the user to zoom on mobile devices --- src/ui/LmsApplication.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/ui/LmsApplication.cpp b/src/ui/LmsApplication.cpp index 9d49104d..2116765e 100644 --- a/src/ui/LmsApplication.cpp +++ b/src/ui/LmsApplication.cpp @@ -85,6 +85,8 @@ LmsApplication::LmsApplication(const Wt::WEnvironment& env, Wt::Dbo::SqlConnecti bootstrapTheme->setResponsive(true); setTheme(std::move(bootstrapTheme)); + addMetaHeader(Wt::MetaHeaderType::Meta, "viewport", "width=device-width, user-scalable=no"); + useStyleSheet("css/lms.css"); useStyleSheet("resources/font-awesome/css/font-awesome.min.css"); From 995be9470d0982bacad0715b7560414283a9c5f0 Mon Sep 17 00:00:00 2001 From: emeric Date: Wed, 26 Sep 2018 22:44:52 +0200 Subject: [PATCH 3/7] Fixed bad cluster scan on track update --- src/database/Track.hpp | 1 + src/scanner/MediaScanner.cpp | 3 +-- tools/metadata/LmsMetadata.cpp | 2 ++ 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/database/Track.hpp b/src/database/Track.hpp index e16b54d3..18c96618 100644 --- a/src/database/Track.hpp +++ b/src/database/Track.hpp @@ -95,6 +95,7 @@ class Track : public Wt::Dbo::Dbo void setCopyrightURL(const std::string& copyrightURL) { _copyrightURL = std::string(copyrightURL, 0, _maxCopyrightURLLength); } void setArtist(Wt::Dbo::ptr artist) { _artist = artist; } void setRelease(Wt::Dbo::ptr release) { _release = release; } + void eraseClusters() { _clusters.clear(); } std::size_t getScanVersion() const { return _scanVersion; } boost::optional getTrackNumber() const; diff --git a/src/scanner/MediaScanner.cpp b/src/scanner/MediaScanner.cpp index 28d54b7f..a6b0ec59 100644 --- a/src/scanner/MediaScanner.cpp +++ b/src/scanner/MediaScanner.cpp @@ -504,8 +504,7 @@ MediaScanner::scanAudioFile(const boost::filesystem::path& file, bool forceScan, LMS_LOG(DBUPDATER, INFO) << "Updating '" << file.string() << "'"; // Remove the songs from its clusters - for (auto cluster : track->getClusters()) - cluster.remove(); + track.modify()->eraseClusters(); stats.updates++; } diff --git a/tools/metadata/LmsMetadata.cpp b/tools/metadata/LmsMetadata.cpp index 6afd04ba..b67f8fdf 100644 --- a/tools/metadata/LmsMetadata.cpp +++ b/tools/metadata/LmsMetadata.cpp @@ -20,6 +20,8 @@ int main(int argc, char *argv[]) { MetaData::TagLibParser parser; + parser.setClusterTypeNames( {"MOOD", "GENRE"} ); + boost::optional items = parser.parse(argv[1], true); if (!items) { From 1a6b218c777eb24634e76280185e42f39b89d306 Mon Sep 17 00:00:00 2001 From: emeric Date: Fri, 28 Sep 2018 13:42:02 +0200 Subject: [PATCH 4/7] Add last login attempt field --- approot/admin-user.xml | 10 ++++++++++ approot/messages.xml | 1 + src/ui/admin/UserView.cpp | 5 +++++ 3 files changed, 16 insertions(+) diff --git a/approot/admin-user.xml b/approot/admin-user.xml index b74f00b4..754f7ab5 100644 --- a/approot/admin-user.xml +++ b/approot/admin-user.xml @@ -6,6 +6,16 @@

${title}

+ ${} +
+ +
+ ${last-login-attempt} +
+
+ ${
} ${}
diff --git a/approot/messages.xml b/approot/messages.xml index e661f2e9..3d056f79 100644 --- a/approot/messages.xml +++ b/approot/messages.xml @@ -85,7 +85,7 @@ Recently added -Top releases +Top albums Recently added @@ -119,4 +119,9 @@ WEBMA New settings saved! + + + + + diff --git a/approot/messages_fr.xml b/approot/messages_fr.xml new file mode 100644 index 00000000..0a2690f8 --- /dev/null +++ b/approot/messages_fr.xml @@ -0,0 +1,132 @@ + + + + +Ajouter +Appliquer +Annuler +Administration +Annuler +Créer +Login +Logout +N'est pas un répertoire +Mot de passe +Confirmation du mot de passe +Les mots de passe ne correspondent pas +Êtes-vous sûr ? +Une autre session a été ouverte. Reouvrir celle-ci ? +Sauvegarder + + +Tous les jours +Base de données +Scanner maintenant ! +Tous les mois +Jamais +Dossier racine des fichiers de musique +Scan terminé : {1} fichiers, {2} ajouts, {3} mises à jour, {4} suppressions, {5} duplicatas, {6} erreurs +Scan lancé ! +Options +Nouveaux paramètres sauvegardés ! +Tags +Périodicité des mises à jour +Heure de départ de la mise à jour +Toutes les semaines + + +Ajouter +Admin +Supprimer +Supprimer l'utilisateur +Supprimer l'utilisateur ? +Demo +Editer +Utilisateurs + + +Limite du bitrate +Compte de démonstration +Le compte de démonstration existe déjà ! +Le password doit être égal au login ! +Dernière tentative de login +L'utilisateur existe déjà ! +Nouvel utilisateur +Nouvel utilisateur créé ! +Utilisateur {1} +L'utilisateur a été mis à jour ! + + +Le compte d'administration a été créé. Rafraichissez la page pour continuer ! +Creation du compte administrateur + + +Se souvenir de moi +Bienvenue ! + + +Ajouter filtre +Artistes +Filtres +Albums +Rechercher... +Montrer plus +Pistes +Type +Valeur +Artistes divers + + +Ajouts récents +Artistes populaires + + +Copyright + + +Ajouts récents +Albums populaires + + +Ajouts récents +Pistes populaires + + + +Effacer +{1} pistes +{1} pistes ajoutées +{1} pistes ajouées +Liste de lecture +Mode radio +Repéter +Mélanger + + +Historique de lecture + + + +Compte +Audio +Auto +Bitrate +Impossible de sauvegarder en utilisant un compte de démo ! +Encodage +MP3 +OGA +Paramètres +WEBMA +Paramètres sauvegardés ! + + +Oui +Non + + + +Invalide + +Mot de passe invalide + + diff --git a/src/database/DatabaseHandler.cpp b/src/database/DatabaseHandler.cpp index 1473d7d1..4645d464 100644 --- a/src/database/DatabaseHandler.cpp +++ b/src/database/DatabaseHandler.cpp @@ -54,6 +54,7 @@ Handler::configureAuth(void) { authService.setEmailVerificationEnabled(false); authService.setAuthTokensEnabled(true, "lmsauth"); + authService.setAuthTokenValidity(24 * 60 * 365); // A year authService.setIdentityPolicy(Wt::Auth::IdentityPolicy::LoginName); authService.setRandomTokenLength(32);