Subversion Repositories eFlore/Applications.cel

Rev

Rev 2408 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
2709 mathias 1
function WidgetSaisieAmbrosia() {
1210 jpm 2
}
2709 mathias 3
WidgetSaisieAmbrosia.prototype = new WidgetSaisie();
1210 jpm 4
 
5
 
2709 mathias 6
WidgetSaisieAmbrosia.prototype.initEvts = function() {
7
	var lthis = this;
8
	// super()
9
	WidgetSaisie.prototype.initEvts.call(this);
1249 jpm 10
 
2328 jpm 11
	$("body").on('click', ".fermer", function(event) {
12
			event.preventDefault();
2709 mathias 13
			lthis.basculerOuvertureFermetureCadre($(this).find('.icone'));
2328 jpm 14
	});
2709 mathias 15
};
2328 jpm 16
 
2709 mathias 17
// @TODO harmoniser
18
WidgetSaisieAmbrosia.prototype.configurerFormValidator = function() {
1210 jpm 19
	$.validator.addMethod(
2328 jpm 20
		"dateCel",
21
		function (value, element) {
22
			return value == "" || (/^[0-9]{2}[-\/][0-9]{2}[-\/][0-9]{4}$/.test(value));
23
		},
1213 jpm 24
		"Format : jj/mm/aaaa. Date incomplète, utiliser 0, exemple : 00/12/2011.");
2328 jpm 25
 
1210 jpm 26
	$.extend($.validator.defaults, {
2328 jpm 27
		ignore: [],// Forcer Jquery Validate à examiner les éléments avec en display:none;
28
		highlight: function(element) {
29
			$(element).closest('.control-group').removeClass('success').addClass('error');
1210 jpm 30
		},
2328 jpm 31
		success: function(element) {
32
			element.text('OK!').addClass('valid');
33
			element.closest('.control-group').removeClass('error').addClass('success');
34
 
35
			if (element.attr('id') == 'taxon' && $('#taxon').val() != '') {
36
				// Si le taxon n'est pas lié au référentiel, on vide le data associé
37
				if ($('#taxon').data('value') != $('#taxon').val()) {
38
					$('#taxon').data('numNomSel', '');
39
					$('#taxon').data('nomRet', '');
40
					$('#taxon').data('numNomRet', '');
41
					$('#taxon').data('nt', '');
42
					$('#taxon').data('famille', '');
1213 jpm 43
				}
1210 jpm 44
			}
45
		}
46
	});
2709 mathias 47
};
1249 jpm 48
 
2709 mathias 49
WidgetSaisieAmbrosia.prototype.definirReglesFormValidator = function() {
2328 jpm 50
	$('#form-observateur').validate({
1210 jpm 51
		rules: {
52
			courriel : {
53
				required : true,
54
				email : true},
55
			courriel_confirmation : {
56
				required : true,
2328 jpm 57
				equalTo: '#courriel'}
1210 jpm 58
		}
59
	});
2328 jpm 60
	$('#form-station').validate({
1210 jpm 61
		rules: {
62
			latitude : {
2328 jpm 63
				range: [-90, 90],
64
				required: true},
1210 jpm 65
			longitude : {
2328 jpm 66
				range: [-180, 180],
67
				required: true},
68
			stationSurface: 'required',
69
			milieu: 'required'
1210 jpm 70
		}
71
	});
2328 jpm 72
	$('#form-obs').validate({
1210 jpm 73
		rules: {
2328 jpm 74
			date: {
75
				required: true,
76
				'dateCel' : true},
77
			taxon: 'required',
78
			recouvrement: 'required'
79
		},
80
		errorPlacement: function(error, element) {
81
			if (element.attr('name') == 'date') {
82
				element.parent('.input-prepend').after(error);
83
			} else {
84
				error.insertAfter(element);
85
			}
1210 jpm 86
		}
87
	});
2709 mathias 88
};
1249 jpm 89
 
