diff --git a/app/Http/Controllers/AccountController.php b/app/Http/Controllers/AccountController.php
index 0733d3ba1252..bf72a28ea68e 100644
--- a/app/Http/Controllers/AccountController.php
+++ b/app/Http/Controllers/AccountController.php
@@ -293,6 +293,7 @@ class AccountController extends BaseController
$account->pdf_email_attachment = Input::get('pdf_email_attachment') ? true : false;
$account->utf8_invoices = Input::get('utf8_invoices') ? true : false;
+ $account->auto_wrap = Input::get('auto_wrap') ? true : false;
if (!$account->share_counter) {
$account->quote_number_counter = Input::get('quote_number_counter');
diff --git a/app/Http/Controllers/PaymentController.php b/app/Http/Controllers/PaymentController.php
index cfa492463bf6..70fa028200ab 100644
--- a/app/Http/Controllers/PaymentController.php
+++ b/app/Http/Controllers/PaymentController.php
@@ -145,12 +145,18 @@ class PaymentController extends BaseController
public function create($clientPublicId = 0, $invoicePublicId = 0)
{
+ $invoices = Invoice::scope()
+ ->where('is_recurring', '=', false)
+ ->where('is_quote', '=', false)
+ ->where('invoices.balance', '>', 0)
+ ->with('client', 'invoice_status')
+ ->orderBy('invoice_number')->get();
+
$data = array(
'clientPublicId' => Input::old('client') ? Input::old('client') : $clientPublicId,
'invoicePublicId' => Input::old('invoice') ? Input::old('invoice') : $invoicePublicId,
'invoice' => null,
- 'invoices' => Invoice::scope()->where('is_recurring', '=', false)->where('is_quote', '=', false)
- ->with('client', 'invoice_status')->orderBy('invoice_number')->get(),
+ 'invoices' => $invoices,
'payment' => null,
'method' => 'POST',
'url' => "payments",
diff --git a/app/Http/Kernel.php b/app/Http/Kernel.php
index 509dbf1cce9b..72ffce9c8bf3 100644
--- a/app/Http/Kernel.php
+++ b/app/Http/Kernel.php
@@ -16,6 +16,7 @@ class Kernel extends HttpKernel {
'Illuminate\Session\Middleware\StartSession',
'Illuminate\View\Middleware\ShareErrorsFromSession',
'App\Http\Middleware\VerifyCsrfToken',
+ 'App\Http\Middleware\DuplicateSubmissionCheck',
'App\Http\Middleware\StartupCheck',
];
diff --git a/app/Http/Middleware/DuplicateSubmissionCheck.php b/app/Http/Middleware/DuplicateSubmissionCheck.php
new file mode 100644
index 000000000000..0b2726cc815a
--- /dev/null
+++ b/app/Http/Middleware/DuplicateSubmissionCheck.php
@@ -0,0 +1,24 @@
+method(), ['POST', 'PUT', 'DELETE'])) {
+ $lastPage = session(SESSION_LAST_REQUEST_PAGE);
+ $lastTime = session(SESSION_LAST_REQUEST_TIME);
+
+ if ($lastPage == $request->path() && (microtime(true) - $lastTime <= 1.5)) {
+ return redirect($request->path());
+ }
+
+ session([SESSION_LAST_REQUEST_PAGE => $request->path()]);
+ session([SESSION_LAST_REQUEST_TIME => microtime(true)]);
+ }
+
+ return $next($request);
+ }
+}
\ No newline at end of file
diff --git a/app/Http/routes.php b/app/Http/routes.php
index 5499f2c3537a..bcf423009e51 100644
--- a/app/Http/routes.php
+++ b/app/Http/routes.php
@@ -312,6 +312,9 @@ define('SESSION_DATETIME_FORMAT', 'datetimeFormat');
define('SESSION_COUNTER', 'sessionCounter');
define('SESSION_LOCALE', 'sessionLocale');
+define('SESSION_LAST_REQUEST_PAGE', 'SESSION_LAST_REQUEST_PAGE');
+define('SESSION_LAST_REQUEST_TIME', 'SESSION_LAST_REQUEST_TIME');
+
define('DEFAULT_TIMEZONE', 'US/Eastern');
define('DEFAULT_CURRENCY', 1); // US Dollar
define('DEFAULT_DATE_FORMAT', 'M j, Y');
diff --git a/app/Models/Account.php b/app/Models/Account.php
index 4dadd3d521c3..b067127c590b 100644
--- a/app/Models/Account.php
+++ b/app/Models/Account.php
@@ -355,7 +355,8 @@ class Account extends Eloquent
public function getEmailFooter()
{
if ($this->email_footer) {
- return $this->email_footer;
+ // Add line breaks if HTML isn't already being used
+ return strip_tags($this->email_footer) == $this->email_footer ? nl2br($this->email_footer) : $this->email_footer;
} else {
return "
" . trans('texts.email_signature') . "
\$account
";
}
diff --git a/app/Ninja/Repositories/InvoiceRepository.php b/app/Ninja/Repositories/InvoiceRepository.php
index af0857989321..2a10335320d3 100644
--- a/app/Ninja/Repositories/InvoiceRepository.php
+++ b/app/Ninja/Repositories/InvoiceRepository.php
@@ -134,7 +134,7 @@ class InvoiceRepository
}
return $table->addColumn('due_date', function ($model) { return Utils::fromSqlDate($model->due_date); })
- ->addColumn('invoice_status_name', function ($model) { return $model->quote_invoice_id ? link_to("invoices/{$model->quote_invoice_id}/edit", trans('texts.converted')) : $model->invoice_status_name; })
+ ->addColumn('invoice_status_name', function ($model) { return $model->quote_invoice_id ? link_to("invoices/{$model->quote_invoice_id}/edit", trans('texts.converted')) : self::getStatusLabel($model->invoice_status_id, $model->invoice_status_name); })
->addColumn('dropdown', function ($model) use ($entityType) {
if ($model->is_deleted) {
@@ -187,6 +187,26 @@ class InvoiceRepository
->make();
}
+ private function getStatusLabel($statusId, $statusName) {
+ $label = trans("texts.{$statusName}");
+ $class = 'default';
+ switch ($statusId) {
+ case INVOICE_STATUS_SENT:
+ $class = 'info';
+ break;
+ case INVOICE_STATUS_VIEWED:
+ $class = 'warning';
+ break;
+ case INVOICE_STATUS_PARTIAL:
+ $class = 'primary';
+ break;
+ case INVOICE_STATUS_PAID:
+ $class = 'success';
+ break;
+ }
+ return "$statusName
";
+ }
+
public function getErrors($input)
{
$contact = (array) $input->client->contacts[0];
diff --git a/database/migrations/2015_04_16_122647_add_partial_amount_to_invoices.php b/database/migrations/2015_04_16_122647_add_partial_amount_to_invoices.php
index 033e6268d628..9915b5b9f96a 100644
--- a/database/migrations/2015_04_16_122647_add_partial_amount_to_invoices.php
+++ b/database/migrations/2015_04_16_122647_add_partial_amount_to_invoices.php
@@ -20,6 +20,7 @@ class AddPartialAmountToInvoices extends Migration {
Schema::table('accounts', function($table)
{
$table->boolean('utf8_invoices')->default(false);
+ $table->boolean('auto_wrap')->default(true);
});
}
@@ -38,6 +39,7 @@ class AddPartialAmountToInvoices extends Migration {
Schema::table('accounts', function($table)
{
$table->dropColumn('utf8_invoices');
+ $table->dropColumn('auto_wrap');
});
}
diff --git a/public/css/built.css b/public/css/built.css
index 01e9587a4953..5115288e1fa4 100644
--- a/public/css/built.css
+++ b/public/css/built.css
@@ -2408,7 +2408,6 @@ div.checkbox > label {
.container input[type=email],
.container textarea,
.container select {
- /*font-family: 'Roboto', sans-serif;*/
font-size: 16px;
font-weight: 400;
width: 100%;
@@ -2424,6 +2423,24 @@ div.checkbox > label {
color: #444444;
}
+.container input:disabled,
+.container textarea:disabled,
+.container select:disabled {
+ background-color: #EEE !important;
+}
+
.panel-title {
font-size: 18px;
-}
\ No newline at end of file
+ color: white;
+}
+
+.panel-heading {
+ /*background-color: #e37329 !important;*/
+ background-color: #0b4d78 !important;
+}
+
+/*
+.panel-default {
+ border-color: #e37329 !important;
+}
+*/
\ No newline at end of file
diff --git a/public/css/style.css b/public/css/style.css
index 7d16afe5ff0b..243f095041e7 100644
--- a/public/css/style.css
+++ b/public/css/style.css
@@ -826,6 +826,24 @@ div.checkbox > label {
color: #444444;
}
+.container input:disabled,
+.container textarea:disabled,
+.container select:disabled {
+ background-color: #EEE !important;
+}
+
.panel-title {
font-size: 18px;
-}
\ No newline at end of file
+ color: white;
+}
+
+.panel-heading {
+ /*background-color: #e37329 !important;*/
+ background-color: #0b4d78 !important;
+}
+
+/*
+.panel-default {
+ border-color: #e37329 !important;
+}
+*/
\ No newline at end of file
diff --git a/public/js/built.js b/public/js/built.js
index a7cec8cdf553..716f5ae74f77 100644
--- a/public/js/built.js
+++ b/public/js/built.js
@@ -31664,8 +31664,9 @@ function GetPdf(invoice, javascript){
SetPdfColor(invoice.invoice_design_id == 2 || invoice.invoice_design_id == 3 ? 'White' : 'Black',doc);
var top = doc.internal.pageSize.height - layout.marginLeft;
if (!invoice.is_pro) top -= 25;
- var numLines = invoice.invoice_footer.split("\n").length - 1;
- doc.text(layout.marginLeft, top - (numLines * 8), invoice.invoice_footer);
+ var footer = doc.splitTextToSize(invoice.invoice_footer, 500);
+ var numLines = footer.length - 1;
+ doc.text(layout.marginLeft, top - (numLines * 8), footer);
}
return doc;
@@ -32065,34 +32066,6 @@ if (window.ko) {
};
}
-function wordWrapText(value, width)
-{
- var doc = new jsPDF('p', 'pt');
- doc.setFont('Helvetica','');
- doc.setFontSize(10);
-
- var lines = value.split("\n");
- for (var i = 0; i < lines.length; i++) {
- var numLines = doc.splitTextToSize(lines[i], width).length;
- if (numLines <= 1) continue;
- var j = 0; space = lines[i].length;
- while (j++ < lines[i].length) {
- if (lines[i].charAt(j) === ' ') space = j;
- }
- if (space == lines[i].length) space = width/6;
- lines[i + 1] = lines[i].substring(space + 1) + ' ' + (lines[i + 1] || '');
- lines[i] = lines[i].substring(0, space);
- }
-
- var newValue = (lines.join("\n")).trim();
-
- if (value == newValue) {
- return newValue;
- } else {
- return wordWrapText(newValue, width);
- }
-}
-
function getClientDisplayName(client)
{
var contact = client.contacts ? client.contacts[0] : false;
@@ -32473,17 +32446,19 @@ function displayNotesAndTerms(doc, layout, invoice, y)
var origY = y;
if (invoice.public_notes) {
- doc.text(layout.marginLeft, y, invoice.public_notes);
- y += 16 + (doc.splitTextToSize(invoice.public_notes, 300).length * doc.internal.getFontSize());
+ var notes = doc.splitTextToSize(invoice.public_notes, 260);
+ doc.text(layout.marginLeft, y, notes);
+ y += 16 + (notes.length * doc.internal.getFontSize());
}
if (invoice.terms) {
- doc.setFontType("bold");
+ var terms = doc.splitTextToSize(invoice.terms, 260);
+ doc.setFontType("bold");
doc.text(layout.marginLeft, y, invoiceLabels.terms);
y += 16;
doc.setFontType("normal");
- doc.text(layout.marginLeft, y, invoice.terms);
- y += 16 + (doc.splitTextToSize(invoice.terms, 300).length * doc.internal.getFontSize());
+ doc.text(layout.marginLeft, y, terms);
+ y += 16 + (terms.length * doc.internal.getFontSize());
}
return y - origY;
diff --git a/public/js/script.js b/public/js/script.js
index 61368c085939..f77f3ea4d249 100644
--- a/public/js/script.js
+++ b/public/js/script.js
@@ -102,8 +102,9 @@ function GetPdf(invoice, javascript){
SetPdfColor(invoice.invoice_design_id == 2 || invoice.invoice_design_id == 3 ? 'White' : 'Black',doc);
var top = doc.internal.pageSize.height - layout.marginLeft;
if (!invoice.is_pro) top -= 25;
- var numLines = invoice.invoice_footer.split("\n").length - 1;
- doc.text(layout.marginLeft, top - (numLines * 8), invoice.invoice_footer);
+ var footer = doc.splitTextToSize(invoice.invoice_footer, 500);
+ var numLines = footer.length - 1;
+ doc.text(layout.marginLeft, top - (numLines * 8), footer);
}
return doc;
@@ -503,34 +504,6 @@ if (window.ko) {
};
}
-function wordWrapText(value, width)
-{
- var doc = new jsPDF('p', 'pt');
- doc.setFont('Helvetica','');
- doc.setFontSize(10);
-
- var lines = value.split("\n");
- for (var i = 0; i < lines.length; i++) {
- var numLines = doc.splitTextToSize(lines[i], width).length;
- if (numLines <= 1) continue;
- var j = 0; space = lines[i].length;
- while (j++ < lines[i].length) {
- if (lines[i].charAt(j) === ' ') space = j;
- }
- if (space == lines[i].length) space = width/6;
- lines[i + 1] = lines[i].substring(space + 1) + ' ' + (lines[i + 1] || '');
- lines[i] = lines[i].substring(0, space);
- }
-
- var newValue = (lines.join("\n")).trim();
-
- if (value == newValue) {
- return newValue;
- } else {
- return wordWrapText(newValue, width);
- }
-}
-
function getClientDisplayName(client)
{
var contact = client.contacts ? client.contacts[0] : false;
@@ -911,17 +884,19 @@ function displayNotesAndTerms(doc, layout, invoice, y)
var origY = y;
if (invoice.public_notes) {
- doc.text(layout.marginLeft, y, invoice.public_notes);
- y += 16 + (doc.splitTextToSize(invoice.public_notes, 300).length * doc.internal.getFontSize());
+ var notes = doc.splitTextToSize(invoice.public_notes, 260);
+ doc.text(layout.marginLeft, y, notes);
+ y += 16 + (notes.length * doc.internal.getFontSize());
}
if (invoice.terms) {
- doc.setFontType("bold");
+ var terms = doc.splitTextToSize(invoice.terms, 260);
+ doc.setFontType("bold");
doc.text(layout.marginLeft, y, invoiceLabels.terms);
y += 16;
doc.setFontType("normal");
- doc.text(layout.marginLeft, y, invoice.terms);
- y += 16 + (doc.splitTextToSize(invoice.terms, 300).length * doc.internal.getFontSize());
+ doc.text(layout.marginLeft, y, terms);
+ y += 16 + (terms.length * doc.internal.getFontSize());
}
return y - origY;
diff --git a/resources/lang/en/texts.php b/resources/lang/en/texts.php
index 9c4a9cb69586..2f461d474f60 100644
--- a/resources/lang/en/texts.php
+++ b/resources/lang/en/texts.php
@@ -207,7 +207,7 @@ return array(
'client_will_create' => 'client will be created',
'clients_will_create' => 'clients will be created',
'email_settings' => 'Email Settings',
- 'pdf_email_attachment' => 'Attach PDF to Emails',
+ 'pdf_email_attachment' => 'Attach to Emails',
// application messages
'created_client' => 'Successfully created client',
@@ -596,8 +596,10 @@ return array(
'more_fields' => 'More Fields',
'less_fields' => 'Less Fields',
'client_name' => 'Client Name',
- 'pdf_settings' => 'PDFF Settings',
- 'utf8_invoices' => 'UTF-8 Support Beta',
+ 'pdf_settings' => 'PDF Settings',
+ 'utf8_invoices' => 'Cyrillic Support',
+ 'product_settings' => 'Product Settings',
+ 'auto_wrap' => 'Auto Line Wrap',
);
diff --git a/resources/views/accounts/account_gateway.blade.php b/resources/views/accounts/account_gateway.blade.php
index 8f214354ba98..ab1825e128c8 100644
--- a/resources/views/accounts/account_gateway.blade.php
+++ b/resources/views/accounts/account_gateway.blade.php
@@ -7,9 +7,10 @@
{!! Former::populate($account) !!}
- {!! Former::legend($title) !!}
-
+
+
{!! trans($title) !!}
+
@if ($accountGateway)
diff --git a/resources/views/accounts/import_export.blade.php b/resources/views/accounts/import_export.blade.php
index ac2e36b954c5..c8460bf0884a 100644
--- a/resources/views/accounts/import_export.blade.php
+++ b/resources/views/accounts/import_export.blade.php
@@ -3,7 +3,7 @@
@section('content')
@parent
-{!! Former::open_for_files('company/import_map')->addClass('col-md-9 col-md-offset-1') !!}
+{!! Former::open_for_files('company/import_map')->addClass('col-md-8 col-md-offset-2') !!}
{!! trans('texts.import_clients') !!}
@@ -16,7 +16,7 @@
{!! Former::close() !!}
-{!! Former::open('company/export')->addClass('col-md-9 col-md-offset-1') !!}
+{!! Former::open('company/export')->addClass('col-md-8 col-md-offset-2') !!}
{!! trans('texts.export_clients') !!}
@@ -28,7 +28,7 @@
{!! Former::close() !!}
-{!! Former::open('company/cancel_account')->addClass('col-md-9 col-md-offset-1 cancel-account') !!}
+{!! Former::open('company/cancel_account')->addClass('col-md-8 col-md-offset-2 cancel-account') !!}
{!! trans('texts.cancel_account') !!}
diff --git a/resources/views/accounts/invoice_settings.blade.php b/resources/views/accounts/invoice_settings.blade.php
index 103a12b8400e..d0b3a6cdf6be 100644
--- a/resources/views/accounts/invoice_settings.blade.php
+++ b/resources/views/accounts/invoice_settings.blade.php
@@ -24,6 +24,7 @@
{{ Former::populateField('share_counter', intval($account->share_counter)) }}
{{ Former::populateField('pdf_email_attachment', intval($account->pdf_email_attachment)) }}
{{ Former::populateField('utf8_invoices', intval($account->utf8_invoices)) }}
+ {{ Former::populateField('auto_wrap', intval($account->auto_wrap)) }}
@@ -93,11 +94,12 @@
-
{!! trans('texts.email_settings') !!}
+ {!! trans('texts.pdf_settings') !!}
{!! Former::checkbox('pdf_email_attachment')->text(trans('texts.enable')) !!}
{!! Former::checkbox('utf8_invoices')->text(trans('texts.enable')) !!}
+ {!! Former::checkbox('auto_wrap')->text(trans('texts.enable')) !!}
diff --git a/resources/views/accounts/notifications.blade.php b/resources/views/accounts/notifications.blade.php
index f35e9f6db017..52c38e9618c1 100644
--- a/resources/views/accounts/notifications.blade.php
+++ b/resources/views/accounts/notifications.blade.php
@@ -53,11 +53,11 @@
{!! trans('texts.custom_messages') !!}
- {!! Former::textarea('invoice_terms')->label(trans('texts.default_invoice_terms'))
+ {!! Former::textarea('invoice_terms')->label(trans('texts.default_invoice_terms'))->rows(4)
->onchange("$('#invoice_terms').val(wordWrapText($('#invoice_terms').val(), 300))") !!}
- {!! Former::textarea('invoice_footer')->label(trans('texts.default_invoice_footer'))
+ {!! Former::textarea('invoice_footer')->label(trans('texts.default_invoice_footer'))->rows(4)
->onchange("$('#invoice_footer').val(wordWrapText($('#invoice_footer').val(), 600))") !!}
- {!! Former::textarea('email_footer')->label(trans('texts.default_email_footer')) !!}
+ {!! Former::textarea('email_footer')->label(trans('texts.default_email_footer'))->rows(4) !!}
diff --git a/resources/views/accounts/payments.blade.php b/resources/views/accounts/payments.blade.php
index b78fd38e8a4c..f984a70e223e 100644
--- a/resources/views/accounts/payments.blade.php
+++ b/resources/views/accounts/payments.blade.php
@@ -4,7 +4,6 @@
@parent
{!! Former::open('gateways/delete')->addClass('user-form') !!}
- {!! Former::legend(trans('texts.online_payments')) !!}
{!! Former::text('accountGatewayPublicId') !!}
diff --git a/resources/views/accounts/product.blade.php b/resources/views/accounts/product.blade.php
index 8139b6a0cb74..b31d7e543050 100644
--- a/resources/views/accounts/product.blade.php
+++ b/resources/views/accounts/product.blade.php
@@ -8,9 +8,10 @@
->addClass('col-md-8 col-md-offset-2 warn-on-exit') !!}
- {!! Former::legend($title) !!}
-
+
+
{!! $title !!}
+
@if ($product)
diff --git a/resources/views/accounts/products.blade.php b/resources/views/accounts/products.blade.php
index 202b09740ba3..054bc06578d1 100644
--- a/resources/views/accounts/products.blade.php
+++ b/resources/views/accounts/products.blade.php
@@ -8,8 +8,10 @@
{{ Former::populateField('update_products', intval($account->update_products)) }}
- {!! Former::legend(trans('texts.product_library')) !!}
+
+
{!! trans('texts.product_settings') !!}
+
{!! Former::checkbox('fill_products')->text(trans('texts.fill_products_help')) !!}
diff --git a/resources/views/accounts/token.blade.php b/resources/views/accounts/token.blade.php
index 6a5dce7972e7..a508ea044d6f 100644
--- a/resources/views/accounts/token.blade.php
+++ b/resources/views/accounts/token.blade.php
@@ -8,9 +8,10 @@
'name' => 'required',
)); !!}
- {!! Former::legend($title) !!}
-
+
+
{!! trans($title) !!}
+
@if ($token)
diff --git a/resources/views/accounts/token_management.blade.php b/resources/views/accounts/token_management.blade.php
index 40c9f61635f2..eab95a1dd78b 100644
--- a/resources/views/accounts/token_management.blade.php
+++ b/resources/views/accounts/token_management.blade.php
@@ -5,7 +5,6 @@
@include('accounts.nav_advanced')
{!! Former::open('tokens/delete')->addClass('user-form') !!}
- {!! Former::legend('token_management') !!}
{!! Former::text('tokenPublicId') !!}
diff --git a/resources/views/accounts/user_management.blade.php b/resources/views/accounts/user_management.blade.php
index 8b6e07e7150f..f964b5b1d059 100644
--- a/resources/views/accounts/user_management.blade.php
+++ b/resources/views/accounts/user_management.blade.php
@@ -5,7 +5,6 @@
@include('accounts.nav_advanced')
{!! Former::open('users/delete')->addClass('user-form') !!}
- {!! Former::legend('user_management') !!}
{!! Former::text('userPublicId') !!}
diff --git a/resources/views/credits/edit.blade.php b/resources/views/credits/edit.blade.php
index 02e01ec2e51f..a06911da039b 100644
--- a/resources/views/credits/edit.blade.php
+++ b/resources/views/credits/edit.blade.php
@@ -14,7 +14,7 @@
)) !!}
-
+
diff --git a/resources/views/dashboard.blade.php b/resources/views/dashboard.blade.php
index 30d9bbb737f1..b53a288d01b2 100644
--- a/resources/views/dashboard.blade.php
+++ b/resources/views/dashboard.blade.php
@@ -56,7 +56,7 @@
-
+
{{ trans('texts.notifications') }}
@@ -73,7 +73,7 @@
-
+
{{ trans('texts.invoices_past_due') }}
@@ -107,8 +107,8 @@
-
-
+
+
{{ trans('texts.upcoming_invoices') }}
diff --git a/resources/views/header.blade.php b/resources/views/header.blade.php
index d7a0c94c9fec..a0b892bdc488 100644
--- a/resources/views/header.blade.php
+++ b/resources/views/header.blade.php
@@ -23,6 +23,256 @@
@include('script')
+
+
@stop
@section('body')
@@ -350,222 +600,5 @@
-
-
@stop
\ No newline at end of file
diff --git a/resources/views/invoices/edit.blade.php b/resources/views/invoices/edit.blade.php
index 771dd4cbcc11..1df700acf219 100644
--- a/resources/views/invoices/edit.blade.php
+++ b/resources/views/invoices/edit.blade.php
@@ -359,7 +359,7 @@
{!! Button::normal(trans("texts.email_{$entityType}"))->withAttributes(array('id' => 'email_button', 'onclick' => 'onEmailClick()'))->appendIcon(Icon::create('send')) !!}
@endif
- @if ($invoice && $invoice->id && $entityType == ENTITY_INVOICE && !$invoice->is_recurring)
+ @if ($invoice && $invoice->id && $entityType == ENTITY_INVOICE && !$invoice->is_recurring && !$invoice->isPaid())
{!! Button::primary(trans('texts.enter_payment'))->withAttributes(array('onclick' => 'onPaymentClick()'))->appendIcon(Icon::create('usd')) !!}
@endif
@elseif ($invoice && $invoice->trashed() && !$invoice->is_deleted == '1')
diff --git a/resources/views/payments/edit.blade.php b/resources/views/payments/edit.blade.php
index 432d21d8a10a..15da6cd6e990 100644
--- a/resources/views/payments/edit.blade.php
+++ b/resources/views/payments/edit.blade.php
@@ -20,7 +20,7 @@
-
+
diff --git a/resources/views/reports/report_builder.blade.php b/resources/views/reports/report_builder.blade.php
index cd34d5fca64d..0f06128281e2 100644
--- a/resources/views/reports/report_builder.blade.php
+++ b/resources/views/reports/report_builder.blade.php
@@ -11,20 +11,22 @@
@include('accounts.nav_advanced')
-
+ {!! Button::normal(trans('texts.data_visualizations'))
+ ->asLinkTo('/company/advanced_settings/data_visualizations')
+ ->withAttributes(['class' => 'pull-right'])
+ ->appendIcon(Icon::create('globe')) !!}
+
+
+
+
+
+
{!! Former::open()->addClass('warn-on-exit') !!}
-
-
{!! Former::populateField('start_date', $startDate) !!}
{!! Former::populateField('end_date', $endDate) !!}
{!! Former::select('chart_type')->options($chartTypes, $chartType) !!}
@@ -33,8 +35,6 @@
->append('') !!}
{!! Former::text('end_date')->data_date_format(Session::get(SESSION_DATE_PICKER_FORMAT))
->append('') !!}
-
-
@if (Auth::user()->isPro())
{!! Former::actions( Button::primary('Generate')->submit() ) !!}
@@ -68,6 +68,8 @@
+
+