Clean up JSON encoding

This commit is contained in:
Hillel Coren 2017-05-08 22:10:39 +03:00
parent 792884e887
commit 8738a2ad55
22 changed files with 36 additions and 41 deletions

View File

@ -44,9 +44,4 @@ class HTMLUtils
return $purifier->purify($html); return $purifier->purify($html);
} }
public static function encodeJSON($string)
{
return htmlentities(json_encode($string), ENT_NOQUOTES);
}
} }

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -453,8 +453,8 @@ function comboboxHighlighter(item) {
result = result.replace(new RegExp('(' + query + ')', 'ig'), function ($1, match) { result = result.replace(new RegExp('(' + query + ')', 'ig'), function ($1, match) {
return match ? '<strong>' + match + '</strong>' : query; return match ? '<strong>' + match + '</strong>' : query;
}); });
result = result.replace(new RegExp("\n", 'g'), '<br/>'); result = stripHtmlTags(result);
return result; return result.replace(new RegExp("\n", 'g'), '<br/>');
} }
function comboboxMatcher(item) { function comboboxMatcher(item) {

View File

@ -372,7 +372,7 @@ iframe.src = '{{ rtrim(SITE_URL ,'/') }}/view/'
<script type="text/javascript"> <script type="text/javascript">
var products = {!! HTMLUtils::encodeJSON($products) !!}; var products = {!! $products !!};
$(function() { $(function() {
var $productSelect = $('select#product'); var $productSelect = $('select#product');

View File

@ -22,7 +22,7 @@
<script> <script>
var invoiceDesigns = {!! $invoiceDesigns !!}; var invoiceDesigns = {!! $invoiceDesigns !!};
var invoiceFonts = {!! $invoiceFonts !!}; var invoiceFonts = {!! $invoiceFonts !!};
var invoice = {!! HTMLUtils::encodeJSON($invoice) !!}; var invoice = {!! json_encode($invoice) !!};
function getDesignJavascript() { function getDesignJavascript() {
var id = $('#invoice_design_id').val(); var id = $('#invoice_design_id').val();

View File

@ -200,7 +200,7 @@
<script> <script>
window.onDatatableReady = actionListHandler; window.onDatatableReady = actionListHandler;
var taxRates = {!! HTMLUtils::encodeJSON($taxRates) !!}; var taxRates = {!! $taxRates !!};
var taxRatesMap = {}; var taxRatesMap = {};
for (var i=0; i<taxRates.length; i++) { for (var i=0; i<taxRates.length; i++) {
var taxRate = taxRates[i]; var taxRate = taxRates[i];

View File

@ -151,7 +151,7 @@
var entityTypes = ['invoice', 'quote', 'payment', 'reminder1', 'reminder2', 'reminder3']; var entityTypes = ['invoice', 'quote', 'payment', 'reminder1', 'reminder2', 'reminder3'];
var stringTypes = ['subject', 'template']; var stringTypes = ['subject', 'template'];
var templates = {!! json_encode($defaultTemplates) !!}; var templates = {!! json_encode($defaultTemplates) !!};
var account = {!! HTMLUtils::encodeJSON(Auth::user()->account) !!}; var account = {!! Auth::user()->account !!};
function refreshPreview() { function refreshPreview() {
for (var i=0; i<entityTypes.length; i++) { for (var i=0; i<entityTypes.length; i++) {

View File

@ -13,8 +13,8 @@
var invoiceDesigns = {!! \App\Models\InvoiceDesign::getDesigns() !!}; var invoiceDesigns = {!! \App\Models\InvoiceDesign::getDesigns() !!};
var invoiceFonts = {!! Cache::get('fonts') !!}; var invoiceFonts = {!! Cache::get('fonts') !!};
var currentInvoice = {!! HTMLUtils::encodeJSON($invoice) !!}; var currentInvoice = {!! $invoice !!};
var invoice = {!! HTMLUtils::encodeJSON($invoice) !!}; var invoice = {!! $invoice !!};
function getPDFString(cb) { function getPDFString(cb) {

View File

@ -58,7 +58,7 @@
<script type="text/javascript"> <script type="text/javascript">
var clients = {!! $clients ? HTMLUtils::encodeJSON($clients) : 'false' !!}; var clients = {!! $clients ?: 'false' !!};
$(function() { $(function() {

View File

@ -83,7 +83,7 @@
} }
} }
var account = {!! HTMLUtils::encodeJSON($account) !!}; var account = {!! $account !!};
var chartGroupBy = 'day'; var chartGroupBy = 'day';
var chartCurrencyId = {{ $account->getCurrencyId() }}; var chartCurrencyId = {{ $account->getCurrencyId() }};
var dateRanges = {!! $account->present()->dateRangeOptions !!}; var dateRanges = {!! $account->present()->dateRangeOptions !!};

View File

@ -256,10 +256,10 @@
<script type="text/javascript"> <script type="text/javascript">
Dropzone.autoDiscover = false; Dropzone.autoDiscover = false;
var vendors = {!! HTMLUtils::encodeJSON($vendors) !!}; var vendors = {!! $vendors !!};
var clients = {!! HTMLUtils::encodeJSON($clients) !!}; var clients = {!! $clients !!};
var categories = {!! HTMLUtils::encodeJSON($categories) !!}; var categories = {!! $categories !!};
var taxRates = {!! HTMLUtils::encodeJSON($taxRates) !!}; var taxRates = {!! $taxRates !!};
var clientMap = {}; var clientMap = {};
var vendorMap = {}; var vendorMap = {};

View File

@ -841,8 +841,8 @@
<script type="text/javascript"> <script type="text/javascript">
Dropzone.autoDiscover = false; Dropzone.autoDiscover = false;
var products = {!! HTMLUtils::encodeJSON($products) !!}; var products = {!! $products !!};
var clients = {!! HTMLUtils::encodeJSON($clients) !!}; var clients = {!! $clients !!};
var account = {!! Auth::user()->account !!}; var account = {!! Auth::user()->account !!};
var dropzone; var dropzone;
@ -882,7 +882,7 @@
// otherwise create blank model // otherwise create blank model
window.model = new ViewModel(); window.model = new ViewModel();
var invoice = {!! HTMLUtils::encodeJSON($invoice) !!}; var invoice = {!! $invoice !!};
ko.mapping.fromJS(invoice, model.invoice().mapping, model.invoice); ko.mapping.fromJS(invoice, model.invoice().mapping, model.invoice);
model.invoice().is_recurring({{ $invoice->is_recurring ? '1' : '0' }}); model.invoice().is_recurring({{ $invoice->is_recurring ? '1' : '0' }});
model.invoice().start_date_orig(model.invoice().start_date()); model.invoice().start_date_orig(model.invoice().start_date());
@ -900,7 +900,7 @@
@else @else
// set the default account tax rate // set the default account tax rate
@if ($account->invoice_taxes && ! empty($defaultTax)) @if ($account->invoice_taxes && ! empty($defaultTax))
var defaultTax = {!! HTMLUtils::encodeJSON($defaultTax) !!}; var defaultTax = {!! $defaultTax !!};
model.invoice().tax_rate1(defaultTax.rate); model.invoice().tax_rate1(defaultTax.rate);
model.invoice().tax_name1(defaultTax.name); model.invoice().tax_name1(defaultTax.name);
@endif @endif
@ -909,7 +909,7 @@
@if (isset($tasks) && $tasks) @if (isset($tasks) && $tasks)
// move the blank invoice line item to the end // move the blank invoice line item to the end
var blank = model.invoice().invoice_items.pop(); var blank = model.invoice().invoice_items.pop();
var tasks = {!! HTMLUtils::encodeJSON($tasks) !!}; var tasks = {!! $tasks !!};
for (var i=0; i<tasks.length; i++) { for (var i=0; i<tasks.length; i++) {
var task = tasks[i]; var task = tasks[i];
@ -928,7 +928,7 @@
// move the blank invoice line item to the end // move the blank invoice line item to the end
var blank = model.invoice().invoice_items.pop(); var blank = model.invoice().invoice_items.pop();
var expenses = {!! HTMLUtils::encodeJSON($expenses) !!} var expenses = {!! $expenses !!}
for (var i=0; i<expenses.length; i++) { for (var i=0; i<expenses.length; i++) {
var expense = expenses[i]; var expense = expenses[i];

View File

@ -13,7 +13,7 @@
var invoiceDesigns = {!! $invoiceDesigns !!}; var invoiceDesigns = {!! $invoiceDesigns !!};
var invoiceFonts = {!! $invoiceFonts !!}; var invoiceFonts = {!! $invoiceFonts !!};
var currentInvoice = {!! HTMLUtils::encodeJSON($invoice) !!}; var currentInvoice = {!! $invoice !!};
var versionsJson = {!! strip_tags($versionsJson) !!}; var versionsJson = {!! strip_tags($versionsJson) !!};
function getPDFString(cb) { function getPDFString(cb) {

View File

@ -7,7 +7,7 @@ function ViewModel(data) {
//self.invoice = data ? false : new InvoiceModel(); //self.invoice = data ? false : new InvoiceModel();
self.invoice = ko.observable(data ? false : new InvoiceModel()); self.invoice = ko.observable(data ? false : new InvoiceModel());
self.expense_currency_id = ko.observable(); self.expense_currency_id = ko.observable();
self.products = {!! HTMLUtils::encodeJSON($products) !!}; self.products = {!! $products !!};
self.loadClient = function(client) { self.loadClient = function(client) {
ko.mapping.fromJS(client, model.invoice().client().mapping, model.invoice().client); ko.mapping.fromJS(client, model.invoice().client().mapping, model.invoice().client);
@ -174,7 +174,7 @@ function InvoiceModel(data) {
var self = this; var self = this;
this.client = ko.observable(clientModel); this.client = ko.observable(clientModel);
this.is_public = ko.observable(0); this.is_public = ko.observable(0);
self.account = {!! HTMLUtils::encodeJSON($account) !!}; self.account = {!! $account !!};
self.id = ko.observable(''); self.id = ko.observable('');
self.discount = ko.observable(''); self.discount = ko.observable('');
self.is_amount_discount = ko.observable(0); self.is_amount_discount = ko.observable(0);

View File

@ -102,7 +102,7 @@
NINJA.bodyFont = "Roboto"; NINJA.bodyFont = "Roboto";
@endif @endif
var invoiceLabels = {!! HTMLUtils::encodeJSON($account->getInvoiceLabels()) !!}; var invoiceLabels = {!! json_encode($account->getInvoiceLabels()) !!};
if (window.invoice) { if (window.invoice) {
//invoiceLabels.item = invoice.has_tasks ? invoiceLabels.date : invoiceLabels.item_orig; //invoiceLabels.item = invoice.has_tasks ? invoiceLabels.date : invoiceLabels.item_orig;

View File

@ -82,7 +82,7 @@
e.preventDefault(); e.preventDefault();
$('#wepay-error').remove(); $('#wepay-error').remove();
var email = {!! HTMLUtils::encodeJSON($contact->email) !!} || prompt('{{ trans('texts.ach_email_prompt') }}'); var email = {!! json_encode($contact->email) !!} || prompt('{{ trans('texts.ach_email_prompt') }}');
if(!email)return; if(!email)return;
WePay.bank_account.create({ WePay.bank_account.create({
@ -176,14 +176,14 @@
@endif @endif
<script type="text/javascript"> <script type="text/javascript">
window.invoice = {!! HTMLUtils::encodeJSON($invoice) !!}; window.invoice = {!! $invoice !!};
invoice.features = { invoice.features = {
customize_invoice_design:{{ $invoice->client->account->hasFeature(FEATURE_CUSTOMIZE_INVOICE_DESIGN) ? 'true' : 'false' }}, customize_invoice_design:{{ $invoice->client->account->hasFeature(FEATURE_CUSTOMIZE_INVOICE_DESIGN) ? 'true' : 'false' }},
remove_created_by:{{ $invoice->client->account->hasFeature(FEATURE_REMOVE_CREATED_BY) ? 'true' : 'false' }}, remove_created_by:{{ $invoice->client->account->hasFeature(FEATURE_REMOVE_CREATED_BY) ? 'true' : 'false' }},
invoice_settings:{{ $invoice->client->account->hasFeature(FEATURE_INVOICE_SETTINGS) ? 'true' : 'false' }} invoice_settings:{{ $invoice->client->account->hasFeature(FEATURE_INVOICE_SETTINGS) ? 'true' : 'false' }}
}; };
invoice.is_quote = {{ $invoice->isQuote() ? 'true' : 'false' }}; invoice.is_quote = {{ $invoice->isQuote() ? 'true' : 'false' }};
invoice.contact = {!! HTMLUtils::encodeJSON($contact) !!}; invoice.contact = {!! $contact !!};
function getPDFString(cb) { function getPDFString(cb) {
return generatePDF(invoice, invoice.invoice_design.javascript, true, cb); return generatePDF(invoice, invoice.invoice_design.javascript, true, cb);

View File

@ -106,8 +106,8 @@
<script type="text/javascript"> <script type="text/javascript">
var invoices = {!! HTMLUtils::encodeJSON($invoices) !!}; var invoices = {!! $invoices !!};
var clients = {!! HTMLUtils::encodeJSON($clients) !!}; var clients = {!! $clients !!};
$(function() { $(function() {

View File

@ -58,7 +58,7 @@
e.preventDefault(); e.preventDefault();
$('#wepay-error').remove(); $('#wepay-error').remove();
var email = {!! HTMLUtils::encodeJSON($contact->email) !!} || prompt('{{ trans('texts.ach_email_prompt') }}'); var email = {!! json_encode($contact->email) !!} || prompt('{{ trans('texts.ach_email_prompt') }}');
if(!email)return; if(!email)return;
WePay.bank_account.create({ WePay.bank_account.create({

View File

@ -61,7 +61,7 @@
<script> <script>
var clients = {!! HTMLUtils::encodeJSON($clients) !!}; var clients = {!! $clients !!};
$(function() { $(function() {
var $clientSelect = $('select#client_id'); var $clientSelect = $('select#client_id');

View File

@ -60,7 +60,7 @@
<script type="text/javascript"> <script type="text/javascript">
// store data as JSON // store data as JSON
var data = {!! HTMLUtils::encodeJSON($clients) !!}; var data = {!! $clients !!};
_.each(data, function(client) { _.each(data, function(client) {
_.each(client.invoices, function(invoice) { _.each(client.invoices, function(invoice) {

View File

@ -232,8 +232,8 @@
} }
} }
var clients = {!! HTMLUtils::encodeJSON($clients) !!}; var clients = {!! $clients !!};
var projects = {!! HTMLUtils::encodeJSON($projects) !!}; var projects = {!! $projects !!};
var timeLabels = {}; var timeLabels = {};
@foreach (['hour', 'minute', 'second'] as $period) @foreach (['hour', 'minute', 'second'] as $period)