Subversion Repositories eFlore/Applications.cel

Rev

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

Rev 3989 Rev 3990
Line 73... Line 73...
73
	this.obs           = this.item['obs'];
73
	this.obs           = this.item['obs'];
74
	this.nn            = '[nn' + this.obs['nom_sel_nn']+']';
74
	this.nn            = '[nn' + this.obs['nom_sel_nn']+']';
75
	this.urlIP         = this.obs['url_ip'];
75
	this.urlIP         = this.obs['url_ip'];
76
	this.tagsImage     = this.tagsToArray( this.item['tags_photo'] );
76
	this.tagsImage     = this.tagsToArray( this.item['tags_photo'] );
77
	this.tagsObs       = this.tagsToArray( this.obs['tags_obs'] );
77
	this.tagsObs       = this.tagsToArray( this.obs['tags_obs'] );
-
 
78
	this.isAuteurTela  = this.item['is_auteur_tela'];
78
	let auteurMail = this.item['utilisateur']['mail_utilisateur'].split("@")[0];
79
	let auteurMail 	   = this.item['utilisateur']['mail_utilisateur'].split("@")[0] + '@...';
79
	this.auteur        = this.item["utilisateur"]["nom_utilisateur"] ? this.item["utilisateur"]["nom_utilisateur"] : auteurMail;
80
	this.auteur        = this.item["utilisateur"]["nom_utilisateur"].trim().length !== 0 ? this.item["utilisateur"]["nom_utilisateur"] : auteurMail;
80
	this.date          = this.item['date'];
81
	this.date          = this.item['date'];
81
	this.urlTpl 	   = this.item['url_tpl'];
82
	this.urlTpl 	   = this.item['url_tpl'];
-
 
83
	if (!this.urlIP){
-
 
84
		this.urlIP = 'www.tela-botanica.org/appli:identiplante#obs~' + this.obs['id_obs'];
-
 
85
	}
82
};
86
};
Line 83... Line 87...
83
 
87
 
84
WidgetPhotoPopup.prototype.tagsToArray = function( tags ) {
88
WidgetPhotoPopup.prototype.tagsToArray = function( tags ) {
85
	if(!this.valOk(tags)) {
89
	if(!this.valOk(tags)) {
Line 130... Line 134...
130
		}
134
		}
Line 131... Line 135...
131
 
135
 
132
		event = (event || window.event);
136
		event = (event || window.event);
133
		// event.keyCode déprécié, on tente d'abord event.key
137
		// event.keyCode déprécié, on tente d'abord event.key
134
		let sens = ( 'key' in event ) ? determinerSens( event.key, 'ArrowLeft', 'ArrowRight' ) : determinerSens( event.keyCode, 37, 39 );;
-
 
-
 
138
		let sens = ( 'key' in event ) ? determinerSens( event.key, 'ArrowLeft', 'ArrowRight' ) : determinerSens( event.keyCode, 37, 39 );;
135
console.log(sens);
139
 
136
		if ( lthis.valOk( sens ) ) {
140
		if ( lthis.valOk( sens ) ) {
137
			lthis.defilerImage( sens );
141
			lthis.defilerImage( sens );
138
		}
142
		}
139
	});
143
	});
Line 158... Line 162...
158
 
162
 
159
		lthis.ouvrirVoletFct( voletAOuvrir, voletAFermer );
163
		lthis.ouvrirVoletFct( voletAOuvrir, voletAFermer );
160
		if ( window.matchMedia( '(max-width: 991px)' ).matches ) {
164
		if ( window.matchMedia( '(max-width: 991px)' ).matches ) {
161
			$( '#info-img-galerie' ).addClass( 'hidden' );
165
			$( '#info-img-galerie' ).addClass( 'hidden' );
162
			$( '#volet, #retour-galerie' ).removeClass( 'hidden' );
166
			$( '#volet, #retour-galerie' ).removeClass( 'hidden' );
163
			$( '#hide-metas-div' ).removeClass( 'hidden' );
167
			$( '#hide-metas-div' ).addClass( 'hidden' );
164
		}
168
		}
