Subversion Repositories eFlore/Applications.cel

Compare Revisions

Ignore whitespace Rev 3630 → Rev 3631

/trunk/widget/modules/photo/squelettes/js/WidgetPhotoContact.js
New file
0,0 → 1,158
function WidgetPhotoContact () {}
 
WidgetPhotoContact.prototype = new WidgetPhotoCommun();
 
WidgetPhotoContact.prototype.initTpl = function() {
$( '#form-contact' ).validate({
rules: {
fc_sujet : 'required',
fc_message : 'required',
fc_utilisateur_courriel : {
required : true,
email : true
}
}
});
};
 
WidgetPhotoContact.prototype.initEvts = function() {
const lthis = this;
 
$( '#form-contact' ).on( 'submit', function( event ) {
event.preventDefault();
lthis.envoyerCourriel();
});
this.initEvtsRetourPopupPhoto();
};
 
WidgetPhotoContact.prototype.initEvtsRetourPopupPhoto = function() {
const lthis = this;
 
$( '#fc_annuler.popup_url' ).on( 'click', function( event ) {
event.preventDefault();
lthis.retourPopupPhoto();
});
$( '#fc_annuler.popup_url' ).on( 'keydown', function( event ) {
var isEnter = false;
 
event = event || window.event;
// event.keyCode déprécié, on tente d'abord event.key
if ( 'key' in event) {
isEnter = ( event.key === 'Enter' );
} else {
isEnter = ( event.keyCode === 13 );
}
if ( isEnter ) {
lthis.retourPopupPhoto();
}
});
$( 'body' ).on( 'keyup', function( event ) {
if( $( '#fenetre-modal' ).hasClass( 'show' ) ) {
var isEscape = false;
 
event = event || window.event;
// event.keyCode déprécié, on tente d'abord event.key
if ( 'key' in event) {
isEscape = ( event.key === 'Escape' || event.key === 'Esc' );
} else {
isEscape = ( event.keyCode === 27 );
}
if ( isEscape ) {
lthis.retourPopupPhoto();
}
}
});
};
 
WidgetPhotoContact.prototype.envoyerCourriel = function() {
const lthis = this;
var donnees = new Array();
 
if ( $( '#form-contact' ).valid() ) {
var destinataireId = $( '#fc_destinataire_id' ).val(),
typeEnvoi = $( '#fc_type_envoi' ).val(),
// l'envoi aux non inscrits passe par le service intermédiaire du cel
// qui va récupérer le courriel associé à l'image indiquée
urlMessage = 'http://api.tela-botanica.org/service:cel:celMessage/image/' + destinataireId,
erreurMsg = '';
 
$.each( $( '#form-contact' ).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 photo " +
"du Carnet en Ligne du réseau Tela Botanica.\n" +
"http://www.tela-botanica.org/widget:cel:photo";
}
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 ( lthis.valOk( reponse ) ) {
$.each( reponse, function ( cle, valeur ) {
erreurMsg += valeur + "\n";
});
}
},
complete : function( jqXHR, textStatus ) {
var debugMsg = '';
if ( lthis.valOk( jqXHR.getResponseHeader( "X-DebugJrest-Data" ) ) ) {
debugInfos = jQuery.parseJSON( jqXHR.getResponseHeader( "X-DebugJrest-Data" ) );
if ( lthis.valOk( debugInfos ) ) {
$.each( debugInfos, function ( cle, valeur ) {
debugMsg += valeur + "\n";
});
}
}
if ( lthis.valOk( 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-remarques@tela-botanica.org?'+
'subject=Disfonctionnement du widget carto'+
"&body=" + erreurMsg + "\nDébogage :\n" + debugMsg+
'"' +
'>'+
'cel-remarques@tela-botanica.org'+
'</a>'+
'.'+
'</p>'
);
}
}
});
}
return false;
};
 
 
WidgetPhotoContact.prototype.retourPopupPhoto = function() {
const lthis = this;
var popup_url = $( '#fc_annuler.popup_url' ).data( 'popup_url' );
if ( lthis.valOk( popup_url ) ) {
lthis.chargerContenuModale( popup_url );
}
};