Rev 331 | Rev 341 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
function capitaliserPremiereLettre(string) {return string.charAt(0).toUpperCase() + string.slice(1);}function obtenirNomEspeceSelectionnee() {return $('#selecteur_liste_especes option:selected').text();}function obtenirAnneeSelectionnee() {return $('#selecteur_annees option:selected').text();}function obtenirDonneesPhasesPhenologiques(id_espece, annee) {$.get(url_jrest+'OdsExport/ExportPhasesPhenologiquesJson?espece='+id_espece+'&annee='+annee, function(e) {dessinerGraphiquePhasesPhenologiques(e, annee);});}var legende_points = {};var legende_points_index = {};function dessinerGraphiquePhasesPhenologiques(data, annee) {var traces = new Array();for (var id_evenement in data) {if (!data.hasOwnProperty(id_evenement)) continue;var data_evenement = data[id_evenement];traces.push({x: data_evenement.x,type: 'box',name: capitaliserPremiereLettre(id_evenement),});legende_points[capitaliserPremiereLettre(id_evenement)] = data_evenement.text_index;legende_points_index[capitaliserPremiereLettre(id_evenement)] = Object.keys(data_evenement.text_index).map(function(x) {return parseFloat(x.replace("'", ''));});}var titre = 'Espèce '+obtenirNomEspeceSelectionnee();if(annee == "0") {titre += '<br /> Toutes les années';} else {titre += '<br /> Année '+obtenirAnneeSelectionnee();}var layout = {title: titre,xaxis: {title: '',autorange: true,autoticks: false,hoverformat: '.7f',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}};Plotly.newPlot('conteneur-graphique', traces, layout);var graphique = document.getElementById('conteneur-graphique');graphique.on('plotly_hover', function(data) {modifierAffichageToolTips(data);});}function modifierAffichageToolTips(data) {var axeY = data.points[0].y;$('text.nums, text.name').css('visibility', 'hidden');$('text.nums, text.name').css('width', 0);$('text.nums').each(function() {// certains label contiennent du texte qui ne doit pas être changé// par exemple si un point tombe pile sur un début de mois// le nom du mois doit rester affichéif(isNaN($(this).data('unformatted'))) {$(this).css('visibility', 'visible');$(this).css('width', '100%');return true;}var $label_axe_y = $(this).parent().find(":contains("+axeY+")");if($label_axe_y.length != 0) {$label_axe_y.css('z-index', -99999);$label_axe_y.hide();}var $text_hover_clone = creerCopieTooltip($(this), axeY);$(this).parent().append($text_hover_clone);});}function renvoyerDatePourIndexNumerique(index_valeur, index_evenement_legende) {// des fois le graphique fait des arrondis de valeurs dont on ne peut plus relier// la valeur du graphique a sa date, dans ce cas là on prend la plus proche du tableauvar index_valeur_formate = parseFloat(index_valeur).toFixed(7);var text_hover = legende_points[index_evenement_legende]["'"+index_valeur_formate+"'"];if(typeof text_hover == "undefined") {index_valeur_f = parseFloat(index_valeur);index_valeur = legende_points_index[index_evenement_legende].reduce(function(prev, curr) {return (Math.abs(curr - index_valeur_f) < Math.abs(prev - index_valeur_f) ? curr : prev);});text_hover = legende_points[index_evenement_legende]["'"+index_valeur+"'"];}return text_hover;}function creerCopieTooltip($original, index_evenement_legende) {var $clone = $original.clone(true);var text_hover = renvoyerDatePourIndexNumerique($original.data('unformatted'), index_evenement_legende)$clone.html(text_hover);$clone.data('unformatted', text_hover);$clone.attr('data-unformatted', text_hover);$clone.css('visibility', 'visible');$clone.css('width', '100%');$clone.css('font-size', '11px');return $clone;}$(document).ready(function() {$('#selecteur_liste_especes').change(function(e) {var conteneur_graphique = document.getElementById('conteneur-graphique');Plotly.purge(conteneur_graphique);obtenirDonneesPhasesPhenologiques($(this).val(), $('#selecteur_annees').val());});$('#selecteur_annees').change(function(e) {var conteneur_graphique = document.getElementById('conteneur-graphique');Plotly.purge(conteneur_graphique);if($('#selecteur_liste_especes').val() != "0") {obtenirDonneesPhasesPhenologiques($('#selecteur_liste_especes').val(), $(this).val());}});if(espece_defaut != null) {obtenirDonneesPhasesPhenologiques(espece_defaut, annee_defaut);}});