mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2025-07-09 03:14:30 -04:00
Reworked pdf store flow from AjaxController to invoice save.
This commit is contained in:
parent
00fb18a52f
commit
2a6f7e00b5
@ -1,23 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
class AjaxController extends BaseController
|
|
||||||
{
|
|
||||||
public function __construct()
|
|
||||||
{
|
|
||||||
parent::__construct();
|
|
||||||
}
|
|
||||||
|
|
||||||
public function pdfupload()
|
|
||||||
{
|
|
||||||
$uploadsDir = storage_path().'/pdfcache/';
|
|
||||||
if ($_FILES['fileblob']['error'] === UPLOAD_ERR_OK && $_FILES['fileblob']['type'] === 'application/pdf') {
|
|
||||||
$tmpName = $_FILES['fileblob']['tmp_name'];
|
|
||||||
$name = $_POST['filename'];
|
|
||||||
|
|
||||||
$finfo = new finfo(FILEINFO_MIME);
|
|
||||||
if ($finfo->file($tmpName) === 'application/pdf; charset=binary') {
|
|
||||||
move_uploaded_file($tmpName, $uploadsDir.$name);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -397,6 +397,10 @@ class InvoiceController extends \BaseController
|
|||||||
Utils::trackViewed($client->getDisplayName(), ENTITY_CLIENT, $url);
|
Utils::trackViewed($client->getDisplayName(), ENTITY_CLIENT, $url);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!empty(Input::get('pdfupload')) && strpos(Input::get('pdfupload'), 'data:application/pdf;base64,') === 0) {
|
||||||
|
$this->storePDF(Input::get('pdfupload'), $input->invoice->public_id);
|
||||||
|
}
|
||||||
|
|
||||||
if ($action == 'clone') {
|
if ($action == 'clone') {
|
||||||
return $this->cloneInvoice($publicId);
|
return $this->cloneInvoice($publicId);
|
||||||
} elseif ($action == 'convert') {
|
} elseif ($action == 'convert') {
|
||||||
@ -539,4 +543,18 @@ class InvoiceController extends \BaseController
|
|||||||
|
|
||||||
return View::make('invoices.history', $data);
|
return View::make('invoices.history', $data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private function storePDF($encodedString, $public_id)
|
||||||
|
{
|
||||||
|
$uploadsDir = storage_path().'/pdfcache/';
|
||||||
|
$encodedString = str_replace('data:application/pdf;base64,', '', $encodedString);
|
||||||
|
$name = 'cache-'.$public_id.'.pdf';
|
||||||
|
|
||||||
|
if (file_put_contents($uploadsDir.$name, base64_decode($encodedString)) !== false) {
|
||||||
|
$finfo = new finfo(FILEINFO_MIME);
|
||||||
|
if ($finfo->file($uploadsDir.$name) !== 'application/pdf; charset=binary') {
|
||||||
|
unlink($uploadsDir.$name);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -147,8 +147,6 @@ Route::group(array('before' => 'auth'), function() {
|
|||||||
Route::get('api/credits/{client_id?}', array('as'=>'api.credits', 'uses'=>'CreditController@getDatatable'));
|
Route::get('api/credits/{client_id?}', array('as'=>'api.credits', 'uses'=>'CreditController@getDatatable'));
|
||||||
Route::post('credits/bulk', 'CreditController@bulk');
|
Route::post('credits/bulk', 'CreditController@bulk');
|
||||||
|
|
||||||
Route::post('ajax/pdfupload', 'AjaxController@pdfupload');
|
|
||||||
|
|
||||||
//Route::resource('timesheets', 'TimesheetController');
|
//Route::resource('timesheets', 'TimesheetController');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -719,25 +719,7 @@
|
|||||||
|
|
||||||
function onEmailClick() {
|
function onEmailClick() {
|
||||||
if (confirm('{{ trans("texts.confirm_email_$entityType") }}')) {
|
if (confirm('{{ trans("texts.confirm_email_$entityType") }}')) {
|
||||||
var invoice = createInvoiceModel();
|
submitAction('email');
|
||||||
var design = getDesignJavascript();
|
|
||||||
if (!design) return;
|
|
||||||
var doc = generatePDF(invoice, design, true);
|
|
||||||
|
|
||||||
var formdata = new FormData();
|
|
||||||
formdata.append('filename', 'cache-' + invoice.public_id + '.pdf');
|
|
||||||
formdata.append('fileblob', doc.output('blob'));
|
|
||||||
|
|
||||||
$.ajax({
|
|
||||||
type: 'POST',
|
|
||||||
url: '{{ URL::to("ajax/pdfupload") }}',
|
|
||||||
data: formdata,
|
|
||||||
processData: false,
|
|
||||||
contentType: false
|
|
||||||
}).done(function( data ) {
|
|
||||||
submitAction('email');
|
|
||||||
});
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -747,6 +729,12 @@
|
|||||||
submitAction('');
|
submitAction('');
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
var invoice = createInvoiceModel();
|
||||||
|
var design = getDesignJavascript();
|
||||||
|
if (!design) return;
|
||||||
|
var doc = generatePDF(invoice, design, true);
|
||||||
|
|
||||||
|
$('form.form-horizontal.warn-on-exit').append('<input type="hidden" name="pdfupload" value="'+doc.output('datauristring')+'">');
|
||||||
submitAction('');
|
submitAction('');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -757,7 +745,7 @@
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
$('#action').val(value);
|
$('#action').val(value);
|
||||||
$('#submitButton').click();
|
$('#submitButton').click();
|
||||||
}
|
}
|
||||||
|
|
||||||
function isSaveValid() {
|
function isSaveValid() {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user