Subversion Repositories eFlore/Applications.cel

Compare Revisions

Ignore whitespace Rev 3982 → Rev 3983

/trunk/widget/modules/photo/squelettes/js/WidgetPhotoPopup.js
13,6 → 13,7
this.userId = proprietes.userId;
this.token = proprietes.token;
this.protocoles = proprietes.protocoles;
this.urlServiceDel = proprietes.urlServiceDel;
}
this.protocole = null;
this.voteId = null;
40,7 → 41,6
$( window ).on( 'resize', lthis.redimentionnerModaleCarousel.bind( lthis ) );
this.initEvtsFonctionsPhoto();
this.initEvtsRetourGalerieResponsive();
this.initEvtsTagsPF();
};
 
WidgetPhotoPopup.prototype.mettreAJourPopup = function() {
51,6 → 51,8
this.fournirLienIdentiplante();
this.pivoterImage();
this.initEvtsProtocole();
this.initEvtsTagsPF();
this.initEvtsTagsCel();
};
 
WidgetPhotoPopup.prototype.mettreAJourInfosImage = function() {
102,8 → 104,11
WidgetPhotoPopup.prototype.initEvtsDefilerImage = function() {
const lthis = this;
 
$( '#precedent, #suivant' ).off('click');
 
$( '#precedent, #suivant' ).on( 'click', function() {
lthis.defilerImage( this.id );
lthis.initEvtsTagsPF();
});
 
$( '#print_content:not(saisir-tag)' ).on( 'keydown', function( event ) {
168,17 → 173,77
});
};
 
WidgetPhotoPopup.prototype.initEvtsTagsCel = function(){
const lthis = this;
$( '#tags-cel' ).html('');
 
$( '#tags-cel' ).append(
"<p>"+ lthis.item['tags_photo']+"</p>"
)
}
 
WidgetPhotoPopup.prototype.initEvtsTagsPF = function() {
//recupérer tags en ajax (voir pictoflora, peut-être dans le php?)
// _OPTIONS
// https://api-test.tela-botanica.org/service:del:0.1/mots-cles?image=197938
// _GET
// https://api-test.tela-botanica.org/service:del:0.1/mots-cles?image=197938
const tagsPfDiv = $('#tags-pf');
tagsPfDiv.html('');
tagsPfDiv.append('<a id="port" class="btn tag">Port</a>' +
'<a id="fleur" class="btn tag">Fleur</a>' +
'<a id="fruit" class="btn tag">Fruit</a>' +
'<a id="feuille" class="btn tag">Feuille</a>' +
'<a id="ecorce" class="btn tag">Ecorce</a>' +
'<a id="rameau" class="btn tag">Rameau</a>' +
'<a id="planche" class="btn tag">Planche</a>' +
'<a id="rosette" class="btn tag">Rosette</a>' +
'<a id="pousse" class="btn tag">Pousse</a>');
 
this.tagsPf();
this.tagsPfCustom();
 
$( '#bloc-tags' ).off('click');
 
$( '#bloc-tags' ).on( 'click', '.tag', function( event ) {
event.preventDefault();
$( this ).toggleClass( 'actif' );
 
var motCleClique = '';
motCleClique = $(this).attr('id');
 
// Utiliser la méthode findIndex pour obtenir l'index de l'élément dans le tableau
var indexElementTrouve = lthis.item['tags_pf'].findIndex(function (tag) {
return tag['mot_cle'] === motCleClique;
});
 
// Vérifier si l'élément a été trouvé
if (indexElementTrouve !== -1) {
//supprimer tag dans DEL
if (lthis.item['tags_pf'][indexElementTrouve].hasOwnProperty('id_mot_cle') && lthis.item['tags_pf'][indexElementTrouve]['id_mot_cle'] != ''){
let url = lthis.urlServiceDel + 'mots-cles/' + lthis.item['tags_pf'][indexElementTrouve]['id_mot_cle']
 
lthis.envoyerVersService('DELETE', url)
}
 
// Supprimer l'élément de this.item['tags_pf'] à l'index trouvé
lthis.item['tags_pf'].splice(indexElementTrouve, 1);
} else {
//Ajout tag dans le DEL
let url = lthis.urlServiceDel + 'mots-cles';
let donnees = {
"image" : lthis.idImage,
"mot_cle" : motCleClique,
"auteur.id" : lthis.item["utilisateur"]["id_utilisateur"]
}
 
lthis.envoyerVersService('PUT', url, JSON.stringify(donnees), function (erreur, tagId) {
if (erreur) {
console.error("Erreur lors de la requête :", erreur);
} else {
console.log('tag : ' + motCleClique + ' ajouté');
lthis.item['tags_pf'].push({'id_mot_cle' : tagId['id'][0], 'mot_cle' : motCleClique})
}
});
}
//TODO post vers le del
});
/* //@TODO est-ce qu'on garde cette croix?
$( '#bloc-tags' ).on( 'click', '.custom-tag.actif .fermer', function( event ) {
event.preventDefault();
// Supprimer un custom-tag
197,7 → 262,8
// https://api-test.tela-botanica.org/service:del:0.1/mots-cles?image=197938
$( this ).parent( '.custom-tag' ).remove();
});
 
*/
/*
$( '#bloc-tags' ).on( 'keyup', '.custom-tag.actif', function( event ) {
let supprimerTag = false;
 
226,6 → 292,7
$( this ).parent( '.custom-tag' ).remove();
}
});
*/
};
 
WidgetPhotoPopup.prototype.defilerImage = function( sens ) {
330,6 → 397,25
}
};
 
