mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2025-07-09 03:14:30 -04:00
Fix for dev channel Chrome crash
This commit is contained in:
parent
15ec7ce5b5
commit
6d6f8f5cab
@ -14,7 +14,7 @@ class AddInvoiceDesignTable extends Migration {
|
|||||||
{
|
{
|
||||||
Schema::table('invoice_designs', function($table)
|
Schema::table('invoice_designs', function($table)
|
||||||
{
|
{
|
||||||
$table->text('javascript')->nullable();
|
$table->mediumText('javascript')->nullable();
|
||||||
});
|
});
|
||||||
|
|
||||||
Schema::table('accounts', function($table)
|
Schema::table('accounts', function($table)
|
||||||
|
@ -14,7 +14,7 @@ class AddPdfmakeSupport extends Migration {
|
|||||||
{
|
{
|
||||||
Schema::table('invoice_designs', function($table)
|
Schema::table('invoice_designs', function($table)
|
||||||
{
|
{
|
||||||
$table->text('pdfmake')->nullable();
|
$table->mediumText('pdfmake')->nullable();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -29885,34 +29885,26 @@ var isChrome = !!window.chrome && !isOpera && !isEdge; // Chrome 1+
|
|||||||
var isChromium = isChrome && navigator.userAgent.indexOf('Chromium') >= 0;
|
var isChromium = isChrome && navigator.userAgent.indexOf('Chromium') >= 0;
|
||||||
var isIE = /*@cc_on!@*/false || !!document.documentMode; // At least IE6
|
var isIE = /*@cc_on!@*/false || !!document.documentMode; // At least IE6
|
||||||
|
|
||||||
var pdfDoc;
|
|
||||||
var invoiceOld;
|
|
||||||
var refreshTimer;
|
var refreshTimer;
|
||||||
function generatePDF(invoice, javascript, force, cb) {
|
function generatePDF(invoice, javascript, force, cb) {
|
||||||
if (!invoice || !javascript) {
|
if (!invoice || !javascript) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
//console.log('== generatePDF - force: %s', force);
|
//console.log('== generatePDF - force: %s', force);
|
||||||
if (force || !invoiceOld) {
|
if (force) {
|
||||||
refreshTimer = null;
|
refreshTimer = null;
|
||||||
} else {
|
} else {
|
||||||
if (refreshTimer) {
|
if (refreshTimer) {
|
||||||
clearTimeout(refreshTimer);
|
clearTimeout(refreshTimer);
|
||||||
}
|
}
|
||||||
refreshTimer = setTimeout(function() {
|
refreshTimer = setTimeout(function() {
|
||||||
generatePDF(invoice, javascript, true, cb);
|
generatePDF(invoice, javascript, true, cb);
|
||||||
}, 500);
|
}, 500);
|
||||||
return pdfDoc;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
invoice = calculateAmounts(invoice);
|
invoice = calculateAmounts(invoice);
|
||||||
var a = copyObject(invoice);
|
var pdfDoc = GetPdfMake(invoice, javascript, cb);
|
||||||
var b = copyObject(invoiceOld);
|
|
||||||
if (_.isEqual(a, b)) {
|
|
||||||
return pdfDoc;
|
|
||||||
}
|
|
||||||
invoiceOld = invoice;
|
|
||||||
pdfDoc = GetPdfMake(invoice, javascript, cb);
|
|
||||||
|
|
||||||
if (cb) {
|
if (cb) {
|
||||||
pdfDoc.getDataUrl(cb);
|
pdfDoc.getDataUrl(cb);
|
||||||
|
@ -7,34 +7,26 @@ var isChrome = !!window.chrome && !isOpera && !isEdge; // Chrome 1+
|
|||||||
var isChromium = isChrome && navigator.userAgent.indexOf('Chromium') >= 0;
|
var isChromium = isChrome && navigator.userAgent.indexOf('Chromium') >= 0;
|
||||||
var isIE = /*@cc_on!@*/false || !!document.documentMode; // At least IE6
|
var isIE = /*@cc_on!@*/false || !!document.documentMode; // At least IE6
|
||||||
|
|
||||||
var pdfDoc;
|
|
||||||
var invoiceOld;
|
|
||||||
var refreshTimer;
|
var refreshTimer;
|
||||||
function generatePDF(invoice, javascript, force, cb) {
|
function generatePDF(invoice, javascript, force, cb) {
|
||||||
if (!invoice || !javascript) {
|
if (!invoice || !javascript) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
//console.log('== generatePDF - force: %s', force);
|
//console.log('== generatePDF - force: %s', force);
|
||||||
if (force || !invoiceOld) {
|
if (force) {
|
||||||
refreshTimer = null;
|
refreshTimer = null;
|
||||||
} else {
|
} else {
|
||||||
if (refreshTimer) {
|
if (refreshTimer) {
|
||||||
clearTimeout(refreshTimer);
|
clearTimeout(refreshTimer);
|
||||||
}
|
}
|
||||||
refreshTimer = setTimeout(function() {
|
refreshTimer = setTimeout(function() {
|
||||||
generatePDF(invoice, javascript, true, cb);
|
generatePDF(invoice, javascript, true, cb);
|
||||||
}, 500);
|
}, 500);
|
||||||
return pdfDoc;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
invoice = calculateAmounts(invoice);
|
invoice = calculateAmounts(invoice);
|
||||||
var a = copyObject(invoice);
|
var pdfDoc = GetPdfMake(invoice, javascript, cb);
|
||||||
var b = copyObject(invoiceOld);
|
|
||||||
if (_.isEqual(a, b)) {
|
|
||||||
return pdfDoc;
|
|
||||||
}
|
|
||||||
invoiceOld = invoice;
|
|
||||||
pdfDoc = GetPdfMake(invoice, javascript, cb);
|
|
||||||
|
|
||||||
if (cb) {
|
if (cb) {
|
||||||
pdfDoc.getDataUrl(cb);
|
pdfDoc.getDataUrl(cb);
|
||||||
|
@ -735,11 +735,12 @@
|
|||||||
$('.client-input').val(getClientDisplayName(selected));
|
$('.client-input').val(getClientDisplayName(selected));
|
||||||
// if there's an invoice number pattern we'll apply it now
|
// if there's an invoice number pattern we'll apply it now
|
||||||
setInvoiceNumber(selected);
|
setInvoiceNumber(selected);
|
||||||
|
refreshPDF(true);
|
||||||
} else if (oldId) {
|
} else if (oldId) {
|
||||||
model.loadClient($.parseJSON(ko.toJSON(new ClientModel())));
|
model.loadClient($.parseJSON(ko.toJSON(new ClientModel())));
|
||||||
model.invoice().client().country = false;
|
model.invoice().client().country = false;
|
||||||
|
refreshPDF(true);
|
||||||
}
|
}
|
||||||
refreshPDF(true);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
// If no clients exists show the client form when clicking on the client select input
|
// If no clients exists show the client form when clicking on the client select input
|
||||||
@ -841,6 +842,7 @@
|
|||||||
}
|
}
|
||||||
@endif
|
@endif
|
||||||
model.product_key(key);
|
model.product_key(key);
|
||||||
|
onItemChange();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -128,7 +128,7 @@ function ViewModel(data) {
|
|||||||
var email = $("[name='client[contacts][0][email]']").val();
|
var email = $("[name='client[contacts][0][email]']").val();
|
||||||
var firstName = $("[name='client[contacts][0][first_name]']").val();
|
var firstName = $("[name='client[contacts][0][first_name]']").val();
|
||||||
var lastName = $("[name='client[contacts][0][last_name]']").val();
|
var lastName = $("[name='client[contacts][0][last_name]']").val();
|
||||||
var name = $('#name').val();
|
var name = $("[name='client[name]']").val();
|
||||||
|
|
||||||
if (name) {
|
if (name) {
|
||||||
//
|
//
|
||||||
@ -141,7 +141,7 @@ function ViewModel(data) {
|
|||||||
var isValid = true;
|
var isValid = true;
|
||||||
$('input.client-email').each(function(item, value) {
|
$('input.client-email').each(function(item, value) {
|
||||||
var email = $(value).val();
|
var email = $(value).val();
|
||||||
if (!name && (!email || !isValidEmailAddress(email))) {
|
if (!first_name && (!email || !isValidEmailAddress(email))) {
|
||||||
isValid = false;
|
isValid = false;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"stack": "$clientDetails",
|
"stack": "$clientDetails",
|
||||||
"margin": [260, 80, 0, 0]
|
"margin": [0, 80, 0, 0]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
Loading…
x
Reference in New Issue
Block a user