52 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			PHP
		
	
	
	
			
		
		
	
	
			52 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			PHP
		
	
	
	
<?php
 | 
						|
 | 
						|
namespace App\Mailman\Actions;
 | 
						|
 | 
						|
use App\Mailman\MailmanSettings;
 | 
						|
use App\Mailman\Support\MailmanService;
 | 
						|
use Inertia\Inertia;
 | 
						|
use Inertia\Response;
 | 
						|
use Lorisleiva\Actions\Concerns\AsAction;
 | 
						|
 | 
						|
class SettingIndexAction
 | 
						|
{
 | 
						|
    use AsAction;
 | 
						|
 | 
						|
    /**
 | 
						|
     * @return array<string, string|bool|null>
 | 
						|
     */
 | 
						|
    public function handle(MailmanSettings $settings): array
 | 
						|
    {
 | 
						|
        return [
 | 
						|
            'is_active' => $settings->is_active,
 | 
						|
            'base_url' => $settings->base_url,
 | 
						|
            'username' => $settings->username,
 | 
						|
            'all_list' => $settings->all_list,
 | 
						|
            'all_parents_list' => $settings->all_parents_list,
 | 
						|
            'active_leaders_list' => $settings->active_leaders_list,
 | 
						|
            'passive_leaders_list' => $settings->passive_leaders_list,
 | 
						|
            'password' => '',
 | 
						|
        ];
 | 
						|
    }
 | 
						|
 | 
						|
    public function asController(MailmanSettings $settings): Response
 | 
						|
    {
 | 
						|
        session()->put('menu', 'setting');
 | 
						|
        session()->put('title', 'Mailman-Einstellungen');
 | 
						|
 | 
						|
        if ($settings->is_active) {
 | 
						|
            $state = app(MailmanService::class)->fromSettings($settings)->check();
 | 
						|
            $lists = app(MailmanService::class)->fromSettings($settings)->getLists();
 | 
						|
        } else {
 | 
						|
            $state = null;
 | 
						|
            $lists = [];
 | 
						|
        }
 | 
						|
 | 
						|
        return Inertia::render('setting/Mailman', [
 | 
						|
            'data' => $this->handle($settings),
 | 
						|
            'state' => $state,
 | 
						|
            'lists' => $lists,
 | 
						|
        ]);
 | 
						|
    }
 | 
						|
}
 |