'', 'path' => '', ]; public $processOutput = ''; public $confirmingReportDeletion = false; /** * The ID of the API token being deleted. * * @var int */ public $reportIdBeingDeleted; /** * Mount the component. * * @return void */ public function mount() { } /** * Create a new API token. * * @return void */ public function createReport() { $this->resetErrorBag(); Validator::make([ 'name' => $this->createReportForm['name'], ], [ 'name' => ['required', 'string', 'max:255'], ])->validateWithBag('createReport'); $projectFolder = base_path('../'); $command = [ sprintf('%sbuild_report.sh', $projectFolder), sprintf('--filename=%s', $this->createReportForm['name']), ]; // Convert commands array to a single string $process = new Process($command); $process->setTimeout(3600); // stel een geschikte timeout in $process->start(); try { $myOutput = []; $process->wait(function ($type, $buffer) use (&$myOutput){ $this->stream(to: 'processOutput', content: $buffer); $myOutput[] = $buffer; }); $this->processOutput = collect($myOutput)->join('\n'); } catch (ProcessFailedException $exception) { echo $exception->getMessage(); } Report::create( $this->createReportForm ); $this->createReportForm['name'] = ''; $this->dispatch('created'); } /** * Confirm that the given API token should be deleted. * * @param int $tokenId * @return void */ public function confirmReportDeletion($reportId) { $this->confirmingReportDeletion = true; $this->reportIdBeingDeleted = $reportId; } /** * Delete the API token. * * @return void */ public function deleteReport() { Report::whereId($this->reportIdBeingDeleted)->first()->delete(); $this->confirmingReportDeletion = false; } /** * Get the current user of the application. * * @return mixed */ public function getReportsProperty() { return Report::all(); } public function render() { return view('livewire.reports.report-manager'); } }