Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 28 additions & 0 deletions resources/views/extend/forms/blade/fields.blade.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
@php
use function Statamic\trans as __;
@endphp
@foreach ($fields as $field)
<div class="p-4">
<label for="{{ $field['id'] }}">
{{ $field['display'] }}

@if (collect($field['validate'] ?? [])->contains('required'))
<sup aria-label="{{ __('Required') }}">*</sup>
@endif
</label>

<div class="p-2">{!! $field['field'] !!}</div>

@if ($field['instructions'] ?? false)
<p class="text-gray-500" id="{{ $field['id'] }}-instructions">
{{ $field['instructions'] }}
</p>
@endif

@if ($field['error'] ?? false)
<p class="text-red-600" id="{{ $field['id'] }}-error">
{{ $field['error'] }}
</p>
@endif
</div>
@endforeach
22 changes: 22 additions & 0 deletions resources/views/extend/forms/blade/fields/assets.blade.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
@php
$isMultiple = ! isset($max_files) || $max_files !== 1;
$fieldName = $handle;

if ($isMultiple) {
$fieldName .= '[]';
}
@endphp

<input
id="{{ $id }}"
type="file"
name="{{ $fieldName }}"
@if (isset($js_driver)) {!! $js_attributes !!} @endif
@if ($isMultiple) multiple @endif
@required(in_array('required', $validate ?? []))
@if ($error)
aria-invalid="true" aria-describedby="{{ $id }}-error"
@elseif ($instructions)
aria-describedby="{{ $id }}-instructions"
@endif
>
25 changes: 25 additions & 0 deletions resources/views/extend/forms/blade/fields/checkboxes.blade.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
@php
$inline = isset($inline) && $inline === true;
@endphp

<input type="hidden" name="{{ $handle }}[]">
@foreach ($options as $option => $label)
<label>
<input
id="{{ $id }}-{{ \Illuminate\Support\Str::slug($option) }}-option"
type="checkbox"
name="{{ $handle }}[]"
value="{{ $option }}"
@if (isset($js_driver)) {!! $js_attributes !!} @endif
@checked(in_array($option, $value ?? []))
@required(in_array('required', $validate ?? []))
@if ($error)
aria-invalid="true" aria-describedby="{{ $id }}-error"
@elseif ($instructions)
aria-describedby="{{ $id }}-instructions"
@endif
>
{{ $label === null ? $option : $label }}
</label>
@unless ($inline) <br> @endunless
@endforeach
15 changes: 15 additions & 0 deletions resources/views/extend/forms/blade/fields/default.blade.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<input
id="{{ $id }}"
type="{{ $input_type ?? 'text' }}"
name="{{ $handle }}"
value="{{ $value ?? '' }}"
@if (isset($placeholder)) placeholder="{{ $placeholder }}" @endif
@if (isset($character_limit)) maxlength="{{ $character_limit }}" @endif
@if (isset($js_driver)) {!! $js_attributes !!} @endif
@required(in_array('required', $validate ?? []))
@if ($error)
aria-invalid="true" aria-describedby="{{ $id }}-error"
@elseif ($instructions)
aria-describedby="{{ $id }}-instructions"
@endif
>
44 changes: 44 additions & 0 deletions resources/views/extend/forms/blade/fields/dictionary.blade.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
@php
use function Statamic\trans as __;

$isMultiple = ! isset($max_items) || $max_items !== 1;
$inline = isset($inline) && $inline === true;
$placeholderText = $placeholder ?? __('Please select...');

$fieldName = $handle;

if ($isMultiple) {
$fieldName .= '[]';
}
@endphp

<select
id="{{ $id }}"
name="{{ $fieldName }}"
@if (isset($js_driver)) {!! $js_attributes !!} @endif
@if ($isMultiple) multiple @endif
@required(in_array('required', $validate ?? []))
@if ($error)
aria-invalid="true" aria-describedby="{{ $id }}-error"
@elseif ($instructions)
aria-describedby="{{ $id }}-instructions"
@endif
>
@unless ($isMultiple)
<option value>{{ $placeholderText }}</option>
@endunless
@foreach ($options as $option => $label)
@php
$selected = false;
if ($isMultiple) {
$selected = in_array($option, $value ?? []);
} else {
$selected = $option == $value;
}
@endphp
<option
value="{{ $option }}"
@selected($selected)
>{{ $label === null ? $option : $label }}</option>
@endforeach
</select>
23 changes: 23 additions & 0 deletions resources/views/extend/forms/blade/fields/files.blade.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
@php
$isMultiple = ! isset($max_files) || $max_files !== 1;

$fieldName = $handle;

if ($isMultiple) {
$fieldName .= '[]';
}
@endphp

<input
id="{{ $id }}"
type="file"
name="{{ $fieldName }}"
@if (isset($js_driver)) {!! $js_attributes !!} @endif
@if ($isMultiple) multiple @endif
@required(in_array('required', $validate ?? []))
@if ($error)
aria-invalid="true" aria-describedby="{{ $id }}-error"
@elseif ($instructions)
aria-describedby="{{ $id }}-instructions"
@endif
>
7 changes: 7 additions & 0 deletions resources/views/extend/forms/blade/fields/group.blade.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
<div
@if (isset($js_driver)) {!! $js_attributes !!} @endif
>
@foreach ($fields as $__field)
{!! $slot?->addContext($__field) !!}
@endforeach
</div>
6 changes: 6 additions & 0 deletions resources/views/extend/forms/blade/fields/hidden.blade.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
<input
id="{{ $id }}"
type="hidden"
name="{{ $name }}"
value="{{ $value }}"
>
19 changes: 19 additions & 0 deletions resources/views/extend/forms/blade/fields/integer.blade.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
<input
id="{{ $id }}"
type="number"
name="{{ $name }}"
value="{{ $value }}"
@if ($placeholder ?? false) placeholder="{{ $placeholder }}" @endif
@if ($min ?? false) min="{{ $min }}" @endif
@if ($max ?? false) max="{{ $max }}" @endif
@if ($step ?? false) step="{{ $step }}" @endif
@if ($character_limit ?? false) maxlength="{{ $character_limit }}" @endif
@if ($autocomplete ?? false) autocomplete="{{ $autocomplete }}" @endif
@if (isset($js_driver)) {!! $js_attributes !!} @endif
@required(in_array('required', $validate ?? []))
@if ($error)
aria-invalid="true" aria-describedby="{{ $id }}-error"
@elseif ($instructions)
aria-describedby="{{ $id }}-instructions"
@endif
>
24 changes: 24 additions & 0 deletions resources/views/extend/forms/blade/fields/radio.blade.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
@php
$inline = isset($inline) && $inline === true;
@endphp

@foreach ($options as $option => $label)
<label>
<input
id="{{ $id }}-{{ \Illuminate\Support\Str::slug($option) }}-option"
type="radio"
name="{{ $handle }}"
value="{{ $option }}"
@if (isset($js_driver)) {!! $js_attributes !!} @endif
@checked($value == $option)
@required(in_array('required', $validate ?? []))
@if ($error)
aria-invalid="true" aria-describedby="{{ $id }}-error"
@elseif ($instructions)
aria-describedby="{{ $id }}-instructions"
@endif
>
{{ $label === null ? $option : $label }}
</label>
@unless ($inline) <br> @endunless
@endforeach
44 changes: 44 additions & 0 deletions resources/views/extend/forms/blade/fields/select.blade.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
@php
use function Statamic\trans as __;

$isMultiple = isset($multiple) && $multiple == true;
$inline = isset($inline) && $inline === true;
$placeholderText = $placeholder ?? __('Please select...');

$fieldName = $handle;

if ($isMultiple) {
$fieldName .= '[]';
}
@endphp

<select
id="{{ $id }}"
name="{{ $fieldName }}"
@if (isset($js_driver)) {!! $js_attributes !!} @endif
@if ($isMultiple) multiple @endif
@required(in_array('required', $validate ?? []))
@if ($error)
aria-invalid="true" aria-describedby="{{ $id }}-error"
@elseif ($instructions)
aria-describedby="{{ $id }}-instructions"
@endif
>
@unless ($isMultiple)
<option value>{{ $placeholderText }}</option>
@endunless
@foreach ($options as $option => $label)
@php
$selected = false;
if ($isMultiple) {
$selected = in_array($option, $value ?? []);
} else {
$selected = $option == $value;
}
@endphp
<option
value="{{ $option }}"
@selected($selected)
>{{ $label === null ? $option : $label }}</option>
@endforeach
</select>
1 change: 1 addition & 0 deletions resources/views/extend/forms/blade/fields/spacer.blade.php
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
<?php
16 changes: 16 additions & 0 deletions resources/views/extend/forms/blade/fields/text.blade.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
<input
id="{{ $id }}"
type="{{ $input_type ?? 'text' }}"
name="{{ $handle }}"
value="{{ $value ?? '' }}"
@if (isset($placeholder)) placeholder="{{ $placeholder }}" @endif
@if (isset($character_limit)) maxlength="{{ $character_limit }}" @endif
@if (isset($autocomplete)) autocomplete="{{ $autocomplete }}" @endif
@if (isset($js_driver)) {!! $js_attributes !!} @endif
@required(in_array('required', $validate ?? []))
@if ($error)
aria-invalid="true" aria-describedby="{{ $id }}-error"
@elseif ($instructions)
aria-describedby="{{ $id }}-instructions"
@endif
>
14 changes: 14 additions & 0 deletions resources/views/extend/forms/blade/fields/textarea.blade.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
<textarea
id="{{ $id }}"
name="{{ $handle }}"
rows="5"
@if (isset($placeholder)) placeholder="{{ $placeholder }}" @endif
@if (isset($character_limit)) maxlength="{{ $character_limit }}" @endif
@if (isset($js_driver)) {!! $js_attributes !!} @endif
@required(in_array('required', $validate ?? []))
@if ($error)
aria-invalid="true" aria-describedby="{{ $id }}-error"
@elseif ($instructions)
aria-describedby="{{ $id }}-instructions"
@endif
>{{ $value }}</textarea>
17 changes: 17 additions & 0 deletions resources/views/extend/forms/blade/fields/toggle.blade.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
<label>
<input type="hidden" name="{{ $handle }}" value="0">
<input
type="checkbox"
name="{{ $handle }}"
value="1"
@if (isset($js_driver)) {!! $js_attributes !!} @endif
@checked($value && $value !== '0')
@required(in_array('required', $validate ?? []))
@if ($error)
aria-invalid="true" aria-describedby="{{ $id }}-error"
@elseif ($instructions)
aria-describedby="{{ $id }}-instructions"
@endif
>
@if (isset($inline_label)) {{ $inline_label }} @endif
</label>
15 changes: 11 additions & 4 deletions src/Fields/Fieldtype.php
Original file line number Diff line number Diff line change
Expand Up @@ -337,11 +337,18 @@ public function preProcessIndex($data)

public function view()
{
$default = 'statamic::forms.fields.'.$this->handle();
$language = config('statamic.templates.language', 'antlers');
$handle = $this->handle();

return view()->exists($default)
? $default
: 'statamic::forms.fields.default';
$views = [
"statamic::forms.fields.{$handle}",
"statamic::forms.{$language}.fields.{$handle}",
];

$view = collect($views)->first(fn ($view) => view()->exists($view));

return $view
?: "statamic::forms.{$language}.fields.default";
}

public function config(?string $key = null, $fallback = null)
Expand Down
4 changes: 3 additions & 1 deletion src/Providers/AppServiceProvider.php
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,9 @@ public function boot()
$this->loadViewsFrom("{$this->root}/resources/views/extend", 'statamic');

$this->publishes([
"{$this->root}/resources/views/extend/forms" => resource_path('views/vendor/statamic/forms'),
config('statamic.templates.language', 'antlers') === 'blade'
? "{$this->root}/resources/views/extend/forms/blade"
: "{$this->root}/resources/views/extend/forms/antlers" => resource_path('views/vendor/statamic/forms'),
], 'statamic-forms');

$this->publishes([
Expand Down
Loading