2022-02-23 03:07:48 +01:00
|
|
|
@extends('portal.ninja2020.layout.app')
|
|
|
|
@section('meta_title', ctrans('texts.account_management'))
|
|
|
|
|
|
|
|
@section('body')
|
|
|
|
|
|
|
|
<meta name="stripe-publishable-key" content="{{ $gateway->getPublishableKey()}}">
|
|
|
|
<meta name="client-postal-code" content="{{ $client->postal_code }}">
|
|
|
|
<meta name="client-name" content="{{ $client->present()->name() }}">
|
|
|
|
|
|
|
|
<div class="flex flex-wrap overflow-hidden">
|
|
|
|
|
|
|
|
<div class="w-1/2 overflow-hidden">
|
2022-02-23 03:31:53 +01:00
|
|
|
<h1 style="font-size:24px;">Start your 14 day Pro Trial!</h1>
|
|
|
|
<p class="mt-6">Enjoy 14 days of our Pro Plan</p>
|
|
|
|
|
|
|
|
<div>
|
|
|
|
|
2022-03-10 05:49:56 +01:00
|
|
|
<ul class="mx-20 w-100" style="list-style-type:disc;">
|
|
|
|
<li>Unlimited Clients, Invoices and Quotes</li>
|
2022-02-23 03:31:53 +01:00
|
|
|
<li>Remove "Created by Invoice Ninja" from invoices</li>
|
2022-03-10 05:49:56 +01:00
|
|
|
<li>Enable emails to be sent from your Gmail</li>
|
2022-02-23 03:31:53 +01:00
|
|
|
<li>Create subscriptions: Recurring & Auto-billing</li>
|
|
|
|
<li>API integration with 3rd party apps & platforms</li>
|
|
|
|
<li>Custom reminders</li>
|
|
|
|
<li>Attach PDF's to client emails</li>
|
|
|
|
<li>Display clients e-signature on invoices and quotes</li>
|
|
|
|
<li>Enable clients to "Approve Terms' checkbox</li>
|
|
|
|
<li>Bulk emailing of invoices and quotes</li>
|
2022-03-10 05:49:56 +01:00
|
|
|
<li>Much more!</li>
|
2022-02-23 03:31:53 +01:00
|
|
|
</ul>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
2022-03-10 05:49:56 +01:00
|
|
|
</div>
|
2022-02-23 03:07:48 +01:00
|
|
|
<div class="w-1/2 overflow-hidden">
|
|
|
|
|
2022-02-23 07:39:36 +01:00
|
|
|
<form id="card-form" action="{{ route('client.trial.response') }}" method="post">
|
|
|
|
@csrf
|
|
|
|
<input type="hidden" name="gateway_response">
|
|
|
|
<div class="alert alert-failure mb-4" hidden id="errors"></div>
|
|
|
|
|
2022-02-23 03:07:48 +01:00
|
|
|
<div class="form-group mb-2">
|
|
|
|
<input type="text" class="form-control block
|
|
|
|
w-full
|
|
|
|
px-3
|
2022-02-23 03:31:53 +01:00
|
|
|
py-2
|
2022-02-23 03:07:48 +01:00
|
|
|
text-base
|
|
|
|
font-normal
|
|
|
|
text-gray-700
|
|
|
|
bg-white bg-clip-padding
|
|
|
|
border border-solid border-gray-300
|
|
|
|
rounded
|
|
|
|
transition
|
|
|
|
ease-in-out
|
|
|
|
m-0
|
2022-02-23 07:39:36 +01:00
|
|
|
focus:text-gray-700 focus:bg-white focus:border-blue-600 focus:outline-none" id="name"
|
2022-02-23 03:07:48 +01:00
|
|
|
placeholder="{{ ctrans('texts.name') }}"
|
|
|
|
name="name"
|
|
|
|
value="{{$client->present()->name()}}">
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class="form-group mb-2">
|
|
|
|
<input type="text" class="form-control block
|
|
|
|
w-full
|
|
|
|
px-3
|
2022-02-23 03:31:53 +01:00
|
|
|
py-2
|
2022-02-23 03:07:48 +01:00
|
|
|
text-base
|
|
|
|
font-normal
|
|
|
|
text-gray-700
|
|
|
|
bg-white bg-clip-padding
|
|
|
|
border border-solid border-gray-300
|
|
|
|
rounded
|
|
|
|
transition
|
|
|
|
ease-in-out
|
|
|
|
m-0
|
2022-02-23 07:39:36 +01:00
|
|
|
focus:text-gray-700 focus:bg-white focus:border-blue-600 focus:outline-none" id="address1"
|
2022-02-23 03:07:48 +01:00
|
|
|
placeholder="{{ ctrans('texts.address1') }}"
|
|
|
|
name="address1"
|
|
|
|
value="{{$client->address1}}">
|
|
|
|
</div>
|
|
|
|
<div class="form-group mb-2">
|
|
|
|
<input type="text" class="form-control block
|
|
|
|
w-full
|
|
|
|
px-3
|
2022-02-23 03:31:53 +01:00
|
|
|
py-2
|
2022-02-23 03:07:48 +01:00
|
|
|
text-base
|
|
|
|
font-normal
|
|
|
|
text-gray-700
|
|
|
|
bg-white bg-clip-padding
|
|
|
|
border border-solid border-gray-300
|
|
|
|
rounded
|
|
|
|
transition
|
|
|
|
ease-in-out
|
|
|
|
m-0
|
|
|
|
focus:text-gray-700 focus:bg-white focus:border-blue-600 focus:outline-none" id="address2"
|
|
|
|
placeholder="{{ ctrans('texts.address2') }}"
|
|
|
|
name="address2"
|
|
|
|
value="{{$client->address2}}">
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class="flex form-group mb-2">
|
|
|
|
|
|
|
|
<div class="w-full gap-x-2 md:w-1/3">
|
|
|
|
<div class="form-group">
|
|
|
|
<input type="text" class="form-control block
|
|
|
|
w-full
|
|
|
|
px-3
|
2022-02-23 03:31:53 +01:00
|
|
|
py-2
|
2022-02-23 03:07:48 +01:00
|
|
|
text-base
|
|
|
|
font-normal
|
|
|
|
text-gray-700
|
|
|
|
bg-white bg-clip-padding
|
|
|
|
border border-solid border-gray-300
|
|
|
|
rounded
|
|
|
|
transition
|
|
|
|
ease-in-out
|
|
|
|
m-0
|
|
|
|
focus:text-gray-700 focus:bg-white focus:border-blue-600 focus:outline-none" id="city"
|
|
|
|
placeholder="{{ ctrans('texts.city') }}"
|
|
|
|
name="city"
|
|
|
|
value="{{$client->city}}">
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class="w-full gap-x-2 md:w-1/3">
|
|
|
|
<div class="form-group">
|
|
|
|
<input type="text" class="form-control block
|
|
|
|
w-full
|
|
|
|
px-3
|
2022-02-23 03:31:53 +01:00
|
|
|
py-2
|
2022-02-23 03:07:48 +01:00
|
|
|
text-base
|
|
|
|
font-normal
|
|
|
|
text-gray-700
|
|
|
|
bg-white bg-clip-padding
|
|
|
|
border border-solid border-gray-300
|
|
|
|
rounded
|
|
|
|
transition
|
|
|
|
ease-in-out
|
|
|
|
m-0
|
|
|
|
focus:text-gray-700 focus:bg-white focus:border-blue-600 focus:outline-none" id="state"
|
|
|
|
placeholder="{{ ctrans('texts.state') }}"
|
|
|
|
name="state"
|
|
|
|
value="{{$client->state}}">
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class="w-full gap-x-2 md:w-1/3">
|
|
|
|
<div class="form-group">
|
|
|
|
<input type="text" class="form-control block
|
|
|
|
w-full
|
|
|
|
px-3
|
2022-02-23 03:31:53 +01:00
|
|
|
py-2
|
2022-02-23 03:07:48 +01:00
|
|
|
text-base
|
|
|
|
font-normal
|
|
|
|
text-gray-700
|
|
|
|
bg-white bg-clip-padding
|
|
|
|
border border-solid border-gray-300
|
|
|
|
rounded
|
|
|
|
transition
|
|
|
|
ease-in-out
|
|
|
|
m-0
|
|
|
|
focus:text-gray-700 focus:bg-white focus:border-blue-600 focus:outline-none" id="postal_code"
|
|
|
|
placeholder="{{ ctrans('texts.postal_code') }}"
|
|
|
|
name="postal_code"
|
|
|
|
value="{{$client->postal_code}}">
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class="form-group mb-2">
|
2022-02-23 07:39:36 +01:00
|
|
|
<select name="country" id="country" class="form-select w-full py-2 text-gray-700">
|
2022-02-23 07:48:22 +01:00
|
|
|
<option value="{{ $client->country->id}}" selected>{{ $client->country->iso_3166_2 }} ({{ $client->country->name }})</option>
|
2022-02-23 03:07:48 +01:00
|
|
|
@foreach($countries as $country)
|
2022-02-23 07:48:22 +01:00
|
|
|
<option value="{{ $country->id }}">{{ $country->iso_3166_2 }} ({{ $country->name }})></option>
|
2022-02-23 03:07:48 +01:00
|
|
|
@endforeach
|
|
|
|
</select>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class="mb-2">
|
|
|
|
<div id="card-element" class="border p-4 rounded
|
|
|
|
text-base
|
|
|
|
font-normal
|
|
|
|
text-gray-700
|
|
|
|
bg-white bg-clip-padding
|
|
|
|
border border-solid border-gray-300
|
|
|
|
focus:text-gray-700 focus:bg-white focus:border-blue-600 focus:outline-none"></div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class="flex justify-end">
|
|
|
|
<button
|
|
|
|
@isset($form) form="{{ $form }}" @endisset
|
|
|
|
type="{{ $type ?? 'button' }}"
|
|
|
|
id="{{ $id ?? 'pay-now' }}"
|
|
|
|
@isset($data) @foreach($data as $prop => $value) data-{{ $prop }}="{{ $value }}" @endforeach @endisset
|
|
|
|
class="button button-primary bg-primary {{ $class ?? '' }}"
|
|
|
|
{{ isset($disabled) && $disabled === true ? 'disabled' : '' }}>
|
|
|
|
<svg class="animate-spin h-5 w-5 text-white hidden" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24">
|
|
|
|
<circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"></circle>
|
|
|
|
<path class="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"></path>
|
|
|
|
</svg>
|
|
|
|
<span>{{ $slot ?? ctrans('texts.trial_call_to_action') }}</span>
|
|
|
|
</button>
|
|
|
|
</div>
|
2022-02-23 03:31:53 +01:00
|
|
|
<div class="flex justify-end mt-5">
|
|
|
|
<span class="text-gray-700" style="font-size:12px;">* At the end of your 14 day trial your card will be charged $10/month. Cancel anytime.</span>
|
|
|
|
</div>
|
2022-02-23 03:07:48 +01:00
|
|
|
|
|
|
|
</form>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
2022-03-10 05:49:56 +01:00
|
|
|
<div class="w-full mt-6 pt-6">
|
|
|
|
<div class="relative">
|
|
|
|
<div class="absolute inset-0 flex items-center" aria-hidden="true">
|
|
|
|
<div class="w-full border-t border-gray-300"></div>
|
|
|
|
</div>
|
|
|
|
<div class="relative flex justify-center">
|
|
|
|
<span class="px-2 bg-white text-sm text-gray-500"> Discounted Plans </span>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
<div class="w-1/2 overflow-hidden py-10 mt-10 content-center">
|
|
|
|
|
|
|
|
<h2 class="mb-6 py-10 text-lg">
|
|
|
|
Enterprise Plan (1-2 Users) Annual<br>
|
|
|
|
Buy 10 months, get 2 free!
|
|
|
|
</h2>
|
|
|
|
<p>
|
|
|
|
Enjoy the power of Enterprise with 3rd party attachments<br> and a custom domain client portal.
|
|
|
|
</p>
|
|
|
|
<button class="bg-blue-500 hover:bg-blue-400 text-white font-bold py-2 px-4 border-b-4 border-blue-700 hover:border-blue-500 rounded mt-5" id="annual_enterprise">
|
|
|
|
Buy Now!
|
|
|
|
</button>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class="w-1/2 overflow-hidden py-10 mt-10 content-center">
|
|
|
|
<h2 class="mb-6 py-10 text-lg">
|
|
|
|
Pro Plan Annual<br>
|
|
|
|
Buy 10 months, get 2 free!
|
|
|
|
</h2>
|
|
|
|
<p>
|
|
|
|
Enjoy Pro Plan for a year, <br>with advanced features including send with Gmail and API integrations.
|
|
|
|
</p>
|
|
|
|
<button class="bg-blue-500 hover:bg-blue-400 text-white font-bold py-2 px-4 border-b-4 border-blue-700 hover:border-blue-500 rounded mt-5" id="annual_pro">
|
|
|
|
Buy Now!
|
|
|
|
</button>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
2022-02-23 03:07:48 +01:00
|
|
|
|
|
|
|
@endsection
|
|
|
|
|
|
|
|
@push('footer')
|
|
|
|
<script src="https://js.stripe.com/v3/"></script>
|
|
|
|
|
|
|
|
<script type="text/javascript">
|
|
|
|
|
2022-03-10 05:49:56 +01:00
|
|
|
document.getElementById('annual_enterprise').addEventListener('click', function() {
|
|
|
|
|
|
|
|
location.href = 'https://invoiceninja.invoicing.co/client/subscriptions/LYqaQWldnj/purchase';
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
document.getElementById('annual_pro').addEventListener('click', function() {
|
|
|
|
|
|
|
|
location.href = 'https://invoiceninja.invoicing.co/client/subscriptions/q9wdL9wejP/purchase';
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
2022-02-23 03:07:48 +01:00
|
|
|
var stripe = Stripe('{{ $gateway->getPublishableKey()}}');
|
2022-02-23 07:39:36 +01:00
|
|
|
var client_secret = '{{ $intent->client_secret }}';
|
2022-02-23 03:07:48 +01:00
|
|
|
|
|
|
|
var elements = stripe.elements({
|
2022-02-23 07:39:36 +01:00
|
|
|
clientSecret: client_secret,
|
2022-02-23 03:07:48 +01:00
|
|
|
});
|
|
|
|
|
|
|
|
var cardElement = elements.create('card', {
|
|
|
|
value: {
|
2022-02-23 07:39:36 +01:00
|
|
|
postalCode: document.querySelector('input[name=postal_code]').content,
|
|
|
|
name: document.querySelector('input[name=name]').content
|
2022-02-23 03:07:48 +01:00
|
|
|
}
|
|
|
|
});
|
|
|
|
|
|
|
|
cardElement.mount('#card-element');
|
|
|
|
|
2022-02-23 07:39:36 +01:00
|
|
|
const form = document.getElementById('card-form');
|
|
|
|
|
|
|
|
var e = document.getElementById("country");
|
|
|
|
var country_value = e.options[e.selectedIndex].value;
|
|
|
|
|
|
|
|
document
|
|
|
|
.getElementById('pay-now')
|
|
|
|
.addEventListener('click', () => {
|
|
|
|
|
|
|
|
let payNowButton = document.getElementById('pay-now');
|
|
|
|
payNowButton = payNowButton;
|
|
|
|
payNowButton.disabled = true;
|
|
|
|
payNowButton.querySelector('svg').classList.remove('hidden');
|
|
|
|
payNowButton.querySelector('span').classList.add('hidden');
|
|
|
|
|
|
|
|
stripe.handleCardSetup(this.client_secret, cardElement, {
|
|
|
|
payment_method_data: {
|
|
|
|
billing_details: {
|
|
|
|
name: document.querySelector('input[name=name]').content,
|
|
|
|
},
|
|
|
|
}
|
|
|
|
})
|
|
|
|
.then((result) => {
|
|
|
|
if (result.error) {
|
|
|
|
|
|
|
|
let errors = document.getElementById('errors');
|
|
|
|
let payNowButton = document.getElementById('pay-now');
|
|
|
|
|
|
|
|
errors.textContent = '';
|
|
|
|
errors.textContent = result.error.message;
|
|
|
|
errors.hidden = false;
|
|
|
|
|
|
|
|
payNowButton.disabled = false;
|
|
|
|
payNowButton.querySelector('svg').classList.add('hidden');
|
|
|
|
payNowButton.querySelector('span').classList.remove('hidden');
|
|
|
|
return;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
document.querySelector(
|
|
|
|
'input[name="gateway_response"]'
|
|
|
|
).value = JSON.stringify(result.setupIntent);
|
|
|
|
|
|
|
|
document.getElementById('card-form').submit();
|
|
|
|
|
|
|
|
});
|
2022-02-23 03:07:48 +01:00
|
|
|
|
2022-02-23 07:39:36 +01:00
|
|
|
});
|
2022-02-23 03:07:48 +01:00
|
|
|
|
|
|
|
</script>
|
|
|
|
@endpush
|