Subversion Repositories eFlore/Applications.cel

Compare Revisions

Ignore whitespace Rev 914 → Rev 915

/trunk/widget/modules/carto/Carto.php
200,166 → 200,6
}
/**
* Tableau des observations d'une station
*/
public function executerStation() {
$widget = null;
$observations = $this->chargerObservations();
$nbre_obs = $this->chargerObservationsNbre();
// Création des infos du widget
if (isset($observations['commune'])) {
$commune = $observations['commune'];
unset($observations['commune']);
$widget['donnees']['commune'] = $commune;
}
$obs_ids = null;
if (isset($observations['ids'])) {
$obs_ids = $observations['ids'];
unset($observations['ids']);
}
$widget['squelette'] = $this->choisirFormatSortie(count($observations));
if ($widget['squelette'] == 'obs_liste' && $obs_ids != null && count($obs_ids) > 0) {
$widget['donnees']['images'] = $this->chargerImages($obs_ids);
}
$widget['donnees']['observations'] = $observations;
$widget['donnees']['station_id'] = $this->station;
$widget['donnees']['nbre_obs_total'] = $nbre_obs;
return $widget;
}
/**
* Tableau des observations d'une station
*/
public function executerObservations() {
$widget = null;
$observations = $this->chargerObservations();
$nbre_obs = $this->chargerObservationsNbre();
// Création des infos du widget
if (isset($observations['commune'])) {
$commune = $observations['commune'];
unset($observations['commune']);
$widget['donnees']['commune'] = $commune;
}
$obs_ids = null;
if (isset($observations['ids'])) {
$obs_ids = $observations['ids'];
unset($observations['ids']);
}
$widget['squelette'] = $this->choisirFormatSortie(count($observations)).'_contenu';
if ($widget['squelette'] == 'obs_liste_contenu' && $obs_ids != null && count($obs_ids) > 0) {
$widget['donnees']['images'] = $this->chargerImages($obs_ids);
}
$widget['donnees']['observations'] = $observations;
return $widget;
}
private function chargerPagination($url_tpl, $nbre) {
}
private function chargerObservationsNbre() {
// Récupération des données au format Json
$url = $this->contruireUrlServiceCarto('observations-nombre');
$json = $this->getDao()->consulter($url);
$nbre = json_decode($json);
return $nbre;
}
private function chargerObservations() {
// Récupération des données au format Json
$url = $this->contruireUrlServiceCarto('observations');
$this->debug[] = $url;
$json = $this->getDao()->consulter($url);
$donnees = json_decode($json);
// Post-traitement des données
$observations = $this->traiterObservations($donnees);
return $observations;
}
private function traiterObservations($donnees) {
$observations = array();
if (is_array($donnees) && count($donnees) > 0) {
foreach ($donnees as $donnee) {
$observation = array();
$observation['id'] = $donnee->id;
$observation['nn'] = $this->etreVide($donnee->num_nom_sel) ? null : $donnee->num_nom_sel;
$observation['nom'] = $this->nettoyerTexte($donnee->nom_sel);
$observation['date'] = $this->formaterDate($donnee->date_observation, '%d/%m/%Y');
$observation['lieu'] = $this->traiterLieu($donnee);
$observation['observateur'] = $this->tronquerCourriel($donnee->identifiant);
$observations[] = $observation;
$observations['commune'] = $this->nettoyerTexte($donnee->location);
$observations['ids'][] = $donnee->id;
}
}
return $observations;
}
private function traiterLieu($donnee) {
$lieu = array();
if (isset($donnee->lieudit) && ! empty($donnee->lieudit)) {
$lieu[] = $donnee->lieudit;
}
if (isset($donnee->milieu) && ! empty($donnee->milieu)) {
$lieu[] = $donnee->milieu;
}
return implode(', ', $lieu);
}
private function choisirFormatSortie($observations_nbre) {
$sortie = 'obs_tableau';
if (isset($this->format) && $this->format != '*') {
$sortie = ($this->format == 'tableau' ) ? 'obs_tableau' : 'obs_liste';
} else {
$sortie = ($observations_nbre > 4) ? 'obs_tableau' : 'obs_liste';
}
return $sortie;
}
private function chargerImages($obs_ids) {
// Récupération des données au format Json
$service = 'CelImage/liste-ids?obsId='.implode(',', $obs_ids);
$url = sprintf($this->config['chemins']['baseURLServicesCelTpl'], $service);
$json = $this->getDao()->consulter($url);
$donnees = json_decode($json);
// Post-traitement des données
$images = $this->traiterImages($donnees);
return $images;
}
private function traiterImages($donnees) {
$images = array();
//echo '<br/><pre>'.print_r($donnees,true).'</pre>';
if (count($donnees) > 0) {
foreach ($donnees as $id_obs => $id_images) {
foreach ($id_images as $id_img) {
$urls['id'] = $id_img;
$urls['miniature'] = $this->getUrlImage($id_img, 'CXS');
$urls['normale'] = $this->getUrlImage($id_img, 'XL');
$images[$id_obs][] = $urls;
}
}
}
return $images;
}
/**
* Afficher message d'avertissement.
*/
public function executerAvertissement() {
/trunk/widget/modules/carto/squelettes/carte_defaut.tpl.html
24,13 → 24,16
<!-- Javascript : bibliothèques -->
<script type="text/javascript" src="https://getfirebug.com/firebug-lite.js"></script>
<!-- Google Map v3 -->
<script type="text/javascript" src="http://maps.google.com/maps/api/js?v=3.5&amp;sensor=true&amp;language=fr&amp;region=FR"></script>
<script type="text/javascript" src="http://www.tela-botanica.org/commun/google/map/3/markerclusterer/1.0/markerclusterer-1.0.pack.js"></script>
<script type="text/javascript" src="http://maps.google.com/maps/api/js?v=3.6&amp;sensor=true&amp;language=fr&amp;region=FR"></script>
<script type="text/javascript" src="http://www.tela-botanica.org/commun/google/map/3/markerclusterer/2.0.1/markerclusterer-2.0.1.pack.js"></script>
<!-- Jquery -->
<script type="text/javascript" src="http://www.tela-botanica.org/commun/jquery/1.6.2/jquery-1.6.2.min.js"></script>
<script type="text/javascript" src="http://www.tela-botanica.org/commun/jquery/jquery-ui/1.8.15/js/jquery-ui-1.8.15.custom.min.js"></script>
<script type="text/javascript" src="http://www.tela-botanica.org/commun/jquery/tablesorter/2.0.5/jquery.tablesorter.min.js"></script>
<script type="text/javascript" src="http://www.tela-botanica.org/commun/jquery/fancybox/1.3.4/jquery.fancybox-1.3.4.pack.js"></script>
<script type="text/javascript" src="http://www.tela-botanica.org/commun/jquery/pagination/2.2/jquery.pagination.js"></script>
<script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jquery.templates/beta1/jquery.tmpl.min.js"></script>
<script type="text/javascript" src="<?=$url_base?>modules/carto/squelettes/scripts/smartinfowindow.js"></script>
<!-- Javascript : données -->
<script src="<?=$url_json?>" type="text/javascript"></script>
56,17 → 59,26
'dept=<?=$dept?>'+'&'+
'commune=<?=$commune?>';
var urlObsCarte = '<?=$url_cel_carto?>/carte-defaut-json'+'?'+
'utilisateur=<?=$utilisateur?>'+'&'+
'projet=<?=$projet?>'+'&'+
'dept=<?=$dept?>'+'&'+
'commune=<?=$commune?>';
'utilisateur=<?=$utilisateur?>'+
'&projet=<?=$projet?>'+
'&num_taxon='+nt+
'&dept=<?=$dept?>'+
'&commune=<?=$commune?>';
var urlObsStation = '<?=$url_cel_carto?>/{action}'+'?'+
'station={stationId}'+
'&utilisateur=<?=$utilisateur?>'+
'&projet=<?=$projet?>'+
'&num_taxon='+nt+
'&dept=<?=$dept?>'+
'&commune=<?=$commune?>';
//]]>
</script>
<script type="text/javascript" src="<?=$url_base?>modules/carto/squelettes/scripts/carto.js"></script>
<!-- CSS -->
<link rel="stylesheet" href="http://www.tela-botanica.org/commun/jquery/fancybox/1.3.4/jquery.fancybox-1.3.4.css" type="text/css" media="screen" />
<link rel="stylesheet" href="http://www.tela-botanica.org/commun/jquery/jquery-ui/1.8.15/css/smoothness/jquery-ui-1.8.15.custom.css" type="text/css" media="screen" />
<link href="<?=$url_base?>modules/carto/squelettes/css/carto.css" rel="stylesheet" type="text/css" media="screen" />
<link rel="stylesheet" href="http://www.tela-botanica.org/commun/jquery/fancybox/1.3.4/jquery.fancybox-1.3.4.css" type="text/css" media="screen" />
</head>
 
<body>
115,12 → 127,126
<? endif ?>
<div id="carte"></div>
<!-- +-------------------------------------------------------------------------------------------+ -->
<!-- Blocs chargés à la demande : par défaut avec un style display à none -->
<div id="chargement">
<img src="<?=$url_base?>modules/carto/squelettes/images/chargement.gif" alt="Chargement en cours..." />
<p>Chargement des observations en cours...</p>
</div>
<!-- Squelette du message de chargement des observations -->
<script id="tpl-chargement" type="text/x-jquery-tmpl">
<div id="chargement" style="height:500px;">
<img src="<?=$url_base?>modules/carto/squelettes/images/chargement.gif" alt="Chargement en cours..." />
<p>Chargement des observations en cours...</p>
</div>
</script>
<!-- Squelette du contenu d'une info-bulle observation -->
<script id="tpl-obs" type="text/x-jquery-tmpl">
<div id="info-bulle" style="min-height:500px;width:600px;">
<div id="obs">
<h2><span id="obs-total"></span> observations pour <span id="obs-commune"></span></h2>
<div class="navigation">&nbsp;</div>
<div>
<ul>
<li><a href="#obs-vue-tableau">Tableau</a></li>
<li><a href="#obs-vue-liste">Liste</a></li>
</ul>
</div>
<div id="observations">
<div id="obs-vue-tableau" style="display:none;">
<table id="obs-tableau">
<thead>
<tr>
<th title="Nom scientifique défini par l'utilisateur.">Nom</th>
<th title="Date de l'observation">Date</th>
<th title="Lieu d'observation">Lieu</th>
<th title="Auteur de l'observation">Observateur</th>
</tr>
</thead>
<tbody id="obs-tableau-lignes" class="obs-conteneur">
<!-- Insertion des lignes à partir du squelette tpl-obs-liste-tableau -->
</tbody>
</table>
</div>
<div id="obs-vue-liste" style="display:none;">
<ol id="obs-liste-lignes" class="obs-conteneur">
<!-- Insertion des lignes à partir du squelette tpl-obs-liste -->
</ol>
</div>
</div>
<div class="navigation">&nbsp;</div>
<div id="obs-pieds-page">
<p id="obs-msg-info">Les observations de cette carte sont regroupées par commune.</p>
<p>Id : <span id="obs-station-id">&nbsp;</span></p>
</div>
</div>
</div>
</script>
<!-- Squelette du contenu d'une info-bulle observation -->
<script id="tpl-obs-tableau" type="text/x-jquery-tmpl">
<tr>
<td>
<span class="nom-sci">
{{if nn != 0}}
<a href="http://www.tela-botanica.org/nn${nn}" onclick="window.open(this.href); arreter(event); return false; ">${nomSci}</a>
{{else}}
${nomSci}
{{/if}}
</span>
</td>
<td>&nbsp;${date}</td>
<td>&nbsp;${lieu}</td>
<td>&nbsp;${observateur}</td>
</tr>
</script>
<!-- Squelette du contenu d'une info-bulle observation -->
<script id="tpl-obs-liste" type="text/x-jquery-tmpl">
<li>
<div id="cel-obs-${id}">
{{if images}}
{{each(index, img) images}}
<div{{if index == 0}} class="cel-img-principale" {{else}} class="cel-img-secondaire"{{/if}}>
<a class="cel-img"
href="${img.normale}"
title="${nomSci} {{if nn}} [${nn}] {{/if}} par ${observateur} - Publiée le ${datePubli} - GUID : ${img.guid}"
rel="cel-obs-${id}">
<img src="${img.miniature}" alt="Image #${img.id} de l'osbervation #${nn}" />
</a>
<p id="cel-info-${img.id}" class="cel-infos">
<a class="cel-img-titre" href="${urlEflore}"
onclick="window.open(this.href);return false;"
title="Cliquez pour accéder à la fiche eFlore">
<strong>${nomSci} {{if nn}} [nn${nn}] {{/if}}</strong> par <em>${observateur}</em>
</a>
<br />
<span class="cel-img-date">Publiée le ${datePubli}</span>
</p>
</div>
{{/each}}
{{/if}}
<dl>
<dt class="champ-nom-sci">Nom</dt>
<dd title="Nom défini par l'utilisateur{{if nn != 0}}. Cliquez pour accéder à la fiche d'eFlore.{{/if}}">
<span class="nom-sci">
{{if nn != 0}}
<a href="http://www.tela-botanica.org/nn${nn}"
onclick="window.open(this.href); arreter(event); return false; ">
${nomSci}
</a>
{{else}}
${nomSci}
{{/if}}
</span>
</dd>
<dt title="Lieu d'observation">Lieu</dt><dd>&nbsp;${lieu}</dd>
<dt title="Date d'observation">Le</dt><dd>&nbsp;${date}</dd>
<dt title="Auteur de l'observation">Publié par</dt><dd>&nbsp;${observateur}</dd>
</dl>
<hr class="nettoyage"/>
</div>
</li>
</script>
<!-- Stats : Google Analytics -->
<script type="text/javascript">
//<![CDATA[
/trunk/widget/modules/carto/squelettes/scripts/carto.js
31,17 → 31,17
name: "OSM",
maxZoom: 19
});
 
