diff --git a/app/Http/Controllers/AppController.php b/app/Http/Controllers/AppController.php
index c261d6fbdea0..7616128b92bd 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 e94deec99917..dec45b8c0ad3 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 96b3e7b28746..96e82416e897 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 127f19e4114d..11977f237886 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 cff85c101a55..9989227851b7 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 6335112992ec..ed11361ac1ca 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 73b8090c73be..a02a6c92135c 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 608464b39b7d..b9a4dcbd3c32 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 c59b4647d16d..91e9f45afa5a 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 818c6ed24ac2..ea550343f3c4 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 f6faea7b2f22..f7fce4f34641 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 1a5c300aeb2c..399d44284a54 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 644ce5996115..f393d81327d9 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 b21b249feb29..78b9824dae0c 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 0f5c43b45d31..940405863b91 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 a1ce166b8603..bf6a3ec9844d 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 ef483165ea61..25d639b094c1 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 6cd975a9c641..9aa1eeccc889 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 acd2dc7825a9..d7a3c0c1b6b3 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 85be70b3cb4d..eebd6786da34 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 a5e31ee809fc..2f13f16b650c 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 6f2eb87bb8b6..a0cd85444caf 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 70d1f1197333..86f9d50577dc 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 92d44a61f66a..15392777e379 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 2d054ee097e2..687d39a1e618 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 773da6fbf9b8..5d90690db877 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
-
-
- |