Subversion Repositories eFlore/Applications.cel

Rev

Rev 3638 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 3638 Rev 3844
Line -... Line 1...
-
 
1
import {WidgetsSaisiesCommun,utils} from './WidgetsSaisiesCommun.js';
-
 
2
import {initialiserModule} from './InitialisationASL.js';
-
 
3
import {valOk} from './Utils.js';
-
 
4
 
1
/**
5
/**
2
 * Constructeur WidgetsSaisiesASL par défaut
6
 * Constructeur WidgetsSaisiesASL par défaut
3
 * S'applique au squelette apa.tpl.html
7
 * S'applique au squelette apa.tpl.html
4
 * Squelette de base d'apa streets et lg
8
 * Squelette de base d'apa streets et lg
5
 */
9
 */
6
// ASL : APA, sTREETs, Lichen's Go!
10
// ASL : APA, sTREETs, Lichen's Go!
7
function WidgetsSaisiesASL( proprietes ) {
11
export function WidgetsSaisiesASL() {
-
 
12
	WidgetsSaisiesCommun.call(this);
-
 
13
 
8
	if  ( utils.valOk( proprietes ) ) {
14
	if  ( valOk( widgetProp ) ) {
9
		this.urlWidgets                        = proprietes.urlWidgets;
15
		this.urlWidgets                        = widgetProp.urlWidgets;
10
		this.projet                            = proprietes.projet;
16
		this.projet                            = widgetProp.projet;
11
		this.idProjet                          = proprietes.idProjet;
17
		this.idProjet                          = widgetProp.idProjet;
12
		this.tagsMotsCles                      = proprietes.tagsMotsCles;
18
		this.tagsMotsCles                      = widgetProp.tagsMotsCles;
13
		this.mode                              = proprietes.mode;
19
		this.mode                              = widgetProp.mode;
14
		this.langue                            = proprietes.langue;
20
		this.langue                            = widgetProp.langue;
15
		this.serviceObsImgs                    = proprietes.serviceObsImgs;
21
		this.serviceObsImgs                    = widgetProp.serviceObsImgs;
16
		this.serviceObsImgUrl                  = proprietes.serviceObsImgUrl;
22
		this.serviceObsImgUrl                  = widgetProp.serviceObsImgUrl;
17
		this.serviceAnnuaireIdUrl              = proprietes.serviceAnnuaireIdUrl;
23
		this.serviceAnnuaireIdUrl              = widgetProp.serviceAnnuaireIdUrl;
18
		this.serviceNomCommuneUrl              = proprietes.serviceNomCommuneUrl;
24
		this.serviceNomCommuneUrl              = widgetProp.serviceNomCommuneUrl;
19
		this.serviceNomCommuneUrlAlt           = proprietes.serviceNomCommuneUrlAlt;
25
		this.serviceNomCommuneUrlAlt           = widgetProp.serviceNomCommuneUrlAlt;
20
		this.debug                             = proprietes.debug;
26
		this.debug                             = widgetProp.debug;
21
		this.html5                             = proprietes.html5;
27
		this.html5                             = widgetProp.html5;
22
		this.serviceSaisieUrl                  = proprietes.serviceSaisieUrl;
28
		this.serviceSaisieUrl                  = widgetProp.serviceSaisieUrl;
23
		this.serviceObsUrl                     = proprietes.serviceObsUrl;
29
		this.serviceObsUrl                     = widgetProp.serviceObsUrl;
24
		this.chargementImageIconeUrl           = proprietes.chargementImageIconeUrl;
30
		this.chargementImageIconeUrl           = widgetProp.chargementImageIconeUrl;
25
		this.pasDePhotoIconeUrl                = proprietes.pasDePhotoIconeUrl;
31
		this.pasDePhotoIconeUrl                = widgetProp.pasDePhotoIconeUrl;
26
		this.autocompletionElementsNbre        = proprietes.autocompletionElementsNbre;
32
		this.autocompletionElementsNbre        = widgetProp.autocompletionElementsNbre;
27
		this.serviceAutocompletionNomSciUrl    = proprietes.serviceAutocompletionNomSciUrl;
33
		this.serviceAutocompletionNomSciUrl    = widgetProp.serviceAutocompletionNomSciUrl;
28
		this.serviceAutocompletionNomSciUrlTpl = proprietes.serviceAutocompletionNomSciUrlTpl;
34
		this.serviceAutocompletionNomSciUrlTpl = widgetProp.serviceAutocompletionNomSciUrlTpl;
29
		this.dureeMessage                      = proprietes.dureeMessage;
35
		this.dureeMessage                      = widgetProp.dureeMessage;
30
		this.obsMaxNbre                        = proprietes.obsMaxNbre;
36
		this.obsMaxNbre                        = widgetProp.obsMaxNbre;
31
		this.msgs                              = utils.msgs;
-
 
32
	}
37
	}
33
	this.urlRacine            = window.location.origin;
38
	this.urlRacine            = window.location.origin;
34
	this.isASL                = true;
39
	this.isASL                = true;
35
	this.nbObsEnCours         = 1;
40
	this.nbObsEnCours         = 1;
36
	this.obsNbre              = 0;
41
	this.obsNbre              = 0;
Line 45... Line 50...
45
	this.releveDatas          = null;
50
	this.releveDatas          = null;
46
	this.urlBaseAuth          = null;
51
	this.urlBaseAuth          = null;
47
	this.idUtilisateur        = null;
52
	this.idUtilisateur        = null;
48
	this.sujet                = null;
53
	this.sujet                = null;
49
	this.isTaxonListe         = false;
54
	this.isTaxonListe         = false;
-
 
55
	this.geoloc               = {};
50
}
56
}
51
WidgetsSaisiesASL.prototype = new WidgetsSaisiesCommun();
57
WidgetsSaisiesASL.prototype = Object.create(WidgetsSaisiesCommun.prototype);
52
 
