Subversion Repositories eFlore/Applications.cel

Compare Revisions

Ignore whitespace Rev 2706 → Rev 2707

/trunk/widget/modules/saisie/squelettes/defaut/js/WidgetSaisie.js
21,7 → 21,7
this.serviceSaisieUrl = null;
this.serviceObsUrl = null;
this.nomSciReferentiel = null;
this.especeImposee = null;
this.especeImposee = false;
this.infosEspeceImposee = null;
this.autocompletionElementsNbre = null;
this.referentielImpose = null;
46,6 → 46,7
this.initCarto();
this.initForm();
this.initEvts();
this.requeterIdentite();
};
 
/**
54,6 → 55,34
WidgetSaisie.prototype.initCarto = function() {
this.initialiserGoogleMap();
this.initialiserAutocompleteCommune();
 
$("#carte-recherche").autocomplete({
//Cette partie utilise geocoder pour extraire des valeurs d'adresse
source: function(request, response) {
geocoderOptions.address = request.term + addressSuffix;
console.log('Geocoder options', geocoderOptions);
lthis.geocoder.geocode( geocoderOptions, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
response($.map(results, function(item) {
var retour = {
label: item.formatted_address,
value: item.formatted_address,
latitude: item.geometry.location.lat(),
longitude: item.geometry.location.lng()
};
return retour;
}));
} else {
lthis.afficherErreurGoogleMap(status);
}
});
},
// Cette partie est executee a la selection d'une adresse
select: function(event, ui) {
var latLng = new google.maps.LatLng(ui.item.latitude, ui.item.longitude);
lthis.deplacerMarker(latLng);
}
});
}
 
/**
61,10 → 90,11
*/
WidgetSaisie.prototype.initForm = function() {
if (this.obsId != '') {
console.log('obsId: (' + typeof obsId + ') : ' + obsId);
this.chargerInfoObs();
}
 
this.configurerDatePicker();
this.configurerDatePicker('#date');
this.ajouterAutocompletionNoms();
this.configurerFormValidator();
this.definirReglesFormValidator();
117,7 → 147,7
$("#courriel").on('blur', this.requeterIdentite.bind(this));
$("#courriel").on('keypress', this.testerLancementRequeteIdentite.bind(this));
$(".alert .close").on('click', this.fermerPanneauAlert);
$("[rel=tooltip]").tooltip('enable');
$(".has-tooltip").tooltip('enable');
$("#btn-aide").on('click', this.basculerAffichageAide);
$("#prenom").on("change", this.formaterPrenom.bind(this));
$("#nom").on("change", this.formaterNom.bind(this));
150,6 → 180,19
return 'Êtes vous sûr de vouloir quiter la page?\nLes observations saisies mais non transmises seront perdues.';
});
}
 
// Autocompletion du champ adresse
$("#carte-recherche").on('focus', function() {
$(this).select();
});
$("#carte-recherche").on('mouseup', function(event) {// Pour Safari...
event.preventDefault();
});
$("#carte-recherche").keypress(function(e) {
if (e.which == 13) {
e.preventDefault();
}
});
}
 
/**
193,6 → 236,13
};
 
/**
* Efface une miniature (formulaire)
*/
WidgetSaisie.prototype.supprimerMiniature = function(miniature) {
miniature.parents('.miniature').remove();
}
 
/**
* Efface toutes les miniatures (formulaire)
*/
WidgetSaisie.prototype.supprimerMiniatures = function() {
229,47 → 279,6
geocoderOptions.region = 'fr';
addressSuffix = ', France';
}
 
$("#carte-recherche").autocomplete({
//Cette partie utilise geocoder pour extraire des valeurs d'adresse
source: function(request, response) {
geocoderOptions.address = request.term + addressSuffix;
console.log('Geocoder options', geocoderOptions);
lthis.geocoder.geocode( geocoderOptions, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
response($.map(results, function(item) {
var retour = {
label: item.formatted_address,
value: item.formatted_address,
latitude: item.geometry.location.lat(),
longitude: item.geometry.location.lng()
};
return retour;
}));
} else {
lthis.afficherErreurGoogleMap(status);
}
});
},
// Cette partie est executee a la selection d'une adresse
select: function(event, ui) {
var latLng = new google.maps.LatLng(ui.item.latitude, ui.item.longitude);
lthis.deplacerMarker(latLng);
}
});
 
// Autocompletion du champ adresse
$("#carte-recherche").on('focus', function() {
$(this).select();
});
$("#carte-recherche").on('mouseup', function(event) {// Pour Safari...
event.preventDefault();
});
$("#carte-recherche").keypress(function(e) {
if (e.which == 13) {
e.preventDefault();
}
});
};
 
