PersonFormIndi::edit()   A
last analyzed

Complexity

Conditions 2
Paths 2

Size

Total Lines 16
Code Lines 12

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 1
Metric Value
cc 2
eloc 12
c 1
b 0
f 1
nc 2
nop 1
dl 0
loc 16
rs 9.8666
1
<?php
2
3
namespace App\Forms\Builders;
4
5
use App\Person;
6
use LaravelEnso\Forms\Services\Form;
7
8
class PersonFormIndi
9
{
10
    protected const TemplatePath = __DIR__.'/../Templates/personindi.json';
11
12
    protected Form $form;
13
14
    public function __construct()
15
    {
16
        $this->form = new Form(static::TemplatePath);
17
    }
18
19
    public function create()
20
    {
21
        return $this->form->create();
22
    }
23
24
    public function edit(Person $person)
25
    {
26
        if ($person->hasUser()) {
27
            $this->form->meta(
28
                'email',
29
                'tooltip',
30
                'Email can only be edited via the user form'
31
            )->readonly('email');
32
        }
33
        $actions = ['back', 'update'];
34
35
        return $this->form
36
            ->value('company', optional($person->company())->id)
37
            ->append('userId', optional($person->user)->id)
38
            ->actions($actions)
39
            ->edit($person);
40
    }
41
}
42