Rework login and register views

This commit is contained in:
Dennis Reimann 2020-07-02 19:32:56 +02:00
parent 9b9cb83a06
commit ea8f121cb0
No known key found for this signature in database
GPG key ID: 5009E1797F03F8D0
3 changed files with 186 additions and 182 deletions

View file

@ -6,70 +6,73 @@
ViewData["Headline"] = "Welcome to your BTCPay Server";
Layout = "_LayoutSimple";
}
@if (TempData.HasStatusMessage())
{
<div class="row">
<div class="col-lg-12 text-center">
<partial name="_StatusMessage"/>
</div>
</div>
}
<p class="lead-login">
BTCPay Server is a self-hosted, open-source cryptocurrency payment processor. It is secure, private, censorship-resistant and free.
</p>
<style>
.col-head,
.col-account-form {
max-width: 40em;
}
</style>
<div class="modal-dialog modal-login">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title">Sign In</h4>
</div>
<div class="modal-body">
<form asp-route-returnurl="@ViewData["ReturnUrl"]" method="post">
<fieldset disabled="@(ViewData.ContainsKey("disabled") ? "disabled" : null)" >
<div asp-validation-summary="ModelOnly" class="text-danger"></div>
<div class="form-group">
<div class="input-group">
<div class="input-group-prepend">
<label for="Email" class="input-group-text"><span class="input-group-addon fa fa-user"></span></label>
</div>
<input asp-for="Email" class="form-control" placeholder="Email" required="required" />
</div>
<span asp-validation-for="Email" class="text-danger"></span>
</div>
<div class="form-group">
<div class="input-group">
<div class="input-group-prepend">
<label for="Password" class="input-group-text"><span class="input-group-addon fa fa-lock"></span></label>
</div>
<input asp-for="Password" class="form-control" placeholder="Password" required="required" />
</div>
<span asp-validation-for="Password" class="text-danger"></span>
</div>
<div class="form-group">
<button type="submit" class="btn btn-primary btn-block btn-lg" id="LoginButton">Sign in</button>
</div>
<p class="hint-text"><a asp-action="ForgotPassword">Forgot your password?</a></p>
</fieldset>
</form>
</div>
@if (themeManager.ShowRegister)
<div class="row justify-content-center">
<div class="col col-account-form">
@if (TempData.HasStatusMessage())
{
<div class="modal-footer"><span>Don't have an account?&nbsp;<a id="Register" asp-action="Register" asp-route-returnurl="@ViewData["ReturnUrl"]">Create one</a></span></div>
<partial name="_StatusMessage"/>
}
<p class="lead-login px-3">
BTCPay Server is a self-hosted, open-source cryptocurrency payment processor.
It is secure, private, censorship-resistant and free.
</p>
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title">Sign In</h4>
@if (env.OnionUrl != null)
{
<a href="@env.OnionUrl">
<img src="~/img/icons/Onion.svg" height="24" asp-append-version="true" />
</a>
}
</div>
<div class="modal-body">
<form asp-route-returnurl="@ViewData["ReturnUrl"]" method="post">
<fieldset disabled="@(ViewData.ContainsKey("disabled") ? "disabled" : null)" >
<div asp-validation-summary="ModelOnly" class="text-danger"></div>
<div class="form-group">
<div class="input-group">
<div class="input-group-prepend">
<label for="Email" class="input-group-text"><span class="input-group-addon fa fa-user"></span></label>
</div>
<input asp-for="Email" class="form-control" placeholder="Email" required="required" />
</div>
<span asp-validation-for="Email" class="text-danger"></span>
</div>
<div class="form-group">
<div class="input-group">
<div class="input-group-prepend">
<label for="Password" class="input-group-text"><span class="input-group-addon fa fa-lock"></span></label>
</div>
<input asp-for="Password" class="form-control" placeholder="Password" required="required" />
</div>
<span asp-validation-for="Password" class="text-danger"></span>
</div>
<div class="form-group">
<button type="submit" class="btn btn-primary btn-block btn-lg" id="LoginButton">Sign in</button>
</div>
<p class="hint-text"><a asp-action="ForgotPassword">Forgot your password?</a></p>
</fieldset>
</form>
</div>
@if (themeManager.ShowRegister)
{
<div class="modal-footer">
<div>Don't have an account?</div>
<a id="Register" class="btn btn-secondary ml-2" asp-action="Register" asp-route-returnurl="@ViewData["ReturnUrl"]">Sign Up</a>
</div>
}
</div>
</div>
</div>
@if (env.OnionUrl != null)
{
<div class="input-group form-group">
<div class="input-group-prepend">
<a href="@env.OnionUrl" class="input-group-text">
<span class="input-group-addon"></span>
<img src="~/img/icons/Onion_Color.svg" height="16" asp-append-version="true" />
</a>
</div>
<input class="form-control" onClick="this.select();" type="text" style="font-size:0.75em;" value="@env.OnionUrl" readonly>
</div>
}