165
	});
169
	});
Line 166... Line 170...
166
};
170
};
Line 186... Line 190...
186
		"<p>"+ lthis.item['tags_photo']+"</p>"
190
		"<p>"+ lthis.item['tags_photo']+"</p>"
187
	)
191
	)
188
}
192
}
Line 189... Line 193...
189
 
193
 
-
 
194
WidgetPhotoPopup.prototype.initEvtsTagsPF = function() {
-
 
195
	// Récupération des tags PF
-
 
196
	let url = lthis.urlServiceDel + 'mots-cles?image=' + this.idImage;
-
 
197
	this.envoyerVersService('GET', url, null, null, function (erreur, data) {
-
 
198
		if (erreur) {
-
 
199
			console.error("Erreur lors de la requête :", erreur);
-
 
200
		} else {
-
 
201
			lthis.item['tags_pf']= [];
-
 
202
			let tags = Object.values(data['resultats']);
-
 
203
			tags.forEach(tag => {
-
 
204
				lthis.item['tags_pf'].push({'id_mot_cle' : tag.id_mot_cle, 'mot_cle' : tag.mot_cle})
-
 
205
			})
-
 
206
			lthis.tagsPf();
-
 
207
			lthis.tagsPfCustom();
-
 
208
		}
-
 
209
	});
190
WidgetPhotoPopup.prototype.initEvtsTagsPF = function() {
210
 
191
	const tagsPfDiv = $('#tags-pf');
211
	const tagsPfDiv = $('#tags-pf');
192
	tagsPfDiv.html('');
212
	tagsPfDiv.html('');
193
	tagsPfDiv.append('<a id="port" class="btn tag">Port</a>' +
213
	tagsPfDiv.append('<a id="port" class="btn tag">Port</a>' +
194
		'<a id="fleur" class="btn tag">Fleur</a>' +
214
		'<a id="fleur" class="btn tag">Fleur</a>' +
Line 198... Line 218...
198
		'<a id="rameau" class="btn tag">Rameau</a>' +
218
		'<a id="rameau" class="btn tag">Rameau</a>' +
199
		'<a id="planche" class="btn tag">Planche</a>' +
219
		'<a id="planche" class="btn tag">Planche</a>' +
200
		'<a id="rosette" class="btn tag">Rosette</a>' +
220
		'<a id="rosette" class="btn tag">Rosette</a>' +
201
		'<a id="pousse" class="btn tag">Pousse</a>');
221
		'<a id="pousse" class="btn tag">Pousse</a>');
Line 202... Line -...
202
 
-
 
203
	this.tagsPf();
-
 
204
	this.tagsPfCustom();
-
 
205
 
-
 
206
	$( '#bloc-tags' ).off('click');
-
 
207
 
222
 
208
	$( '#bloc-tags' ).on( 'click', '.tag', function( event ) {
223
	$( '#bloc-tags' ).off('click').on( 'click', '.tag', function( event ) {
209
		event.preventDefault();
224
		event.preventDefault();
Line 210... Line 225...
210
		$( this ).toggleClass( 'actif' );
225
		$( this ).toggleClass( 'actif' );
211
 
226
 
Line 245... Line 260...
245
					lthis.item['tags_pf'].push({'id_mot_cle' : tagId['id'][0], 'mot_cle' : motCleClique})
260
					lthis.item['tags_pf'].push({'id_mot_cle' : tagId['id'][0], 'mot_cle' : motCleClique})
246
				}
261
				}
247
			});
262
			});
248
		}
263
		}
249
	});
264
	});
