47,9 → 47,7 |
var lienTitre = $(module).children('.titre').children('a'); |
lienTitre.attr('href','#'+this.id); |
lienTitre.click(function() { |
if (objet.onglet.is(':visible')) { |
$('#zone_onglets').tabs('select', '#ui-tabs-'+objet.id); |
} |
$('#zone_onglets').tabs( "option", "active", (objet.id -1)); |
return false; |
}); |
lienTitre.hover(function() { |
111,26 → 109,6 |
} |
} |
|
function selectionnerOngletSynthese() { |
// Suppression des classes css qui mettent en surbrillance l'onglet actif |
$('#zone_onglets > ul > li').removeClass('ui-tabs-selected'); |
$('#zone_onglets > ul > li').removeClass('ui-state-active'); |
|
// application de ces même classes css à l'onglet "acceuil" qui est un onglet "articifiel" |
$('#onglet_synthese').addClass('ui-tabs-selected'); |
$('#onglet_synthese').addClass('ui-state-active'); |
|
$('a.lien_retour_synthese').hide(); |
} |
|
|
function deselectionnerOngletSynthese() { |
// Suppression des classes css qui mettent en surbrillance l'onglet actif sur l'onglet acceuil |
$('#onglet_synthese').removeClass('ui-tabs-selected'); |
$('#onglet_synthese').removeClass('ui-state-active'); |
$('a.lien_retour_synthese').show(); |
} |
|
function getUrlVars() { |
var vars = [], hash; |
var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&'); |
142,32 → 120,6 |
return vars; |
} |
|
function selectionnerOngletParDefautOuEnregistre() { |
// Si un onglet est précisé dans l'url |
// Récupération de l'adresse de l'onglet sélectionné |
var urlVars = getUrlVars(); |
if (urlVars['onglet'] == undefined) { |
// Si pas d'onglet enregistré, selection du premier par défaut |
// Si c'est l'onglet fiche, on le sélectionne artificiellement |
selectionnerOngletSynthese(); |
$('.ui-tabs-panel').hide(); |
$('#synthese').show(); |
} else { |
ongletSyntheseCharge = false; |
} |
var cookieOnglet = obtenirOngletCookiePourPage(); |
|
// On réouvre le dernier onglet consulté, à voir si on garde ça en prod, en tout cas c'est |
// pratique pendant le développement |
if (cookieOnglet && cookieOnglet != 'ui-tabs-1') { |
$('#zone_onglets').tabs("select", '#'+cookieOnglet); |
} else { |
selectionnerOngletSynthese(); |
$('.ui-tabs-panel').hide(); |
$('#synthese').show(); |
} |
} |
|
function afficherOngletsPourNiveau() { |
/* affiche les onglets par default selon niveau*/ |
for (indice in tableauOnglets) { |
191,45 → 143,6 |
} |
} |
|
function surSelectionOnglet(event,ui) { |
// Récupération de l'adresse de l'onglet sélectionné |
var url = ui.tab.href; |
// le fragment suivant le # dans l'url contient l'id de l'onglet |
var fragmentsAncre = url.split('#'); |
fancyboxinitialise = false; |
|
if (fragmentsAncre.length > 0) { |
var ancre = fragmentsAncre[fragmentsAncre.length - 1]; |
// Si c'est un onglet correspondant à un projet, on cache la synthèse et le plugin |
// chargera son contenu dans l'espace approprié |
if (ancre != 'ui-tabs-1') { |
var panel = $(ui.panel); |
if (panel.is(":empty")) { |
panel.append("<div class='tab-chargement'>Chargement des informations...</div>") |
} |
|
deselectionnerOngletSynthese(); |
$('.ui-tabs-panel').show(); |
$('#zone_contenu_fiche').hide(); |
|
enregistrerOngletCookiePourPage(ancre); |
} else { |
if (ongletSyntheseCharge) { |
// Si c'est l'onglet fiche, on le sélectionne artificiellement |
selectionnerOngletSynthese(); |
$('.ui-tabs-panel').hide(); |
$('#zone_contenu_fiche').show(); |
|
enregistrerOngletCookiePourPage(ancre); |
return false; |
} else { |
window.location = url; |
} |
} |
} |
return true; |
} |
|
function obtenirOngletCookiePourPage() { |
var urlVars = getUrlVars(); |
var id_cookie = 'onglet_eflore'; |
261,6 → 174,11 |
|
tableauOnglets[identifiantOnglet] = module; |
}); |
} |
|
// remplace des liens directs vers les onglets par des liens permettant de ne charger |
// que le contenu de l'onglet (pour le plugin tab) |
function remplacerUrlsOnglets() { |
$(".lien-onglet").each(function() { |
var urlOnglet = $(this).attr('href'); |
var urlVars = urlOnglet.slice(urlOnglet.indexOf('?') + 1); |
270,6 → 188,74 |
}); |
} |
|
ongletsInitialises = false; |
numOngletEnCours = null; |
nePasEmpilerUrl = false; |
function initialiserOnglets() { |
// replacement du chargement de toute la page par un lien vers uniquement le contenu de l'onglet |
// pour le module tab qui charge les url désignée dans les liens des tabs |
remplacerUrlsOnglets(); |
|
// analyse de l'onglet désigné comme selectionné par défaut |
// (on peut accéder directement à un onglet précis à travers un param url) |
var tabSelectionneDefaut = $('#onglets li.ui-state-active'); |
var indexTabSelectionneDefaut = $("#onglets li").index($(tabSelectionneDefaut)); |
|
$('#zone_onglets').tabs({ |
create: function( event, ui ) { |
// par défaut, le contenu déjà chargé est dans une autre zone |
// on le déplace donc comme s'il avait été chargé par le plugin tab |
var contenuZoneFiche = $("#zone_contenu_fiche > div").detach(); |
contenuZoneFiche.appendTo('#ui-tabs-'+(indexTabSelectionneDefaut+1)); |
$("#zone_contenu_fiche").hide(); |
$('#ui-tabs-'+(indexTabSelectionneDefaut+1)).show(); |
}, |
active: indexTabSelectionneDefaut , |
beforeLoad: function( event, ui ) { |
// il est inutile de recharger un onglet déjà chargé (les onglets déjà chargé sont l'onglet par défaut |
// et (lors du chargement de la fiche), l'onglet déjà chargé par php |
// +1 car les tabs sont zéros indexées |
var idPanelCharge = ui.tab.index()+1; |
var panelCharge = $('#ui-tabs-'+idPanelCharge); |
|
numOngletEnCours = idPanelCharge; |
|
if(!panelCharge.is(':empty') || indexTabSelectionneDefaut+1 == idPanelCharge) { |
// si le panneau est déjà chargé on peut mettre à jour l'url immédiatement |
var ongletNomCode = panelCharge.children(".onglet_contenu").attr("id"); |
if(!nePasEmpilerUrl) { |
mettreAJourUrl(permalienNumNom+"-"+ongletNomCode, ongletNomCode); |
nePasEmpilerUrl = false; |
} |
panelCharge.show(); |
return false; |
} else { |
// si l'onglet n'est pas chargé alors on affiche le message de chargement |
// pendant que le plugin s'occupe du reste |
fancyboxinitialise = false; |
var panel = $('#ui-tabs-'+idPanelCharge); |
panel.append("<div class='tab-chargement'>Chargement des informations...</div>"); |
return true; |
} |
}, |
load: function(event, ui) { |
// sur les panneaux qui ne sont pas encore chargés, on doit attendre la fin |
// du chargement pour mettre à jour l'url (à cause de la récupération de l'id sur les enfants) |
var ongletNomCode = ui.panel.children(".onglet_contenu").attr("id"); |
mettreAJourUrl(permalienNumNom+"-"+ongletNomCode, ongletNomCode); |
} |
}); |
|
$(window).bind('popstate', function(event) { |
if(!!event.originalEvent.state) { |
nePasEmpilerUrl = true; |
$("#onglets > li > a[rel='"+event.originalEvent.state+"']").click(); |
} else { |
window.location = window.location.href; |
} |
}); |
} |
|
//+----------------------------------------------------------------------------------------------------------+ |
// Wikini Flora |
var htmlWikiOriginal = ''; |
448,21 → 434,10 |
var param_popup_Cel = {h: 750, w: 630, t: 100, l: 100, |
toolbar: 'no', menubar: 'no', location: 'no', resizable: 'yes', scrollbars: 'yes', status: 'no'}; |
|
//Initialisation |
$(document).ready(function() { |
lierModulesEtOnglets(); |
|
/* mouvement des blocs */ |
$(".colonne").sortable({ |
connectWith: ".colonne", |
handle: $(".module").children('h3') // mouvement seulement sur les titres |
}); |
|
$('#zone_onglets').tabs({ |
select: function(event, ui) { |
return surSelectionOnglet(event,ui) |
} |
}); |
//Initialisation (uniquement sur la présence de la div bloc-fiche, qui contient la fiche eflore) |
$("#bloc-fiche").ready(function() { |
initialiserOnglets(); |
|
// TODO : devrait être .on() à la place de live() |
$('.lien_popup').live('click',function(event) { |
event.preventDefault(); |
479,29 → 454,14 |
autoDimensions:true |
}); |
}); |
|
$('.lien_ouverture_onglet_parent').click(function(event) { |
event.preventDefault(); |
$(this).parents(".module").find("a.titreOnglet").click(); |
}); |
|
|
$('.lien-image-cel').live('click', param_popup_Cel , ouvrirPopUpImg); |
$('.lien-image-coste').live('click', param_popup_Coste , ouvrirPopUpImg); |
|
afficherOngletsPourNiveau(); |
selectionnerOngletParDefautOuEnregistre(); |
|
$('.ui-icon-close').click(function() { |
estOngletActif = $(this).parent().hasClass('ui-state-active'); |
if (estOngletActif) { |
//L'onglet que l'on veut fermer est celui qui est ouvert, on va donc le masquer et afficher celui d'accueil |
$("#zone_onglets").tabs('select', 0); |
} |
}); |
|
gererEvenementsWiki(); |
gererEvenementsPliage(); |
gererClicIllustrationsFiche(); |
|
$('a.lien_retour_synthese').click(function(event) { |
$('#onglet_synthese a').click(); |
512,18 → 472,39 |
redimensionnerOnglets(); |
}); |
redimensionnerOnglets(); |
|
if($("#bloc-fiche").length > 0) { |
// initialisation de l'url avec l'onglet par défaut ou bien |
// celui qui a été explicitement demandé |
mettreAJourUrl(permalienNumNom+"-"+onglet, onglet); |
} |
}); |
|
$(document).one('ongletSyntheseCharge', function() { |
lierModulesEtOnglets(); |
|
/* mouvement des blocs */ |
$(".colonne").sortable({ |
connectWith: ".colonne", |
handle: $(".module").children('h3') // mouvement seulement sur les titres |
}); |
|
$('.lien_ouverture_onglet_parent').live('click', function(event) { |
event.preventDefault(); |
$(this).parents(".module").find("a.titreOnglet").click(); |
}); |
|
gererClicIllustrationsFiche(); |
gererEvenementsPliage(); |
}); |
|
// À la fin du chargement de l'onglet Illustrations |
$(document).on('ongletIllustrationsCharge', function() { |
if (ongletIllustrationsCharge == false) { |
ongletIllustrationsCharge = true; |
$('a.lien-images-organes.fourni').live('click', afficherOngletOrgane); |
$('a.lien-grande-image-organe').live('click', afficherGrandeImageOrgane); |
// pour que la galerie soit ouverte par défaut sur le premier organe non vide |
var premier = $('a.lien-images-organes.fourni').first().data('tag'); |
afficherOngletOrgane(null, premier); |
} |
$(document).one('ongletIllustrationsCharge', function() { |
$('a.lien-images-organes.fourni').live('click', afficherOngletOrgane); |
$('a.lien-grande-image-organe').live('click', afficherGrandeImageOrgane); |
// pour que la galerie soit ouverte par défaut sur le premier organe non vide |
var premier = $('a.lien-images-organes.fourni').first().data('tag'); |
afficherOngletOrgane(null, premier); |
}); |
|
// Affiche les n images ayant le plus de votes, pour l'organe $tag |
649,6 → 630,17 |
tmp.close(); |
} |
|
function mettreAJourUrl(nouvelleUrl, etat) { |
// javascript double negative trick |
// pour plus d'info http://stackoverflow.com/questions/4686583/can-someone-explain-this-double-negative-trick |
if (!!(window.history && window.history.pushState)) { |
var currentState = window.history.state; |
if (currentState != nouvelleUrl && !!etat) { |
window.history.pushState(etat, "", nouvelleUrl); |
} |
} |
} |
|
$(document).ajaxStop(function() { |
gererChargementGraphiqueEcologie(); |
gererAffichageLegendeEcologie(); |