mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2024-11-09 12:42:36 +01:00
Working on self hosting
This commit is contained in:
parent
6175f3fc27
commit
9427f5180f
@ -2,7 +2,6 @@
|
||||
|
||||
return array(
|
||||
|
||||
//'DISABLE_REGISTRATION' => true,
|
||||
//'TAG_MANAGER_KEY' => '',
|
||||
//'ANALYTICS_KEY' => '',
|
||||
|
||||
|
@ -17,7 +17,7 @@ module.exports = function(grunt) {
|
||||
js: {
|
||||
src: [
|
||||
'public/vendor/jquery/dist/jquery.js',
|
||||
'public/vendor/jquery-ui/jquery-ui.min.js',
|
||||
'public/vendor/jquery-ui/ui/jquery-ui.js',
|
||||
'public/vendor/bootstrap/dist/js/bootstrap.min.js',
|
||||
'public/vendor/datatables/media/js/jquery.dataTables.js',
|
||||
'public/vendor/datatables-bootstrap3/BS3/assets/js/datatables.js',
|
||||
|
@ -21,11 +21,6 @@ class AccountController extends \BaseController {
|
||||
|
||||
public function getStarted()
|
||||
{
|
||||
if (Utils::isRegistrationDisabled())
|
||||
{
|
||||
return Redirect::away(NINJA_URL.'/invoice_now');
|
||||
}
|
||||
|
||||
if (Auth::check())
|
||||
{
|
||||
return Redirect::to('invoices/create');
|
||||
|
@ -14,10 +14,24 @@ class HomeController extends BaseController {
|
||||
$this->mailer = $mailer;
|
||||
}
|
||||
|
||||
public function showWelcome()
|
||||
public function showIndex()
|
||||
{
|
||||
if (Utils::isNinja())
|
||||
{
|
||||
return View::make('public.splash');
|
||||
}
|
||||
else
|
||||
{
|
||||
if (Account::count() == 0)
|
||||
{
|
||||
return Redirect::to('/invoice_now');
|
||||
}
|
||||
else
|
||||
{
|
||||
return Redirect::to('/login');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function showAboutUs()
|
||||
{
|
||||
|
@ -126,7 +126,7 @@ class InvoiceController extends \BaseController {
|
||||
$invoice->is_pro = $client->account->isPro();
|
||||
|
||||
$data = array(
|
||||
'hideHeader' => $client->account->isPro() && Utils::isNinjaProd(),
|
||||
'hideHeader' => true,
|
||||
'showBreadcrumbs' => false,
|
||||
'invoice' => $invoice->hidePrivateFields(),
|
||||
'invitation' => $invitation,
|
||||
|
@ -2,17 +2,19 @@
|
||||
|
||||
use ninja\repositories\PaymentRepository;
|
||||
use ninja\repositories\InvoiceRepository;
|
||||
use ninja\repositories\AccountRepository;
|
||||
|
||||
class PaymentController extends \BaseController
|
||||
{
|
||||
protected $creditRepo;
|
||||
|
||||
public function __construct(PaymentRepository $paymentRepo, InvoiceRepository $invoiceRepo)
|
||||
public function __construct(PaymentRepository $paymentRepo, InvoiceRepository $invoiceRepo, AccountRepository $accountRepo)
|
||||
{
|
||||
parent::__construct();
|
||||
|
||||
$this->paymentRepo = $paymentRepo;
|
||||
$this->invoiceRepo = $invoiceRepo;
|
||||
$this->accountRepo = $accountRepo;
|
||||
}
|
||||
|
||||
public function index()
|
||||
@ -120,25 +122,32 @@ class PaymentController extends \BaseController
|
||||
$gateway->$function($val);
|
||||
}
|
||||
|
||||
/*
|
||||
if (!Utils::isProd())
|
||||
{
|
||||
$gateway->setTestMode(true);
|
||||
}
|
||||
*/
|
||||
|
||||
return $gateway;
|
||||
}
|
||||
|
||||
private function getPaymentDetails($invoice, $input = null)
|
||||
private function getLicensePaymentDetails($input)
|
||||
{
|
||||
$key = $invoice->invoice_number . '_details';
|
||||
$gateway = $invoice->client->account->account_gateways[0]->gateway;
|
||||
$paymentLibrary = $gateway->paymentlibrary;
|
||||
$data = self::convertInputForOmnipay($input);
|
||||
$card = new CreditCard($data);
|
||||
|
||||
if ($input && $paymentLibrary->id == PAYMENT_LIBRARY_OMNIPAY)
|
||||
return [
|
||||
'amount' => LICENSE_PRICE,
|
||||
'card' => $card,
|
||||
'currency' => 'USD',
|
||||
'returnUrl' => URL::to('license_complete'),
|
||||
'cancelUrl' => URL::to('/')
|
||||
];
|
||||
|
||||
}
|
||||
|
||||
private function convertInputForOmnipay($input)
|
||||
{
|
||||
$data = [
|
||||
return [
|
||||
'firstName' => $input['first_name'],
|
||||
'lastName' => $input['last_name'],
|
||||
'number' => $input['card_number'],
|
||||
@ -154,8 +163,19 @@ class PaymentController extends \BaseController
|
||||
'shippingAddress2' => $input['address2'],
|
||||
'shippingCity' => $input['city'],
|
||||
'shippingState' => $input['state'],
|
||||
'shippingPostcode' => $input['postal_code'],
|
||||
'shippingPostcode' => $input['postal_code']
|
||||
];
|
||||
}
|
||||
|
||||
private function getPaymentDetails($invoice, $input = null)
|
||||
{
|
||||
$key = $invoice->invoice_number . '_details';
|
||||
$gateway = $invoice->client->account->account_gateways[0]->gateway;
|
||||
$paymentLibrary = $gateway->paymentlibrary;
|
||||
|
||||
if ($input && $paymentLibrary->id == PAYMENT_LIBRARY_OMNIPAY)
|
||||
{
|
||||
$data = self::convertInputForOmnipay($input);
|
||||
|
||||
Session::put($key, $data);
|
||||
}
|
||||
@ -258,20 +278,168 @@ class PaymentController extends \BaseController
|
||||
|
||||
$data = [
|
||||
'showBreadcrumbs' => false,
|
||||
'hideHeader' => $client->account->isPro() && Utils::isNinjaProd(),
|
||||
'invitationKey' => $invitationKey,
|
||||
'invoice' => $invoice,
|
||||
'hideHeader' => true,
|
||||
'url' => 'payment/' . $invitationKey,
|
||||
'amount' => $invoice->amount,
|
||||
'client' => $client,
|
||||
'contact' => $invitation->contact,
|
||||
'paymentLibrary' => $paymentLibrary,
|
||||
'gateway' => $gateway,
|
||||
'acceptedCreditCardTypes' => $acceptedCreditCardTypes,
|
||||
'countries' => Country::remember(DEFAULT_QUERY_CACHE)->orderBy('name')->get(),
|
||||
'currencyId' => $client->currency_id
|
||||
];
|
||||
|
||||
return View::make('payments.payment', $data);
|
||||
}
|
||||
|
||||
public function show_license_payment()
|
||||
{
|
||||
if (Input::has('return_url'))
|
||||
{
|
||||
Session::set('return_url', Input::get('return_url'));
|
||||
}
|
||||
|
||||
if (Input::has('affiliate_key'))
|
||||
{
|
||||
if ($affiliate = Affiliate::where('affiliate_key', '=', Input::get('affiliate_key'))->first())
|
||||
{
|
||||
Session::set('affiliate_id', $affiliate->id);
|
||||
}
|
||||
}
|
||||
|
||||
if (!Session::get('return_url') || !Session::get('affiliate_id'))
|
||||
{
|
||||
return Utils::fatalError();
|
||||
}
|
||||
|
||||
if (Input::has('test_mode'))
|
||||
{
|
||||
Session::set('test_mode', Input::get('test_mode'));
|
||||
}
|
||||
|
||||
|
||||
$account = $this->accountRepo->getNinjaAccount();
|
||||
$account->load('account_gateways.gateway');
|
||||
$accountGateway = $account->account_gateways[0];
|
||||
$gateway = $accountGateway->gateway;
|
||||
$paymentLibrary = $gateway->paymentlibrary;
|
||||
$acceptedCreditCardTypes = $accountGateway->getCreditcardTypes();
|
||||
|
||||
$affiliate = Affiliate::find(Session::get('affiliate_id'));
|
||||
|
||||
$data = [
|
||||
'showBreadcrumbs' => false,
|
||||
'hideHeader' => true,
|
||||
'url' => 'license',
|
||||
'amount' => LICENSE_PRICE,
|
||||
'client' => false,
|
||||
'contact' => false,
|
||||
'paymentLibrary' => $paymentLibrary,
|
||||
'gateway' => $gateway,
|
||||
'acceptedCreditCardTypes' => $acceptedCreditCardTypes,
|
||||
'countries' => Country::remember(DEFAULT_QUERY_CACHE)->orderBy('name')->get(),
|
||||
'currencyId' => 1,
|
||||
'paymentTitle' => $affiliate->payment_title,
|
||||
'paymentSubtitle' => $affiliate->payment_subtitle
|
||||
];
|
||||
|
||||
return View::make('payments.payment', $data);
|
||||
}
|
||||
|
||||
public function do_license_payment()
|
||||
{
|
||||
$testMode = Session::get('test_mode') === 'true';
|
||||
|
||||
$rules = array(
|
||||
'first_name' => 'required',
|
||||
'last_name' => 'required',
|
||||
'card_number' => 'required',
|
||||
'expiration_month' => 'required',
|
||||
'expiration_year' => 'required',
|
||||
'cvv' => 'required',
|
||||
'address1' => 'required',
|
||||
'city' => 'required',
|
||||
'state' => 'required',
|
||||
'postal_code' => 'required',
|
||||
);
|
||||
|
||||
$validator = Validator::make(Input::all(), $rules);
|
||||
|
||||
if ($validator->fails())
|
||||
{
|
||||
return Redirect::to('license')
|
||||
->withErrors($validator);
|
||||
}
|
||||
|
||||
$account = $this->accountRepo->getNinjaAccount();
|
||||
$account->load('account_gateways.gateway');
|
||||
$accountGateway = $account->account_gateways[0];
|
||||
|
||||
try
|
||||
{
|
||||
if ($testMode)
|
||||
{
|
||||
$ref = 'TEST_MODE';
|
||||
}
|
||||
else
|
||||
{
|
||||
$gateway = self::createGateway($accountGateway);
|
||||
$details = self::getLicensePaymentDetails(Input::all());
|
||||
|
||||
if (!$ref)
|
||||
{
|
||||
Session::flash('error', $response->getMessage());
|
||||
return Redirect::to('license')->withInput();
|
||||
}
|
||||
|
||||
if (!$response->isSuccessful())
|
||||
{
|
||||
Session::flash('error', $response->getMessage());
|
||||
Utils::logError($response->getMessage());
|
||||
return Redirect::to('license')->withInput();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
$license = new License;
|
||||
$license->first_name = Input::get('first_name');
|
||||
$license->last_name = Input::get('last_name');
|
||||
$license->email = Input::get('email');
|
||||
$license->transaction_reference = $ref;
|
||||
$license->license_key = Utils::generateLicense();
|
||||
$license->affiliate_id = Session::get('affiliate_id');
|
||||
$license->save();
|
||||
|
||||
return Redirect::away(Session::get('return_url') . "?license_key={$license->license_key}");
|
||||
}
|
||||
catch (\Exception $e)
|
||||
{
|
||||
$errorMessage = trans('texts.payment_error');
|
||||
Session::flash('error', $errorMessage);
|
||||
Utils::logError($e->getMessage());
|
||||
return Redirect::to('license')->withInput();
|
||||
}
|
||||
}
|
||||
|
||||
public function claim_license()
|
||||
{
|
||||
$license = License::where('license_key', '=', Input::get('key'))
|
||||
->where('is_claimed', '=', false)->first();
|
||||
|
||||
if ($license)
|
||||
{
|
||||
$license->is_claimed = true;
|
||||
$license->save();
|
||||
|
||||
return 'valid';
|
||||
}
|
||||
else
|
||||
{
|
||||
return 'invalid';
|
||||
}
|
||||
}
|
||||
|
||||
public function do_payment($invitationKey, $onSite = true)
|
||||
{
|
||||
$rules = array(
|
||||
|
@ -0,0 +1,58 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
|
||||
class OneClickInstall extends Migration {
|
||||
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::create('affiliates', function($table)
|
||||
{
|
||||
$table->increments('id');
|
||||
$table->timestamps();
|
||||
$table->softDeletes();
|
||||
|
||||
$table->string('name');
|
||||
$table->string('affiliate_key')->unique();
|
||||
|
||||
$table->text('payment_title');
|
||||
$table->text('payment_subtitle');
|
||||
});
|
||||
|
||||
Schema::create('licenses', function($table)
|
||||
{
|
||||
$table->increments('id');
|
||||
$table->timestamps();
|
||||
$table->softDeletes();
|
||||
$table->unsignedInteger('affiliate_id');
|
||||
|
||||
$table->string('first_name');
|
||||
$table->string('last_name');
|
||||
$table->string('email');
|
||||
|
||||
$table->string('license_key')->unique();
|
||||
$table->boolean('is_claimed');
|
||||
$table->string('transaction_reference');
|
||||
|
||||
$table->foreign('affiliate_id')->references('id')->on('affiliates');
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::dropIfExists('licenses');
|
||||
Schema::dropIfExists('affiliates');
|
||||
}
|
||||
|
||||
}
|
@ -32,11 +32,6 @@ class Utils
|
||||
return isset($_ENV['NINJA_DEV']) && $_ENV['NINJA_DEV'];
|
||||
}
|
||||
|
||||
public static function isRegistrationDisabled()
|
||||
{
|
||||
return isset($_ENV['DISABLE_REGISTRATION']) && $_ENV['DISABLE_REGISTRATION'];
|
||||
}
|
||||
|
||||
public static function isPro()
|
||||
{
|
||||
return Auth::check() && Auth::user()->isPro();
|
||||
@ -446,4 +441,12 @@ class Utils
|
||||
|
||||
return $message;
|
||||
}
|
||||
|
||||
public static function generateLicense() {
|
||||
$parts = [];
|
||||
for ($i=0; $i<5; $i++) {
|
||||
$parts[] = strtoupper(str_random(4));
|
||||
}
|
||||
return join('-', $parts);
|
||||
}
|
||||
}
|
@ -263,12 +263,12 @@ class Activity extends Eloquent
|
||||
{
|
||||
$activity = Activity::getBlank($client);
|
||||
$activity->contact_id = $payment->contact_id;
|
||||
$activity->message = Utils::encodeActivity($payment->invitation->contact, 'entered payment');
|
||||
$activity->message = Utils::encodeActivity($payment->invitation->contact, 'entered ' . $payment->getName());
|
||||
}
|
||||
else
|
||||
{
|
||||
$activity = Activity::getBlank();
|
||||
$message = $payment->payment_type_id == PAYMENT_TYPE_CREDIT ? 'applied credit' : 'entered payment';
|
||||
$message = $payment->payment_type_id == PAYMENT_TYPE_CREDIT ? 'applied credit' : 'entered ' . $payment->getName();
|
||||
$activity->message = Utils::encodeActivity(Auth::user(), $message);
|
||||
}
|
||||
|
||||
@ -310,7 +310,7 @@ class Activity extends Eloquent
|
||||
$activity->client_id = $invoice->client_id;
|
||||
$activity->invoice_id = $invoice->id;
|
||||
$activity->activity_type_id = ACTIVITY_TYPE_DELETE_PAYMENT;
|
||||
$activity->message = Utils::encodeActivity(Auth::user(), 'deleted payment');
|
||||
$activity->message = Utils::encodeActivity(Auth::user(), 'deleted ' . $payment->getName());
|
||||
$activity->balance = $client->balance;
|
||||
$activity->adjustment = $payment->amount;
|
||||
$activity->save();
|
||||
@ -357,7 +357,7 @@ class Activity extends Eloquent
|
||||
$activity->invoice_id = $invoice->id;
|
||||
$activity->client_id = $client->id;
|
||||
$activity->activity_type_id = ACTIVITY_TYPE_ARCHIVE_PAYMENT;
|
||||
$activity->message = Utils::encodeActivity(Auth::user(), 'archived payment');
|
||||
$activity->message = Utils::encodeActivity(Auth::user(), 'archived ' . $payment->getName());
|
||||
$activity->balance = $client->balance;
|
||||
$activity->adjustment = 0;
|
||||
$activity->save();
|
||||
|
7
app/models/Affiliate.php
Normal file
7
app/models/Affiliate.php
Normal file
@ -0,0 +1,7 @@
|
||||
<?php
|
||||
|
||||
class Affiliate extends Eloquent
|
||||
{
|
||||
public $timestamps = true;
|
||||
protected $softDelete = true;
|
||||
}
|
7
app/models/License.php
Normal file
7
app/models/License.php
Normal file
@ -0,0 +1,7 @@
|
||||
<?php
|
||||
|
||||
class License extends Eloquent
|
||||
{
|
||||
public $timestamps = true;
|
||||
protected $softDelete = true;
|
||||
}
|
@ -27,9 +27,14 @@ class Payment extends EntityModel
|
||||
return $this->belongsTo('Contact');
|
||||
}
|
||||
|
||||
public function getAmount()
|
||||
{
|
||||
return Utils::formatMoney($this->amount, $this->client->currency_id);
|
||||
}
|
||||
|
||||
public function getName()
|
||||
{
|
||||
return '';
|
||||
return trim("payment {$this->transaction_reference}");
|
||||
}
|
||||
|
||||
public function getEntityType()
|
||||
|
@ -147,7 +147,7 @@ class AccountRepository
|
||||
return $invoice;
|
||||
}
|
||||
|
||||
private function getNinjaAccount()
|
||||
public function getNinjaAccount()
|
||||
{
|
||||
$account = Account::whereAccountKey(NINJA_ACCOUNT_KEY)->first();
|
||||
|
||||
|
@ -22,39 +22,33 @@
|
||||
//dd(gethostname());
|
||||
//Log::error('test');
|
||||
|
||||
//if(Utils::isNinja()) {
|
||||
Route::get('/', 'HomeController@showIndex');
|
||||
Route::get('/rocksteady', 'HomeController@showIndex');
|
||||
Route::get('/about', 'HomeController@showAboutUs');
|
||||
Route::get('/terms', 'HomeController@showTerms');
|
||||
Route::get('/contact', 'HomeController@showContactUs');
|
||||
Route::get('/plans', 'HomeController@showPlans');
|
||||
Route::post('/contact_submit', 'HomeController@doContactUs');
|
||||
Route::get('/faq', 'HomeController@showFaq');
|
||||
Route::get('/features', 'HomeController@showFeatures');
|
||||
Route::get('/testimonials', 'HomeController@showTestimonials');
|
||||
|
||||
Route::get('/', 'HomeController@showWelcome');
|
||||
Route::get('/rocksteady', 'HomeController@showWelcome');
|
||||
Route::get('/about', 'HomeController@showAboutUs');
|
||||
Route::get('/terms', 'HomeController@showTerms');
|
||||
Route::get('/contact', 'HomeController@showContactUs');
|
||||
Route::get('/plans', 'HomeController@showPlans');
|
||||
Route::post('/contact_submit', 'HomeController@doContactUs');
|
||||
Route::get('/faq', 'HomeController@showFaq');
|
||||
Route::get('/features', 'HomeController@showFeatures');
|
||||
Route::get('/secure_payment', 'HomeController@showSecurePayment');
|
||||
Route::get('/testimonials', 'HomeController@showTestimonials');
|
||||
Route::get('log_error', 'HomeController@logError');
|
||||
Route::get('invoice_now', 'HomeController@invoiceNow');
|
||||
Route::post('get_started', 'AccountController@getStarted');
|
||||
|
||||
Route::get('log_error', 'HomeController@logError');
|
||||
Route::get('invoice_now', 'HomeController@invoiceNow');
|
||||
Route::post('get_started', 'AccountController@getStarted');
|
||||
Route::get('view/{invitation_key}', 'InvoiceController@view');
|
||||
Route::get('payment/{invitation_key}', 'PaymentController@show_payment');
|
||||
Route::post('payment/{invitation_key}', 'PaymentController@do_payment');
|
||||
Route::get('complete', 'PaymentController@offsite_payment');
|
||||
|
||||
Route::get('view/{invitation_key}', 'InvoiceController@view');
|
||||
Route::get('payment/{invitation_key}', 'PaymentController@show_payment');
|
||||
Route::post('payment/{invitation_key}', 'PaymentController@do_payment');
|
||||
Route::get('complete', 'PaymentController@offsite_payment');
|
||||
Route::get('license', 'PaymentController@show_license_payment');
|
||||
Route::post('license', 'PaymentController@do_license_payment');
|
||||
Route::get('claim_license', 'PaymentController@claim_license');
|
||||
|
||||
Route::post('signup/validate', 'AccountController@checkEmail');
|
||||
Route::post('signup/submit', 'AccountController@submitSignup');
|
||||
Route::post('signup/validate', 'AccountController@checkEmail');
|
||||
Route::post('signup/submit', 'AccountController@submitSignup');
|
||||
|
||||
/*
|
||||
} else {
|
||||
Route::get('/', function() {
|
||||
return Redirect::to('dashboard');
|
||||
});
|
||||
}
|
||||
*/
|
||||
|
||||
|
||||
// Confide routes
|
||||
@ -227,9 +221,10 @@ define('NINJA_ACCOUNT_KEY', 'zg4ylmzDkdkPOT8yoKQw9LTWaoZJx79h');
|
||||
define('NINJA_GATEWAY_ID', GATEWAY_AUTHORIZE_NET);
|
||||
define('NINJA_GATEWAY_CONFIG', '{"apiLoginId":"626vWcD5","transactionKey":"4bn26TgL9r4Br4qJ","testMode":"","developerMode":""}');
|
||||
define('NINJA_URL', 'https://www.invoiceninja.com');
|
||||
define('NINJA_VERSION', '1.2.0');
|
||||
define('PRO_PLAN_PRICE', 50);
|
||||
define('NINJA_VERSION', '1.2.2');
|
||||
|
||||
define('PRO_PLAN_PRICE', 50);
|
||||
define('LICENSE_PRICE', 30);
|
||||
|
||||
/*
|
||||
define('GATEWAY_AMAZON', 30);
|
||||
|
@ -22,6 +22,7 @@
|
||||
|
||||
<!-- TODO: creditcard-types IS SET IN JS FURTHER DOWN IN THE SCRIPT PART,
|
||||
AND THEN IN INLINE STYLE. REMOVE THIS WHEN RAZI HAS FIXED THE IMAGES AND STYLE -->
|
||||
<!--
|
||||
<div class="two-column">
|
||||
{{ Former::checkboxes('creditCardTypes[]')
|
||||
->label('Accepted Credit Cards')
|
||||
@ -29,6 +30,7 @@
|
||||
->class('creditcard-types')
|
||||
}}
|
||||
</div>
|
||||
-->
|
||||
|
||||
<div class="two-column">
|
||||
{{ Former::radios('recommendedGateway_id')->label('Recommended Gateways')
|
||||
|
@ -6,6 +6,7 @@
|
||||
<link href="{{ asset('built.css') }}" rel="stylesheet" type="text/css"/>
|
||||
|
||||
<!--
|
||||
<script src="{{ asset('vendor/jquery/dist/jquery.js') }}" type="text/javascript"></script>
|
||||
<script src="{{ asset('vendor/jquery-ui/ui/minified/jquery-ui.min.js') }}" type="text/javascript"></script>
|
||||
<script src="{{ asset('vendor/bootstrap/dist/js/bootstrap.min.js') }}" type="text/javascript"></script>
|
||||
<script src="{{ asset('vendor/datatables/media/js/jquery.dataTables.js') }}" type="text/javascript"></script>
|
||||
|
@ -452,7 +452,6 @@
|
||||
}
|
||||
|
||||
$(function() {
|
||||
|
||||
$('#country_id').combobox().on('change', function(e) {
|
||||
var countryId = parseInt($('input[name=country_id]').val(), 10);
|
||||
var foundMatch = false;
|
||||
|
@ -24,9 +24,6 @@
|
||||
|
||||
<script src="{{ asset('built.js') }}" type="text/javascript"></script>
|
||||
|
||||
<!-- <script src="{{ asset('vendor/jquery/jquery.js') }}" type="text/javascript"></script> -->
|
||||
<!-- <script src="{{ asset('vendor/jquery/dist/jquery.js') }}" type="text/javascript"></script> -->
|
||||
|
||||
<script type="text/javascript">
|
||||
var NINJA = NINJA || {};
|
||||
NINJA.isRegistered = {{ Utils::isRegistered() ? 'true' : 'false' }};
|
||||
|
@ -10,7 +10,7 @@
|
||||
}
|
||||
</style>
|
||||
|
||||
{{ Former::vertical_open('payment/' . $invitationKey)->rules(array(
|
||||
{{ Former::vertical_open($url)->rules(array(
|
||||
'first_name' => 'required',
|
||||
'last_name' => 'required',
|
||||
'card_number' => 'required',
|
||||
@ -23,13 +23,14 @@
|
||||
'postal_code' => 'required',
|
||||
'country' => 'required',
|
||||
'phone' => 'required',
|
||||
'email' => 'required'
|
||||
'email' => 'required|email'
|
||||
)) }}
|
||||
|
||||
{{ Former::populate($client) }}
|
||||
{{ Former::populateField('first_name', $contact->first_name) }}
|
||||
{{ Former::populateField('last_name', $contact->last_name) }}
|
||||
|
||||
@if ($client)
|
||||
{{ Former::populate($client) }}
|
||||
{{ Former::populateField('first_name', $contact->first_name) }}
|
||||
{{ Former::populateField('last_name', $contact->last_name) }}
|
||||
@endif
|
||||
|
||||
<section class="hero background hero-secure center" data-speed="2" data-type="background">
|
||||
<div class="container">
|
||||
@ -42,6 +43,7 @@
|
||||
</section>
|
||||
|
||||
<!-- Only set with inline style CHANGE THIS -->
|
||||
<!--
|
||||
<section class="accepted-card-types" style="padding: 10px 0 10px 0; margin-top: 40px;">
|
||||
<div class="container">
|
||||
@if(isset($acceptedCreditCardTypes))
|
||||
@ -51,40 +53,57 @@
|
||||
@endif
|
||||
</div>
|
||||
</section>
|
||||
-->
|
||||
|
||||
<section class="secure">
|
||||
<div class="container">
|
||||
@if (isset($paymentTitle))
|
||||
<h2>{{ $paymentTitle }}<br/>
|
||||
@if (isset($paymentSubtitle))
|
||||
<small>{{ $paymentSubtitle }}</small>
|
||||
@endif
|
||||
</h2> <p/>
|
||||
@endif
|
||||
<div id="secure-form" class="row">
|
||||
<div class="col-md-7 info">
|
||||
<div class="row">
|
||||
@if (isset($paymentTitle))
|
||||
<div class="form-group col-md-4">
|
||||
{{ Former::text('first_name') }}
|
||||
</div>
|
||||
<div class="form-group col-md-4">
|
||||
{{ Former::text('last_name') }}
|
||||
</div>
|
||||
<div class="form-group col-md-4">
|
||||
{{ Former::text('email') }}
|
||||
</div>
|
||||
@else
|
||||
<div class="form-group col-md-6">
|
||||
{{ Former::text('first_name') }}
|
||||
</div>
|
||||
<div class="form-group col-md-6">
|
||||
{{ Former::text('last_name') }}
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="form-group col-md-12">
|
||||
<div class="form-group col-md-8">
|
||||
{{ Former::text('address1')->label('Street') }}
|
||||
</div>
|
||||
<div class="form-group col-md-4">
|
||||
{{ Former::text('address2')->label('Apt/Suite') }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="form-group col-md-3">
|
||||
{{ Former::text('address2')->label('Apt/Suite') }}
|
||||
</div>
|
||||
|
||||
<div class="form-group col-md-3">
|
||||
<div class="form-group col-md-4">
|
||||
{{ Former::text('city') }}
|
||||
</div>
|
||||
|
||||
<div class="form-group col-md-3">
|
||||
<div class="form-group col-md-4">
|
||||
{{ Former::text('state')->label('State/Province') }}
|
||||
</div>
|
||||
|
||||
<div class="form-group col-md-3">
|
||||
<div class="form-group col-md-4">
|
||||
{{ Former::text('postal_code') }}
|
||||
</div>
|
||||
</div>
|
||||
@ -164,7 +183,7 @@
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
{{ Button::block_primary_submit_lg(strtoupper(trans('texts.pay_now')) . ' - ' . Utils::formatMoney($invoice->amount, $client->currency_id) ) }}
|
||||
{{ Button::block_primary_submit_lg(strtoupper(trans('texts.pay_now')) . ' - ' . Utils::formatMoney($amount, $currencyId) ) }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -175,52 +194,6 @@
|
||||
|
||||
|
||||
|
||||
|
||||
<!--
|
||||
</div>
|
||||
|
||||
<div class="col-md-5 col-md-offset-1" style="background-color:#DDD;padding-top:16px">
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
{{ Former::text('card_number') }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
{{ Former::text('cvv') }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<p> <p/>
|
||||
<p> <p/>
|
||||
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
|
||||
{{ Button::block_primary_submit_lg(strtoupper(trans('texts.pay_now')) . ' - ' . Utils::formatMoney($invoice->amount, $client->currency_id) ) }}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
-->
|
||||
|
||||
|
||||
|
||||
|
||||
{{ Former::close() }}
|
||||
|
||||
@stop
|
@ -104,6 +104,7 @@
|
||||
<li>{{ link_to('https://www.invoiceninja.com/about', 'About Us' ) }}</li>
|
||||
<li>{{ link_to('https://www.invoiceninja.com/contact', 'Contact Us' ) }}</li>
|
||||
<li>{{ link_to('http://blog.invoiceninja.com', 'Blog' ) }} </li>
|
||||
|
||||
<li><a href="https://www.facebook.com/invoiceninja" target="_blank"><span class="socicon">b</span></a></li>
|
||||
<li><a href="https://twitter.com/invoiceninja" target="_blank"><span class="socicon">a</span></a></li>
|
||||
<li><a href="https://www.linkedin.com/company/invoice-ninja" target="_blank"><span class="socicon">j</span></a></li>
|
||||
@ -206,16 +207,16 @@
|
||||
|
||||
<!--<iframe src="http://ghbtns.com/github-btn.html?user=hillelcoren&repo=invoice-ninja&type=watch" allowtransparency="true" frameborder="0" scrolling="0" width="62" height="20"></iframe>-->
|
||||
|
||||
<img src="{{ asset('images/footer-logo.png') }}">
|
||||
<a href="{{ NINJA_URL }}"><img src="{{ asset('images/footer-logo.png') }}"></a>
|
||||
<hr>
|
||||
<ul class="navbar-vertical">
|
||||
<li>{{ link_to('https://www.invoiceninja.com/features', 'Features' ) }}</li>
|
||||
<!-- <li>{{ link_to('https://www.invoiceninja.com/faq', 'FAQ' ) }}</li> -->
|
||||
<li>{{ link_to('https://www.invoiceninja.com/about', 'About Us' ) }}</li>
|
||||
<li>{{ link_to('https://www.invoiceninja.com/plans', 'Plans' ) }}</li>
|
||||
<li>{{ link_to('https://www.invoiceninja.com/contact', 'Contact Us' ) }}</li>
|
||||
<li>{{ link_to('https://www.invoiceninja.com/testimonials', 'Testimonials' ) }}</li>
|
||||
<li>{{ link_to('https://www.invoiceninja.com/faq', 'FAQ' ) }}</li>
|
||||
<li>{{ link_to('http://blog.invoiceninja.com', 'Blog' ) }}</li>
|
||||
<li>{{ link_to('login', Auth::check() ? 'My Account' : 'Login' ) }}</li>
|
||||
<li>{{ link_to('https://www.invoiceninja.com/about', 'About Us' ) }}</li>
|
||||
<li>{{ link_to('https://www.invoiceninja.com/contact', 'Contact Us' ) }}</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
@ -461,9 +462,13 @@
|
||||
</div>
|
||||
|
||||
<div class="col-md-4">
|
||||
@if (Request::secure())
|
||||
<h3><img src="{{ asset('images/icon-secure-footer.png') }}" style="margin-right: 8px; margin-top: -5px;"></span>Safe & Secure</h3>
|
||||
<img src="{{ asset('images/ssl-footer.png') }}">
|
||||
<hr>
|
||||
@else
|
||||
<h3> </h3>
|
||||
@endif
|
||||
<a href="http://opensource.org/" target="_blank"><img src="{{ asset('images/opensource-footer.png') }}"></a>
|
||||
</div>
|
||||
|
||||
|
File diff suppressed because one or more lines are too long
15257
public/built.js
15257
public/built.js
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -298,10 +298,13 @@ section.features-splash,
|
||||
section.upper-footer {
|
||||
margin: 70px 0;
|
||||
}
|
||||
section.features, section.about, section.team, section.secure, section.testi {
|
||||
section.features, section.about, section.team, section.testi {
|
||||
margin: 0;
|
||||
padding: 100px 0;
|
||||
}
|
||||
section.secure {
|
||||
padding: 50px 0 100px 0;
|
||||
}
|
||||
section.features1 {
|
||||
padding-bottom: 0;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user