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