New file |
0,0 → 1,137 |
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 = 'Évolution des 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'], |
} |
}; |
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()); |
}); |
}); |