View file

@ -3,93 +3,92 @@
@{
ViewData["Title"] = "Register";
ViewData["Headline"] = "Welcome to your BTCPay Server";
var useBasicLayout = ViewData["UseBasicLayout"] is true;
Layout = useBasicLayout ? "_Layout" : "_LayoutSimple";
Layout = "_LayoutSimple";
}
@if (TempData.HasStatusMessage())
{
<div class="row">
<div class="col-lg-12 text-center">
<style>
.col-head,
.col-account-form {
max-width: 40em;
}
</style>
<div class="row justify-content-center">
<div class="col col-account-form">
@if (TempData.HasStatusMessage())
{
<partial name="_StatusMessage"/>
</div>
</div>
}
}
<p class="lead-login">
BTCPay Server is a self-hosted, open-source cryptocurrency payment processor. It is secure, private, censorship-resistant and free.
</p>
<p class="lead-login px-3">
BTCPay Server is a self-hosted, open-source cryptocurrency payment processor.
It is secure, private, censorship-resistant and free.
</p>
<!-- We want to center the dialog box in case we are not using the Welcome layout -->
<div class="modal-dialog @(useBasicLayout ? "modal-dialog-centered" : "")">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title">Create account</h4>
</div>
<div class="modal-body">
<form asp-route-returnUrl="@ViewData["ReturnUrl"]" asp-route-logon="@ViewData["Logon"]" method="post">
<fieldset disabled="@(ViewData.ContainsKey("disabled") ? "disabled" : null)" >
<div asp-validation-summary="ModelOnly" class="text-danger"></div>
<div class="form-group">
<div class="input-group">
<div class="input-group-prepend">
<label for="Email" class="input-group-text">
<span class="input-group-addon fa fa-user"></span>
</label>
</div>
<input asp-for="Email" class="form-control" placeholder="Email" required="required"/>
</div>
<span asp-validation-for="Email" class="text-danger"></span>
</div>
<div class="form-group">
<div class="input-group">
<div class="input-group-prepend">
<label for="Password" class="input-group-text">
<span class="input-group-addon fa fa-lock"></span>
</label>
</div>
<input asp-for="Password" class="form-control" placeholder="Password" required="required"/>
</div>
<span asp-validation-for="Password" class="text-danger"></span>
</div>
<div class="form-group">
<div class="input-group">
<div class="input-group-prepend">
<label for="ConfirmPassword" class="input-group-text">
<span class="input-group-addon fa fa-lock"></span>
</label>
</div>
<input asp-for="ConfirmPassword" class="form-control" placeholder="Repeat password" required="required"/>
</div>
<span asp-validation-for="ConfirmPassword" class="text-danger"></span>
</div>
@if (ViewData["AllowIsAdmin"] is true)
{
<!-- We want to center the dialog box in case we are not using the Welcome layout -->
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title">Create account</h4>
@if (env.OnionUrl != null)
{
<a href="@env.OnionUrl">
<img src="~/img/icons/Onion.svg" height="24" asp-append-version="true" />
</a>
}
</div>
<div class="modal-body">
<form asp-route-returnUrl="@ViewData["ReturnUrl"]" asp-route-logon="true" method="post">
<fieldset disabled="@(ViewData.ContainsKey("disabled") ? "disabled" : null)" >
<div asp-validation-summary="ModelOnly" class="text-danger"></div>
<div class="form-group">
<label asp-for="IsAdmin"></label>
<input asp-for="IsAdmin" type="checkbox" class="form-check-inline"/>
<span asp-validation-for="IsAdmin" class="text-danger"></span>
<div class="input-group">
<div class="input-group-prepend">
<label for="Email" class="input-group-text">
<span class="input-group-addon fa fa-user"></span>
</label>
</div>
<input asp-for="Email" class="form-control" placeholder="Email" required="required"/>
</div>
<span asp-validation-for="Email" class="text-danger"></span>
</div>
}
<div class="form-group">
<button type="submit" class="btn btn-primary btn-block btn-lg" id="RegisterButton">Create account</button>
</div>
</fieldset>
</form>
</div>
<div class="form-group">
<div class="input-group">
<div class="input-group-prepend">
<label for="Password" class="input-group-text">
<span class="input-group-addon fa fa-lock"></span>
</label>
</div>
<input asp-for="Password" class="form-control" placeholder="Password" required="required"/>
</div>
<span asp-validation-for="Password" class="text-danger"></span>
</div>
<div class="form-group">
<div class="input-group">
<div class="input-group-prepend">
<label for="ConfirmPassword" class="input-group-text">
<span class="input-group-addon fa fa-lock"></span>
</label>
</div>
<input asp-for="ConfirmPassword" class="form-control" placeholder="Repeat password" required="required"/>
</div>
<span asp-validation-for="ConfirmPassword" class="text-danger"></span>
</div>
@if (ViewData["AllowIsAdmin"] is true)
{
<div class="form-group">
<label asp-for="IsAdmin"></label>
<input asp-for="IsAdmin" type="checkbox" class="form-check-inline"/>
<span asp-validation-for="IsAdmin" class="text-danger"></span>
</div>
}
<div class="form-group">
<button type="submit" class="btn btn-primary btn-block btn-lg" id="RegisterButton">Create account</button>
</div>
</fieldset>
</form>
</div>
<div class="modal-footer"><span>Already have an account? <a id="Login" asp-action="Login" asp-route-returnurl="@ViewData["ReturnUrl"]">Login</a></span></div>
</div>
</div>
</div>
@if (!useBasicLayout && env.OnionUrl != null)
{
<div class="input-group form-group">
<div class="input-group-prepend">
<a href="@env.OnionUrl" class="input-group-text">
<span class="input-group-addon"></span>
<img src="~/img/icons/Onion_Color.svg" height="16" asp-append-version="true" />
</a>
</div>
<input class="form-control" onClick="this.select();" type="text" style="font-size:0.75em;" value="@env.OnionUrl" readonly>
</div>
}

