|
4 | 4 |
|
5 | 5 | @if(isset($field['prefix']) || isset($field['suffix'])) <div class="input-group"> @endif |
6 | 6 | @if(isset($field['prefix'])) <div class="input-group-addon">{!! $field['prefix'] !!}</div> @endif |
| 7 | + @if(isset($field['address_full']) && $field['address_full']) |
7 | 8 | <input |
8 | 9 | type="text" |
9 | | - data-address="{{ $field['name'] }}" |
| 10 | + data-address="{"field": "{{$field['name']}}", "full": {{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="{"field": "{{$field['name']}}", "full": {{isset($field['address_full']) && $field['address_full'] ? 'true' : 'false'}} }" |
10 | 18 | name="{{ $field['name'] }}" |
11 | 19 | value="{{ old($field['name']) ? old($field['name']) : (isset($field['value']) ? $field['value'] : (isset($field['default']) ? $field['default'] : '' )) }}" |
12 | 20 | @include('crud::inc.field_attributes') |
13 | 21 | > |
| 22 | + @endif |
14 | 23 | @if(isset($field['suffix'])) <div class="input-group-addon">{!! $field['suffix'] !!}</div> @endif |
15 | 24 | @if(isset($field['prefix']) || isset($field['suffix'])) </div> @endif |
16 | 25 |
|
|
45 | 54 | window.AlgoliaPlaces = window.AlgoliaPlaces || {}; |
46 | 55 |
|
47 | 56 | $('[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] |
50 | 63 | }); |
| 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; |
51 | 79 | }); |
52 | 80 | }); |
53 | 81 | </script> |
|
0 commit comments