PageSourceSearch

https://www.1001degustations.com/js/script_common_address.js?t=1790272959

js 1001degustations.com collected 2026-09-25 03:50:47 UTC 13,025 bytes, 288 lines download raw bytes

1const addressTypes = {
2    invoiceAddress: 1,
3    deliveryAddress: 2,
4    sampleAddress: 3,
5    invoiceFormAddress: 4,
6    contactAddress: 5,
7    shippingAddress: 6
8};
9
10function chooseAdresse(id_adresse, type_add) {
11    let body = {
12        id_adresse: id_adresse,
13        type_add: type_add
14    }
15    fetch("/" + currentLocale + "/order/select/address", { method: "POST", body: JSON.stringify(body) })
16    .then(response => {
17            if (response.status !== 200) {
18                response.json().then(text => {
19                    addToastMessage(text, "error", true);
20                });
21                return;
22            }
23            response.json().then(data => {
24                if (type_add == 3) {
25                    //si je suis en mode échantillon
26                    let selectId = 'adresseEchantillon';
27                    if(!$('#' + selectId).length) {
28                        selectId = 'wine_address';
29                    }
30                    if(!$('#' + selectId).length) {
31                        selectId = 'sample_participant';
32                    }
33
34                    $('#' + selectId).val(data.idAdresse);
35                    $('#adresseInfo').html(data.infoAdresse);
36
37                    let found = false;
38                    $('#' + selectId +' > option').each(function() {
39                        if ($(this).val() == data.idAdresse) {
40                            found = true;
41                        }
42                    });
43                    if (!found) {
44                        var newOption = new Option(data.infoAdresse, data.idAdresse, false, false);
45                        $('#' + selectId).append(newOption);
46                    }
47                    $('#' + selectId).val(data.idAdresse);
48                    $('#'+ selectId).children('option[value="'+data.idAdresse+'"]').text(data.infoAdresse);
49                    $('#' + selectId).trigger('change');
50                    let modal = document.querySelector('#address-book-modal');
51                    if (modal.dataset.tailwindModal) {
52                        $('#' + selectId).select2();
53                    } else {
54                        $('#' + selectId).select2({
55                            theme: "bootstrap"
56                        });        
57                    }
58                } else if (type_add == 1) {
59                    let $content = $($("#template_adresse_hidden").html());
60                    $('<input type="hidden" name="fact_adresse" value="' + data.idAdresse + '">').prependTo($content);
61                    $content.find("#nom_addr_hid").text(data.nom_addr);
62                    $content.find("#addresse_hid").text(data.addr);
63                    $content.find("#cpAdresse").val(data.cp);
64                    $content.find("#cpAdresse_label").text(data.desc_cp);
65                    $content.find("#paysAdresse").val(data.pays_key);
66                    $content.find("#paysAdresse_label").text(data.pays_nom);
67                    $content.append(data.msg);
68                    $('input:radio[name="adresse_fact"]').filter('[value=1]').prop('checked', false);
69                    $('input:radio[name="adresse_fact"]').filter('[value=0]').prop('checked', true);
70
71                    if ($("#blocfact2").is(':visible')) {
72                        $("#blocfact2").html($content);
73                    } else {
74                        $("#blocfact1").html($content);
75                    }
76                    
77                    var cp = $('#cpAdresse').val();
78                    var pays = $('#paysAdresse').val();
79                    $.ajax({
80                        type: "POST",
81                        url: "/" + currentLocale + "/ajaxImprimeurChooseImp",
82                        data: {
83                            cp: cp,
84                            pays: pays
85                        }
86                    }).done(function (msg) {
87                        if ($('#imprimeur').val() != 561) {
88                            $('#imprimeur option[value=' + msg.num + ']').attr("selected", "selected");
89                        }
90                    });
91                } else if (type_add == 4) {
92                    let found = false;
93                        $('#invoice_public_address > option').each(function() {
94                            if ($(this).val() ==  data.idAdresse) {
95                                $(this).text(data.infoAdresse);
96                                $(this).prop('selected', true);
97                                found = true;
98                            }
99                        });
100                        if (!found) {
101                            $("#invoice_public_address option:last").before('<option value="' +  data.idAdresse + '">' + data.infoAdresse + '</option>');
102                            $('#invoice_public_address option[value="' +  data.idAdresse + '"]').prop('selected', true);
103                        }
104                        $('#invoice_public_address').trigger('change');
105                        $('#invoice_public_address').select2();
106                } else if (type_add == 5) {
107                    document.querySelector('[name="contact_address"]').value = id_adresse;
108                    document.getElementById('contact_label_id').value = (data.firstName ?? '') + ' ' + (data.lastName ?? '');
109                    document.getElementById('tel_label_id').value = data.phone;
110                    document.getElementById('mobile_label_id').value = data.mobile;
111                    document.getElementById('email_label_id').value = data.email;
112                } else {
113                    let $content = $($("#template_adresse_hidden").html());
114                    $('<input type="hidden" name="livr_adresse" value="' + data.idAdresse + '"><input type="hidden" id="id_pays_livraison_autre" value="' + data.pays + '">').prependTo($content);
115                    $content.find("#nom_addr_hid").text(data.nom_addr);
116                    $content.find("#addresse_hid").text(data.addr);
117                    $content.find("#cpAdresse").val(data.cp);
118                    $content.find("#cpAdresse_label").text(data.desc_cp);
119                    $content.find("#paysAdresse").val(data.pays_key);
120                    $content.find("#paysAdresse_label").text(data.pays_nom);
121                    $content.append(data.msg);
122                    $('input:radio[name="adresse_livr"]').filter('[value=1]').prop('checked', false);
123                    $('input:radio[name="adresse_livr"]').filter('[value=0]').prop('checked', true);
124                    if ($("#blocliv2").is(':visible')) {
125                        $("#blocliv2").html($content);
126                    } else {
127                        $("#blocliv1").html($content);
128                    }
129                    
130                    if (typeof calculTarifLivraison === 'function') {
131                        calculTarifLivraison();
132                    }
133                    if (typeof updateShippingFees === 'function') {
134                        updateShippingFees();
135                    }
136                }
137            });
138        });
139}
140
141function toggleRegionField(countryId, isInitialization = false) {
142    let regionField = getElement().querySelector('#address_region');
143    let countryField = getElement().querySelector('#address_country');
144    let originalRegion = regionField.dataset.originalRegion;
145
146    for (let i = 0; i < countryField.options.length; i++) {
147        const element = countryField.options[i];
148        if(element.value == countryId) {
149            if(element.dataset.regionEnabled == 1) {
150                if (isInitialization) {
151                    regionField.value = originalRegion;
152                }
153                regionField.parentNode.style.display = 'flex';
154                regionField.required = true;
155            } else {
156                regionField.parentNode.style.display = 'none';
157                regionField.value = '';
158                regionField.required = false;
159            }
160            break;
161        }
162    }
163}
164
165function toggleVatField(countryId) {
166    let vatField = getElement().querySelector('#address_vatNumber');
167    let vatFieldGroup = vatField.closest('.form-group');
168    let countryField = getElement().querySelector('#address_country');
169
170    for (let i = 0; i < countryField.options.length; i++) {
171        const element = countryField.options[i];
172        if(element.value == countryId) {
173            if(element.dataset.ue == 1) {
174                vatFieldGroup.style.display = 'flex';
175            } else {
176                vatFieldGroup.style.display = 'none';
177                vatField.value = '';
178            }
179            break;
180        }
181    }
182}
183
184function toggleElectronicInvoicingFields(countryId, isInitialization = false) {
185    let countryField = getElement().querySelector('#address_country');
186    let fieldsContainer = getElement().querySelectorAll('[data-electronic-invoicing-field]');
187
188    let activeFields = [];
189    let lookupConfig = null;
190    for (let i = 0; i < countryField.options.length; i++) {
191        const element = countryField.options[i];
192        if (element.value == countryId) {
193            activeFields = JSON.parse(element.dataset.electronicInvoicingFields || '[]');
194            lookupConfig = element.dataset.electronicInvoicingLookup ? JSON.parse(element.dataset.electronicInvoicingLookup) : null;
195            break;
196        }
197    }
198
199    fieldsContainer.forEach(function(row) {
200        let key = row.dataset.electronicInvoicingField;
201        let match = activeFields.find(f => f.key === key);
202        let input = row.querySelector('input');
203        if (match) {
204            row.style.display = 'flex';
205            input.required = match.required;
206        } else {
207            row.style.display = 'none';
208            input.required = false;
209            if (!isInitialization) {
210                input.value = '';
211            }
212        }
213
214        let existingTrigger = row.querySelector('[data-electronic-invoicing-lookup-trigger]');
215        if (existingTrigger) {
216            existingTrigger.remove();
217        }
218
219        let isLookupTarget = lookupConfig && lookupConfig.targetFieldKeys.includes(key);
220        input.readOnly = !!isLookupTarget;
221        if (!isLookupTarget) {
222            input.removeAttribute('data-electronic-invoicing-lookup-source-key');
223            input.style.display = '';
224        }
225
226        if (isLookupTarget) {
227            input.setAttribute('data-electronic-invoicing-lookup-source-key', lookupConfig.sourceFieldKey);
228            input.style.display = input.value ? '' : 'none';
229
230            let targetFieldIds = {};
231            lookupConfig.targetFieldKeys.forEach(function(targetKey) {
232                targetFieldIds[targetKey] = 'address_electronicInvoicingField_' + targetKey;
233            });
234
235            let button = document.createElement('button');
236            button.type = 'button';
237            button.className = 'btn btn-secondary btn-sm';
238            button.textContent = gettext('RECHERCHER_VIA_CHAMP').replace('%CHAMP%', lookupConfig.sourceFieldLabel);
239            button.setAttribute('data-electronic-invoicing-lookup-trigger', '1');
240            button.dataset.sourceInputId = 'address_electronicInvoicingField_' + lookupConfig.sourceFieldKey;
241            button.dataset.countryInputId = 'address_country';
242            button.dataset.targetFieldIds = JSON.stringify(targetFieldIds);
243            let sourceInput = getElement().querySelector('#' + button.dataset.sourceInputId);
244            button.disabled = !sourceInput || sourceInput.value.trim() === '';
245            row.appendChild(button);
246        }
247    });
248}
249
250function getElement() {
251    let element = document;
252    if (typeof web !== 'undefined') {
253        let modal = document.getElementById("address-book-modal");
254        element = modal.shadowRoot;
255    }
256
257    return element;
258}
259
260function retourAddress(type_add){
261    if($("#done_callback").attr("data-del") == "true") {
262        if (type_add == 1) {
263            $("#blocfact2").hide();
264            $("#blocfact1").show();
265        } else {
266            $("#blocliv2").hide();
267            $("#blocliv1").show();
268        }
269    }
270    getFiltre(1);
271    if (type_add == 1) {
272        if ($("#blocfact2").is(':visible')) {
273            $('input:radio[name="adresse_fact"]').filter('[value=0]').prop('checked', true);
274            $('input:radio[name="adresse_fact"]').filter('[value=1]').prop('checked', false);
275        } else {
276            $('input:radio[name="adresse_fact"]').filter('[value=0]').prop('checked', false);
277            $('input:radio[name="adresse_fact"]').filter('[value=1]').prop('checked', true);
278        }
279    } else {
280        if ($("#blocliv2").is(':visible')) {
281            $('input:radio[name="adresse_livr"]').filter('[value=1]').prop('checked', false);
282            $('input:radio[name="adresse_livr"]').filter('[value=0]').prop('checked', true);
283        } else {
284            $('input:radio[name="adresse_livr"]').filter('[value=1]').prop('checked', true);
285            $('input:radio[name="adresse_livr"]').filter('[value=0]').prop('checked', false);
286        }
287    }
288}

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.