SmartCane/laravel_app/app/Livewire/Projects/MailingManager.php
Martin Folkerts da9d94880f wip
2024-01-09 10:49:25 +01:00

62 lines
1.4 KiB
PHP

<?php
namespace App\Livewire\Projects;
use App\Models\Project;
use App\Models\ProjectMailing;
use Livewire\Component;
use Livewire\WithPagination;
class MailingManager extends Component
{
use WithPagination;
public $project;
public $mailingDetailsModal = false;
public $formData = [
];
public $active_mailing = null;
public function mount(Project $project)
{
$this->project = $project;
$this->resetFormData();
}
public function showMailingDetailsModal(ProjectMailing $mailing)
{
$this->formData = $mailing->toArray();
$this->formData['attachments'] = $mailing->attachments->toArray();
$this->formData['recipients'] = $mailing->recipients->toArray();
$this->mailingDetailsModal = true;
}
public function closeMailingDetailsModal()
{
$this->mailingDetailsModal = false;
$this->resetFormData();
}
private function resetFormData()
{
$this->formData = [
'subject' => '',
'message' => '',
'created_at' => '',
'attachments' => [],
'recipients' => [],
];
}
public function render()
{
return view('livewire.projects.mailing-manager', [
'mailings' => $this->project->mailings()->orderBy('created_at', 'desc')->paginate(10, pageName: 'mailingPage'),
]);
}
}