2709 mathias 90
WidgetSaisieAmbrosia.prototype.basculerOuvertureFermetureCadre = function(element) {
2328 jpm 91
	if (element.hasClass('icon-plus-sign')) {
92
		element.removeClass('icon-plus-sign').addClass('icon-minus-sign');
93
	} else {
94
		element.removeClass('icon-minus-sign').addClass('icon-plus-sign');
95
	}
2709 mathias 96
};
2328 jpm 97
 
2709 mathias 98
// @TODO harmoniser si espèce ou référentiel figés
99
WidgetSaisieAmbrosia.prototype.afficherObs = function() {
1249 jpm 100
	$("#liste-obs").prepend(
2709 mathias 101
		'<div id="obs'+this.obsNbre+'" class="row-fluid obs obs'+this.obsNbre+'">'+
1249 jpm 102
			'<div class="span12">'+
1253 jpm 103
				'<div class="well">'+
2328 jpm 104
					'<div class="obs-action pull-right has-tooltip" data-placement="bottom" '+
1253 jpm 105
						'title="Supprimer cette observation de la liste à transmettre">'+
2709 mathias 106
						'<button class="btn btn-danger supprimer-obs" value="'+this.obsNbre+'" title="'+this.obsNbre+'">'+
1249 jpm 107
							'<i class="icon-trash icon-white"></i>'+
108
						'</button>'+
2328 jpm 109
					'</div> '+
110
					'<div class="row-fluid">'+
1249 jpm 111
						'<div class="thumbnail span2">'+
2709 mathias 112
						this.ajouterImgMiniatureAuTransfert()+
1240 jpm 113
						'</div>'+
1249 jpm 114
						'<div class="span9">'+
115
							'<ul class="unstyled">'+
116
								'<li>'+
117
									'<span class="nom-sci">'+$("#taxon").val()+'</span> '+
2709 mathias 118
									this.ajouterNumNomSel()+
1249 jpm 119
									' observé à '+
120
									'<span class="commune">'+$('#commune-nom').text()+'</span> '+
121
									'('+$('#commune-code-insee').text()+') ['+$("#latitude").val()+' / '+$("#longitude").val()+']'+
122
									' le '+
123
									'<span class="date">'+$("#date").val()+'</span>'+
124
								'</li>'+
125
								'<li>'+
2330 jpm 126
									'<span>Lieu-dit :</span> '+$('#lieudit').val()+' - '+
1249 jpm 127
									'<span>Station :</span> '+$('#station').val()+' '+
128
								'</li>'+
129
								'<li>'+
2330 jpm 130
									'<span>Surface :</span> '+$('#station-surface option:selected').text()+' - '+
131
									'<span>Recouvrement :</span> '+$('#recouvrement option:selected').text()+' '+
1249 jpm 132
								'</li>'+
2330 jpm 133
								'<li>'+
134
									'<span>Milieu :</span> '+$('#milieu').val()+' '+' - '+
135
									'<span>Commentaire sur le milieu :</span> <span class="discretion">'+$('#milieu-commentaire').val()+' '+'</span><br />'+
136
								'</li>'+
137
								'<li>'+
138
									'Notes : <span class="discretion">'+$("#notes").val()+'</span>'+
139
								'</li>'+
1249 jpm 140
							'</ul>'+
141
						'</div>'+
1237 jpm 142
					'</div>'+
1249 jpm 143
				'</div>'+
144
			'</div>'+
145
		'</div>');
2709 mathias 146
};
1249 jpm 147
 
2709 mathias 148
// @TODO harmoniser
149
WidgetSaisieAmbrosia.prototype.ajouterNumNomSel = function() {
1240 jpm 150
	var nn = '';
151
	if ($("#taxon").data("numNomSel") == undefined) {
152
		nn = '<span class="alert-error">[non lié au référentiel]</span>';
153
	} else {
2330 jpm 154
		nn = '<span class="nn">['+
2709 mathias 155
			'<span class="referentiel-obs">'+($("#taxon").data("numNomSel") == undefined ? '' : this.nomSciReferentiel + '-')+'</span>'+
2330 jpm 156
			'nn'+$("#taxon").data("numNomSel")+
157
			']</span>';
1240 jpm 158
	}
159
	return nn;
2709 mathias 160
};