Rev 330 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
function tableauxOntAuMoinsUnElementEnCommun(haystack, arr) {return arr.some(function (v) {return haystack.indexOf(v) >= 0;});};function obtenirNomEspeceSelectionnee() {return $('#selecteur_liste_especes option:selected').text();}function obtenirNomStadeSelectionne() {return $('#selecteur_stade option:selected').text();}function surChangementSelecteurEspece(id_espece_selectionnee, evenements) {var $evenements_options = $('#selecteur_stade option');$('#selecteur_stade option').addClass('hide');if(id_espece_selectionnee == 0) {$('#selecteur_stade').addClass('hide');} else {$('#selecteur_stade').removeClass('hide');$evenements_options.each(function() {var $evenement_option = $(this);if($evenement_option.val() != 0) {var stades_option = $evenement_option.data('evenements');$evenement_option.toggleClass('hide', !tableauxOntAuMoinsUnElementEnCommun(evenements, stades_option));} else {$evenement_option.removeClass('hide');}});}// mise sur le selecteur par défaut$('#selecteur_stade').val("0");}function surChangementSelecteurStade(id_stade_selectionne) {obtenirDonneesStadePhenologiques($('#selecteur_liste_especes').val(), id_stade_selectionne)}function obtenirDonneesStadePhenologiques(id_espece, id_stades) {$.get(url_jrest+'OdsExport/ExportEvolutionPhenologiqueJson?espece='+id_espece+'&evenements='+id_stades, function(e) {dessinerGraphiqueEvolutionStadesPhenologiques(e, id_stades);});}function renvoyerNomsEvenementLegendeGraphique(id_stades) {var stades = id_stades.split(',');var stades_legende = {};if(stades.length == 2) {var stade_debut = global_evenements[stades[0]];var stade_fin = global_evenements[stades[1]];var legende_debut = 'début '+(stade_debut.nom)+' (stade '+(stade_debut.code)+')';var legende_fin = 'fin '+stade_fin.nom+' (stade '+stade_fin.code+')';stades_legende[stades[0]] = legende_debut;stades_legende[stades[1]] = legende_fin;} else {var stade_unique = global_evenements[stades[0]];stades_legende[stades[0]] = stade_unique.nom;}return stades_legende;}function dessinerGraphiqueEvolutionStadesPhenologiques(data, id_stades) {var noms_evenements = renvoyerNomsEvenementLegendeGraphique(id_stades);var nb_evenements = 0;var graph_data = new Array();for (var id_evenement in data) {if (!data.hasOwnProperty(id_evenement)) continue;var data_evenement = data[id_evenement];graph_data.push({type: "scatter",mode: 'lines+markers',name: noms_evenements[id_evenement],x: data_evenement.x,y: data_evenement.y,text: data_evenement.text,hoverinfo: 'text'});nb_evenements++;}var nom_espece_selectionnee = obtenirNomEspeceSelectionnee();var nom_stade_selectionne = obtenirNomStadeSelectionne().toLowerCase();var titre_graphique = 'Dates moyennes de ';if(nb_evenements > 1) {titre_graphique += 'début et fin de ';}titre_graphique += nom_stade_selectionne+' pour l\'espèce '+nom_espece_selectionnee;var layout = {title: titre_graphique,xaxis: {title: 'Années',showgrid: false,zeroline: false,tickvals: annees_observations,ticktext: annees_observations,autoticks: false,},yaxis: {title: '',autoticks: false,tickvals: [1,2,3,4,5,6,7,8,9,10,11,12],ticktext: ['janvier', 'fevrier', 'mars', 'avril', 'mai', 'juin', 'juillet', 'août', 'septembre', 'octobre', 'novembre', 'décembre'],},// pour la légende apparaisse en bas du graphique afin de ne pas gâcher// presque un tiers de l'espace de la pagelegend:{xanchor:"center",yanchor:"top",y:-0.3,x:0.5}};var conteneur_graphique = document.getElementById('conteneur-graphique');Plotly.purge(conteneur_graphique);var graphique = Plotly.plot(conteneur_graphique, graph_data, layout);}$(document).ready(function() {$('#selecteur_liste_especes').change(function(e) {var conteneur_graphique = document.getElementById('conteneur-graphique');Plotly.purge(conteneur_graphique);surChangementSelecteurEspece($(this).val(), $(this).find(":selected").data('id-evenements'));});$('#selecteur_stade').change(function(e) {var conteneur_graphique = document.getElementById('conteneur-graphique');Plotly.purge(conteneur_graphique);if($(this).val() == "0") {return;}surChangementSelecteurStade($(this).val());});if(espece_defaut != null && stades_defaut != 0) {obtenirDonneesStadePhenologiques(espece_defaut, stades_defaut);}});