file-management-system/resources/views/vendor/datatables-export/export-button.blade.php
2024-05-19 18:23:34 +07:00

55 lines
2.2 KiB
PHP

<div class="d-flex align-items-center" x-data>
<form class="mr-2"
x-on:submit.prevent="
$refs.exportBtn.disabled = true;
var oTable = LaravelDataTables['{{ $tableId }}'];
var baseUrl = oTable.ajax.url() === '' ? window.location.toString() : oTable.ajax.url();
var params = new URLSearchParams({
action: 'exportQueue',
exportType: '{{$fileType}}',
sheetName: '{{$sheetName}}',
emailTo: '{{urlencode($emailTo)}}',
});
toastr.success('Exporting data, please wait.');
$.get(baseUrl + '?' + params.toString() + '&' + $.param(oTable.ajax.params())).then(function(exportId) {
$wire.export(exportId);
toastr.success('Done. File has been downloaded.');
})
.catch(function(error) {
$wire.exportFinished = true;
$wire.exporting = false;
$wire.exportFailed = true;
toastr.error('Export failed, please try again later.');
});
"
>
<button type="submit" class="btn btn-light-primary"
x-ref="exportBtn"
:disabled="$wire.exporting"
><i class="ki-duotone ki-exit-down fs-2"><span class="path1"></span><span class="path2"></span></i> Export
</button>
</form>
@if($exporting && $emailTo)
<div class="d-inline" style="display: none">Export will be emailed to {{ $emailTo }}.</div>
@endif
@if($exporting && !$exportFinished)
<div class="d-inline" style="display: none" wire:poll="updateExportProgress">&nbsp;</div>
@endif
@if($exportFinished && !$exportFailed && !$autoDownload)
<span style="display: none">Done. Download file <a href="#" class="text-primary" wire:click.prevent="downloadExport">here</a></span>
@endif
@if($exportFinished && !$exportFailed && $autoDownload && $downloaded)
<span style="display: none">Done. File has been downloaded.</span>
@endif
@if($exportFailed)
<span style="display: none">Export failed, please try again later.</span>
@endif
</div>