-
 
53
/**
-
 
54
 * Initialise le formulaire, les validateurs, les listes de complétion...
-
 
55
 */
-
 
56
WidgetsSaisiesASL.prototype.initForm = function() {
58
WidgetsSaisiesASL.prototype.constructor = WidgetsSaisiesASL;
57
	this.initFormConnection();
-
 
58
};
-
 
Line 59... Line 59...
59
 
59
 
60
WidgetsSaisiesASL.prototype.initEvts = function() {
60
WidgetsSaisiesASL.prototype.initEvts = function() {
61
	const lthis = this;
61
	const lthis = this;
62
	// initialisation des fonctions connexion utilisateur
62
	// initialisation des fonctions connexion utilisateur
63
	this.initEvtsConnection();
63
	this.initEvtsConnection();
64
	// chargement plantes ou lichens
64
	// chargement plantes ou lichens
65
	if ( this.valOk( $( '.charger-releve' ) ) ) {
65
	if ( valOk( $( '.charger-releve' ) ) ) {
66
		var btnChargementForm = this.determinerBtnsChargementForm( '.' );
66
		const btnChargementForm = this.determinerBtnsChargementForm( '.' );
67
		// #releve-data n'est pas modifié, bouton dans #releves-utilisateur
67
		// #releve-data n'est pas modifié, bouton dans #releves-utilisateur
68
		this.btnsChargerForm( btnChargementForm, false );
68
		this.btnsChargerForm( btnChargementForm, false );
69
	}
69
	}
Line -... Line 70...
-
 
70
};
-
 
71
 
-
 
72
/**
-
 
73
 * Initialise le formulaire, les validateurs, les listes de complétion...
-
 
74
 */
-
 
75
WidgetsSaisiesASL.prototype.initForm = function() {
-
 
76
	this.initFormConnection();
70
};
77
};
71
 
78
 
72
WidgetsSaisiesASL.prototype.determinerBtnsChargementForm = function( typeSelecteur, ajouterBtnPoursuivre = false ) {
79
WidgetsSaisiesASL.prototype.determinerBtnsChargementForm = function( typeSelecteur, ajouterBtnPoursuivre = false ) {
73
	var complement       = '',
80
	let complement       = '',
Line 74... Line 81...
74
		selecteurDefault = '',
81
		selecteurDefault = '',
75
		separateur       = ',';
82
		separateur       = ',';
Line 105... Line 112...
105
	}
112
	}
106
	return typeSelecteur + selecteurDefault + complement;
113
	return typeSelecteur + selecteurDefault + complement;
107
};
114
};
Line 108... Line 115...
108
 
115
 
