Subversion Repositories eFlore/Applications.eflore-consultation

Compare Revisions

Ignore whitespace Rev 1242 → Rev 1243

/trunk/presentations/styles/eflore.css
594,16 → 594,18
background: none repeat scroll 0 0 transparent;
padding: 0 9px 0 9px;
}
#zone_contenu_fiche {
background-color: #EEE;
 
.synthese {
background-color: #EEEEEE;
border: medium none;
clear: left;
margin-left: -17px;
margin-top: -12px;
min-height: 300px;
padding-top: 0.4em;
width: 676px;
border:none;
margin-left:-7px;
width: 676px;
}
 
.ui-widget-content {
background:white;
}
719,7 → 721,7
padding:0;
position: relative;
}
.ui-tabs .ui-tabs-nav li a {
.ui-tabs .ui-tabs-nav li a.ui-tabs-anchor {
float: left;
padding: 4px 4px 3px 3px;
text-decoration: none;
731,6 → 733,7
.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited {
color: #EB8F00;
text-decoration: none;
margin-bottom: 1px;
}
#onglets {
height:22px
/trunk/presentations/scripts/fiche-synthese.js
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();