Subversion Repositories eFlore/Applications.eflore-consultation

Compare Revisions

Ignore whitespace Rev 528 → Rev 527

/trunk/modules/popup_contact/PopupContact.php
13,20 → 13,19
*/
 
class PopupContact extends aControleur {
 
private $conteneur = null;
private $imagesApi = null;
private $utilisateur = null;
private $appUrls = 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();
$this->utilisateur = $this->conteneur->getUtilisateur();
$this->appUrls = $this->conteneur->getAppUrls();
}
 
private function capturerParametres() {
42,46 → 41,19
$this->executerForm();
}
 
public function executerForm() {
if ($this->utilisateur->etreIdentifie()) {
$this->afficherFormContact();
} else {
$this->afficherFormIdentification();
}
}
public function executerForm(){
$infos = array();
$infos['idDestinataire'] = $this->id_destinataire;
$infos['idImage'] = $this->id_image;
 
private function afficherFormContact() {
$entete = array();
$entete['formType'] = 'contact';
$this->setSortie(self::ENTETE, $this->getVue('contact_entete', $entete));
$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+'".';
 
$infos = array();
$infos['idDestinataire'] = $this->id_destinataire;
$infos['idImage'] = $this->id_image;
$infos['utilisateurCourriel'] = $this->utilisateur->getCourriel();
$infos['urlPopUp'] = $this->appUrls->obtenirUrlPopUpContact($this->id_destinataire, $this->id_image);
 
$this->imagesApi->setProjet('cel');
$imageInfos = $this->imagesApi->getInfosImageParIdImage($this->id_image);
$idObs = $imageInfos['observation.id'];
$nomSci = $imageInfos['determination.nom_sci'];
$date = $imageInfos['date'];
$lieu = $imageInfos['station.libelle'];
 
$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('form_contact', $infos));
$this->setSortie(self::RENDU_CORPS, $this->getVue('popup_contact', $infos));
}
 
private function afficherFormIdentification() {
$entete = array();
$entete['formType'] = 'identification';
$this->setSortie(self::ENTETE, $this->getVue('contact_entete', $entete));
 
$infos = array();
$infos['urlPopUp'] = $this->appUrls->obtenirUrlPopUpContact($this->id_destinataire, $this->id_image);
$this->setSortie(self::RENDU_CORPS, $this->getVue('form_identification', $infos));
}
}
?>
/trunk/modules/popup_contact/presentations/scripts/identification.js
File deleted
\ No newline at end of file
/trunk/modules/popup_contact/presentations/scripts/contact.js
1,34 → 1,104
$(document).ready(function() {
$("#annuler").on('click', fermerFenetre);
$("#effacer").on('click', effacerFomulaire);
$("#envoyer").on('click', envoyerCourriel);
});
 
function fermerFenetre() {
window.close();
function effacerFomulaire() {
$("#destinataire_id").attr('value', '');
$("#sujet").attr('value', '');
$("#message").text('');
}
 
function effacerFomulaire() {
$("#sujet").attr('value', $("#sujet_defaut").val());
$("#message").text($("#message_defaut").val());
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 envoyerCourriel(event) {
if (verifierFormContact()) {
var destinataireId = $("#destinataire_id").val();
var urlMessage = URL_WS_UTILISATEUR+"/"+destinataireId+"/message"
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 sujet = $("#sujet").val()+" - Carnet en ligne - Tela Botanica";
var message = $("#message").val()+"\n--\n"+
"Ce message vous est envoyé par l'intermédiaire de l'application eFlore du réseau Tela Botanica.\n"+
"http://www.tela-botanica.org/eflore";
var donnees = new Array();
donnees[0] = {'name':'sujet','value':sujet};
donnees[1] = {'name':'message','value':message};
donnees[2] = {'name':'utilisateur_courriel','value':$("#utilisateur_courriel").val()};
donnees[3] = {'name':'copies','value':$("#copies").val()};
 
$.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,
35,10 → 105,10
url : urlMessage,
data : donnees,
beforeSend : function() {
nettoyerMsg();
$(".msg").remove();
},
success : function(data) {
afficherInfo('Votre message a été correctement envoyé');
$("#fc-zone-dialogue").append('<pre class="msg info">'+data.message+'</pre>');
},
error : function(jqXHR, textStatus, errorThrown) {
erreurMsg += "Erreur Ajax :\ntype : "+textStatus+' '+errorThrown+"\n";
60,53 → 130,22
}
}
if (erreurMsg != '') {
afficherMsg('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 formulaire de contact'+
"&body="+erreurMsg+"\nDébogage :\n"+debugMsg+
'">eflore_remarques@tela-botanica.org</a>.');
$("#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);
}
});
} else {
afficherInfo('Veuillez saisir un message');
}
event.preventDefault();
return false;
}
 
function afficherInfo(msg) {
afficherTxt(msg, 'information');
}
 
function afficherMsg(msg) {
afficherTxt(msg);
}
 
function afficherTxt(msg, type) {
type = type ? ' '+type : '';
nettoyerMsg();
$("#zone-dialogue").append('<pre class="msg'+type+'">'+msg+'</pre>');
}
 
function nettoyerMsg() {
$(".msg").remove();
}
 
function verifierFormContact() {
var valide = true;
var msg = trim($("#message").val());
var msgDefaut = trim($("#message_defaut").val());
if (msg == msgDefaut) {
valide = false;
}
return valide;
}
 
function trim(chaine) {
return chaine.replace(/^\s+/g, '').replace(/\s+$/g, '');
}
/trunk/modules/popup_contact/presentations/styles/identification.css
File deleted
\ No newline at end of file
/trunk/modules/popup_contact/presentations/styles/contact.css
New file
0,0 → 1,5
@CHARSET "UTF-8";
 
#fc_sujet{
}
/trunk/modules/popup_contact/squelettes/form_contact.tpl.html
File deleted
\ No newline at end of file
/trunk/modules/popup_contact/squelettes/contact_entete.tpl.html
File deleted
\ No newline at end of file
/trunk/modules/popup_contact/squelettes/form_identification.tpl.html
File deleted
\ No newline at end of file
/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>