Completed
Push — dependabot/npm_and_yarn/tippy.... ( 40037f...deaa3c )
by
unknown
400:02 queued 379:38
created

HasDetails   A

Complexity

Total Complexity 5

Size/Duplication

Total Lines 26
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 2
Bugs 0 Features 1
Metric Value
wmc 5
eloc 14
c 2
b 0
f 1
dl 0
loc 26
ccs 14
cts 14
cp 1
rs 10

1 Method

Rating   Name   Duplication   Size   Complexity  
A details() 0 20 5
1
<?php
2
3
namespace Thinktomorrow\Chief\Management\Details;
4
5
use Illuminate\Support\Str;
6
use Thinktomorrow\Chief\FlatReferences\ProvidesFlatReference;
7
8
trait HasDetails
9
{
10
    /**
11
     * Details of the model such as naming, key and class.
12
     * Used in several dynamic parts of the admin application.
13
     */
14 118
    public function details(): Details
15
    {
16
        // Generic model details
17
        // might be able to remove this as id isnt general info
18 118
        $id = Str::slug($this->registration->key().'-'.$this->model->id);
19 118
        $key = $this->registration->key();
20 118
        $labelSingular = property_exists($this->model, 'labelSingular') ? $this->model->labelSingular : Str::singular($key);
21 118
        $labelPlural = property_exists($this->model, 'labelPlural') ? $this->model->labelPlural : Str::plural($key);
22 118
        $internal_label = contract($this->model, ProvidesFlatReference::class) ? $this->model->flatReferenceLabel() : $key;
23
24
        // Manager index and header info
25 118
        $title = $this->model->title ?? ($this->model->id ? $labelSingular . ' ' . $this->model->id : $labelSingular);
26
27 118
        return new Details(
28 118
            $id,
29 118
            $key,
30 118
            $labelSingular.'',
31 118
            $labelPlural.'',
32 118
            $internal_label,
33 118
            $title.''
34
        );
35
    }
36
}
37