Skip to content

Commit 3a376d8

Browse files
committed
Container, Label & Field classes
1 parent 3322106 commit 3a376d8

File tree

11 files changed

+66
-43
lines changed

11 files changed

+66
-43
lines changed

src/AttributeManager.php

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,11 +87,31 @@ public function getContainerAttributes(View $view)
8787
{
8888
$extra = $view->offsetExists('container') ? $view->offsetGet('container') : [];
8989
return $this->mapAttributesToString($extra);
90+
}
91+
92+
public function getContainerClasses(View $view)
93+
{
94+
$container = $view->offsetExists('container') ? $view->offsetGet('container') : [];
95+
return $container['class'] ?? null;
96+
}
97+
98+
public function getLabelClasses(View $view)
99+
{
100+
$label = $view->offsetExists('label') ? $view->offsetGet('label') : [];
101+
return $label['class'] ?? null;
102+
}
103+
90104

105+
public function getFieldClasses(View $view)
106+
{
107+
$field = $view->offsetExists('extra') ? $view->offsetGet('extra') : [];
108+
return $field['class'] ?? null;
91109
}
92110

93111
protected function mapAttributesToString($attributes, $valueRequiredBooleans = []) {
94112

113+
unset($attributes['class']);
114+
95115
// Convert extra properties to key="value" string
96116
$output = array_map(function ($key, $value) use ($valueRequiredBooleans) {
97117
// ['required']

src/FieldViewComposer.php

Lines changed: 34 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -3,42 +3,45 @@
33

44
namespace Webfox\LaravelForms;
55

6-
use Illuminate\Http\Request;
76
use Illuminate\View\View;
7+
use Illuminate\Http\Request;
88

99
class FieldViewComposer
1010
{
1111

12-
/**
13-
* @var \Illuminate\Http\Request
14-
*/
15-
protected $request;
16-
17-
/** @var \Webfox\LaravelForms\AttributeManager */
18-
protected $attributeManager;
19-
20-
public function __construct(Request $request, AttributeManager $attributeManager)
21-
{
22-
$this->request = $request;
23-
$this->attributeManager = $attributeManager;
24-
}
25-
26-
public function compose(View $view)
27-
{
28-
// Calculate the field type
29-
$fieldType = $this->attributeManager->getFieldType($view);
30-
31-
// Repopulate the template
32-
$view->offsetSet('extraAttributes', $this->attributeManager->getExtraAttributes($view));
33-
$view->offsetSet('containerAttributes', $this->attributeManager->getContainerAttributes($view));
34-
$view->offsetSet('fieldTemplate', $this->attributeManager->getFieldTemplate($view));
35-
$view->offsetSet('value', $this->attributeManager->getFieldValue($view));
36-
$view->offsetSet('type', $this->attributeManager->getFieldType($view));
37-
$view->offsetSet('actualName', $this->attributeManager->getFieldActualName($view));
38-
$view->offsetSet('options', $this->attributeManager->getFieldOptions($view));
39-
$view->offsetSet('onlyTemplate', in_array($fieldType, ['checkbox']));
40-
$view->offsetSet('model', app(FormModelStack::class)->current());
41-
}
12+
/**
13+
* @var \Illuminate\Http\Request
14+
*/
15+
protected $request;
16+
17+
/** @var \Webfox\LaravelForms\AttributeManager */
18+
protected $attributeManager;
19+
20+
public function __construct(Request $request, AttributeManager $attributeManager)
21+
{
22+
$this->request = $request;
23+
$this->attributeManager = $attributeManager;
24+
}
25+
26+
public function compose(View $view)
27+
{
28+
// Calculate the field type
29+
$fieldType = $this->attributeManager->getFieldType($view);
30+
31+
// Repopulate the template
32+
$view->offsetSet('extraAttributes', $this->attributeManager->getExtraAttributes($view));
33+
$view->offsetSet('containerAttributes', $this->attributeManager->getContainerAttributes($view));
34+
$view->offsetSet('containerClasses', $this->attributeManager->getContainerClasses($view));
35+
$view->offsetSet('labelClasses', $this->attributeManager->getLabelClasses($view));
36+
$view->offsetSet('fieldClasses', $this->attributeManager->getFieldClasses($view));
37+
$view->offsetSet('fieldTemplate', $this->attributeManager->getFieldTemplate($view));
38+
$view->offsetSet('value', $this->attributeManager->getFieldValue($view));
39+
$view->offsetSet('type', $this->attributeManager->getFieldType($view));
40+
$view->offsetSet('actualName', $this->attributeManager->getFieldActualName($view));
41+
$view->offsetSet('options', $this->attributeManager->getFieldOptions($view));
42+
$view->offsetSet('onlyTemplate', in_array($fieldType, ['checkbox']));
43+
$view->offsetSet('model', app(FormModelStack::class)->current());
44+
}
4245

4346

4447
}

views/container.blade.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22
<input type="hidden" name="{{ $name }}" value="{{ $value }}">
33
@else
44
{!! isset($col) ? '<div class="'.$col.'">' : '' !!}
5-
<div class="form-group" @if($errors->has($name)) data-server-error="{{ $errors->first($name) }}" @endif {!! $containerAttributes !!}>
5+
<div class="{{ $containerClasses ?? 'form-group' }}" @if($errors->has($name)) data-server-error="{{ $errors->first($name) }}" @endif {!! $containerAttributes !!}>
66
@unless(($onlyTemplate ?? false) || ($label ?? true) === false)
7-
<label for="{{ $name }}">
7+
<label for="{{ $name }}" class="{{ $labelClasses ?? '' }}">
88
@if($rawLabel ?? false)
99
{!! $rawLabel !!}
1010
@else

views/fields/address.blade.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<div data-address-lookup="{{ $name }}" @if(\Arr::get($value, 'manual')) style="display:none;" @endif>
2-
<input type="text" name="{{ $name }}[display]" class="form-control form-control-sm {{ $class ?? '' }}" value="{{ \Arr::get($value, 'display') }}" data-address-block="{{ $name }}" {!! $extraAttributes !!}>
2+
<input type="text" name="{{ $name }}[display]" class="form-control form-control-sm {{ $fieldClasses ?? '' }}" value="{{ \Arr::get($value, 'display') }}" data-address-block="{{ $name }}" {!! $extraAttributes !!}>
33
<span class="required"></span>
44
<div class="enter-address-manually" style="position: absolute; right: 0;">
55
<a href="#" data-enter-address-manually="{{ $name }}">Enter Manually</a>

views/fields/date.blade.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<i class="icon-th icon-calendar"></i>
55
</span>
66
</div>
7-
<input type="text" name="{{ $name }}" class="form-control form-control-sm datetimepicker {{ $class ?? '' }}"
7+
<input type="text" name="{{ $name }}" class="form-control form-control-sm datetimepicker {{ $fieldClasses ?? '' }}"
88
placeholder="{{ $placeholder ?? 'Select date...' }}"
99
value="{{ $value }}" {!! $extraAttributes !!}>
1010
</div>

views/fields/file.blade.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<div>
2-
<input type="{{ $type }}" name="{{ $name }}" id="{{ $name }}File" class="inputfile {{ $class ?? '' }}" value="{{ $value }}" {!! $extraAttributes !!}>
2+
<input type="{{ $type }}" name="{{ $name }}" id="{{ $name }}File" class="inputfile {{ $fieldClasses ?? '' }}" value="{{ $value }}" {!! $extraAttributes !!}>
33
<label class="btn-secondary btn-block" for="{{ $name }}File">
44
<i class="zmdi zmdi-upload"></i>
55
@if(isset($model) && $model->hasMedia($name))

views/fields/image.blade.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<div class="d-flex">
22
<div class="flex-grow-1 position-relative">
3-
<input type="file" name="{{ $name }}" id="{{ $name }}File" class="inputfile {{ $class ?? '' }}" value="{{ $value }}" {!! $extraAttributes !!}
3+
<input type="file" name="{{ $name }}" id="{{ $name }}File" class="inputfile {{ $fieldClasses ?? '' }}" value="{{ $value }}" {!! $extraAttributes !!}
44
accept="image/*">
55
<label class="btn-block" for="{{ $name }}File">
66
<i class="zmdi zmdi-upload"></i>

views/fields/number.blade.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
<input type="text" name="{{ $name }}" class="form-control {{ $class ?? '' }}" data-number-input value="{{ $value }}" {!! $extraAttributes !!}>
1+
<input type="text" name="{{ $name }}" class="form-control {{ $fieldClasses ?? '' }}" data-number-input value="{{ $value }}" {!! $extraAttributes !!}>
22
<span class="required"></span>

views/fields/range.blade.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
<input type="range" name="{{ $name }}" class="{{ $class ?? '' }}" value="{{ $value }}" {!! $extraAttributes !!}>
1+
<input type="range" name="{{ $name }}" class="{{ $fieldClasses ?? '' }}" value="{{ $value }}" {!! $extraAttributes !!}>

views/fields/simple.blade.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
@if($type === 'textarea')
2-
<textarea name="{{ $name }}" class="form-control {{ $class ?? '' }}" {!! $extraAttributes !!}>{{ $value }}</textarea>
2+
<textarea name="{{ $name }}" class="form-control {{ $fieldClasses ?? '' }}" {!! $extraAttributes !!}>{{ $value }}</textarea>
33
<span class="required"></span>
44
@else
5-
<input type="{{ $type }}" name="{{ $name }}" class="form-control {{ $class ?? '' }}" value="{{ $value }}" {!! $extraAttributes !!}>
5+
<input type="{{ $type }}" name="{{ $name }}" class="form-control {{ $fieldClasses ?? '' }}" value="{{ $value }}" {!! $extraAttributes !!}>
66
<span class="required"></span>
77
@endif

0 commit comments

Comments
 (0)