Subversion Repositories eFlore/Applications.cel

Compare Revisions

Ignore whitespace Rev 3843 → Rev 3844

/trunk/widget/modules/saisie/squelettes/js/WidgetsSaisiesASL.js
1,3 → 1,7
import {WidgetsSaisiesCommun,utils} from './WidgetsSaisiesCommun.js';
import {initialiserModule} from './InitialisationASL.js';
import {valOk} from './Utils.js';
 
/**
* Constructeur WidgetsSaisiesASL par défaut
* S'applique au squelette apa.tpl.html
4,31 → 8,32
* Squelette de base d'apa streets et lg
*/
// ASL : APA, sTREETs, Lichen's Go!
function WidgetsSaisiesASL( proprietes ) {
if ( utils.valOk( proprietes ) ) {
this.urlWidgets = proprietes.urlWidgets;
this.projet = proprietes.projet;
this.idProjet = proprietes.idProjet;
this.tagsMotsCles = proprietes.tagsMotsCles;
this.mode = proprietes.mode;
this.langue = proprietes.langue;
this.serviceObsImgs = proprietes.serviceObsImgs;
this.serviceObsImgUrl = proprietes.serviceObsImgUrl;
this.serviceAnnuaireIdUrl = proprietes.serviceAnnuaireIdUrl;
this.serviceNomCommuneUrl = proprietes.serviceNomCommuneUrl;
this.serviceNomCommuneUrlAlt = proprietes.serviceNomCommuneUrlAlt;
this.debug = proprietes.debug;
this.html5 = proprietes.html5;
this.serviceSaisieUrl = proprietes.serviceSaisieUrl;
this.serviceObsUrl = proprietes.serviceObsUrl;
this.chargementImageIconeUrl = proprietes.chargementImageIconeUrl;
this.pasDePhotoIconeUrl = proprietes.pasDePhotoIconeUrl;
this.autocompletionElementsNbre = proprietes.autocompletionElementsNbre;
this.serviceAutocompletionNomSciUrl = proprietes.serviceAutocompletionNomSciUrl;
this.serviceAutocompletionNomSciUrlTpl = proprietes.serviceAutocompletionNomSciUrlTpl;
this.dureeMessage = proprietes.dureeMessage;
this.obsMaxNbre = proprietes.obsMaxNbre;
this.msgs = utils.msgs;
export function WidgetsSaisiesASL() {
WidgetsSaisiesCommun.call(this);
 
if ( valOk( widgetProp ) ) {
this.urlWidgets = widgetProp.urlWidgets;
this.projet = widgetProp.projet;
this.idProjet = widgetProp.idProjet;
this.tagsMotsCles = widgetProp.tagsMotsCles;
this.mode = widgetProp.mode;
this.langue = widgetProp.langue;
this.serviceObsImgs = widgetProp.serviceObsImgs;
this.serviceObsImgUrl = widgetProp.serviceObsImgUrl;
this.serviceAnnuaireIdUrl = widgetProp.serviceAnnuaireIdUrl;
this.serviceNomCommuneUrl = widgetProp.serviceNomCommuneUrl;
this.serviceNomCommuneUrlAlt = widgetProp.serviceNomCommuneUrlAlt;
this.debug = widgetProp.debug;
this.html5 = widgetProp.html5;
this.serviceSaisieUrl = widgetProp.serviceSaisieUrl;
this.serviceObsUrl = widgetProp.serviceObsUrl;
this.chargementImageIconeUrl = widgetProp.chargementImageIconeUrl;
this.pasDePhotoIconeUrl = widgetProp.pasDePhotoIconeUrl;
this.autocompletionElementsNbre = widgetProp.autocompletionElementsNbre;
this.serviceAutocompletionNomSciUrl = widgetProp.serviceAutocompletionNomSciUrl;
this.serviceAutocompletionNomSciUrlTpl = widgetProp.serviceAutocompletionNomSciUrlTpl;
this.dureeMessage = widgetProp.dureeMessage;
this.obsMaxNbre = widgetProp.obsMaxNbre;
}
this.urlRacine = window.location.origin;
this.isASL = true;
47,30 → 52,32
this.idUtilisateur = null;
this.sujet = null;
this.isTaxonListe = false;
this.geoloc = {};
}
WidgetsSaisiesASL.prototype = new WidgetsSaisiesCommun();
WidgetsSaisiesASL.prototype = Object.create(WidgetsSaisiesCommun.prototype);
WidgetsSaisiesASL.prototype.constructor = WidgetsSaisiesASL;
 
/**
* Initialise le formulaire, les validateurs, les listes de complétion...
*/
WidgetsSaisiesASL.prototype.initForm = function() {
this.initFormConnection();
};
 
WidgetsSaisiesASL.prototype.initEvts = function() {
const lthis = this;
// initialisation des fonctions connexion utilisateur
this.initEvtsConnection();
// chargement plantes ou lichens
if ( this.valOk( $( '.charger-releve' ) ) ) {
var btnChargementForm = this.determinerBtnsChargementForm( '.' );
if ( valOk( $( '.charger-releve' ) ) ) {
const btnChargementForm = this.determinerBtnsChargementForm( '.' );
// #releve-data n'est pas modifié, bouton dans #releves-utilisateur
this.btnsChargerForm( btnChargementForm, false );
}
};
 
/**
* Initialise le formulaire, les validateurs, les listes de complétion...
*/
WidgetsSaisiesASL.prototype.initForm = function() {
this.initFormConnection();
};
 
WidgetsSaisiesASL.prototype.determinerBtnsChargementForm = function( typeSelecteur, ajouterBtnPoursuivre = false ) {
var complement = '',
let complement = '',
selecteurDefault = '',
separateur = ',';
 
107,21 → 114,21
};
 
WidgetsSaisiesASL.prototype.btnsChargerForm = function( btn, modifierReleveData = true, dansRelevesUtilisateur = true ) {
const lthis = this;
var bloc = ( dansRelevesUtilisateur ) ? '#releves-utilisateur' : '#charger-form';
const lthis = this,
bloc = ( dansRelevesUtilisateur ) ? '#releves-utilisateur' : '#charger-form';
 
$( btn, bloc ).off().on( 'click', function( event ) {
event.preventDefault();
 
var thisWidgetObs = ( lthis.valOk( $( '#' + lthis.projet + '-obs' ).val() ) ) ? $.parseJSON( $( '#' + lthis.projet + '-obs' ).val() ) : [];
var nomSquelette = $( this ).data( 'load' ),
releveDatas = '';
const thisWidgetObs = ( valOk( $( '#' + lthis.projet + '-obs' ).val() ) ) ? $.parseJSON( $( '#' + lthis.projet + '-obs' ).val() ) : [],
nomSquelette = $( this ).data( 'load' );
let releveDatas = '';
 
$( '#charger-form' ).data( 'load', nomSquelette );
if ( modifierReleveData ) {
if ( '#bouton-nouveau-releve' !== btn ) {
$( '#bouton-nouveau-releve' ).removeClass( 'hidden' );
if ( lthis.valOk( thisWidgetObs ) ) {
if ( valOk( thisWidgetObs ) ) {
releveDatas = JSON.stringify( thisWidgetObs[ $( this ).data( 'releve' ) ] );
}
} else {
130,7 → 137,7
$( '#releve-data' ).val( releveDatas );
}
lthis.chargerForm( nomSquelette, lthis );
if ( lthis.valOk( thisWidgetObs ) ) {
if ( valOk( thisWidgetObs ) ) {
$( '#bouton-list-releves' ).removeClass( 'hidden' );
}
$( '#table-releves' ).addClass( 'hidden' );
138,15 → 145,14
};
 
WidgetsSaisiesASL.prototype.chargerForm = function( nomSquelette, formObj ) {
const lthis = this;
const lthis = this,
urlSquelette = this.urlWidgets + 'saisie?projet=' + this.projet + '&squelette=' + nomSquelette;
 
var urlSquelette = this.urlWidgets + 'saisie?projet=' + this.projet + '&squelette=' + nomSquelette;
 
$.ajax({
url: urlSquelette,
type: 'get',
success: function( squelette ) {
if ( lthis.valOk( squelette ) ) {
if ( valOk( squelette ) ) {
formObj.chargerSquelette( squelette, nomSquelette );
}
},
169,7 → 175,7
break;
case 'arbres' :
default :
if ( this.valOk( this.sujet ) ) {
if ( valOk( this.sujet ) ) {
this.reinitialiserWidget( squelette );
} else {
this.chargerObsUtilisateur( squelette );
179,13 → 185,15
};
 
WidgetsSaisiesASL.prototype.chargerFormPlantesOuLichens = function( squelette, nomSquelette ) {
if ( this.valOk( $( '#releve-data' ).val() ) ) {
if ( valOk( $( '#releve-data' ).val() ) ) {
$( '#charger-form' ).html( squelette );
initialiserModule(nomSquelette);
this.confirmerSortie();
 
const releveDatas = $.parseJSON( $( '#releve-data' ).val() );
const nbArbres = releveDatas.length -1;
 
for ( var i = 1; i <= nbArbres ; i++ ) {
for ( let i = 1; i <= nbArbres ; i++ ) {
$( '#choisir-arbre' ).append(
'<option value="' + i + '">'+
this.msgTraduction( 'arbre' ) + ' ' + i +
198,7 → 206,8
 
WidgetsSaisiesASL.prototype.reinitialiserWidget = function( squelette ) {
$( '#charger-form' ).html( squelette );
if ( this.valOk( $( '#releve-data' ).val() ) ) {
initialiserModule();
if ( valOk( $( '#releve-data' ).val() ) ) {
this.rechargerFormulaire();
}
};
207,10 → 216,10
* Infos des obs arbres de cet utilisateur
*/
WidgetsSaisiesASL.prototype.chargerObsUtilisateur = function( formReleve ) {
const lthis = this;
var tagsMotsCles = this.tagsMotsCles.split( ',' ),
reprereAjoutTags = tagsMotsCles.length - 1,
queryStringMotsCles = '';
const lthis = this,
tagsMotsCles = this.tagsMotsCles.split( ',' ),
reprereAjoutTags = tagsMotsCles.length - 1;
let queryStringMotsCles = '';
 
$.each( tagsMotsCles , function( i, tag ) {
queryStringMotsCles += 'mots_cles=' + tagsMotsCles[i];
227,17 → 236,18
url: urlObs,
type: 'GET',
success: function( dataObs, textStatus, jqXHR ) {
if ( !lthis.valOk( dataObs ) ) {
if ( !valOk( dataObs ) ) {
dataObs = '';
}
lthis.preformaterDonneesObs( dataObs );
},
error: function( jqXHR, textStatus, errorThrown ) {
lthis.activerModale( lthis.msgTraduction( 'erreur-chargement-obs-utilisateur' ) );
utils.activerModale( lthis.msgTraduction( 'erreur-chargement-obs-utilisateur' ) );
}
})
.always( function() {
$( '#charger-form' ).html( formReleve );
initialiserModule();
});
};
 
247,13 → 257,13
WidgetsSaisiesASL.prototype.preformaterDonneesObs = function( dataObs ) {
const lthis = this;
 
if ( this.valOk( dataObs ) ) {
var projetObs = [],
if ( valOk( dataObs ) ) {
const tagsMotsCles = this.tagsMotsCles.split( ',' );
let projetObs = [],
datRuComun = [],
obsArbres = [],
projetObsE = {},
count = 0,
tagsMotsCles = this.tagsMotsCles.split( ',' );
count = 0;
 
$.each( dataObs, function( i, obs ) {
if (
261,7 → 271,7
new RegExp( tagsMotsCles[1] ).test( obs.mots_cles_texte ) &&
!/(:?plantes|lichens(?!go))/.test( obs.mots_cles_texte )
) {
if ( lthis.valOk( obs.obs_etendue ) ) {
if ( valOk( obs.obs_etendue ) ) {
$.each( obs.obs_etendue, function( indice, obsE ) {
projetObsE[obsE.cle] = obsE.valeur;
});
279,13 → 289,13
// on insert les arbres dans les relevés en fonction de la date et la rue d'observation
// car les arbres pour un relevé (date/rue) n'ont pas forcément été enregistrés dans l'ordre ni le même jour
$.each( obsArbres, function( indexArbre, arbre ) {
for ( var indexReleve = 0; indexReleve < datRuComun.length; indexReleve++ ) {
for ( let indexReleve = 0; indexReleve < datRuComun.length; indexReleve++ ) {
if ( arbre.date_rue_commune === datRuComun[indexReleve] ) {
projetObs[indexReleve].push( arbre );
}
}
});
if ( this.valOk( projetObs ) ) {
if ( valOk( projetObs ) ) {
this.prechargerLesObs( projetObs );
$( '#' + this.projet + '-obs' ).val( JSON.stringify( projetObs ) );
$( '#bouton-list-releves' ).removeClass( 'hidden' );
298,9 → 308,9
* Stocke en Json les valeurs du relevé dans en value d'un input hidden
*/
WidgetsSaisiesASL.prototype.formaterReleveData = function( releveDatas ) {
var releve = [],
obs = releveDatas.obs,
obsE = releveDatas.obsE;
const obs = releveDatas.obs,
obsE = releveDatas.obsE;
let releve = [];
 
releve[0] = {
utilisateur : obs.ce_utilisateur,
315,10 → 325,12
'altitude-releve' : obsE['altitude-releve'],
commentaires : obs.commentaire
};
 
if ( 'tb_lichensgo' !== this.projet ) {
releve[0]['zone-pietonne'] = obsE['zone-pietonne'];
releve[0]['pres-lampadaires'] = obsE['pres-lampadaires'];
}
 
return releve;
};
 
326,13 → 338,14
* Stocke en Json les valeurs d'une obs
*/
WidgetsSaisiesASL.prototype.formaterArbreData = function( arbresDatas ) {
var retour = {},
obs = arbresDatas.obs,
obsE = arbresDatas.obsE,
const obs = arbresDatas.obs,
obsE = arbresDatas.obsE;
let retour = {},
miniatureImg = [];
if( this.valOk( obs['miniature-img'] ) ) {
 
if( valOk( obs['miniature-img'] ) ) {
miniatureImg = obs['miniature-img'];
} else if ( this.valOk( obsE['miniature-img'] ) ) {
} else if ( valOk( obsE['miniature-img'] ) ) {
miniatureImg = $.parseJSON( obsE['miniature-img'] );
}
 
372,11 → 385,11
};
 
WidgetsSaisiesASL.prototype.prechargerLesObs = function( thisWidgetObs ) {
const lthis = this;
const $listReleve = $( '#list-releves' );
const TEXT_ARBRE = ' ' + this.msgTraduction( 'arbre' ).toLowerCase();
const lthis = this,
$listReleve = $( '#list-releves' ),
TEXT_ARBRE = ' ' + this.msgTraduction( 'arbre' ).toLowerCase();
 
var nbArbres = '',
let nbArbres = '',
texteArbre = '',
releveHtml = '';
 
388,11 → 401,11
$( this ).addClass( 'hidden' );
});
function boutonsChargerReleve( lthis, squelette, indice ) {
var boutonLichens =
const boutonLichens =
'<a href="" class="saisir-lichens btn btn-sm btn-info" data-releve="' + indice + '" data-load="lichens">'+
'<i class="far fa-snowflake"></i> ' + lthis.msgTraduction( 'saisir-lichens' )+
'</a> ',
boutonPlantes =
boutonPlantes =
'<a href="" class="saisir-plantes btn btn-sm btn-info mb-1" data-releve="' + indice + '" data-load="plantes">'+
'<i class="fas fa-seedling"></i> ' + lthis.msgTraduction( 'saisir-plantes' )+
'</a> ';
408,6 → 421,7
}
return '';
}
 
$.each( thisWidgetObs, function( i, releve ) {
nbArbres = releve.length - 1;
texteArbre = ( 1 < nbArbres ) ? ( TEXT_ARBRE + 's' ) : TEXT_ARBRE;
430,9 → 444,11
'</td>'+
'</tr>';
});
 
$listReleve.append( releveHtml );
 
$( '#nb-releves-bienvenue' )
.removeClass( 'hidden' )
.find( 'span.nb-releves' )
.text( thisWidgetObs.length );
};
};