55 lines
1.5 KiB
PHP
55 lines
1.5 KiB
PHP
<?php
|
|
|
|
namespace App\Livewire;
|
|
|
|
use App\Models\Setting;
|
|
use Livewire\Component;
|
|
|
|
class Settings extends Component
|
|
{
|
|
public bool $articleProcessingEnabled = true;
|
|
public bool $publishingApprovalsEnabled = false;
|
|
|
|
public ?string $successMessage = null;
|
|
public ?string $errorMessage = null;
|
|
|
|
public function mount(): void
|
|
{
|
|
$this->articleProcessingEnabled = Setting::isArticleProcessingEnabled();
|
|
$this->publishingApprovalsEnabled = Setting::isPublishingApprovalsEnabled();
|
|
}
|
|
|
|
public function toggleArticleProcessing(): void
|
|
{
|
|
$this->articleProcessingEnabled = !$this->articleProcessingEnabled;
|
|
Setting::setArticleProcessingEnabled($this->articleProcessingEnabled);
|
|
$this->showSuccess();
|
|
}
|
|
|
|
public function togglePublishingApprovals(): void
|
|
{
|
|
$this->publishingApprovalsEnabled = !$this->publishingApprovalsEnabled;
|
|
Setting::setPublishingApprovalsEnabled($this->publishingApprovalsEnabled);
|
|
$this->showSuccess();
|
|
}
|
|
|
|
protected function showSuccess(): void
|
|
{
|
|
$this->successMessage = 'Settings updated successfully!';
|
|
$this->errorMessage = null;
|
|
|
|
// Clear success message after 3 seconds
|
|
$this->dispatch('clear-message');
|
|
}
|
|
|
|
public function clearMessages(): void
|
|
{
|
|
$this->successMessage = null;
|
|
$this->errorMessage = null;
|
|
}
|
|
|
|
public function render()
|
|
{
|
|
return view('livewire.settings')->layout('layouts.app');
|
|
}
|
|
}
|