var pagineur = {'limite':50, 'start':0, 'total':0, 'stationId':null, 'format':'tableau'};
var station = {'commune':'', 'obsNbre':0};
var obsStation = new Array();
var obsPage = new Array();
/*+--------------------------------------------------------------------------------------------------------+*/
// INITIALISATION DU CODE
 
 
//Déclenchement d'actions quand JQuery et le document HTML sont OK
$(document).ready(function() {
initialiserWidget();
});
/*+--------------------------------------------------------------------------------------------------------+*/
// FONCTIONS
 
function initialiserWidget() {
afficherStats();
54,6 → 54,9
rafraichirCarte();
}
 
/*+--------------------------------------------------------------------------------------------------------+*/
// AFFICHAGE GÉNÉRAL
 
function afficherStats() {
// Ajout du nombre de communes où des observations ont eu lieu
$('#commune-nbre').append(obs.stats.communes.formaterNombre());
63,6 → 66,9
$('.plantes-nbre').append(plantesNbre.formaterNombre());
}
 
/*+--------------------------------------------------------------------------------------------------------+*/
// CARTE
 
function initialiserAffichageCarte() {
$('#carte').height($(window).height() - 35);
$('#carte').width($(window).width() - 24);
72,16 → 78,6
}
}
 
function initialiserAffichagePanneauLateral() {
$('#panneau-lateral').height($(window).height() - 35);
if (nt == '*') {
$('#pl-ouverture').bind('click', afficher);
$('#pl-fermeture').bind('click', cacher);
$('.taxon').live('click', filtrerParTaxon);
}
}
 
