mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2025-06-21 21:41:15 -04:00
Onging work
This commit is contained in:
commit
e233d4b347
@ -4,11 +4,9 @@
|
||||
### [https://www.invoiceninja.com](https://www.invoiceninja.com)
|
||||
### Introduction
|
||||
|
||||
Most online invoicing sites are expensive. They shouldn't be. The aim of this project is to provide a free, open-source alternative. Additionally, the hope is the codebase will serve as a sample site for Laravel as well as other JavaScript technologies.
|
||||
Most online invoicing sites are expensive. They shouldn't be. The aim of this project is to provide a free, open-source alternative. [This guide](http://hillelcoren.com/invoice-ninja/self-hosting/) is the simplest way to setup the site. The high level instructions for setting up the site using Git are below but there's also a more detailed [setup guide](http://hillelcoren.com/invoice-ninja/laravel-ubuntu-virtualbox/).
|
||||
|
||||
[This guide](http://hillelcoren.com/invoice-ninja/self-hosting/) is the simplest way to setup the site. The high level instructions for setting up the site using Git are below but there's also a more detailed [setup guide](http://hillelcoren.com/invoice-ninja/laravel-ubuntu-virtualbox/).
|
||||
|
||||
For updates follow [@invoiceninja](https://twitter.com/invoiceninja) or join the [Facebook Group](https://www.facebook.com/invoiceninja). For discussion of the code please use the [Google Group](https://groups.google.com/d/forum/invoiceninja).
|
||||
To connect follow [@invoiceninja](https://twitter.com/invoiceninja) or join the [Facebook Group](https://www.facebook.com/invoiceninja). For discussion of the code please use the [Google Group](https://groups.google.com/d/forum/invoiceninja).
|
||||
|
||||
If you'd like to translate the site please use [caouecs/Laravel4-long](https://github.com/caouecs/Laravel4-lang) for the starter files.
|
||||
|
||||
|
@ -78,7 +78,7 @@ class AccountController extends \BaseController {
|
||||
return Response::json($data);
|
||||
}
|
||||
|
||||
public function showSection($section = ACCOUNT_DETAILS)
|
||||
public function showSection($section = ACCOUNT_DETAILS, $subSection = false)
|
||||
{
|
||||
if ($section == ACCOUNT_DETAILS)
|
||||
{
|
||||
@ -184,10 +184,11 @@ class AccountController extends \BaseController {
|
||||
else if ($section == ACCOUNT_ADVANCED_SETTINGS)
|
||||
{
|
||||
$data = [
|
||||
'account' => Auth::user()->account
|
||||
'account' => Auth::user()->account,
|
||||
'feature' => $subSection
|
||||
];
|
||||
|
||||
return View::make('accounts.advanced_settings', $data);
|
||||
return View::make("accounts.{$subSection}", $data);
|
||||
}
|
||||
else if ($section == ACCOUNT_PRODUCTS)
|
||||
{
|
||||
@ -227,7 +228,14 @@ class AccountController extends \BaseController {
|
||||
}
|
||||
else if ($section == ACCOUNT_ADVANCED_SETTINGS)
|
||||
{
|
||||
return AccountController::saveAdvancedSettings();
|
||||
if ($subSection == ACCOUNT_CUSTOM_FIELDS)
|
||||
{
|
||||
return AccountController::saveCustomFields();
|
||||
}
|
||||
else if ($subSection == ACCOUNT_INVOICE_DESIGN)
|
||||
{
|
||||
return AccountController::saveInvoiceDesign();
|
||||
}
|
||||
}
|
||||
else if ($section == ACCOUNT_PRODUCTS)
|
||||
{
|
||||
@ -247,23 +255,37 @@ class AccountController extends \BaseController {
|
||||
return Redirect::to('company/products');
|
||||
}
|
||||
|
||||
private function saveAdvancedSettings()
|
||||
private function saveCustomFields()
|
||||
{
|
||||
if (!Auth::user()->account->isPro())
|
||||
{
|
||||
$account = Auth::user()->account;
|
||||
|
||||
$account->custom_label1 = Input::get('custom_label1');
|
||||
$account->custom_value1 = Input::get('custom_value1');
|
||||
$account->custom_label2 = Input::get('custom_label2');
|
||||
$account->custom_value2 = Input::get('custom_value2');
|
||||
$account->custom_client_label1 = Input::get('custom_client_label1');
|
||||
$account->custom_client_label2 = Input::get('custom_client_label2');
|
||||
|
||||
$account->primary_color = Input::get('primary_color');// ? Input::get('primary_color') : null;
|
||||
$account->secondary_color = Input::get('secondary_color');// ? Input::get('secondary_color') : null;
|
||||
|
||||
$account->save();
|
||||
|
||||
Session::flash('message', trans('texts.updated_settings'));
|
||||
}
|
||||
|
||||
return Redirect::to('company/advanced_settings');
|
||||
}
|
||||
|
||||
private function saveInvoiceDesign()
|
||||
{
|
||||
if (!Auth::user()->account->isPro())
|
||||
{
|
||||
$account = Auth::user()->account;
|
||||
$account->primary_color = Input::get('primary_color');// ? Input::get('primary_color') : null;
|
||||
$account->secondary_color = Input::get('secondary_color');// ? Input::get('secondary_color') : null;
|
||||
$account->save();
|
||||
|
||||
Session::flash('message', trans('texts.updated_settings'));
|
||||
}
|
||||
|
||||
return Redirect::to('company/advanced_settings');
|
||||
}
|
||||
|
||||
|
@ -38,7 +38,7 @@ class PaymentController extends \BaseController
|
||||
}
|
||||
|
||||
$table->addColumn('transaction_reference', function($model) { return $model->transaction_reference ? $model->transaction_reference : '<i>Manual entry</i>'; })
|
||||
->addColumn('payment_type', function($model) { return $model->payment_type ? $model->payment_type : ($model->transaction_reference ? '<i>Online payment</i>' : ''); });
|
||||
->addColumn('payment_type', function($model) { return $model->payment_type ? $model->payment_type : ($model->account_gateway_id ? '<i>Online payment</i>' : ''); });
|
||||
|
||||
return $table->addColumn('amount', function($model) { return Utils::formatMoney($model->amount, $model->currency_id); })
|
||||
->addColumn('payment_date', function($model) { return Utils::dateToString($model->payment_date); })
|
||||
|
@ -24,7 +24,10 @@ class ReportController extends \BaseController {
|
||||
$datasets = [];
|
||||
$labels = [];
|
||||
$maxTotals = 0;
|
||||
$width = 10;
|
||||
|
||||
if (Auth::user()->account->isPro())
|
||||
{
|
||||
foreach ([ENTITY_INVOICE, ENTITY_PAYMENT, ENTITY_CREDIT] as $entityType)
|
||||
{
|
||||
$records = DB::table($entityType.'s')
|
||||
@ -71,6 +74,7 @@ class ReportController extends \BaseController {
|
||||
|
||||
$width = (ceil( $maxTotals / 100 ) * 100) / 10;
|
||||
$width = max($width, 10);
|
||||
}
|
||||
|
||||
$dateTypes = [
|
||||
'DAYOFYEAR' => 'Daily',
|
||||
@ -92,7 +96,8 @@ class ReportController extends \BaseController {
|
||||
'chartType' => $chartType,
|
||||
'startDate' => $startDate->format(Session::get(SESSION_DATE_FORMAT)),
|
||||
'endDate' => $endDate->modify('-1'.$padding)->format(Session::get(SESSION_DATE_FORMAT)),
|
||||
'groupBy' => $groupBy
|
||||
'groupBy' => $groupBy,
|
||||
'feature' => ACCOUNT_CHART_BUILDER,
|
||||
];
|
||||
|
||||
return View::make('reports.report_builder', $params);
|
||||
|
@ -46,6 +46,7 @@ class ConstantsSeeder extends Seeder
|
||||
PaymentType::create(array('name' => 'Credit Card Other'));
|
||||
PaymentType::create(array('name' => 'PayPal'));
|
||||
PaymentType::create(array('name' => 'Google Wallet'));
|
||||
PaymentType::create(array('name' => 'Check'));
|
||||
|
||||
Theme::create(array('name' => 'amelia'));
|
||||
Theme::create(array('name' => 'cerulean'));
|
||||
|
@ -334,5 +334,8 @@ return array(
|
||||
'archived_product' => 'Produkt erfolgreich archiviert',
|
||||
'product_library' => 'Produktbibliothek',
|
||||
|
||||
'chart_builder' => 'Chart Builder',
|
||||
'ninja_email_footer' => 'Use :site to invoice your clients and get paid online for free!',
|
||||
|
||||
|
||||
);
|
||||
|
@ -348,5 +348,8 @@ return array(
|
||||
'specify_colors' => 'Specify colors',
|
||||
'specify_colors_label' => 'Select the colors used in the invoice',
|
||||
|
||||
'chart_builder' => 'Chart Builder',
|
||||
'ninja_email_footer' => 'Use :site to invoice your clients and get paid online for free!',
|
||||
|
||||
);
|
||||
|
||||
|
@ -333,4 +333,7 @@ return array(
|
||||
'created_product' => 'Successfully created product',
|
||||
'archived_product' => 'Successfully archived product',
|
||||
|
||||
'chart_builder' => 'Chart Builder',
|
||||
'ninja_email_footer' => 'Use :site to invoice your clients and get paid online for free!',
|
||||
|
||||
);
|
||||
|
@ -334,4 +334,7 @@ return array(
|
||||
'created_product' => 'Successfully created product',
|
||||
'archived_product' => 'Successfully archived product',
|
||||
|
||||
'chart_builder' => 'Chart Builder',
|
||||
'ninja_email_footer' => 'Use :site to invoice your clients and get paid online for free!',
|
||||
|
||||
);
|
||||
|
@ -334,4 +334,7 @@ return array(
|
||||
'created_product' => 'Successfully created product',
|
||||
'archived_product' => 'Successfully archived product',
|
||||
|
||||
'chart_builder' => 'Chart Builder',
|
||||
'ninja_email_footer' => 'Use :site to invoice your clients and get paid online for free!',
|
||||
|
||||
);
|
||||
|
@ -335,4 +335,7 @@ return array(
|
||||
'created_product' => 'Successfully created product',
|
||||
'archived_product' => 'Successfully archived product',
|
||||
|
||||
'chart_builder' => 'Chart Builder',
|
||||
'ninja_email_footer' => 'Use :site to invoice your clients and get paid online for free!',
|
||||
|
||||
);
|
||||
|
@ -323,5 +323,8 @@ return array(
|
||||
'created_product' => 'Successfully created product',
|
||||
'archived_product' => 'Successfully archived product',
|
||||
|
||||
'chart_builder' => 'Chart Builder',
|
||||
'ninja_email_footer' => 'Use :site to invoice your clients and get paid online for free!',
|
||||
|
||||
|
||||
);
|
||||
|
@ -219,7 +219,7 @@ class Utils
|
||||
return $date->format($format);
|
||||
}
|
||||
|
||||
public static function toSqlDate($date)
|
||||
public static function toSqlDate($date, $formatResult = true)
|
||||
{
|
||||
if (!$date)
|
||||
{
|
||||
@ -229,10 +229,12 @@ class Utils
|
||||
$timezone = Session::get(SESSION_TIMEZONE);
|
||||
$format = Session::get(SESSION_DATE_FORMAT);
|
||||
|
||||
return DateTime::createFromFormat($format, $date, new DateTimeZone($timezone))->format('Y-m-d');
|
||||
|
||||
$dateTime = DateTime::createFromFormat($format, $date, new DateTimeZone($timezone));
|
||||
return $formatResult ? $dateTime->format('Y-m-d') : $dateTime;
|
||||
}
|
||||
|
||||
public static function fromSqlDate($date)
|
||||
public static function fromSqlDate($date, $formatResult = true)
|
||||
{
|
||||
if (!$date || $date == '0000-00-00')
|
||||
{
|
||||
@ -242,7 +244,8 @@ class Utils
|
||||
$timezone = Session::get(SESSION_TIMEZONE);
|
||||
$format = Session::get(SESSION_DATE_FORMAT);
|
||||
|
||||
return DateTime::createFromFormat('Y-m-d', $date, new DateTimeZone($timezone))->format($format);
|
||||
$dateTime = DateTime::createFromFormat('Y-m-d', $date, new DateTimeZone($timezone));
|
||||
return $formatResult ? $dateTime->format($format) : $dateTime;
|
||||
}
|
||||
|
||||
public static function today($formatResult = true)
|
||||
|
@ -198,6 +198,7 @@ class AccountRepository
|
||||
$client = new Client;
|
||||
$client->public_id = Auth::user()->account_id;
|
||||
$client->user_id = $ninjaAccount->users()->first()->id;
|
||||
$client->currency_id = 1;
|
||||
foreach (['name', 'address1', 'address2', 'city', 'state', 'postal_code', 'country_id', 'work_phone'] as $field)
|
||||
{
|
||||
$client->$field = Auth::user()->account->$field;
|
||||
|
@ -18,7 +18,7 @@ class PaymentRepository
|
||||
->where('payments.account_id', '=', \Auth::user()->account_id)
|
||||
->where('clients.deleted_at', '=', null)
|
||||
->where('contacts.is_primary', '=', true)
|
||||
->select('payments.public_id', 'payments.transaction_reference', 'clients.name as client_name', 'clients.public_id as client_public_id', 'payments.amount', 'payments.payment_date', 'invoices.public_id as invoice_public_id', 'invoices.invoice_number', 'clients.currency_id', 'contacts.first_name', 'contacts.last_name', 'contacts.email', 'payment_types.name as payment_type');
|
||||
->select('payments.public_id', 'payments.transaction_reference', 'clients.name as client_name', 'clients.public_id as client_public_id', 'payments.amount', 'payments.payment_date', 'invoices.public_id as invoice_public_id', 'invoices.invoice_number', 'clients.currency_id', 'contacts.first_name', 'contacts.last_name', 'contacts.email', 'payment_types.name as payment_type', 'payments.account_gateway_id');
|
||||
|
||||
if (!\Session::get('show_trash'))
|
||||
{
|
||||
@ -99,6 +99,7 @@ class PaymentRepository
|
||||
$payment->payment_type_id = $paymentTypeId;
|
||||
$payment->payment_date = Utils::toSqlDate($input['payment_date']);
|
||||
$payment->amount = $amount;
|
||||
$payment->transaction_reference = trim($input['transaction_reference']);
|
||||
$payment->save();
|
||||
|
||||
return $payment;
|
||||
|
@ -11,8 +11,6 @@
|
||||
|
|
||||
*/
|
||||
|
||||
|
||||
|
||||
//apc_clear_cache();
|
||||
//Cache::flush();
|
||||
|
||||
@ -74,9 +72,12 @@ Route::group(array('before' => 'auth'), function()
|
||||
Route::post('company/products/{product_id?}', 'AccountController@saveProduct');
|
||||
*/
|
||||
|
||||
Route::get('company/advanced_settings/chart_builder', 'ReportController@report');
|
||||
Route::post('company/advanced_settings/chart_builder', 'ReportController@report');
|
||||
|
||||
Route::get('account/getSearchData', array('as' => 'getSearchData', 'uses' => 'AccountController@getSearchData'));
|
||||
Route::get('company/{section?}', 'AccountController@showSection');
|
||||
Route::post('company/{section?}', 'AccountController@doSection');
|
||||
Route::get('company/{section?}/{sub_section?}', 'AccountController@showSection');
|
||||
Route::post('company/{section?}/{sub_section?}', 'AccountController@doSection');
|
||||
Route::post('user/setTheme', 'UserController@setTheme');
|
||||
Route::post('remove_logo', 'AccountController@removeLogo');
|
||||
Route::post('account/go_pro', 'AccountController@enableProPlan');
|
||||
@ -105,18 +106,16 @@ Route::group(array('before' => 'auth'), function()
|
||||
Route::get('credits/create/{client_id?}/{invoice_id?}', 'CreditController@create');
|
||||
Route::get('api/credits/{client_id?}', array('as'=>'api.credits', 'uses'=>'CreditController@getDatatable'));
|
||||
Route::post('credits/bulk', 'CreditController@bulk');
|
||||
|
||||
Route::get('reports', 'ReportController@report');
|
||||
Route::post('reports', 'ReportController@report');
|
||||
});
|
||||
|
||||
|
||||
// If you're self hosting set this to a value you think is fair
|
||||
define('PRO_PLAN_PRICE', 50);
|
||||
|
||||
define('CONTACT_EMAIL', 'contact@invoiceninja.com');
|
||||
define('CONTACT_NAME', 'Invoice Ninja');
|
||||
define('SITE_URL', 'https://www.invoiceninja.com');
|
||||
|
||||
|
||||
define('ENV_DEVELOPMENT', 'local');
|
||||
define('ENV_STAGING', 'staging');
|
||||
define('ENV_PRODUCTION', 'fortrabbit');
|
||||
@ -137,8 +136,12 @@ define('ACCOUNT_IMPORT_EXPORT', 'import_export');
|
||||
define('ACCOUNT_PAYMENTS', 'payments');
|
||||
define('ACCOUNT_MAP', 'import_map');
|
||||
define('ACCOUNT_EXPORT', 'export');
|
||||
define('ACCOUNT_ADVANCED_SETTINGS', 'advanced_settings');
|
||||
define('ACCOUNT_PRODUCTS', 'products');
|
||||
define('ACCOUNT_ADVANCED_SETTINGS', 'advanced_settings');
|
||||
define('ACCOUNT_CUSTOM_FIELDS', 'custom_fields');
|
||||
define('ACCOUNT_INVOICE_DESIGN', 'invoice_design');
|
||||
define('ACCOUNT_CHART_BUILDER', 'chart_builder');
|
||||
|
||||
|
||||
define('DEFAULT_INVOICE_NUMBER', '0001');
|
||||
define('RECENTLY_VIEWED_LIMIT', 8);
|
||||
@ -191,7 +194,6 @@ define('GATEWAY_PAYPAL_EXPRESS', 17);
|
||||
define('GATEWAY_BEANSTREAM', 29);
|
||||
define('GATEWAY_PSIGATE', 30);
|
||||
|
||||
define('PRO_PLAN_PRICE', 50);
|
||||
define('REQUESTED_PRO_PLAN', 'REQUESTED_PRO_PLAN');
|
||||
define('NINJA_ACCOUNT_KEY', 'zg4ylmzDkdkPOT8yoKQw9LTWaoZJx79h');
|
||||
define('NINJA_GATEWAY_ID', GATEWAY_AUTHORIZE_NET);
|
||||
@ -225,7 +227,7 @@ HTML::macro('menu_link', function($type) {
|
||||
$types = $type.'s';
|
||||
$Type = ucfirst($type);
|
||||
$Types = ucfirst($types);
|
||||
$class = ( Request::is($types) || Request::is('*'.$type.'*')) ? ' active' : '';
|
||||
$class = ( Request::is($types) || Request::is('*'.$type.'*')) && !Request::is('*advanced_settings*') ? ' active' : '';
|
||||
|
||||
return '<li class="dropdown '.$class.'">
|
||||
<a href="'.URL::to($types).'" class="dropdown-toggle">'.trans("texts.$types").'</a>
|
||||
|
@ -2,16 +2,7 @@
|
||||
|
||||
@section('content')
|
||||
@parent
|
||||
|
||||
@if (!Auth::user()->account->isPro())
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div style="font-size:larger;" class="col-md-8 col-md-offset-2">{{ trans('texts.pro_plan_advanced_settings', ['link'=>'<a href="#" onclick="showProPlan()">'.trans('texts.pro_plan.remove_logo_link').'</a>']) }}</div>
|
||||
<p/>
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
@include('accounts.nav_advanced')
|
||||
|
||||
{{ Former::open()->addClass('col-md-8 col-md-offset-2 warn-on-exit') }}
|
||||
{{ Former::populate($account) }}
|
||||
@ -27,10 +18,6 @@
|
||||
{{ Former::text('custom_client_label1')->label(trans('texts.field_label')) }}
|
||||
{{ Former::text('custom_client_label2')->label(trans('texts.field_label')) }}
|
||||
|
||||
{{ Former::legend('invoice_design') }}
|
||||
{{ Former::text('primary_color') }}
|
||||
{{ Former::text('secondary_color') }}
|
||||
|
||||
@if (Auth::user()->isPro())
|
||||
{{ Former::actions( Button::lg_success_submit(trans('texts.save'))->append_with_icon('floppy-disk') ) }}
|
||||
@else
|
||||
@ -43,20 +30,4 @@
|
||||
|
||||
{{ Former::close() }}
|
||||
|
||||
<script>
|
||||
$(function() {
|
||||
var options = {
|
||||
preferredFormat: "hex",
|
||||
disabled: {{ Auth::user()->isPro() ? 'false' : 'true' }},
|
||||
showInitial: false,
|
||||
showInput: true,
|
||||
allowEmpty: true,
|
||||
clickoutFiresChange: true,
|
||||
};
|
||||
$('#primary_color').spectrum(options);
|
||||
$('#secondary_color').spectrum(options);
|
||||
});
|
||||
</script>
|
||||
|
||||
|
||||
@stop
|
42
app/views/accounts/invoice_design.blade.php
Normal file
42
app/views/accounts/invoice_design.blade.php
Normal file
@ -0,0 +1,42 @@
|
||||
@extends('accounts.nav')
|
||||
|
||||
@section('content')
|
||||
@parent
|
||||
@include('accounts.nav_advanced')
|
||||
|
||||
{{ Former::open()->addClass('col-md-8 col-md-offset-2 warn-on-exit') }}
|
||||
{{ Former::populate($account) }}
|
||||
|
||||
{{ Former::legend('invoice_design') }}
|
||||
{{ Former::text('primary_color') }}
|
||||
{{ Former::text('secondary_color') }}
|
||||
|
||||
@if (Auth::user()->isPro())
|
||||
{{ Former::actions( Button::lg_success_submit(trans('texts.save'))->append_with_icon('floppy-disk') ) }}
|
||||
@else
|
||||
<script>
|
||||
$(function() {
|
||||
$('form.warn-on-exit input').prop('disabled', true);
|
||||
});
|
||||
</script>
|
||||
@endif
|
||||
|
||||
{{ Former::close() }}
|
||||
|
||||
<script>
|
||||
$(function() {
|
||||
var options = {
|
||||
preferredFormat: "hex",
|
||||
disabled: {{ Auth::user()->isPro() ? 'false' : 'true' }},
|
||||
showInitial: false,
|
||||
showInput: true,
|
||||
allowEmpty: true,
|
||||
clickoutFiresChange: true,
|
||||
};
|
||||
$('#primary_color').spectrum(options);
|
||||
$('#secondary_color').spectrum(options);
|
||||
});
|
||||
</script>
|
||||
|
||||
|
||||
@stop
|
@ -8,8 +8,9 @@
|
||||
{{ HTML::nav_link('company/products', 'product_library') }}
|
||||
{{ HTML::nav_link('company/notifications', 'notifications') }}
|
||||
{{ HTML::nav_link('company/import_export', 'import_export', 'company/import_map') }}
|
||||
{{ HTML::nav_link('company/advanced_settings', 'advanced_settings') }}
|
||||
{{ HTML::nav_link('company/advanced_settings/custom_fields', 'advanced_settings', '*/advanced_settings/*') }}
|
||||
</ul>
|
||||
<p> </p>
|
||||
|
||||
<br/>
|
||||
|
||||
@stop
|
17
app/views/accounts/nav_advanced.blade.php
Normal file
17
app/views/accounts/nav_advanced.blade.php
Normal file
@ -0,0 +1,17 @@
|
||||
<ul class="nav nav-tabs nav nav-justified">
|
||||
{{ HTML::nav_link('company/advanced_settings/custom_fields', 'custom_fields') }}
|
||||
{{ HTML::nav_link('company/advanced_settings/invoice_design', 'invoice_design') }}
|
||||
{{ HTML::nav_link('company/advanced_settings/chart_builder', 'chart_builder') }}
|
||||
</ul>
|
||||
<p> </p>
|
||||
|
||||
@if (!Auth::user()->account->isPro())
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div style="font-size:larger;" class="col-md-8 col-md-offset-2">{{ trans('texts.pro_plan_advanced_settings', ['link'=>'<a href="#" onclick="showProPlan(\''.$feature.'\')">'.trans('texts.pro_plan.remove_logo_link').'</a>']) }}</div>
|
||||
<p/>
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
<br/>
|
@ -73,6 +73,11 @@
|
||||
}
|
||||
}
|
||||
|
||||
function gatewayLink(url) {
|
||||
//if (url.match('authorize'))
|
||||
openUrl(url, '/affiliate/' + new URL(url).hostname);
|
||||
}
|
||||
|
||||
$(document).ready(function() {
|
||||
$('.recommended-gateway').change(
|
||||
function(){
|
||||
@ -95,7 +100,7 @@
|
||||
var contents = $(this).parent().contents();
|
||||
contents[contents.length - 1].nodeValue = '';
|
||||
$(this).after('<img src="' +$(this).attr('data-imageUrl') + '" /><br />');
|
||||
$(this).parent().children().last().after('<a href="' + $(this).attr('data-siteUrl') + '">Create an account</a>');
|
||||
$(this).parent().children().last().after('<a href="#" onclick="gatewayLink(\'' + $(this).attr('data-siteUrl') + '\')">Create an account</a>');
|
||||
});
|
||||
|
||||
|
||||
|
@ -17,5 +17,8 @@
|
||||
{{ $accountName }}
|
||||
@endif
|
||||
|
||||
<p/>
|
||||
{{ trans('texts.ninja_email_footer', ['site' => '<a href="'.SITE_URL.'">Invoice Ninja</a>']) }}
|
||||
|
||||
</body>
|
||||
</html>
|
@ -9,3 +9,6 @@
|
||||
{{ trans('texts.email_signature') }}
|
||||
{{ $accountName }}
|
||||
@endif
|
||||
|
||||
{{ trans('texts.ninja_email_footer', ['site' => 'Invoice Ninja']) }}
|
||||
{{ SITE_URL }}
|
@ -16,5 +16,8 @@
|
||||
{{ $accountName }}
|
||||
@endif
|
||||
|
||||
<p/>
|
||||
{{ trans('texts.ninja_email_footer', ['site' => '<a href="'.SITE_URL.'">Invoice Ninja</a>']) }}
|
||||
|
||||
</body>
|
||||
</html>
|
@ -8,3 +8,6 @@
|
||||
{{ trans('texts.email_signature') }}
|
||||
{{ $accountName }}
|
||||
@endif
|
||||
|
||||
{{ trans('texts.ninja_email_footer', ['site' => 'Invoice Ninja']) }}
|
||||
{{ SITE_URL }}
|
@ -113,7 +113,6 @@
|
||||
{{ HTML::menu_link('invoice') }}
|
||||
{{ HTML::menu_link('payment') }}
|
||||
{{ HTML::menu_link('credit') }}
|
||||
{{-- HTML::nav_link('reports', 'Reports') --}}
|
||||
</ul>
|
||||
|
||||
<div class="navbar-form navbar-right">
|
||||
@ -152,7 +151,7 @@
|
||||
<li>{{ link_to('company/products', uctrans('texts.product_library')) }}</li>
|
||||
<li>{{ link_to('company/notifications', uctrans('texts.notifications')) }}</li>
|
||||
<li>{{ link_to('company/import_export', uctrans('texts.import_export')) }}</li>
|
||||
<li><a href="{{ url('company/advanced_settings') }}">{{ uctrans('texts.advanced_settings') . Utils::getProLabel(ACCOUNT_ADVANCED_SETTINGS) }}</a></li>
|
||||
<li><a href="{{ url('company/advanced_settings/custom_fields') }}">{{ uctrans('texts.advanced_settings') . Utils::getProLabel(ACCOUNT_ADVANCED_SETTINGS) }}</a></li>
|
||||
|
||||
<li class="divider"></li>
|
||||
<li>{{ link_to('#', trans('texts.logout'), array('onclick'=>'logout()')) }}</li>
|
||||
@ -376,60 +375,8 @@ Want something changed? We're {{ link_to('https://github.com/hillelcoren/invoice
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="plans-table col-md-9">
|
||||
<div class="col-md-4 desc hide-mobile">
|
||||
<div class="cell"></div>
|
||||
<div class="cell">Number of clients per account</div>
|
||||
<div class="cell">Unlimited client invoices</div>
|
||||
<div class="cell">Add your company logo</div>
|
||||
<div class="cell">Live .PDF invoice creation </div>
|
||||
<div class="cell">4 beatiful invoice templates</div>
|
||||
<div class="cell">Accept credit card payments</div>
|
||||
<div class="cell">Custom invoice fields</div>
|
||||
<div class="cell">Priority email support</div>
|
||||
<div class="cell">Custom invoice colors</div>
|
||||
<div class="cell">Remove "Created by Invoice Ninja"</div>
|
||||
<div class="cell">Pricing</div>
|
||||
|
||||
|
||||
</div>
|
||||
<div class="free col-md-4">
|
||||
<div class="cell">Free</div>
|
||||
<div class="cell"><div class="hide-desktop">Number of clients per account</div><span>500</span></div>
|
||||
<div class="cell"><div class="hide-desktop">Unlimited client invoices</div><span class="glyphicon glyphicon-ok"></div>
|
||||
<div class="cell"><div class="hide-desktop">Add your company logo</div><span class="glyphicon glyphicon-ok"></div>
|
||||
<div class="cell"><div class="hide-desktop">Live .PDF invoice creation</div><span class="glyphicon glyphicon-ok"></div>
|
||||
<div class="cell"><div class="hide-desktop">4 beatiful invoice templates</div><span class="glyphicon glyphicon-ok"></div>
|
||||
<div class="cell"><div class="hide-desktop">Accept credit card payments</div><span class="glyphicon glyphicon-ok"></div>
|
||||
<div class="cell"><div class="hide-desktop">Custom invoice fields</div><span class="glyphicon glyphicon-remove"></div>
|
||||
<div class="cell"><div class="hide-desktop">Priority email support</div><span class="glyphicon glyphicon-remove"></div>
|
||||
<div class="cell"><div class="hide-desktop">Custom invoice colors</div><span class="glyphicon glyphicon-remove"></div>
|
||||
<div class="cell"><div class="hide-desktop">Remove "Created by Invoice Ninja"</div><span class="glyphicon glyphicon-remove"></div>
|
||||
<div class="cell price"><div class="hide-desktop">Pricing</div><p>Free<span> /Always!</span></p></div>
|
||||
</div>
|
||||
<div class="pro col-md-4">
|
||||
|
||||
<div class="cell">Pro Plan<span class="glyphicon glyphicon-star"></div>
|
||||
<div class="cell"><div class="hide-desktop">Number of clients per account</div><span style="color: #2299c0; font-size: 16px;">5,000</span></div>
|
||||
<div class="cell"><div class="hide-desktop">Unlimited client invoices</div><span class="glyphicon glyphicon-ok"></div>
|
||||
<div class="cell"><div class="hide-desktop">Add your company logo</div><span class="glyphicon glyphicon-ok"></div>
|
||||
<div class="cell"><div class="hide-desktop">Live .PDF invoice creation</div><span class="glyphicon glyphicon-ok"></div>
|
||||
<div class="cell"><div class="hide-desktop">4 beatiful invoice templates</div><span class="glyphicon glyphicon-ok"></div>
|
||||
<div class="cell"><div class="hide-desktop">Accept credit card payments</div><span class="glyphicon glyphicon-ok"></div>
|
||||
<div class="cell"><div class="hide-desktop">Custom invoice fields</div><span class="glyphicon glyphicon-ok"></div>
|
||||
<div class="cell"><div class="hide-desktop">Priority email support</div><span class="glyphicon glyphicon-ok"></div>
|
||||
<div class="cell"><div class="hide-desktop">Custom invoice colors</div><span class="glyphicon glyphicon-ok"></div>
|
||||
<div class="cell"><div class="hide-desktop">Remove "Created by Invoice Ninja"</div><span class="glyphicon glyphicon-ok"></div>
|
||||
<div class="cell price"><div class="hide-desktop">Pricing</div><p>$50<span> /Year</span></p></div>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
|
||||
@include('plans')
|
||||
|
||||
</div>
|
||||
|
||||
@ -542,8 +489,10 @@ Want something changed? We're {{ link_to('https://github.com/hillelcoren/invoice
|
||||
'&new_last_name=' + encodeURIComponent($('form.signUpForm #new_last_name').val()) +
|
||||
'&go_pro=' + $('#go_pro').val(),
|
||||
success: function(result) {
|
||||
trackUrl('/signed_up');
|
||||
if (result) {
|
||||
localStorage.setItem('guest_key', '');
|
||||
trackUrl('/user/sign_up');
|
||||
NINJA.isRegistered = true;
|
||||
$('#signUpButton').hide();
|
||||
$('#myAccountButton').html(result);
|
||||
@ -577,13 +526,21 @@ Want something changed? We're {{ link_to('https://github.com/hillelcoren/invoice
|
||||
}
|
||||
}
|
||||
|
||||
function showSignUp() {
|
||||
$('#signUpModal').modal('show');
|
||||
trackUrl('/view_sign_up');
|
||||
}
|
||||
|
||||
@if (Auth::check() && !Auth::user()->isPro())
|
||||
function showProPlan() {
|
||||
var proPlanFeature = false;
|
||||
function showProPlan(feature) {
|
||||
proPlanFeature = feature;
|
||||
$('#proPlanModal').modal('show');
|
||||
trackUrl('/view_pro_plan/' + feature);
|
||||
}
|
||||
|
||||
function submitProPlan() {
|
||||
|
||||
trackUrl('/submit_pro_plan/' + proPlanFeature);
|
||||
if (NINJA.isRegistered) {
|
||||
$('#proPlanDiv, #proPlanFooter').hide();
|
||||
$('#proPlanWorking').show();
|
||||
|
@ -276,7 +276,7 @@
|
||||
|
||||
@if (!Auth::user()->account->isPro())
|
||||
<div style="font-size:larger">
|
||||
{{ trans('texts.pro_plan.remove_logo', ['link'=>'<a href="#" onclick="showProPlan()">'.trans('texts.pro_plan.remove_logo_link').'</a>']) }}
|
||||
{{ trans('texts.pro_plan.remove_logo', ['link'=>'<a href="#" onclick="showProPlan(\'remove_logo\')">'.trans('texts.pro_plan.remove_logo_link').'</a>']) }}
|
||||
</div>
|
||||
@endif
|
||||
|
||||
@ -449,10 +449,6 @@
|
||||
|
||||
<script type="text/javascript">
|
||||
|
||||
function showSignUp() {
|
||||
$('#signUpModal').modal('show');
|
||||
}
|
||||
|
||||
function showLearnMore() {
|
||||
$('#recurringModal').modal('show');
|
||||
}
|
||||
|
@ -1,23 +1,22 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
|
||||
<title>Invoice Ninja {{ isset($title) ? $title : ' - Free Online Invoicing' }}</title>
|
||||
<link rel="canonical" href="https://www.invoiceninja.com"></link>
|
||||
<link href="{{ asset('favicon.ico') }}" rel="icon" type="image/x-icon">
|
||||
|
||||
<link href='//fonts.googleapis.com/css?family=Roboto:400,700,900,100' rel='stylesheet' type='text/css'>
|
||||
<link href='//fonts.googleapis.com/css?family=Roboto+Slab:400,300,700' rel='stylesheet' type='text/css'>
|
||||
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta property="og:site_name" content="Invoice Ninja"></meta>
|
||||
<meta property="og:url" content="https://www.invoiceninja.com"></meta>
|
||||
<meta property="og:title" content="Invoice Ninja"></meta>
|
||||
<meta property="og:image" content="https://www.invoiceninja.com/images/social.jpg"></meta>
|
||||
<meta property="og:description" content="Simple, Intuitive Invoicing."></meta>
|
||||
<meta name="keywords" content="Invoice Ninja"></meta>
|
||||
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
|
||||
<link href='//fonts.googleapis.com/css?family=Roboto:400,700,900,100' rel='stylesheet' type='text/css'>
|
||||
<link href='//fonts.googleapis.com/css?family=Roboto+Slab:400,300,700' rel='stylesheet' type='text/css'>
|
||||
<link href="{{ asset('favicon.ico') }}" rel="icon" type="image/x-icon">
|
||||
<link href="https://www.invoiceninja.com" rel="canonical"></link>
|
||||
|
||||
<script src="{{ asset('built.js') }}" type="text/javascript"></script>
|
||||
|
||||
@ -52,8 +51,8 @@
|
||||
|
||||
<body>
|
||||
|
||||
@if (App::environment() == ENV_PRODUCTION && isset($_ENV['ANALYTICS_KEY']) && $_ENV['ANALYTICS_KEY'])
|
||||
<script>
|
||||
@if (isset($_ENV['ANALYTICS_KEY']) && $_ENV['ANALYTICS_KEY'])
|
||||
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
|
||||
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
|
||||
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
|
||||
@ -61,8 +60,15 @@
|
||||
|
||||
ga('create', '{{ $_ENV['ANALYTICS_KEY'] }}');
|
||||
ga('send', 'pageview');
|
||||
</script>
|
||||
|
||||
function trackUrl(url) {
|
||||
url = '/track' + url.replace('http:/', '');
|
||||
ga('send', 'pageview', url);
|
||||
}
|
||||
@else
|
||||
function trackUrl(url) {}
|
||||
@endif
|
||||
</script>
|
||||
|
||||
@yield('body')
|
||||
|
||||
|
@ -23,6 +23,7 @@
|
||||
{{ Former::select('payment_type_id')->addOption('','')
|
||||
->fromQuery($paymentTypes, 'name', 'id') }}
|
||||
{{ Former::text('payment_date')->data_date_format(Session::get(SESSION_DATE_PICKER_FORMAT))->append('<i class="glyphicon glyphicon-calendar"></i>') }}
|
||||
{{ Former::text('transaction_reference') }}
|
||||
{{-- Former::select('currency_id')->addOption('','')
|
||||
->fromQuery($currencies, 'name', 'id')->select(Session::get(SESSION_CURRENCY, DEFAULT_CURRENCY)) --}}
|
||||
|
||||
|
54
app/views/plans.blade.php
Normal file
54
app/views/plans.blade.php
Normal file
@ -0,0 +1,54 @@
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="plans-table col-md-9">
|
||||
<div class="col-md-4 desc hide-mobile">
|
||||
<div class="cell"></div>
|
||||
<div class="cell">Number of clients per account</div>
|
||||
<div class="cell">Unlimited client invoices</div>
|
||||
<div class="cell">Add your company logo</div>
|
||||
<div class="cell">Live .PDF invoice creation </div>
|
||||
<div class="cell">4 beatiful invoice templates</div>
|
||||
<div class="cell">Accept credit card payments</div>
|
||||
<div class="cell">Custom invoice fields and colors</div>
|
||||
<div class="cell">Basic chart builder</div>
|
||||
<div class="cell">Priority email support</div>
|
||||
<div class="cell">Remove "Created by Invoice Ninja"</div>
|
||||
<div class="cell">Latest and greatest features</div>
|
||||
<div class="cell">Pricing</div>
|
||||
|
||||
</div>
|
||||
<div class="free col-md-4">
|
||||
<div class="cell">Free</div>
|
||||
<div class="cell"><div class="hide-desktop">Number of clients per account</div><span>500</span></div>
|
||||
<div class="cell"><div class="hide-desktop">Unlimited client invoices</div><span class="glyphicon glyphicon-ok"></div>
|
||||
<div class="cell"><div class="hide-desktop">Add your company logo</div><span class="glyphicon glyphicon-ok"></div>
|
||||
<div class="cell"><div class="hide-desktop">Live .PDF invoice creation</div><span class="glyphicon glyphicon-ok"></div>
|
||||
<div class="cell"><div class="hide-desktop">4 beatiful invoice templates</div><span class="glyphicon glyphicon-ok"></div>
|
||||
<div class="cell"><div class="hide-desktop">Accept credit card payments</div><span class="glyphicon glyphicon-ok"></div>
|
||||
<div class="cell"><div class="hide-desktop">Custom fields and invoice colors</div><span class="glyphicon glyphicon-remove"></div>
|
||||
<div class="cell"><div class="hide-desktop">Basic chart builder</div><span class="glyphicon glyphicon-remove"></div>
|
||||
<div class="cell"><div class="hide-desktop">Priority email support</div><span class="glyphicon glyphicon-remove"></div>
|
||||
<div class="cell"><div class="hide-desktop">Remove "Created by Invoice Ninja"</div><span class="glyphicon glyphicon-remove"></div>
|
||||
<div class="cell"><div class="hide-desktop">Latest and greatest features</div><span class="glyphicon glyphicon-remove"></div>
|
||||
<div class="cell price"><div class="hide-desktop">Pricing</div><p>Free<span> /Always!</span></p></div>
|
||||
</div>
|
||||
<div class="pro col-md-4">
|
||||
|
||||
<div class="cell">Pro Plan<span class="glyphicon glyphicon-star"></div>
|
||||
<div class="cell"><div class="hide-desktop">Number of clients per account</div><span style="color: #2299c0; font-size: 16px;">5,000</span></div>
|
||||
<div class="cell"><div class="hide-desktop">Unlimited client invoices</div><span class="glyphicon glyphicon-ok"></div>
|
||||
<div class="cell"><div class="hide-desktop">Add your company logo</div><span class="glyphicon glyphicon-ok"></div>
|
||||
<div class="cell"><div class="hide-desktop">Live .PDF invoice creation</div><span class="glyphicon glyphicon-ok"></div>
|
||||
<div class="cell"><div class="hide-desktop">4 beatiful invoice templates</div><span class="glyphicon glyphicon-ok"></div>
|
||||
<div class="cell"><div class="hide-desktop">Accept credit card payments</div><span class="glyphicon glyphicon-ok"></div>
|
||||
<div class="cell"><div class="hide-desktop">Custom invoice fields and colors</div><span class="glyphicon glyphicon-ok"></div>
|
||||
<div class="cell"><div class="hide-desktop">Basic chart builder</div><span class="glyphicon glyphicon-ok"></div>
|
||||
<div class="cell"><div class="hide-desktop">Priority email support</div><span class="glyphicon glyphicon-ok"></div>
|
||||
<div class="cell"><div class="hide-desktop">Remove "Created by Invoice Ninja"</div><span class="glyphicon glyphicon-ok"></div>
|
||||
<div class="cell"><div class="hide-desktop">Latest and greatest features</div><span class="glyphicon glyphicon-ok"></div>
|
||||
<div class="cell price"><div class="hide-desktop">Pricing</div><p>$50<span> /Year</span></p></div>
|
||||
<!-- <div class="cell"><a href="#"><div class="cta"><h2 onclick="return getStarted()">GO PRO <span>+</span></h2></div> </a>-->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
@ -105,7 +105,6 @@ var contactForm = {
|
||||
<div class="col-md-4 col-md-offset-1 address">
|
||||
<h2>Other ways to reach us</h2>
|
||||
<p><span class="glyphicon glyphicon-send"></span><a href="mailto:contact@invoiceninja.com">contact@invoiceninja.com</a></p>
|
||||
<p><span class="glyphicon glyphicon-earphone"></span>+1-800-763-1948</p>
|
||||
<p><span class="glyphicon glyphicon-comment"></span><a href="http://www.invoiceninja.org" target="_blank">Google Group</a></p>
|
||||
<p><span class="github"></span><div style="padding-top:10px"> <a href="https://github.com/hillelcoren/invoice-ninja" target="_blank">GitHub Project</a></div></p>
|
||||
|
||||
|
@ -23,7 +23,11 @@
|
||||
background-image: url({{ asset('/images/hero-bg-1.jpg') }});
|
||||
}
|
||||
.hero-about {
|
||||
<<<<<<< HEAD
|
||||
background-image: url({{ asset('/images/hero-bg-3.jpg') }});
|
||||
=======
|
||||
background-image: url({{ asset('/images/hero-bg-4.jpg') }});
|
||||
>>>>>>> upstream/master
|
||||
}
|
||||
.hero-plans {
|
||||
background-image: url({{ asset('/images/hero-bg-plans.jpg') }});
|
||||
@ -98,6 +102,7 @@
|
||||
<li>{{ link_to('about', 'About Us' ) }}</li>
|
||||
<li>{{ link_to('plans', 'Plans' ) }}</li>
|
||||
<li>{{ link_to('contact', 'Contact Us' ) }}</li>
|
||||
<li>{{ link_to('http://blog.invoiceninja.com', 'Blog' ) }}</li>
|
||||
<li>{{ link_to('login', Auth::check() ? 'My Account' : 'Login' ) }}</li>
|
||||
</ul>
|
||||
</div>
|
||||
@ -157,6 +162,7 @@
|
||||
<li>{{ link_to('about', 'About Us' ) }}</li>
|
||||
<li>{{ link_to('plans', 'Plans' ) }}</li>
|
||||
<li>{{ link_to('contact', 'Contact Us' ) }}</li>
|
||||
<li>{{ link_to('http://blog.invoiceninja.com', 'Blog' ) }}</li>
|
||||
<li>{{ link_to('login', Auth::check() ? 'My Account' : 'Login' ) }}</li>
|
||||
</ul>
|
||||
|
||||
@ -179,15 +185,10 @@ jQuery(document).ready(function($) {
|
||||
});
|
||||
</script>
|
||||
|
||||
<script src="{{ asset('/js/retina-1.1.0.min.js') }}" type="text/javascript"></script>
|
||||
|
||||
<!--
|
||||
<script type="text/javascript">
|
||||
$('.expander').simpleexpand();
|
||||
</script>
|
||||
All images in the site need to have retina versions otherwise the log fills up with requests for missing files
|
||||
<script src="{{ asset('/js/retina-1.1.0.min.js') }}" type="text/javascript"></script>
|
||||
-->
|
||||
|
||||
|
||||
|
||||
|
||||
@stop
|
@ -22,65 +22,9 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="plans-table col-md-9">
|
||||
<div class="col-md-4 desc hide-mobile">
|
||||
<div class="cell"></div>
|
||||
<div class="cell">Number of clients per account</div>
|
||||
<div class="cell">Unlimited client invoices</div>
|
||||
<div class="cell">Add your company logo</div>
|
||||
<div class="cell">Live .PDF invoice creation </div>
|
||||
<div class="cell">4 beatiful invoice templates</div>
|
||||
<div class="cell">Accept credit card payments</div>
|
||||
<div class="cell">Custom invoice fields</div>
|
||||
<div class="cell">Priority email support</div>
|
||||
<div class="cell">Custom invoice colors</div>
|
||||
<div class="cell">Remove "Created by Invoice Ninja"</div>
|
||||
<div class="cell">Pricing</div>
|
||||
|
||||
@include('plans')
|
||||
|
||||
</div>
|
||||
<div class="free col-md-4">
|
||||
<div class="cell">Free</div>
|
||||
<div class="cell"><div class="hide-desktop">Number of clients per account</div><span>500</span></div>
|
||||
<div class="cell"><div class="hide-desktop">Unlimited client invoices</div><span class="glyphicon glyphicon-ok"></div>
|
||||
<div class="cell"><div class="hide-desktop">Add your company logo</div><span class="glyphicon glyphicon-ok"></div>
|
||||
<div class="cell"><div class="hide-desktop">Live .PDF invoice creation</div><span class="glyphicon glyphicon-ok"></div>
|
||||
<div class="cell"><div class="hide-desktop">4 beatiful invoice templates</div><span class="glyphicon glyphicon-ok"></div>
|
||||
<div class="cell"><div class="hide-desktop">Accept credit card payments</div><span class="glyphicon glyphicon-ok"></div>
|
||||
<div class="cell"><div class="hide-desktop">Custom invoice fields</div><span class="glyphicon glyphicon-remove"></div>
|
||||
<div class="cell"><div class="hide-desktop">Priority email support</div><span class="glyphicon glyphicon-remove"></div>
|
||||
<div class="cell"><div class="hide-desktop">Custom invoice colors</div><span class="glyphicon glyphicon-remove"></div>
|
||||
<div class="cell"><div class="hide-desktop">Remove "Created by Invoice Ninja"</div><span class="glyphicon glyphicon-remove"></div>
|
||||
<div class="cell price"><div class="hide-desktop">Pricing</div><p>Free<span> /Always!</span></p></div>
|
||||
</div>
|
||||
<div class="pro col-md-4">
|
||||
|
||||
<div class="cell">Pro Plan<span class="glyphicon glyphicon-star"></div>
|
||||
<div class="cell"><div class="hide-desktop">Number of clients per account</div><span style="color: #2299c0; font-size: 16px;">5,000</span></div>
|
||||
<div class="cell"><div class="hide-desktop">Unlimited client invoices</div><span class="glyphicon glyphicon-ok"></div>
|
||||
<div class="cell"><div class="hide-desktop">Add your company logo</div><span class="glyphicon glyphicon-ok"></div>
|
||||
<div class="cell"><div class="hide-desktop">Live .PDF invoice creation</div><span class="glyphicon glyphicon-ok"></div>
|
||||
<div class="cell"><div class="hide-desktop">4 beatiful invoice templates</div><span class="glyphicon glyphicon-ok"></div>
|
||||
<div class="cell"><div class="hide-desktop">Accept credit card payments</div><span class="glyphicon glyphicon-ok"></div>
|
||||
<div class="cell"><div class="hide-desktop">Custom invoice fields</div><span class="glyphicon glyphicon-ok"></div>
|
||||
<div class="cell"><div class="hide-desktop">Priority email support</div><span class="glyphicon glyphicon-ok"></div>
|
||||
<div class="cell"><div class="hide-desktop">Custom invoice colors</div><span class="glyphicon glyphicon-ok"></div>
|
||||
<div class="cell"><div class="hide-desktop">Remove "Created by Invoice Ninja"</div><span class="glyphicon glyphicon-ok"></div>
|
||||
<div class="cell price"><div class="hide-desktop">Pricing</div><p>$50<span> /Year</span></p></div>
|
||||
<!--
|
||||
<div class="cell">
|
||||
<a href="#">
|
||||
<div class="cta">
|
||||
<h2 onclick="return getStarted()">GO PRO <span>+</span></h2>
|
||||
</div>
|
||||
-->
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
|
@ -95,7 +95,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<!-- <p>or {{ link_to('features', 'View Our Features' ) }}</a></p> -->
|
||||
<p><i>No signup needed</i></p>
|
||||
<p>No signup needed</p>
|
||||
</div>
|
||||
<div class="col-md-7">
|
||||
<img src="{{ asset('images/devices.png') }}">
|
||||
|
@ -1,4 +1,4 @@
|
||||
@extends('header')
|
||||
@extends('accounts.nav')
|
||||
|
||||
@section('head')
|
||||
@parent
|
||||
@ -7,20 +7,30 @@
|
||||
@stop
|
||||
|
||||
@section('content')
|
||||
|
||||
<p> </p>
|
||||
@parent
|
||||
@include('accounts.nav_advanced')
|
||||
|
||||
<div class="row">
|
||||
<div class="col-lg-3">
|
||||
<div class="col-lg-4">
|
||||
|
||||
{{ Former::open() }}
|
||||
{{ Former::open()->addClass('warn-on-exit') }}
|
||||
{{ Former::populateField('start_date', $startDate) }}
|
||||
{{ Former::populateField('end_date', $endDate) }}
|
||||
{{ Former::select('chart_type')->options($chartTypes, $chartType) }}
|
||||
{{ Former::select('group_by')->options($dateTypes, $groupBy) }}
|
||||
{{ Former::text('start_date') }}
|
||||
{{ Former::text('end_date') }}
|
||||
|
||||
@if (Auth::user()->isPro())
|
||||
{{ Former::actions( Button::primary_submit('Generate') ) }}
|
||||
@else
|
||||
<script>
|
||||
$(function() {
|
||||
$('form.warn-on-exit').find('input, select').prop('disabled', true);
|
||||
});
|
||||
</script>
|
||||
@endif
|
||||
|
||||
{{ Former::close() }}
|
||||
|
||||
<p> </p>
|
||||
@ -38,8 +48,8 @@
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="col-lg-9">
|
||||
<canvas id="monthly-reports" width="850" height="400"></canvas>
|
||||
<div class="col-lg-8">
|
||||
<canvas id="monthly-reports" width="772" height="400"></canvas>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
1621
public/built.css
1621
public/built.css
File diff suppressed because one or more lines are too long
30339
public/built.js
30339
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
Binary file not shown.
Binary file not shown.
Before Width: | Height: | Size: 117 KiB After Width: | Height: | Size: 216 KiB |
Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 29 KiB |
@ -1727,3 +1727,8 @@ function setDocHexDraw(doc, hex) {
|
||||
var b = hexToB(hex);
|
||||
return doc.setDrawColor(r, g, b);
|
||||
}
|
||||
|
||||
function openUrl(url, track) {
|
||||
trackUrl(track ? track : url);
|
||||
window.open(url, '_blank');
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user