250
	/* //@TODO est-ce qu'on garde cette croix?
-
 
251
	$( '#bloc-tags' ).on( 'click', '.custom-tag.actif .fermer', function( event ) {
-
 
252
		event.preventDefault();
-
 
253
		//			Supprimer un custom-tag
-
 
254
		//	_OPTIONS
-
 
255
		// https://api-test.tela-botanica.org/service:del:0.1/mots-cles/38368
-
 
256
		// 	_paramètres
-
 
257
		// L'id du tag à la fin de l'url
-
 
258
		//	_DELETE
-
 
259
		// https://api-test.tela-botanica.org/service:del:0.1/mots-cles/38368
-
 
260
		// 	_réponse:
-
 
261
		// ""
-
 
262
		// 			Mettre à jour les mots cles
-
 
263
		//	_OPTIONS
-
 
264
		// https://api-test.tela-botanica.org/service:del:0.1/mots-cles?image=197938
-
 
265
		//	_GET
-
 
266
		// https://api-test.tela-botanica.org/service:del:0.1/mots-cles?image=197938
-
 
267
		$( this ).parent( '.custom-tag' ).remove();
-
 
268
	});
-
 
269
	*/
-
 
270
/*
-
 
271
	$( '#bloc-tags' ).on( 'keyup', '.custom-tag.actif', function( event ) {
-
 
272
		let supprimerTag = false;
-
 
273
 
-
 
274
		event = ( event || window.event );
-
 
275
		// event.keyCode déprécié, on tente d'abord event.key
-
 
276
		if ( 'key' in event ) {
-
 
277
			supprimerTag = ( 'Delete' === event.key || 'Backspace' === event.key );
-
 
278
		} else {
-
 
279
			supprimerTag = ( 46 === event.keyCode || 8 === event.keyCode );
-
 
280
		}
-
 
281
		if ( supprimerTag ) {
-
 
282
			//			Supprimer un custom-tag
-
 
283
			//	_OPTIONS
-
 
284
			// https://api-test.tela-botanica.org/service:del:0.1/mots-cles/38368
-
 
285
			// 	_paramètres
-
 
286
			// L'id du tag à la fin de l'url
-
 
287
			//	_DELETE
-
 
288
			// https://api-test.tela-botanica.org/service:del:0.1/mots-cles/38368
-
 
289
			// 	_réponse:
-
 
290
			// ""
-
 
291
			// 			Mettre à jour les mots cles
-
 
292
			//	_OPTIONS
-
 
293
			// https://api-test.tela-botanica.org/service:del:0.1/mots-cles?image=197938
-
 
294
			//	_GET
-
 
295
			// https://api-test.tela-botanica.org/service:del:0.1/mots-cles?image=197938
-
 
296
			$( this ).parent( '.custom-tag' ).remove();
-
 
297
		}
-
 
298
	});
-
 
299
 */
-
 
300
};
265
};
Line 301... Line 266...
301
 
266
 
302
WidgetPhotoPopup.prototype.defilerImage = function( sens ) {
267
WidgetPhotoPopup.prototype.defilerImage = function( sens ) {
303
	if ( 'suivant' === sens ) {
268
	if ( 'suivant' === sens ) {
Line 329... Line 294...
329
			this.popupUrl = this.actualiserPopupUrl( this.popupUrl, this.urlThisImage );
294
			this.popupUrl = this.actualiserPopupUrl( this.popupUrl, this.urlThisImage );
330
		}
295
		}
331
		lienContact += '&popup_url=' + encodeURIComponent( this.popupUrl );
296
		lienContact += '&popup_url=' + encodeURIComponent( this.popupUrl );
332
	}
297
	}
Line -... Line 298...
-
 
298
 
333
 
299
	if (this.isAuteurTela){
334
	$( '#bloc-infos-img' ).html(
300
		$( '#bloc-infos-img' ).html(
335
		this.afficherLien( this.urlLienEflore, this.obs['nom_sel'] )+
301
			this.afficherLien( this.urlLienEflore, this.obs['nom_sel'] )+
336
		' par '+
302
			' par '+
-
 
303
			'<a class="lien_contact" href="' + this.item['urlProfil'] + '" target="_blank" title="Afficher le profil">' + this.auteur + '</a> '+
-
 
304
			' le ' + this.date + ' - ' + this.obs['localisation']
-
 
305
		);
-
 
306
	} else {
-
 
307
		$( '#bloc-infos-img' ).html(
-
 
308
			this.afficherLien( this.urlLienEflore, this.obs['nom_sel'] )+
-
 
309
			' par '+
337
		'<a class="lien_contact" href="' + this.item['urlProfil'] + '" target="_blank" title="Afficher le profil">' + this.auteur + '</a> '+
310
			this.auteur +
338
		' le ' + this.date + ' - ' + this.obs['localisation']
311
			' le ' + this.date + ' - ' + this.obs['localisation']
-
 
312
		);
-
 
313
	}
339
	);
