58 lines
1.8 KiB
PHP
58 lines
1.8 KiB
PHP
|
<?php
|
||
|
|
||
|
namespace Modules\Module\Components;
|
||
|
|
||
|
use App\Module\Module;
|
||
|
use Illuminate\Validation\Rule;
|
||
|
use Livewire\Component;
|
||
|
use Modules\Module\ModuleSettings;
|
||
|
|
||
|
class SettingView extends Component
|
||
|
{
|
||
|
|
||
|
public array $modules;
|
||
|
public array $all;
|
||
|
public $settingClass = ModuleSettings::class;
|
||
|
|
||
|
public function rules(): array
|
||
|
{
|
||
|
return [
|
||
|
'modules' => 'present|array',
|
||
|
'modules.*' => ['string', Rule::in(Module::values())],
|
||
|
];
|
||
|
}
|
||
|
|
||
|
public function mount(): void
|
||
|
{
|
||
|
$this->modules = app(ModuleSettings::class)->modules;
|
||
|
$this->all = Module::forSelect();
|
||
|
}
|
||
|
|
||
|
public function save(): void
|
||
|
{
|
||
|
app(ModuleSettings::class)->fill($this->validate())->save();
|
||
|
$this->dispatch('success', 'Einstellungen gespeichert.');
|
||
|
}
|
||
|
|
||
|
public function render()
|
||
|
{
|
||
|
return <<<'HTML'
|
||
|
<x-page::setting-layout :active="$settingClass">
|
||
|
<x-slot:right>
|
||
|
<x-form::save-button form="modulesettingform"></x-form::save-button>
|
||
|
</x-slot:right>
|
||
|
<form id="modulesettingform" class="grow p-6 grid grid-cols-2 gap-3 items-start content-start"
|
||
|
wire:submit.prevent="save">
|
||
|
<div class="col-span-full text-gray-100 mb-3">
|
||
|
<p class="text-sm">Hier kannst du Funktionen innerhalb von Adrema (Module) aktivieren oder deaktivieren
|
||
|
und so den Funktionsumfang auf deine Bedürfnisse anpassen.</p>
|
||
|
</div>
|
||
|
@foreach ($all as $module)
|
||
|
<x-form::lever wire:model="modules" hint="lala" :value="$module['id']" name="modules" size="sm" :label="$module['name']"></x-form::lever>
|
||
|
@endforeach
|
||
|
</form>
|
||
|
</x-page::setting-layout>
|
||
|
HTML;
|
||
|
}
|
||
|
}
|