update login style and final language choosing

This commit is contained in:
Dario 2019-11-18 11:56:09 +01:00
parent 8fe5b1cc09
commit e05aab2e67
7 changed files with 82 additions and 52 deletions

View File

@ -38,16 +38,22 @@ 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;
bool langUpdatedByBtn = false;
auto langBtn = form.get("lang-btn", "");
auto langInput = form.get("lang", "");
auto updatedLang = LANG_NULL;
if(langBtn != "") {
auto updatedLang = chooseLanguage(request, langBtn);
if(updatedLang != lang) {
lang = updatedLang;
langCatalog = lm->getFreeCatalog(lang);
langUpdated = true;
}
}
updatedLang = chooseLanguage(request, langBtn);
langUpdatedByBtn = true;
} else if(langInput != "") {
updatedLang = chooseLanguage(request, langInput);
}
if(updatedLang != LANG_NULL && updatedLang != lang) {
lang = updatedLang;
langCatalog = lm->getFreeCatalog(lang);
}
auto email = form.get("login-email", "");
auto password = form.get("login-password", "");
@ -67,6 +73,8 @@ void LoginPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net::
auto user_host = request.clientAddress().host();
session->setClientIp(user_host);
response.addCookie(session->getLoginCookie());
} else {
langCatalog = session->getLanguageCatalog();
}
auto userState = session->loadUser(email, password);
getErrors(session);
@ -91,13 +99,17 @@ void LoginPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net::
return;
}
} else if(!langUpdated) {
} else if(!langUpdatedByBtn) {
addError(new Error(langCatalog->gettext("Login"), langCatalog->gettext("Username and password are needed!")));
}
} else {
// on enter login page with empty form
// remove old cookies if exist
auto session = sm->getSession(request);
// remove old cookies and session if exist
if(session) {
sm->releaseSession(session);
}
sm->deleteLoginCookies(request, response);
}
@ -124,7 +136,7 @@ void LoginPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net::
responseStream << "<body>\n";
responseStream << "<div class=\"versionstring dev-info\">\n";
responseStream << "\t<p class=\"grd_small\">Login Server in Entwicklung</p>\n";
responseStream << "\t<p class=\"grd_small\">Alpha 0.6.1</p>\n";
responseStream << "\t<p class=\"grd_small\">Alpha 0.7.0</p>\n";
responseStream << "</div>\n";
responseStream << "<!--<nav class=\"grd-left-bar expanded\" data-topbar role=\"navigation\">\n";
responseStream << "\t<div class=\"grd-left-bar-section\">\n";
@ -144,7 +156,7 @@ void LoginPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net::
responseStream << " <div class=\"col-12 logo-section\">\n";
responseStream << " <a href=\"../../index.html\" class=\"logo\">\n";
responseStream << " <img src=\"";
#line 93 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
#line 105 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
responseStream << ( ServerConfig::g_php_serverPath );
responseStream << "img/logo_schrift.webp\" alt=\"logo\" />\n";
responseStream << " </a>\n";
@ -153,29 +165,31 @@ void LoginPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net::
responseStream << " <div class=\"row\">\n";
responseStream << " <div class=\"col-lg-5 col-md-7 col-sm-9 col-11 mx-auto\">\n";
responseStream << " <div class=\"grid\">\n";
responseStream << "\t\t ";
#line 100 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
responseStream << "\t\t\t<div class=\"center-ul-container\">\n";
responseStream << "\t\t\t\t";
#line 113 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
responseStream << ( getErrorsHtml() );
responseStream << "\n";
responseStream << "\t \n";
responseStream << "\t\t\t</div>\n";
responseStream << " <div class=\"grid-body\">\n";
responseStream << " <form action=\"";
#line 102 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
#line 116 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
responseStream << ( ServerConfig::g_serverPath );
responseStream << "/\" method=\"POST\">\n";
responseStream << "\t\t\t <input type=\"hidden\" name=\"lang\" value=\"";
#line 103 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
#line 117 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
responseStream << ( LanguageManager::keyForLanguage(lang) );
responseStream << "\">\n";
responseStream << " <div class=\"row pull-right-row\">\n";
responseStream << " <div class=\"equel-grid pull-right\">\n";
responseStream << " <div class=\"grid-body-small text-center\">\n";
responseStream << " <button id=\"flag-england\" name=\"lang\" value=\"en\" title=\"English\" type=\"submit\" ";
#line 107 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
responseStream << " <button id=\"flag-england\" name=\"lang-btn\" value=\"en\" title=\"English\" type=\"submit\" ";
#line 121 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
if(lang != LANG_EN) { responseStream << "class=\"btn btn-outline-secondary flag-btn\"";
#line 107 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
#line 121 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
}
else { responseStream << "class=\"btn btn-secondary disabled flag-btn\" disabled";
#line 108 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
#line 122 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
} responseStream << ">\n";
responseStream << " <span class=\"flag-england\"></span>\n";
responseStream << " </button>\n";
@ -183,13 +197,13 @@ void LoginPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net::
responseStream << " </div>\n";
responseStream << " <div class=\"equel-grid pull-right\">\n";
responseStream << " <div class=\"grid-body-small text-center\">\n";
responseStream << " <button id=\"flag-germany\" name=\"lang\" value=\"de\" title=\"Deutsch\" type=\"submit\" ";
#line 115 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
responseStream << " <button id=\"flag-germany\" name=\"lang-btn\" value=\"de\" title=\"Deutsch\" type=\"submit\" ";
#line 129 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
if(lang != LANG_DE) { responseStream << "class=\"btn btn-outline-secondary flag-btn\"";
#line 115 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
#line 129 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
}
else { responseStream << "class=\"btn btn-secondary disabled flag-btn\" disabled";
#line 116 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
#line 130 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
} responseStream << ">\n";
responseStream << " <span class=\"flag-germany\"></span>\n";
responseStream << " </button>\n";
@ -200,27 +214,27 @@ void LoginPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net::
responseStream << " <div class=\"col-lg-7 col-md-8 col-sm-9 col-12 mx-auto form-wrapper\">\n";
responseStream << " <div class=\"form-group input-rounded\">\n";
responseStream << " <input type=\"text\" class=\"form-control\" name=\"login-email\" placeholder=\"";
#line 125 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
#line 139 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
responseStream << ( langCatalog->gettext("E-Mail") );
responseStream << "\" />\n";
responseStream << " </div>\n";
responseStream << " <div class=\"form-group input-rounded\">\n";
responseStream << " <input type=\"password\" class=\"form-control\" name=\"login-password\" placeholder=\"";
#line 128 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
#line 142 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
responseStream << ( langCatalog->gettext("Password") );
responseStream << "\" />\n";
responseStream << " </div>\n";
responseStream << " <button type=\"submit\" name=\"submit\" class=\"btn btn-primary btn-block\">";
#line 130 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
#line 144 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
responseStream << ( langCatalog->gettext(" Login ") );
responseStream << "</button>\n";
responseStream << " <div class=\"signup-link\">\n";
responseStream << " <p>";
#line 132 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
#line 146 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
responseStream << ( langCatalog->gettext("You haven't any account yet? Please follow the link to create one.") );
responseStream << "</p>\n";
responseStream << " <a href=\"https://gradido.com\">";
#line 133 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
#line 147 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\login.cpsp"
responseStream << ( langCatalog->gettext("Create New Account") );
responseStream << "</a>\n";
responseStream << " </div>\n";
@ -232,7 +246,7 @@ void LoginPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net::
responseStream << " </div>\n";
responseStream << " </div>\n";
responseStream << " <div class=\"auth_footer\">\n";
responseStream << " <p class=\"text-muted text-center\"Ripple Inc 2019</p>\n";
responseStream << " <p class=\"text-muted text-center\"Gradido 2019</p>\n";
responseStream << " </div>\n";
responseStream << " </div>\n";
// begin include footer.cpsp

