mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2025-07-08 14:04:40 -04:00
Style client facing auth screens
This commit is contained in:
parent
4adc3a798a
commit
7ce06a28e9
@ -28,7 +28,9 @@ class AuthController extends Controller
|
||||
*/
|
||||
public function showLoginForm()
|
||||
{
|
||||
$data = [];
|
||||
$data = [
|
||||
'clientauth' => true,
|
||||
];
|
||||
|
||||
$contactKey = session('contact_key');
|
||||
if ($contactKey) {
|
||||
@ -86,6 +88,6 @@ class AuthController extends Controller
|
||||
*/
|
||||
public function getSessionExpired()
|
||||
{
|
||||
return view('clientauth.sessionexpired');
|
||||
return view('clientauth.sessionexpired')->with(['clientauth' => true]);
|
||||
}
|
||||
}
|
||||
|
@ -48,7 +48,9 @@ class PasswordController extends Controller
|
||||
*/
|
||||
public function showLinkRequestForm()
|
||||
{
|
||||
$data = [];
|
||||
$data = [
|
||||
'clientauth' => true,
|
||||
];
|
||||
$contactKey = session('contact_key');
|
||||
if ($contactKey) {
|
||||
$contact = Contact::where('contact_key', '=', $contactKey)->first();
|
||||
@ -115,7 +117,11 @@ class PasswordController extends Controller
|
||||
return $this->getEmail();
|
||||
}
|
||||
|
||||
$data = compact('token');
|
||||
$data = array(
|
||||
'token' => $token,
|
||||
'clientauth' => true,
|
||||
);
|
||||
|
||||
if ($key) {
|
||||
$contact = Contact::where('contact_key', '=', $key)->first();
|
||||
if ($contact && ! $contact->is_deleted) {
|
||||
|
@ -59,9 +59,6 @@ class ClientPortalController extends BaseController
|
||||
if (! $account->checkSubdomain(Request::server('HTTP_HOST'))) {
|
||||
return response()->view('error', [
|
||||
'error' => trans('texts.invoice_not_found'),
|
||||
'hideHeader' => true,
|
||||
'clientViewCSS' => $account->clientViewCSS(),
|
||||
'clientFontUrl' => $account->getFontsUrl(),
|
||||
]);
|
||||
}
|
||||
|
||||
|
8
public/css/built.login.css
vendored
8
public/css/built.login.css
vendored
@ -11,6 +11,10 @@ hr.green {
|
||||
border: 0;
|
||||
}
|
||||
|
||||
.alert li{
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
/****** HEADER ********************************************************************/
|
||||
|
||||
.row.header {
|
||||
@ -316,8 +320,6 @@ fieldset[disabled] .btn-primary.active {
|
||||
|
||||
.form-signin .form-control {
|
||||
padding: 15px;
|
||||
border: 1px solid #e8e8e8;
|
||||
}
|
||||
|
||||
.form-control {
|
||||
border: 1px solid #e8e8
|
||||
/*# sourceMappingURL=built.login.css.map */
|
||||
|
File diff suppressed because one or more lines are too long
8
resources/assets/css/login.css
vendored
8
resources/assets/css/login.css
vendored
@ -11,6 +11,10 @@ hr.green {
|
||||
border: 0;
|
||||
}
|
||||
|
||||
.alert li{
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
/****** HEADER ********************************************************************/
|
||||
|
||||
.row.header {
|
||||
@ -316,7 +320,5 @@ fieldset[disabled] .btn-primary.active {
|
||||
|
||||
.form-signin .form-control {
|
||||
padding: 15px;
|
||||
border: 1px solid #e8e8e8;
|
||||
}
|
||||
|
||||
.form-control {
|
||||
border: 1px solid #e8e8
|
@ -2365,6 +2365,7 @@ $LANG = array(
|
||||
'sign_up_now' => 'Sign Up Now',
|
||||
'not_a_member_yet' => 'Not a member yet?',
|
||||
'login_create_an_account' => 'Create an Account!',
|
||||
'client_login' => 'Client Login',
|
||||
);
|
||||
|
||||
return $LANG;
|
||||
|
@ -1,96 +1,17 @@
|
||||
@extends('public.header')
|
||||
@extends('login')
|
||||
|
||||
@section('head')
|
||||
@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">
|
||||
@section('form')
|
||||
|
||||
@include('partials.warn_session', ['redirectTo' => '/client/sessionexpired'])
|
||||
|
||||
<div class="container">
|
||||
|
||||
{!! Former::open('client/login')
|
||||
->rules(['password' => 'required'])
|
||||
->addClass('form-signin') !!}
|
||||
{{ Former::populateField('remember', 'true') }}
|
||||
|
||||
<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.account_login') }}</h4>
|
||||
</a>
|
||||
@else
|
||||
<h4>{{ trans('texts.account_login') }}</h4>
|
||||
@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'))
|
||||
->withAttributes(['id' => 'loginButton'])
|
||||
->large()->submit()->block() !!}</p>
|
||||
|
||||
<p class="link">
|
||||
{!! link_to('/client/recover_password', trans('texts.recover_password')) !!}
|
||||
</p>
|
||||
<h2 class="form-signin-heading">{{ trans('texts.client_login') }}</h2>
|
||||
<hr class="green">
|
||||
|
||||
|
||||
@if (count($errors->all()))
|
||||
@ -113,8 +34,34 @@
|
||||
<div class="alert alert-danger"><li>{{ Session::get('error') }}</li></div>
|
||||
@endif
|
||||
|
||||
</div>
|
||||
{{ Former::populateField('remember', 'true') }}
|
||||
|
||||
<div>
|
||||
{!! Former::password('password')->placeholder(trans('texts.password'))->raw() !!}
|
||||
</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() !!}
|
||||
</div>
|
||||
|
||||
|
||||
<script type="text/javascript">
|
||||
$(function() {
|
||||
if ($('#email').val()) {
|
||||
$('#password').focus();
|
||||
} else {
|
||||
$('#email').focus();
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
@endsection
|
@ -1,79 +1,12 @@
|
||||
@extends('public.header')
|
||||
@extends('login')
|
||||
|
||||
@section('head')
|
||||
@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>
|
||||
|
||||
@stop
|
||||
|
||||
@section('body')
|
||||
@section('form')
|
||||
@include('partials.warn_session', ['redirectTo' => '/client/sessionexpired'])
|
||||
<div class="container">
|
||||
|
||||
{!! Former::open('client/recover_password')->addClass('form-signin') !!}
|
||||
<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
|
||||
</div>
|
||||
<div class="inner">
|
||||
|
||||
<p>{!! Button::success(trans('texts.send_email'))->large()->submit()->block() !!}</p>
|
||||
<h2 class="form-signin-heading">{{ trans('texts.password_recovery') }}</h2>
|
||||
<hr class="green">
|
||||
|
||||
@if (count($errors->all()))
|
||||
<div class="alert alert-danger">
|
||||
@ -102,15 +35,10 @@
|
||||
<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>
|
||||
|
||||
<script type="text/javascript">
|
||||
$(function() {
|
||||
$('#email').focus();
|
||||
})
|
||||
</script>
|
||||
|
||||
@stop
|
||||
@endsection
|
@ -1,63 +1,6 @@
|
||||
@extends('public.header')
|
||||
@extends('login')
|
||||
|
||||
@section('head')
|
||||
@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>
|
||||
|
||||
@stop
|
||||
|
||||
@section('body')
|
||||
@section('form')
|
||||
<div class="container">
|
||||
|
||||
{!! Former::open('/client/password/reset')->addClass('form-signin')->rules(array(
|
||||
@ -65,29 +8,8 @@
|
||||
'password_confirmation' => 'required',
|
||||
)) !!}
|
||||
|
||||
<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
|
||||
</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>
|
||||
|
||||
<h2 class="form-signin-heading">{{ trans('texts.set_password') }}</h2>
|
||||
<hr class="green">
|
||||
|
||||
@if (count($errors->all()))
|
||||
<div class="alert alert-danger">
|
||||
@ -110,10 +32,21 @@
|
||||
<div class="alert alert-danger">{{ Session::get('error') }}</div>
|
||||
@endif
|
||||
|
||||
<input type="hidden" name="token" value="{{{ $token }}}">
|
||||
<input type="hidden" name="contact_key" value="{{{ $contact_key }}}">
|
||||
|
||||
<div>
|
||||
{!! Former::password('password')->placeholder(trans('texts.password'))->raw() !!}
|
||||
{!! Former::password('password_confirmation')->placeholder(trans('texts.confirm_password'))->raw() !!}
|
||||
</div>
|
||||
|
||||
<p>{!! Button::success(trans('texts.save'))->large()->submit()->withAttributes(['class' => 'green'])->block() !!}</p>
|
||||
|
||||
{!! Former::close() !!}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@stop
|
||||
<script type="text/javascript">
|
||||
$(function () {
|
||||
$('#password').focus();
|
||||
})
|
||||
</script>
|
||||
@endsection
|
@ -1,72 +1,8 @@
|
||||
@extends('public.header')
|
||||
|
||||
@section('head')
|
||||
@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">
|
||||
@extends('login')
|
||||
@section('form')
|
||||
<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>
|
||||
<h2 class="form-signin-heading">{{ trans('texts.session_expired') }}</h2>
|
||||
<hr class="green">
|
||||
<h4><center>{{ trans('texts.client_session_expired_message') }}</center></h4>
|
||||
</div>
|
||||
@endsection
|
@ -1,13 +1,22 @@
|
||||
@extends('master')
|
||||
|
||||
@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/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"/>
|
||||
@endsection
|
||||
|
||||
@section('body')
|
||||
@if (!Utils::isWhiteLabel())
|
||||
@if (!Utils::isWhiteLabel() || empty($clientauth))
|
||||
<div class="container-fluid">
|
||||
<div class="row header">
|
||||
<div class="col-md-6 col-xs-12 text-center">
|
||||
|
Loading…
x
Reference in New Issue
Block a user