314
 
Line 340... Line 315...
340
};
315
};
341
 
316
 
Line 358... Line 333...
358
		$( '#info-img-galerie' ).removeClass( 'hidden' );
333
		$( '#info-img-galerie' ).removeClass( 'hidden' );
359
		$( '.bouton-fct.actif' ).removeClass( 'actif' );
334
		$( '.bouton-fct.actif' ).removeClass( 'actif' );
360
		$( '.nettoyage-volet.haut' ).text( $( '#bloc-infos-img' ).text() );
335
		$( '.nettoyage-volet.haut' ).text( $( '#bloc-infos-img' ).text() );
361
		$( '#boutons-footer, #info-img-galerie' ).removeClass( 'col-lg-8' );
336
		$( '#boutons-footer, #info-img-galerie' ).removeClass( 'col-lg-8' );
362
		$( '#bloc-infos-img, #volet' ).removeClass( 'col-lg-4' );
337
		$( '#bloc-infos-img, #volet' ).removeClass( 'col-lg-4' );
-
 
338
		$( '#hide-metas-div' ).addClass( 'hidden' );
363
	} else {
339
	} else {
364
		$( '#volet, #info-img-galerie' ).removeClass( 'hidden' );
340
		$( '#volet, #info-img-galerie' ).removeClass( 'hidden' );
365
		if ( this.valOk( $( '.bloc-volet:not(.hidden)' ) ) ) {
341
		if ( this.valOk( $( '.bloc-volet:not(.hidden)' ) ) ) {
366
			$( '.bouton-fct.' + $( '.bloc-volet:not(.hidden)' ).data( 'volet' ) ).addClass( 'actif' );
342
			$( '.bouton-fct.' + $( '.bloc-volet:not(.hidden)' ).data( 'volet' ) ).addClass( 'actif' );
367
		}
343
		}
368
		$( '.nettoyage-volet.bas' ).text( $( '#bloc-infos-img' ).text() );
344
		$( '.nettoyage-volet.bas' ).text( $( '#bloc-infos-img' ).text() );
369
		$( '#boutons-footer, #info-img-galerie' ).addClass( 'col-lg-8' );
345
		$( '#boutons-footer, #info-img-galerie' ).addClass( 'col-lg-8' );
370
		$( '#bloc-infos-img, #volet' ).addClass( 'col-lg-4' );
346
		$( '#bloc-infos-img, #volet' ).addClass( 'col-lg-4' );
371
		$( '#retour-galerie' ).addClass( 'hidden' );
347
		$( '#retour-galerie' ).addClass( 'hidden' );
-
 
348
		$( '#hide-metas-div' ).removeClass( 'hidden' );
372
	}
349
	}
373
};
350
};
Line 374... Line 351...
374
 
351
 
375
WidgetPhotoPopup.prototype.redimensionnerGalerie = function() {
352
WidgetPhotoPopup.prototype.redimensionnerGalerie = function() {
Line 412... Line 389...
412
		if (tagElement) {
389
		if (tagElement) {
413
			// Ajouter la classe 'active' à l'élément <a>
390
			// Ajouter la classe 'active' à l'élément <a>
414
			tagElement.classList.add('actif');
391
			tagElement.classList.add('actif');
415
		} else {
392
		} else {
416
			$('#tags-pf-supp').append('<a id="'+tag['mot_cle']+'" class="btn tag custom-tag actif">' + tag['mot_cle'] + '&nbsp;' +
393
			$('#tags-pf-supp').append('<a id="'+tag['mot_cle']+'" class="btn tag custom-tag actif">' + tag['mot_cle'] + '&nbsp;' +
417
				// '<i class="fas fa-times-circle fermer"></i>' +
-
 
418
				'</a>')
394
				'</a>')
419
		}
395
		}
420
	});
