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() { |