PageSourceSearch

https://mesparcelles.fr/typo3temp/assets/compressed/merged-1b8b4fa…9d6c09c27b0f54f636b015407b38f.js?1790951603

js mesparcelles.fr collected 2026-10-09 03:59:24 UTC 14,939 bytes, 336 lines download raw bytes

1
2function SuggestController()
3{
4
5    this.init = function () {
6// console.log("init suggest");
7        document.addEventListener("DOMContentLoaded", function (event) {
8            let selectFilters = document.querySelectorAll('select.js--facet-filter');
9            selectFilters.forEach(function (select) {
10                select.addEventListener("change", function (event) {
11                    this.form.submit();
12                });
13            });
14        });
15        let dataSuggest = document.querySelectorAll('form[data-suggest]');
16        dataSuggest.forEach(function () {
17            // console.log("ici");
18            // console.log(this);
19            let $form = this, $searchBox = document.querySelector('.tx-solr-suggest'), $formAutoComplete;
20            if (document.querySelector('.tx-solr-autocomplete') !== undefined) {
21                $formAutoComplete = document.querySelector('.tx-solr-autocomplete');
22            } else {
23                $formAutoComplete = document.querySelector('body');
24            }
25            // console.log($form);
26            // console.log($formAutoComplete);
27            // console.log('la');
28
29
30            if (document.querySelector('.tx-solr-suggest-focus')) {
31                document.querySelector('.tx-solr-suggest-focus').focus();
32            }
33            // when no specific container found, use the form as container
34            if ($searchBox) {
35                $searchBox = $form;
36                $searchBox.style.position = 'relative';
37            }
38
39            // Prevent submit of empty search form
40            $form.addEventListener('submit', (e) => {
41                if ($searchBox.value === '') {
42                    e.preventDefault();
43                    $searchBox.focus();
44                }
45            });
46
47            if (document.getElementById('tx-solr-search-form-pi-results')) {
48                const endpoint = document.getElementById('tx-solr-search-form-pi-results').dataset.suggest;
49                const suggestion = [];
50                // fetch grabs endpoint - at this point a promise and generates readablestream
51                fetch(endpoint)
52                    .then(blob => blob.json())
53                    .then(data => cities.push(...data));
54
55                $searchBox.devbridgeAutocomplete({
56                    serviceUrl: document.getElementById('tx-solr-search-form-pi-results').dataset.suggest,
57                    dataType: 'jsonp',
58                    ajaxSettings: {
59                        jsonp: "tx_solr[callback]"
60                    },
61                    paramName: 'tx_solr[queryString]',
62                    groupBy: 'category',
63                    maxHeight: 1000,
64                    appendTo: $formAutoComplete,
65                    autoSelectFirst: false,
66                    triggerSelectOnValidInput: false,
67                    width: $searchBox.offsetWidth * 0.66,
68                    onSelect: function (suggestion) {
69                        // go to link when selecting found result
70                        if (suggestion.data.link) {
71                            // Open youtube in overlay
72                            if (suggestion.data.link.indexOf('https://www.youtube.com') === 0) {
73                                openVideoOverlay(suggestion.data.link);
74                            } else {
75                                location.href = suggestion.data.link;
76                            }
77                            // else trigger form submit (do search)
78                        } else {
79                            $form.trigger('submit');
80                        }
81                    },
82                    transformResult: function (response) {
83                        if (!response.suggestions) {
84                            return [];
85                        }
86                        var firstSuggestion, result = {
87                            suggestions: $.map(response.suggestions, function (count, suggestion) {
88                                if (!firstSuggestion) {
89                                    firstSuggestion = suggestion;
90                                }
91                                return {value: suggestion, data: {category: 'suggestion', count: count}};
92                            })
93                        };
94
95                        $.each(response.documents, function (key, value) {
96                            var dataObject = value;
97
98                            var defaultGroup = $form.data('suggest-header') ? $form.data('suggest-header') : 'Top results';
99                            dataObject.category = defaultGroup;
100
101                            // if a group is set we try to get a label
102                            if (dataObject.group) {
103                                dataObject.category = $form.data('suggest-header-' + dataObject.group) ? $form.data('suggest-header-' + dataObject.group) : dataObject.group;
104                            }
105
106                            result.suggestions.push(
107                                {
108                                    value: firstSuggestion,
109                                    data: dataObject
110                                }
111                            );
112                        });
113
114                        return result;
115                    },
116                    beforeRender: function (container) {
117                        // remove first group header
118                        container.find('.autocomplete-group:first').remove();
119                        container.addClass('tx-solr-autosuggest');
120
121                        // add active class to container
122                        $searchBox.parent().addClass('autocomplete-active').fadeIn();
123                    },
124                    formatResult: function (suggestion, currentValue) {
125                        // Do not replace anything if there current value is empty
126                        if (!currentValue) {
127                            return suggestion.value;
128                        }
129                        var pattern = '(' + $.Autocomplete.utils.escapeRegExChars(currentValue.trim()) + ')';
130                        // normal suggestion
131                        if (suggestion.data.category === 'suggestion') {
132                            return suggestion.value
133                                .replace(new RegExp(pattern, 'gi'), '<strong>$1<\/strong>')
134                                .replace(/&/g, '&amp;')
135                                .replace(/</g, '&lt;')
136                                .replace(/>/g, '&gt;')
137                                .replace(/"/g, '&quot;')
138                                .replace(/&lt;(\/?strong)&gt;/g, '<$1>');
139
140                            // results
141                        } else {
142                            var title = suggestion.data.title
143                                .replace(new RegExp(pattern, 'gi'), '<em>$1<\/em>')
144                                .replace(/&/g, '&amp;')
145                                .replace(/</g, '&lt;')
146                                .replace(/>/g, '&gt;')
147                                .replace(/"/g, '&quot;')
148                                .replace(/&lt;(\/?em)&gt;/g, '<$1>');
149
150                            return '<div class="' + suggestion.data.type + '">' +
151                                (!!suggestion.data.previewImage ? '<figure ' + (!!suggestion.data.hasVideo ? 'class="hasVideo"' : '') + '>
151<img src="' + suggestion.data.previewImage + '" /></figure>' : '') +
152                                '<a href="' + suggestion.data.link + '" class="internal-link">' + title + '</a>' +
153                                '</div>';
154                        }
155
156                    }
157                }).on('blur', function () {
158                    $searchBox.parent().removeClass('autocomplete-active');
159                    var $box = $(this);
160                    setTimeout(function () {
161                        $box.devbridgeAutocomplete('hide');
162                    }, 200);
163                });
164            }
165        });
166    };
167}
168
169document.addEventListener("DOMContentLoaded", function (event) {
170    let solrSuggestController = new SuggestController();
171    solrSuggestController.init();
172    //     document.querySelectorAll('select.js--facet-filter');
173    // selectFilters.forEach(function (select) {
174    //     select.addEventListener("change", function (event) {
175    //         this.form.submit();
176    //     });
177    // });
178});
179// jQuery(document).ready(function() {
180//     /** solr search autocomplete **/
181//     var solrSuggestController = new SuggestController();
182//     solrSuggestController.init();
183//
184//     jQuery("body").on("tx_solr_updated", function() {
185//         solrSuggestController.init();
186//     });
187// });
188
189//
190// function SuggestController() {
191//
192//     this.init = function () {
193//
194//         jQuery('form[data-suggest]').each(function () {
195//             let $form = this, $searchBox = $form.find('.tx-solr-suggest'), $formAutoComplete;
196//
197//             if ($form.find('.tx-solr-autocomplete').length > 0){
198//                 $formAutoComplete = $form.find('.tx-solr-autocomplete');
199//             } else {
200//                 $formAutoComplete = $('body');
201//             }
202//
203//             $form.find('.tx-solr-suggest-focus').focus();
204//
205//
206//             if ($searchBox.length === 0) {
207//                 $searchBox = $form;
208//             }
209//             $searchBox.css('position', 'relative');
210//
211//
212//             $form.addEventListener('submit', (e) => {
213//                 if ($form.find('.tx-solr-suggest').value === '') {
214//                     e.preventDefault();
215//                     $form.find('.tx-solr-suggest').focus();
216//                 }
217//             });
218//
219//             $form.find('.tx-solr-suggest').devbridgeAutocomplete({
220//                 serviceUrl: $form.data('suggest'),
221//                 dataType: 'jsonp',
222//                 ajaxSettings: {
223//                     jsonp: "tx_solr[callback]"
224//                 },
225//                 paramName: 'tx_solr[queryString]',
226//                 groupBy: 'category',
227//                 maxHeight: 1000,
228//                 appendTo: $formAutoComplete,
229//                 autoSelectFirst: false,
230//                 triggerSelectOnValidInput: false,
231//                 width: $searchBox.outerWidth() * 0.66,
232//                 onSelect: function (suggestion) {
233//
234//                     if (suggestion.data.link) {
235//
236//                         if (suggestion.data.link.indexOf('www.youtube.com') === 0) {
237//                             openVideoOverlay(suggestion.data.link);
238//                         } else {
239//                             location.href = suggestion.data.link;
240//                         }
241//
242//                     } else {
243//                         $form.trigger('submit');
244//                     }
245//                 },
246//                 transformResult: function (response) {
247//                     if (!response.suggestions) return {suggestions: []};
248//                     let firstSuggestion, result = {
249//                         suggestions: $.map(response.suggestions, function (count, suggestion) {
250//                             if (!firstSuggestion) firstSuggestion = suggestion;
251//                             return {value: suggestion, data: {category: 'suggestion', count: count}};
252//                         })
253//                     };
254//
255//                     $.each(response.documents, function (key, value) {
256//                         let dataObject = value;
257//
258//                         let defaultGroup = $form.data('suggest-header') ? $form.data('suggest-header') : 'Top results';
259//                         dataObject.category = defaultGroup;
260//
261//
262//                         if(dataObject.group) {
263//                             dataObject.category = $form.data('suggest-header-' + dataObject.group) ? $form.data('suggest-header-' + dataObject.group) : dataObject.group;
264//                         }
265//
266//                         result.suggestions.push(
267//                             {
268//                                 value: firstSuggestion,
269//                                 data: dataObject
270//                             }
271//                         );
272//                     });
273//
274//                     return result;
275//                 },
276//                 beforeRender: function (container) {
277//
278//                     container.find('.autocomplete-group:first').remove();
279//                     container.classList.add("tx-solr-autosuggest");
280//
281//
282//                     $searchBox.parent().classList.add("autocomplete-active").fadeIn();
283//                 },
284//                 formatResult: function (suggestion, currentValue) {
285//
286//                     if (!currentValue) {
287//                         return suggestion.value;
288//                     }
289//                     let pattern = '(' + $.Autocomplete.utils.escapeRegExChars(currentValue.trim()) + ')';
290//
291//                     if (suggestion.data.category === 'suggestion') {
292//                         return suggestion.value
293//                             .replace(new RegExp(pattern, 'gi'), '<strong>$1<\/strong>')
294//                             .replace(/&/g, '&')
295//                             .replace(/</g, '<')
296//                             .replace(/>/g, '>')
297//                             .replace(/"/g, '"')
298//                             .replace(/<(\/?strong)>/g, '<$1>');
299//
300//
301//                     } else {
302//                         let title = suggestion.data.title
303//                             .replace(new RegExp(pattern, 'gi'), '<em>$1<\/em>')
304//                             .replace(/&/g, '&')
305//                             .replace(/</g, '<')
306//                             .replace(/>/g, '>')
307//                             .replace(/"/g, '"')
308//                             .replace(/<(\/?em)>/g, '<$1>');
309//
310//                         return '<div class="' + suggestion.data.type + '">' +
311//                             (!!suggestion.data.previewImage ? '<figure ' + (!!suggestion.data.hasVideo ? 'class="hasVideo"' : '') + '>
311<img src="' + suggestion.data.previewImage + '" /></figure>' : '') +
312//                             '<a href="' + suggestion.data.link + '" class="internal-link">' + title + '</a>' +
313//                             '</div>';
314//                     }
315//
316//                 }
317//             }).addEventListener('blur', (e) => {
318//                 $searchBox.parent().classList.remove("autocomplete-active");
319//                 let $box = this;
320//                 setTimeout(function () {
321//                     $box.devbridgeAutocomplete('hide');
322//                 }, 200);
323//             });
324//         });
325//     };
326// }
327//
328// jQuery(document).ready(function() {
329//
330//     let solrSuggestController = new SuggestController();
331//     solrSuggestController.init();
332//
333//     jQuery("body").on("tx_solr_updated", function() {
334//         solrSuggestController.init();
335//     });
336// });

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.