diff --git a/src/cpp/HTTPInterface/LoginPage.cpp b/src/cpp/HTTPInterface/LoginPage.cpp index 881dbe05a..e2e5fe1b3 100644 --- a/src/cpp/HTTPInterface/LoginPage.cpp +++ b/src/cpp/HTTPInterface/LoginPage.cpp @@ -38,6 +38,16 @@ void LoginPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net:: auto langCatalog = lm->getFreeCatalog(lang); if(!form.empty()) { + auto langBtn = form.get("lang", ""); + bool langUpdated = false; + if(langBtn != "") { + auto updatedLang = chooseLanguage(request, langBtn); + if(updatedLang != lang) { + lang = updatedLang; + langCatalog = lm->getFreeCatalog(lang); + langUpdated = true; + } + } auto email = form.get("login-email", ""); auto password = form.get("login-password", ""); @@ -81,7 +91,7 @@ void LoginPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net:: return; } - } else { + } else if(!langUpdated) { addError(new Error(langCatalog->gettext("Login"), langCatalog->gettext("Username and password are needed!"))); } @@ -134,7 +144,7 @@ void LoginPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net:: responseStream << "