• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

conedevelopment / root / 13076030548

31 Jan 2025 03:44PM UTC coverage: 79.373% (+1.3%) from 78.037%
13076030548

Pull #234

github

web-flow
Merge 9d7378884 into 04cb83a80
Pull Request #234: Codebase health checkup

178 of 217 new or added lines in 45 files covered. (82.03%)

2 existing lines in 2 files now uncovered.

2559 of 3224 relevant lines covered (79.37%)

35.52 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

8.0
/src/Fields/Fieldset.php
1
<?php
2

3
namespace Cone\Root\Fields;
4

5
use Closure;
6
use Cone\Root\Traits\RegistersRoutes;
7
use Cone\Root\Traits\ResolvesFields;
8
use Illuminate\Database\Eloquent\Model;
9
use Illuminate\Http\Request;
10
use Illuminate\Routing\Router;
11
use Illuminate\Support\Str;
12

13
class Fieldset extends Field
14
{
15
    use RegistersRoutes;
16
    use ResolvesFields;
17

18
    /**
19
     * The Blade template.
20
     */
21
    protected string $template = 'root::fields.fieldset';
22

23
    /**
24
     * Create a new field instance.
25
     */
26
    public function __construct(string $label, Closure|string|null $modelAttribute = null)
27
    {
28
        parent::__construct($label, $modelAttribute);
1✔
29

30
        $this->hiddenOn(['index', 'show']);
1✔
31
    }
32

33
    /**
34
     * Get the URI key.
35
     */
36
    public function getUriKey(): string
37
    {
38
        return str_replace('.', '-', $this->getRequestKey());
×
39
    }
40

41
    /**
42
     * Handle the callback for the field resolution.
43
     */
44
    protected function resolveField(Request $request, Field $field): void
45
    {
46
        $field->setAttribute('form', $this->getAttribute('form'));
×
47
        $field->resolveErrorsUsing($this->errorsResolver);
×
48

49
        if ($field instanceof Relation) {
×
NEW
50
            $field->resolveRouteKeyNameUsing(fn (): string => Str::of($field->getRelationName())->singular()->ucfirst()->prepend($this->getModelAttribute())->value());
×
51
        }
52
    }
53

54
    /**
55
     * Register the routes using the given router.
56
     */
57
    public function registerRoutes(Request $request, Router $router): void
58
    {
59
        $router->prefix($this->getUriKey())->group(function (Router $router) use ($request): void {
×
60
            $this->resolveFields($request)->registerRoutes($request, $router);
×
61
        });
×
62
    }
63

64
    /**
65
     * {@inheritdoc}
66
     */
67
    public function persist(Request $request, Model $model, mixed $value): void
68
    {
69
        $this->resolveFields($request)->each(static function (Field $field) use ($request, $model): void {
×
70
            $field->persist($request, $model, $field->getValueForHydrate($request));
×
71
        });
×
72
    }
73

74
    /**
75
     * {@inheritdoc}
76
     */
77
    public function resolveHydrate(Request $request, Model $model, mixed $value): void
78
    {
79
        $this->resolveFields($request)->each(static function (Field $field) use ($request, $model): void {
×
80
            $field->resolveHydrate($request, $model, $field->getValueForHydrate($request));
×
81
        });
×
82
    }
83

84
    /**
85
     * {@inheritdoc}
86
     */
87
    public function invalid(Request $request): bool
88
    {
89
        return parent::invalid($request)
×
90
            || $this->resolveFields($request)->some(fn (Field $field): bool => $field->invalid($request));
×
91
    }
92

93
    /**
94
     * {@inheritdoc}
95
     */
96
    public function toInput(Request $request, Model $model): array
97
    {
98
        return array_merge(parent::toInput($request, $model), [
×
99
            'fields' => $this->resolveFields($request)->mapToInputs($request, $model),
×
100
        ]);
×
101
    }
102

103
    /**
104
     * {@inheritdoc}
105
     */
106
    public function toValidate(Request $request, Model $model): array
107
    {
108
        return array_merge(
×
109
            parent::toValidate($request, $model),
×
110
            $this->resolveFields($request)->mapToValidate($request, $model)
×
111
        );
×
112
    }
113
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc