<!-- Button -->
<?php
-$field['options'] = ['page_link' => trans('backpack::crud.page_link'), 'internal_link' => trans('backpack::crud.internal_link'), 'external_link' => trans('backpack::crud.external_link')];
+$link_types = ['page_link' => trans('backpack::crud.page_link'), 'internal_link' => trans('backpack::crud.internal_link'), 'external_link' => trans('backpack::crud.external_link')];
$field['allows_null'] = false;
$page_model = $field['page_model'];
$active_pages = $page_model::all();
+
+$empty = ['label' => '', 'type' => array_key_first($link_types), 'link' => '', 'page_id' => ''];
+$value = old(square_brackets_to_dots($field['name'])) ?? $field['value'] ?? $field['default'] ?? [];
+if($value==''){
+ $value=[];
+}
+$value = array_merge($empty, $value);
+
?>
<div @include('crud::inc.field_wrapper_attributes') >
<label>{!! $field['label'] !!}</label>
@include('crud::inc.field_translatable_icon')
<div class="clearfix"></div>
- <div class="col-sm-5">
- <input type="text" name="label" value="{{$entry->label}}">
+ <div class="col-sm-3">
+ <label>Button label</label><br/>
+ <input type="text" name="{{$field['name']}}[label]" value="{{$value['label']}}" class="form-control">
</div>
<div class="col-sm-3">
+ <label>Link type</label><br/>
<select
id="page_or_link_select"
- name="{{ $field['name'] ?? 'type' }}"
+ name="{{ $field['name']}}[type]"
@include('crud::inc.field_attributes')
>
-
- @if (isset($field['allows_null']) && $field['allows_null']==true)
- <option value="">-</option>
- @endif
-
- @if (count($field['options']))
- @foreach ($field['options'] as $key => $value)
+ @foreach ($link_types as $key => $link_type)
<option value="{{ $key }}"
- @if (isset($field['value']) && $key==$field['value'])
+ @if ($key===$value['type'])
selected
@endif
- >{{ $value }}</option>
+ >{{ $link_type }}</option>
@endforeach
- @endif
</select>
</div>
- <div class="col-sm-4">
+ <div class="col-sm-6">
+ <label>Link</label><br/>
<!-- external link input -->
- <div class="page_or_link_value <?php if (!isset($entry) || $entry->type != 'external_link') {
+ <div class="page_or_link_value <?php if ($value['type'] != 'external_link') {
echo 'hidden';
} ?>" id="page_or_link_external_link">
<input
name="link"
placeholder="{{ trans('backpack::crud.page_link_placeholder') }}"
- @if (!isset($entry) || $entry->type!='external_link')
+ @if ($value['type']!='external_link')
disabled="disabled"
@endif
- @if (isset($entry) && $entry->type=='external_link' && isset($entry->link) && $entry->link!='')
- value="{{ $entry->link }}"
+ @if ($value['type']=='external_link' && isset($value['link']) && $value['link']!='')
+ value="{{ $value['link'] }}"
@endif
>
</div>
<!-- internal link input -->
- <div class="page_or_link_value <?php if (!isset($entry) || $entry->type != 'internal_link') {
+ <div class="page_or_link_value <?php if ($value['type'] != 'internal_link') {
echo 'hidden';
} ?>" id="page_or_link_internal_link">
<input
name="link"
placeholder="{{ trans('backpack::crud.internal_link_placeholder', ['url', url(config('backpack.base.route_prefix').'/page')]) }}"
- @if (!isset($entry) || $entry->type!='internal_link')
+ @if ($value['type']!='internal_link')
disabled="disabled"
@endif
- @if (isset($entry) && $entry->type=='internal_link' && isset($entry->link) && $entry->link!='')
- value="{{ $entry->link }}"
+ @if ($value['type']=='internal_link' && isset($value['link']) && $value['link']!='')
+ value="{{ $value['link'] }}"
@endif
>
</div>
<!-- page slug input -->
- <div class="page_or_link_value <?php if (isset($entry) && $entry->type != 'page_link') {
+ <div class="page_or_link_value <?php if ($value['type'] != 'page_link') {
echo 'hidden';
} ?>" id="page_or_link_page">
<select
@else
@foreach ($active_pages as $key => $page)
<option value="{{ $page->id }}"
- @if (isset($entry) && isset($entry->page_id) && $page->id==$entry->page_id)
+ @if (isset($value['page_id']) && $page->id==$value['page_id'])
selected
@endif
>{{ $page->name }}</option>