Eliminate popup when downloading xml invoices.
This commit is contained in:
@@ -1,7 +1,8 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
namespace App\Http\Controllers\Api;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Http\Option;
|
||||
use App\Models\Invoice;
|
||||
use Symfony\Component\HttpFoundation\StreamedResponse;
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
namespace App\Mail;
|
||||
|
||||
use App\Http\Controllers\EController;
|
||||
use App\Http\Controllers\Api\EController;
|
||||
use App\Http\Controllers\PdfController;
|
||||
use App\Models\Invoice;
|
||||
use Illuminate\Bus\Queueable;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<x-app-layout>
|
||||
<x-slot name="header">
|
||||
<div class="flex flex-row w-full">
|
||||
<div class="flex flex-row w-full" x-data="invoiceForm">
|
||||
<h2 class="grow font-semibold text-xl text-gray-800 dark:text-gray-200 leading-tight">
|
||||
{{ __('invoice.Invoice') }} {{ $invoice->number }} ({{ $invoice->localized_state }})
|
||||
</h2>
|
||||
@@ -8,7 +8,7 @@
|
||||
<x-pdf-icon class="text-gray-800 cursor-pointer"
|
||||
onclick="window.open('/invoice/{{ $invoice->id }}/pdf-download', '_blank', 'popup=true')"/>
|
||||
<x-e-icon class="cursor-pointer"
|
||||
onclick="window.open('/invoice/{{ $invoice->id }}/xml-download', '_blank', 'popup=true')"/>
|
||||
x-on:click="prepareXML"/>
|
||||
</p>
|
||||
</div>
|
||||
</x-slot>
|
||||
@@ -215,8 +215,33 @@
|
||||
</div>
|
||||
@endif
|
||||
|
||||
<div id="download"></div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</x-app-layout>
|
||||
|
||||
<script>
|
||||
function invoiceForm() {
|
||||
return {
|
||||
prepareXML() {
|
||||
axios.get('/invoice/' + {{ $invoice->id }} + '/xml-download', {responseType: "blob"})
|
||||
.then(function(response) {
|
||||
let url = window.URL.createObjectURL(response.data);
|
||||
let a = document.createElement('a');
|
||||
a.href = url;
|
||||
a.download = '{!! __('invoice.Invoice') !!} ' + '{{ $invoice->number }}' + '.xml';
|
||||
let download = document.querySelector('#download');
|
||||
download.appendChild(a);
|
||||
a.click();
|
||||
window.URL.revokeObjectURL(url);
|
||||
console.log(response);
|
||||
})
|
||||
.catch(function(error) {
|
||||
console.log(error);
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
use App\Http\Controllers\Api\AddressController;
|
||||
use App\Http\Controllers\Api\AuthController;
|
||||
use App\Http\Controllers\Api\CustomerController;
|
||||
use App\Http\Controllers\Api\EController;
|
||||
use App\Http\Controllers\Api\ExcelController;
|
||||
use App\Http\Controllers\Api\IncomingController;
|
||||
use App\Http\Controllers\Api\InvoiceController;
|
||||
@@ -32,6 +33,7 @@ Route::group(['as' => 'api.'], function () {
|
||||
Route::apiResource('/taxrate', TaxRateController::class)->except(['show']);
|
||||
Route::get('/invoice-filter/{start}/{end}', [InvoiceController::class, 'index'])->name('invoice.index');
|
||||
Route::post('/invoice', [InvoiceController::class, 'store'])->name('invoice.store');
|
||||
Route::get('/invoice/{id}/xml-download', [EController::class, 'downloadInvoice'])->name('invoice.eDownload');
|
||||
Route::get('/invoice_open', [InvoiceController::class, 'open'])->name('invoice.open');
|
||||
Route::put('/invoice/{invoice}', [InvoiceController::class, 'update'])->name('invoice.update');
|
||||
Route::put('/invoice/{invoice}/state', [InvoiceController::class, 'state'])->name('invoice.state');
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
|
||||
use App\Http\Controllers\AddressController;
|
||||
use App\Http\Controllers\CustomerController;
|
||||
use App\Http\Controllers\EController;
|
||||
use App\Http\Controllers\IncomingController;
|
||||
use App\Http\Controllers\InvoiceController;
|
||||
use App\Http\Controllers\OptionController;
|
||||
@@ -32,7 +31,6 @@ Route::middleware('auth')->group(function () {
|
||||
Route::get('/option', [OptionController::class, 'index'])->name('option.index');
|
||||
Route::resource('/invoice', InvoiceController::class)->only(['index', 'create', 'show', 'edit']);
|
||||
Route::get('/invoice/{id}/pdf-download', [PdfController::class, 'downloadInvoice'])->name('invoice.pdfDownload');
|
||||
Route::get('/invoice/{id}/xml-download', [EController::class, 'downloadInvoice'])->name('invoice.eDownload');
|
||||
Route::get('/invoice/{id}/mail', [InvoiceController::class, 'mail'])->name('invoice.mail');
|
||||
Route::resource('/payment', PaymentController::class)->only(['index', 'create', 'edit']);
|
||||
Route::get('/excel', function() { return view('excel'); })->name('excel');
|
||||
|
||||
Reference in New Issue
Block a user