View file

@ -9,13 +9,7 @@
<link href="~/main/fonts/Montserrat.css" rel="stylesheet" asp-append-version="true">
<style>
.content-wrapper {
padding: 70px 0;
}
@@media screen and (min-width: 768px) {
.content-wrapper {
padding: 100px 0;
}
padding: 50px 0;
}
.col-head {
@ -24,13 +18,7 @@
flex-direction: column;
justify-content: center;
text-align: center;
}
@@media screen and (min-width: 768px) {
.col-head {
text-align: left;
flex-direction: row;
}
padding: 0 2rem;
}
.head-logo {
@ -38,62 +26,76 @@
margin-bottom: 1rem;
}
@@media screen and (min-width: 768px) {
.head-logo {
height: 100px;
margin-bottom: 0;
margin-right: 50px;
}
}
.lead-title {
font-family: Montserrat;
font-style: normal;
font-weight: bold;
font-size: 24px;
line-height: 1.2;
/* or 150% */
letter-spacing: 0.1em;
}
@@media screen and (min-width: 768px) {
.lead-title {
font-size: 40px;
}
max-width: 17em;
letter-spacing: .1em;
}
.lead-login {
font-family: Montserrat;
font-style: normal;
font-weight: normal;
font-size: 18px;
line-height: 33px;
/* or 183% */
font-size: 16px;
line-height: 1.8;
letter-spacing: 0.1em;
}
@@media screen and (min-width: 768px) {
.content-wrapper {
padding: 100px 0;
}
.col-head {
text-align: left;
flex-direction: row;
}
.lead-title {
font-size: 34px;
}
.lead-login {
font-size: 18px;
}
.head-logo {
height: 80px;
margin: 0 30px 0 0;
}
}
</style>
</head>
<body>
<section class="content-wrapper">
<!-- Dummy navbar-brand, hackish way to keep test AssertNoError passing -->
<div class="navbar-brand" style="display:none;"></div>
<div class="navbar-brand d-none"></div>
<div class="container">
<div class="row">
<div class="col-12 col-head">
<a asp-controller="Home" asp-action="Index"><img src="~/img/btcpay-logo.svg" alt="BTCPay Server" class="head-logo" asp-append-version="true" /></a>
<h1 class="lead-title text-uppercase">@ViewData["Headline"]</h1>
<div class="row justify-content-center">
<div class="col col-head">
<a asp-controller="Home" asp-action="Index">
<img src="~/img/btcpay-logo.svg" alt="BTCPay Server" class="head-logo" asp-append-version="true"/>
</a>
<h1 class="lead-title text-uppercase m-0">@ViewData["Headline"]</h1>
</div>
</div>
<hr class="primary" style="display:block;margin:20px auto;" />
<hr class="primary my-4 d-block" />
@RenderBody()
<hr class="primary" style="display:block;margin:20px auto;" />
<hr class="primary my-5 d-block" />
<partial name="_BTCPaySupporters"/>
<div class="row justify-content-center">
<div class="col">
<partial name="_BTCPaySupporters"/>
</div>
</div>
</div>
</section>
@await Html.PartialAsync("_ValidationScriptsPartial")