Skip to content

Commit 60509a1

Browse files
committed
erge branch 'address-field' of https://github.com/Laravel-Backpack/CRUD into address-field
2 parents fced160 + 8643128 commit 60509a1

File tree

1 file changed

+31
-3
lines changed

1 file changed

+31
-3
lines changed

src/resources/views/fields/address.blade.php

Lines changed: 31 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,22 @@
44

55
@if(isset($field['prefix']) || isset($field['suffix'])) <div class="input-group"> @endif
66
@if(isset($field['prefix'])) <div class="input-group-addon">{!! $field['prefix'] !!}</div> @endif
7+
@if(isset($field['address_full']) && $field['address_full'])
78
<input
89
type="text"
9-
data-address="{{ $field['name'] }}"
10+
data-address="{&quot;field&quot;: &quot;{{$field['name']}}&quot;, &quot;full&quot;: {{isset($field['address_full']) && $field['address_full'] ? 'true' : 'false'}} }"
11+
@include('crud::inc.field_attributes')
12+
>
13+
<input type="hidden" value="{{ old($field['name']) ? old($field['name']) : (isset($field['value']) ? $field['value'] : (isset($field['default']) ? $field['default'] : '' )) }}" name="{{ $field['name'] }}">
14+
@else
15+
<input
16+
type="text"
17+
data-address="{&quot;field&quot;: &quot;{{$field['name']}}&quot;, &quot;full&quot;: {{isset($field['address_full']) && $field['address_full'] ? 'true' : 'false'}} }"
1018
name="{{ $field['name'] }}"
1119
value="{{ old($field['name']) ? old($field['name']) : (isset($field['value']) ? $field['value'] : (isset($field['default']) ? $field['default'] : '' )) }}"
1220
@include('crud::inc.field_attributes')
1321
>
22+
@endif
1423
@if(isset($field['suffix'])) <div class="input-group-addon">{!! $field['suffix'] !!}</div> @endif
1524
@if(isset($field['prefix']) || isset($field['suffix'])) </div> @endif
1625

@@ -45,9 +54,28 @@
4554
window.AlgoliaPlaces = window.AlgoliaPlaces || {};
4655
4756
$('[data-address]').each(function(){
48-
window.AlgoliaPlaces[ $(this).data('address') ] = places({
49-
container: $(this)[0]
57+
58+
var $this = $(this),
59+
$addressConfig = $this.data('address'),
60+
$field = $('[name="'+$addressConfig.field+'"]'),
61+
$place = places({
62+
container: $this[0]
5063
});
64+
65+
if( $addressConfig.full ){
66+
67+
$place.on('change', function(e){
68+
var result = JSON.parse(JSON.stringify(e.suggestion));
69+
delete(result.highlight); delete(result.hit); delete(result.hitIndex);
70+
delete(result.rawAnswer); delete(result.query);
71+
$field.val( JSON.stringify(result) );
72+
});
73+
74+
var existingData = JSON.parse($field.val());
75+
$this.val(existingData.value);
76+
}
77+
78+
window.AlgoliaPlaces[ $addressConfig.field ] = $place;
5179
});
5280
});
5381
</script>

0 commit comments

Comments
 (0)