396
	});
421
}
397
}
Line 442... Line 418...
442
 
418
 
443
			if( lthis.valOk( nouveauTagAttr ) && !lthis.valOk( $( '#' + nouveauTagAttr + '.tag' ) ) ) {
419
			if( lthis.valOk( nouveauTagAttr ) && !lthis.valOk( $( '#' + nouveauTagAttr + '.tag' ) ) ) {
444
				$( '#tags-pf-supp' ).append(
420
				$( '#tags-pf-supp' ).append(
445
					'<a id="' + nouveauTagAttr + '" class="btn tag custom-tag actif">' +
421
					'<a id="' + nouveauTagAttr + '" class="btn tag custom-tag actif">' +
446
						nouveauTag + '&nbsp;' +
-
 
447
					// '<i class="fas fa-times-circle fermer"></i>' +
422
						nouveauTag + '&nbsp;' +
448
					'</a>'
423
					'</a>'
Line 449... Line 424...
449
				);
424
				);
450
 
425
 
Line 463... Line 438...
463
						console.log('tag : ' + nouveauTagAttr + ' ajouté');
438
						console.log('tag : ' + nouveauTagAttr + ' ajouté');
464
						lthis.item['tags_pf'].push({'id_mot_cle' : tagId['id'][0], 'mot_cle' : nouveauTagAttr})
439
						lthis.item['tags_pf'].push({'id_mot_cle' : tagId['id'][0], 'mot_cle' : nouveauTagAttr})
465
					}
440
					}
466
				});
441
				});
Line 467... Line -...
467
 
-
 
468
				// $( '#form-tags-auteur' )[0].reset();
442
 
469
				$( this ).val( '' );
443
				$( this ).val( '' );
470
			}
444
			}
471
		}
445
		}
472
	});
446
	});
Line 479... Line 453...
479
	this.fournirLienTelechargement();
453
	this.fournirLienTelechargement();
480
};
454
};
Line 481... Line 455...
481
 
455
 
482
WidgetPhotoPopup.prototype.afficherMetas = function() {
456
WidgetPhotoPopup.prototype.afficherMetas = function() {
-
 
457
	const lthis         = this;
-
 
458
	if (!this.obs['fiabilite']){
-
 
459
		this.obs['fiabilite'] = 'impossible de récupérer le grade';
483
	const lthis         = this;
460
	}
484
	const META_CONTENUS = {
461
	const META_CONTENUS = {
485
		'nom' : this.afficherLien( this.urlLienEflore, this.obs['nom_sel'] ),
462
		'nom' : this.afficherLien( this.urlLienEflore, this.obs['nom_sel'] ),
486
		'localisation' : this.obs['localisation'],
463
		'localisation' : this.obs['localisation'],
487
		'auteur' : this.auteur,
464
		'auteur' : this.auteur,
Line 509... Line 486...
509
				case 'nom' :
486
				case 'nom' :
510
					$( '.contenu', $metaContainer ).html( contenu );
487
					$( '.contenu', $metaContainer ).html( contenu );
511
					$( '.bouton', $metaContainer ).attr( 'href', lthis.urlLienEflore );
488
					$( '.bouton', $metaContainer ).attr( 'href', lthis.urlLienEflore );
512
					break;
489
					break;
513
				case 'auteur' :
490
				case 'auteur' :
-
 
491
					if (lthis.isAuteurTela) {
514
					$( '.bouton', $metaContainer ).attr( 'href', lthis.item['urlProfil'] );
492
						$('.bouton', $metaContainer).attr('href', lthis.item['urlProfil']);
-
 
493
						$( '#bloc-meta #auteur i').removeClass('hidden');
-
 
494
						$('.bouton', $metaContainer).removeClass('hidden');
-
 
495
					} else {
-
 
496
						$('.bouton', $metaContainer).addClass('hidden');
-
 
497
						$( '#bloc-meta #auteur i').addClass('hidden');
-
 
498
					}
515
				default:
499
				default:
516
					$( '.contenu', $metaContainer ).text( contenu );
500
					$( '.contenu', $metaContainer ).text( contenu );
517
					break;
501
					break;
518
			}
502
			}
519
		}
503
		}
