Subversion Repositories eFlore/Applications.eflore-consultation

Compare Revisions

Ignore whitespace Rev 506 → Rev 507

/trunk/modules/popup_contact/presentations/scripts/contact.js
New file
0,0 → 1,151
$(document).ready(function() {
$("#effacer").on('click', effacerFomulaire);
$("#envoyer").on('click', envoyerCourriel);
});
 
function effacerFomulaire() {
$("#destinataire_id").attr('value', '');
$("#sujet").attr('value', '');
$("#message").text('');
}
 
function ajouterFomulaireContact(element) {
$(element).fancybox({
transitionIn:'elastic',
transitionOut:'elastic',
speedIn :600,
speedOut:200,
scrolling: 'no',
titleShow: false,
onStart: function(selectedArray, selectedIndex, selectedOpts) {
var element = selectedArray[selectedIndex];
 
var motif = / contributeur-([0-9]+)$/;
motif.exec($(element).attr('class'));
var id = RegExp.$1;
// console.log('Destinataire id : '+id);
$("#fc_destinataire_id").attr('value', id);
var motif = / obs-([0-9]+) /;
motif.exec($(element).attr('class'));
var id = RegExp.$1;
// console.log('Obs id : '+id);
chargerInfoObsPourMessage(id);
},
onCleanup: function() {
// console.log('Avant fermeture fancybox');
$("#fc_destinataire_id").attr('value', '');
$("#fc_sujet").attr('value', '');
$("#fc_message").text('');
},
onClosed: function(e) {
// console.log('Fermeture fancybox');
if (e.stopPropagation) {
e.stopPropagation();
}
return false;
}
});
}
 
function chargerInfoObsPourMessage(idObs) {
var nomSci = trim($(".cel-obs-"+idObs+" .nom-sci:eq(0)").text());
var date = trim($(".cel-obs-"+idObs+" .date:eq(0)").text());
var lieu = trim($(".cel-obs-"+idObs+" .lieu:eq(0)").text());
var sujet = "Observation #"+idObs+" de "+nomSci;
var message = "\n\n\n\n\n\n\n\n--\nConcerne l'observation de \""+nomSci+'" du "'+date+'" au lieu "'+lieu+'".';
$("#sujet").attr('value', sujet);
$("#message").text(message);
}
 
function initialiserFormulaireContact() {
// console.log('Initialisation du form contact');
$("#form-contact").validate({
rules: {
fc_sujet : "required",
fc_message : "required",
fc_utilisateur_courriel : {
required : true,
email : true}
}
});
$("#form-contact").bind("submit", envoyerCourriel);
$("#fc_annuler").bind("click", function() {$.fancybox.close();});
}
 
function envoyerCourriel() {
// console.log('Formulaire soumis');
if ($("#form-contact").valid()) {
// console.log('Formulaire valide');
// $.fancybox.showActivity();
var destinataireId = $("#fc_destinataire_id").attr('value');
var urlMessage = "http://www.tela-botanica.org/service:annuaire:Utilisateur/"+destinataireId+"/message"
var erreurMsg = "";
var donnees = new Array();
$.each($(this).serializeArray(), function (index, champ) {
var cle = champ.name;
cle = cle.replace(/^fc_/, '');
if (cle == 'sujet') {
champ.value += " - Carnet en ligne - Tela Botanica";
}
if (cle == 'message') {
champ.value += "\n--\n"+
"Ce message vous est envoyé par l'intermédiaire du widget Cartographique "+
"du Carnet en Ligne du réseau Tela Botanica.\n"+
"http://www.tela-botanica.org/widget:cel:carto";
}
donnees[index] = {'name':cle,'value':champ.value};
});
$.ajax({
type : "POST",
cache : false,
url : urlMessage,
data : donnees,
beforeSend : function() {
$(".msg").remove();
},
success : function(data) {
$("#fc-zone-dialogue").append('<pre class="msg info">'+data.message+'</pre>');
},
error : function(jqXHR, textStatus, errorThrown) {
erreurMsg += "Erreur Ajax :\ntype : "+textStatus+' '+errorThrown+"\n";
reponse = jQuery.parseJSON(jqXHR.responseText);
if (reponse != null) {
$.each(reponse, function (cle, valeur) {
erreurMsg += valeur + "\n";
});
}
},
complete : function(jqXHR, textStatus) {
var debugMsg = '';
if (jqXHR.getResponseHeader("X-DebugJrest-Data") != '') {
debugInfos = jQuery.parseJSON(jqXHR.getResponseHeader("X-DebugJrest-Data"));
if (debugInfos != null) {
$.each(debugInfos, function (cle, valeur) {
debugMsg += valeur + "\n";
});
}
}
if (erreurMsg != '') {
$("#fc-zone-dialogue").append('<p class="msg">'+
'Une erreur est survenue lors de la transmission de votre message.'+'<br />'+
'Vous pouvez signaler le disfonctionnement à <a href="'+
'mailto:cel@tela-botanica.org'+'?'+
'subject=Disfonctionnement du widget de Cartographie'+
"&body="+erreurMsg+"\nDébogage :\n"+debugMsg+
'">cel@tela-botanica.org</a>.'+
'</p>');
}
if (DEBUG) {
console.log('Débogage : '+debugMsg);
}
// console.log('Débogage : '+debugMsg);
// console.log('Erreur : '+erreurMsg);
}
});
}
return false;
}
/trunk/modules/popup_contact/presentations/styles/contact.css
New file
0,0 → 1,5
@CHARSET "UTF-8";
 
