export-button.blade.php 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. <div class="d-flex align-items-center" x-data>
  2. <form class="mr-2"
  3. x-on:submit.prevent="
  4. $refs.exportBtn.disabled = true;
  5. var oTable = LaravelDataTables['{{ $tableId }}'];
  6. var baseUrl = oTable.ajax.url() === '' ? window.location.toString() : oTable.ajax.url();
  7. var url = new URL(baseUrl);
  8. var searchParams = new URLSearchParams(url.search);
  9. searchParams.set('action', 'exportQueue');
  10. searchParams.set('exportType', '{{$fileType}}');
  11. searchParams.set('sheetName', '{{$sheetName}}');
  12. searchParams.set('buttonName', '{{$buttonName}}');
  13. searchParams.set('emailTo', '{{urlencode($emailTo)}}');
  14. var tableParams = $.param(oTable.ajax.params());
  15. if (tableParams) {
  16. var tableSearchParams = new URLSearchParams(tableParams);
  17. tableSearchParams.forEach((value, key) => {
  18. searchParams.append(key, value);
  19. });
  20. }
  21. url.search = searchParams.toString();
  22. $.get(url.toString()).then(function(exportId) {
  23. $wire.export(exportId);
  24. }).catch(function(error) {
  25. $wire.exportFinished = true;
  26. $wire.exporting = false;
  27. $wire.exportFailed = true;
  28. });
  29. "
  30. >
  31. <button type="submit"
  32. x-ref="exportBtn"
  33. :disabled="$wire.exporting"
  34. class="{{ $class }}"
  35. >{{$buttonName}}
  36. </button>
  37. </form>
  38. @if($exporting && $emailTo)
  39. <div class="d-inline">Export will be emailed to {{ $emailTo }}.</div>
  40. @endif
  41. @if($exporting && !$exportFinished)
  42. <div class="d-inline" wire:poll="updateExportProgress">Exporting...please wait.</div>
  43. @endif
  44. @if($exportFinished && !$exportFailed && !$autoDownload)
  45. <span>Done. Download file <a href="#" class="text-primary" wire:click.prevent="downloadExport">here</a></span>
  46. @endif
  47. @if($exportFinished && !$exportFailed && $autoDownload && $downloaded)
  48. <span>Done. File has been downloaded.</span>
  49. @endif
  50. @if($exportFailed)
  51. <span>Export failed, please try again later.</span>
  52. @endif
  53. </div>