fix: always have download logs button on scheduled tasks

This commit is contained in:
Andras Bacsai
2024-12-09 11:53:50 +01:00
parent 96f95f2ae5
commit 664b718ea3
2 changed files with 17 additions and 8 deletions

View File

@@ -120,11 +120,16 @@ class Executions extends Component
return $lines->take($this->currentPage * $this->logsPerPage); return $lines->take($this->currentPage * $this->logsPerPage);
} }
public function downloadLogs() public function downloadLogs(int $executionId)
{ {
return response()->streamDownload(function () { $execution = $this->executions->firstWhere('id', $executionId);
echo $this->selectedExecution->message; if (! $execution) {
}, 'task-execution-'.$this->selectedExecution->id.'.log'); return;
}
return response()->streamDownload(function () use ($execution) {
echo $execution->message;
}, 'task-execution-'.$execution->id.'.log');
} }
public function hasMoreLogs() public function hasMoreLogs()

View File

@@ -1,4 +1,4 @@
<div class="flex flex-col gap-4" x-data="{ <div class="flex flex-col gap-2" x-data="{
init() { init() {
let interval; let interval;
$wire.$watch('isPollingActive', value => { $wire.$watch('isPollingActive', value => {
@@ -23,6 +23,7 @@
'border-red-500' => data_get($execution, 'status') === 'failed', 'border-red-500' => data_get($execution, 'status') === 'failed',
'border-yellow-500' => data_get($execution, 'status') === 'running', 'border-yellow-500' => data_get($execution, 'status') === 'running',
])> ])>
@if (data_get($execution, 'status') === 'running') @if (data_get($execution, 'status') === 'running')
<div class="absolute top-2 right-2"> <div class="absolute top-2 right-2">
<x-loading /> <x-loading />
@@ -34,6 +35,11 @@
Started At: {{ $this->formatDateInServerTimezone(data_get($execution, 'created_at', now())) }} Started At: {{ $this->formatDateInServerTimezone(data_get($execution, 'created_at', now())) }}
</div> </div>
</a> </a>
@if (strlen($execution->message) > 0)
<x-forms.button wire:click.prevent="downloadLogs({{ data_get($execution, 'id') }})">
Download Logs
</x-forms.button>
@endif
@if (data_get($execution, 'id') == $selectedKey) @if (data_get($execution, 'id') == $selectedKey)
<div class="p-4 mb-2 bg-gray-100 dark:bg-coolgray-200 rounded"> <div class="p-4 mb-2 bg-gray-100 dark:bg-coolgray-200 rounded">
@if (data_get($execution, 'status') === 'running') @if (data_get($execution, 'status') === 'running')
@@ -55,9 +61,7 @@
Load More Load More
</x-forms.button> </x-forms.button>
@endif @endif
<x-forms.button wire:click.prevent="downloadLogs" isHighlighted>
Download
</x-forms.button>
</div> </div>
</div> </div>
@else @else