Style client facing auth screens

This commit is contained in:
Joshua Dwire 2017-02-15 22:00:13 -05:00
parent 4adc3a798a
commit 7ce06a28e9
13 changed files with 171 additions and 408 deletions

View File

@ -28,7 +28,9 @@ class AuthController extends Controller
*/ */
public function showLoginForm() public function showLoginForm()
{ {
$data = []; $data = [
'clientauth' => true,
];
$contactKey = session('contact_key'); $contactKey = session('contact_key');
if ($contactKey) { if ($contactKey) {
@ -86,6 +88,6 @@ class AuthController extends Controller
*/ */
public function getSessionExpired() public function getSessionExpired()
{ {
return view('clientauth.sessionexpired'); return view('clientauth.sessionexpired')->with(['clientauth' => true]);
} }
} }

View File

@ -48,7 +48,9 @@ class PasswordController extends Controller
*/ */
public function showLinkRequestForm() public function showLinkRequestForm()
{ {
$data = []; $data = [
'clientauth' => true,
];
$contactKey = session('contact_key'); $contactKey = session('contact_key');
if ($contactKey) { if ($contactKey) {
$contact = Contact::where('contact_key', '=', $contactKey)->first(); $contact = Contact::where('contact_key', '=', $contactKey)->first();
@ -115,7 +117,11 @@ class PasswordController extends Controller
return $this->getEmail(); return $this->getEmail();
} }
$data = compact('token'); $data = array(
'token' => $token,
'clientauth' => true,
);
if ($key) { if ($key) {
$contact = Contact::where('contact_key', '=', $key)->first(); $contact = Contact::where('contact_key', '=', $key)->first();
if ($contact && ! $contact->is_deleted) { if ($contact && ! $contact->is_deleted) {

View File

@ -59,9 +59,6 @@ class ClientPortalController extends BaseController
if (! $account->checkSubdomain(Request::server('HTTP_HOST'))) { if (! $account->checkSubdomain(Request::server('HTTP_HOST'))) {
return response()->view('error', [ return response()->view('error', [
'error' => trans('texts.invoice_not_found'), 'error' => trans('texts.invoice_not_found'),
'hideHeader' => true,
'clientViewCSS' => $account->clientViewCSS(),
'clientFontUrl' => $account->getFontsUrl(),
]); ]);
} }

View File

@ -11,6 +11,10 @@ hr.green {
border: 0; border: 0;
} }
.alert li{
list-style: none;
}
/****** HEADER ********************************************************************/ /****** HEADER ********************************************************************/
.row.header { .row.header {
@ -316,8 +320,6 @@ fieldset[disabled] .btn-primary.active {
.form-signin .form-control { .form-signin .form-control {
padding: 15px; padding: 15px;
border: 1px solid #e8e8e8;
} }
.form-control {
border: 1px solid #e8e8
/*# sourceMappingURL=built.login.css.map */ /*# sourceMappingURL=built.login.css.map */

File diff suppressed because one or more lines are too long

View File

@ -11,6 +11,10 @@ hr.green {
border: 0; border: 0;
} }
.alert li{
list-style: none;
}
/****** HEADER ********************************************************************/ /****** HEADER ********************************************************************/
.row.header { .row.header {
@ -316,7 +320,5 @@ fieldset[disabled] .btn-primary.active {
.form-signin .form-control { .form-signin .form-control {
padding: 15px; padding: 15px;
} border: 1px solid #e8e8e8;
}
.form-control {
border: 1px solid #e8e8

View File

@ -2365,6 +2365,7 @@ $LANG = array(
'sign_up_now' => 'Sign Up Now', 'sign_up_now' => 'Sign Up Now',
'not_a_member_yet' => 'Not a member yet?', 'not_a_member_yet' => 'Not a member yet?',
'login_create_an_account' => 'Create an Account!', 'login_create_an_account' => 'Create an Account!',
'client_login' => 'Client Login',
); );
return $LANG; return $LANG;

View File

@ -22,7 +22,7 @@
</div> </div>
@endif @endif
<!-- if there are login errors, show them here --> <!-- if there are login errors, show them here -->
@if (Session::has('warning')) @if (Session::has('warning'))
<div class="alert alert-warning">{{ Session::get('warning') }}</div> <div class="alert alert-warning">{{ Session::get('warning') }}</div>
@endif @endif

View File

@ -1,120 +1,67 @@
@extends('public.header') @extends('login')
@section('head') @section('form')
@parent
<style type="text/css">
body {
padding-top: 40px;
padding-bottom: 40px;
}
.modal-header {
border-top-left-radius: 3px;
border-top-right-radius: 3px;
background:#222;
color:#fff
}
.modal-header h4 {
margin:0;
}
.modal-header img {
float: left;
margin-right: 20px;
}
.form-signin {
max-width: 400px;
margin: 0 auto;
background: #fff;
}
p.link a {
font-size: 11px;
}
.form-signin .inner {
padding: 20px;
border-bottom-right-radius: 3px;
border-bottom-left-radius: 3px;
border-left: 1px solid #ddd;
border-right: 1px solid #ddd;
border-bottom: 1px solid #ddd;
}
.form-signin .checkbox {
font-weight: normal;
}
.form-signin .form-control {
margin-bottom: 17px !important;
}
.form-signin .form-control:focus {
z-index: 2;
}
.modal-header a:link,
.modal-header a:visited,
.modal-header a:hover,
.modal-header a:active {
text-decoration: none;
color: white;
}
</style>
@endsection
@section('body')
<div class="container">
@include('partials.warn_session', ['redirectTo' => '/client/sessionexpired']) @include('partials.warn_session', ['redirectTo' => '/client/sessionexpired'])
{!! Former::open('client/login') <div class="container">
{!! Former::open('client/login')
->rules(['password' => 'required']) ->rules(['password' => 'required'])
->addClass('form-signin') !!} ->addClass('form-signin') !!}
{{ Former::populateField('remember', 'true') }}
<div class="modal-header"> <h2 class="form-signin-heading">{{ trans('texts.client_login') }}</h2>
@if (!isset($account) || !$account->hasFeature(FEATURE_WHITE_LABEL)) <hr class="green">
<a href="{{ NINJA_WEB_URL }}" target="_blank">
<img src="{{ asset('images/icon-login.png') }}" />
<h4>Invoice Ninja | {{ trans('texts.account_login') }}</h4> @if (count($errors->all()))
</a> <div class="alert alert-danger">
@else @foreach ($errors->all() as $error)
<h4>{{ trans('texts.account_login') }}</h4> <li>{{ $error }}</li>
@endforeach
</div>
@endif @endif
</div>
<div class="inner">
<p>
{!! Former::password('password')->placeholder(trans('texts.password'))->raw() !!}
{!! Former::hidden('remember')->raw() !!}
</p>
<p>{!! Button::success(trans('texts.login')) @if (Session::has('warning'))
->withAttributes(['id' => 'loginButton'])
->large()->submit()->block() !!}</p>
<p class="link">
{!! link_to('/client/recover_password', trans('texts.recover_password')) !!}
</p>
@if (count($errors->all()))
<div class="alert alert-danger">
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</div>
@endif
@if (Session::has('warning'))
<div class="alert alert-warning">{{ Session::get('warning') }}</div> <div class="alert alert-warning">{{ Session::get('warning') }}</div>
@endif @endif
@if (Session::has('message')) @if (Session::has('message'))
<div class="alert alert-info">{{ Session::get('message') }}</div> <div class="alert alert-info">{{ Session::get('message') }}</div>
@endif @endif
@if (Session::has('error')) @if (Session::has('error'))
<div class="alert alert-danger"><li>{{ Session::get('error') }}</li></div> <div class="alert alert-danger"><li>{{ Session::get('error') }}</li></div>
@endif @endif
{{ Former::populateField('remember', 'true') }}
<div>
{!! Former::password('password')->placeholder(trans('texts.password'))->raw() !!}
</div> </div>
{!! Former::hidden('remember')->raw() !!}
{!! Button::success(trans('texts.login'))
->withAttributes(['id' => 'loginButton', 'class' => 'green'])
->large()->submit()->block() !!}
<div class="row meta">
<div class="col-md-7 col-sm-12">
{!! link_to('/client/recover_password', trans('texts.recover_password')) !!}
</div>
</div>
{!! Former::close() !!} {!! Former::close() !!}
</div> </div>
@endsection
<script type="text/javascript">
$(function() {
if ($('#email').val()) {
$('#password').focus();
} else {
$('#email').focus();
}
})
</script>
@endsection

View File

@ -1,116 +1,44 @@
@extends('public.header') @extends('login')
@section('head') @section('form')
@parent @include('partials.warn_session', ['redirectTo' => '/client/sessionexpired'])
<style type="text/css"> <div class="container">
body { {!! Former::open('client/recover_password')->addClass('form-signin') !!}
padding-top: 40px;
padding-bottom: 40px;
}
.modal-header {
border-top-left-radius: 3px;
border-top-right-radius: 3px;
background:#222;
color:#fff
}
.modal-header h4 {
margin:0;
}
.modal-header img {
float: left;
margin-right: 20px;
}
.form-signin {
max-width: 400px;
margin: 0 auto;
background: #fff;
}
p.link a {
font-size: 11px;
}
.form-signin .inner {
padding: 20px;
border-bottom-right-radius: 3px;
border-bottom-left-radius: 3px;
border-left: 1px solid #ddd;
border-right: 1px solid #ddd;
border-bottom: 1px solid #ddd;
}
.form-signin .checkbox {
font-weight: normal;
}
.form-signin .form-control {
margin-bottom: 17px !important;
}
.form-signin .form-control:focus {
z-index: 2;
}
.modal-header a:link, <h2 class="form-signin-heading">{{ trans('texts.password_recovery') }}</h2>
.modal-header a:visited, <hr class="green">
.modal-header a:hover,
.modal-header a:active {
text-decoration: none;
color: white;
}
</style>
@stop @if (count($errors->all()))
<div class="alert alert-danger">
@section('body') @foreach ($errors->all() as $error)
<div class="container"> <li>{{ $error }}</li>
@endforeach
{!! Former::open('client/recover_password')->addClass('form-signin') !!} </div>
<div class="modal-header">
@if (!isset($account) || !$account->hasFeature(FEATURE_WHITE_LABEL))
<a href="{{ NINJA_WEB_URL }}" target="_blank">
<img src="{{ asset('images/icon-login.png') }}" />
<h4>Invoice Ninja | {{ trans('texts.password_recovery') }}</h4>
</a>
@else
<h4>{{ trans('texts.password_recovery') }}</h4>
@endif @endif
@if (session('status'))
<div class="alert alert-info">
{{ session('status') }}
</div>
@endif
<!-- if there are login errors, show them here -->
@if (Session::has('warning'))
<div class="alert alert-warning">{{ Session::get('warning') }}</div>
@endif
@if (Session::has('message'))
<div class="alert alert-info">{{ Session::get('message') }}</div>
@endif
@if (Session::has('error'))
<div class="alert alert-danger">{{ Session::get('error') }}</div>
@endif
{!! Button::success(trans('texts.send_email'))
->withAttributes(['class' => 'green'])
->large()->submit()->block() !!}
{!! Former::close() !!}
</div> </div>
<div class="inner"> @endsection
<p>{!! Button::success(trans('texts.send_email'))->large()->submit()->block() !!}</p>
@if (count($errors->all()))
<div class="alert alert-danger">
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</div>
@endif
@if (session('status'))
<div class="alert alert-info">
{{ session('status') }}
</div>
@endif
<!-- if there are login errors, show them here -->
@if (Session::has('warning'))
<div class="alert alert-warning">{{ Session::get('warning') }}</div>
@endif
@if (Session::has('message'))
<div class="alert alert-info">{{ Session::get('message') }}</div>
@endif
@if (Session::has('error'))
<div class="alert alert-danger">{{ Session::get('error') }}</div>
@endif
{!! Former::close() !!}
</div>
</div>
<script type="text/javascript">
$(function() {
$('#email').focus();
})
</script>
@stop

View File

@ -1,119 +1,52 @@
@extends('public.header') @extends('login')
@section('head') @section('form')
@parent <div class="container">
<style type="text/css">
body {
padding-top: 40px;
padding-bottom: 40px;
}
.modal-header {
border-top-left-radius: 3px;
border-top-right-radius: 3px;
background:#222;
color:#fff
}
.modal-header h4 {
margin:0;
}
.modal-header img {
float: left;
margin-right: 20px;
}
.form-signin {
max-width: 400px;
margin: 0 auto;
background: #fff;
}
p.link a {
font-size: 11px;
}
.form-signin .inner {
padding: 20px;
border-bottom-right-radius: 3px;
border-bottom-left-radius: 3px;
border-left: 1px solid #ddd;
border-right: 1px solid #ddd;
border-bottom: 1px solid #ddd;
}
.form-signin .checkbox {
font-weight: normal;
}
.form-signin .form-control {
margin-bottom: 17px !important;
}
.form-signin .form-control:focus {
z-index: 2;
}
.modal-header a:link, {!! Former::open('/client/password/reset')->addClass('form-signin')->rules(array(
.modal-header a:visited, 'password' => 'required',
.modal-header a:hover, 'password_confirmation' => 'required',
.modal-header a:active { )) !!}
text-decoration: none;
color: white;
}
</style>
@stop <h2 class="form-signin-heading">{{ trans('texts.set_password') }}</h2>
<hr class="green">
@section('body') @if (count($errors->all()))
<div class="container"> <div class="alert alert-danger">
@foreach ($errors->all() as $error)
{!! Former::open('/client/password/reset')->addClass('form-signin')->rules(array( <li>{{ $error }}</li>
'password' => 'required', @endforeach
'password_confirmation' => 'required', </div>
)) !!}
<div class="modal-header">
@if (!isset($account) || !$account->hasFeature(FEATURE_WHITE_LABEL))
<a href="{{ NINJA_WEB_URL }}" target="_blank">
<img src="{{ asset('images/icon-login.png') }}" />
<h4>Invoice Ninja | {{ trans('texts.set_password') }}</h4>
</a>
@else
<h4>{{ trans('texts.set_password') }}</h4>
@endif @endif
</div>
<div class="inner">
<input type="hidden" name="token" value="{{{ $token }}}">
<input type="hidden" name="contact_key" value="{{{ $contact_key }}}">
<p>
{!! Former::password('password')->placeholder(trans('texts.password'))->raw() !!}
{!! Former::password('password_confirmation')->placeholder(trans('texts.confirm_password'))->raw() !!}
</p>
<p>{!! Button::success(trans('texts.save'))->large()->submit()->block() !!}</p>
@if (count($errors->all()))
<div class="alert alert-danger">
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</div>
@endif
<!-- if there are login errors, show them here --> <!-- if there are login errors, show them here -->
@if (Session::has('warning')) @if (Session::has('warning'))
<div class="alert alert-warning">{{ Session::get('warning') }}</div> <div class="alert alert-warning">{{ Session::get('warning') }}</div>
@endif @endif
@if (Session::has('message')) @if (Session::has('message'))
<div class="alert alert-info">{{ Session::get('message') }}</div> <div class="alert alert-info">{{ Session::get('message') }}</div>
@endif @endif
@if (Session::has('error')) @if (Session::has('error'))
<div class="alert alert-danger">{{ Session::get('error') }}</div> <div class="alert alert-danger">{{ Session::get('error') }}</div>
@endif @endif
<input type="hidden" name="token" value="{{{ $token }}}">
<input type="hidden" name="contact_key" value="{{{ $contact_key }}}">
{!! Former::close() !!} <div>
</div> {!! Former::password('password')->placeholder(trans('texts.password'))->raw() !!}
{!! Former::password('password_confirmation')->placeholder(trans('texts.confirm_password'))->raw() !!}
</div>
</div> <p>{!! Button::success(trans('texts.save'))->large()->submit()->withAttributes(['class' => 'green'])->block() !!}</p>
@stop {!! Former::close() !!}
</div>
<script type="text/javascript">
$(function () {
$('#password').focus();
})
</script>
@endsection

View File

@ -1,72 +1,8 @@
@extends('public.header') @extends('login')
@section('form')
@section('head') <div class="form-signin">
@parent <h2 class="form-signin-heading">{{ trans('texts.session_expired') }}</h2>
<style type="text/css"> <hr class="green">
body { <h4><center>{{ trans('texts.client_session_expired_message') }}</center></h4>
padding-top: 40px;
padding-bottom: 40px;
}
.modal-header {
border-top-left-radius: 3px;
border-top-right-radius: 3px;
background:#222;
color:#fff
}
.modal-header h4 {
margin:0;
}
.modal-header img {
float: left;
margin-right: 20px;
}
.form-signin {
max-width: 400px;
margin: 0 auto;
background: #fff;
}
p.link a {
font-size: 11px;
}
.form-signin .inner {
padding: 20px;
border-bottom-right-radius: 3px;
border-bottom-left-radius: 3px;
border-left: 1px solid #ddd;
border-right: 1px solid #ddd;
border-bottom: 1px solid #ddd;
}
.form-signin .checkbox {
font-weight: normal;
}
.form-signin .form-control {
margin-bottom: 17px !important;
}
.form-signin .form-control:focus {
z-index: 2;
}
.modal-header a:link,
.modal-header a:visited,
.modal-header a:hover,
.modal-header a:active {
text-decoration: none;
color: white;
}
</style>
@endsection
@section('body')
<div class="container">
<div class="form-signin">
<div class="modal-header">
<h4>{{ trans('texts.session_expired') }}</h4>
</div>
<div class="inner">
<div class="alert alert-info">{{ trans('texts.client_session_expired_message') }}</div>
</div>
</div>
</div> </div>
@endsection @endsection

View File

@ -1,13 +1,22 @@
@extends('master') @extends('master')
@section('head') @section('head')
@if (!empty($clientauth) && !empty($clientFontUrl))
<link href="{!! $clientFontUrl !!}" rel="stylesheet" type="text/css">
@endif
<link href="{{ asset('css/built.public.css') }}?no_cache={{ NINJA_VERSION }}" rel="stylesheet" type="text/css"/>
@if (!empty($clientauth) && !empty($account))
<style type="text/css">{!! $account->clientViewCSS() !!}</style>
@endif
<link href="{{ asset('css/bootstrap.min.css') }}" rel="stylesheet" type="text/css"/> <link href="{{ asset('css/bootstrap.min.css') }}" rel="stylesheet" type="text/css"/>
<link href="{{ asset('css/built.public.css') }}" rel="stylesheet" type="text/css"/> <link href="{{ asset('css/built.css') }}" rel="stylesheet" type="text/css"/>
<link href="{{ asset('css/built.login.css') }}" rel="stylesheet" type="text/css"/> <link href="{{ asset('css/built.login.css') }}" rel="stylesheet" type="text/css"/>
@endsection @endsection
@section('body') @section('body')
@if (!Utils::isWhiteLabel()) @if (!Utils::isWhiteLabel() || empty($clientauth))
<div class="container-fluid"> <div class="container-fluid">
<div class="row header"> <div class="row header">
<div class="col-md-6 col-xs-12 text-center"> <div class="col-md-6 col-xs-12 text-center">