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);
}
public function downloadLogs()
public function downloadLogs(int $executionId)
{
return response()->streamDownload(function () {
echo $this->selectedExecution->message;
}, 'task-execution-'.$this->selectedExecution->id.'.log');
$execution = $this->executions->firstWhere('id', $executionId);
if (! $execution) {
return;
}
return response()->streamDownload(function () use ($execution) {
echo $execution->message;
}, 'task-execution-'.$execution->id.'.log');
}
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() {
let interval;
$wire.$watch('isPollingActive', value => {
@@ -23,6 +23,7 @@
'border-red-500' => data_get($execution, 'status') === 'failed',
'border-yellow-500' => data_get($execution, 'status') === 'running',
])>
@if (data_get($execution, 'status') === 'running')
<div class="absolute top-2 right-2">
<x-loading />
@@ -34,6 +35,11 @@
Started At: {{ $this->formatDateInServerTimezone(data_get($execution, 'created_at', now())) }}
</div>
</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)
<div class="p-4 mb-2 bg-gray-100 dark:bg-coolgray-200 rounded">
@if (data_get($execution, 'status') === 'running')
@@ -55,9 +61,7 @@
Load More
</x-forms.button>
@endif
<x-forms.button wire:click.prevent="downloadLogs" isHighlighted>
Download
</x-forms.button>
</div>
</div>
@else