Files
opensem/resources/views/Shop/Customers/partials/addresses.blade.php

97 lines
3.8 KiB
PHP

<div id="addresses_list_{{ $prefix }}" class="addresses-list">
@foreach ($addresses ?? [] as $address)
@include('Shop.Customers.partials.address_item', [
'address' => $address,
'prefix' => $prefix ?? null,
'with_name' => $with_name ?? false,
'selected' => $selected ?? null,
])
@endforeach
</div>
<div id="add_address_container_{{ $prefix }}" class="green-dark d-none mb-3 mt-3">
<x-card classBody="bg-green-dark yellow" title="Nouvelle adresse" classTitle="h4">
@include('Shop.Customers.partials.address', [
'prefix' => $prefix,
'with_country' => false,
'with_tab' => true,
'label' => 'Adresse',
'customer' => [],
])
<div class="row mt-3">
<div class="col-md-6 mb-2">
<x-form.button id="save_address_{{ $prefix }}" class="btn-success btn-sm btn-block"
icon="fa-save" txt="Enregistrer cette adresse"
:metadata="'data-prefix='.$prefix" />
</div>
<div class="col-md-6 mb-2">
<x-form.button id="cancel_address_{{ $prefix }}" class="btn-outline-light btn-sm btn-block"
icon="fa-times" txt="Annuler"
:metadata="'data-prefix='.$prefix" />
</div>
</div>
</x-card>
</div>
<div class="row">
<div class="col-12 text-right">
<x-form.button id="add_address_{{ $prefix }}" icon="fa-plus" txt="Ajouter une adresse"
class="btn-warning btn-sm mt-2" />
</div>
</div>
@push('js')
<script>
(function() {
var prefix = '{{ $prefix }}';
var $formContainer = $('#add_address_container_{{ $prefix }}');
var $list = $('#addresses_list_{{ $prefix }}');
var storeUrl = '{{ route('Shop.Customers.address.store') }}';
$('#add_address_{{ $prefix }}').on('click', function() {
$formContainer.toggleClass('d-none');
});
$('#cancel_address_{{ $prefix }}').on('click', function() {
$formContainer.addClass('d-none');
$formContainer.find('input[type="text"]').val('');
});
$('#save_address_{{ $prefix }}').on('click', function() {
const data = $formContainer.find(':input').serialize();
$.ajax({
url: storeUrl,
method: 'POST',
data: data + '&prefix=' + prefix,
success: function(response) {
if (response.html) {
$list.append(response.html);
}
$formContainer.addClass('d-none');
$formContainer.find('input[type="text"]').val('');
if (response.id) {
$list.find('#address_' + response.id).prop('checked', true);
}
if (typeof initIcheck === 'function') {
initIcheck('#addresses_list_{{ $prefix }} input[type="radio"]');
}
const message = response.message || '{{ __('Adresse enregistrée.') }}';
if (typeof growl === 'function') {
growl(message, 'success');
}
},
error: function(xhr) {
let message = '{{ __('Une erreur est survenue lors de l\'enregistrement de l\'adresse.') }}';
if (xhr.responseJSON && xhr.responseJSON.message) {
message = xhr.responseJSON.message;
}
if (typeof growl === 'function') {
growl(message, 'error');
}
}
});
});
})();
</script>
@endpush