function initialiserCarte() {
map = new google.maps.Map(document.getElementById('carte'), carteOptions);
// Ajout de la couche OSM à la carte
88,10 → 84,6
map.mapTypes.set('OSM', osmMapType);
}
 
function initialiserInfoBulle() {
google.maps.event.addListener(infoBulle, 'domready', modifierContenuInfoBulle);
google.maps.event.addListener(infoBulle, 'closeclick', deplacerCartePointClique);
}
 
function chargerLimitesCommunales() {
if (urlsLimitesCommunales != null) {
120,7 → 112,6
google.maps.event.addListener(point, 'click', function() {
pointClique = this;
infoBulle.open(map, this);
var limites = map.getBounds();
129,8 → 120,8
var centreSudLatLng = new google.maps.LatLng(nordEst.lat(), centre.lng());
map.panTo(centreSudLatLng);
afficherMsgChargement();
chargerFormatObs(this.stationId, '*');
afficherInfoBulle();
lancerChargementObs();
});
points.push(point);
144,17 → 135,179
executerMarkerClusterer(points, bounds);
}
 
function modifierContenuInfoBulle() {
// Onglet Tableau : Jquery => TableSorter
if ($("#observations table").get() != '') {
ajouterTableauTriable("#observations table");
function deplacerCartePointClique() {
map.panTo(pointClique.position);
}
 
function executerMarkerClusterer(points, bounds) {
if (markerClusterer) {
markerClusterer.clearMarkers();
}
// Onglet Liste : Jquery => FancyBox
if ($("#observations ol").get() != '') {
markerClusterer = new MarkerClusterer(map, points);
map.fitBounds(bounds);
}
 
/*+--------------------------------------------------------------------------------------------------------+*/
// INFO BULLE
 
function initialiserInfoBulle() {
google.maps.event.addListener(infoBulle, 'domready', initialiserContenuInfoBulle);
google.maps.event.addListener(infoBulle, 'closeclick', deplacerCartePointClique);
}
 
function afficherInfoBulle() {
var obsHtml = $("#tpl-obs").html();
infoBulle.setContent(obsHtml);
}
 
function afficherMessageChargement(element) {
if ($('#chargement').get() == '') {
$('#tpl-chargement').tmpl().appendTo(element);
}
}
 
function supprimerMessageChargement() {
$('#chargement').remove();
}
 
function lancerChargementObs() {
var urlObsNbre = urlObsStation;
urlObsNbre = urlObsNbre.replace(/\{action\}/g, 'observations-nombre');
urlObsNbre = urlObsNbre.replace(/\{stationId\}/g, pointClique.stationId);
console.log("Lancement recup nombre");
$.getJSON(urlObsNbre, function(infos){
console.log("Lancement charger obs");
chargerObs(0, infos.obsNbre);
station = infos;
actualiserPagineur();
creerTitreInfoBulle();
});
}
 
function actualiserPagineur() {
pagineur.stationId = pointClique.stationId;
pagineur.total = station.obsNbre;
console.log(pagineur.total);
if (pagineur.total > 4) {
pagineur.format = 'tableau';
} else {
pagineur.format = 'liste';
}
}
 
function chargerObs(depart, total) {
if (depart < total) {
var limite = 300;
if (depart == 0) {
obsStation = new Array();
}
console.log("Chargement de "+depart+" à "+(depart+limite));
var urlObs = urlObsStation+'&start={start}&limit='+limite;
urlObs = urlObs.replace(/\{action\}/g, 'observations');
urlObs = urlObs.replace(/\{stationId\}/g, pointClique.stationId);
urlObs = urlObs.replace(/\{start\}/g, depart);
$.getJSON(urlObs, function(observations){
obsStation = obsStation.concat(observations.observations);
console.log("Chargement ok");
chargerObs(depart+limite, total);
});
} else {
if (pagineur.limite < total) {
afficherPagination();
} else {
surClicPagePagination(0, null);
}
}
}
 
 
function afficherPagination(observations) {
$(".navigation").pagination(pagineur.total, {
items_per_page:pagineur.limite,
callback:surClicPagePagination,
next_text:'Suivant',
prev_text:'Précédent',
prev_show_always:false,
num_edge_entries:1,
num_display_entries:5,
load_first_page:true
});
}
 
function surClicPagePagination(pageIndex, paginationConteneur) {
var index = pageIndex * pagineur.limite;
var indexMax = index + pagineur.limite;
pagineur.depart = index;
obsPage = new Array();
for(index; index < indexMax; index++) {
obsPage.push(obsStation[index]);
}
supprimerMessageChargement();
mettreAJourObservations();
return false;
}
 
function mettreAJourObservations() {
$("#obs-"+pagineur.format+"-lignes").empty();
$("#obs-vue-"+pagineur.format).css('display', 'block');
$(".obs-conteneur").css('counter-reset', 'item '+pagineur.depart);
$("#tpl-obs-"+pagineur.format).tmpl(obsPage).appendTo("#obs-"+pagineur.format+"-lignes");
// Actualisation de Fancybox
if (pagineur.format == 'liste') {
ajouterGaleriePhoto("a.cel-img");
}
}
 
function creerTitreInfoBulle() {
$("#obs-total").append(station.obsNbre);
$("#obs-commune").append(station.commune);
}
 
function initialiserContenuInfoBulle() {
afficherOnglets();
afficherMessageChargement('#observations');
ajouterTableauTriable("#obs-tableau");
afficherTextStationId();
corrigerLargeurInfoWindow();
}
 
function afficherOnglets() {
var $tabs = $('#obs').tabs();
$('#obs').bind('tabsselect', function(event, ui) {
if (ui.panel.id == 'obs-vue-tableau') {
surClicAffichageTableau();
} else if (ui.panel.id == 'obs-vue-liste') {
surClicAffichageListe();
}
});
$tabs.tabs('select', "#obs-vue-"+pagineur.format);
}
 
function afficherTextStationId() {
$('#obs-station-id').text(pointClique.stationId);
}
 
function corrigerLargeurInfoWindow() {
$("#info-bulle").width($("#info-bulle").width() - 16);
}
 
function surClicAffichageTableau(event) {
console.log('tableau');
pagineur.format = 'tableau';
mettreAJourObservations();
mettreAJourTableauTriable("#obs-tableau");
}
 
function surClicAffichageListe(event) {
console.log('liste');
pagineur.format = 'liste';
mettreAJourObservations();
ajouterGaleriePhoto("a.cel-img");
}
 
function ajouterTableauTriable(element) {
// add parser through the tablesorter addParser method
$.tablesorter.addParser({
161,14 → 314,14
// Définition d'un id unique pour ce parsseur
id: 'date_cel',
is: function(s) {
// retourne false si le parsseur n'est pas autodétecté
return false;
// doit retourner false si le parsseur n'est pas autodétecté
return /^\s*\d{2}[\/-]\d{2}[\/-]\d{4}\s*$/.test(s);
},
format: function(s) {
format: function(date) {
// Transformation date jj/mm/aaaa en aaaa/mm/jj
s = s.replace(/(\d{1,2})[\/\-](\d{1,2})[\/\-](\d{4})/, "$3/$2/$1");
date = date.replace(/^\s*(\d{2})[\/-](\d{2})[\/-](\d{4})\s*$/, "$3/$2/$1");
// Remplace la date par un nombre de millisecondes pour trier numériquement
return $.tablesorter.formatFloat(new Date(s).getTime());
return $.tablesorter.formatFloat(new Date(date).getTime());
},
// set type, either numeric or text
type: 'numeric'
175,100 → 328,60
});
$(element).tablesorter({
headers: {
1: {
sorter:'date_cel'
}
}
});
1: {
sorter:'date_cel'
}
}
});
}
 
function mettreAJourTableauTriable(element) {
$(element).trigger('update');
}
 
function ajouterGaleriePhoto(element) {
$(element).fancybox({
transitionIn : 'elastic',
transitionOut : 'elastic',
speedIn : 600,
speedOut : 200,
overlayShow : true
}).live('click', function(e) {
if (e.stopPropagation) {
e.stopPropagation();
transitionIn:'elastic',
transitionOut:'elastic',
speedIn :600,
speedOut:200,
overlayShow:true,
titleShow:true,
titlePosition:'inside',
titleFormat:function (titre, currentArray, currentIndex, currentOpts) {
var motif = /urn:lsid:tela-botanica[.]org:cel:img([0-9]+)$/;
motif.exec(titre);
var id = RegExp.$1;
var info = $('#cel-info-'+id).clone().html();
var tpl =
'<div class="cel-legende">'+
'<p class="cel-legende-vei">'+'Image n°' + (currentIndex + 1) + ' sur ' + currentArray.length +'<\/p>'+
(titre && titre.length ? '<p>'+info+'<\/p>' : '' )+
'<\/div>';
return tpl;
}
return false;
});
}).live('click', function(e) {
if (e.stopPropagation) {
e.stopPropagation();
}
return false;
});
}
 
function deplacerCartePointClique() {
map.panTo(pointClique.position);
}
/*+--------------------------------------------------------------------------------------------------------+*/
// PANNEAU LATÉRAL
 
function executerMarkerClusterer(points, bounds) {
if (markerClusterer) {
markerClusterer.clearMarkers();
}
markerClusterer = new MarkerClusterer(map, points);
map.fitBounds(bounds);
}
 
function afficherMsgChargement() {
var chargement = document.getElementById('chargement').cloneNode(true);
chargement.setAttribute('id', 'chargement-copie');
infoBulle.setContent(chargement);
}
 
var pagineur = {'limite':150, 'obsTotal':0, 'stationId':null, 'format':null};
 
function handlePaginationClick(new_page_index, pagination_container) {
$('.obs-liste-conteneur').css('display', 'none');
$('#chargement').clone().attr('id', 'chargement-copie').appendTo('#observations').css('display', 'block');
console.log($('#chargement').get());
function initialiserAffichagePanneauLateral() {
$('#panneau-lateral').height($(window).height() - 35);
var start = new_page_index * pagineur.limite;
var url = urlObs+
'&format='+pagineur.format+
'&station='+pagineur.stationId+
'&start='+start+
'&limit='+pagineur.limite;
$.get(url, function(observations) {
$('#chargement-copie').remove();
$('.obs-liste-conteneur').css('display', 'block');
$('#obs-liste').empty();
$('#obs-liste').append(observations);
});
return false;
}
 
function chargerFormatObs(stationId, format) {
pagineur.obsTotal = parseInt($('#obs-total').text());
pagineur.stationId = stationId;
pagineur.format = format;
var start = 1 * pagineur.limite;
var url = urlStation+
'&format='+format+
'&station='+stationId+
'&start='+start+
'&limit='+pagineur.limite;
$.get(url, function(observations){
infoBulle.setContent(observations);
// First Parameter: number of items
// Second Parameter: options object
$("#pagination").pagination(pagineur.obsTotal, {
items_per_page:pagineur.limite,
callback:handlePaginationClick
});
});
}
 
function arreter(event) {
if (event.stopPropagation) {
event.stopPropagation();
} else if (window.event) {
window.event.cancelBubble = true;
if (nt == '*') {
$('#pl-ouverture').bind('click', afficherPanneauLateral);
$('#pl-fermeture').bind('click', cacherPanneauLateral);
$('.taxon').live('click', filtrerParTaxon);
}
return false;
}
 
function afficher() {
function afficherPanneauLateral() {
$('#panneau-lateral').width(300);
$('#pl-contenu').css('display', 'block');
$('#pl-ouverture').css('display', 'none');
278,7 → 391,7
google.maps.event.trigger(map, 'resize');
};
 
function cacher() {
function cacherPanneauLateral() {
$('#panneau-lateral').width(24);
$('#pl-contenu').css('display', 'none');
$('#pl-ouverture').css('display', 'block');
313,6 → 426,18
}
};
 
/*+--------------------------------------------------------------------------------------------------------+*/
// FONCTIONS UTILITAIRES
 
function arreter(event) {
if (event.stopPropagation) {
event.stopPropagation();
} else if (window.event) {
window.event.cancelBubble = true;
}
return false;
}
 
/**
* +-------------------------------------+
* Number.prototype.formaterNombre
386,4 → 511,16
_sRetour = separeMilliers(_sNombre.substr(0, _sNombre.indexOf('.')))+String(signe)+_sDecimales;
}
return _sRetour;
}
 
function debug(objet) {
var msg = '';
if (objet != null) {
$.each(objet, function (cle, valeur) {
msg += cle+":"+valeur + "\n";
});
} else {
msg = "La variable vaut null.";
}
console.log(msg);
}
/trunk/widget/modules/carto/squelettes/css/carto.css
118,9 → 118,10
/*+-----------------------------------------------------------------------------------------------------------------+*/
/* Message de chargement */
#chargement {
display:none;
margin:25px;
text-align:center;
}
#chargement-copie img{
#chargement img{
display:block;
margin:auto;
}
251,28 → 252,43
}
/*+-----------------------------------------------------------------------------------------------------------------+*/
/* Pop-up observations */
.info-bulle-contenu {
margin:0;
padding:0;
}
 
#observations {
margin:23px 0 0 0;
padding:5px;
border:1px solid black;
border-radius:0 0 10px 10px;-moz-border-radius:0 0 10px 10px;-webkit-border-radius:0 0 10px 10px;
border-top:none !important;
overflow:none;
margin:-1px 0 0 0;
border: 1px solid #AAA;
border-radius:0 0 4px 4px;
}
#observations ol {
padding-left:30px;
}
.champ_nom_latin {
display:none;
}
#obs-msg-info {
#obs-pieds-page {
font-size:10px;
color:#CCC;
clear:both;
}
.ui-tabs {
padding:0;
}
.ui-widget-content {
border:0;
}
.ui-widget-header {
background:none;
border:0;
border-bottom:1px solid #AAA;
border-radius:0;
}
.ui-tabs-selected a {
border-bottom:1px solid white;
}
.ui-tabs-selected a:focus {
outline:0;
}
.ui-tabs .ui-tabs-panel {
padding:0.2em;
}
#obs h2 {
margin:0;
text-align:center;
}
#observations a {
color:#333;
border-bottom:1px dotted gainsboro;
282,77 → 298,80
border-bottom:1px dotted #56B80E;
}
/*+-----------------------------------------------------------------------------------------------------------------+*/
/* Onglets */
.onglets {
position:absolute;
top:0;
float:left;
height:22px;
padding:0;
margin:0;
border-bottom:1px solid black;
width:100%;
/* Pop-up observations : liste */
.champ-nom-sci {
display:none;
}
.onglets ul {
margin:0;
padding:0;
list-style:none;
.cel-img-principale img{
float:right;
height:75px;
padding:1px;
border:1px solid white;
}
.onglets li {
float:left;
text-transform:uppercase;
text-align:center;
#observations .cel-img:hover img{
border: 1px dotted #56B80E;
}
.onglets .onglet {
display:block;
padding:5px 15px 4px 15px;
.cel-img-secondaire, .cel-infos{
display: none;
}
ol#obs-liste-lignes {
padding:5px;
margin:0;
font-size:12px;
line-height:12px;
border:1px solid black;
border-radius:10px 10px 0 0;-moz-border-radius:10px 10px 0 0;-webkit-border-radius:10px 10px 0 0;
text-decoration:none;
}
.onglets .actif .onglet {
border-bottom:1px solid white;
color:black;
background-color:white;
font-weight:bold;
.obs-conteneur{
counter-reset: item;
}
.onglets .inactif .onglet {
border-bottom:1px solid #000000;
color:white;
background-color:gray;/*rgba(29,30,32,0.8);*/
.obs-conteneur .nom-sci:before {
content: counter(item) ". ";
counter-increment: item;
display:block;
float:left;
}
.onglets .inactif .onglet:hover {
color:black;
background-color:Gainsboro;
.obs-conteneur li {
display: block;
}
/*+-----------------------------------------------------------------------------------------------------------------+*/
/* Pop-up : liste */
.cel-img-principale img{
/* Diaporama */
.cel-legende{
text-align:left;
}
.cel-legende-vei{
float:right;
height:75px;
padding:1px;
border:1px solid white;
}
#observations .cel-img:hover img{
border:1px dotted #56B80E;
.cel-legende p{
color:black;
font-size:12px;
margin:5px 0;
}
.cel-img-secondaire{
display:none;
.cel-legende a, .cel-legende a:active, .cel-legende a:visited {
border-bottom:1px dotted gainsboro;
color:#333;
text-decoration:none;
background-image:none;
}
 
.cel-legende a:hover {
color:#56B80E;
border-bottom:1px dotted #56B80E;
}
/*+-----------------------------------------------------------------------------------------------------------------+*/
/* Plugin Jquery Pagination */
.navigation {
padding:5px;
float:right;
}
.pagination {
font-size: 80%;
}
.pagination a {
text-decoration: none;
border: solid 1px #AAE;
color: #15B;
border: solid 1px #666;
color: #666;
background:gainsboro;
}
.pagination a:hover {
color: white;
background: #56B80E;
}
.pagination a, .pagination span {
display: block;
float: left;
363,12 → 382,12
text-align:center;
}
.pagination .current {
background: #26B;
color: #fff;
border: solid 1px #AAE;
background: #4A4B4C;
color: white;
border: solid 1px gainsboro;
}
.pagination .current.prev, .pagination .current.next{
color:#999;
border-color:#999;
background:#fff;
color: #999;
border-color: #999;
background: gainsboro;
}