diff --git a/app/Http/Controllers/AppController.php b/app/Http/Controllers/AppController.php
index c261d6fbd..7616128b9 100644
--- a/app/Http/Controllers/AppController.php
+++ b/app/Http/Controllers/AppController.php
@@ -185,8 +185,10 @@ class AppController extends BaseController
if (!Utils::isNinja()) {
try {
Artisan::call('migrate', array('--force' => true));
+ Artisan::call('db:seed', array('--force' => true, '--class' => 'PaymentLibrariesSeeder'));
Artisan::call('optimize', array('--force' => true));
Cache::flush();
+ Session::flash('message', trans('texts.processed_updates'));
} catch (Exception $e) {
Response::make($e->getMessage(), 500);
}
diff --git a/app/Http/Controllers/InvoiceApiController.php b/app/Http/Controllers/InvoiceApiController.php
index e94deec99..dec45b8c0 100644
--- a/app/Http/Controllers/InvoiceApiController.php
+++ b/app/Http/Controllers/InvoiceApiController.php
@@ -6,8 +6,10 @@ use Response;
use Input;
use App\Models\Invoice;
use App\Models\Client;
+use App\Models\Contact;
use App\Models\Product;
use App\Models\Invitation;
+use App\Ninja\Repositories\ClientRepository;
use App\Ninja\Repositories\InvoiceRepository;
use App\Ninja\Mailers\ContactMailer as Mailer;
@@ -15,9 +17,10 @@ class InvoiceApiController extends Controller
{
protected $invoiceRepo;
- public function __construct(InvoiceRepository $invoiceRepo, Mailer $mailer)
+ public function __construct(InvoiceRepository $invoiceRepo, ClientRepository $clientRepo, Mailer $mailer)
{
$this->invoiceRepo = $invoiceRepo;
+ $this->clientRepo = $clientRepo;
$this->mailer = $mailer;
}
@@ -56,22 +59,46 @@ class InvoiceApiController extends Controller
}
}
- // check the client id is set and exists
- if (!isset($data['client_id'])) {
- $error = trans('validation.required', ['attribute' => 'client_id']);
- } else {
+ if (isset($data['email'])) {
+ $contact = Contact::scope()->with('client')->whereEmail($data['email'])->first();
+ if ($contact) {
+ $client = $contact->client;
+ } else {
+ $clientData = ['contact' => ['email' => $data['email']]];
+ foreach (['name', 'private_notes'] as $field) {
+ if (isset($data[$field])) {
+ $clientData[$field] = $data[$field];
+ }
+ }
+ foreach (['first_name', 'last_name'] as $field) {
+ if (isset($data[$field])) {
+ $clientData[$field] = $data[$field];
+ }
+ }
+ $error = $this->clientRepo->getErrors($clientData);
+ if (!$error) {
+ $client = $this->clientRepo->save(false, $clientData, false);
+ }
+ }
+ } else if (isset($data['client_id'])) {
$client = Client::scope($data['client_id'])->first();
- if (!$client) {
+ }
+
+ if (!$error) {
+ if (!isset($data['client_id']) && !isset($data['email'])) {
+ $error = trans('validation.', ['attribute' => 'client_id or email']);
+ } else if (!$client) {
$error = trans('validation.not_in', ['attribute' => 'client_id']);
}
}
-
+
if ($error) {
$response = json_encode($error, JSON_PRETTY_PRINT);
} else {
$data = self::prepareData($data);
$data['client_id'] = $client->id;
$invoice = $this->invoiceRepo->save(false, $data, false);
+ $invoice->load('invoice_items');
$invitation = Invitation::createNew();
$invitation->invoice_id = $invoice->id;
@@ -79,8 +106,11 @@ class InvoiceApiController extends Controller
$invitation->invitation_key = str_random(RANDOM_KEY_LENGTH);
$invitation->save();
+ if (isset($data['email_invoice']) && $data['email_invoice']) {
+ $this->mailer->sendInvoice($invoice);
+ }
+
// prepare the return data
- $invoice->load('invoice_items');
$invoice = $invoice->toArray();
$invoice['link'] = $invitation->getLink();
unset($invoice['account']);
@@ -115,6 +145,7 @@ class InvoiceApiController extends Controller
'custom_value2' => 0,
'custom_taxes1' => false,
'custom_taxes2' => false,
+ 'partial' => 0
];
if (!isset($data['invoice_date'])) {
diff --git a/app/Http/Controllers/ReportController.php b/app/Http/Controllers/ReportController.php
index 96b3e7b28..96e82416e 100644
--- a/app/Http/Controllers/ReportController.php
+++ b/app/Http/Controllers/ReportController.php
@@ -66,13 +66,18 @@ class ReportController extends BaseController
$displayData = [];
$exportData = [];
- $columns = [];
$reportTotals = [
'amount' => [],
'balance' => [],
'paid' => []
];
+ if ($reportType) {
+ $columns = ['client', 'amount', 'paid', 'balance'];
+ } else {
+ $columns = ['client', 'invoice_number', 'invoice_date', 'amount', 'paid', 'balance'];
+ }
+
if (Auth::user()->account->isPro()) {
@@ -95,11 +100,9 @@ class ReportController extends BaseController
if ($reportType) {
$query->groupBy('clients.id');
array_push($select, DB::raw('sum(invoices.amount) amount'), DB::raw('sum(invoices.balance) balance'), DB::raw('sum(invoices.amount - invoices.balance) paid'));
- $columns = ['client', 'amount', 'paid', 'balance'];
} else {
array_push($select, 'invoices.invoice_number', 'invoices.amount', 'invoices.balance', 'invoices.invoice_date', DB::raw('(invoices.amount - invoices.balance) paid'));
$query->orderBy('invoices.id');
- $columns = ['client', 'invoice_number', 'invoice_date', 'amount', 'paid', 'balance'];
}
$query->select($select);
diff --git a/app/Http/routes.php b/app/Http/routes.php
index 127f19e41..11977f237 100644
--- a/app/Http/routes.php
+++ b/app/Http/routes.php
@@ -354,7 +354,7 @@ define('NINJA_GATEWAY_ID', GATEWAY_STRIPE);
define('NINJA_GATEWAY_CONFIG', '');
define('NINJA_WEB_URL', 'https://www.invoiceninja.com');
define('NINJA_APP_URL', 'https://app.invoiceninja.com');
-define('NINJA_VERSION', '2.0.0');
+define('NINJA_VERSION', '2.0.1');
define('NINJA_DATE', '2000-01-01');
define('NINJA_FROM_EMAIL', 'maildelivery@invoiceninja.com');
define('RELEASES_URL', 'https://github.com/hillelcoren/invoice-ninja/releases/');
diff --git a/app/Models/Account.php b/app/Models/Account.php
index cff85c101..998922785 100644
--- a/app/Models/Account.php
+++ b/app/Models/Account.php
@@ -378,3 +378,10 @@ class Account extends Eloquent
return $this->token_billing_type_id == TOKEN_BILLING_OPT_OUT;
}
}
+
+Account::updating(function ($account) {
+ // Lithuanian requires UTF8 support
+ if (!Utils::isPro()) {
+ $account->utf8_invoices = ($account->language_id == 13) ? 1 : 0;
+ }
+});
diff --git a/database/migrations/2015_04_12_093447_add_sv_language.php b/database/migrations/2015_04_12_093447_add_sv_language.php
index 633511299..ed11361ac 100644
--- a/database/migrations/2015_04_12_093447_add_sv_language.php
+++ b/database/migrations/2015_04_12_093447_add_sv_language.php
@@ -15,8 +15,7 @@ class AddSvLanguage extends Migration {
DB::table('languages')->insert(['name' => 'Swedish', 'locale' => 'sv']);
DB::table('languages')->insert(['name' => 'Spanish - Spain', 'locale' => 'es_ES']);
DB::table('languages')->insert(['name' => 'French - Canada', 'locale' => 'fr_CA']);
-
- DB::table('payment_terms')->insert(['num_days' => -1, 'name' => 'Net 0']);
+ DB::table('languages')->insert(['name' => 'Lithuanian', 'locale' => 'lt']);
}
/**
@@ -38,8 +37,8 @@ class AddSvLanguage extends Migration {
$language->delete();
}
- if ($paymentTerm = \App\Models\PaymentTerm::whereName('Net 0')->first()) {
- $paymentTerm->delete();
+ if ($language = \App\Models\Language::whereLocale('lt')->first()) {
+ $language->delete();
}
}
diff --git a/database/seeds/PaymentLibrariesSeeder.php b/database/seeds/PaymentLibrariesSeeder.php
index 73b8090c7..a02a6c921 100644
--- a/database/seeds/PaymentLibrariesSeeder.php
+++ b/database/seeds/PaymentLibrariesSeeder.php
@@ -1,6 +1,7 @@
-1, 'name' => 'Net 0']
+ ];
+
+ foreach ($paymentTerms as $paymentTerm)
+ {
+ if (!DB::table('payment_terms')->where('name', '=', $paymentTerm['name'])->get())
+ {
+ PaymentTerm::create($paymentTerm);
+ }
+ }
}
}
\ No newline at end of file
diff --git a/public/css/built.css b/public/css/built.css
index 608464b39..b9a4dcbd3 100644
--- a/public/css/built.css
+++ b/public/css/built.css
@@ -3249,4 +3249,9 @@ div.dataTables_length select {
div.dataTables_length label {
font-weight: 500;
+}
+
+a .glyphicon,
+button .glyphicon {
+ padding-left: 8px;
}
\ No newline at end of file
diff --git a/public/css/style.css b/public/css/style.css
index c59b4647d..91e9f45af 100644
--- a/public/css/style.css
+++ b/public/css/style.css
@@ -865,4 +865,9 @@ div.dataTables_length select {
div.dataTables_length label {
font-weight: 500;
+}
+
+a .glyphicon,
+button .glyphicon {
+ padding-left: 8px;
}
\ No newline at end of file
diff --git a/public/js/built.js b/public/js/built.js
index 818c6ed24..ea550343f 100644
--- a/public/js/built.js
+++ b/public/js/built.js
@@ -33090,83 +33090,6 @@ function roundToTwo(num, toString) {
function truncate(str, length) {
return (str && str.length > length) ? (str.substr(0, length-1) + '...') : str;
}
-
-(function($)
-{
- /**
- * Auto-growing textareas; technique ripped from Facebook
- *
- *
- * http://github.com/jaz303/jquery-grab-bag/tree/master/javascripts/jquery.autogrow-textarea.js
- */
- $.fn.autogrow = function(options)
- {
- return this.filter('textarea').each(function()
- {
- var self = this;
- var $self = $(self);
- var minHeight = $self.height();
- var noFlickerPad = $self.hasClass('autogrow-short') ? 0 : parseInt($self.css('lineHeight')) || 0;
- var settings = $.extend({
- preGrowCallback: null,
- postGrowCallback: null
- }, options );
-
- var shadow = $('
').css({
- position: 'absolute',
- top: -10000,
- left: -10000,
- width: $self.width(),
- fontSize: $self.css('fontSize'),
- fontFamily: $self.css('fontFamily'),
- fontWeight: $self.css('fontWeight'),
- lineHeight: $self.css('lineHeight'),
- resize: 'none',
- 'word-wrap': 'break-word'
- }).appendTo(document.body);
-
- var update = function(event)
- {
- var times = function(string, number)
- {
- for (var i=0, r=''; i/g, '>')
- .replace(/&/g, '&')
- .replace(/\n$/, '
')
- .replace(/\n/g, '
')
- .replace(/ {2,}/g, function(space){ return times(' ', space.length - 1) + ' ' });
-
- // Did enter get pressed? Resize in this keydown event so that the flicker doesn't occur.
- if (event && event.data && event.data.event === 'keydown' && event.keyCode === 13) {
- val += '
';
- }
-
- shadow.css('width', $self.width());
- shadow.html(val + (noFlickerPad === 0 ? '...' : '')); // Append '...' to resize pre-emptively.
-
- var newHeight=Math.max(shadow.height() + noFlickerPad, minHeight);
- if(settings.preGrowCallback!=null){
- newHeight=settings.preGrowCallback($self,shadow,newHeight,minHeight);
- }
-
- $self.height(newHeight);
-
- if(settings.postGrowCallback!=null){
- settings.postGrowCallback($self);
- }
- }
-
- $self.change(update).keyup(update).keydown({event:'keydown'},update);
- $(window).resize(update);
-
- update();
- });
- };
-})(jQuery);
function GetPdfMake(invoice, javascript, callback) {
var account = invoice.account;
eval(javascript);
diff --git a/resources/lang/da/texts.php b/resources/lang/da/texts.php
index f6faea7b2..f7fce4f34 100644
--- a/resources/lang/da/texts.php
+++ b/resources/lang/da/texts.php
@@ -604,35 +604,27 @@ return array(
'auto_wrap' => 'Auto Line Wrap',
'duplicate_post' => 'Warning: the previous page was submitted twice. The second submission had been ignored.',
'view_documentation' => 'View Documentation',
- 'app_title' => 'Gratis Open-Source Online Fakturering',
- 'app_description' => 'Invoice Ninja er en gratis, open-source løsning til fakturering af kunder. Med Invoice Ninja, kan du nemt opbygge og sende smukke fakturaer fra enhver enhed, der har adgang til internettet. Dine kunder kan printe dine fakturaer, downloade dem som PDF-filer, og endda betale dig online via systemet.',
+ 'app_title' => 'Free Open-Source Online Invoicing',
+ 'app_description' => 'Invoice Ninja is a free, open-source solution for invoicing and billing customers. With Invoice Ninja, you can easily build and send beautiful invoices from any device that has access to the web. Your clients can print your invoices, download them as pdf files, and even pay you online from within the system.',
- 'plans' => [
- 'header' => 'The Plans',
- 'free' => 'Free',
- 'unlimited' => 'Unlimited',
- 'pro_plan' => 'Pro Plan',
-
- 'go_pro' => 'Go Pro to Unlock Premium Invoice Ninja Features',
- 'go_pro_text' => 'We believe that the free version of Invoice Ninja is a truly awesome product loaded with the key features you need to bill your clients electronically. But for those who crave still more Ninja awesomeness, we\'ve unmasked the Invoice Ninja Pro plan, which offers more versatility, power and customization options for just $50 per year.',
-
- 'number_clients' => 'Number of clients per account',
- 'unlimited_invoices' => 'Unlimited client invoices',
- 'company_logo' => 'Add your company logo',
- 'live_pdf' => 'Live .PDF invoice creation',
- 'four_templates' => '4 beautiful invoice templates',
- 'payments' => 'Accept credit card payments',
- 'additional_templates' => 'Additional invoice templates',
- 'multi_user' => 'Multi-user support',
- 'quotes' => 'Quotes/pro-forma invoices',
- 'advanced_settings' => 'Advanced invoice settings',
- 'data_vizualizations' => 'Dynamic data vizualizations',
- 'email_support' => 'Priority email support',
- 'remove_created_by' => 'Remove "Created by Invoice Ninja"',
- 'latest_features' => 'Latest and greatest features',
- 'pricing' => 'Pricing',
- 'free_always' => 'Free /Always!',
- 'year_price' => '$50 /Year',
- ],
+ 'rows' => 'rows',
+ 'www' => 'www',
+ 'logo' => 'Logo',
+ 'subdomain' => 'Subdomain',
+ 'provide_name_or_email' => 'Please provide a contact name or email',
+ 'charts_and_reports' => 'Charts & Reports',
+ 'chart' => 'Chart',
+ 'report' => 'Report',
+ 'group_by' => 'Group by',
+ 'paid' => 'Paid',
+ 'enable_report' => 'Report',
+ 'enable_chart' => 'Chart',
+ 'totals' => 'Totals',
+ 'run' => 'Run',
+ 'export' => 'Export',
+ 'documentation' => 'Documentation',
+ 'zapier' => 'Zapier Beta',
+ 'recurring' => 'Recurring',
+ 'last_invoice_sent' => 'Last invoice sent :date',
);
diff --git a/resources/lang/de/texts.php b/resources/lang/de/texts.php
index 1a5c300ae..399d44284 100644
--- a/resources/lang/de/texts.php
+++ b/resources/lang/de/texts.php
@@ -595,36 +595,28 @@ return array(
'auto_wrap' => 'Auto Line Wrap',
'duplicate_post' => 'Warning: the previous page was submitted twice. The second submission had been ignored.',
'view_documentation' => 'View Documentation',
- 'app_title' => 'Kostenlose & Open-Source Online-Rechnungsausstellung',
- 'app_description' => 'Invoice Ninja ist eine kostenlose, Open-Source Lösung für die Rechnungsstellung und Abrechnung deiner Kunden. With Invoice Ninja, you can easily build and send beautiful invoices from any device that has access to the web. Your clients can print your invoices, download them as pdf files, and even pay you online from within the system.',
-
- 'plans' => [
- 'header' => 'Die Mitgliedschaften',
- 'free' => 'Kostenlos',
- 'unlimited' => 'Uneingeschränkt',
- 'pro_plan' => 'Pro-Mitgliedschaft',
-
- 'go_pro' => 'Go Pro to Unlock Premium Invoice Ninja Features',
- 'go_pro_text' => 'We believe that the free version of Invoice Ninja is a truly awesome product loaded with the key features you need to bill your clients electronically. But for those who crave still more Ninja awesomeness, we\'ve unmasked the Invoice Ninja Pro plan, which offers more versatility, power and customization options for just $50 per year.',
-
- 'number_clients' => 'Number of clients per account',
- 'unlimited_invoices' => 'Unlimited client invoices',
- 'company_logo' => 'Add your company logo',
- 'live_pdf' => 'Live .PDF invoice creation',
- 'four_templates' => '4 beautiful invoice templates',
- 'payments' => 'Accept credit card payments',
- 'additional_templates' => 'Additional invoice templates',
- 'multi_user' => 'Multi-user support',
- 'quotes' => 'Quotes/pro-forma invoices',
- 'advanced_settings' => 'Advanced invoice settings',
- 'data_vizualizations' => 'Dynamic data vizualizations',
- 'email_support' => 'Priority email support',
- 'remove_created_by' => 'Remove "Created by Invoice Ninja"',
- 'latest_features' => 'Latest and greatest features',
- 'pricing' => 'Pricing',
- 'free_always' => 'Kostenlos /Immer!',
- 'year_price' => '$50 /Jahre',
- ],
+ 'app_title' => 'Free Open-Source Online Invoicing',
+ 'app_description' => 'Invoice Ninja is a free, open-source solution for invoicing and billing customers. With Invoice Ninja, you can easily build and send beautiful invoices from any device that has access to the web. Your clients can print your invoices, download them as pdf files, and even pay you online from within the system.',
+
+ 'rows' => 'rows',
+ 'www' => 'www',
+ 'logo' => 'Logo',
+ 'subdomain' => 'Subdomain',
+ 'provide_name_or_email' => 'Please provide a contact name or email',
+ 'charts_and_reports' => 'Charts & Reports',
+ 'chart' => 'Chart',
+ 'report' => 'Report',
+ 'group_by' => 'Group by',
+ 'paid' => 'Paid',
+ 'enable_report' => 'Report',
+ 'enable_chart' => 'Chart',
+ 'totals' => 'Totals',
+ 'run' => 'Run',
+ 'export' => 'Export',
+ 'documentation' => 'Documentation',
+ 'zapier' => 'Zapier Beta',
+ 'recurring' => 'Recurring',
+ 'last_invoice_sent' => 'Last invoice sent :date',
);
\ No newline at end of file
diff --git a/resources/lang/en/texts.php b/resources/lang/en/texts.php
index 644ce5996..f393d8132 100644
--- a/resources/lang/en/texts.php
+++ b/resources/lang/en/texts.php
@@ -625,4 +625,6 @@ return array(
'recurring' => 'Recurring',
'last_invoice_sent' => 'Last invoice sent :date',
+ 'processed_updates' => 'Successfully completed update',
+
);
diff --git a/resources/lang/es/texts.php b/resources/lang/es/texts.php
index b21b249fe..78b9824da 100644
--- a/resources/lang/es/texts.php
+++ b/resources/lang/es/texts.php
@@ -565,6 +565,38 @@ return array(
'partial' => 'Partial',
'partial_remaining' => ':partial of :balance',
+ 'more_fields' => 'More Fields',
+ 'less_fields' => 'Less Fields',
+ 'client_name' => 'Client Name',
+ 'pdf_settings' => 'PDF Settings',
+ 'utf8_invoices' => 'Cyrillic Support Beta',
+ 'product_settings' => 'Product Settings',
+ 'auto_wrap' => 'Auto Line Wrap',
+ 'duplicate_post' => 'Warning: the previous page was submitted twice. The second submission had been ignored.',
+ 'view_documentation' => 'View Documentation',
+ 'app_title' => 'Free Open-Source Online Invoicing',
+ 'app_description' => 'Invoice Ninja is a free, open-source solution for invoicing and billing customers. With Invoice Ninja, you can easily build and send beautiful invoices from any device that has access to the web. Your clients can print your invoices, download them as pdf files, and even pay you online from within the system.',
+
+ 'rows' => 'rows',
+ 'www' => 'www',
+ 'logo' => 'Logo',
+ 'subdomain' => 'Subdomain',
+ 'provide_name_or_email' => 'Please provide a contact name or email',
+ 'charts_and_reports' => 'Charts & Reports',
+ 'chart' => 'Chart',
+ 'report' => 'Report',
+ 'group_by' => 'Group by',
+ 'paid' => 'Paid',
+ 'enable_report' => 'Report',
+ 'enable_chart' => 'Chart',
+ 'totals' => 'Totals',
+ 'run' => 'Run',
+ 'export' => 'Export',
+ 'documentation' => 'Documentation',
+ 'zapier' => 'Zapier Beta',
+ 'recurring' => 'Recurring',
+ 'last_invoice_sent' => 'Last invoice sent :date',
+
);
\ No newline at end of file
diff --git a/resources/lang/es_ES/texts.php b/resources/lang/es_ES/texts.php
index 0f5c43b45..940405863 100644
--- a/resources/lang/es_ES/texts.php
+++ b/resources/lang/es_ES/texts.php
@@ -594,5 +594,37 @@ return array(
'partial' => 'Partial',
'partial_remaining' => ':partial of :balance',
+ 'more_fields' => 'More Fields',
+ 'less_fields' => 'Less Fields',
+ 'client_name' => 'Client Name',
+ 'pdf_settings' => 'PDF Settings',
+ 'utf8_invoices' => 'Cyrillic Support Beta',
+ 'product_settings' => 'Product Settings',
+ 'auto_wrap' => 'Auto Line Wrap',
+ 'duplicate_post' => 'Warning: the previous page was submitted twice. The second submission had been ignored.',
+ 'view_documentation' => 'View Documentation',
+ 'app_title' => 'Free Open-Source Online Invoicing',
+ 'app_description' => 'Invoice Ninja is a free, open-source solution for invoicing and billing customers. With Invoice Ninja, you can easily build and send beautiful invoices from any device that has access to the web. Your clients can print your invoices, download them as pdf files, and even pay you online from within the system.',
+
+ 'rows' => 'rows',
+ 'www' => 'www',
+ 'logo' => 'Logo',
+ 'subdomain' => 'Subdomain',
+ 'provide_name_or_email' => 'Please provide a contact name or email',
+ 'charts_and_reports' => 'Charts & Reports',
+ 'chart' => 'Chart',
+ 'report' => 'Report',
+ 'group_by' => 'Group by',
+ 'paid' => 'Paid',
+ 'enable_report' => 'Report',
+ 'enable_chart' => 'Chart',
+ 'totals' => 'Totals',
+ 'run' => 'Run',
+ 'export' => 'Export',
+ 'documentation' => 'Documentation',
+ 'zapier' => 'Zapier Beta',
+ 'recurring' => 'Recurring',
+ 'last_invoice_sent' => 'Last invoice sent :date',
+
);
\ No newline at end of file
diff --git a/resources/lang/fr/texts.php b/resources/lang/fr/texts.php
index a1ce166b8..bf6a3ec98 100644
--- a/resources/lang/fr/texts.php
+++ b/resources/lang/fr/texts.php
@@ -586,5 +586,37 @@ return array(
'partial' => 'Partial',
'partial_remaining' => ':partial of :balance',
+ 'more_fields' => 'More Fields',
+ 'less_fields' => 'Less Fields',
+ 'client_name' => 'Client Name',
+ 'pdf_settings' => 'PDF Settings',
+ 'utf8_invoices' => 'Cyrillic Support Beta',
+ 'product_settings' => 'Product Settings',
+ 'auto_wrap' => 'Auto Line Wrap',
+ 'duplicate_post' => 'Warning: the previous page was submitted twice. The second submission had been ignored.',
+ 'view_documentation' => 'View Documentation',
+ 'app_title' => 'Free Open-Source Online Invoicing',
+ 'app_description' => 'Invoice Ninja is a free, open-source solution for invoicing and billing customers. With Invoice Ninja, you can easily build and send beautiful invoices from any device that has access to the web. Your clients can print your invoices, download them as pdf files, and even pay you online from within the system.',
+
+ 'rows' => 'rows',
+ 'www' => 'www',
+ 'logo' => 'Logo',
+ 'subdomain' => 'Subdomain',
+ 'provide_name_or_email' => 'Please provide a contact name or email',
+ 'charts_and_reports' => 'Charts & Reports',
+ 'chart' => 'Chart',
+ 'report' => 'Report',
+ 'group_by' => 'Group by',
+ 'paid' => 'Paid',
+ 'enable_report' => 'Report',
+ 'enable_chart' => 'Chart',
+ 'totals' => 'Totals',
+ 'run' => 'Run',
+ 'export' => 'Export',
+ 'documentation' => 'Documentation',
+ 'zapier' => 'Zapier Beta',
+ 'recurring' => 'Recurring',
+ 'last_invoice_sent' => 'Last invoice sent :date',
+
);
\ No newline at end of file
diff --git a/resources/lang/fr_CA/texts.php b/resources/lang/fr_CA/texts.php
index ef483165e..25d639b09 100644
--- a/resources/lang/fr_CA/texts.php
+++ b/resources/lang/fr_CA/texts.php
@@ -595,36 +595,27 @@ return array(
'auto_wrap' => 'Auto Line Wrap',
'duplicate_post' => 'Warning: the previous page was submitted twice. The second submission had been ignored.',
'view_documentation' => 'View Documentation',
- 'app_title' => 'Facturation en ligne libre',
- 'app_description' => 'Invoice Ninja est une solution libre pour la tenue de comptes clients et leur facturation. Avec Invoice Ninja, vous pouvez facilement créer et envoyer de belles factures de n\'importe quel dispositif connecté au web. Vos clients peuvent imprimer leurs factures, les télécharger au format PDF, et même vous payer directement en ligne.',
+ 'app_title' => 'Free Open-Source Online Invoicing',
+ 'app_description' => 'Invoice Ninja is a free, open-source solution for invoicing and billing customers. With Invoice Ninja, you can easily build and send beautiful invoices from any device that has access to the web. Your clients can print your invoices, download them as pdf files, and even pay you online from within the system.',
- 'plans' => [
- 'header' => 'The Plans',
- 'free' => 'Free',
- 'unlimited' => 'Unlimited',
- 'pro_plan' => 'Pro Plan',
-
- 'go_pro' => 'Go Pro to Unlock Premium Invoice Ninja Features',
- 'go_pro_text' => 'We believe that the free version of Invoice Ninja is a truly awesome product loaded with the key features you need to bill your clients electronically. But for those who crave still more Ninja awesomeness, we\'ve unmasked the Invoice Ninja Pro plan, which offers more versatility, power and customization options for just $50 per year.',
-
- 'number_clients' => 'Number of clients per account',
- 'unlimited_invoices' => 'Unlimited client invoices',
- 'company_logo' => 'Add your company logo',
- 'live_pdf' => 'Live .PDF invoice creation',
- 'four_templates' => '4 beautiful invoice templates',
- 'payments' => 'Accept credit card payments',
- 'additional_templates' => 'Additional invoice templates',
- 'multi_user' => 'Multi-user support',
- 'quotes' => 'Quotes/pro-forma invoices',
- 'advanced_settings' => 'Advanced invoice settings',
- 'data_vizualizations' => 'Dynamic data vizualizations',
- 'email_support' => 'Priority email support',
- 'remove_created_by' => 'Remove "Created by Invoice Ninja"',
- 'latest_features' => 'Latest and greatest features',
- 'pricing' => 'Pricing',
- 'free_always' => 'Free /Always!',
- 'year_price' => '$50 /Year',
- ],
-
+ 'rows' => 'rows',
+ 'www' => 'www',
+ 'logo' => 'Logo',
+ 'subdomain' => 'Subdomain',
+ 'provide_name_or_email' => 'Please provide a contact name or email',
+ 'charts_and_reports' => 'Charts & Reports',
+ 'chart' => 'Chart',
+ 'report' => 'Report',
+ 'group_by' => 'Group by',
+ 'paid' => 'Paid',
+ 'enable_report' => 'Report',
+ 'enable_chart' => 'Chart',
+ 'totals' => 'Totals',
+ 'run' => 'Run',
+ 'export' => 'Export',
+ 'documentation' => 'Documentation',
+ 'zapier' => 'Zapier Beta',
+ 'recurring' => 'Recurring',
+ 'last_invoice_sent' => 'Last invoice sent :date',
);
diff --git a/resources/lang/it/texts.php b/resources/lang/it/texts.php
index 6cd975a9c..9aa1eeccc 100644
--- a/resources/lang/it/texts.php
+++ b/resources/lang/it/texts.php
@@ -588,5 +588,36 @@ return array(
'partial' => 'Partial',
'partial_remaining' => ':partial of :balance',
+ 'more_fields' => 'More Fields',
+ 'less_fields' => 'Less Fields',
+ 'client_name' => 'Client Name',
+ 'pdf_settings' => 'PDF Settings',
+ 'utf8_invoices' => 'Cyrillic Support Beta',
+ 'product_settings' => 'Product Settings',
+ 'auto_wrap' => 'Auto Line Wrap',
+ 'duplicate_post' => 'Warning: the previous page was submitted twice. The second submission had been ignored.',
+ 'view_documentation' => 'View Documentation',
+ 'app_title' => 'Free Open-Source Online Invoicing',
+ 'app_description' => 'Invoice Ninja is a free, open-source solution for invoicing and billing customers. With Invoice Ninja, you can easily build and send beautiful invoices from any device that has access to the web. Your clients can print your invoices, download them as pdf files, and even pay you online from within the system.',
+
+ 'rows' => 'rows',
+ 'www' => 'www',
+ 'logo' => 'Logo',
+ 'subdomain' => 'Subdomain',
+ 'provide_name_or_email' => 'Please provide a contact name or email',
+ 'charts_and_reports' => 'Charts & Reports',
+ 'chart' => 'Chart',
+ 'report' => 'Report',
+ 'group_by' => 'Group by',
+ 'paid' => 'Paid',
+ 'enable_report' => 'Report',
+ 'enable_chart' => 'Chart',
+ 'totals' => 'Totals',
+ 'run' => 'Run',
+ 'export' => 'Export',
+ 'documentation' => 'Documentation',
+ 'zapier' => 'Zapier Beta',
+ 'recurring' => 'Recurring',
+ 'last_invoice_sent' => 'Last invoice sent :date',
);
diff --git a/resources/lang/lt/texts.php b/resources/lang/lt/texts.php
index acd2dc782..d7a3c0c1b 100644
--- a/resources/lang/lt/texts.php
+++ b/resources/lang/lt/texts.php
@@ -596,6 +596,37 @@ return array(
'partial' => 'Partial',
'partial_remaining' => ':partial of :balance',
+ 'more_fields' => 'More Fields',
+ 'less_fields' => 'Less Fields',
+ 'client_name' => 'Client Name',
+ 'pdf_settings' => 'PDF Settings',
+ 'utf8_invoices' => 'Cyrillic Support Beta',
+ 'product_settings' => 'Product Settings',
+ 'auto_wrap' => 'Auto Line Wrap',
+ 'duplicate_post' => 'Warning: the previous page was submitted twice. The second submission had been ignored.',
+ 'view_documentation' => 'View Documentation',
+ 'app_title' => 'Free Open-Source Online Invoicing',
+ 'app_description' => 'Invoice Ninja is a free, open-source solution for invoicing and billing customers. With Invoice Ninja, you can easily build and send beautiful invoices from any device that has access to the web. Your clients can print your invoices, download them as pdf files, and even pay you online from within the system.',
+
+ 'rows' => 'rows',
+ 'www' => 'www',
+ 'logo' => 'Logo',
+ 'subdomain' => 'Subdomain',
+ 'provide_name_or_email' => 'Please provide a contact name or email',
+ 'charts_and_reports' => 'Charts & Reports',
+ 'chart' => 'Chart',
+ 'report' => 'Report',
+ 'group_by' => 'Group by',
+ 'paid' => 'Paid',
+ 'enable_report' => 'Report',
+ 'enable_chart' => 'Chart',
+ 'totals' => 'Totals',
+ 'run' => 'Run',
+ 'export' => 'Export',
+ 'documentation' => 'Documentation',
+ 'zapier' => 'Zapier Beta',
+ 'recurring' => 'Recurring',
+ 'last_invoice_sent' => 'Last invoice sent :date',
);
diff --git a/resources/lang/nb_NO/texts.php b/resources/lang/nb_NO/texts.php
index 85be70b3c..eebd6786d 100644
--- a/resources/lang/nb_NO/texts.php
+++ b/resources/lang/nb_NO/texts.php
@@ -603,36 +603,27 @@ return array(
'auto_wrap' => 'Auto Line Wrap',
'duplicate_post' => 'Warning: the previous page was submitted twice. The second submission had been ignored.',
'view_documentation' => 'View Documentation',
- 'app_title' => 'Facturation en ligne libre',
- 'app_description' => 'Invoice Ninja est une solution libre pour la tenue de comptes clients et leur facturation. Avec Invoice Ninja, vous pouvez facilement créer et envoyer de belles factures de n\'importe quel dispositif connecté au web. Vos clients peuvent imprimer leurs factures, les télécharger au format PDF, et même vous payer directement en ligne.',
+ 'app_title' => 'Free Open-Source Online Invoicing',
+ 'app_description' => 'Invoice Ninja is a free, open-source solution for invoicing and billing customers. With Invoice Ninja, you can easily build and send beautiful invoices from any device that has access to the web. Your clients can print your invoices, download them as pdf files, and even pay you online from within the system.',
- 'plans' => [
- 'header' => 'The Plans',
- 'free' => 'Free',
- 'unlimited' => 'Unlimited',
- 'pro_plan' => 'Pro Plan',
-
- 'go_pro' => 'Go Pro to Unlock Premium Invoice Ninja Features',
- 'go_pro_text' => 'We believe that the free version of Invoice Ninja is a truly awesome product loaded with the key features you need to bill your clients electronically. But for those who crave still more Ninja awesomeness, we\'ve unmasked the Invoice Ninja Pro plan, which offers more versatility, power and customization options for just $50 per year.',
-
- 'number_clients' => 'Number of clients per account',
- 'unlimited_invoices' => 'Unlimited client invoices',
- 'company_logo' => 'Add your company logo',
- 'live_pdf' => 'Live .PDF invoice creation',
- 'four_templates' => '4 beautiful invoice templates',
- 'payments' => 'Accept credit card payments',
- 'additional_templates' => 'Additional invoice templates',
- 'multi_user' => 'Multi-user support',
- 'quotes' => 'Quotes/pro-forma invoices',
- 'advanced_settings' => 'Advanced invoice settings',
- 'data_vizualizations' => 'Dynamic data vizualizations',
- 'email_support' => 'Priority email support',
- 'remove_created_by' => 'Remove "Created by Invoice Ninja"',
- 'latest_features' => 'Latest and greatest features',
- 'pricing' => 'Pricing',
- 'free_always' => 'Free /Always!',
- 'year_price' => '$50 /Year',
- ],
-
+ 'rows' => 'rows',
+ 'www' => 'www',
+ 'logo' => 'Logo',
+ 'subdomain' => 'Subdomain',
+ 'provide_name_or_email' => 'Please provide a contact name or email',
+ 'charts_and_reports' => 'Charts & Reports',
+ 'chart' => 'Chart',
+ 'report' => 'Report',
+ 'group_by' => 'Group by',
+ 'paid' => 'Paid',
+ 'enable_report' => 'Report',
+ 'enable_chart' => 'Chart',
+ 'totals' => 'Totals',
+ 'run' => 'Run',
+ 'export' => 'Export',
+ 'documentation' => 'Documentation',
+ 'zapier' => 'Zapier Beta',
+ 'recurring' => 'Recurring',
+ 'last_invoice_sent' => 'Last invoice sent :date',
);
\ No newline at end of file
diff --git a/resources/lang/nl/texts.php b/resources/lang/nl/texts.php
index a5e31ee80..2f13f16b6 100644
--- a/resources/lang/nl/texts.php
+++ b/resources/lang/nl/texts.php
@@ -589,6 +589,37 @@ return array(
'partial' => 'Partial',
'partial_remaining' => ':partial of :balance',
+ 'more_fields' => 'More Fields',
+ 'less_fields' => 'Less Fields',
+ 'client_name' => 'Client Name',
+ 'pdf_settings' => 'PDF Settings',
+ 'utf8_invoices' => 'Cyrillic Support Beta',
+ 'product_settings' => 'Product Settings',
+ 'auto_wrap' => 'Auto Line Wrap',
+ 'duplicate_post' => 'Warning: the previous page was submitted twice. The second submission had been ignored.',
+ 'view_documentation' => 'View Documentation',
+ 'app_title' => 'Free Open-Source Online Invoicing',
+ 'app_description' => 'Invoice Ninja is a free, open-source solution for invoicing and billing customers. With Invoice Ninja, you can easily build and send beautiful invoices from any device that has access to the web. Your clients can print your invoices, download them as pdf files, and even pay you online from within the system.',
+
+ 'rows' => 'rows',
+ 'www' => 'www',
+ 'logo' => 'Logo',
+ 'subdomain' => 'Subdomain',
+ 'provide_name_or_email' => 'Please provide a contact name or email',
+ 'charts_and_reports' => 'Charts & Reports',
+ 'chart' => 'Chart',
+ 'report' => 'Report',
+ 'group_by' => 'Group by',
+ 'paid' => 'Paid',
+ 'enable_report' => 'Report',
+ 'enable_chart' => 'Chart',
+ 'totals' => 'Totals',
+ 'run' => 'Run',
+ 'export' => 'Export',
+ 'documentation' => 'Documentation',
+ 'zapier' => 'Zapier Beta',
+ 'recurring' => 'Recurring',
+ 'last_invoice_sent' => 'Last invoice sent :date',
);
diff --git a/resources/lang/pt_BR/texts.php b/resources/lang/pt_BR/texts.php
index 6f2eb87bb..a0cd85444 100644
--- a/resources/lang/pt_BR/texts.php
+++ b/resources/lang/pt_BR/texts.php
@@ -588,6 +588,38 @@ return array(
'knowledge_base' => 'Knowledge Base',
'partial' => 'Partial',
'partial_remaining' => ':partial of :balance',
+
+ 'more_fields' => 'More Fields',
+ 'less_fields' => 'Less Fields',
+ 'client_name' => 'Client Name',
+ 'pdf_settings' => 'PDF Settings',
+ 'utf8_invoices' => 'Cyrillic Support Beta',
+ 'product_settings' => 'Product Settings',
+ 'auto_wrap' => 'Auto Line Wrap',
+ 'duplicate_post' => 'Warning: the previous page was submitted twice. The second submission had been ignored.',
+ 'view_documentation' => 'View Documentation',
+ 'app_title' => 'Free Open-Source Online Invoicing',
+ 'app_description' => 'Invoice Ninja is a free, open-source solution for invoicing and billing customers. With Invoice Ninja, you can easily build and send beautiful invoices from any device that has access to the web. Your clients can print your invoices, download them as pdf files, and even pay you online from within the system.',
+
+ 'rows' => 'rows',
+ 'www' => 'www',
+ 'logo' => 'Logo',
+ 'subdomain' => 'Subdomain',
+ 'provide_name_or_email' => 'Please provide a contact name or email',
+ 'charts_and_reports' => 'Charts & Reports',
+ 'chart' => 'Chart',
+ 'report' => 'Report',
+ 'group_by' => 'Group by',
+ 'paid' => 'Paid',
+ 'enable_report' => 'Report',
+ 'enable_chart' => 'Chart',
+ 'totals' => 'Totals',
+ 'run' => 'Run',
+ 'export' => 'Export',
+ 'documentation' => 'Documentation',
+ 'zapier' => 'Zapier Beta',
+ 'recurring' => 'Recurring',
+ 'last_invoice_sent' => 'Last invoice sent :date',
);
diff --git a/resources/lang/sv/texts.php b/resources/lang/sv/texts.php
index 70d1f1197..86f9d5057 100644
--- a/resources/lang/sv/texts.php
+++ b/resources/lang/sv/texts.php
@@ -591,6 +591,38 @@ return array(
'knowledge_base' => 'Knowledge Base',
'partial' => 'Partial',
'partial_remaining' => ':partial of :balance',
+
+ 'more_fields' => 'More Fields',
+ 'less_fields' => 'Less Fields',
+ 'client_name' => 'Client Name',
+ 'pdf_settings' => 'PDF Settings',
+ 'utf8_invoices' => 'Cyrillic Support Beta',
+ 'product_settings' => 'Product Settings',
+ 'auto_wrap' => 'Auto Line Wrap',
+ 'duplicate_post' => 'Warning: the previous page was submitted twice. The second submission had been ignored.',
+ 'view_documentation' => 'View Documentation',
+ 'app_title' => 'Free Open-Source Online Invoicing',
+ 'app_description' => 'Invoice Ninja is a free, open-source solution for invoicing and billing customers. With Invoice Ninja, you can easily build and send beautiful invoices from any device that has access to the web. Your clients can print your invoices, download them as pdf files, and even pay you online from within the system.',
+
+ 'rows' => 'rows',
+ 'www' => 'www',
+ 'logo' => 'Logo',
+ 'subdomain' => 'Subdomain',
+ 'provide_name_or_email' => 'Please provide a contact name or email',
+ 'charts_and_reports' => 'Charts & Reports',
+ 'chart' => 'Chart',
+ 'report' => 'Report',
+ 'group_by' => 'Group by',
+ 'paid' => 'Paid',
+ 'enable_report' => 'Report',
+ 'enable_chart' => 'Chart',
+ 'totals' => 'Totals',
+ 'run' => 'Run',
+ 'export' => 'Export',
+ 'documentation' => 'Documentation',
+ 'zapier' => 'Zapier Beta',
+ 'recurring' => 'Recurring',
+ 'last_invoice_sent' => 'Last invoice sent :date',
);
diff --git a/resources/views/clients/show.blade.php b/resources/views/clients/show.blade.php
index 92d44a61f..15392777e 100644
--- a/resources/views/clients/show.blade.php
+++ b/resources/views/clients/show.blade.php
@@ -218,7 +218,7 @@
->setUrl(url('api/invoices/' . $client->public_id))
->setOptions('sPaginationType', 'bootstrap')
->setOptions('bFilter', false)
- ->setOptions('aaSorting', [['0', 'asc']])
+ ->setOptions('aaSorting', [['0', 'desc']])
->render('datatable') !!}
@@ -234,7 +234,7 @@
->setUrl(url('api/payments/' . $client->public_id))
->setOptions('sPaginationType', 'bootstrap')
->setOptions('bFilter', false)
- ->setOptions('aaSorting', [['0', 'asc']])
+ ->setOptions('aaSorting', [['0', 'desc']])
->render('datatable') !!}
diff --git a/resources/views/invoices/edit.blade.php b/resources/views/invoices/edit.blade.php
index 2d054ee09..687d39a1e 100644
--- a/resources/views/invoices/edit.blade.php
+++ b/resources/views/invoices/edit.blade.php
@@ -134,7 +134,7 @@
{{-- Former::select('currency_id')->addOption('', '')->fromQuery($currencies, 'name', 'id')->data_bind("value: currency_id") --}}
@else
- {!! Button::success(trans("texts.save_{$entityType}"))->withAttributes(array('id' => 'saveButton', 'onclick' => 'onSaveClick()')) !!}
+ {!! Button::success(trans("texts.save_{$entityType}"))->withAttributes(array('id' => 'saveButton', 'onclick' => 'onSaveClick()'))->appendIcon(Icon::create('floppy-disk')) !!}
@endif
@if (!$invoice || ($invoice && !$invoice->is_recurring))
diff --git a/resources/views/reports/chart_builder.blade.php b/resources/views/reports/chart_builder.blade.php
index 773da6fbf..5d90690db 100644
--- a/resources/views/reports/chart_builder.blade.php
+++ b/resources/views/reports/chart_builder.blade.php
@@ -86,7 +86,7 @@
{{ trans("texts.{$column}") }}
@endforeach
-
+
@foreach ($displayData as $record)
@@ -121,9 +121,6 @@
{{ Utils::formatMoney($total, $currencyId) }}
@endforeach
-
-
- |