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 ); |
}; |
}; |