View File

@ -6,11 +6,11 @@
const Poco::RegularExpression PageRequestMessagedHandler::mDetectLanguageGET("^(?:/[a-zA-Z0-9_-]*)?/(en|de)");
Languages PageRequestMessagedHandler::chooseLanguage(Poco::Net::HTTPServerRequest& request, std::string post_lang /* = std::string("") */)
Languages PageRequestMessagedHandler::chooseLanguage(Poco::Net::HTTPServerRequest& request, std::string lang_btn /*= ""*/)
{
// from Form
Languages lang = LanguageManager::languageFromString(post_lang);
Languages lang = LanguageManager::languageFromString(lang_btn);
if (lang == LANG_NULL) {
// from URL
std::string uri = request.getURI();

View File

@ -8,6 +8,7 @@
#include "../SingletonManager/LanguageManager.h"
#include "Poco/Net/HTTPRequestHandler.h"
#include "Poco/Net/HTMLForm.h"
#include "Poco/RegularExpression.h"
class PageRequestMessagedHandler : public Poco::Net::HTTPRequestHandler, public ErrorList
@ -22,7 +23,7 @@ protected:
static const Poco::RegularExpression mDetectLanguageGET;
inline const char* gettext(Session* session, const char* text) { if (!session || !session->getLanguageCatalog()) return text; return session->getLanguageCatalog()->gettext(text); }
Languages chooseLanguage(Poco::Net::HTTPServerRequest& request, std::string post_lang = std::string(""));
Languages chooseLanguage(Poco::Net::HTTPServerRequest& request, std::string lang_btn = "");
Profiler mTimeProfiler;
};

View File

@ -122,6 +122,7 @@ std::string LanguageCatalog::npgettext_str(const std::string & msgctxt, const st
// ******************************************************
LanguageManager* LanguageManager::getInstance()
{
static LanguageManager only;
@ -188,7 +189,6 @@ Languages LanguageManager::languageFromString(const std::string& language_key)
return "";
}
Poco::AutoPtr<LanguageCatalog> LanguageManager::getFreeCatalog(Languages lang)
{

View File

@ -64,6 +64,7 @@ protected:
Languages mThisLanguage;
};
class LanguageManager : protected UniLib::lib::MultithreadContainer
{
friend class LanguageCatalog;

View File

@ -12,7 +12,7 @@
<body>
<div class="versionstring dev-info">
<p class="grd_small">Login Server in Entwicklung</p>
<p class="grd_small">Alpha 0.6.1</p>
<p class="grd_small">Alpha 0.7.0</p>
</div>
<!--<nav class="grd-left-bar expanded" data-topbar role="navigation">
<div class="grd-left-bar-section">

View File

@ -22,16 +22,22 @@
auto langCatalog = lm->getFreeCatalog(lang);
if(!form.empty()) {
auto langBtn = form.get("lang", "");
bool langUpdated = false;
bool langUpdatedByBtn = false;
auto langBtn = form.get("lang-btn", "");
auto langInput = form.get("lang", "");
auto updatedLang = LANG_NULL;
if(langBtn != "") {
auto updatedLang = chooseLanguage(request, langBtn);
if(updatedLang != lang) {
lang = updatedLang;
langCatalog = lm->getFreeCatalog(lang);
langUpdated = true;
}
}
updatedLang = chooseLanguage(request, langBtn);
langUpdatedByBtn = true;
} else if(langInput != "") {
updatedLang = chooseLanguage(request, langInput);
}
if(updatedLang != LANG_NULL && updatedLang != lang) {
lang = updatedLang;
langCatalog = lm->getFreeCatalog(lang);
}
auto email = form.get("login-email", "");
auto password = form.get("login-password", "");
@ -51,6 +57,8 @@
auto user_host = request.clientAddress().host();
session->setClientIp(user_host);
response.addCookie(session->getLoginCookie());
} else {
langCatalog = session->getLanguageCatalog();
}
auto userState = session->loadUser(email, password);
getErrors(session);
@ -75,13 +83,17 @@
return;
}
} else if(!langUpdated) {
} else if(!langUpdatedByBtn) {
addError(new Error(langCatalog->gettext("Login"), langCatalog->gettext("Username and password are needed!")));
}
} else {
// on enter login page with empty form
// remove old cookies if exist
auto session = sm->getSession(request);
// remove old cookies and session if exist
if(session) {
sm->releaseSession(session);
}
sm->deleteLoginCookies(request, response);
}
@ -97,14 +109,16 @@
<div class="row">
<div class="col-lg-5 col-md-7 col-sm-9 col-11 mx-auto">
<div class="grid">
<%= getErrorsHtml() %>
<div class="center-ul-container">
<%= getErrorsHtml() %>
</div>
<div class="grid-body">
<form action="<%= ServerConfig::g_serverPath %>/" method="POST">
<input type="hidden" name="lang" value="<%= LanguageManager::keyForLanguage(lang) %>">
<div class="row pull-right-row">
<div class="equel-grid pull-right">
<div class="grid-body-small text-center">
<button id="flag-england" name="lang" value="en" title="English" type="submit" <% if(lang != LANG_EN) { %>class="btn btn-outline-secondary flag-btn"<% }
<button id="flag-england" name="lang-btn" value="en" title="English" type="submit" <% if(lang != LANG_EN) { %>class="btn btn-outline-secondary flag-btn"<% }
else { %>class="btn btn-secondary disabled flag-btn" disabled<% } %>>
<span class="flag-england"></span>
</button>
@ -112,7 +126,7 @@
</div>
<div class="equel-grid pull-right">
<div class="grid-body-small text-center">
<button id="flag-germany" name="lang" value="de" title="Deutsch" type="submit" <% if(lang != LANG_DE) { %>class="btn btn-outline-secondary flag-btn"<% }
<button id="flag-germany" name="lang-btn" value="de" title="Deutsch" type="submit" <% if(lang != LANG_DE) { %>class="btn btn-outline-secondary flag-btn"<% }
else { %>class="btn btn-secondary disabled flag-btn" disabled<% } %>>
<span class="flag-germany"></span>
</button>
@ -140,7 +154,7 @@
</div>
</div>
<div class="auth_footer">
<p class="text-muted text-center">© Ripple Inc 2019</p>
<p class="text-muted text-center">© Gradido 2019</p>
</div>
</div>
<%@ include file="footer.cpsp" %>