WidgetPhotoPopup.prototype.tagsPf = function () {
const lthis = this;
$('#tags-pf-supp').html('');
 
lthis.item['tags_pf'].forEach(tag => {
const tagElement = document.getElementById(tag['mot_cle']);
 
// Vérifier si l'élément existe
if (tagElement) {
// Ajouter la classe 'active' à l'élément <a>
tagElement.classList.add('actif');
} else {
$('#tags-pf-supp').append('<a id="'+tag['mot_cle']+'" class="btn tag custom-tag actif">' + tag['mot_cle'] + '&nbsp;' +
// '<i class="fas fa-times-circle fermer"></i>' +
'</a>')
}
});
}
 
WidgetPhotoPopup.prototype.tagsPfCustom = function() {
const lthis = this;
 
351,26 → 437,31
nouveauTagAttr = lthis.chaineValableAttributsHtml( nouveauTag.toLowerCase() );
 
if( lthis.valOk( nouveauTagAttr ) && !lthis.valOk( $( '#' + nouveauTagAttr + '.tag' ) ) ) {
// Envoyer tags en ajax :
// _OPTIONS
// https://api-test.tela-botanica.org/service:del:0.1/mots-cles/
// _paramètres :
//rien
// _PUT
// https://api-test.tela-botanica.org/service:del:0.1/mots-cles/
// _paramètres :
// image=197938&mot_cle=motcleperso&auteur.id=44084
// Mettre à jour les mots cles
// _OPTIONS
// https://api-test.tela-botanica.org/service:del:0.1/mots-cles?image=197938
// _GET
// https://api-test.tela-botanica.org/service:del:0.1/mots-cles?image=197938
$( '#tags-pf-supp' ).append(
'<a id="' + nouveauTagAttr + '" class="btn tag custom-tag actif">' +
nouveauTag + '&nbsp;<i class="fas fa-times-circle fermer"></i>' +
nouveauTag + '&nbsp;' +
// '<i class="fas fa-times-circle fermer"></i>' +
'</a>'
);
$( '#form-tags-auteur' )[0].reset();
 
let url = lthis.urlServiceDel + 'mots-cles';
let donnees = {
"image" : lthis.idImage,
"mot_cle" : nouveauTagAttr,
"auteur.id" : lthis.item["utilisateur"]["id_utilisateur"]
}
 
// Envoie du nouveau tag dans le DEL
lthis.envoyerVersService('PUT', url, JSON.stringify(donnees), function (erreur, tagId) {
if (erreur) {
console.error("Erreur lors de la requête :", erreur);
} else {
console.log('tag : ' + nouveauTagAttr + ' ajouté');
lthis.item['tags_pf'].push({'id_mot_cle' : tagId['id'][0], 'mot_cle' : nouveauTagAttr})
}
});
 
// $( '#form-tags-auteur' )[0].reset();
$( this ).val( '' );
}
}