/trunk/modules/popup_contact/presentations/styles/contact.css |
---|
File deleted |
\ No newline at end of file |
/trunk/modules/popup_contact/presentations/styles/identification.css |
---|
New file |
0,0 → 1,6 |
@CHARSET "UTF-8"; |
/*----------------------------------------------------------------------------------------------------------*/ |
/* Balises */ |
input[type="checkbox"]{ |
margin:2px 5px; |
} |
/trunk/modules/popup_contact/presentations/scripts/contact.js |
---|
1,104 → 1,34 |
$(document).ready(function() { |
$("#annuler").on('click', fermerFenetre); |
$("#effacer").on('click', effacerFomulaire); |
$("#envoyer").on('click', envoyerCourriel); |
}); |
function effacerFomulaire() { |
$("#destinataire_id").attr('value', ''); |
$("#sujet").attr('value', ''); |
$("#message").text(''); |
function fermerFenetre() { |
window.close(); |
} |
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 effacerFomulaire() { |
$("#sujet").attr('value', $("#sujet_defaut").val()); |
$("#message").text($("#message_defaut").val()); |
} |
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" |
function envoyerCourriel(event) { |
if (verifierFormContact()) { |
var destinataireId = $("#destinataire_id").val(); |
var urlMessage = URL_WS_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(); |
$.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}; |
}); |
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()}; |
$.ajax({ |
type : "POST", |
cache : false, |
105,10 → 35,10 |
url : urlMessage, |
data : donnees, |
beforeSend : function() { |
$(".msg").remove(); |
nettoyerMsg(); |
}, |
success : function(data) { |
$("#fc-zone-dialogue").append('<pre class="msg info">'+data.message+'</pre>'); |
afficherInfo('Votre message a été correctement envoyé'); |
}, |
error : function(jqXHR, textStatus, errorThrown) { |
erreurMsg += "Erreur Ajax :\ntype : "+textStatus+' '+errorThrown+"\n"; |
130,22 → 60,53 |
} |
} |
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>'); |
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>.'); |
} |
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/scripts/identification.js |
---|
New file |
0,0 → 1,95 |
$(document).ready(function() { |
$("#connexion").on('click', connecter); |
}); |
function connecter() { |
var erreurMsg = ""; |
var urlWs = URL_WS_UTILISATEUR; |
var courriel = $("#courriel").val(); |
var mdp = $("#mdp").val(); |
var donnees = {'methode':'connexion','courriel':courriel,'mdp':mdp}; |
$.ajax({ |
type : "PUT", |
cache : false, |
url : urlWs, |
data : donnees, |
beforeSend : nettoyerMsg, |
success : function(data) { |
if (data.identifie) { |
rechargerPage(); |
} else { |
afficherErreur(data.message); |
} |
}, |
error : function(jqXHR, textStatus, errorThrown) { |
erreurMsg += "Erreur Ajax :\ntype : "+textStatus+' '+errorThrown+"\n"; |
erreurMsg += extraireInfosReponse(jqXHR); |
afficherErreur('Une erreur est survenue lors de la connexion.'); |
if (DEBUG) { |
console.log('Erreur : '+erreurMsg); |
} |
}, |
complete : function(jqXHR, textStatus) { |
var debugMsg = extraireEnteteDebug(jqXHR); |
if (DEBUG) { |
console.log('Débogage : '+debugMsg); |
} |
} |
}); |
return false; |
} |
function nettoyerMsg() { |
$(".msg").remove(); |
} |
function rechargerPage() { |
window.location.reload(); |
} |
function extraireInfosReponse(jqXHR) { |
var erreurMsg = ''; |
try { |
reponse = jQuery.parseJSON(jqXHR.responseText); |
if (reponse != null) { |
$.each(reponse, function (cle, valeur) { |
erreurMsg += valeur + "\n"; |
}); |
} |
} catch(e) { |
erreurMsg += "L'erreur n'était pas en JSON."; |
} |
return erreurMsg; |
} |
function extraireEnteteDebug(jqXHR) { |
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"; |
}); |
} |
} |
return debugMsg; |
} |
function afficherErreur(msg) { |
afficherTxt(msg, 'attention'); |
} |
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>'); |
} |
/trunk/modules/popup_contact/squelettes/popup_contact.tpl.html |
---|
File deleted |
\ No newline at end of file |
/trunk/modules/popup_contact/squelettes/contact_scripts.tpl.html |
---|
File deleted |
\ No newline at end of file |
/trunk/modules/popup_contact/squelettes/form_contact.tpl.html |
---|
New file |
0,0 → 1,27 |
<div class="importance1"> |
<div id="zone-dialogue"></div> |
<form id="form-contact" method="post" action="<?= $urlPopUp ?>"> |
<div class="champ"> |
<label for="sujet">Sujet</label> |
<input id="sujet" name="sujet" value="<?= $sujet ?>"/> |
</div> |
<div class="champ"> |
<label for="message">Message</label> |
<textarea id="message" name="message" rows="10"><?= $message ?></textarea> |
</div> |
<div> |
<input id="sujet_defaut" name="sujet_defaut" type="hidden" value="<?= $sujet ?>" /> |
<input id="message_defaut" name="message_defaut" type="hidden" value="<?= $message ?>" /> |
<input id="destinataire_id" name="destinataire_id" type="hidden" value="<?= $idDestinataire ?>" /> |
<input id="copies" name="copies" type="hidden" value="eflore_remarques@tela-botanica.org" /> |
<input id="utilisateur_courriel" name="utilisateur_courriel" type="hidden" value="<?= $utilisateurCourriel ?>"/> |
<button id="annuler" class="btn" type="submit">Annuler</button> |
<button id="effacer" class="btn" type="reset">Effacer</button> |
<button id="envoyer" class="droite btn" type="submit">Envoyer</button> |
</div> |
</form> |
</div> |
/trunk/modules/popup_contact/squelettes/contact_entete.tpl.html |
---|
New file |
0,0 → 1,15 |
<!-- CSS --> |
<? if ($formType != 'contact') : ?> |
<link href="modules/popup_contact/presentations/styles/<?= $formType ?>.css" rel="stylesheet" type="text/css"/> |
<? endif; ?> |
<!-- JavaScript --> |
<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"> |
//<![CDATA[ |
var DEBUG = false; |
var URL_WS_UTILISATEUR = "http://localhost/applications/annuaire/jrest/utilisateur";//"http://www.tela-botanica.org/service:annuaire:Utilisateur" |
//]]> |
</script> |
<script type="text/Javascript" src="modules/popup_contact/presentations/scripts/<?= $formType ?>.js"></script> |
/trunk/modules/popup_contact/squelettes/form_identification.tpl.html |
---|
New file |
0,0 → 1,22 |
<div class="importance1"> |
<div id="zone-dialogue"> |
<p class="msg attention"> |
Vous n'êtes pas identifiez sur le site de Tela Botanica.<br /> |
Veuillez vous identifiez afin d'accéder au formulaire de contact. |
</p> |
</div> |
<form id="form-connexion" action="<?= $urlPopUp ?>" method="post"> |
<h3>Identifiez vous</h3> |
<label for="courriel">Courriel : </label> |
<input type="text" id="courriel" name="courriel" maxlength="80" value="" /> |
<label for="mdp">Mot de passe : </label> |
<input type="password" id="mdp" name="mdp" maxlength="80" value="" /> |
<p> |
<input type="submit" id="connexion" class="gauche btn" name="connexion" value="Connexion" /> |
<input id="persistance" class="gauche" name="persistance" type="checkbox" value="o" /> |
<label for="persistance">Rester connecté</label> |
</p> |
</form> |
</div> |
/trunk/modules/popup_contact/PopupContact.php |
---|
13,19 → 13,20 |
*/ |
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() { |
41,19 → 42,46 |
$this->executerForm(); |
} |
public function executerForm(){ |
$infos = array(); |
$infos['idDestinataire'] = $this->id_destinataire; |
public function executerForm() { |
if ($this->utilisateur->etreIdentifie()) { |
$this->afficherFormContact(); |
} else { |
$this->afficherFormIdentification(); |
} |
} |
private function afficherFormContact() { |
$entete = array(); |
$entete['formType'] = 'contact'; |
$this->setSortie(self::ENTETE, $this->getVue('contact_entete', $entete)); |
$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); |
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+'".'; |
$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)); |
} |
} |
?> |