Line 567... Line 551...
567
		'est_ip_valide' : 'validée sur identiplante',
551
		'est_ip_valide' : 'validée sur identiplante',
568
		'score_ip' : 'score identiplante',
552
		'score_ip' : 'score identiplante',
569
		'url_ip' : 'url identiplante',
553
		'url_ip' : 'url identiplante',
570
		'abondance' : 'abondance',
554
		'abondance' : 'abondance',
571
		'phenologie' : 'phénologie',
555
		'phenologie' : 'phénologie',
572
		'spontaneite' : 'spontaneite',
556
		'spontaneite' : 'spontanéite',
573
		'type_donnees' : 'type de donnees',
557
		'type_donnees' : 'type de données',
574
		'biblio' : 'bibliographie',
558
		'biblio' : 'bibliographie',
575
		'source' : 'source',
559
		'source' : 'source',
576
		'herbier' : 'herbier',
560
		'herbier' : 'herbier',
577
		'observateur' : 'observateur',
561
		'observateur' : 'observateur',
578
		'observateur_structure' : 'structure'
562
		'observateur_structure' : 'structure'
Line 815... Line 799...
815
 
799
 
816
		// On envoie le protocole sélectionné à la partie "vote"
800
		// On envoie le protocole sélectionné à la partie "vote"
817
		// On récupère tous les votes de l'image depuis pictoflora
801
		// On récupère tous les votes de l'image depuis pictoflora
Line 818... Line 802...
818
		lthis.votes = lthis.getVotes(lthis.protocole)
802
		lthis.votes = lthis.getVotes(lthis.protocole)
819
 
-
 
820
		// Si l'utilisateur est connect, on vérifie s'il a déjà voté pour cette image et on affiche les étoiles
803
 
821
		// correspondantes
804
		// Si l'utilisateur est connect, on vérifie s'il a déjà voté pour cette image et on affiche les étoiles correspondantes
822
		if(lthis.userId){
805
		if(lthis.userId){
823
			lthis.checkUserVote(lthis.userId, lthis.protocole, lthis.votes);
806
			lthis.checkUserVote(lthis.userId, lthis.protocole, lthis.votes);
824
		} else {
807
		} else {
Line 959... Line 942...
959
		}
942
		}
960
	})
943
	})
Line 961... Line 944...
961
 
944
 
962
	if (userVote){
945
	if (userVote){
963
		this.displayVote(userVote['vote']);
-
 
964
		// this.traiterVote()
946
		this.displayVote(userVote['vote']);
Line 965... Line 947...
965
		this.voteId = userVote['vote.id'];
947
		this.voteId = userVote['vote.id'];
966
 
948
 
967
		return true
949
		return true
Line 981... Line 963...
981
		event.preventDefault();
963
		event.preventDefault();
Line 982... Line 964...
982
 
964
 
983
		url = "";
965
		url = "";
984
		lthis.pivoter('droite');
966
		lthis.pivoter('droite');
985
		url = newCel + "-90";
-
 
Line 986... Line 967...
986
		// lthis.envoyerVersService('GET', url, lthis.token )
967
		url = newCel + "-90";
987
 
968
 
988
		lthis.envoyerVersService('GET', url, lthis.token, null, function (erreur, cb) {
969
		lthis.envoyerVersService('GET', url, lthis.token, null, function (erreur, cb) {
989
			lthis.forcerMajImage(lthis.urlThisImage, lthis.urlTpl);
-
 
990
		});
-
 
991
 
970
			lthis.forcerMajImage(lthis.urlThisImage, lthis.urlTpl);
Line 992... Line 971...
992
		// lthis.forcerMajImage(lthis.urlThisImage);
971
		});
993
	});
972
	});