WidgetSaisie.prototype.afficherErreurGoogleMap = function(status) {
452,7 → 461,7
},
error : function(jqXHR, textStatus, errorThrown) {
if (this.debug) {
$("#dialogue-erreur .alert-txt").append('<p class="msg">Une erreur Ajax est survenue lors de la transmission de vos observations.</p>');
$("#dialogue-erreur .alert-txt").append('<p class="msg">Une erreur Ajax est survenue lors de la recherche de la commune.</p>');
reponse = jQuery.parseJSON(jqXHR.responseText);
var erreurMsg = "";
if (reponse != null) {
503,7 → 512,7
$("#nom").val(infos.nom);
$("#courriel_confirmation").val(courriel);
$("#prenom, #nom, #courriel_confirmation").attr('disabled', 'disabled');
$("#date").focus();
lthis.focusChampFormulaire();
lthis.masquerPanneau("#dialogue-courriel-introuvable");
} else {
lthis.surErreurCompletionCourriel();
523,16 → 532,19
});
};
 
WidgetSaisie.prototype.focusChampFormulaire = function() {
$("#date").focus();
}
 
WidgetSaisie.prototype.surErreurCompletionCourriel = function() {
$("#prenom, #nom, #courriel_confirmation").val('');
$("#prenom, #nom, #courriel_confirmation").removeAttr('disabled');
this.afficherPanneau("#dialogue-courriel-introuvable");
};
//+---------------------------------------------------------------------------------------------------------+
//FORMULAIRE
 
WidgetSaisie.prototype.chargerInfoObs = function() {
var urlObs = this.serviceObsUrl + '/' + this.obsId;
var lthis = this;
$.ajax({
url: urlObs,
type: 'GET',
539,16 → 551,21
success: function(data, textStatus, jqXHR) {
if (data != undefined && data != "") {
this.prechargerForm(data);
} else {
lthis.surErreurChargementInfosObs();
}
// TODO: voir s'il est pertinent d'indiquer quelque chose en cas d'erreur ou d'obs
// inexistante
},
error: function(jqXHR, textStatus, errorThrown) {
// TODO: cf TODO ci-dessus
lthis.surErreurChargementInfosObs();
}
});
};
 
// @TODO faire mieux que ça !
WidgetSaisie.prototype.surErreurChargementInfosObs = function() {
alert("Erreur lors du chargement de l'observation");
}
 
WidgetSaisie.prototype.prechargerForm = function(data) {
 
$("#milieu").val(data.milieu);
641,9 → 658,9
});
};
 
WidgetSaisie.prototype.configurerDatePicker = function() {
WidgetSaisie.prototype.configurerDatePicker = function(selector) {
$.datepicker.setDefaults($.datepicker.regional["fr"]);
$("#date").datepicker({
$(selector).datepicker({
dateFormat: "dd/mm/yy",
maxDate: new Date,
showOn: "button",
650,9 → 667,12
buttonImageOnly: true,
buttonImage: this.calendrierIconeUrl,
buttonText: "Afficher le calendrier pour saisir la date.",
showButtonPanel: true
showButtonPanel: true,
onSelect: function(date) {
$(this).valid();
}
});
$("img.ui-datepicker-trigger").appendTo("#date-icone");
$(selector + ' + img.ui-datepicker-trigger').appendTo(selector + '-icone.add-on');
};
 
WidgetSaisie.prototype.fermerPanneauAlert = function() {
687,11 → 707,11
 
WidgetSaisie.prototype.basculerAffichageAide = function() {
if ($(this).hasClass('btn-warning')) {
$("[rel=tooltip]").tooltip('enable');
$(".has-tooltip").tooltip('enable');
$(this).removeClass('btn-warning').addClass('btn-success');
$('#btn-aide-txt', this).text("Désactiver l'aide");
} else {
$("[rel=tooltip]").tooltip('disable');
$(".has-tooltip").tooltip('disable');
$(this).removeClass('btn-success').addClass('btn-warning');
$('#btn-aide-txt', this).text("Activer l'aide");
}
739,7 → 759,7
'<div id="obs'+this.obsNbre+'" class="row-fluid obs obs'+this.obsNbre+'">'+
'<div class="span12">'+
'<div class="well">'+
'<div class="obs-action pull-right" rel="tooltip" data-placement="bottom" '+
'<div class="obs-action pull-right has-tooltip" data-placement="bottom" '+
'title="Supprimer cette observation de la liste à transmettre">'+
'<button class="btn btn-danger supprimer-obs" value="'+this.obsNbre+'" title="'+this.obsNbre+'">'+
'<i class="icon-trash icon-white"></i>'+
775,6 → 795,7
'</div>'+
'</div>'+
'</div>');
$('#zone-liste-obs').removeClass("hidden").show();
};
 
WidgetSaisie.prototype.stockerObsData = function() {