1
0
mirror of https://github.com/invoiceninja/invoiceninja.git synced 2024-09-20 16:31:33 +02:00
invoiceninja/resources/views/header.blade.php

828 lines
29 KiB
PHP
Raw Normal View History

2013-12-07 19:45:00 +01:00
@extends('master')
2013-11-26 13:45:07 +01:00
2014-01-30 23:29:09 +01:00
@section('head')
2014-04-28 22:05:37 +02:00
2016-01-07 08:08:30 +01:00
<link href="//fonts.googleapis.com/css?family=Roboto:400,700,900,100|Roboto+Slab:400,300,700&subset=latin,latin-ext" rel="stylesheet" type="text/css">
<link href="{{ asset('css/built.css') }}?no_cache={{ NINJA_VERSION }}" rel="stylesheet" type="text/css"/>
2014-11-11 18:47:31 +01:00
<style type="text/css">
2014-04-03 19:54:06 +02:00
body {
background-color: #EEEEEE;
padding-top: 114px;
}
2014-04-03 19:54:06 +02:00
/* Fix for header covering stuff when the screen is narrower */
@media screen and (min-width: 1200px) {
body {
padding-top: 56px;
}
}
2014-04-03 19:54:06 +02:00
2015-05-05 11:48:23 +02:00
@media screen and (max-width: 768px) {
body {
padding-top: 56px;
}
}
2015-07-12 21:43:45 +02:00
@if (Auth::check() && Auth::user()->dark_mode)
body {
background: #000 !important;
color: white !important;
}
.panel-body {
background: #272822 !important;
/*background: #e6e6e6 !important;*/
}
.panel-default {
border-color: #444;
}
@endif
</style>
2014-04-03 19:54:06 +02:00
2015-04-22 21:21:04 +02:00
<script type="text/javascript">
function setTheme(id)
{
$('#theme_id').val(id);
$('form.themeForm').submit();
}
@if (!Auth::check() || !Auth::user()->registered)
function validateSignUp(showError)
{
var isFormValid = true;
$(['first_name','last_name','email','password']).each(function(i, field) {
var $input = $('form.signUpForm #new_'+field),
val = $.trim($input.val());
var isValid = val && val.length >= (field == 'password' ? 6 : 1);
if (isValid && field == 'email') {
isValid = isValidEmailAddress(val);
}
if (isValid) {
$input.closest('div.form-group').removeClass('has-error').addClass('has-success');
} else {
isFormValid = false;
$input.closest('div.form-group').removeClass('has-success');
if (showError) {
$input.closest('div.form-group').addClass('has-error');
}
}
});
if (!$('#terms_checkbox').is(':checked')) {
isFormValid = false;
}
$('#saveSignUpButton').prop('disabled', !isFormValid);
return isFormValid;
}
function validateServerSignUp()
{
if (!validateSignUp(true)) {
return;
}
$('#signUpDiv, #signUpFooter').hide();
$('#working').show();
$.ajax({
type: 'POST',
url: '{{ URL::to('signup/validate') }}',
data: 'email=' + $('form.signUpForm #new_email').val(),
success: function(result) {
if (result == 'available') {
submitSignUp();
} else {
$('#errorTaken').show();
$('form.signUpForm #new_email').closest('div.form-group').removeClass('has-success').addClass('has-error');
$('#signUpDiv, #signUpFooter').show();
$('#working').hide();
}
}
});
}
function submitSignUp() {
$.ajax({
type: 'POST',
url: '{{ URL::to('signup/submit') }}',
data: 'new_email=' + encodeURIComponent($('form.signUpForm #new_email').val()) +
'&new_password=' + encodeURIComponent($('form.signUpForm #new_password').val()) +
'&new_first_name=' + encodeURIComponent($('form.signUpForm #new_first_name').val()) +
'&new_last_name=' + encodeURIComponent($('form.signUpForm #new_last_name').val()) +
'&go_pro=' + $('#go_pro').val(),
success: function(result) {
if (result) {
2015-11-01 19:21:11 +01:00
handleSignedUp();
2015-04-22 21:21:04 +02:00
NINJA.isRegistered = true;
$('#signUpButton').hide();
2015-11-01 19:21:11 +01:00
$('#myAccountButton').html(result);
}
2015-04-22 21:21:04 +02:00
$('#signUpSuccessDiv, #signUpFooter, #closeSignUpButton').show();
$('#working, #saveSignUpButton').hide();
}
2015-11-01 19:21:11 +01:00
});
}
2015-10-20 10:23:38 +02:00
@endif
2015-11-01 19:21:11 +01:00
function handleSignedUp() {
localStorage.setItem('guest_key', '');
fbq('track', 'CompleteRegistration');
window._fbq.push(['track', '{{ env('FACEBOOK_PIXEL_SIGN_UP') }}', {'value':'0.00','currency':'USD'}]);
trackEvent('/account', '/signed_up');
}
2015-04-22 21:21:04 +02:00
function checkForEnter(event)
{
if (event.keyCode === 13){
event.preventDefault();
validateServerSignUp();
return false;
}
}
function logout(force)
{
if (force) {
NINJA.formIsChanged = false;
}
if (force || NINJA.isRegistered) {
window.location = '{{ URL::to('logout') }}';
} else {
$('#logoutModal').modal('show');
}
}
2015-10-11 16:41:09 +02:00
function showSignUp() {
$('#signUpModal').modal('show');
}
function hideSignUp() {
$('#signUpModal').modal('hide');
2015-04-22 21:21:04 +02:00
}
2015-06-10 22:55:23 +02:00
NINJA.proPlanFeature = '';
function showProPlan(feature) {
$('#proPlanModal').modal('show');
2015-10-02 10:32:13 +02:00
fbq('track', 'InitiateCheckout');
2015-06-10 22:55:23 +02:00
trackEvent('/account', '/show_pro_plan/' + feature);
NINJA.proPlanFeature = feature;
}
function hideProPlan() {
$('#proPlanModal').modal('hide');
}
2015-04-22 21:21:04 +02:00
function buyProduct(affiliateKey, productId) {
window.open('{{ Utils::isNinjaDev() ? '' : NINJA_APP_URL }}/license?affiliate_key=' + affiliateKey + '&product_id=' + productId + '&return_url=' + window.location);
}
@if (Auth::check() && (!Auth::user()->isPro() || Auth::user()->isTrial()))
2015-06-10 22:55:23 +02:00
function submitProPlan() {
2015-10-02 10:32:13 +02:00
fbq('track', 'AddPaymentInfo');
2015-06-10 22:55:23 +02:00
trackEvent('/account', '/submit_pro_plan/' + NINJA.proPlanFeature);
if (NINJA.isRegistered) {
2015-04-22 21:21:04 +02:00
$.ajax({
type: 'POST',
url: '{{ URL::to('account/go_pro') }}',
success: function(result) {
NINJA.formIsChanged = false;
2015-06-10 22:55:23 +02:00
window.location = '/payment/' + result;
2015-04-22 21:21:04 +02:00
}
});
} else {
2015-06-10 22:55:23 +02:00
$('#proPlanModal').modal('hide');
2015-04-22 21:21:04 +02:00
$('#go_pro').val('true');
showSignUp();
}
}
@endif
function hideMessage() {
$('.alert-info').fadeOut();
$.get('/hide_message', function(response) {
console.log('Reponse: %s', response);
});
}
function wordWrapText(value, width)
{
@if (Auth::user()->account->auto_wrap)
var doc = new jsPDF('p', 'pt');
doc.setFont('Helvetica','');
doc.setFontSize(10);
var lines = value.split("\n");
for (var i = 0; i < lines.length; i++) {
var numLines = doc.splitTextToSize(lines[i], width).length;
if (numLines <= 1) continue;
var j = 0; space = lines[i].length;
while (j++ < lines[i].length) {
if (lines[i].charAt(j) === ' ') space = j;
}
if (space == lines[i].length) space = width/6;
lines[i + 1] = lines[i].substring(space + 1) + ' ' + (lines[i + 1] || '');
lines[i] = lines[i].substring(0, space);
}
var newValue = (lines.join("\n")).trim();
if (value == newValue) {
return newValue;
} else {
return wordWrapText(newValue, width);
}
@else
return value;
@endif
}
2015-10-11 16:41:09 +02:00
function setSignupEnabled(enabled) {
2015-11-01 19:21:11 +01:00
$('.signup-form input[type=text]').prop('disabled', !enabled);
if (enabled) {
$('.signup-form a.btn').removeClass('disabled');
} else {
$('.signup-form a.btn').addClass('disabled');
}
2015-10-11 16:41:09 +02:00
}
2015-10-18 09:30:28 +02:00
function setSocialLoginProvider(provider) {
localStorage.setItem('auth_provider', provider);
}
2016-02-15 18:58:18 +01:00
function showSearch() {
2016-02-28 21:43:43 +01:00
console.log('showSearch..');
//$('#search').typeahead('setQuery', '');
2016-02-15 18:58:18 +01:00
$('#navbar-options').hide();
2016-02-19 10:41:03 +01:00
$('#search-form').show();
2016-02-28 21:43:43 +01:00
if (window.hasOwnProperty('loadedSearchData')) {
console.log('has data');
2016-02-15 18:58:18 +01:00
$('#search').focus();
} else {
2015-10-11 16:41:09 +02:00
trackEvent('/activity', '/search');
$.get('{{ URL::route('getSearchData') }}', function(data) {
2016-02-28 21:43:43 +01:00
window.loadedSearchData = true;
$('#search').typeahead({
hint: true,
highlight: true,
},
{
name: 'data',
display: 'value',
source: searchData(data['clients']),
templates: {
header: '&nbsp;<b>{{ trans('texts.clients') }}</b>'
}
},
{
name: 'data',
display: 'value',
source: searchData(data['contacts']),
templates: {
header: '&nbsp;<b>{{ trans('texts.contacts') }}</b>'
}
},
{
name: 'data',
display: 'value',
source: searchData(data['invoices']),
templates: {
header: '&nbsp;<b>{{ trans('texts.contacts') }}</b>'
}
},
{
name: 'data',
display: 'value',
source: searchData(data['quotes']),
templates: {
header: '&nbsp;<b>{{ trans('texts.quotes') }}</b>'
}
},
2015-10-11 16:41:09 +02:00
{
2016-02-28 21:43:43 +01:00
name: 'data',
display: 'value',
source: searchData(data['navigation']),
templates: {
header: '&nbsp;<b>{{ trans('texts.navigation') }}</b>'
}
}).on('typeahead:selected', function(element, datum, name) {
2016-02-22 22:23:28 +01:00
window.location = datum.url;
2016-02-28 21:43:43 +01:00
}).focus();
//.typeahead('setQuery', $('#search').val());
2015-04-22 21:21:04 +02:00
});
2016-02-15 18:58:18 +01:00
}
}
2016-02-28 21:43:43 +01:00
function searchData(data) {
return function findMatches(q, cb) {
var options = {
keys: ['value'],
}
var fuse = new Fuse(data, options);
var matches = fuse.search(q);
cb(matches);
}
};
2016-02-15 18:58:18 +01:00
function hideSearch() {
$('#search-form').hide();
$('#navbar-options').show();
}
2015-04-22 21:21:04 +02:00
2016-02-15 18:58:18 +01:00
$(function() {
window.setTimeout(function() {
$(".alert-hide").fadeOut();
}, 3000);
2016-02-19 10:41:03 +01:00
$('#search').blur(function(event){
2016-02-15 18:58:18 +01:00
hideSearch();
});
2015-04-22 21:21:04 +02:00
if (isStorageSupported()) {
@if (Auth::check() && !Auth::user()->registered)
localStorage.setItem('guest_key', '{{ Auth::user()->password }}');
@endif
}
@if (!Auth::check() || !Auth::user()->registered)
validateSignUp();
$('#signUpModal').on('shown.bs.modal', function () {
2015-06-01 15:06:18 +02:00
trackEvent('/account', '/view_sign_up');
2015-04-22 21:21:04 +02:00
$(['first_name','last_name','email','password']).each(function(i, field) {
var $input = $('form.signUpForm #new_'+field);
if (!$input.val()) {
$input.focus();
return false;
}
});
})
@endif
@if (Auth::check() && !Utils::isNinja() && !Auth::user()->registered)
$('#closeSignUpButton').hide();
showSignUp();
@elseif(Session::get('sign_up') || Input::get('sign_up'))
showSignUp();
@endif
2016-02-17 11:12:39 +01:00
$('ul.navbar-settings, ul.navbar-search').hover(function () {
2015-07-12 21:43:45 +02:00
if ($('.user-accounts').css('display') == 'block') {
$('.user-accounts').dropdown('toggle');
}
});
2015-04-22 21:21:04 +02:00
@yield('onReady')
2015-08-14 14:04:33 +02:00
@if (Input::has('focus'))
$('#{{ Input::get('focus') }}').focus();
@endif
2015-10-11 16:41:09 +02:00
// Ensure terms is checked for sign up form
@if (Auth::check() && !Auth::user()->registered)
setSignupEnabled(false);
$("#terms_checkbox").change(function() {
setSignupEnabled(this.checked);
});
@endif
// Focus the search input if the user clicks forward slash
$('body').keypress(function(event) {
if (event.which == 47 && !$('*:focus').length) {
2016-02-19 10:41:03 +01:00
event.preventDefault();
showSearch();
}
});
2015-04-22 21:21:04 +02:00
});
</script>
2013-12-07 19:45:00 +01:00
@stop
2013-12-07 19:45:00 +01:00
@section('body')
2014-04-03 19:54:06 +02:00
<nav class="navbar navbar-default navbar-fixed-top" role="navigation">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar-collapse-1">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
2015-07-07 22:08:16 +02:00
<a href="{{ URL::to(NINJA_WEB_URL) }}" class='navbar-brand' target="_blank">
2016-02-03 09:08:28 +01:00
<img src="{{ asset('images/invoiceninja-logo.png') }}" style="height:20px;width:auto;padding-right:10px"/>
2014-02-16 21:32:25 +01:00
</a>
2014-04-03 19:54:06 +02:00
</div>
<div class="collapse navbar-collapse" id="navbar-collapse-1">
<ul class="nav navbar-nav" style="font-weight: bold">
{!! HTML::nav_link('dashboard', 'dashboard') !!}
{!! HTML::menu_link('client') !!}
2015-05-27 18:52:10 +02:00
{!! HTML::menu_link('task') !!}
2016-01-21 23:29:10 +01:00
{!! HTML::menu_link('expense') !!}
{!! HTML::menu_link('invoice') !!}
{!! HTML::menu_link('payment') !!}
2014-04-03 19:54:06 +02:00
</ul>
2016-02-15 18:58:18 +01:00
<div id="navbar-options">
2014-04-03 19:54:06 +02:00
<div class="navbar-form navbar-right">
2014-05-25 12:57:19 +02:00
@if (Auth::check())
@if (!Auth::user()->registered)
2016-02-15 18:58:18 +01:00
{!! Button::success(trans('texts.sign_up'))->withAttributes(array('id' => 'signUpButton', 'data-toggle'=>'modal', 'data-target'=>'#signUpModal', 'style' => 'max-width:100px;;overflow:hidden'))->small() !!} &nbsp;
@elseif (Utils::isNinjaProd() && (!Auth::user()->isPro() || Auth::user()->isTrial()))
2016-02-15 18:58:18 +01:00
{!! Button::success(trans('texts.go_pro'))->withAttributes(array('id' => 'proPlanButton', 'onclick' => 'showProPlan("")', 'style' => 'max-width:100px;overflow:hidden'))->small() !!} &nbsp;
2014-05-25 12:57:19 +02:00
@endif
2014-04-22 22:10:14 +02:00
@endif
2014-03-19 17:17:26 +01:00
2015-06-16 21:35:35 +02:00
<div class="btn-group user-dropdown">
2014-04-03 19:54:06 +02:00
<button type="button" class="btn btn-default btn-sm dropdown-toggle" data-toggle="dropdown">
2016-02-17 11:12:39 +01:00
<div id="myAccountButton" class="ellipsis" style="max-width:{{ Utils::isPro() && ! Utils::isTrial() ? '130' : '100' }}px">
2015-06-16 21:35:35 +02:00
@if (session(SESSION_USER_ACCOUNTS) && count(session(SESSION_USER_ACCOUNTS)))
{{ Auth::user()->account->getDisplayName() }}
@else
{{ Auth::user()->getDisplayName() }}
@endif
2014-11-12 16:22:54 +01:00
<span class="caret"></span>
</div>
2014-04-03 19:54:06 +02:00
</button>
2015-08-03 09:15:58 +02:00
<ul class="dropdown-menu user-accounts">
2015-06-16 21:35:35 +02:00
@if (session(SESSION_USER_ACCOUNTS))
@foreach (session(SESSION_USER_ACCOUNTS) as $item)
2015-07-07 22:08:16 +02:00
@if ($item->user_id == Auth::user()->id)
@include('user_account', [
'user_account_id' => $item->id,
'user_id' => $item->user_id,
'account_name' => $item->account_name,
'user_name' => $item->user_name,
2015-08-07 08:14:29 +02:00
'logo_path' => isset($item->logo_path) ? $item->logo_path : "",
2015-07-07 22:08:16 +02:00
'selected' => true,
])
@endif
@endforeach
@foreach (session(SESSION_USER_ACCOUNTS) as $item)
@if ($item->user_id != Auth::user()->id)
@include('user_account', [
'user_account_id' => $item->id,
'user_id' => $item->user_id,
'account_name' => $item->account_name,
'user_name' => $item->user_name,
2015-08-07 08:14:29 +02:00
'logo_path' => isset($item->logo_path) ? $item->logo_path : "",
2015-07-07 22:08:16 +02:00
'selected' => false,
])
@endif
2015-06-16 21:35:35 +02:00
@endforeach
@else
2015-07-07 22:08:16 +02:00
@include('user_account', [
'account_name' => Auth::user()->account->name ?: trans('texts.untitled'),
'user_name' => Auth::user()->getDisplayName(),
2015-08-07 08:14:29 +02:00
'logo_path' => Auth::user()->account->getLogoPath(),
2015-07-07 22:08:16 +02:00
'selected' => true,
])
2015-06-16 21:35:35 +02:00
@endif
<li class="divider"></li>
2015-08-03 09:15:58 +02:00
@if (count(session(SESSION_USER_ACCOUNTS)) > 1)
<li>{!! link_to('/manage_companies', trans('texts.manage_companies')) !!}</li>
2015-08-07 08:14:29 +02:00
@elseif (!session(SESSION_USER_ACCOUNTS) || count(session(SESSION_USER_ACCOUNTS)) < 5)
<li>{!! link_to('/login?new_company=true', trans('texts.add_company')) !!}</li>
2015-08-03 09:15:58 +02:00
@endif
2015-06-16 21:35:35 +02:00
<li>{!! link_to('#', trans('texts.logout'), array('onclick'=>'logout()')) !!}</li>
</ul>
</div>
</div>
2015-07-12 21:43:45 +02:00
<ul class="nav navbar-nav navbar-right navbar-settings">
2015-06-16 21:35:35 +02:00
<li class="dropdown">
2015-10-20 19:12:34 +02:00
<a href="{{ URL::to('/settings') }}" class="dropdown-toggle">
2015-06-16 21:35:35 +02:00
<span class="glyphicon glyphicon-cog" title="{{ trans('texts.settings') }}"/>
</a>
<ul class="dropdown-menu">
2015-10-14 16:15:39 +02:00
@foreach (\App\Models\Account::$basicSettings as $setting)
<li>{!! link_to('settings/' . $setting, uctrans("texts.{$setting}")) !!}</li>
@endforeach
2015-10-16 07:32:02 +02:00
<li><a href="{{ url('settings/' . ACCOUNT_INVOICE_SETTINGS) }}">{!! uctrans('texts.advanced_settings') . Utils::getProLabel(ACCOUNT_ADVANCED_SETTINGS) !!}</a></li>
2014-04-03 19:54:06 +02:00
</ul>
2015-06-16 21:35:35 +02:00
</li>
</ul>
2014-04-03 19:54:06 +02:00
2016-02-17 11:12:39 +01:00
<ul class="nav navbar-nav navbar-right navbar-search">
2014-04-03 19:54:06 +02:00
<li class="dropdown">
2016-02-17 11:12:39 +01:00
<a href="#" onclick="showSearch()">
<span class="glyphicon glyphicon-search" title="{{ trans('texts.search') }}"/>
2014-11-12 16:22:54 +01:00
</a>
2014-04-03 19:54:06 +02:00
<ul class="dropdown-menu">
@if (count(Session::get(RECENTLY_VIEWED)) == 0)
2015-06-12 10:39:53 +02:00
<li><a href="#">{{ trans('texts.no_items') }}</a></li>
2014-04-03 19:54:06 +02:00
@else
2015-06-12 10:39:53 +02:00
@foreach (Session::get(RECENTLY_VIEWED) as $link)
@if (property_exists($link, 'accountId') && $link->accountId == Auth::user()->account_id)
<li><a href="{{ $link->url }}">{{ $link->name }}</a></li>
@endif
2015-06-12 10:39:53 +02:00
@endforeach
2014-04-03 19:54:06 +02:00
@endif
</ul>
</li>
</ul>
2016-02-15 18:58:18 +01:00
</div>
<form id="search-form" class="navbar-form navbar-right" role="search" style="display:none">
2015-06-16 21:35:35 +02:00
<div class="form-group">
2016-02-17 11:12:39 +01:00
<input type="text" id="search" style="width: 240px;padding-top:0px;padding-bottom:0px"
2016-02-24 21:58:42 +01:00
class="form-control" placeholder="{{ trans('texts.search') . ': ' . trans('texts.search_hotkey')}}">
2015-06-16 21:35:35 +02:00
</div>
</form>
2014-04-23 15:46:52 +02:00
2014-04-03 19:54:06 +02:00
</div><!-- /.navbar-collapse -->
</div>
</nav>
<br/>
<div class="container">
@include('partials.warn_session', ['redirectTo' => '/dashboard'])
2015-09-26 23:08:59 +02:00
2014-03-18 21:43:12 +01:00
@if (Session::has('warning'))
2015-06-14 16:49:13 +02:00
<div class="alert alert-warning">{!! Session::get('warning') !!}</div>
2014-03-18 21:43:12 +01:00
@endif
2014-02-01 21:01:32 +01:00
@if (Session::has('message'))
2015-04-22 23:40:21 +02:00
<div class="alert alert-info alert-hide">
2014-10-05 23:00:42 +02:00
{{ Session::get('message') }}
</div>
@elseif (Session::has('news_feed_message'))
<div class="alert alert-info">
2015-04-13 09:54:51 +02:00
{!! Session::get('news_feed_message') !!}
2014-10-05 23:00:42 +02:00
<a href="#" onclick="hideMessage()" class="pull-right">{{ trans('texts.hide') }}</a>
</div>
2014-02-01 21:01:32 +01:00
@endif
@if (Session::has('error'))
2015-09-26 23:08:59 +02:00
<div class="alert alert-danger">{!! Session::get('error') !!}</div>
2014-02-01 21:01:32 +01:00
@endif
2013-11-26 13:45:07 +01:00
2015-05-27 18:52:10 +02:00
@if (!isset($showBreadcrumbs) || $showBreadcrumbs)
2016-02-04 19:36:39 +01:00
{!! HTML::breadcrumbs(isset($entityStatus) ? $entityStatus : '') !!}
2015-05-27 18:52:10 +02:00
@endif
2014-04-03 19:54:06 +02:00
@yield('content')
</div>
@if (!Auth::check() || !Auth::user()->registered)
<div class="modal fade" id="signUpModal" tabindex="-1" role="dialog" aria-labelledby="signUpModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
2014-04-06 11:02:04 +02:00
<h4 class="modal-title" id="myModalLabel">{{ trans('texts.sign_up') }}</h4>
2014-04-03 19:54:06 +02:00
</div>
<div style="background-color: #fff; padding-right:20px" id="signUpDiv" onkeyup="validateSignUp()" onclick="validateSignUp()" onkeydown="checkForEnter(event)">
<br/>
2015-11-09 15:53:18 +01:00
{!! Former::open('signup/submit')->addClass('signUpForm')->autocomplete('on') !!}
2014-04-03 19:54:06 +02:00
@if (Auth::check())
{!! Former::populateField('new_first_name', Auth::user()->first_name) !!}
{!! Former::populateField('new_last_name', Auth::user()->last_name) !!}
{!! Former::populateField('new_email', Auth::user()->email) !!}
2014-04-03 19:54:06 +02:00
@endif
2014-04-13 10:19:10 +02:00
<div style="display:none">
{!! Former::text('path')->value(Request::path()) !!}
{!! Former::text('go_pro') !!}
2014-04-13 10:19:10 +02:00
</div>
2015-10-11 16:41:09 +02:00
<div class="row signup-form">
<div class="col-md-11 col-md-offset-1">
{!! Former::checkbox('terms_checkbox')->label(' ')->text(trans('texts.agree_to_terms', ['terms' => '<a href="'.URL::to('terms').'" target="_blank">'.trans('texts.terms_of_service').'</a>']))->raw() !!}
<br/>
</div>
2015-11-01 19:21:11 +01:00
@if (Utils::isOAuthEnabled())
2015-10-11 16:41:09 +02:00
<div class="col-md-4 col-md-offset-1">
<h4>{{ trans('texts.sign_up_using') }}</h4><br/>
2015-10-18 09:30:28 +02:00
@foreach (App\Services\AuthService::$providers as $provider)
<a href="{{ URL::to('auth/' . $provider) }}" class="btn btn-primary btn-block"
onclick="setSocialLoginProvider('{{ strtolower($provider) }}')" id="{{ strtolower($provider) }}LoginButton">
<i class="fa fa-{{ strtolower($provider) }}"></i> &nbsp;
{{ $provider }}
</a>
@endforeach
2015-10-11 16:41:09 +02:00
</div>
<div class="col-md-1">
<div style="border-right:thin solid #CCCCCC;height:110px;width:8px;margin-bottom:10px;"></div>
{{ trans('texts.or') }}
<div style="border-right:thin solid #CCCCCC;height:110px;width:8px;margin-top:10px;"></div>
</div>
<div class="col-md-6">
@else
<div class="col-md-12">
@endif
{{ Former::setOption('TwitterBootstrap3.labelWidths.large', 1) }}
{{ Former::setOption('TwitterBootstrap3.labelWidths.small', 1) }}
2015-11-09 15:53:18 +01:00
{!! Former::text('new_first_name')
->placeholder(trans('texts.first_name'))
->autocomplete('given-name')
->label(' ') !!}
{!! Former::text('new_last_name')
->placeholder(trans('texts.last_name'))
->autocomplete('family-name')
->label(' ') !!}
{!! Former::text('new_email')
->placeholder(trans('texts.email'))
->autocomplete('email')
->label(' ') !!}
{!! Former::password('new_password')
->placeholder(trans('texts.password'))
->label(' ') !!}
2015-10-11 16:41:09 +02:00
{{ Former::setOption('TwitterBootstrap3.labelWidths.large', 4) }}
{{ Former::setOption('TwitterBootstrap3.labelWidths.small', 4) }}
</div>
<div class="col-md-11 col-md-offset-1">
<div style="padding-top:20px;padding-bottom:10px;">{{ trans('texts.trial_message') }}</div>
</div>
2015-10-11 16:41:09 +02:00
</div>
{!! Former::close() !!}
2014-04-06 11:02:04 +02:00
<center><div id="errorTaken" style="display:none">&nbsp;<br/>{{ trans('texts.email_taken') }}</div></center>
2014-04-03 19:54:06 +02:00
<br/>
2014-03-10 12:04:15 +01:00
2014-04-03 19:54:06 +02:00
</div>
2013-12-02 20:54:24 +01:00
2014-04-03 19:54:06 +02:00
<div style="padding-left:40px;padding-right:40px;display:none;min-height:130px" id="working">
2014-04-06 11:02:04 +02:00
<h3>{{ trans('texts.working') }}...</h3>
2014-04-03 19:54:06 +02:00
<div class="progress progress-striped active">
<div class="progress-bar" role="progressbar" aria-valuenow="100" aria-valuemin="0" aria-valuemax="100" style="width: 100%"></div>
</div>
2014-01-30 23:29:09 +01:00
</div>
2014-02-23 15:51:52 +01:00
<div style="background-color: #fff; padding-right:20px;padding-left:20px; display:none" id="signUpSuccessDiv">
2014-04-03 19:54:06 +02:00
<br/>
2014-04-06 11:02:04 +02:00
<h3>{{ trans('texts.success') }}</h3>
2014-11-11 09:29:43 +01:00
@if (Utils::isNinja())
2014-11-19 20:51:53 +01:00
{{ trans('texts.success_message') }}
2014-11-11 09:29:43 +01:00
@endif
2014-11-19 20:51:53 +01:00
<br/>&nbsp;
2014-01-30 23:29:09 +01:00
</div>
2014-04-03 19:54:06 +02:00
<div class="modal-footer" id="signUpFooter" style="margin-top: 0px">
2014-11-11 09:29:43 +01:00
<button type="button" class="btn btn-default" id="closeSignUpButton" data-dismiss="modal">{{ trans('texts.close') }} <i class="glyphicon glyphicon-remove-circle"></i></button>
2014-04-10 21:29:01 +02:00
<button type="button" class="btn btn-primary" id="saveSignUpButton" onclick="validateServerSignUp()" disabled>{{ trans('texts.save') }} <i class="glyphicon glyphicon-floppy-disk"></i></button>
2014-04-03 19:54:06 +02:00
</div>
</div>
</div>
</div>
2014-03-05 21:56:34 +01:00
2014-04-03 19:54:06 +02:00
<div class="modal fade" id="logoutModal" tabindex="-1" role="dialog" aria-labelledby="logoutModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
2014-04-06 11:02:04 +02:00
<h4 class="modal-title" id="myModalLabel">{{ trans('texts.logout') }}</h4>
2014-04-03 19:54:06 +02:00
</div>
<div class="container">
2014-04-06 11:02:04 +02:00
<h3>{{ trans('texts.are_you_sure') }}</h3>
<p>{{ trans('texts.erase_data') }}</p>
2014-04-03 19:54:06 +02:00
</div>
<div class="modal-footer" id="signUpFooter">
2014-04-06 11:02:04 +02:00
<button type="button" class="btn btn-default" data-dismiss="modal">{{ trans('texts.cancel') }}</button>
<button type="button" class="btn btn-primary" onclick="logout(true)">{{ trans('texts.logout') }}</button>
2014-04-03 19:54:06 +02:00
</div>
</div>
</div>
</div>
@endif
@if (Auth::check() && (!Auth::user()->isPro() || Auth::user()->isTrial()))
2014-04-22 17:10:41 +02:00
<div class="modal fade" id="proPlanModal" tabindex="-1" role="dialog" aria-labelledby="proPlanModalLabel" aria-hidden="true">
2015-06-10 22:55:23 +02:00
<div class="modal-dialog large-dialog">
<div class="modal-content pro-plan-modal">
<div class="pull-right">
<img onclick="hideProPlan()" class="close" src="{{ asset('images/pro_plan/close.png') }}"/>
</div>
<div class="row">
<div class="col-md-7 left-side">
<center>
<h2>{{ trans('texts.pro_plan_title') }}</h2>
<img class="img-responsive price" alt="Only $50 Per Year" src="{{ asset('images/pro_plan/price.png') }}"/>
@if (Auth::user()->isEligibleForTrial())
<a class="button" href="{{ URL::to('start_trial') }}">{{ trans('texts.trial_call_to_action') }}</a>
@else
<a class="button" href="#" onclick="submitProPlan()">{{ trans('texts.pro_plan_call_to_action') }}</a>
@endif
2015-06-10 22:55:23 +02:00
</center>
</div>
<div class="col-md-5">
<ul>
<li>{{ trans('texts.pro_plan_feature1') }}</li>
<li>{{ trans('texts.pro_plan_feature2') }}</li>
<li>{{ trans('texts.pro_plan_feature3') }}</li>
<li>{{ trans('texts.pro_plan_feature4') }}</li>
<li>{{ trans('texts.pro_plan_feature5') }}</li>
<li>{{ trans('texts.pro_plan_feature6') }}</li>
<li>{{ trans('texts.pro_plan_feature7') }}</li>
<li>{{ trans('texts.pro_plan_feature8') }}</li>
</ul>
</div>
2014-04-22 17:10:41 +02:00
</div>
</div>
</div>
</div>
@endif
2015-10-14 16:15:39 +02:00
</div>
<br/>
<div class="container">
@if (Utils::isNinjaProd())
@if (Auth::check() && Auth::user()->isTrial())
{!! trans(Auth::user()->account->getCountTrialDaysLeft() == 0 ? 'texts.trial_footer_last_day' : 'texts.trial_footer', [
'count' => Auth::user()->account->getCountTrialDaysLeft(),
'link' => '<a href="javascript:submitProPlan()">' . trans('texts.click_here') . '</a>'
]) !!}
@endif
@else
{{ trans('texts.powered_by') }}
{{-- Per our license, please do not remove or modify this section. --}}
{!! link_to('https://www.invoiceninja.com/?utm_source=powered_by', 'InvoiceNinja.com', ['target' => '_blank', 'title' => 'invoiceninja.com']) !!} -
{!! link_to(RELEASES_URL, 'v' . NINJA_VERSION, ['target' => '_blank', 'title' => trans('texts.trello_roadmap')]) !!} |
@if (Auth::user()->account->isWhiteLabel())
{{ trans('texts.white_labeled') }}
@else
2016-02-25 11:16:27 +01:00
<a href="#" onclick="loadImages('#whiteLabelModal');$('#whiteLabelModal').modal('show');">{{ trans('texts.white_label_link') }}</a>
<div class="modal fade" id="whiteLabelModal" tabindex="-1" role="dialog" aria-labelledby="whiteLabelModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
<h4 class="modal-title" id="myModalLabel">{{ trans('texts.white_label_header') }}</h4>
</div>
2015-11-09 20:59:31 +01:00
<div class="panel-body">
2014-12-03 23:05:38 +01:00
<p>{{ trans('texts.white_label_text')}}</p>
2015-11-09 20:59:31 +01:00
<div class="row">
<div class="col-md-6">
<h4>{{ trans('texts.before') }}</h4>
2016-02-25 11:16:27 +01:00
<img src="{{ BLANK_IMAGE }}" data-src="http://ninja.dev/images/pro_plan/white_label_before.png" width="100%" alt="before">
2015-11-09 20:59:31 +01:00
</div>
<div class="col-md-6">
<h4>{{ trans('texts.after') }}</h4>
2016-02-25 11:16:27 +01:00
<img src="{{ BLANK_IMAGE }}" data-src="http://ninja.dev/images/pro_plan/white_label_after.png" width="100%" alt="after">
2015-11-09 20:59:31 +01:00
</div>
</div>
</div>
<div class="modal-footer" id="signUpFooter" style="margin-top: 0px">
<button type="button" class="btn btn-default" data-dismiss="modal">{{ trans('texts.close') }} </button>
{{-- DropdownButton::success_lg(trans('texts.buy'), [
['url' => URL::to(""), 'label' => trans('texts.pay_with_paypal')],
['url' => URL::to(""), 'label' => trans('texts.pay_with_card')]
])->addClass('btn-lg') --}}
<button type="button" class="btn btn-primary" onclick="buyProduct('{{ WHITE_LABEL_AFFILIATE_KEY }}', '{{ PRODUCT_WHITE_LABEL }}')">{{ trans('texts.buy') }} </button>
</div>
</div>
</div>
</div>
@endif
</div>
2014-04-03 19:54:06 +02:00
@endif
<p>&nbsp;</p>
2014-03-19 17:17:26 +01:00
2013-12-07 19:45:00 +01:00
@stop