#fc_sujet{
}
/trunk/modules/popup_contact/squelettes/popup_contact.tpl.html
New file
0,0 → 1,35
<div class="importance1">
<form id="form-contact" method="post" action="POST">
<div id="zone-dialogue"></div>
<div>
<label for="sujet">Sujet</label>
<input id="sujet" name="fc_sujet"/>
</div>
<div>
<label for="message">Message</label>
<textarea id="message" name="message">
<dt>Titre</dt><dd><?=$image['determination.nom_sci']?></dd>
<dt>Description</dt><dd><?=$image['determination.libelle']?></dd>
<dt>Localisation</dt><dd><?=$image['station.libelle']?></dd>
<dt>Auteur</dt><dd><?=$image['auteur.libelle']?></dd>
<dt>Date de cr&eacute;ation</dt><dd><?=$image['date']?></dd>
</textarea>
</div>
<div title="Utilisez le courriel avec lequel vous êtes inscrit à Tela Botanica">
<label for="utilisateur_courriel" >Votre courriel</label>
<input id="utilisateur_courriel" name="utilisateur_courriel"/>
</div>
<div>
<input id="destinataire_id" name="destinataire_id" type="hidden" value="" />
<input id="copies" name="copies" type="hidden" value="eflore_remarques@tela-botanica.org" />
<button id="effacer" type="reset">Effacer</button>
<button id="envoyer" type="submit">Envoyer</button>
</div>
</form>
</div>
/trunk/modules/popup_contact/squelettes/contact_scripts.tpl.html
New file
0,0 → 1,3
<script type="text/javascript" src="http://www.tela-botanica.org/commun/jquery/1.7.1/jquery-1.7.1.js"></script>
<script type="text/Javascript" src="http://www.tela-botanica.org/commun/jquery/cookie/1.0/jquery.cookie.min.js"></script>
<script type="text/Javascript" src="modules/popup_contact/presentations/scripts/contact.js"></script>
/trunk/modules/popup_contact/PopupContact.php
New file
0,0 → 1,59
<?php
// declare(encoding='UTF-8');
/**
* Affiche un formulaire de contact d'utilisateur.
*
* @category php 5.2
* @package eFlore-consultation
* @author Jean-Pascal MILCENT <jpm@tela-botanica.org>
* @copyright Copyright (c) 2012, Tela Botanica (accueil@tela-botanica.org)
* @license http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
* @license http://www.gnu.org/licenses/gpl.html Licence GNU-GPL
* @version $Id$
*/
 
class PopupContact extends aControleur {
private $conteneur = null;
private $imagesApi = null;
private $id_destinataire = '';
private $id_image = '';
 
 
public function initialiser() {
$this->capturerParametres();
$this->setSortie(self::RENDU_SCRIPT, $this->getVue('contact_scripts'));
$style = '<link href="modules/popup_contact/presentations/styles/contact.css" rel="stylesheet" type="text/css" />';
$this->setSortie(self::RENDU_STYLE, $style);
$this->conteneur = new Conteneur();
$this->imagesApi = $this->conteneur->getApiImages();
}
 
private function capturerParametres() {
if (isset($_GET['id_destinataire'])) {
$this->id_destinataire = $_GET['id_destinataire'];
}
if (isset($_GET['id_img'])) {
$this->id_image = $_GET['id_img'];
}
}
 
public function executerActionParDefaut() {
$this->executerForm();
}
 
public function executerForm(){
$infos = array();
$infos['idDestinataire'] = $this->id_destinataire;
$infos['idImage'] = $this->id_image;
 
$this->imagesApi->setProjet('cel');
$imageInfos = $this->imagesApi->getInfosImageParIdImage($this->id_image);
Debug::printr($imageInfos);
//$infos['sujet'] = "Observation #"+idObs+" de "+nomSci;
//$infos['message'] = "\n\n\n\n\n\n\n\n--\nConcerne l'observation de \""+nomSci+'" du "'+date+'" au lieu "'+lieu+'".';
 
$this->setSortie(self::RENDU_CORPS, $this->getVue('popup_contact', $infos));
}
 
}
?>