109
WidgetsSaisiesASL.prototype.btnsChargerForm = function( btn, modifierReleveData = true, dansRelevesUtilisateur = true ) {
116
WidgetsSaisiesASL.prototype.btnsChargerForm = function( btn, modifierReleveData = true, dansRelevesUtilisateur = true ) {
110
	const lthis = this;
117
	const lthis = this,
Line 111... Line 118...
111
	var bloc = ( dansRelevesUtilisateur ) ? '#releves-utilisateur' : '#charger-form';
118
		bloc    = ( dansRelevesUtilisateur ) ? '#releves-utilisateur' : '#charger-form';
112
 
119
 
Line 113... Line 120...
113
	$( btn, bloc ).off().on( 'click', function( event ) {
120
	$( btn, bloc ).off().on( 'click', function( event ) {
114
		event.preventDefault();
121
		event.preventDefault();
115
 
122
 
Line 116... Line 123...
116
		var thisWidgetObs = ( lthis.valOk( $( '#' + lthis.projet + '-obs' ).val() ) ) ? $.parseJSON( $( '#' + lthis.projet + '-obs' ).val() ) : [];
123
		const thisWidgetObs = ( valOk( $( '#' + lthis.projet + '-obs' ).val() ) ) ? $.parseJSON( $( '#' + lthis.projet + '-obs' ).val() ) : [],
117
		var nomSquelette  = $( this ).data( 'load' ),
124
			nomSquelette    = $( this ).data( 'load' );
118
			releveDatas   = '';
125
		let releveDatas   = '';
119
 
126
 
120
		$( '#charger-form' ).data( 'load', nomSquelette );
127
		$( '#charger-form' ).data( 'load', nomSquelette );
121
		if ( modifierReleveData ) {
128
		if ( modifierReleveData ) {
122
			if ( '#bouton-nouveau-releve' !== btn ) {
129
			if ( '#bouton-nouveau-releve' !== btn ) {
123
				$( '#bouton-nouveau-releve' ).removeClass( 'hidden' );
130
				$( '#bouton-nouveau-releve' ).removeClass( 'hidden' );
124
				if ( lthis.valOk( thisWidgetObs ) ) {
131
				if ( valOk( thisWidgetObs ) ) {
125
			 		releveDatas = JSON.stringify( thisWidgetObs[ $( this ).data( 'releve' ) ] );
132
			 		releveDatas = JSON.stringify( thisWidgetObs[ $( this ).data( 'releve' ) ] );
126
			 	}
133
			 	}
127
			} else {
134
			} else {
128
				$( btn ).addClass( 'hidden' );
135
				$( btn ).addClass( 'hidden' );
129
			}
136
			}
130
			$( '#releve-data' ).val( releveDatas );
137
			$( '#releve-data' ).val( releveDatas );
131
		}
138
		}
132
		lthis.chargerForm( nomSquelette, lthis );
139
		lthis.chargerForm( nomSquelette, lthis );
133
		if ( lthis.valOk( thisWidgetObs ) ) {
140
		if ( valOk( thisWidgetObs ) ) {
134
			$( '#bouton-list-releves' ).removeClass( 'hidden' );
141
			$( '#bouton-list-releves' ).removeClass( 'hidden' );
Line 135... Line 142...
135
		}
142
		}
136
		$( '#table-releves' ).addClass( 'hidden' );
143
		$( '#table-releves' ).addClass( 'hidden' );
137
	});
-
 
138
};
144
	});
Line 139... Line 145...
139
 
145
};
140
WidgetsSaisiesASL.prototype.chargerForm = function( nomSquelette, formObj ) {
146
 
141
	const lthis = this;
147
WidgetsSaisiesASL.prototype.chargerForm = function( nomSquelette, formObj ) {
142
 
148
	const lthis = this,
143
	var urlSquelette = this.urlWidgets + 'saisie?projet=' + this.projet + '&squelette=' + nomSquelette;
149
		urlSquelette = this.urlWidgets + 'saisie?projet=' + this.projet + '&squelette=' + nomSquelette;
144
 
150
 
145
	$.ajax({
151
	$.ajax({
146
		url: urlSquelette,
152
		url: urlSquelette,
147
		type: 'get',
153
		type: 'get',
148
		success: function( squelette ) {
154
		success: function( squelette ) {
Line 167... Line 173...
167
		case 'lichens' :
173
		case 'lichens' :
168
			this.chargerFormPlantesOuLichens( squelette, nomSquelette );
174
			this.chargerFormPlantesOuLichens( squelette, nomSquelette );
169
			break;
175
			break;
170
		case 'arbres' :
176
		case 'arbres' :
171
		default :
177
		default :
172
			if ( this.valOk( this.sujet ) ) {
178
			if ( valOk( this.sujet ) ) {
173
				this.reinitialiserWidget( squelette );
179
				this.reinitialiserWidget( squelette );
174
			} else {
180
			} else {
175
				this.chargerObsUtilisateur( squelette );
181
				this.chargerObsUtilisateur( squelette );
176
			}
182
			}
177
		break;
183
		break;
178
	}
184
	}
179
};
185
};
Line 180... Line 186...
180
 
186
 
181
WidgetsSaisiesASL.prototype.chargerFormPlantesOuLichens = function( squelette, nomSquelette ) {
187
WidgetsSaisiesASL.prototype.chargerFormPlantesOuLichens = function( squelette, nomSquelette ) {
182
	if ( this.valOk( $( '#releve-data' ).val() ) ) {
188
	if ( valOk( $( '#releve-data' ).val() ) ) {
-
 
189
		$( '#charger-form' ).html( squelette );
183
		$( '#charger-form' ).html( squelette );
190
		initialiserModule(nomSquelette);
-
 
191
		this.confirmerSortie();
184
		this.confirmerSortie();
192
 
185
		const releveDatas = $.parseJSON( $( '#releve-data' ).val() );
193
		const releveDatas = $.parseJSON( $( '#releve-data' ).val() );
Line 186... Line 194...
186
		const nbArbres    = releveDatas.length -1;
194
		const nbArbres    = releveDatas.length -1;
187
 
195
 
188
		for ( var i = 1; i <= nbArbres ; i++ ) {
196
		for ( let i = 1; i <= nbArbres ; i++ ) {
189
			$( '#choisir-arbre' ).append(
197
			$( '#choisir-arbre' ).append(
190
				'<option value="' + i + '">'+
198
				'<option value="' + i + '">'+
191
					this.msgTraduction( 'arbre' ) + ' ' + i +
199
					this.msgTraduction( 'arbre' ) + ' ' + i +
Line 196... Line 204...
196
	}
204
	}
197
};
205
};
Line 198... Line 206...
198
 
206
 
199
WidgetsSaisiesASL.prototype.reinitialiserWidget = function( squelette ) {
207
WidgetsSaisiesASL.prototype.reinitialiserWidget = function( squelette ) {
-
 
208
	$( '#charger-form' ).html( squelette );
200
	$( '#charger-form' ).html( squelette );
209
	initialiserModule();
201
	if ( this.valOk( $( '#releve-data' ).val() ) ) {
210
	if ( valOk( $( '#releve-data' ).val() ) ) {
202
		this.rechargerFormulaire();
211
		this.rechargerFormulaire();
203
	}
212
	}
Line 204... Line 213...
204
};
213
};
205
 
214
 
206
/**
215
/**
207
 * Infos des obs arbres de cet utilisateur
216
 * Infos des obs arbres de cet utilisateur
208
 */
217
 */
209
WidgetsSaisiesASL.prototype.chargerObsUtilisateur = function( formReleve ) {
218
WidgetsSaisiesASL.prototype.chargerObsUtilisateur = function( formReleve ) {
210
	const lthis = this;
219
	const lthis = this,
211
	var tagsMotsCles          = this.tagsMotsCles.split( ',' ),
220
		tagsMotsCles        = this.tagsMotsCles.split( ',' ),
Line 212... Line 221...
212
		reprereAjoutTags    = tagsMotsCles.length - 1,
221
		reprereAjoutTags    = tagsMotsCles.length - 1;
213
		queryStringMotsCles = '';
222
	let queryStringMotsCles = '';
214
 
223
 
215
	$.each( tagsMotsCles , function( i, tag ) {
224
	$.each( tagsMotsCles , function( i, tag ) {
Line 225... Line 234...
225
 
234
 
226
	$.ajax({
235
	$.ajax({
227
		url: urlObs,
236
		url: urlObs,
228
		type: 'GET',
237
		type: 'GET',
229
		success: function( dataObs, textStatus, jqXHR ) {
238
		success: function( dataObs, textStatus, jqXHR ) {
230
			if ( !lthis.valOk( dataObs ) ) {
239
			if ( !valOk( dataObs ) ) {
231
				dataObs = '';
240
				dataObs = '';
232
			}
241
			}
233
			lthis.preformaterDonneesObs( dataObs );
242
			lthis.preformaterDonneesObs( dataObs );
234
		},
243
		},
235
		error: function( jqXHR, textStatus, errorThrown ) {
244
		error: function( jqXHR, textStatus, errorThrown ) {
236
			lthis.activerModale( lthis.msgTraduction( 'erreur-chargement-obs-utilisateur' ) );
245
			utils.activerModale( lthis.msgTraduction( 'erreur-chargement-obs-utilisateur' ) );
237
		}
246
		}
238
	})
247
	})
239
	.always( function() {
248
	.always( function() {
-
 
249
		$( '#charger-form' ).html( formReleve );
240
		$( '#charger-form' ).html( formReleve );
250
		initialiserModule();
241
	});
251
	});
Line 242... Line 252...
242
};
252
};
243
 
253
 
244
/**
254
/**
245
 * Préformater les données des obs d'un utilisateur
255
 * Préformater les données des obs d'un utilisateur
246
 */
256
 */
Line 247... Line 257...
247
WidgetsSaisiesASL.prototype.preformaterDonneesObs = function( dataObs ) {
257
WidgetsSaisiesASL.prototype.preformaterDonneesObs = function( dataObs ) {
-
 
258
	const lthis = this;
248
	const lthis = this;
259
 
249
 
260
	if ( valOk( dataObs ) ) {
250
	if ( this.valOk( dataObs ) ) {
261
		const tagsMotsCles = this.tagsMotsCles.split( ',' );
251
		var projetObs  = [],
262
		let projetObs  = [],
252
			datRuComun = [],
263
			datRuComun = [],
253
			obsArbres  = [],
-
 
Line 254... Line 264...
254
			projetObsE = {},
264
			obsArbres  = [],
255
			count      = 0,
265
			projetObsE = {},
256
			tagsMotsCles = this.tagsMotsCles.split( ',' );
266
			count      = 0;
257
 
267
 
258
		$.each( dataObs, function( i, obs ) {
268
		$.each( dataObs, function( i, obs ) {
259
			if (
269
			if (
260
				new RegExp( tagsMotsCles[0] ).test( obs.mots_cles_texte ) &&
270
				new RegExp( tagsMotsCles[0] ).test( obs.mots_cles_texte ) &&
261
				new RegExp( tagsMotsCles[1] ).test( obs.mots_cles_texte ) &&
271
				new RegExp( tagsMotsCles[1] ).test( obs.mots_cles_texte ) &&
262
				!/(:?plantes|lichens(?!go))/.test( obs.mots_cles_texte )
272
				!/(:?plantes|lichens(?!go))/.test( obs.mots_cles_texte )
263
			) {
273
			) {
264
				if ( lthis.valOk( obs.obs_etendue ) ) {
274
				if ( valOk( obs.obs_etendue ) ) {
265
					$.each( obs.obs_etendue, function( indice, obsE ) {
275
					$.each( obs.obs_etendue, function( indice, obsE ) {
Line 277... Line 287...
277
			}
287
			}
278
		});
288
		});
279
		// on insert les arbres dans les relevés en fonction de la date et la rue d'observation
289
		// on insert les arbres dans les relevés en fonction de la date et la rue d'observation
280
		// car les arbres pour un relevé (date/rue) n'ont pas forcément été enregistrés dans l'ordre ni le même jour
290
		// car les arbres pour un relevé (date/rue) n'ont pas forcément été enregistrés dans l'ordre ni le même jour
281
		$.each( obsArbres, function( indexArbre, arbre ) {
291
		$.each( obsArbres, function( indexArbre, arbre ) {
282
			for ( var indexReleve = 0; indexReleve < datRuComun.length; indexReleve++ ) {
292
			for ( let indexReleve = 0; indexReleve < datRuComun.length; indexReleve++ ) {
283
				if ( arbre.date_rue_commune  === datRuComun[indexReleve] ) {
293
				if ( arbre.date_rue_commune  === datRuComun[indexReleve] ) {
284
					projetObs[indexReleve].push( arbre );
294
					projetObs[indexReleve].push( arbre );
285
				}
295
				}
286
			}
296
			}
287
		});
297
		});
288
		if ( this.valOk( projetObs ) ) {
298
		if ( valOk( projetObs ) ) {
289
			this.prechargerLesObs( projetObs );
299
			this.prechargerLesObs( projetObs );
290
			$( '#' + this.projet + '-obs' ).val( JSON.stringify( projetObs ) );
300
			$( '#' + this.projet + '-obs' ).val( JSON.stringify( projetObs ) );
291
			$( '#bouton-list-releves' ).removeClass( 'hidden' );
301
			$( '#bouton-list-releves' ).removeClass( 'hidden' );
292
		}
302
		}
293
		$( '#dates-rues-communes' ).val( JSON.stringify( datRuComun ) );
303
		$( '#dates-rues-communes' ).val( JSON.stringify( datRuComun ) );
Line 296... Line 306...
296
 
306
 
297
/**
307
/**
298
 * Stocke en Json les valeurs du relevé dans en value d'un input hidden
308
 * Stocke en Json les valeurs du relevé dans en value d'un input hidden
299
 */
309
 */
300
WidgetsSaisiesASL.prototype.formaterReleveData = function( releveDatas ) {
310
WidgetsSaisiesASL.prototype.formaterReleveData = function( releveDatas ) {
301
	var releve  = [],
311
	const obs  = releveDatas.obs,
302
		obs  = releveDatas.obs,
312
		obsE   = releveDatas.obsE;
Line 303... Line 313...
303
		obsE = releveDatas.obsE;
313
	let releve = [];
304
 
314
 
305
	releve[0] = {
315
	releve[0] = {
306
		utilisateur        : obs.ce_utilisateur,
316
		utilisateur        : obs.ce_utilisateur,
Line 313... Line 323...
313
		'latitude-releve'  : obsE['latitude-releve'],
323
		'latitude-releve'  : obsE['latitude-releve'],
314
		'longitude-releve' : obsE['longitude-releve'],
324
		'longitude-releve' : obsE['longitude-releve'],
315
		'altitude-releve'  : obsE['altitude-releve'],
325
		'altitude-releve'  : obsE['altitude-releve'],
316
		commentaires       : obs.commentaire
326
		commentaires       : obs.commentaire
317
	};
327
	};
-
 
328
 
318
	if ( 'tb_lichensgo' !== this.projet ) {
329
	if ( 'tb_lichensgo' !== this.projet ) {
319
		releve[0]['zone-pietonne']    = obsE['zone-pietonne'];
330
		releve[0]['zone-pietonne']    = obsE['zone-pietonne'];
320
		releve[0]['pres-lampadaires'] = obsE['pres-lampadaires'];
331
		releve[0]['pres-lampadaires'] = obsE['pres-lampadaires'];
321
	}
332
	}
-
 
333
 
322
	return releve;
334
	return releve;
323
};
335
};
Line 324... Line 336...
324
 
336
 
325
/**
337
/**
326
 * Stocke en Json les valeurs d'une obs
338
 * Stocke en Json les valeurs d'une obs
327
 */
339
 */
328
WidgetsSaisiesASL.prototype.formaterArbreData = function( arbresDatas ) {
340
WidgetsSaisiesASL.prototype.formaterArbreData = function( arbresDatas ) {
329
	var retour = {},
341
	const obs = arbresDatas.obs,
330
		obs          = arbresDatas.obs,
342
		obsE  = arbresDatas.obsE;
331
		obsE         = arbresDatas.obsE,
343
	let retour       = {},
-
 
344
		miniatureImg = [];
332
		miniatureImg = [];
345
 
333
	if( this.valOk( obs['miniature-img'] ) ) {
346
	if( valOk( obs['miniature-img'] ) ) {
334
		miniatureImg = obs['miniature-img'];
347
		miniatureImg = obs['miniature-img'];
335
	} else if ( this.valOk( obsE['miniature-img'] ) ) {
348
	} else if ( valOk( obsE['miniature-img'] ) ) {
336
		miniatureImg = $.parseJSON( obsE['miniature-img'] );
349
		miniatureImg = $.parseJSON( obsE['miniature-img'] );
Line 337... Line 350...
337
	}
350
	}
338
 
351
 
Line 370... Line 383...
370
	}
383
	}
371
	return retour;
384
	return retour;
372
};
385
};
Line 373... Line 386...
373
 
386
 
374
WidgetsSaisiesASL.prototype.prechargerLesObs = function( thisWidgetObs ) {
387
WidgetsSaisiesASL.prototype.prechargerLesObs = function( thisWidgetObs ) {
375
	const lthis = this;
388
	const lthis = this,
376
	const $listReleve = $( '#list-releves' );
389
		$listReleve = $( '#list-releves' ),
Line 377... Line 390...
377
	const TEXT_ARBRE = ' ' + this.msgTraduction( 'arbre' ).toLowerCase();
390
		TEXT_ARBRE  = ' ' + this.msgTraduction( 'arbre' ).toLowerCase();
378
 
391
 
379
	var nbArbres   = '',
392
	let nbArbres   = '',
Line 380... Line 393...
380
		texteArbre = '',
393
		texteArbre = '',
381
		releveHtml = '';
394
		releveHtml = '';
Line 386... Line 399...
386
			event.preventDefault();
399
			event.preventDefault();
387
			$( '#table-releves' ).removeClass( 'hidden' );
400
			$( '#table-releves' ).removeClass( 'hidden' );
388
			$( this ).addClass( 'hidden' );
401
			$( this ).addClass( 'hidden' );
389
	});
402
	});
390
	function boutonsChargerReleve( lthis, squelette, indice ) {
403
	function boutonsChargerReleve( lthis, squelette, indice ) {
391
		var boutonLichens =
404
		const boutonLichens =
392
				'<a href="" class="saisir-lichens btn btn-sm btn-info" data-releve="' + indice + '" data-load="lichens">'+
405
				'<a href="" class="saisir-lichens btn btn-sm btn-info" data-releve="' + indice + '" data-load="lichens">'+
393
					'<i class="far fa-snowflake"></i> ' + lthis.msgTraduction( 'saisir-lichens' )+
406
					'<i class="far fa-snowflake"></i> ' + lthis.msgTraduction( 'saisir-lichens' )+
394
				'</a> ',
407
				'</a> ',
395
			boutonPlantes =
408
			boutonPlantes   =
396
				'<a href="" class="saisir-plantes btn btn-sm btn-info mb-1" data-releve="' + indice + '" data-load="plantes">'+
409
				'<a href="" class="saisir-plantes btn btn-sm btn-info mb-1" data-releve="' + indice + '" data-load="plantes">'+
397
					'<i class="fas fa-seedling"></i> ' + lthis.msgTraduction( 'saisir-plantes' )+
410
					'<i class="fas fa-seedling"></i> ' + lthis.msgTraduction( 'saisir-plantes' )+
398
				'</a> ';
411
				'</a> ';
Line 399... Line 412...
399
 
412
 
Line 406... Line 419...
406
			default :
419
			default :
407
				return boutonPlantes + boutonLichens;
420
				return boutonPlantes + boutonLichens;
408
		}
421
		}
409
		return '';
422
		return '';
410
	}
423
	}
-
 
424
 
411
	$.each( thisWidgetObs, function( i, releve ) {
425
	$.each( thisWidgetObs, function( i, releve ) {
412
		nbArbres = releve.length - 1;
426
		nbArbres = releve.length - 1;
413
		texteArbre = ( 1 < nbArbres ) ? ( TEXT_ARBRE + 's' ) : TEXT_ARBRE;
427
		texteArbre = ( 1 < nbArbres ) ? ( TEXT_ARBRE + 's' ) : TEXT_ARBRE;
414
		releveHtml +=
428
		releveHtml +=
415
			'<tr class="table-light text-center">'+
429
			'<tr class="table-light text-center">'+
Line 428... Line 442...
428
					'</a> '+
442
					'</a> '+
429
					boutonsChargerReleve( lthis, lthis.projet, i ) +
443
					boutonsChargerReleve( lthis, lthis.projet, i ) +
430
				'</td>'+
444
				'</td>'+
431
			'</tr>';
445
			'</tr>';
432
	});
446
	});
-
 
447
 
433
	$listReleve.append( releveHtml );
448
	$listReleve.append( releveHtml );
-
 
449
 
434
	$( '#nb-releves-bienvenue' )
450
	$( '#nb-releves-bienvenue' )
435
		.removeClass( 'hidden' )
451
		.removeClass( 'hidden' )
436
		.find( 'span.nb-releves' )
452
		.find( 'span.nb-releves' )
437
			.text( thisWidgetObs.length );
453
			.text( thisWidgetObs.length );
438
};
454
};
439
455