PageSourceSearch

https://www.georisques.gouv.fr/themes/custom/georisques/assets/sou…/bases-de-donnees.js?tmm8z1

js georisques.gouv.fr collected 2026-10-09 16:46:56 UTC 27,121 bytes, 600 lines download raw bytes

1var infoTelechargement;
2/**
3 * Fichier contenant les traitements JavaScript des nodes "base_de_donnees".
4 *
5 */
6(function ($, window, undefined) {
7    wsUrl = function() {
8        var properties = {};
9
10        $.ajaxSetup({
11            async: false
12        });
13
14        $.getJSON("/themes/custom/georisques/assets/dist/js/georisques_commun/web-service-urls.json", function (data) {
15            properties = data;
16        });
17
18        $.ajaxSetup({
19            async: true
20        });
21
22        return properties.DOWNLOAD;
23    }
24
25    wsUrlTelechargement = function() {
26        var properties = {};
27
28        $.ajaxSetup({
29            async: false
30        });
31
32        $.getJSON("/themes/custom/georisques/assets/dist/js/georisques_commun/web-service-urls.json", function (data) {
33            properties = data;
34        });
35
36        $.ajaxSetup({
37            async: true
38        });
39
40        return properties.BASETELECHARGEMENT;
41    }
42
43    // fonction appelé en callback du ws telechargement
44    function callback(data) {
45        $("div.load-spinner").hide();
46        $("div.bdd-choix-echelle").show();
47        infoTelechargement = data;
48
49        // Supprime les elements liés à l'échelle nationale si pas d'info
50        if (infoTelechargement.national == null || infoTelechargement.national == undefined) {
51            $("div.bdd-echelle-nationale").remove();
52            $("#bdd-button-national").remove();
53        }
54
55        // Alimente select regional
56        if (infoTelechargement.regional != null && infoTelechargement.regional != undefined) {
57            var selectRegion = $("#bdd-select-region");
58            var keysRegion = Object.keys(infoTelechargement.regional);
59
60            keysRegion.sort().forEach(function (item) {
61                selectRegion.append('<option value="' + item + '">' + item + "</option>");
62            });
63        } else {
64            // Supprime les elements liés à l'échelle regionale si pas d'info
65            $("div.bdd-echelle-regionale").remove();
66            $("#bdd-button-regional").remove();
67        }
68
69        // Alimente select departemental
70        if (infoTelechargement.departemental != null && infoTelechargement.departemental != undefined) {
71            var selectDepartement = $("#bdd-select-departement");
72            var keysDepartement = Object.keys(infoTelechargement.departemental);
73            keysDepartement.sort().forEach(function (item) {
74                selectDepartement.append('<option value="' + item + '">' + item + "</option>");
75            });
76        } else {
77            // Supprime les elements liés à l'échelle departementale si pas d'info
78            $("div.bdd-echelle-departementale").remove();
79            $("#bdd-button-departemental").remove();
80        }
81        // Alimente select annuel
82        if (infoTelechargement.annuel != null && infoTelechargement.annuel != undefined) {
83            var selectAnnuel = $("#bdd-select-annuel");
84            var keysAnnuel = Object.keys(infoTelechargement.annuel);
85            keysAnnuel.sort().forEach(function (item) {
86                selectAnnuel.append('<option value="' + item + '">' + item + (infoTelechargement.annuel[item]  != null && infoTelechargement.annuel[item] != undefined ? '' : ' - Données non disponibles') + "</option>");
87            });
88        } else {
89            // Supprime les elements liés aux années si pas d'info
90            $("div.bdd-annuelle").remove();
91            $("#bdd-button-annuel").remove();
92        }
93
94        if ($('.bdd-choix-echelle button').length == 1) {
95            $("div.bdd-choix-echelle").remove();
96            $("#back-button-telechargement").remove();
97            $('.bdd-echelle-nationale, .bdd-echelle-regionale, .bdd-echelle-departementale, .bdd-annuelle').show();
98            // $("div.bdd-telecharger-button a").addClass("btn-pink");
99            $("div.bdd-telecharger-button").show();
100            $("#bdd-echelle-regionale-select-format").hide()
101            $("#bdd-echelle-nationale-select-format").hide()
102            $("#bdd-echelle-departementale-select-format").hide()
103
104            if (infoTelechargement.national != null && infoTelechargement.national != undefined) {
105                $("#formatFichier").html(infoTelechargement.national.formatFichier);
106                $("#tailleFichier").html(getTailleFichier(infoTelechargement.national.tailleFichier));
107                $("div.bdd-telecharger-button>div:nth-child(2)").show();
108                $("div.bdd-telecharger-button a").attr("disabled", false);
109                $("div.bdd-telecharger-button a").removeClass("disabled");
110                $("div.bdd-telecharger-button button").attr("disabled", false);
111                $("div.bdd-telecharger-button a").attr("href", infoTelechargement.national.lien);
112            } else {
113                $("div.bdd-telecharger-button>div:nth-child(2)").hide();
114                $("div.bdd-telecharger-button a").attr("disabled", true);
115                $("div.bdd-telecharger-button a").addClass("disabled");
116                $("div.bdd-telecharger-button button").attr("disabled", true);
117                $("div.bdd-telecharger-button a").removeClass("btn-pink");
118            }
119        }
120    }
121
122
123    function loadWSTelechargement() {
124        let base_key = $('.js-base-key').data('jsBaseKey');
125        var url = wsUrl() + '/' + base_key + "?anneemin=2003";
126        $.ajaxSetup({async:false});
127
128        $.getJSON(url, function (data) {
129            if (data) {
130                callback(data);
131            }
132        }).fail(function () {
133            $("div.load-spinner").hide();
134            $("div.bdd-erreur").show();
135            $("div.bdd-echelle-nationale").remove();
136            $("#bdd-button-national").remove();
137            $("div.bdd-annuelle").remove();
138            $("#bdd-button-annuel").remove();
139            $("div.bdd-echelle-departementale").remove();
140            $("#bdd-button-departemental").remove();
141            $("div.bdd-echelle-regionale").remove();
142            $("#bdd-button-regional").remove();
143            $(".bdd-choix-echelle").remove();
144        });
145    }
146
147
148    function getTailleFichier(taille) {
149        var number = parseInt(taille);
150
151        if (number != NaN) {
152            return Math.round(number / 1000000 * 100) / 100 > 1
153            ? String(Math.round(number / 1000000 * 100) / 100) + " mo"
154            : String(Math.round(number / 1000 * 100) / 100) + " ko";
155        } else {
156            return taille;
157        }
158    }
159
160
161    function alimenteSelect(key, info, afficherMessageVide) {
162        if (info != null && key != "" && info != "undefined" && key != "default") {
163            $("#formatFichier").html(info.formatFichier);
164            $("#tailleFichier").html(getTailleFichier(info.tailleFichier));
165            $("div.bdd-telecharger-button>div:nth-child(2)").show();
166            $("div.bdd-vide").hide();
167            $("div.bdd-telecharger-button a").attr("disabled", false);
168            $("div.bdd-telecharger-button a").removeClass("disabled");
169            $("div.bdd-telecharger-button button").attr("disabled", false);
170            // $("div.bdd-telecharger-button a").addClass("btn-pink");
171            $("div.bdd-telecharger-button a").attr("href", info.lien);
172        } else {
173            if (key != "default" && afficherMessageVide)
174            $("div.bdd-vide").show();
175            $("div.bdd-telecharger-button>div:nth-child(2)").hide();
176            $("div.bdd-telecharger-button a").attr("disabled", true);
177            $("div.bdd-telecharger-button a").addClass("disabled");
178            $("div.bdd-telecharger-button button").attr("disabled", true);
179            $("div.bdd-telecharger-button a").removeClass("btn-pink");
180        }
181
182        if (key == "" && typeof info == "undefined" && afficherMessageVide) {
183            $("div.bdd-vide").hide();
184        }
185    }
186
187
188    function insertBackBtn() {
189        $('h1.h1_article').addClass('col-lg-8');
190        $('.back_button').insertBefore($('h1.h1_article'));
191        $('.back_button').show();
192    }
193
194
195    $(function () {
196        if($('#api_donnees_header_node').length){
197            loadWSTelechargement();
198            insertBackBtn();
199        }
200        let base_key = $('.js-base-key').data('jsBaseKey');
201
202        $('#bdd-button-national').on('click', function() {
203            $("div.bdd-choix-echelle").hide();
204            $("#bdd-echelle-nationale-select-format").hide()
205            $("div.bdd-echelle-nationale").show();
206            $("div.bdd-telecharger-button").show();
207            $("#back-button-telechargement").show();
208            afficherRechercheEchelleNationale(base_key);
209        });
210
211        $('#back-button-telechargement').on('click', function() {
212            $("#back-button-telechargement").hide();
213            $("div.bdd-choix-echelle").show();
214            $("div.bdd-echelle-nationale").hide();
215            $("div.bdd-echelle-regionale").hide();
216            $("div.bdd-echelle-departementale").hide();
217            $("div.bdd-annuelle").hide();
218            $("div.bdd-telecharger-button").hide();
219            $("div.bdd-vide").hide();
220            $("#formatFichier").html("");
221            $("#tailleFichier").html("");
222            $("div.bdd-telecharger-button>div:nth-child(2)").hide();
223            $("div.bdd-telecharger-button a").attr("disabled", true);
224            $("div.bdd-telecharger-button a").addClass("disabled");
225            $("div.bdd-telecharger-button button").attr("disabled", true);
226            $("div.bdd-telecharger-button a").removeClass("btn-pink");
227            $("div.bdd-telecharger-button a").attr("href", "");
228        });
229
230        $('#bdd-button-regional').on('click', function() {
231            $("div.bdd-choix-echelle").hide();
232            $("#bdd-echelle-regionale-select-format").hide()
233            $("div.bdd-echelle-regionale").show();
234            $("div.bdd-telecharger-button").show();
235            $("#back-button-telechargement").show();
236            $("div.bdd-telecharger-button>div:nth-child(2)").hide();
237            $("div.bdd-telecharger-button a").attr("disabled", true);
238            $("div.bdd-telecharger-button a").addClass("disabled");
239            $("div.bdd-telecharger-button button").attr("disabled", true);
240            $("div.bdd-telecharger-button a").removeClass("btn-pink");
241
242            var keys = Object.keys(infoTelechargement.regional);
243        })
244
245        $('#bdd-button-departemental').on('click', function() {
246            $("div.bdd-choix-echelle").hide();
247            $("#bdd-echelle-departementale-select-format").hide()
248            $("div.bdd-echelle-departementale").show();
249            $("div.bdd-telecharger-button").show();
250            $("#back-button-telechargement").show();
251            $("div.bdd-telecharger-button>div:nth-child(2)").hide();
252            $("div.bdd-telecharger-button a").attr("disabled", true);
253            $("div.bdd-telecharger-button a").addClass("disabled");
254            $("div.bdd-telecharger-button button").attr("disabled", true);
255            $("div.bdd-telecharger-button a").removeClass("btn-pink");
256
257            var keys = Object.keys(infoTelechargement.departemental);
258        })
259
260        $('#bdd-button-annuel').on('click', function() {
261            $("div.bdd-choix-echelle").hide();
262            $("div.bdd-annuelle").show();
263            $("div.bdd-telecharger-button").show();
264            $("#back-button-telechargement").show();
265            $("div.bdd-telecharger-button>div:nth-child(2)").hide();
266            $("div.bdd-telecharger-button a").attr("disabled", true);
267            $("div.bdd-telecharger-button a").addClass("disabled");
268            $("div.bdd-telecharger-button button").attr("disabled", true);
269            // $("div.bdd-telecharger-button a").removeClass("btn-pink");
270
271            var keys = Object.keys(infoTelechargement.annuel);
272        });
273
274        $('#bdd-select-region').on('change', function() {
275            var info = infoTelechargement.regional[this.value];
276            rechercherEchelleRegionale(this.value, base_key);
277        })
278
279        $('#bdd-select-departement').on('change', function() {
280            var info = infoTelechargement.departemental[this.value];
281            rechercherEchelleDepartementale(this.value, base_key);
282        })
283
284        $('#bdd-select-annuel').on('change', function() {
285            var info = infoTelechargement.annuel[this.value];
286            alimenteSelect(this.value, info, false);
287        })
288
289        // Design des selects de la section "télécharger les données"
290
291        $('#bdd-select-departement').select2({
292            placeholder: 'Sélectionner un département',
293            allowClear: true,
294            closeOnSelect: true,
295            language: {
296                noResults: function () {
297                    return 'Aucun résultat';
298                }
299            }
300        });
301
302        $('#bdd-select-region').select2({
303            placeholder: 'Sélectionner une région',
304            allowClear: true,
305            closeOnSelect: true,
306            language: {
307                noResults: function () {
308                    return 'Aucun résultat';
309                }
310            }
311        });
312
313        $('#bdd-select-annuel').select2({
314            placeholder: 'Sélectionner une année',
315            allowClear: true,
316            closeOnSelect: true,
317            language: {
318                noResults: function () {
319                    return 'Aucun résultat';
320                }
321            }
322        });
323
324        if (base_key == 'alearg') {
325            if (document.referrer.includes(window.location.host)) {
326                $('#back-btn-argiles').attr('href', document.referrer);
327            }
328        }
329
330        function afficherRechercheEchelleNationale(base_key) {
331            var selectedFormat = null;
332            var selectFormats = $("#bdd-echelle-nationale-select-format > select");
333
334            _disableSelectList(selectFormats);
335            _hideNoResultsMessage();
336            _disableDowloadButton();
337            _hideDownloadButton();
338            $("#bdd-echelle-nationale-select-format").hide();
339
340            var url = wsUrlTelechargement() + "/formats/" + base_key + "?echelle=nationale";
341            $.ajax({
342                url: url,
343                async: false,
344                success: function (data) {
345                    var listeFormatsDisponibles = data['formats'];
346                    if (listeFormatsDisponibles.length === 0) {
347                        _showNoResultsMessage();
348                    }
349                    else if (listeFormatsDisponibles.length === 1) {
350                        selectedFormat = listeFormatsDisponibles[0];
351
352                        $("#bdd-echelle-nationale-select-format option:not(:first-child)").remove();
353                        selectFormats.append("<option value=" + selectedFormat + ">" + selectedFormat.toUpperCase() + "</option>");
354                        _disableSelectList(selectFormats, 1);
355
356                        var url = wsUrlTelechargement()  + "/formats/" + selectedFormat + "/" + base_key + "?echelle=nationale";
357                        $.ajax({
358                            url: url,
359                            async: false,
360                            success: function (data) {
361                                var formatFichier = data[0]['formatFichier'];
362                                var tailleFichier = data[0]['tailleFichier'];
363                                var lienFichier = data[0]['lienFichier'];
364
365                                _enableDownloadButton(formatFichier, tailleFichier, lienFichier);
366                            },
367                            error: function () { }
368                        });
369                    }
370                    else {
371                        $("#bdd-echelle-nationale-select-format option:not(:first-child)").remove();
372                        listeFormatsDisponibles.forEach(function (item) { selectFormats.append("<option value=" + item + ">" + item.toUpperCase() + "</option>"); });
373                        _enableSelectList(selectFormats);
374                        $("#bdd-echelle-nationale-select-format").show();
375                        selectFormats.on('change', function (event) {
376                            var format = event.target.value;
377
378                            _disableDowloadButton();
379                            _hideDownloadButton();
380
381                            if (listeFormatsDisponibles.indexOf(format) >= 0) {
382                                var url = wsUrlTelechargement() + "/formats/" + format + "/" + base_key + "?echelle=nationale";
383                                $.ajax({
384                                    url: url,
385                                    async: false,
386                                    success: function (data) {
387                                        var formatFichier = data[0]['formatFichier'];
388                                        var tailleFichier = data[0]['tailleFichier'];
389                                        var lienFichier = data[0]['lienFichier'];
390
391                                        _enableDownloadButton(formatFichier, tailleFichier, lienFichier);
392                                    },
393                                    error: function () { }
394                                });
395                            }
396                        });
397                    }
398                },
399                error: function () { }
400            });
401        }
402
403        function rechercherEchelleRegionale(region, base_key) {
404
405            var selectedFormat = null;
406            var selectFormats = $("#bdd-echelle-regionale-select-format>select");
407            _disableSelectList(selectFormats);
408            _hideNoResultsMessage();
409            $("#bdd-echelle-regionale-select-format").hide();
410            _disableDowloadButton();
411            var selectedRegion = region.slice(0,2);
412
413            var url = wsUrlTelechargement() + "/formats/" + base_key + "?echelle=regionale&codeRegion=" + selectedRegion;
414            $.ajax({
415                url: url,
416                async: false,
417                success: function (data) {
418                    var listeFormatsDisponibles = data['formats'];
419                    if (listeFormatsDisponibles.length === 0) {
420                        _showNoResultsMessage();
421                    }
422                    else if (listeFormatsDisponibles.length === 1) {
423                        selectedFormat = listeFormatsDisponibles[0];
424
425                         $("#bdd-echelle-regionale-select-format option:not(:first-child)").remove();
426                        selectFormats.append("<option value=" + selectedFormat + ">" + selectedFormat.toUpperCase() + "</option>");
427                        _disableSelectList(selectFormats, 1);
428
429                        var url = wsUrlTelechargement()  + "/formats/" + selectedFormat + "/" + base_key + "?echelle=regionale&codeRegion=" + selectedRegion;
430                         $.ajax({
431                            url: url,
432                            async: false,
433                            success: function (data) {
434                                var formatFichier = data[0]['formatFichier'];
435                                var tailleFichier = data[0]['tailleFichier'];
436                                var lienFichier = data[0]['lienFichier'];
437
438                                _enableDownloadButton(formatFichier, tailleFichier, lienFichier);
439                            },
440                            error: function () { }
441                        });
442                    }
443                    else {
444                        $("#bdd-echelle-regionale-select-format option:not(:first-child)").remove();
445                        listeFormatsDisponibles.forEach(function (elm) { selectFormats.append("<option value=" + elm + ">" + elm.toUpperCase() + "</option>"); });
446                        _enableSelectList(selectFormats);
447                        $("#bdd-echelle-regionale-select-format").show();
448                        selectFormats.on('change', function (event) {
449                            selectedFormat = event.target.value;
450
451                            _disableDowloadButton();
452                            _hideDownloadButton();
453
454                            if (listeFormatsDisponibles.indexOf(selectedFormat) >= 0) {
455                                var url = wsUrlTelechargement()  + "/formats/" + selectedFormat + "/" + base_key + "?echelle=regionale&codeRegion=" + selectedRegion;
456                                $.ajax({
457                                    url: url,
458                                    async: false,
459                                    success: function (data) {
460                                        var formatFichier = data[0]['formatFichier'];
461                                        var tailleFichier = data[0]['tailleFichier'];
462                                        var lienFichier = data[0]['lienFichier'];
463                                        _enableDownloadButton(formatFichier, tailleFichier, lienFichier);
464                                    },
465                                    error: function () { }
466                                });
467                            }
468                        });
469                    }
470                },
471                error: function () { }
472            });
473        }
474
475        function rechercherEchelleDepartementale(departement, base_key) {
476
477            var selectedFormat = null;
478            var selectFormats = $("#bdd-echelle-departementale-select-format > select")
479
480            $("#bdd-echelle-departementale-select-format").hide();
481            _disableSelectList(selectFormats, 1);
482            _disableDowloadButton();
483            _hideNoResultsMessage();
484            departement_string = departement.split(' - ');
485            var selectedDept = departement_string[0];
486
487            var url = wsUrlTelechargement() + "/formats/" + base_key + "?echelle=departementale&codeDepartement=" + selectedDept;
488
489            $.ajax({
490                url: url,
491                async: false,
492                success: function (data) {
493                    var listeFormatsDisponibles = data['formats'];
494                    if (listeFormatsDisponibles.length === 0) {
495                        _showNoResultsMessage();
496                    }
497                    else if (listeFormatsDisponibles.length === 1) {
498                        selectedFormat = listeFormatsDisponibles[0];
499
500                        $("#bdd-echelle-departementale-select-format option:not(:first-child)").remove();
501                        selectFormats.append("<option value=" + selectedFormat + ">" + selectedFormat.toUpperCase() + "</option>");
502                        _disableSelectList(selectFormats, 1);
503
504                        var url = wsUrlTelechargement()  + "/formats/" + selectedFormat + "/" + base_key + "?echelle=departementale&codeDepartement=" + selectedDept;
505                        $.ajax({
506                            url: url,
507                            async: false,
508                            success: function (data) {
509                                var formatFichier = data[0]['formatFichier'];
510                                var tailleFichier = data[0]['tailleFichier'];
511                                var lienFichier = data[0]['lienFichier'];
512
513                                _enableDownloadButton(formatFichier, tailleFichier, lienFichier);
514                            },
515                            error: function () { }
516                        });
517                    }
518                    else {
519                        $("#bdd-echelle-departementale-select-format option:not(:first-child)").remove();
520                        listeFormatsDisponibles.forEach(function (elm) { selectFormats.append("<option value=" + elm + ">" + elm.toUpperCase() + "</option>"); });
521                        _enableSelectList(selectFormats);
522                        $("#bdd-echelle-departementale-select-format").show();
523                        selectFormats.on('change', function (event) {
524                            selectedFormat = event.target.value;
525                            _disableDowloadButton();
526                            _hideDownloadButton();
527
528                            if (listeFormatsDisponibles.indexOf(selectedFormat) >= 0) {
529                                var url = wsUrlTelechargement()  + "/formats/" + selectedFormat + "/" + base_key + "?echelle=departementale&codeDepartement=" + selectedDept;
530                                $.ajax({
531                                    url: url,
532                                    async: false,
533                                    success: function (data) {
534                                        var formatFichier = data[0]['formatFichier'];
535                                        var tailleFichier = data[0]['tailleFichier'];
536                                        var lienFichier = data[0]['lienFichier'];
537
538                                        _enableDownloadButton(formatFichier, tailleFichier, lienFichier);
539                                    },
540                                     error: function () { }
541                                });
542                            }
543                        });
544                    }
545                },
546                error: function () { }
547            });
548        }
549
550        function _enableSelectList(elm) {
551            elm.prop("selectedIndex", 0);
552            elm.attr("disabled", false);
553            elm.removeClass("disabled");
554            elm.select2({
555                allowClear: true,
556                closeOnSelect: true
557            });
558        }
559
560        function _disableSelectList(elm, index) {
561            elm.prop("selectedIndex", index ? index : 0);
562            elm.attr("disabled", true);
563            elm.addClass("disabled");
564        }
565
566        function _hideDownloadButton() {
567            $(".bdd-telecharger-button").hide();
568        }
569
570        function _enableDownloadButton(formatFichier, tailleFichier, lienFichier) {
571            $(".bdd-telecharger-button").show();
572            $("div.bdd-telecharger-button>div:nth-child(2)").show();
573            $("div.bdd-vide").hide();
574            $("div.bdd-telecharger-button a").attr("disabled", false);
575            $("div.bdd-telecharger-button a").removeClass("disabled");
576            $("div.bdd-telecharger-button button").attr("disabled", false);
577            // $("div.bdd-telecharger-button a").addClass("btn-pink");
578
579            $("#formatFichier").html(formatFichier);
580            $("#tailleFichier").html(getTailleFichier(tailleFichier));
581            $("div.bdd-telecharger-button a").attr("href", lienFichier);
582        }
583
584        function _disableDowloadButton() {
585            $("div.bdd-telecharger-button>div:nth-child(2)").hide();
586            $("div.bdd-telecharger-button a").attr("disabled", true);
587            $("div.bdd-telecharger-button a").addClass("disabled");
588            $("div.bdd-telecharger-button button").attr("disabled", true);
589            $("div.bdd-telecharger-button a").removeClass("btn-pink");
590        }
591
592        function _showNoResultsMessage() {
593            $(".bdd-vide").show();
594        }
595
596        function _hideNoResultsMessage() {
597            $(".bdd-vide").hide();
598        }
599    });
600})(jQuery, this);

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.