{"version":3,"file":"OperisFlexEngine-moteur.min.js","sources":["../build/moteur/communication/OperisWSServer.js","../build/moteur.js","../build/moteur/communication/RequeteMultiAppel.js","../build/moteur/composants/OpChartBar.js","../build/moteur/composants/OpChartDoughnut.js","../build/moteur/composants/OpChartLine.js","../build/moteur/composants/OpChartPie.js","../build/moteur/composants/OpConnexion.html.js","../build/moteur/composants/OpConnexion.js","../build/moteur/composants/OpConnexionPortail.html.js","../build/moteur/composants/OpConnexionPortail.js","../build/moteur/composants/OpFormulaire.js","../build/moteur/composants/OpMireAttente.html.js","../build/moteur/composants/OpMireAttente.js","../build/moteur/composants/OpOnglet.js","../build/moteur/composants/OpPopupAjoutElement.html.js","../build/moteur/composants/OpPopupAjoutElement.js","../build/moteur/composants/OperiaChatApp.js","../build/moteur/composants/cartographie/OpCartographie.js","../build/moteur/composants/cartographie/OpPopupFeature.html.js","../build/moteur/composants/cartographie/OpPopupFeature.js","../build/moteur/composants/ecriture/OpAdresse.js","../build/moteur/composants/ecriture/OpContact.js","../build/moteur/composants/ecriture/OpListePerso.js","../build/moteur/composants/ecriture/OpTextInput.js","../build/moteur/composants/ecriture/OpTypeahead.html.js","../build/moteur/composants/lecture/OpMosaique.js","../build/moteur/composants/operiaChat/operiaChat-directive.js","../build/moteur/composants/operiaChat/operiaChat.html.js","../build/moteur/composants/operiaConfig/operiaConfig-provider.js","../build/moteur/composants/operiaVideo/operiaVideo-directive.js","../build/moteur/composants/operiaVideo/operiaVideo.html.js","../build/moteur/composants/planning/OpPlanning.js","../build/moteur/composants/planning/OpPopupAfficherRessources.html.js","../build/moteur/composants/planning/OpPopupAfficherRessources.js","../build/moteur/composants/planning/OpPopupAjoutOccupation.html.js","../build/moteur/composants/planning/OpPopupAjoutOccupation.js","../build/moteur/composants/planning/OpPopupAjoutTache.html.js","../build/moteur/composants/planning/OpPopupAjoutTache.js","../build/moteur/composants/planning/OpPopupAjoutTacheDetaillee.html.js","../build/moteur/composants/planning/OpPopupAjoutTacheDetaillee.js","../build/moteur/composants/planning/OpPopupAjoutTacheMateriau.html.js","../build/moteur/composants/planning/OpPopupAjoutTacheMateriau.js","../build/moteur/composants/planning/OpPopupAvancementTache.html.js","../build/moteur/composants/planning/OpPopupAvancementTache.js","../build/moteur/composants/planning/OpPopupDetailEvenement.html.js","../build/moteur/composants/planning/OpPopupDetailEvenement.js","../build/moteur/composants/planning/OpPopupRecurrence.html.js","../build/moteur/composants/planning/OpPopupRecurrence.js","../build/moteur/composants/popup/OpModalImage.html.js","../build/moteur/composants/popup/OpModalImage.js","../build/moteur/composants/popup/OpPopupActionMetier.js","../build/moteur/composants/popup/OpPopupAlerte.html.js","../build/moteur/composants/popup/OpPopupAlerte.js","../build/moteur/composants/popup/OpPopupDemo.js","../build/moteur/composants/popup/OpPopupDocumentsAttaches.html.js","../build/moteur/composants/popup/OpPopupDocumentsAttaches.js","../build/moteur/composants/popup/OpPopupEdition.html.js","../build/moteur/composants/popup/OpPopupEdition.js","../build/moteur/composants/popup/OpPopupEnregistrementFiche.html.js","../build/moteur/composants/popup/OpPopupEnregistrementFiche.js","../build/moteur/composants/popup/OpPopupMail.js","../build/moteur/composants/popup/OpPopupMessagerie.html.js","../build/moteur/composants/popup/OpPopupMessagerie.js","../build/moteur/composants/popup/OpPopupOptionExportCSV.html.js","../build/moteur/composants/popup/OpPopupOptionExportCSV.js","../build/moteur/composants/popup/OpPopupSuppressionFiche.html.js","../build/moteur/composants/popup/OpPopupSuppressionFiche.js","../build/moteur/conteneurs/OpPopup.js","../build/moteur/controleurs/ConnexionAuto.js","../build/moteur/controleurs/ControleurBase.js","../build/moteur/controleurs/WarnCookie.js","../build/moteur/directives/OpAutoFocus.js","../build/moteur/directives/OpGrille.js","../build/moteur/directives/OpGrilleSaisie.js","../build/moteur/directives/OpSimpleFormat.js","../build/moteur/directives/OpStopEvent.js","../build/moteur/directives/template/OpGrilleSaisie/expandableRowTemplate.html.js","../build/moteur/filtres/FilterListe.js","../build/moteur/filtres/Intervalle.js","../build/moteur/filtres/OpOrderBy.js","../build/moteur/modele/Modele.js","../build/moteur/utils/ActionInfos.js","../build/moteur/utils/Cartographie.js","../build/moteur/utils/Compression.js","../build/moteur/utils/Config.js","../build/moteur/utils/ConnexionPortail.js","../build/moteur/utils/Conversion.js","../build/moteur/utils/Cookie.js","../build/moteur/utils/Date.js","../build/moteur/utils/Encryption.js","../build/moteur/utils/Erreur.js","../build/moteur/utils/GenerationFormulaire.js","../build/moteur/utils/Geocodage.js","../build/moteur/utils/GestionActionFormulaire.js","../build/moteur/utils/GestionGrilleElementPrincipal.js","../build/moteur/utils/GestionRegroupement.js","../build/moteur/utils/Habilitation.js","../build/moteur/utils/Historique.js","../build/moteur/utils/MD5.js","../build/moteur/utils/Messagerie.js","../build/moteur/utils/ModuleInfos.js","../build/moteur/utils/Parametre.js","../build/moteur/utils/Planning.js","../build/moteur/utils/RefExterne.js","../build/moteur/utils/ReferenceInterne.js","../build/moteur/utils/ReferentielServlet.js","../build/moteur/utils/Representation.js","../build/moteur/utils/RequeteContact.js","../build/moteur/utils/RequeteEdition.js","../build/moteur/utils/RequeteFichier.js","../build/moteur/utils/RequeteInterrogation.js","../build/moteur/utils/RequeteModuleComplement.js","../build/moteur/utils/RequeteNotificationInterne.js","../build/moteur/utils/RequetePostSauvegardeActionMetier.js","../build/moteur/utils/RequetePostSauvegardeFiche.js","../build/moteur/utils/RequetePostSuppressionFiche.js","../build/moteur/utils/RequetePreChargementFiche.js","../build/moteur/utils/RequetePreSauvegardeFiche.js","../build/moteur/utils/RequetePreSuppression.js","../build/moteur/utils/RequeteReferentiel.js","../build/moteur/utils/RequeteVerificationSuppression.js","../build/moteur/utils/Statut.js","../build/moteur/utils/UtilisateurContexteIHM.js","../build/moteur/utils/Version.js","../build/moteur/utils/XML.js"],"names":["angular","isNullOrUndefined","aValeur","undefined","module","config","$logProvider","$httpProvider","debugEnabled","window","location","hash","useApplyAsync","_opConnexionPromise","_operisWSServers","_operisWSServersToBeInstantiated","ModeleProvider","SEPARATEUR_NIVEAU_1","SEPARATEUR_NIVEAU_2","SEPARATEUR_NIVEAU_3","SEPARATEUR_INTERNE","setSeparateurNiveau1","setSeparateurNiveau2","setSeparateurNiveau3","setSeparateurInterne","constant","String","fromCharCode","provider","OperisWSServer","$window","$q","$http","$timeout","$log","$modal","$location","cookie","$config","LOGOUT_STATE","encryption","conversion","md5","xml","opMireAttente","opPopupAlerte","requeteMultiAppel","SEPARATEUR_NIVEAU_1_SAISIE_CLIENT","SEPARATEUR_NIVEAU_2_SAISIE_CLIENT","SEPARATEUR_NIVEAU_3_SAISIE_CLIENT","ID_VUE_FICHIER","ID_VUE_PARAMETRES","TABLE_GES_FICHIER","CHAMP_ID_FICHIER","CHAMP_PARAMETRE_GRILLE","modele","SCOPE_DESCRIPTIONS","SCOPE_CHAMPS","SCOPE_GRILLES","SCOPE_LISTES","habilitation","erreur","RETOUR_VIDE","RETOUR_ILLISIBLE","RETOUR_INVALIDE","JETON_INCOHERENT","FONCTION_INCOHERENTE","ERREUR_SERVEUR","ERREUR_INTERNE_SERVEUR","SERVICE_SUPPRIME","TRANSACTION_AVORTEE","REQUETE_ANNULEE","REQUETE_TIMEOUT","REQUETE_INVALIDE","_encoderIdentifiants","aIdentifiants","ret","attribut","length","_decoderIdentifiants","identifiants","split","indiceIdentifiant","id","_appel","aNomFonction","aParametres","aNbRetours","aInformations","aTransaction","aDisplay","indice","deferred","defer","promise","that","getDeleted","reject","creer","this","_module","jeton","Math","round","random","toString","parametres","transaction","nom","arretSurErreur","fin","transactions","getTransactions","copy","setTransactions","versTexteDepuisBooleen","requetes","push","informations","nomFonction","arretTransactionSurErreur","nbRetours","annulation","requeteHttp","url","getURL","headers","Content-Type","SOAPAction","SOAP_ACTION","cache","withCredentials","timeout","extend","_timeoutHttp","responseType","data","reponse","status","noop","resolve","requete","annuler","ajouterRequete","MESSAGE_TEMPLATE","replace","post","success","retours","toJson","Envelope","Body","OperisWSFunctionResponse","OperisWSFunctionReturn","error","indiceRetour","arretTransaction","indiceFonction","fonction","ELEMENT_NUL","valeurs","element","hasOwnProperty","cancel","_appelConnecte","aScope","connexion","then","getIdSession","resultat","codeServeur","setIdSession","_libelleModule","_utilisateur","_idModule","_idUtilisateur","_idSession","_utilisateurInformation","_identifiants","_parametre","_cacheEcrans","_deleted","_transactions","getCookieParam","aVar","aKey","get","getNomModule","setCookieParam","aValue","set","removeCookieParam","remove","getStorageParam","aTypeStorage","localStorage","getItem","sessionStorage","atob","JSON","parse","e","setStorageParam","encodedVal","stringify","btoa","setItem","removeStorageParam","removeItem","setNomModule","aNomModule","setLibelleModule","aLibelleModule","getLibelleModule","getIdModule","setIdModule","aIdModule","getIdUtilisateur","isNaN","parseInt","setIdUtilisateur","aId","getUtilisateur","setUtilisateur","aUtil","aSession","getUtilisateurInformation","tempUserInfo","utilisateurInformationVide","setUtilisateurInformation","utilisateurInformation","getIdentifiants","setIdentifiants","aIds","getParametre","setParametre","aParams","getCacheEcrans","setCacheEcrans","aCacheEcrans","setDeleted","aDeleted","aTransactions","_url","hasBeenDeleted","version","libelle","commentaire","estModale","index","portails","key","descriptionPortail","portail","callbackURL","callbackParams","validateConnexionPortail","reconnexion","rapprochement","nonce","isDefined","idUtilisateurAssociation","login","idModule","idUtilisateur","idSession","userInfo","chargementParametres","aUtilisateur","aMotdepasse","aErreur","logoutState","href","m","value","toLowerCase","isLogout","search","contains","open","templateUrl","controller","windowClass","backdrop","keyboard","size","utilisateur","erreurConnexion","result","encryptageMotDePasse","bind","deconnexion","session_id","auto","application","libApplication","APPLICATION","deconnexionPortail","aUserInfo","console","log","url_deconnection","state","floor","indexUrl","origin","pathname","new_url_deconnection","URL","searchParams","ecranGrillesEntete","ecranGrillesValeur","remplirParametre","lireParametre","aCategorie","aCode","codes","chargement","aNomEcran","getMultiAppel","functionRetour","callbackChargement","add","aResultat","ecranChampsEntete","ecranChampsValeur","ecranListesEntete","ecranListesValeur","cacheEcran","warn","tablesValeurs","remplirModele","tablesGrilles","tablesListes","opComparaison","comparateur","opComparaisonStricte","comparateurStrict","recherche","aTaillePage","aTri","sauvegarde","convertir","recupererValeurs","md5Initial","aucuneModification","retourChargement","aTablesValeurs","aNumeroPage","aCritere","setCritereHabilitation","enTetes","recupererDescriptions","criteres","tailleTotale","versEntier","recherchePageSuivante","recherchePagePrecedente","recherchePage","retourRecherche","aTablesGrilles","grilles","callbackSauvegarde","suppression","sauvegardeFichier","aFichier","typeFile","file","type","pos","name","lastIndexOf","slice","codeSepBDSaisieClient","valeurFichier","tableAss","idAction","idEntite","procedureInterne","aParam1","aParam2","aParam3","aParam4","supprimer","_multiAppelServeur","setMultiAppel","aMultiAppel","valeur","RegExp","ent_denomination","ent_raisonsocial","ent_siret","ent_type","util_adresse","util_adresse_divterr","util_adresse_pays","util_fixe","util_fixe_indicatif","util_id","util_mail","util_mobile","util_naissance_date","util_naissance_dep","util_naissance_lieu","util_naissance_pays","util_nom","util_prenom","util_type","original","_mobile","setURL","aURL","setMobile","aMobile","setTimeoutHttp","aTimeoutHttp","isNumber","registerModule","libelleModule","$get","$injector","nomModule","instantiate","portailsComplete","descriptionPortailComplete","validateConnexionPortailComplete","resultatsAttendus","erreurs","connexionComplete","deconnexionComplete","deregisterModule","chargementParametresModule","isMobile","service","_multiAppelFonction","_multiAppelInformation","_multiAppelTransaction","_multiAppel","_multiAppelFonctionCallback","_multiAppelDonnees","_multiAppelNbRetours","_multiAppelStopOnError","_clearMultiAppel","aModule","aFonction","aInformation","aFunctionCallback","concat","directive","$compile","restrict","transclude","scope","opChartData","opChartOptions","opChartLegend","opTitre","opClick","template","link","iElement","verifTaille","width","cElt","prop","height","$digest","children","$watch","chart","aspectRatio","resize","datasetIndex","datasets","barIndex","bars","y","reflow","update","draw","verifTailleDoughnut","verifTailleLine","verifTaillePie","run","$templateCache","put","$scope","$modalInstance","$filter","operisWSServer","motdepasse","utilisateurModifiable","erreursParCode","sessionsFermees","pressePapier","prompt","valider","close","i","erreursSession","confirm","fermer","$sce","connexionPortail","PORTAILS_DESCRIPTION_INVALIDE","PORTAIL_DESCRIPTION_INVALIDE","PORTAIL_UNKNOWN","PORTAIL_AUTHORIZE_ERROR","PORTAIL_UNVALID_STATE","PORTAIL_EMPTY_ANSWER","CGU","_pushErreur","_cleanupCookies","_validateConnexion","encodeURIComponent","extractUrlPath","encodedStateParams","extractOriginalParams","portailDisplay","display","portailOnly","only","portailCreaCompte","creaCompte","portailsDescription","iframesrc","_gestionCompteUrl","_currentCGU","_creationCompteUrl","_recoverCompteUrl","creationCompte","activated","dataField","url_connection","clientId","err","recoverCompte","isVisible","isDisabled","iframe","cleanup","removeEventListener","message","handle","clearTimeout","Object","keys","protocol","host","paramsNonce","splitParams","setTimeout","addEventListener","trustAsResourceUrl","params","extractUrlParams","callbackParameters","decodeURIComponent","splitedParams","parent","postMessage","serveur","generateurFormulaire","gestionnaireActionFormulaire","gestionGrilleElementPrincipal","SCOPE_NOM","SCOPE_CLE_PRIMAIRE","SCOPE_CLE_ETRANGERE","SCOPE_ACTION","SCOPE_TYPE","SCOPE_LONGUEUR_MAX","SCOPE_LIBELLE","SCOPE_VISIBLE","SCOPE_REPRESENTATION","SCOPE_TYPE_INTERACTION","SCOPE_TYPE_COMPLEXE","SCOPE_REF_ETRANGERE","SCOPE_NOM_GROUPE","TYPE_POPUPAJOUT","TYPE_POPUPSUPPRESSION","requetefichier","requetereferentiel","moduleInfos","ongletsService","modulesActifsService","opName","opVueFormulaire","opTable","opSauvegarde","opIsLecture","opGrillesFormulaire","opListesFormulaire","opIsOpen","isFormulaireRecherche","opOnglet","finchargement","opSectionDroiteVisible","onDemandeActivite","$element","$attrs","identifiant","nomEcran","listeEcran","correspondanceActionEcran","vueFormulaire","cloneScope","champs","actionsPreSauvegarde","getIdEntite","ajoutVueFormulaire","form","append","$setPristine","vueModifie","suppressionVueFormulaire","indexOf","splice","idFormulaire","document","getElementById","viderVueFormulaire","$destroy","$new","html","contents","chargementFormulaire","ecran","nomFormulaire","trigramme","getInfo","mobile","nomTableDocument","map","item","chargementVignette","nomTableDocumentLie","chargementVignettePrincipale","vignette","toUpperCase","vignettePrincipale","fileExtention","retourGenerateur","creerTemplate","gererActionFormulaire","actions","descriptions","listes","recharger","editerCoordonnees","model","matchMedia","matches","masquerSectionGauche","afficherSectionDroite","afficherOutils","modelCarto","editionCarto","habilitationLienModule","aMapEntite","aModeleNom","aIndex","aType","getModule","nomTable","descriptionChamps","nomColCle","MOD_ENTITE","nomCoCleValeur","linkButtonOuvrirActivite_click","entite","servicegestionnaire","VL_HABIL_SERVICEGEST_DROIT","ID_SERVICEGESTIONNAIRE","DROITACCES","idServiceParDefaut","VL_OPE_HABIL_UTILISATEUSERVGES","IDENT_SERVICEGESTIONNAIRE","initialisationHabilitationServiceGestionnaire","ajouterOnglet","onglet","moduleTrigramme","mobilite","ecranServiceGestionnaire","identite","moduleNom","idService","droitAcces","habilitationServiceGestionnaire","idaction","setFormulaireDirty","$pristine","demandeDetailEntiteGrilleSynthese","colCle","modeleEntite","$parent","ongletCtrl","demandeDetailEntite","suppressionFormulaire","sauvegardeFichierFormulaire","estFormulaireFichier","executerFichier","getFichiers","suppressionFichier","getFichierSupprimes","sauvegardeEcrans","promises","all","reponses","bCreation","nomIdentifiant","sauvegardeFormulaire","gererActionPreSauvegarde","sauvegardeFormulaireSuite","fichiers","viderFichierSupprimes","gererAction","ecranChargement","ACHARGER","ecranSuppression","ASUPPRIMER","onEstPrincipal","aTableNom","attrs","droiteVisible","newValue","oldValue","ajouterFichier","evt","idCarousel","ouvrirDocument","aDocument","ouvrirFichier","supprimerFichier","getDisableVignette","colNomType","bResultat","typeVignette","ajouterElement","openRegroupement","click","nouvelleLigne","creerObjet","unshift","optionGrilles","gridApi","expandable","toggleRowExpansion","statutRegroupement","afficherImg","titre","popupfficherImg","supprimerElement","indexASupprimer","popupAjoutElement","lib","trim","libElement","listeElements","retourValeur","vueFormulaireFiche","$on","dateVersTexte","aDate","versTexte","$rootElement","$rootScope","$interval","DISPLAY_FULL","DISPLAY_PARTIAL","DISPLAY_NONE","localName","body","nbRequetesEnCours","nbRequetesEnCoursModales","displayType","ouverte","nettoyer","progressionMax","definirAffichage","aPromise","aRequeteInformations","modale","debut","Date","progression","progressionTotale","duree","dureePromise","getTime","statut","$evalAsync","ID_CATEGORIEMODULE_INVENTAIRE","basculerRecherche","affichageRecherche","afficherSectionGauche","affichageSectionGauche","affichageSectionDroite","masquerSectionDroite","basculerSectionGauche","basculerSectionDroite","affichageFiche","affichageAction","affichageOutils","afficherResume","masquerResume","actualiserPlanningSectionDroite","affichageResume","afficherFiche","masquerFiche","afficherPlanning","affichagePlanning","masquerPlanning","fermerPlanningSectionDroite","afficherEcranAction","masquerEcranAction","basculerResume","masquerLesAutres","basculerFiche","basculerEcranAction","editerDocument","selection","gererDocumentsAttaches","idDepuisSynthese","scopeFormulaire","alert","ecranNom","entiteNom","idCategModule","afficherMessagerie","onChangeEtat","getEcranEdition","descriptionLien","lien","definirTexteContextuel","aOnglet","aContexte","contexte","$ocLazyLoad","ongletService","ongletActifService","utilsPlanning","requetePreSauvegardeFiche","requetePostSauvegardeFiche","opPopupEnregistrementFiche","retour","controllerAs","ouvrirFiche","entiteRecherche","estAction","estAffichagePleinEcran","property","estChampPrincipal","tabNomsIdentifiants","moduleEntite","droitAccessFiche","ecranFiche","args","entiteFiche","$broadcast","editerFiche","ouvrirPlanning","titreContexte","nomPlanning","typePlanning","confirmerAction","actionPlanning","resumerFiche","sauvegarderFiche","vm","$valid","execution","id_categoriemodule","retourSauvegarde","chargerDonneesCartoDepuisFiche","actualisationFiche","rechargerFiche","fermerFiche","aForceFermeture","popupEnregistrement","aValidation","faireBasculeSynthese","actualiser","sauvegarderPlanning","planningParameter","rechargerPlanning","planningModifie","affichageGrillePlanning","affichageTimelinePlanning","affichageAgendaPlanning","fermerPlanning","sauvegarderAction","vueFormulaireAction","fermerAction","selectionnerTout","lengthSelection","selectionRecherche","donneesRecherche","pageChanged","recherchePageOnglet","ecranCourantRecherche","numeroPage","echapRechDernierDossiersCrees","bureauRaffraichissementAuto","rechercheDernierDossiersCrees","rechercheSelonTri","rechercheOnglet","finChargementPlanning","rechargerDonnees","retourRechercheOnglet","aEcranNom","aRetourRecherche","nombrePages","ceil","taillePage","descriptionRecherche","descriptionCarto","criteresRecherche","donneesListe","donneesCarto","colNomEntite","vueFormulaireFicheSynthese","descriptionRecherchePlanning","donneesRecherchePlanning","moduleRecherchePlanning","actionCodeRecherchePlanning","nomRecherchePlanning","typeRecherchePlanning","getTypePlanning","contexteRecherche","moduleLibelle","contexteRecherchePlanning","selectionRechercheCle","finChargementRecherche","aEcranLibelle","aIdEntite","aIdEntiteValeur","nomRechercheEnCours","bRechercheSelectionne","rechercheParDefaut","nombreDernierDossiersCrees","basculerDossierCrees","bRechercheDernierDossierCreeParDefaut","demanderActivite","MODULENOM","clef","listeEcranRecherche","filtre","bureauLimiteElement","seuilsTaillePage","seuilId","seuil","taillePagePerso","taillePageMosaique","appliquerTaillePagePerso","Number","idEntiteValeur","tableauSelection","extraireListe","load","serie","files","selectionCourante","ecranRecherche","pageCourante","aEntiteRecherche","aEstAction","aAffichagePleinEcran","getSelection","getFormulaireFiche","rechercherEcranRecherche","filter","ECRANNOM","PARDEFAUT","require","opPopupDemo","droitModificationFiche","actionsPlanning","getActionsPlanning","tableEntite","demoActif","demoActionTitre","demoActionIcone","gererActionDemo","rechercherActionMetier","ID_ACTION","ACTIONCODE","actionsGenerique","desactiverActionSelonRecherche","action","gererActionPlanning","actionCode","gererActionEcran","ecranIHM","paramActions","nbreSelect","nbreSelectLectureSeule","lectureSeule","getNomTableFiche","nomChamp","getNomChampPrincipal","popupActionEcran","descriptionSelection","TYPE_CHAMPS","ecranLibelle","default","echapDefaut","finChargement","appel_recherche","bFormulaireCharge","bLancerRecherche","finChargementFormulaire","tableNom","table","ecrannom","ecranlibelle","tablenom","bCritereNonPresent","colNom","estCritereRecherche","couleurPrimaire","couleurSecondaire","requetePreChargementFiche","bindToController","attributs","modeEdition","toLocaleUpperCase","aEntite","aModele","mapEntite","colEntite","colModele","evenement","event","gererStatutActions","libRessourceSelect","contextePlanning","typePlanningConnu","selectionMultiple","msgAvertissement","getRandomColor","letters","color","colorLuminance","hex","lum","c","rgb","substr","min","max","updatePie","dataPie","objGrilles","nomEcranPieObjet","VL_OP_DEMANDEGROUPEOBJET","nomEcranPiePriorite","VL_OP_DEMANDEGROUPEPRIORITE","nomEcranPieEtatDemande","VL_OP_DEMANDEGROUPEETAT","nomEcranPieEtatInterv","VL_OP_INTERVENTIONGROUPEETAT","nomEcranPieCategPatri","VL_OP_PATRIMOINEGROUPECATEG","nomEcranPieTypePatri","VL_OP_PATRIMOINEGROUPETYPE","nomEcranPieTypeBati","VL_OP_BATIGROUPETYPE","nomEcranPieTypeEspVert","VL_OP_ESPVGROUPETYPE","nomEcranPieTypeAssain","VL_OP_ASSAINGROUPETYPE","nomEcranPieTypeVoirie","VL_OP_VOIRIEGROUPETYPE","nomEcranPieTypeMotor","VL_OP_MOTORGROUPETYPE","nomEcranPieTypeSite","VL_OP_SITEGROUPETYPE","couleur","surbrillance","obj","VALEURS","highlight","label","GROUPE","dataPieDemandeObjet","dataPieDemandePriorite","dataPieDemandeEtat","dataPieEtatInterv","dataPieCategPatri","dataPieTypePatri","dataPieTypeBati","dataPieTypeEspVert","dataPieTypeAssain","dataPieTypeVoirie","dataPieTypeMotor","dataPieTypeSite","updateDoughnut","titreDoughnut","legendDoughnut","dataDoughnut","optionsDoughnut","responsive","segmentShowStroke","segmentStrokeColor","segmentStrokeWidth","percentageInnerCutout","animationSteps","animationEasing","animateRotate","animateScale","legendTemplate","updateBar","titreBar","legendBar","dataBar","labels","VL_OP_DEMANDEGROUPEDATECRE","LIBELLES_X","lbl","annee","j","idxGroupe","couleurRemplissage","couleurLigne","surbrillanceRemplissage","surbrillanceLigne","ds","fillColor","strokeColor","highlightFill","highlightStroke","idxData","VALEURS_X","VALEURS_Y","optionsBar","scaleBeginAtZero","scaleShowGridLines","scaleGridLineColor","scaleGridLineWidth","barShowStroke","barStrokeWidth","barValueSpacing","barDatasetSpacing","nomEcranBar","optionsPie","titrePieDemandeObjet","legendPieDemandeObjet","titrePieDemandePriorite","legendPieDemandePriorite","titrePieDemandeEtat","legendPieDemandeEtat","titrePieEtatInterv","legendPieEtatInterv","titrePieCategPatri","legendPieCategPatri","titrePieTypePatri","legendPieTypePatri","titrePieTypeBati","legendPieTypeBati","titrePieTypeEspVert","legendPieTypeEspVert","titrePieTypeAssain","legendPieTypeAssain","titrePieTypeVoirie","legendPieTypeVoirie","titrePieTypeMotor","legendPieTypeMotor","titrePieTypeSite","legendPieTypeSite","reload","TYPE_POPUPAVERTISSEMENT","TYPE_POPUPCONFIRMATIONWARNING","TYPE_POPUPCONFIRMATIONDANGER","TYPE_POPUPSUPPRESSION_MULTIPLE","isAvertissement","isConfirmation","typeConfirmation","isFenetreAjout","isSuppression","isSuppressionMultiple","nomColonne","estClePrimaire","confirmer","utilsCarto","TYPE_DATE","currentId","opModule","opDescription","opDonnees","opSelection","opStyle","opAffichageSectionGauche","outilFiltreActif","outilInfoActif","classeBarreOutils","classeOpenLayers","context","epsgCode","markers","markerStyle","markerSelectedStyle","vectorLayer","wmsLayer","chargerContexte","responseContext","chargerProjection","EPSG","responseEpsgCode","ol","Collection","style","Style","image","Icon","anchor","anchorXUnits","anchorYUnits","opacity","src","clusterSource","source","Cluster","Vector","features","layer","feature","nbreFeatures","clusterSelected","f","imgCluster","imgSelectedCluster","text","Text","fill","Fill","marker","sourceWMTS","capabilities","responseHttp","wmtsCapabilities","resetMarkers","points","clear","colCoordonnees","coordonnes","latlonprojection","createElement","colsChampVisibleCarto","innerHTML","Feature","geometry","geom","Point","proj","transform","parseFloat","information","selected","setStyle","basculerSelection","regroupement","featureSelected","$apply","layers","sourceWMS","Image","ImageWMS","LAYERS","parser","format","WMTSCapabilities","read","options","WMTS","optionsFromCapabilities","matrixSet","wmtsLayer","Tile","osmLayer","OSM","Map","controls","control","defaults","ScaleLine","ZoomSlider","FullScreen","target","view","View","projection","center","zoom","getView","fit","initialExtent","popup","title","content","previous","count","next","closer","overlay","Overlay","addOverlay","refreshPopup","total","titleHTML","contentChild","appendChild","onclick","setPosition","on","forEachFeatureAtPixel","pixel","getGeometry","getCoordinates","viewResolution","getResolution","getSource","getGetFeatureInfoUrl","coordinate","INFO_FORMAT","infoFormat","response","GeoJSON","readFeatures","creerTableAttributs","dragging","getEventPixel","originalEvent","hit","hasFeatureAtPixel","getTarget","cursor","switchOutilInfo","switchOutilFiltre","etendueInitiale","etendueDonnees","selectedPoints","getArray","setCenter","setZoom","coordinates","extent","boundingExtent","typeComplexe","$watchCollection","updateSize","featureRequest","WFS","writeGetFeature","featureNS","sourceWFS","featurePrefix","featureTypes","REF_CODE","outputFormat","equalTo","idProperty","REF_ID","fetch","method","XMLSerializer","serializeToString","doc","DOMParser","parseFromString","oldNode","newNode","createElementNS","firstChild","replaceChild","GML3","LIBELLE","bMobile","styleMobile","scopeSource","opModel","idAffichageAdresse","show","opShow","opModuleNom","opModelNomVoie","opModelComplement","opModelLocalite","opModelCodePostal","opModelBoitePostale","OpModelCedex","OpModelCoordGPS","OpModelEstSaisie","opModelQuartier","scrollClick","navigator","userAgent","match","affichageAdresse","adresseAffichee","initAffichageAdresse","basculeAffichageAdresse","click_relancerRecherche","idModele","descriptionModel","inputs","find","forEach","input","ngModel","old","$viewValue","$setViewValue","changeAdresseComplete","OpModelCedexQuartier","rechercheReferentielAdresse","nomReferentiel","parametreReferentiel","valeurRecherche","rechercher","changerAdresse","onTypeAheadReferentielAdresse","$item","$index","geolocaliserMoi","opModelCoordGPS","geolocation","getCurrentPosition","position","rechercheXY","coords","longitude","latitude","$document","ready","$","offset","top","innerHeight","posActuel","scrollTop","animate","idAffichageContact","opModelQualite","opModelNom","opModelPrenom","opModelTelephone","opModelGSM","OpModelMail","OpModelAdresse","OpModelReferentiel","affichageContact","contactAffiche","initAffichageContact","basculeAffichageContact","click_relancerRechercheContact","changeContactComplete","opModelBoitePostal","OpModelGPS","OpModelQuartier","rechercheReferentielContact","changerContact","onTypeAheadReferentielContact","SCOPE_DESCRIPTION","SCOPE_OBLIGATOIRE","SCOPE_ESTLECTURESEULE","opModelClef","opModelValeur","idClef","valeurListeClef","valeurLabelClef","groupListeClef","lc","opListeClef","idListeClef","listeFilterClef","idValeur","formulaireNom","opForm","requiredClef","requiredValeur","lectureSeuleClef","lectureSeuleValeur","toolTipClef","toolTipValeur","placeholderClef","placeholderValeur","typeaheadEditableValeur","templateElement","attr","modelClefLibelle","tableListeClef","champIdListeClef","champLabelListeClef","valeurRadio","valeurListe","valeurTypeahead","nomTableColonneClef","nomTableColonne","estGrille","lv","opListeValeur","tableListe","lvColonneCleFiltre","lvColonneCle","lvColonneLibelle","listepersoListefixe","idListeFixe","$id","paramListePerso","listeFixe","listeFixeRadio","desc","typeInteraction","idx","listeValeurs","k","objValeur","complementLibelle","l","cle","tableGrilles","idxCle","g","estClefRenseigne","onChangeClef","tableLibelle","champLibelle","valeurLibelle","clefRenseigne","onChangeValeurListe","idElement","elem","list","getAttribute","querySelectorAll","inputValue","option","onChangeValeurTypeAhead","onChangeValeurRadio","estRadio","nomElem","typeDatalist","typeTypeahead","getIdentifiant","prefixe","suffixe","getDataListeFixe","triggerHandler","referentielServlet","gestionActionFormulaire","SCOPE_UNITE","SCOPE_BORNE_MIN","SCOPE_BORNE_MAX","opListe","idListe","listeFilter","valeurLabel","scopeListes","groupListe","toolTip","placeholder","typeaheadEditable","required","modelOption","change","opChange","nomModuleLien","colonnesInfoLien","opType","opTypeComplexe","bLien","opLien","colonnesInfoBulle","bInfoBulle","opInfoBulle","descInfoBulle","formule","opFormule","nomTableListe","years","_referentiel","estTypeaheadRadio","paramTypeahead","estTypeaheadFixe","colonneCle","colonneLibelle","typeaheadListefixe","cleListe","libListe","changeTypeaheadRadio","onSelectTypeAhead","nomChampValeur","getBulleInfoListe","listeCols","nomColChampListe","valeurEntite","cols","texte","gererChangeListe","mapChamps","mapColCle","colCleEntite","colCleListe","mapColsListe","valeurCle","colSaisie","colListe","estDatalistRadio","paramDatalist","estDatalistFixe","changeDatalist","changeDatalistRadio","datalistListefixe","modifierMotDePasse","colclefetrangere","refEtrangere","colNomLogin","colNomPassword","encryptageBDMotDePasse","$event","opened","preventDefault","stopPropagation","datepicker","aDescription","formatLabel","$model","aModuleNom","aNomReferentiel","libelleInitial","nomModele","setValeur","rechercheReferentiel","filtreRecherche","onTypeAheadReferentiel","$label","onChangeReferentiel","handleFileSelect","getBulleInfo","priority","valeurModele","descriptionListe","descriptionListeValeur","liste","listeValeur","bValeurPresent","$parse","separateurInterne","ngModelController","opInputFormule","$isEmpty","modelGetter","modelSetter","assign","$formatters","$render","getFullYear","modeleFormule","eval","$parsers","idxNomTable","description","attributes","$modelValue","val","opTimepickerEmpty","items","colFiltre","elementSearch","colonneFiltre","valElement","representationService","requeteFichier","opEntite","opTrigramme","opFiltre","opSelectionCle","opDetail","opTaillePage","upDateTemplate","colsTitre","templateTitre","templateCommentaire","templateCommentairePied","colsCommentaire","templateInfoBulle","colsInfoBulle","templateDocAttache","colsDocAttache","n","valLien","templateLien","nombreColonnes","watchedWidth","getTemplate","getCleElement","clefPrimaire","colRepresentationStatut","colRepresentationPriorite","colClePrimaire","urlImageDefault","getRepresentationStatut","rep","icon","getRepresentation","getRepresentationStyle","getValeur","typeValeur","getValeurTooltip","longueurMin","v","infoBulleRenseigne","estInfoBulle","estDocAttache","docAttache","offsetWidth","newVal","oldVal","sort","gererSelectionCle","indexCle","afficherStreetView","elementGPS","urlStreetView","reverse","chargerVignette","chargementVignettes","tp","start","operiaConfig","active","users","chats","userList","minimized","webRtcCompliant","getUserMedia","urlHttp","connected","refreshUserList","websocket","WebSocket","urlWs","onopen","onOpen","onclose","onClose","onmessage","onMessage","onerror","onError","wsConnected","sendMessage","uuid","code","which","keyCode","ul","parentNode","jsonToSend","to","send","videoChat","token","now","answerVideoChat","msg","from","hangupVideoChat","isOnline","json","alreadyInChat","sended","video","messages","scrollHeight","fromLogin","webrtcCompliant","isUserWebRtcCompliant","toLogin","chat","user","chatWith","toggleList","toggle","hide","affichage","stunUrl","turnUrl","turnUsername","turnCredential","setUrlWs","setUrlHttp","setIsMobile","setStunUrl","setTurnUrl","setTurnUsername","setTurnCredential","isConnecting","isConnected","streams","STUN","TURN","credential","username","iceServers","get_user_media","log_error","peer_connection","RTCPeerConnection","onicecandidate","ice_event","candidate","signaling_server","call_token","onaddstream","remote","createObjectURL","stream","setup_video","audio","local_stream","local","addStream","local_stream_added","caller_signal_handler","callee_signal_handler","new_description_created","setLocalDescription","sdp","signal","create_offer","addIceCandidate","RTCIceCandidate","setRemoteDescription","RTCSessionDescription","remoteDescription","createOffer","create_answer","createAnswer","toggleFullScreen","fullscreenElement","webkitFullscreenElement","mozFullScreenElement","msFullscreenElement","exitFullscreen","mozCancelFullScreen","webkitExitFullscreen","msExitFullscreen","currentTarget","requestFullscreen","mozRequestFullScreen","webkitRequestFullscreen","Element","ALLOW_KEYBOARD_INPUT","msRequestFullscreen","referenceInterne","opContextePlanning","opNomPlanning","opTypePlanning","opNomModule","opActionCode","opDonneesRecherche","updateActions","sauvegardePlanning","actualiserOpPlanningDepuisCache","demanderRechargement","confirmationAvantAction","affichageGrille","affichageTimeline","affichageAgenda","ajoutTache","ajoutTacheDetaillee","modifierTache","supprimerElements","avancementTache","reactiverElements","gererPeriodicite","actionLibelle","ajoutOccupation","modifierOccupation","uiCalendarConfig","idEntete","refEntete","adresseEntete","objetEntete","estModeleEntete","refSerieRecurrence","debutEntete","bufDonnees","bufDonneesRecurrence","dataGrillePlanning","eventRessources","eventSources","listeIdLectureSeule","listeIdResLectureSeule","numeroElemParEvenement","eventDisponibles","eventSupprimes","eventRecurrentSupprimes","lignesRecurrentSupprimees","groupesStatutsLignesModifies","nbreEventSelectionnes","nbreEventLectureSeuleSelectionnes","planningLectureSeule","dragged","idGroupe","nbreLignes","modeAffichage","grille","planning","agenda","listeRessources","listeRessourcesAffectees","listeLibRessourcesAffectees","filtreRessources","typeRessource","nomEquipe","libRessource","competence","typeMateriel","listeTypeRessource","listeCompetences","listeTypesMateriels","groupes","dureeEnCours","idxDureeDefaut","dureePeriodes","dynamicSort","sortOrder","a","b","getCalendarDefaultDate","minDate","moment","getLibSelection","ref","getIdRessourceSelect","selectionne","getLibRessourceSelect","setRessourceSelect","getListeRessources","donnees","idRessource","statutRessource","ressource","ajoutRessource","equipe","libEquipeNullOuVide","ressources","ID_RESSOURCE","LIB_RESSOURCE","STATUT_RESSOURCE","TYPE_RESSOURCE","EQUIPE","COMPETENCE","paramPlanning","lireParametrePlanning","colonnesLigne","COT_GRIL_LIBELLE","getListeCompetences","idCompetence","libCompetence","ajoutCompetence","competences","ID_COT_COMPETENCE","COT_COMP_LIB","getListeTypesMateriels","idTypeMateriel","codeTypeMateriel","libTypeMateriel","ajoutTypeMateriel","typesMateriels","ID_PAT_NATURE","PAT_NAT_CODE","PAT_NAT_LIB","codeMateriel","libMateriel","getGroupesRessources","groupe","libGroupe","ajoutGroupe","getListeRessourcesAffectees","ressourcesAffectees","listeIdOpSelection","idxSelection","dejaPresente","existeEvent","getCleSelection","ID_INTERVENTION","getNumeroElemParEvenement","idEvent","numero","setNumeroElementParEvenement","initNumeroElemParEvenement","listeIdEvent","numeroInterneLigne","getNbreRecurrences","dateReference","typeRecurrence","intervalle","dateLimite","nbreOccurences","d","isSame","isBefore","getDeltaEnJours","occurence","jourCible","nbreJours","nbre","diff","isoWeekday","date","month","getNomVue","vues","getNomDuration","vue","clickExpander","textContent","nbreClickRessourceExpander","uiConfig","calendar","lang","firstDay","schedulerLicenseKey","editable","droppable","eventReceive","calendars","fullCalendar","resourceId","doublon","ressourceAutorisee","idRes","libRes","ajoutAutorise","statutEntete","statutsLecutreSeule","statutLigne","dateDebut","dateFin","end","donneesLigne","typeRes","idLigne","refLigne","libLigne","descLigne","debutReel","finReelle","dureeJours","dureeHeures","avancement","visible","ligneVide","estAjout","modifie","idxLigne","initListeEvenementDispo","weekNumbers","header","left","right","views","timelineWeek","buttonText","titleFormat","resourceAreaWidth","slotLabelFormat","slotDuration","days","timelineTwoWeek","duration","weeks","timelineThreeWeek","timelineFourWeek","timelineFiveWeek","timelineSixWeek","timelineSevenWeek","timelineEightWeek","timelineNineWeek","timelineTenWeek","timelineElevenWeek","timelineTwelveWeek","timelineMonth","timelineTwoMonth","months","timelineThreeMonth","timelineFourMonth","timelineFiveMonth","timelineSixMonth","timelineSevenMonth","timelineEightMonth","timelineNineMonth","timelineTenMonth","timelineElevenMonth","timelineYear","timelineTwoYear","timelineThreeYear","timelineFourYear","timelineFiveYear","timelineSixYear","eventClick","r","eventClassName","clientEvents","ignorer","eventArrierPlan","rendering","majStatutSelection","className","maitre","gererSelection","popupDetail","t","supprimerEvenement","viewRender","off","css","joursFeries","wasRemoved","debutInterval","intervalStart","nbreMois","eventRender","eventDuration","isValid","eventContexte","eventTitle","refInterneLigne","resources","f1","jourFerie","adrEventMaitre","adrLignesMaitre","idxLigneAdrMaitre","descEvent","adrEvent","adrLignes","idxLigneAdr","titleAgenda","titleDefault","eventAfterAllRender","dateDebutPeriode","toDate","rowHierarchy","thisRow","groupValue","collapse","eventDragStart","depuisResourceId","depuisStart","eventDrop","delta","revertFunc","interdireDrop","idRessourceSelect","depuisRessource","modifierDuration","eventResizeStart","resizeStart","resizeEnd","eventResize","interdireResize","initCalendrier","defaultView","reinitDefaultDate","defaultDate","resourceColumns","labelText","field","resourceGroupField","el","replaceWith","construireDonneesGrillePlanning","bufLigne","displayNameLibLigne","gridOptions","enableRowHeaderSelection","enableFullRowSelection","enableSelectAll","multiSelect","columnDefs","displayName","onRegisterApi","ajoutEventSourceLectureSeule","libEvent","libEventAgenda","bufEvent","dateDebutValide","recurrente","backgroundColor","borderColor","eventSource","events","allDayDefault","estLectureSeule","initEventSources","donneesRecurrence","deb","tmpFin","idxEvt","dr","idEntetePrec","refEntetePrec","statutEntetePrec","adresseEntetePrec","bufSourceEvent","listeIdSelect","idxEntete","isAfter","trouve","idxPremierEvt","debValide","interventionMaitreValide","idxRecurrence","s","num","nbreLigne","colonnesEntete","autoriseEdition","eventsLectureSeule","pop","getJoursFeries","construireEventSources","bufRes","libTri","resTraitee","eventDispoActuel","ordreEvent","filtreContact","aujourdhui","startOf","adr","idxAdr","libRef","ordre","ressourceAffectee","libEvt","refInterne","numeroInterne","dateCreation","creationLigne","affectee","planifiee","allDay","libStatut","chargementDonneesLectureSeule","nonTraitees","ecranRechercheAutresTaches","subtract","rechercheDebut1","versDateTime","versTime","versDate","rechercheDebut2","bufLignes","tableLignes","listeIdExclus","rechercheFin1","rechercheNumeroRecurrence","ecranRechercheNumeroRecurrence","recurrenceNumero","rechercheIdElementMaitre","numeroRecurrence","idFormulaireMaitre","ecranRechercheMaitreRecurrence","idElementRef","debMin","actualiserOpPlanning","idSelection","clePrimaire","colonneEtValeur","listeIdEntete","debPeriode","idxLignes","dataTableLignes","debLigne","qteRessource","ecranRechercheRessources","retourChargementLectureSeule","LST_COT_COMPETENCE","initOptionsRessourceSelect","retourInitSelect","idxBufLigne","ressourceSelect","changeRessourceSelect","VL_PAT_LST_PAT_NATURE","REC_REFINTERNENUMERO","idElementMaitre","bufLignesRecurrence","tableEntete","creationEntete","estModele","idxLignesRecurrence","nomTableLignes","tablesLignesRecurrence","dRef","dLigne","donneesLectureSeule","ajoutLigneVide","deltaDeb","deltaFin","year","hour","minute","second","millisecond","select","supprimerEvenementBase","idEcran","idEventSupprime","getRefInterneEvenement","idEvt","refInterneNomEntete","numeroEvt","refEvt","nomInterne","sauvegardeEvenementBase","ecranSauvegardeLignes","tableSauvegardeEntete","refInterneEvt","codeActionPostSauvegarde","idCreateurLigne","idGroupeApresSauvegarde","idCreateur","idGroupeAvantSauvegarde","idEnteteAvantSauvegarde","idEnteteApresSauvegarde","TACHE","idxStatutModifie","TAC_ID_CREATEUR","TAC_REFINTERNENOM","TAC_REFINTERNENUMERO","TAC_DATECREATION","TAC_CODEOBJET","TAC_OBJET","TAC_DESCRIPTION","TAC_DATEDEBUT_PREV","TAC_DATEFIN_PREV","TAC_DATEDEBUT","TAC_DATEFIN","TAC_DUREEJOUR","TAC_DUREEHEURE","TAC_AVANCEMENT","nbreRessources","TAC_INTERVENANT","TAC_MATERIEL","TAC_MATERIAU","champRessource","champQteRessource","ligneGrille","ID_TACHE","getNumeroRecurrenceSuivant","recNumero","ecranRechercheNumeroRecurrenceSuivant","prochainNumero","NUMERO","sauvegardeEnteteBase","ecranSauvegardeEntete","finEntete","erreurSauvegarde","calcNumeroEntete","rechercheNumeroInterne","ecranRechercheNumeroEntete","retourRechercheNumeroInterne","an","getMonth","idCreateurEntete","numeroEntete","objet","tableSauvegardeEnteteRecurrence","recurrenceType","recType","recurrenceIntervalle","recIntervalle","recurrenceDateLimite","recDateLimite","recurrenceLundi","recLundi","recurrenceMardi","recMardi","recurrenceMercredi","recMercredi","recurrenceJeudi","recJeudi","recurrenceVendredi","recVendredi","recurrenceSamedi","recSamedi","recurrenceDimanche","recDimanche","recurrenceJourDuMois","recJourDuMois","recurrenceMois","recMois","recurrenceOuvre","recOuvre","recurrenceFerie","recFerie","lignes","retourSauvegardeEntete","recNnumero","sauvegarderEventRecurrentBase","existeRecurrence","rs","idEnteteSauvegarde","listePromesses","debEntete","lignesModif","lignesAjout","retourSuppression","idEnteteSupp","idLigneSupp","autoriserSuppression","entetes","indexLigne","chaine","when","libBoutonOK","libBoutonNO","libOK","libNO","popupConfirmation","modalAjoutOccupation","ID_CONTACT","occupation","occupationAjoute","modalModifOccupation","modalAjoutTache","premiereTache","tache","tacheAjoute","modalAjoutTacheDetaillee","taches","lignesTache","modalModifierTache","modalAvancementTache","lignesVides","modalRecurrence","recurrence","nbreOccurence","joursCibles","groupePrec","tacheRecurrente","startDrag","basculeSelectionLigne","clearSelectedRows","selectRow","unSelectRow","majSelectionGrille","clickEvenement","versDateDebutEntete","precedent","suivant","affichageActive","depuisGrille","nomVue","imprimerPlanning","apercuImpressionPlanning","idCalendarContainer","nomWindow","w","write","print","afficherIntervenants","modalRessources","afficherMateriels","idElem","modalInstance","majNbreSelectEtVisible","nbreVisible","checked","dejaAffichee","majNbreRessourceVisibleParType","nbreRessourceParType","nb","majNbreRessourceVisibleParGroupe","nbreRessourceParGroupe","filtrerListeRessources","aucune","filtreValeur","msgLancement","toutes","rechercherToutes","clickCheckSelect","clickCheckRecherche","nbreTypeRessource","nbreGroupeRessource","existeEventStyle","libValider","saisieNOK","VL_OCC_CREEROCCUPATION","COT_OCC_OBJET","COT_OCC_DATEDEBUT","COT_REFINTERNENOM","NOM_PRENOM","refObjet","COT_OCC_DESCRIPTION","VL_OCC_OBJET","COT_OCC_LIB","COT_OCC_CODE","COT_OCC_DATEFIN","COT_OCC_DUREEJOUR","COT_OCC_DUREEHEURE","VL_TAC_CREERTACHE","REFERENCE_INTERVENTION","INT_ADRESSECOMPLETE","LIB_CONTACT","VL_TAC_OBJET","TAC_OBJET_LIB","TAC_OBJET_CODE","INT_OBJETDESCRIPTION","INT_DATEDEBUT_PREV","INT_DATEFIN_PREV","INT_ID_INTERVENANT","modal","q","uiGridConstants","libBtnValider","accordionGroupes","intervenantsIsOpen","materielsIsOpen","materiauxIsOpen","titreIntervenants","gridOptionsIntervenants","enableHorizontalScrollbar","scrollbars","WHEN_NEEDED","gridApiIntervenants","titreMateriels","gridOptionsMateriels","gridApiMateriels","titreMateriaux","gridOptionsMateriaux","gridApiMateriaux","VL_TAC_CREERTACHEDETAILLEE","majTitreIntervenants","majTitreMateriels","majTitreMateriaux","chargerTache","initGrilleIntervenants","intervenants","quantite","initGrilleMateriels","materiels","initGrilleMateriaux","materiaux","chargerRessources","ajouterIntervenant","modalIntervenants","affectees","ajouterMateriel","modalMateriels","ajouterMateriau","modalMateriau","ID_TACHEMATERIAU","materiau","libMateriau","qteMateriau","supprimerIntervenant","getSelectedRows","supprimerMateriel","supprimerMateriaux","intervenant","VL_TAC_AJOUTMATERIAU","TAC_MATERIAU_LIB","TAC_MATERIAU_QTE","$scopeFormulaire","TAC_STATUT","TAC_STA_NOM","terminer","evenementMaitre","evenementOccupation","libEvenement","descEvenement","dureeEvenement","confirmationAvantSuppression","monImage","altImage","verificationSelection","historique","actionInfos","requeteNotificationInterne","messagerie","$selectionVisible","$formulaireVisible","$btnEnregFermerMobile","$noFormulaire","noFormulaire","$bFormulaireCharge","$etendreVisible","etendreVisible","$bVerificationValidation","$moduleNom","actionModule","$ecranVerification","ecranVerification","$droitService","$erreurAucuneDonnee","erreurAucuneDonnee","$estErreurAucuneDonnee","$identifiantNom","$finChargementFormulaire","$selectionOrigine","retourVerification","$selectionDescription","$selectionDonneesOrigine","$selectionDonnees","$selection","$close","$erreur","$erreurs","$finVerificationValidation","actionEcran","actionEntite","etendreSelection","$valider","promesse","$validationSelection","suiteValidationSelection","$historique","sauvegardeHistorique","$action","codeAction","getInfoAction","suppressionSelection","paramNotif","contenu","getParametrageNotificiation","TITRE","CONTENU","reference","$notificationAutomatique","ajouterNotification","id_destinataire","id_servicedestinataire","envoieMessage","alerte","ok","dismiss","aBoutonOK","aBoutonNO","boutonNO","boutonOK","popupOpAlerte","typeDemo","titreDemo","donneesDemo","demo","nodeTemplate","refNoeud","titreNoeud","texteNoeud","getDonnees","orgchart","depth","draggable","pan","enCours","estAffichageMobile","afficherDocumentsLies","vueFormulaireDocLie","finChargementFormulaireeDocLie","scopeFormulaireDocLie","sauvegarder","parametre","requeteEdition","ECRAN_RECHERCHECOURRIER","VL_OP_MODELE","ID_MODULE","ID_MODELE","MODELECLESPRIMAIRES","EDITION_BIBLIOTHEQUE_DEFAULT","EDITION_FORMAT_DEFAULT","descriptionRechercheModele","donneesRechercheModele","selectionRechercheModele","btnEnvoyerDispoinble","VL_OPE_MODELE","IDENT_MODULE","BIBLIOTHEQUENOM","attacher","idEntiteListe","entite2","entite3","getEntite","recupererLien","responseEdition","cheminFichier","ajouterFichierDirectURL","responseFichier","fichier","cptFile","fichiersEnvoi","envoyer","envoi","aIdModele","entiteValue","expediteur","documents","statusText","fromJson","editer","telechargerDocument","listeEntite","entiteOK","lstId","colClef","$isButtonFermerVisible","$dismiss","popupOpEnregistrement","Messagerie","RequeteContact","opCritere","opMessage","$description","$grille","$opMessage","$displayDestinataire","getModuleContact","dests","corps","COT_MAIL","destExterne","warnText","nature","priorite","confidentialite","envoiDiffere","popupEnd","popupAlerte","opPopupController","CHAMP_ID_MESSAGE","utilsMessagerie","descriptionRechercheMessage","donneesRechercheMessage","selectionRechercheMessage","contenuMessage","rechercheMessagesEntites","rechercheMessagesUtilisateur","afficherContenu","nomsIdentifiants","etatMessage","marquernonlu","idMessage","idRadioExportPlage","plage","plagePages","getgrilleCSV","pageDebut","pageFin","genererCSV","test","arrayPage","pageTemp","critere","promesses","aDonnnees","donneesCSV","ligne","champsNom","requeteVerificationSuppressionFiche","requetePreSuppressionFiche","requetePostSuppressionFiche","ecranNomSuppression","$ecranVerificationSuppression","getEcranVerification","retourPreSupp","$success","$info","querySelector","AppliParamLoaded","ControleurBase","cookieWarnAccepted","isCookieWarnAccepted","getApplication","acceptedWarn","trigger","focus","opEtat","opMultiSelect","opCategorie","opShowGridFooter","opEnablePagination","opIsGrilleformulaire","opDesactiverTousSelectionner","opDerniereLigneSelect","opControlerCsv","opDemandeDetailEntite","opVerticalScroll","triRecherche","titreLigne","getRepresentationStatutGrille","getRepresentationStyleGrille","getListeLabel","nomListe","nomLabel","nomValeur","$eval","showGridFooter","calcGridHeight","heightFooter","heightHorizontalScrollbar","enablePaginationControls","lignesParPage","paginationPageSizes","paginationPageSize","grilleFilter","renderableRows","matcher","row","fieldEntity","entity","rowSelectionChanged","isSelected","rowSelectionChangedBatch","rows","grid","registerRowsProcessor","core","rowsRendered","selectionItems","sortChanged","sortColumns","tri","direction","colonne","convertirVersTexte","getTitreLigne","sortColonnes","triColonnesLigne","colonnes","champ","toggleRowSelection","attrLien","treeRowHeaderAlwaysVisible","columnDef","bGrilleFormulaire","bEstColonneVisible","estVisible","infoBulle","cellTemplate","minWidth","cellFilter","representation","longueurMax","cellTooltip","enableFiltering","sortable","minimumColumnSize","enableVerticalScrollbar","formuleRegroupement","refresh","chargerLien","nomColEntite","ouvrirDetailEntite","ouvrirRefSigEntite","gridWidth","canvasWidth","queueRefresh","exporterCSV","exporter","exporterCsvColumnSeparator","exporterOlderExcelCompatibility","exporterCsvFilename","nomFichier","export_row_type","export_column_type","csvExport","enteteColonnes","$elm","uiGridCtrl","getDimensions","prevGridHeight","gridUtil","elementHeight","prevGridWidth","elementWidth","startTimeout","resizeTimeoutId","newGridHeight","newGridWidth","gridHeight","opDisabledExpandableRow","opGrilleOptions","opFormulaire","getType","deleteRow","confirmationSuppression","retourConfirmation","expandableRow","getRepresentationClass","getRepresentationToolTip","nbreItemOuvert","enableExpandableRowHeader","expandableRowTemplate","expandableRowScope","expandableRowHeight","rowExpandedStateChanged","isExpanded","enableGridMenu","enableCellEdit","rowEdit","saveRow","rowEntity","setSavePromise","descriptionsColonne","column","regroupementnom","headerTooltip","filterValeur","filterKey","listeNom","enableCellEditOnFocus","editableCellTemplate","editDropdownValueLabel","editDropdownIdLabel","editDropdownOptionsArray","editDropdownOptionsFunction","editType","idActionLien","entiteLien","nombreItem","isPresentValeur","array","VALEUR","aScopeFormulaire","closeRow","paragraphes","opStopEvent","keyName","keyValeur","sortName","filtered","objetCible","minus","majus","valeurA","valeurB","bufA","bufB","carA","carB","MILLISECONDES_VERS_SECONDES","MILLISECONDES_VERS_MINUTES","MILLISECONDES_VERS_HEURES","MILLISECONDES_VERS_JOURS","MILLISECONDES_VERS_MOIS","MILLISECONDES_VERS_ANNEES","FORMATS","aIntervalle","multiplicateur","formatTest","indiceFormat","join","orderByFilter","expression","opExpression","Modele","TABLE_PARAMETRES","CHAMP_PARAMETRE_VALEUR","CHAMP_PARAMETRE_CODE","CHAMP_PARAMETRE_CATEGORIE","DESCRIPTION_INVALIDE","DESCRIPTION_TABLE_INVALIDE","VALEURS_INVALIDES","DESCRIPTION_ENTETE","defaut","versTexteDepuisEntier","versBooleen","versNumerique","versTexteDepuisNumerique","aDescriptions","aValeurs","tables","descriptionsTables","_separateurNiveau3","valeursTables","indiceTable","descriptionsColonnes","_separateurNiveau2","valeursLignes","indiceColonne","descriptionsMetaDonnees","_separateurNiveau1","colonneMetadonnees","indiceDescription","tableObjet","versType","decimalesMax","borneMin","borneMax","indiceLigne","valeursColonnes","aTables","descriptionsTable","call","nbLignes","valeursTable","valeursTableLigne","valeurTable","nomChamps","Array","isArray","versTexteEspaceForXML","_separateurInterne","actual","expected","indiceCategorie","indiceCode","indiceValeur","categorie","aSeparateurNiveau1","aSeparateurNiveau2","aSeparateurNiveau3","aSeparateurInterne","_actionInfos","setAction","aIdAction","moduleDefault","epsgDefault","contextDefault","fileModule","cartoCheminContexte","responseModule","fileDefault","responseDefault","aEpsgCode","proj4","defs","epsgQuery","results","proj4def","bbox","newProj","fromLonLat","getTransform","applyTransform","setExtent","aFeature","tr","th","td","insertRow","getKeys","insertCell","pako","deflate","inflate","urlItineraire","gnau","_removeParam","paramToRemove","indexSans","indexAvec","indexStart","indexEnd","substring","_extractParams","suburl","extractedParams","urlParams","param","TYPE_TEXTE","TYPE_CLOB","TYPE_TIME","TYPE_DATETIME","TYPE_NUMERIQUE","CONVERSION_IMPOSSIBLE","entierRegExp","numeriqueRegExp","aDecimalesMax","aBorneMin","aBorneMax","aLongueurMax","aPartieEntiere","arrayValeur","jour","getDate","mois","heures","getHours","minutes","getMinutes","secondes","getSeconds","decimales","pow","dateSplit","timeSplit","dateHeure","$browser","ipCookie","_defaultOptions","path","_extractUrlPath","encode","_defaultEncode","decode","_defaultDecode","secure","_isEncryptedCnx","currentUrlPath","_applyOptions","aOptions","decodeFunc","documentMode","StyleMedia","cookies","encodeFunc","expires","expirationUnit","coeff","setTime","toUTCString","maintenantFormat","aFormat","aRetour","compression","toUTF8Array","chr","len","buffer","charCodeAt","Uint8ToString","u8a","CHUNK_SZ","apply","subarray","ENCRYPTION_KEY","ENCRYPTION_NB_ITERATION","aLogin","aMotDePasse","pwd","pwdArray","tmp","curIndex","toFixed","loginpwd","uInt8","Uint8Array","pwdFlex","sha256","decryptageMotDePasse","b64","libelleServeur","aReferent","referent","arguments","regExp","debug","TYPE_GRILLE","TYPE_COMPLEXE_IMAGE","separateurActionNiveau1","gestionRegroupement","$anchorScroll","getTypeGrille","nomGroupe","nomGroupeArray","getElementPrincipal","nomGrille","nomChampsPrincipal","indexElementPrincipal","getListe","refEtranger","refEtrangerArray","listeGroupement","listeArray","listeLabel","bTri","ordreTri","filtreObject","query","sytaxeObj","arrayFiltreObjet","arrayQueryObjet","getTemplateRepresentation","typeElement","colnom","getTemplateRegroupementTitre","nomRegroupement","TITREGRILLE","NUMEROREGROUPEMENT","getTemplateRegroupementVisibilite","visibiliteNomGroupeArray","visibiliteDescriptionArray","sortTableClef","isTableDependante","listeGrille","scopeDescription","clefEtrangere","btableDependante","indexTable","nomTableRecherche","getTableDependante","tableDependante","listeTableDependante","listeColonnePrimaire","indexChampsPrimaire","LISTETABLE","FILTRE","bLecture","estliste","estlectureseule","PATRIMOINE","PAT_CATEGORIE","getTemplateElement","modeLecture","opAction","iAction","nomGestionnaireAction","opModeLecture","typeChamps","formuleChamps","ngshow","visibleArray","operateur","colonnesCibles","tabValeursCibles","valeursCibles","idxValeur","descriptionChampValeur","getTemplateElementImage","aEstVignette","colNomEstPrincipal","colNomCommentaire","colNomLibelle","pasDocLie","suffixeSlide","getCodeOpenRegroupement","codeOpenRegroupement","pattern_accent","pattern_replace_accent","caractere","getTemplateRegroupement","isGroupOpen","templateAssocie","templateImage","templateHeading","listeChamps","estElementPrincipal","estGroupeAccordion","typeGrille","estGroupeOpen","estRegroupementOuvert","nomOpenRegroupement","isTableDocument","tableDocument","titres","visibiliteRegroupement","listeGroupesAssocies","groupeAssocie","indexTableAssocie","titreDialogue","buf","getTemplateRegroupementLecture","visibilite","locPrincipale","scrollCartoSynthese","hrefPrincipale","classHeader","classGrille","addListeRegroupement","listeGroupe","listeAction","listTable","dictionnaryGroupe","groupeNom","estCleEtrangere","actionsChamps","indexAction","isAccordion","ficheTitre","aArray","bArray","indexElement","apiUrl","countryCodes","StreetAddress","CadastralParcel","FREEFORMADDRESS_TEMPLATE","BUILDING_TEMPLATE","STREETADDRESS_TEMPLATE","PLACE_TEMPLATE","POSTALCODE_TEMPLATE","ENVELOPE_TEMPLATE","CIRCLE_TEMPLATE","REQUEST_TEMPLATE","REVERSE_REQUEST_TEMPLATE","XLS_TEMPLATE","replaceRequest","aCountryCode","aAddress","aFilter","request","replaceReverseRequest","aPreference","aLatitude","aLongitude","aCircle","aMaxResponses","replaceAddress","address","freeForm","street","building","number","municipality","postalCode","replaceFilter","envelope","latMin","lonMin","latMax","lonMax","places","place","replaceCircle","aRadius","circle","sendRequest","aXls","aCallback","keyUrl","encodeURI","geocodedAddress","onGeocode","aResponse","geocodeResponseList","XLS","Response","GeocodeResponse","GeocodeResponseList","numberOfGeocodedAddresses","_numberOfGeocodedAddresses","GeocodedAddress","__text","accuracy","GeocodeMatchCode","_accuracy","matchType","_matchType","onReverseGeocodeStreetAddress","reverseGeocodedLocations","ReverseGeocodeResponse","ReverseGeocodedLocation","reverseGeocodedLocation","loc","extractAddress","Address","ExtendedGeocodeMatchCode","distance","SearchCentreDistance","_value","Building","_number","Street","PostalCode","onReverseGeocodeCadastralParcel","cadastralParcel","streetAddress","xls","aCadastralParcel","reverseStreetAddress","reverseCadastralParcel","sum","avg","RequeteInterrogation","separateurActionNiveau2","CHARGEMENT_SECONDAIRE","conversionValeur","isTableChamps","aNomTable","isTableGrille","getEcranNom","aAction","arrayIdModele","_correspondanceActionEcran","actionsFormulaire","ecranASupprimer","ecranACharger","nomAction","ecranEnCours","bEcranASupprimer","bEcranAjouter","gererEstPrincipal","CHARGEMENT_SECONDAIRE_ANNUAIRE_ANN_NATURE_GROUPE","CHARGEMENT_SECONDAIRE_ANNUAIRE_ANN_NATURE_PERSONNE_PHYSIQUE","CHARGEMENT_SECONDAIRE_ANNUAIRE_ANN_NATURE_PERSONNE_MORALE","CHARGEMENT_SECONDAIRE_ANNUAIRE_ANN_NATURE_ENTREPRISE","CHARGEMENT_SECONDAIRE_PATRIMOINE_PAT_CATEGORIE_BATI_ERP","CHARGEMENT_SECONDAIRE_PATRIMOINE_PAT_CATEGORIE_BATI_IGH","CHARGEMENT_SECONDAIRE_PAT_BATIMENT_PATBAT_TYPE_BATI_ERP","CHARGEMENT_SECONDAIRE_PAT_BATIMENT_PATBAT_TYPE_BATI_IGH","CHARGEMENT_SECONDAIRE_PATRIMOINE_PAT_CATEG_BATI","CHARGEMENT_SECONDAIRE_PATRIMOINE_PAT_TYPE_BATI","CHARGEMENT_SECONDAIRE_PATRIMOINE_PAT_CATEG_ESPACE_VERT","CHARGEMENT_SECONDAIRE_PAT_ESPACEVERT_PATEV_TYPE_ESPACE_ARBORE","CHARGEMENT_SECONDAIRE_PATRIMOINE_PAT_CATEG_SITE","CHARGEMENT_SECONDAIRE_INT_MODELE_INT_MOD_ISPERIODIQUE_1","CHARGEMENT_SECONDAIRE_ANNUAIRE_ANN_ESTUTILISATEUR_1","aCorrespondance","getNomElementPrincipal","identiteEstPrincipal","nomPrincipal","aTable","listeChampsNonVide","estOuvert","_arrayRegroupementConfigure","configurerRegroupement","regroupements","IDENT_SERVGESTIONECRITURE","_habilitationServiceGestionnaire","_idServiceGestionnaireParDefault","aHabilitationServiceGestionnaire","aIdServiceGestionnaireParDefault","getServiceGestionnaireEcriture","serviceGestionnaireEcriture","getIdServiceParDefault","ECRANHISTORIQUE","aIdentifiant","aNom","aCommentaire","aEcranHistorique","ecranHistorique","bMobibilite","tableHistorique","ligneHistorique","rotateLeft","lValue","iShiftBits","addUnsigned","lX","lY","lX4","lY4","lX8","lY8","lResult","_F","x","z","_G","_H","_I","_FF","ac","_GG","_HH","_II","convertToWordArray","str","lWordCount","lMessageLength","lNumberOfWords_temp1","lNumberOfWords_temp2","lNumberOfWords","lWordArray","lBytePosition","lByteCount","wordToHex","lByte","lCount","wordToHexValue","wordToHexValue_temp","AA","BB","CC","DD","S11","S12","S13","S14","S21","S22","S23","S24","S31","S32","S33","S34","S41","S42","S43","S44","ECRAN_LECTURE_UTIL_ANNUAIRE","CHAMP_ID_UTIL_ANNUAIRE","GRILLE_ANNUAIRE","CHAMP_ID_ANNUAIRE_UTIL","ECRAN_LECTURE_NB_MESS_NONLUS","CHAMP_ID_ANNUAIRE_NONLU","GRILLE_MESS_NB_NONLUS","CHAMP_MESS_NB_NONLUS","ECRAN_RECHERCHE_MESSAGE_NONLU","CHAMP_ID_ANNUAIRE_MESS_NONLU","GRILLE_MESS_NONLU","ECRAN_RECHERCHE_MESSAGE_ENTITE","CHAMP_ID_ANNUAIRE_MESS_ENTITE","CHAMP_ID_MODULE_MESS_ENTITE","CHAMP_ID_ENTITE_MESS_ENTITE","GRILLE_MESS_ENTITE","ECRAN_ETAT_MESSAGE","CHAMP_ID_MESS_ETAT","CHAMP_ID_ANNUAIRE_ETAT","GRILLE_MESS_ETAT","CHAMP_MESS_ETAT","lectureNbMessagesNonLus","idAnnuaire","nbMessages","aSelection","critereIdAnnuaire","critereIdModule","critereIdEntite","aIdMessage","aEtat","aDestinataires","aObjet","aNature","aPriorite","aConfidentialite","aDocuments","urlMessagerie","hostname","port","_modulesInfos","setInfos","setInfo","MODULELIBELLE","MODULEICONE","MOD_TRIGRAMME","MOD_TABLEENTITE","ID_CATEGORIEMODULE","aInfo","infos","Parametre","aParametre","objetParametre","valeurDefaut","nomParametre","configPlanning","nomEcranRecherche","actionCommentaire","actionIcone","actionType","setParametrePlanning","REFEXTERNE","sauvegardeRefExterne","aSource","aRefExterne","aEcranRefExterne","nomEcranSauvegarde","tableRefExterne","aNomModuleCible","refSuivant","servlet","getParamServlet","_servletParam","getPromesseRechercheReferentielInsee","codeInsee","paramsAppelServlet","texteRecherche","referentiel","inseeCode","_servletUrl","_retourRechercheInsee","filtreInsee","bufRetour","nomTableModele","configurationServletReferentiel","champsBD","champsModele","typeDonnee","listeINSEE","champCodeINSEE","modeleCodeINSEE","champCleINSEE","modeleCleINSEE","tableINSEE","setCommunicationServlet","servletListeChamps","REP_DEFAULT","typeRepresentation","_affichages","tooltip","isValeurVisble","valeurVisible","icone","representionStyle","concatRepresentation","arg","mosaique","ajouterRepresentation","listeRepresentation","nomRepresentation","RequeteModuleComplement","colClefPrimaire","getModuleComplement","cplt","meta","aCriteres","ouvrirPDF","methode","VIGNETTE_WIDTH","VIGNETTE_HEIGTH","ID_VUE_VIGNETTREPRINCIPALE","getScaledDim","img","maxWidth","maxHeight","scaled","ratio","setFichierSupprimes","aIdFichier","_fichierSupprimes","id_fichier","ID_FICHIER","nomChampsFichier","nomChampsVignette","aFichiers","executerRequeteFichier","champsNomFichier","valeurVignette","retourVignette","champsNomVignette","tailleMaxDocument","fileReader","FileReader","ctx","getContext","readAsDataURL","onloadend","dataURL","onload","canvas","drawImage","toDataURL","carousel","fichierNom","msSaveOrOpenBlob","byteCharacters","byteNumbers","byteArray","blob","Blob","msSaveBlob","download","removeChild","aLien","aTableAssocie","fileNom","getModele","executer","retourInterrogation","setParametreInterrogation","critereChamps","critereValeur","setParametresInterrogation","onChangeParemetreInterrogation","valueOf","rechercheNumero","requeteInterrogation","champsResultat","retourRequeteInterrogation","OPE_NOTIFICATIONINTERNE","OPE_ECRANPARAMETRENOTIFICATION","ECRANRECHERCHEGENERALE","ECRANRECHERCHENOTIFICATION","VUERECHERCHENOTIFICATION","ECRANNOTIFICATION","TABLEENOTIFICATION","CHAMPSIDSECONDAIRE","CHAMPSETAT","CHAMPSTITRE","CHAMPSCONTENU","CHAMPSDATECREATION","CHAMPSDATEENVOIE","CHAMPSIDEXPEDITEUR","CHAMPSIDDESTINATAIRE","CHAMPSIDSERVICEDESTINATAIRE","CHAMPSAUTOMATIQUE","TABLEENTITE","GRIL_REFINT","aNombreItemPerPage","aOccurence","aIdExpediteur","tableRecherche","ETAT","recherchePageNotification","ID_DESTINATAIRE","ID_EXPEDITEUR","marquerLuNotification","aNotification","nomEntiteSecondaire","champsEtatNom","entiteNotification","preparerNotification","aTitre","aContenu","aAutomatique","aIdDestintaire","aIdServiceDestinaire","ecranEntite","champsTitreNom","champsContenuNom","champsDateCreationNom","champsDateEnvoieNom","champsIdExpediteurNom","champsIdDestinataire","champsIdServiceDestinataire","champsAutomtiqueNom","notification","envoyerNotification","erreurChargement","referenceNom","tableEntiteNom","configuration","RequetePostSauvegardeActionMetier","aDateStatut","aStatutNom","aStatutCommentaire","aHistoriqueNom","aHistoriqueCommentaire","historiqueNom","historiqueCommentaire","sauvegardeStatut","_actionMetier","aConfiguration","actionmetier","_configuration","aIdCategorieModule","tableServiceGestionnaire","aElementLie","aTrigrammeAutre","aTableEntiteAutre","nomEcranRechercheNumero","TABLE","ECRAN","TAILLE","aParamReferentiel","aValeurRecherche","aFiltreRecherche","aValeurRechercheCode","rechercherInterne","rechercherExterne","nomColCritere","paramReferentiel","majCritereRecherche","retourExecuter","aNomReferentielModule","aScopeVueRecherche","aNomColCritere","aValeurRecherchePrincipal","RECHERCHE","nomGrilleResultat","grilleResultat","tabFiltreInsee","ECRANSTATUT","aNomStatut","aCommentaireStatut","aEcranStatut","ecranStatut","tableStatut","VUE_UTILISATEURCONTEXTEIHM","_utilisateurContexteIHM","ID_UTILISATEUR","IHMCONTEXTE","getContexte","$version","numversion","numpatch","x2js","aXML","xml_str2json","xml2json"],"mappings":"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","sourcesContent":["/**\r\n * @version 1.0b\r\n * @copyright 2015 Operis\r\n * @Author Pierre-Emmanuel Balageas, Alcer - Operis\r\n */\r\n\r\n'use strict';\r\n\r\n(function () {\r\n\r\n /**\r\n * Promesse de la fenêtre de connexion.\r\n * @type {null}\r\n * @private\r\n */\r\n var _opConnexionPromise = null,\r\n /**\r\n * Map des clients pour le serveur Operis.\r\n * @type {Map}\r\n * @private\r\n */\r\n _operisWSServers = {},\r\n _operisWSServersToBeInstantiated = {},\r\n _motdePasseUtilisateur;\r\n\r\n angular.module('fr.operis.moteurV4.communication.OperisWSServer', [\r\n 'ui.bootstrap'\r\n , 'fr.operis.moteurV4.composants.OpConnexion'\r\n , 'fr.operis.moteurV4.composants.OpConnexionPortail'\r\n , 'fr.operis.moteurV4.composants.OpMireAttente'\r\n , 'fr.operis.moteurV4.utils.RequeteMultiAppel'\r\n , 'fr.operis.moteurV4.composants.OpPopupAlerte'\r\n , 'fr.operis.moteurV4.composants.OpPopupDemo'\r\n , 'fr.operis.moteurV4.modele.Modele'\r\n , 'fr.operis.moteurV4.utils.Conversion'\r\n , 'fr.operis.moteurV4.utils.Encryption'\r\n , 'fr.operis.moteurV4.utils.Erreur'\r\n , 'fr.operis.moteurV4.utils.MD5'\r\n , 'fr.operis.moteurV4.utils.XML'])\r\n\r\n /**\r\n * Configuration du service de Modele.\r\n */\r\n .config([\r\n 'fr.operis.moteurV4.modele.ModeleProvider'\r\n , 'fr.operis.moteurV4.communication.OperisWSServer.SEPARATEUR_NIVEAU_1'\r\n , 'fr.operis.moteurV4.communication.OperisWSServer.SEPARATEUR_NIVEAU_2'\r\n , 'fr.operis.moteurV4.communication.OperisWSServer.SEPARATEUR_NIVEAU_3'\r\n , 'fr.operis.moteurV4.communication.OperisWSServer.SEPARATEUR_INTERNE'\r\n , function (ModeleProvider, SEPARATEUR_NIVEAU_1, SEPARATEUR_NIVEAU_2, SEPARATEUR_NIVEAU_3,SEPARATEUR_INTERNE) {\r\n ModeleProvider.setSeparateurNiveau1(SEPARATEUR_NIVEAU_1);\r\n ModeleProvider.setSeparateurNiveau2(SEPARATEUR_NIVEAU_2);\r\n ModeleProvider.setSeparateurNiveau3(SEPARATEUR_NIVEAU_3);\r\n ModeleProvider.setSeparateurInterne(SEPARATEUR_INTERNE);\r\n }])\r\n\r\n\r\n /**\r\n * Séparateur interne\r\n * @type {String}\r\n * @value ó\r\n */\r\n .constant('fr.operis.moteurV4.communication.OperisWSServer.SEPARATEUR_INTERNE', String.fromCharCode(243))\r\n /**\r\n * Séparateur de niveau 3 (plus haut)\r\n * @type {String}\r\n * @value ò\r\n */\r\n .constant('fr.operis.moteurV4.communication.OperisWSServer.SEPARATEUR_NIVEAU_3', String.fromCharCode(242))\r\n\r\n /**\r\n * Séparateur de niveau 2\r\n * @type {String}\r\n * @value ñ\r\n */\r\n .constant('fr.operis.moteurV4.communication.OperisWSServer.SEPARATEUR_NIVEAU_2', String.fromCharCode(241))\r\n\r\n /**\r\n * Séparateur de niveau 1\r\n * @type {String}\r\n * @value ð\r\n */\r\n .constant('fr.operis.moteurV4.communication.OperisWSServer.SEPARATEUR_NIVEAU_1', String.fromCharCode(240))\r\n\r\n /**\r\n * Séparateur de niveau 1 (plus bas) (saisie client)\r\n * @type {String}\r\n * @value {OPERISFRAMEWORK_ETH}\r\n */\r\n .constant('fr.operis.moteurV4.communication.OperisWSServer.SEPARATEUR_NIVEAU_1_SAISIE_CLIENT',\"{OPERISFRAMEWORK_ETH}\")\r\n\r\n /**\r\n * Séparateur de niveau 2 (saisie client)\r\n * @type {String}\r\n * @value {OPERISFRAMEWORK_N_TILDE}\r\n */\r\n .constant('fr.operis.moteurV4.communication.OperisWSServer.SEPARATEUR_NIVEAU_2_SAISIE_CLIENT',\"{OPERISFRAMEWORK_N_TILDE}\")\r\n\r\n /**\r\n * Séparateur de niveau 3 (plus haut) (saisie client)\r\n * @type {String}\r\n * @value {OPERISFRAMEWORK_O_GRAVE}\r\n */\r\n .constant('fr.operis.moteurV4.communication.OperisWSServer.SEPARATEUR_NIVEAU_3_SAISIE_CLIENT',\"{OPERISFRAMEWORK_O_GRAVE}\")\r\n\r\n\r\n\r\n /**\r\n * Nom de l'écran BD pour gérer un fichier.\r\n * @type {String}\r\n * @value OperisFrameworkFichier\r\n */\r\n .constant ('fr.operis.moteurV4.communication.OperisWSServer.ID_VUE_FICHIER','OperisFrameworkFichier')\r\n\r\n\r\n /**\r\n * Nom de l'écran BD pour les paramètres du module.\r\n * @type {String}\r\n * @value OperisFrameworkParametres\r\n */\r\n .constant ('fr.operis.moteurV4.communication.OperisWSServer.ID_VUE_PARAMETRES','OperisFrameworkParametres')\r\n\r\n\r\n /**\r\n * Grille des fichiers.\r\n * @type {String}\r\n * @value GES_FICHIER\r\n */\r\n .constant ('fr.operis.moteurV4.communication.OperisWSServer.TABLE_GES_FICHIER','GES_FICHIER')\r\n\r\n\r\n /**\r\n * Colonne de l'identifiant de fichier.\r\n * @type {String}\r\n * @value ID_FICHIER\r\n */\r\n .constant ('fr.operis.moteurV4.communication.OperisWSServer.CHAMP_ID_FICHIER','ID_FICHIER')\r\n\r\n /**\r\n * Colonne du nom de fichier.\r\n * @type {String}\r\n * @value FICHIERNOM\r\n */\r\n .constant ('fr.operis.moteurV4.communication.OperisWSServer.CHAMP_NOM_FICHIER','FICHIERNOM')\r\n\r\n /**\r\n * Colonne du type de fichier.\r\n * @type {String}\r\n * @value FICHIERTYPE\r\n */\r\n .constant ('fr.operis.moteurV4.communication.OperisWSServer.CHAMP_FORMAT_FICHIER','FICHIERTYPE')\r\n\r\n /**\r\n * Colonne du fichier.\r\n * @type {String}\r\n * @value FICHIERVALEUR\r\n */\r\n .constant ('fr.operis.moteurV4.communication.OperisWSServer.CHAMP_DONNEES_FICHIER','FICHIERVALEUR')\r\n\r\n /**\r\n * Colonne de clé des paramètres pour remonter la grille.\r\n * @type {String}\r\n * @value GRILLE\r\n */\r\n .constant ('fr.operis.moteurV4.communication.OperisWSServer.CHAMP_PARAMETRE_GRILLE','GRILLE')\r\n\r\n /**\r\n * Client pour le serveur du framework.\r\n *\r\n * @author Alcer\r\n */\r\n .provider('fr.operis.moteurV4.communication.OperisWSServer', ['$injector', function ($injector) {\r\n var _url = 'services/ServerV4',\r\n _timeoutHttp = 30000,\r\n _mobile = false;\r\n\r\n /**\r\n * Défini l'URL du service.\r\n * @param {string} aURL L'URL du service.\r\n */\r\n this.setURL = function (aURL) {\r\n _url = aURL;\r\n };\r\n \r\n this.setMobile = function(aMobile) {\r\n _mobile = aMobile;\r\n }\r\n\r\n\r\n /**\r\n * Défini le timeout pour les requêtes HTTP du module.\r\n * @param {number} aTimeoutHttp Le timeout pour les requêtes HTTP\r\n */\r\n this.setTimeoutHttp = function (aTimeoutHttp) {\r\n if (angular.isNumber(aTimeoutHttp)) _timeoutHttp = aTimeoutHttp;\r\n };\r\n\r\n /**\r\n * Enregistre le client OperisWSServer pour le module spécifié.\r\n * @param {aNomModule} aNomModule Le nom du module\r\n * @param {aLibelleModule} aLibelleModule Le libellé du module\r\n */\r\n this.registerModule = function (aNomModule, aLibelleModule) {\r\n _operisWSServersToBeInstantiated[aNomModule] = {\r\n libelleModule:aLibelleModule\r\n };\r\n };\r\n\r\n /**\r\n * Retourne le service OperisWSServer pour le module.\r\n * @param {injector} $injector\r\n * @returns {fr.operis.moteurV4.communication.OperisWSServer}\r\n */\r\n this.$get = ['$injector', '$q', function ($injector, $q) {\r\n for (var nomModule in _operisWSServersToBeInstantiated) {\r\n _operisWSServers[nomModule] = _operisWSServers[nomModule] || $injector.instantiate([\r\n '$window', '$q', '$http', '$timeout', '$log', '$modal', '$location'\r\n , 'fr.operis.moteurV4.utils.Cookie'\r\n , 'fr.operis.moteurV4.utils.Config'\r\n , 'fr.operis.moteurV4.utils.Config.cookie.LOGOUT_STATE'\r\n , 'fr.operis.moteurV4.utils.Encryption'\r\n , 'fr.operis.moteurV4.utils.Conversion'\r\n , 'fr.operis.moteurV4.utils.MD5'\r\n , 'fr.operis.moteurV4.utils.XML'\r\n , 'fr.operis.moteurV4.composants.OpMireAttente'\r\n , 'fr.operis.moteurV4.composants.OpPopupAlerte'\r\n , 'fr.operis.moteurV4.utils.RequeteMultiAppel'\r\n , 'fr.operis.moteurV4.communication.OperisWSServer.SEPARATEUR_NIVEAU_3'\r\n , 'fr.operis.moteurV4.communication.OperisWSServer.SEPARATEUR_NIVEAU_2'\r\n , 'fr.operis.moteurV4.communication.OperisWSServer.SEPARATEUR_NIVEAU_1'\r\n , 'fr.operis.moteurV4.communication.OperisWSServer.SEPARATEUR_NIVEAU_1_SAISIE_CLIENT'\r\n , 'fr.operis.moteurV4.communication.OperisWSServer.SEPARATEUR_NIVEAU_2_SAISIE_CLIENT'\r\n , 'fr.operis.moteurV4.communication.OperisWSServer.SEPARATEUR_NIVEAU_3_SAISIE_CLIENT'\r\n ,'fr.operis.moteurV4.communication.OperisWSServer.ID_VUE_FICHIER'\r\n ,'fr.operis.moteurV4.communication.OperisWSServer.ID_VUE_PARAMETRES'\r\n ,'fr.operis.moteurV4.communication.OperisWSServer.TABLE_GES_FICHIER'\r\n ,'fr.operis.moteurV4.communication.OperisWSServer.CHAMP_ID_FICHIER'\r\n ,'fr.operis.moteurV4.communication.OperisWSServer.CHAMP_PARAMETRE_GRILLE'\r\n , 'fr.operis.moteurV4.modele.Modele'\r\n , 'fr.operis.moteurV4.modele.Modele.SCOPE_DESCRIPTIONS'\r\n , 'fr.operis.moteurV4.modele.Modele.SCOPE_CHAMPS'\r\n , 'fr.operis.moteurV4.modele.Modele.SCOPE_GRILLES'\r\n , 'fr.operis.moteurV4.modele.Modele.SCOPE_LISTES'\r\n , 'fr.operis.moteurV4.utils.Habilitation'\r\n , 'fr.operis.moteurV4.utils.Erreur'\r\n , 'fr.operis.moteurV4.utils.Erreur.RETOUR_VIDE'\r\n , 'fr.operis.moteurV4.utils.Erreur.RETOUR_ILLISIBLE'\r\n , 'fr.operis.moteurV4.utils.Erreur.RETOUR_INVALIDE'\r\n , 'fr.operis.moteurV4.utils.Erreur.JETON_INCOHERENT'\r\n , 'fr.operis.moteurV4.utils.Erreur.FONCTION_INCOHERENTE'\r\n , 'fr.operis.moteurV4.utils.Erreur.ERREUR_SERVEUR'\r\n , 'fr.operis.moteurV4.utils.Erreur.ERREUR_INTERNE_SERVEUR'\r\n , 'fr.operis.moteurV4.utils.Erreur.SERVICE_SUPPRIME'\r\n , 'fr.operis.moteurV4.utils.Erreur.TRANSACTION_AVORTEE'\r\n , 'fr.operis.moteurV4.utils.Erreur.REQUETE_ANNULEE'\r\n , 'fr.operis.moteurV4.utils.Erreur.REQUETE_TIMEOUT'\r\n , 'fr.operis.moteurV4.utils.Erreur.REQUETE_INVALIDE'\r\n , OperisWSServer\r\n ]);\r\n _operisWSServers[nomModule].setNomModule(nomModule);\r\n _operisWSServers[nomModule].setLibelleModule(_operisWSServersToBeInstantiated[nomModule].libelleModule);\r\n }\r\n\r\n /**\r\n * Enregistre le client OperisWSServer pour le module spécifié.\r\n * @param {aNomModule} aNomModule Le nom du module\r\n * @param {aLibelleModule} aLibelleModule Le libellé du module\r\n */\r\n var registerModule = function (aNomModule, aLibelleModule) {\r\n if ( angular.isNullOrUndefined (_operisWSServersToBeInstantiated[aNomModule])){\r\n _operisWSServersToBeInstantiated[aNomModule] = {\r\n libelleModule:aLibelleModule\r\n };\r\n\r\n _operisWSServers[aNomModule] = _operisWSServers[aNomModule] || $injector.instantiate([\r\n '$window', '$q', '$http', '$timeout', '$log', '$modal', '$location'\r\n , 'fr.operis.moteurV4.utils.Cookie'\r\n , 'fr.operis.moteurV4.utils.Config'\r\n , 'fr.operis.moteurV4.utils.Config.cookie.LOGOUT_STATE'\r\n , 'fr.operis.moteurV4.utils.Encryption'\r\n , 'fr.operis.moteurV4.utils.Conversion'\r\n , 'fr.operis.moteurV4.utils.MD5'\r\n , 'fr.operis.moteurV4.utils.XML'\r\n , 'fr.operis.moteurV4.composants.OpMireAttente'\r\n , 'fr.operis.moteurV4.composants.OpPopupAlerte'\r\n , 'fr.operis.moteurV4.utils.RequeteMultiAppel'\r\n , 'fr.operis.moteurV4.communication.OperisWSServer.SEPARATEUR_NIVEAU_3'\r\n , 'fr.operis.moteurV4.communication.OperisWSServer.SEPARATEUR_NIVEAU_2'\r\n , 'fr.operis.moteurV4.communication.OperisWSServer.SEPARATEUR_NIVEAU_1'\r\n , 'fr.operis.moteurV4.communication.OperisWSServer.SEPARATEUR_NIVEAU_1_SAISIE_CLIENT'\r\n , 'fr.operis.moteurV4.communication.OperisWSServer.SEPARATEUR_NIVEAU_2_SAISIE_CLIENT'\r\n , 'fr.operis.moteurV4.communication.OperisWSServer.SEPARATEUR_NIVEAU_3_SAISIE_CLIENT'\r\n ,'fr.operis.moteurV4.communication.OperisWSServer.ID_VUE_FICHIER'\r\n ,'fr.operis.moteurV4.communication.OperisWSServer.ID_VUE_PARAMETRES'\r\n ,'fr.operis.moteurV4.communication.OperisWSServer.TABLE_GES_FICHIER'\r\n ,'fr.operis.moteurV4.communication.OperisWSServer.CHAMP_ID_FICHIER'\r\n ,'fr.operis.moteurV4.communication.OperisWSServer.CHAMP_PARAMETRE_GRILLE'\r\n , 'fr.operis.moteurV4.modele.Modele'\r\n , 'fr.operis.moteurV4.modele.Modele.SCOPE_DESCRIPTIONS'\r\n , 'fr.operis.moteurV4.modele.Modele.SCOPE_CHAMPS'\r\n , 'fr.operis.moteurV4.modele.Modele.SCOPE_GRILLES'\r\n , 'fr.operis.moteurV4.modele.Modele.SCOPE_LISTES'\r\n , 'fr.operis.moteurV4.utils.Habilitation'\r\n , 'fr.operis.moteurV4.utils.Erreur'\r\n , 'fr.operis.moteurV4.utils.Erreur.RETOUR_VIDE'\r\n , 'fr.operis.moteurV4.utils.Erreur.RETOUR_ILLISIBLE'\r\n , 'fr.operis.moteurV4.utils.Erreur.RETOUR_INVALIDE'\r\n , 'fr.operis.moteurV4.utils.Erreur.JETON_INCOHERENT'\r\n , 'fr.operis.moteurV4.utils.Erreur.FONCTION_INCOHERENTE'\r\n , 'fr.operis.moteurV4.utils.Erreur.ERREUR_SERVEUR'\r\n , 'fr.operis.moteurV4.utils.Erreur.ERREUR_INTERNE_SERVEUR'\r\n , 'fr.operis.moteurV4.utils.Erreur.SERVICE_SUPPRIME'\r\n , 'fr.operis.moteurV4.utils.Erreur.TRANSACTION_AVORTEE'\r\n , 'fr.operis.moteurV4.utils.Erreur.REQUETE_ANNULEE'\r\n , 'fr.operis.moteurV4.utils.Erreur.REQUETE_TIMEOUT'\r\n , 'fr.operis.moteurV4.utils.Erreur.REQUETE_INVALIDE'\r\n , OperisWSServer\r\n ]);\r\n\r\n _operisWSServers[aNomModule].setNomModule(aNomModule);\r\n _operisWSServers[aNomModule].setLibelleModule(_operisWSServersToBeInstantiated[aNomModule].libelleModule);\r\n }\r\n\r\n\r\n };\r\n\r\n /**\r\n * Retourne l'identifiant du module à partir du client du module spécifié.\r\n * @param {aNomModule} Le nom du module\r\n * @returns {string} L'identifiant du module.\r\n */\r\n var getIdModule = function (aNomModule) {\r\n return _operisWSServers[aNomModule].getIdModule();\r\n };\r\n\r\n /**\r\n * Retourne l'identifiant de l'utilisateur à partir du client du module spécifié.\r\n * @param {aNomModule} Le nom du module\r\n * @returns {string} L'identifiant de l'utilisateur.\r\n */\r\n var getIdUtilisateur = function (aNomModule) {\r\n return _operisWSServers[aNomModule].getIdUtilisateur;\r\n };\r\n\r\n /**\r\n * Retourne le login de l'utilisateur à partir du client du module spécifié.\r\n * @param {aNomModule} Le nom du module\r\n * @returns {string} Le login de l'utilisateur.\r\n */\r\n var getUtilisateur = function (aNomModule) {\r\n return _operisWSServers[aNomModule].getUtilisateur();\r\n };\r\n\r\n /**\r\n * Retourne l'identifiant de session à partir du client du module spécifié.\r\n * @param {aNomModule} Le nom du module\r\n * @returns {string} L'identifiant de session.\r\n */\r\n var getIdSession = function (aNomModule) {\r\n return _operisWSServers[aNomModule].getIdSession();\r\n };\r\n\r\n /**\r\n * Retourne les informations de l'utilisateur. Le champs \"original\" est vide si il ne s'agit pas d'une connexion via portail. Null si aucun utilisateur de connecté. \r\n * @param {aNomModule} Le nom du module\r\n * @returns {string} L'identifiant de session.\r\n */\r\n var getUtilisateurInformation = function (aNomModule) {\r\n return _operisWSServers[aNomModule].getUtilisateurInformation();\r\n };\r\n \r\n /**\r\n * Modifie les informations de l'utilisateur. Le champs \"original\" doit être NULL si il ne s'agit pas d'une connection portail.\r\n * @param {aNomModule} Le nom du module\r\n */\r\n var setUtilisateurInformation = function (aNomModule, utilisateurInformation) {\r\n return _operisWSServers[aNomModule].setUtilisateurInformation(utilisateurInformation);\r\n };\r\n\r\n /**\r\n * Retourne l'URL à partir du client du module spécifié.\r\n * @param {aNomModule} Le nom du module\r\n * @returns {string} L'URL.\r\n */\r\n var getURL = function (aNomModule) {\r\n return _operisWSServers[aNomModule].getURL();\r\n };\r\n\r\n /**\r\n * Retourne la version du serveur Operis à partir du client du module spécifié.\r\n * @param {aNomModule} Le nom du module\r\n * @param {fr.operis.moteurV4.communication.Transaction} aTransaction Transaction pour l'appel (vide ou nul si pas de transaction)\r\n * @returns {ng.IPromise}\r\n */\r\n var version = function (aNomModule, aTransaction) {\r\n return _operisWSServers[aNomModule].version(aTransaction);\r\n };\r\n\r\n /**\r\n * Récupère la liste des portails disponibles.\r\n * @returns {ng.IPromise}\r\n */\r\n var portailsComplete = function () {\r\n\t\t\t\t\t// On exécute cette requête sur le premier module trouvé uniquement\r\n for (var nomModule in _operisWSServers) {\r\n return _operisWSServers[nomModule].portails();\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\tbreak;\r\n }\r\n };\r\n\r\n /**\r\n * Récupère la description du portail.\r\n * @param {String} portail Le nom du portail selectionné.\r\n * @param {String} callbackURL L'URL de callback qui sera utilisée par le portail.\r\n * @param {String} callbackParams Les paramètres de callback qui seront placés dans le state.\r\n * @returns {ng.IPromise}\r\n */\r\n var descriptionPortailComplete = function (portail, callbackURL, callbackParams) {\r\n\t\t\t\t\t// On exécute cette requête sur le premier module trouvé uniquement\r\n for (var nomModule in _operisWSServers) {\r\n return _operisWSServers[nomModule].descriptionPortail(portail, callbackURL, callbackParams);\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\tbreak;\r\n }\r\n };\r\n\t\t\t\t\r\n /**\r\n * Validation de la connexion via portail.\r\n * @param {String} portail Le nom du portail selectionné.\r\n * @param {String} callbackURL L'URL de callback qui avait été utilisée à la première étape par le portail.\r\n * @param {String} callbackParams Les paramètres de callback qui seront placés dans le state.\r\n * @param {String} data Les données renvoyées par le portail permettant la validation de la connexion.\r\n * @param {Boolean} reconnexion Force la reconnexion. Le serveur tentera une déconnexion avant de ce connecter.\r\n * @param {Boolean} rapprochement La validation de connexion sert à rapprocher le compte Framework du compte Portail.\r\n * @returns {ng.IPromise}\r\n */\r\n var validateConnexionPortailComplete = function (portail, callbackURL, callbackParams, data, reconnexion, rapprochement, nonce) {\r\n\t\t\t\t\tvar deferred = $q.defer(),\r\n resultatsAttendus = 0,\r\n erreurs = [];\r\n for (var nomModule in _operisWSServers) {\r\n ++resultatsAttendus;\r\n _operisWSServers[nomModule].validateConnexionPortail(\r\n portail, callbackURL, callbackParams, data, reconnexion, rapprochement, nonce)\r\n .catch(function (erreur) {\r\n erreurs.push(erreur);\r\n })\r\n .finally(function () {\r\n if (--resultatsAttendus === 0) {\r\n if (erreurs.length === 0) deferred.resolve();\r\n else deferred.reject(erreurs);\r\n }\r\n });\r\n }\r\n return deferred.promise;\r\n };\r\n\r\n /**\r\n * Réalise la connexion aux serveurs Operis pour l'utilisateur concerné.\r\n * @param {String} aUtilisateur Le nom de l'utilisateur pour la connexion.\r\n * @param {String} aMotdepasse Le mot de passe de l'utilisateur pour la connexion.\r\n * @returns {ng.IPromise}\r\n */\r\n var connexionComplete = function (aUtilisateur, aMotdepasse) {\r\n var deferred = $q.defer(),\r\n resultatsAttendus = 0,\r\n erreurs = [];\r\n for (var nomModule in _operisWSServers) {\r\n ++resultatsAttendus;\r\n _operisWSServers[nomModule].connexion(aUtilisateur, aMotdepasse)\r\n .catch(function (erreur) {\r\n erreurs.push(erreur);\r\n })\r\n .finally(function () {\r\n if (--resultatsAttendus === 0) {\r\n if (erreurs.length === 0) deferred.resolve();\r\n else deferred.reject(erreurs);\r\n }\r\n });\r\n }\r\n return deferred.promise;\r\n };\r\n\r\n /**\r\n * Réalise la déconnexion aux serveurs Operis pour l'utilisateur concerné.\r\n * @param {String} aUtilisateur Le nom de l'utilisateur.\r\n * @param {String} aMotdepasse Le mot de passe de l'utilisateur.\r\n * @returns {ng.IPromise}\r\n */\r\n var deconnexionComplete = function (aUtilisateur, aMotdepasse) {\r\n var deferred = $q.defer(),\r\n resultatsAttendus = 0,\r\n erreurs = [];\r\n for (var nomModule in _operisWSServers) {\r\n ++resultatsAttendus;\r\n _operisWSServers[nomModule].deconnexion(aUtilisateur, aMotdepasse)\r\n .catch(function (erreur) {\r\n erreurs.push(erreur);\r\n })\r\n .finally(function () {\r\n if (--resultatsAttendus === 0) {\r\n if (erreurs.length === 0) deferred.resolve();\r\n else deferred.reject(erreurs);\r\n }\r\n });\r\n }\r\n return deferred.promise;\r\n };\r\n\r\n /**\r\n * Récupère la description des portails disponibles.\r\n * @param {String} aNomModule Le nom du module.\r\n * @param {String} callbackURL L'URL de callback qui sera utilisée par le portail.\r\n * @param {String} callbackParams Les paramètres de callback qui seront placés dans le state.\r\n * @returns {ng.IPromise}\r\n */\r\n var descriptionPortail = function(aNomModule, callbackURL, callbackParams){\r\n return _operisWSServers[aNomModule].descriptionPortail(callbackURL, callbackParams);\r\n };\r\n\r\n /**\r\n * Récupère la description des portails disponibles.\r\n * @param {String} aNomModule Le nom du module.\r\n * @param {String} portail Le nom du portail.\r\n * @param {String} callbackURL L'URL de callback qui avait été utilisée à la première étape par le portail.\r\n * @param {String} callbackParams Les paramètres de callback qui seront placés dans le state.\r\n * @param {String} data Les données renvoyées par le portail permettant la validation de la connexion.\r\n * @param {Boolean} reconnexion Force la reconnexion. Le serveur tentera une déconnexion avant de ce connecter.\r\n * @param {Boolean} rapprochement La validation de connexion sert à rapprocher le compte Framework du compte Portail.\r\n * @returns {ng.IPromise}\r\n */\r\n var validateConnexionPortail = function(aNomModule, portail, callbackURL, callbackParams, data, reconnexion, rapprochement, nonce){\r\n return _operisWSServers[aNomModule].validateConnexionPortail(\r\n portail, callbackURL, callbackParams, data, reconnexion, rapprochement, nonce);\r\n };\r\n\r\n /**\r\n * Réalise la connexion aux serveurs Operis pour l'utilisateur concerné.\r\n * @param {String} aModule Le nom du module.\r\n * @param {String} aUtilisateur Le nom de l'utilisateur.\r\n * @param {String} aMotdepasse Le mot de passe de l'utilisateur.\r\n * @returns {ng.IPromise}\r\n */\r\n var connexion = function(aNomModule, aUtilisateur, aMotdepasse){\r\n return _operisWSServers[aNomModule].connexion(aUtilisateur, aMotdepasse);\r\n };\r\n\r\n /**\r\n * Réalise le chargement d'un écran de données à partir du client du module spécifié.\r\n *\r\n * @param {aNomModule} Le nom du module\r\n * @param {Object} aScope Scope dans lequel les données sont à charger.\r\n * @param {String} aNomEcran Identifiant de l'écran base de données à charger\r\n * @param {Object} aIdentifiants Nom et valeur des colonnes permettant d'identifier un élément unique de la vue.\r\n * Si la valeur est omise, on prend la valeur utilisée lors d'un précédent appel à la fonction.\r\n * Pour omettre la valeur, il suffit de mettre undefined comme valeur.\r\n * Ex : chargement(scope, ecran);\r\n * Ex : chargement(scope, ecran, undefined, transaction);\r\n * @param {fr.operis.moteurV4.communication.Transaction} aTransaction Transaction pour l'appel (vide ou nul si pas de transaction)\r\n * @param {String} aDisplay Indique le type d'affichage pour la mire d'attente.\r\n * @returns {ng.IPromise}\r\n *\r\n */\r\n var chargement = function (aNomModule, aScope, aNomEcran, aIdentifiants, aTransaction, aDisplay) {\r\n return _operisWSServers[aNomModule].chargement(aScope, aNomEcran, aIdentifiants, aTransaction, aDisplay);\r\n };\r\n\r\n /**\r\n * Réalise la recherche sur un écran de données à partir du client du module spécifié.\r\n *\r\n * @param {aNomModule} Le nom du module\r\n * @param {Object} aScope Scope dans lequel les données sont à charger.\r\n * @param {String} aNomEcran Identifiant de l'écran base de données à charger\r\n * @param {type} aTablesValeurs Les tables associées à l'écran\r\n * @param {type} aTaillePage La taille de la page de données à remonter\r\n * @param {type} aNumeroPage Le numéro de la page de données à remonter\r\n * @param {Object} aCritere [Optionnal] Les critères de recherche\r\n * @returns {ng.IPromise}\r\n */\r\n var recherche = function (aNomModule, aScope, aNomEcran, aTablesValeurs, aTaillePage, aNumeroPage, aCritere) {\r\n return _operisWSServers[aNomModule].recherche(aScope, aNomEcran, aTablesValeurs, aTaillePage, aNumeroPage, aCritere);\r\n };\r\n\r\n /**\r\n * Réalise la sauvegarde sur un écran de données à partir du client du module spécifié.\r\n *\r\n * @param {aNomModule} Le nom du module\r\n * @param {Object} aScope Scope dans lequel les données sont à charger.\r\n * @param {String} aNomEcran Identifiant de l'écran base de données à charger\r\n * @param {type} aIdentifiants Les identifiants associés à l'écran\r\n * @param {type} aTablesValeurs Les tables associées à l'écran\r\n * @param {type} aTablesGrilles Les tables de grilles associées à l'écran\r\n * @param {String} aDisplay Indique le type d'affichage pour la mire d'attente.\r\n * @returns {ng.IPromise}\r\n */\r\n var sauvegarde = function (aNomModule, aScope, aNomEcran, aIdentifiants, aTablesValeurs, aTablesGrilles, aDisplay) {\r\n return _operisWSServers[aNomModule].sauvegarde(aScope, aNomEcran, aIdentifiants, aTablesValeurs, aTablesGrilles, aDisplay);\r\n };\r\n\r\n /**\r\n * Réalise la suppression sur un écran de données.\r\n *\r\n * @param {aNomModule} Le nom du module\r\n * @param {Object} aScope Scope dans lequel les données sont à charger.\r\n * @param {String} aNomEcran Identifiant de l'écran base de données à charger\r\n * @param {type} aIdentifiants Les identifiants associés à l'écran\r\n * @returns {ng.IPromise}\r\n */\r\n var suppression = function (aNomModule, aScope, aNomEcran, aIdentifiants) {\r\n return _operisWSServers[aNomModule].suppression(aScope, aNomEcran, aIdentifiants);\r\n };\r\n\r\n /**\r\n * Réalise la sauvegarde d'un fichier sur un module\r\n *\r\n * @param {aNomModule} Le nom du module\r\n * @param {Object} aScope Scope dans lequel les données sont à charger.\r\n * @param {Object} aFichier Fichier à sauvegarder\r\n * @returns {ng.IPromise}\r\n */\r\n var sauvegardeFichier = function (aNomModule, aScope, aFichier) {\r\n return _operisWSServers[aNomModule].sauvegardeFichier(aScope, aFichier);\r\n };\r\n\r\n /**\r\n * Appel d'une procédure stockée\r\n *\r\n * @param {aNomModule} Le nom du module\r\n * @param {Object} aScope Scope dans lequel les données sont à charger.\r\n * @param {String} aNomFonction Nom de fonction\r\n * @param {String} aParam1 Parametre1\r\n * @param {String} aParam2 Parametre2\r\n * @param {String} aParam3 Parametre3\r\n * @param {String} aParam4 Parametre4\r\n * @returns {ng.IPromise}\r\n */\r\n var procedureInterne = function(aNomModule, aScope, aNomFonction, aParam1, aParam2, aParam3, aParam4){\r\n return _operisWSServers[aNomModule].procedureInterne(aScope, aNomFonction, aParam1, aParam2, aParam3, aParam4 );\r\n };\r\n\r\n /**\r\n * Supprime le client OperisWSServer pour le module spécifié.\r\n * @param {aNomModule} aNomModule Le nom du module\r\n */\r\n var deregisterModule = function (aNomModule) {\r\n _operisWSServers[aNomModule].hasBeenDeleted();\r\n this.deconnexion();\r\n delete _operisWSServers[aNomModule];\r\n };\r\n\r\n /**\r\n * Initialise les paramètres pour un module spécifié.\r\n * @param {aNomModule} aNomModule Le nom du module\r\n */\r\n var chargementParametresModule = function (aNomModule) {\r\n var deferred = $q.defer();\r\n\r\n if (!angular.isNullOrUndefined(_operisWSServers[aNomModule])) {\r\n _operisWSServers[aNomModule].chargementParametres().then(function (resultat) {\r\n deferred.resolve();\r\n }).catch(function (erreur) {\r\n deferred.reject(erreur);\r\n });\r\n } else {\r\n deferred.reject();\r\n }\r\n\r\n return deferred.promise;\r\n };\r\n\r\n /**\r\n * Lit le parametre en fonction de la catégorie et du code\r\n * @param {aNomModule} aNomModule Le nom du module\r\n */\r\n var lireParametre = function(aNomModule, aCategorie, aCode){\r\n return _operisWSServers[aNomModule].lireParametre(aCategorie, aCode);\r\n };\r\n \r\n var isMobile = function() {\r\n return _mobile;\r\n };\r\n\r\n var getMultiAppel = function(aNomModule){\r\n return _operisWSServers[aNomModule].getMultiAppel();\r\n };\r\n\r\n var setMultiAppel = function(aNomModule, aScope, aMultiAppel){\r\n return _operisWSServers[aNomModule].setMultiAppel(aScope, aMultiAppel);\r\n };\r\n\t\t\t\t\r\n\t\t\t\tvar deconnexionPortail = function(aNomModule){\r\n\t\t\t\t\treturn _operisWSServers[aNomModule].deconnexionPortail();\r\n\t\t\t\t};\r\n\r\n return {\r\n getIdModule:getIdModule,\r\n getIdUtilisateur:getIdUtilisateur,\r\n getUtilisateur:getUtilisateur,\r\n getIdSession:getIdSession,\r\n getURL:getURL,\r\n version:version,\r\n portailsComplete: portailsComplete,\r\n descriptionPortailComplete: descriptionPortailComplete,\r\n validateConnexionPortailComplete: validateConnexionPortailComplete,\r\n connexionComplete: connexionComplete,\r\n deconnexionComplete: deconnexionComplete,\r\n connexion:connexion,\r\n\t\t\t\t\tdeconnexionPortail:deconnexionPortail,\r\n chargement: chargement,\r\n recherche: recherche,\r\n sauvegarde: sauvegarde,\r\n suppression: suppression,\r\n sauvegardeFichier: sauvegardeFichier,\r\n procedureInterne: procedureInterne,\r\n isMobile: isMobile,\r\n deregisterModule:deregisterModule,\r\n chargementParametresModule: chargementParametresModule,\r\n lireParametre:lireParametre,\r\n registerModule:registerModule,\r\n getMultiAppel:getMultiAppel,\r\n setMultiAppel:setMultiAppel,\r\n getUtilisateurInformation:getUtilisateurInformation,\r\n setUtilisateurInformation:setUtilisateurInformation\r\n }\r\n }\r\n ];\r\n\r\n /**\r\n * Constante déterminant l'action SOAP du serveur Operis.\r\n * @type {string}\r\n * @const\r\n * @private\r\n */\r\n var SOAP_ACTION = 'OperisWSFunction';\r\n\r\n /**\r\n * Message SOAP envoyé au serveur Operis.\r\n * @type {string}\r\n * @const\r\n * @private\r\n */\r\n var MESSAGE_TEMPLATE = '' +\r\n '' +\r\n '' +\r\n '' +\r\n '' +\r\n '' +\r\n '{{parametres}}' +\r\n '' +\r\n '' +\r\n '' +\r\n '';\r\n\r\n /**\r\n * Balise SOAP déterminant une valeur nulle remontée par le serveur Operis.\r\n * @type {String}\r\n * @const\r\n * @private\r\n */\r\n var ELEMENT_NUL = '_xsi:nil';\r\n\r\n function OperisWSServer($window, $q, $http, $timeout, $log, $modal, $location, cookie,\r\n $config, LOGOUT_STATE, encryption, conversion, md5, xml, opMireAttente, opPopupAlerte, requeteMultiAppel,\r\n SEPARATEUR_NIVEAU_3, SEPARATEUR_NIVEAU_2, SEPARATEUR_NIVEAU_1,\r\n SEPARATEUR_NIVEAU_1_SAISIE_CLIENT,SEPARATEUR_NIVEAU_2_SAISIE_CLIENT,SEPARATEUR_NIVEAU_3_SAISIE_CLIENT,\r\n ID_VUE_FICHIER,ID_VUE_PARAMETRES,TABLE_GES_FICHIER,CHAMP_ID_FICHIER,CHAMP_PARAMETRE_GRILLE,\r\n modele, SCOPE_DESCRIPTIONS, SCOPE_CHAMPS, SCOPE_GRILLES, SCOPE_LISTES,habilitation,\r\n erreur, RETOUR_VIDE, RETOUR_ILLISIBLE, RETOUR_INVALIDE, JETON_INCOHERENT,\r\n FONCTION_INCOHERENTE, ERREUR_SERVEUR, ERREUR_INTERNE_SERVEUR, SERVICE_SUPPRIME,\r\n TRANSACTION_AVORTEE, REQUETE_ANNULEE, REQUETE_TIMEOUT, REQUETE_INVALIDE) {\r\n\r\n // Variables internes à la classe\r\n var that = this,\r\n _module = 'Nom du module à configurer',\r\n _libelleModule = 'Libellé du module à configurer',\r\n _utilisateur = null,\r\n _idModule = null,\r\n _idUtilisateur = null,\r\n _idSession = null,\r\n _utilisateurInformation = null,\r\n _identifiants = null,\r\n _parametre = null,\r\n _cacheEcrans = {},\r\n _deleted = false,\r\n _transactions = {};\r\n\r\n /**\r\n * Encode l'objet des identifiants en une chaine pour le serveur Operis.\r\n * @param {type} aIdentifiants L'objet des identifiants\r\n * @returns {String} La chaine pour le serveur Operis\r\n * @private\r\n */\r\n function _encoderIdentifiants(aIdentifiants) {\r\n var ret = \"\";\r\n\r\n if (aIdentifiants !== null) {\r\n for (var attribut in aIdentifiants) {\r\n if (ret.length > 0)\r\n ret = ret + SEPARATEUR_NIVEAU_2;\r\n ret = ret + attribut + SEPARATEUR_NIVEAU_1 + aIdentifiants[attribut];\r\n }\r\n }\r\n return ret;\r\n }\r\n\r\n /**\r\n * Décode la chaine du serveur Operis en un l'objet d'identifiants.\r\n * @param {String} aIdentifiants La chaine pour le serveur Operis\r\n * @returns {Object} L'objet des identifiants\r\n * @private\r\n */\r\n function _decoderIdentifiants(aIdentifiants) {\r\n var ret = {};\r\n\r\n if (aIdentifiants !== null) {\r\n // On sépare les identifiants\r\n var identifiants = aIdentifiants.split(SEPARATEUR_NIVEAU_2);\r\n for (var indiceIdentifiant = 0; indiceIdentifiant < identifiants.length; ++indiceIdentifiant) {\r\n var id = identifiants[indiceIdentifiant].split(SEPARATEUR_NIVEAU_1);\r\n ret[id[0]] = id[1];\r\n }\r\n }\r\n return ret;\r\n }\r\n\r\n /**\r\n * Réalise un appel SOAP au serveur Operis.\r\n * @param {String} aNomFonction Le nom de la fonction de l'appel\r\n * @param {Array} aParametres Les paramètres de l'appel\r\n * @param {Integer} aNbRetours Nombre de retour pour l'appel\r\n * @param {fr.operis.moteurV4.communication.InformationsRequete} aInformations Informations sur l'appel\r\n * @param {fr.operis.moteurV4.communication.Transaction} aTransaction Transaction pour l'appel (vide ou nul si pas de transaction)\r\n * @param {String} aDisplay Indique le type d'affichage pour la mire d'attente.\r\n * @return {ng.IPromise} Une promesse :\r\n * resolve : Array of String\r\n * reject : Erreur\r\n * notify : N/A\r\n * @private\r\n */\r\n function _appel(aNomFonction, aParametres, aNbRetours, aInformations, aTransaction, aDisplay) {\r\n var deferred = $q.defer(),\r\n promise = deferred.promise,\r\n indice;\r\n\r\n if (that.getDeleted() == true) {\r\n deferred.reject(erreur.creer(SERVICE_SUPPRIME, this, _module));\r\n } else {\r\n // Mise en place des paramètres d'appel\r\n var jeton = $window.Math.round($window.Math.random() * 1000000).toString(),\r\n parametres = \"\";\r\n parametres += \"\" + jeton + \"\";\r\n parametres += \"\" + aNomFonction + \"\";\r\n for (indice = 0; indice < aParametres.length; ++indice) { \r\n parametres += \"\" + (aParametres[indice] === null ? \"\" : aParametres[indice]) + \"\";\r\n }\r\n\r\n // Mise en place de la transaction d'appel\r\n var transaction = {nom: aNomFonction};\r\n aTransaction = aTransaction || {};\r\n aTransaction.arretSurErreur = aTransaction.arretSurErreur || false;\r\n aTransaction.fin = aTransaction.fin || false;\r\n\r\n if ((aTransaction.nom || \"\") !== \"\") {\r\n // Construction de l'objet transaction s'il n'existe pas pour ce nom\r\n var transactions = that.getTransactions();\r\n transactions[aTransaction.nom] = transactions[aTransaction.nom] || {nom: aTransaction.nom};\r\n\r\n if (aTransaction.fin === true) {\r\n // Récupération de la transaction par recopie puis suppression de la transaction de la liste des transactions en cours\r\n transaction = angular.copy(transactions[aTransaction.nom]);\r\n delete transactions[aTransaction.nom];\r\n } else {\r\n transaction = transactions[aTransaction.nom];\r\n }\r\n \r\n that.setTransactions(transactions);\r\n // Définition du paramètre d'arrêt sur erreur pour la transation\r\n parametres += \"\" + conversion.versTexteDepuisBooleen(aTransaction.arretSurErreur) + \"\";\r\n } else {\r\n aTransaction.fin = true;\r\n }\r\n\r\n // Mise en place des paramètres de la transaction\r\n transaction.requetes = transaction.requetes || [];\r\n transaction.requetes.push({\r\n informations: aInformations,\r\n jeton: jeton,\r\n nomFonction: aNomFonction,\r\n parametres: parametres,\r\n arretTransactionSurErreur: aTransaction.arretSurErreur,\r\n nbRetours: aNbRetours,\r\n deferred: deferred,\r\n promise: promise\r\n });\r\n\r\n // Appel au serveur si la transaction est terminée\r\n if (aTransaction.fin === true) {\r\n // Création de la promesse d'annulation\r\n var annulation = $q.defer();\r\n\r\n // Création de la requête HTTP\r\n var requeteHttp = {\r\n url: that.getURL(),\r\n config: {\r\n headers: {\r\n 'Content-Type': 'text/xml;charset=UTF-8'\r\n , SOAPAction: SOAP_ACTION\r\n }\r\n , cache: false\r\n , withCredentials: false\r\n , timeout: angular.extend(annulation.promise, {timeout: _timeoutHttp})\r\n , responseType: 'text/xml'\r\n },\r\n data: '',\r\n reponse: {\r\n status: null,\r\n data: null\r\n }\r\n };\r\n\r\n // Création du timeout pour la requête HTTP\r\n var timeout = $timeout(function () {\r\n // On rejete toutes les promesses de la transaction\r\n for (indice = 0; indice < transaction.requetes.length; ++indice) {\r\n transaction.requetes[indice].deferred.reject(erreur.creer(REQUETE_TIMEOUT, that, transaction.requetes[indice].nomFonction, _timeoutHttp, requeteHttp));\r\n transaction.requetes[indice].deferred = {\r\n reject: angular.noop,\r\n resolve: angular.noop\r\n };\r\n }\r\n // On annule la requête\r\n annulation.resolve();\r\n }, _timeoutHttp);\r\n\r\n // Parcours des requêtes de la transaction\r\n parametres = \"\";\r\n for (indice = 0; indice < transaction.requetes.length; ++indice) {\r\n var requete = transaction.requetes[indice];\r\n // Création de la méthode pour annuler la requête\r\n requete.promise.timeout = _timeoutHttp;\r\n requete.promise.annuler = (function (requete) {\r\n return function () {\r\n // On rejete la promesse de la requête\r\n requete.deferred.reject(erreur.creer(REQUETE_ANNULEE, that, requete.nomFonction, requeteHttp));\r\n requete.deferred = {reject: angular.noop, resolve: angular.noop};\r\n // On annule la transaction si la transaction ne contient que cette requête\r\n if (transaction.requetes.length === 1)\r\n annulation.resolve();\r\n // On nettoie la variable requete\r\n requete = null;\r\n };\r\n })(requete);\r\n // Ajout des paramètres de la requête\r\n parametres += requete.parametres;\r\n // Ajout de la requête à la mire d'attente.\r\n opMireAttente.ajouterRequete(requete.promise, requete.informations, aDisplay);\r\n // Trace de la requête\r\n //$log.info('Transaction ' + transaction.nom + ' : ' + requete.informations.commentaire);\r\n }\r\n requeteHttp.data = MESSAGE_TEMPLATE.replace(/\\{\\{parametres\\}\\}/g, parametres);\r\n\r\n // Requête HTTP\r\n $http.post(requeteHttp.url, requeteHttp.data, requeteHttp.config)\r\n .success(function (data, status, headers, config) {\r\n requeteHttp.reponse.status = status;\r\n requeteHttp.reponse.data = data;\r\n\r\n if (angular.isNullOrUndefined(data)) {\r\n // On rejete toutes les promesses de la transaction\r\n for (var indice = 0; indice < transaction.requetes.length; ++indice) {\r\n transaction.requetes[indice].deferred.reject(erreur.creer(RETOUR_VIDE, that, transaction.requetes[indice].nomFonction, requeteHttp));\r\n }\r\n } else {\r\n var retours;\r\n try {\r\n retours = xml.toJson(data).Envelope.Body.OperisWSFunctionResponse.OperisWSFunctionReturn || [];\r\n } catch (error) {\r\n // On rejete toutes les promesses de la transaction\r\n for (indice = 0; indice < transaction.requetes.length; ++indice) {\r\n transaction.requetes[indice].deferred.reject(erreur.creer(RETOUR_ILLISIBLE, that, transaction.requetes[indice].nomFonction, error, requeteHttp));\r\n }\r\n return;\r\n }\r\n if (retours.length < 4 || aNbRetours > retours.length) {\r\n // On rejete toutes les promesses de la transaction\r\n for (indice = 0; indice < transaction.requetes.length; ++indice) {\r\n transaction.requetes[indice].deferred.reject(erreur.creer(RETOUR_INVALIDE, that, transaction.requetes[indice].nomFonction, requeteHttp));\r\n }\r\n } else {\r\n // On analyse le retour de chacune des requetes de la transaction\r\n var indiceRetour = 0, arretTransaction = false;\r\n for (var indiceFonction = 0; indiceFonction < transaction.requetes.length; ++indiceFonction) {\r\n var fonction = transaction.requetes[indiceFonction];\r\n if (arretTransaction) {\r\n // On rejete la promesse\r\n fonction.deferred.reject(erreur.creer(TRANSACTION_AVORTEE, that, aTransaction.nom, requeteHttp));\r\n } else if ((retours[indiceRetour] || \"\").toString() !== fonction.jeton) {\r\n // On rejete la promesse\r\n fonction.deferred.reject(erreur.creer(JETON_INCOHERENT, that, fonction.nomFonction, fonction.jeton, requeteHttp));\r\n } else if ((retours[indiceRetour + 1] || \"\").toString() !== fonction.nomFonction) {\r\n // On rejete la promesse\r\n fonction.deferred.reject(erreur.creer(FONCTION_INCOHERENTE, that, fonction.nomFonction, requeteHttp));\r\n } else if (retours[indiceRetour + fonction.nbRetours - 2][ELEMENT_NUL] !== \"true\") {\r\n arretTransaction = fonction.arretTransactionSurErreur;\r\n // On rejete la promesse\r\n fonction.deferred.reject(erreur.creer(ERREUR_SERVEUR, that, aNomFonction, retours[indiceRetour + fonction.nbRetours - 2].toString(), retours[indiceRetour + fonction.nbRetours - 1].toString(), requeteHttp));\r\n } else {\r\n var valeurs = [];\r\n for (var indice = 0; indice < fonction.nbRetours; ++indice) {\r\n var element = retours[indiceRetour + indice];\r\n if (element[ELEMENT_NUL] === \"true\") valeurs.push(null);\r\n else valeurs.push(element.hasOwnProperty('toString') ? element.toString() : \"\");\r\n\r\n }\r\n fonction.deferred.resolve(valeurs);\r\n }\r\n indiceRetour += fonction.nbRetours;\r\n }\r\n }\r\n }\r\n })\r\n .error(function (data, status, headers, config) {\r\n requeteHttp.reponse.status = status;\r\n requeteHttp.reponse.data = data;\r\n\r\n // On rejete toutes les promesses de la transaction\r\n for (var indice = 0; indice < transaction.requetes.length; ++indice) {\r\n transaction.requetes[indice].deferred.reject(erreur.creer(status === 0 ? REQUETE_INVALIDE : ERREUR_INTERNE_SERVEUR,\r\n that, transaction.requetes[indice].nomFonction, status, data, requeteHttp));\r\n }\r\n })\r\n .finally(function () {\r\n // On trace en debug la requête\r\n //$log.debug(angular.toJson(requeteHttp));\r\n // Suppression du timeout\r\n $timeout.cancel(timeout);\r\n // On nettoie tout pour faciliter le travail du ramasse miette\r\n for (var indice = 0; indice < transaction.requetes.length; ++indice) {\r\n transaction.requetes[indice].deferred = null;\r\n transaction.requetes[indice] = null;\r\n }\r\n transaction.requetes = null;\r\n transaction = null;\r\n deferred = null;\r\n requeteHttp = null;\r\n });\r\n }\r\n }\r\n\r\n // On retourne la promesse\r\n return deferred.promise;\r\n }\r\n\r\n /**\r\n * Réalise un appel SOAP connecté au serveur Operis.\r\n * @param {Object} aScope\r\n * @param {String} aNomFonction Le nom de la fonction de l'appel\r\n * @param {Array} aParametres Les paramètres de l'appel\r\n * @param {Integer} aNbRetours Nombre de retour pour l'appel\r\n * @param {fr.operis.moteurV4.communication.InformationsRequete} aInformations Informations sur l'appel\r\n * @param {fr.operis.moteurV4.communication.Transaction} aTransaction Transaction pour l'appel (vide ou nul si pas de transaction)\r\n * @param {String} aDisplay Indique le type d'affichage pour la mire d'attente.\r\n * @returns {ng.IPromise}\r\n * @private\r\n */\r\n function _appelConnecte(aScope, aNomFonction, aParametres, aNbRetours, aInformations, aTransaction, aDisplay) {\r\n var deferred = $q.defer();\r\n that.connexion()\r\n .then(function () {\r\n aParametres[0] = that.getIdSession();\r\n return _appel(aNomFonction, aParametres, aNbRetours, aInformations, aTransaction, aDisplay);\r\n })\r\n .then(function (resultat) {\r\n deferred.resolve(resultat);\r\n })\r\n .catch(function (erreur) {\r\n // La session est invalide, on relance l'appel en nettoyant la session\r\n if (erreur.codeServeur === \"01009\") {\r\n that.setIdSession(null);\r\n _appelConnecte(aScope, aNomFonction, aParametres, aNbRetours, aInformations, aTransaction, aDisplay)\r\n .then(function (resultat) {\r\n deferred.resolve(resultat);\r\n })\r\n .catch(function (erreur) {\r\n deferred.reject(erreur);\r\n });\r\n } else {\r\n deferred.reject(erreur);\r\n }\r\n });\r\n return deferred.promise;\r\n }\r\n\r\n this.requetes = [];\r\n\r\n /**\r\n * Retourne la valeur du paramètre. Cherche dans les cookie si non initialisé.\r\n * @param aVar La variable à récupérer\r\n * @param aKey La clé dans les cookie de la variable à récupérer\r\n * @returns {object} La valeur du paramètre.\r\n */\r\n this.getCookieParam = function(aVar, aKey) {\r\n if(aVar == null) {\r\n\t\t\t\t\t\taVar = cookie.get(that.getNomModule() + \"_\" + aKey);\r\n if(aVar == undefined)\r\n aVar = null;\r\n }\r\n \r\n return aVar;\r\n }\r\n \r\n /**\r\n * Modifie la valeur du paramètre.\r\n * @param aKey La clé dans les cookie de la variable à modifier\r\n * @param aValue La valeur à renseigner.\r\n * @returns {object} La valeur du paramètre.\r\n */\r\n this.setCookieParam = function(aKey, aValue) {\r\n\t\t\t\t\tcookie.set(that.getNomModule() + \"_\" + aKey, !angular.isNullOrUndefined(aValue) ? aValue : \"\");\r\n \r\n return aValue;\r\n }\r\n \r\n /**\r\n * Supprime la valeur du paramètre.\r\n * @param aKey La clé dans les cookie de la variable à modifier\r\n */\r\n this.removeCookieParam = function(aKey) {\r\n\t\t\t\t\tcookie.remove(that.getNomModule() + \"_\" + aKey);\r\n }\r\n\r\n /**\r\n * Retourne la valeur du paramètre. Cherche dans Web Storage si non initialisé.\r\n * @param aVar La variable à récupérer\r\n * @param aKey La clé dans les cookie de la variable à récupérer\r\n * @param aTypeStorage Type de Web Storage à utiliser\r\n * @returns {object} La valeur du paramètre.\r\n */\r\n this.getStorageParam = function(aVar, aKey, aTypeStorage) {\r\n if(aVar !== null) {\r\n if (!angular.isNullOrUndefined(aTypeStorage) && (aTypeStorage === \"session\")) {\r\n aVar = sessionStorage.getItem(that.getNomModule() + \"_\" + aKey);\r\n } else {\r\n aVar = localStorage.getItem(that.getNomModule() + \"_\" + aKey);\r\n }\r\n\r\n if (!angular.isNullOrUndefined(aVar) && typeof aVar === 'string') {\r\n try {\r\n aVar = $window.atob(aVar);\r\n aVar = JSON.parse(aVar);\r\n } catch (e) {}\r\n }\r\n\r\n if (aVar == undefined)\r\n aVar = null;\r\n }\r\n\r\n return aVar;\r\n }\r\n\r\n /**\r\n * Modifie la valeur du paramètre.\r\n * @param aKey La clé dans Web Storage de la variable à modifier\r\n * @param aValue La valeur à renseigner.\r\n * @param aTypeStorage Type de Web Storage à utiliser\r\n * @returns {object} La valeur du paramètre.\r\n */\r\n this.setStorageParam = function(aKey, aValue, aTypeStorage) {\r\n var encodedVal = aValue;\r\n if(!angular.isNullOrUndefined(aValue)) {\r\n try {\r\n encodedVal = JSON.stringify(encodedVal);\r\n encodedVal = $window.btoa(encodedVal);\r\n } catch (e) {}\r\n }\r\n\r\n if (!angular.isNullOrUndefined(aTypeStorage) && (aTypeStorage === \"session\")) {\r\n sessionStorage.setItem(that.getNomModule() + \"_\" + aKey, !angular.isNullOrUndefined(encodedVal) ? encodedVal : \"\");\r\n } else {\r\n localStorage.setItem(that.getNomModule() + \"_\" + aKey, !angular.isNullOrUndefined(encodedVal) ? encodedVal : \"\");\r\n }\r\n\r\n return encodedVal;\r\n }\r\n\r\n /**\r\n * Supprime la valeur du paramètre.\r\n * @param aKey La clé dans Web Storage de la variable à supprimer\r\n * @param aTypeStorage Type de Web Storage à utiliser\r\n */\r\n this.removeStorageParam = function(aKey, aTypeStorage) {\r\n if (!angular.isNullOrUndefined(aTypeStorage) && (aTypeStorage === \"session\")) {\r\n sessionStorage.removeItem(that.getNomModule() + \"_\" + aKey);\r\n } else {\r\n localStorage.removeItem(that.getNomModule() + \"_\" + aKey);\r\n }\r\n }\r\n \r\n /**\r\n * Défini le nom du module.\r\n * @param {string} aNomModule Le nom du module\r\n */\r\n this.setNomModule = function (aNomModule) {\r\n _module = aNomModule;\r\n };\r\n\r\n /**\r\n * Retourne le nom du module actuel du service.\r\n * @returns {string} Le nom du module actuel du service.\r\n */\r\n this.getNomModule = function () {\r\n return _module;\r\n };\r\n\r\n /**\r\n * Défini le libellé du module.\r\n * @param {string} aLibelleModule Le libellé du module\r\n */\r\n this.setLibelleModule = function (aLibelleModule) {\r\n _libelleModule = aLibelleModule;\r\n };\r\n\r\n /**\r\n * Retourne le libellé du module actuel du service.\r\n * @returns {string} Le libellé du module actuel du service.\r\n */\r\n this.getLibelleModule = function () {\r\n return _libelleModule;\r\n };\r\n\r\n /**\r\n * Retourne l'identifiant du module actuel du service.\r\n * @returns {string} L'identifiant du module actuel du service.\r\n */\r\n this.getIdModule = function () {\r\n _idModule = that.getCookieParam(_idModule, \"id_module\");\r\n return _idModule;\r\n };\r\n\r\n /**\r\n * Modifie l'identifiant du module actuel du service.\r\n * @param aIdModule L'identifiant du module actuel du service.\r\n */\r\n this.setIdModule = function (aIdModule) {\r\n _idModule = that.setCookieParam(\"id_module\", aIdModule);\r\n };\r\n\r\n /**\r\n * Retourne l'identifiant de l'utilisateur actuel du service.\r\n * @returns {string} L'identifiant de l'utilisateur actuel du service.\r\n */\r\n this.getIdUtilisateur = function () {\r\n _idUtilisateur = that.getCookieParam(_idUtilisateur, \"id_user\");\r\n \r\n if(isNaN(parseInt(_idUtilisateur)))\r\n _idUtilisateur = null;\r\n \r\n return _idUtilisateur;\r\n };\r\n \r\n /**\r\n * Modifie l'identifiant de l'utilisateur actuel du service.\r\n * @param aId L'identifiant de l'utilisateur actuel du service.\r\n */\r\n this.setIdUtilisateur = function (aId) {\r\n _idUtilisateur = that.setCookieParam(\"id_user\", aId);\r\n };\r\n\r\n /**\r\n * Retourne l'utilisateur actuel du service.\r\n * @returns {string} L'utilisateur actuel du service.\r\n */\r\n this.getUtilisateur = function () {\r\n _utilisateur = that.getCookieParam(_utilisateur, \"user\");\r\n return _utilisateur;\r\n };\r\n\r\n /**\r\n * Modifie l'utilisateur actuel du service.\r\n * @param aUtil L'utilisateur actuel du service.\r\n */\r\n this.setUtilisateur = function (aUtil) {\r\n _utilisateur = that.setCookieParam(\"user\", aUtil);\r\n };\r\n\r\n /**\r\n * Retourne l'identifiant de session actuel du service.\r\n * @returns {string} L'identifiant de session actuel du service.\r\n */\r\n this.getIdSession = function () {\r\n _idSession = that.getCookieParam(_idSession, \"id_session\"); \r\n \r\n if(_idSession == \"\")\r\n _idSession = null;\r\n \r\n return _idSession;\r\n };\r\n\r\n /**\r\n * Modifie l'identifiant de session actuel du service.\r\n * @param aSession L'identifiant de session actuel du service.\r\n */\r\n this.setIdSession = function (aSession) {\r\n _idSession = that.setCookieParam(\"id_session\", aSession);\r\n };\r\n\r\n /**\r\n * Retourne les informations de l'utilisateur. N'est remplis que lors d'une connexion via portail.\r\n * @returns {object} Les informations utilisateur.\r\n */\r\n this.getUtilisateurInformation = function () {\r\n if(_utilisateurInformation == null) {\r\n var tempUserInfo = that.getCookieParam(_utilisateurInformation, \"userinfo\");\r\n \r\n if(!angular.isNullOrUndefined(tempUserInfo) && ((typeof tempUserInfo === 'string' && tempUserInfo.length > 0) || typeof tempUserInfo != 'string'))\r\n _utilisateurInformation = typeof tempUserInfo === 'string' ? JSON.parse(tempUserInfo) : tempUserInfo;\r\n else\r\n _utilisateurInformation = that.utilisateurInformationVide()\r\n }\r\n return _utilisateurInformation;\r\n };\r\n\r\n /**\r\n * Retourne les informations de l'utilisateur. N'est remplis que lors d'une connexion via portail.\r\n * @returns {object} Les informations utilisateur.\r\n */\r\n this.setUtilisateurInformation = function (utilisateurInformation) {\r\n _utilisateurInformation = that.setCookieParam(\"userinfo\", utilisateurInformation != null && typeof utilisateurInformation === 'string' ? JSON.parse(utilisateurInformation) : utilisateurInformation);\r\n };\r\n\r\n /**\r\n * Retourne l'identifiant de l'utilisateur actuel du service.\r\n * @returns {string} L'identifiant de l'utilisateur actuel du service.\r\n */\r\n this.getIdentifiants = function () {\r\n _identifiants = that.getCookieParam(_identifiants, \"identifiants\");\r\n return _identifiants;\r\n };\r\n \r\n /**\r\n * Modifie l'identifiant de l'utilisateur actuel du service.\r\n * @param aId L'identifiant de l'utilisateur actuel du service.\r\n */\r\n this.setIdentifiants = function (aIds) {\r\n _identifiants = that.setCookieParam(\"identifiants\", aIds);\r\n };\r\n\r\n /**\r\n * Retourne les paramètres actuel du service.\r\n * @returns {string} Les paramètres actuel du service.\r\n */\r\n this.getParametre = function () {\r\n if (!angular.isNullOrUndefined(typeof (Storage))) {\r\n _parametre = that.getStorageParam(_parametre, \"parametre\", \"session\");\r\n } else {\r\n _parametre = that.getCookieParam(_parametre, \"parametre\");\r\n }\r\n return _parametre;\r\n };\r\n \r\n /**\r\n * Modifie les paramètres actuel du service.\r\n * @param aParams Les paramètres actuel du service.\r\n */\r\n this.setParametre = function (aParams) {\r\n if (!angular.isNullOrUndefined(typeof (Storage))) {\r\n _parametre = that.setStorageParam(\"parametre\", aParams, \"session\");\r\n } else {\r\n _parametre = that.setCookieParam(\"parametre\", aParams);\r\n }\r\n };\r\n\r\n /**\r\n * Retourne les écrans actuel du service.\r\n * @returns {string} Les écrans actuel du service.\r\n */\r\n this.getCacheEcrans = function () {\r\n _cacheEcrans = that.getCookieParam(_cacheEcrans, \"cacheEcrans\");\r\n return _cacheEcrans;\r\n };\r\n \r\n /**\r\n * Modifie les paramètres actuel du service.\r\n * @param aParams Les paramètres actuel du service.\r\n */\r\n this.setCacheEcrans = function (aCacheEcrans) {\r\n _cacheEcrans = that.setCookieParam(\"cacheEcrans\", aCacheEcrans);\r\n };\r\n\r\n /**\r\n * Retourne l'état de suppression actuel du service.\r\n * @returns {string} L'état de suppression actuel du service.\r\n */\r\n this.getDeleted = function () {\r\n _deleted = that.getCookieParam(_deleted, \"deleted\");\r\n return _deleted;\r\n };\r\n \r\n /**\r\n * Modifie l'état de suppression actuel du service.\r\n * @param aParams L'état de suppression actuel du service.\r\n */\r\n this.setDeleted = function (aDeleted) {\r\n _deleted = that.setCookieParam(\"deleted\", aDeleted);\r\n };\r\n\r\n /**\r\n * Retourne les transactions actuel du service.\r\n * @returns {string} Les transactions actuel du service.\r\n */\r\n this.getTransactions = function () {\r\n _transactions = that.getCookieParam(_transactions, \"transactions\");\r\n return _transactions;\r\n };\r\n \r\n /**\r\n * Modifie les transactions actuel du service.\r\n * @param aTransactions Les transactions actuel du service.\r\n */\r\n this.setTransactions = function (aTransactions) {\r\n _transactions = that.setCookieParam(\"transactions\", aTransactions);\r\n };\r\n \r\n /**\r\n * Retourne l'URL actuelle du service.\r\n * @returns {string} L'URL actuelle du service.\r\n */\r\n this.getURL = function () {\r\n return _url;\r\n };\r\n\r\n /**\r\n * Place l'attribut _deleted à vrai.\r\n */\r\n this.hasBeenDeleted = function () {\r\n that.setDeleted(true);\r\n };\r\n\r\n /**\r\n * Retourne la version du serveur Operis.\r\n * @param {fr.operis.moteurV4.communication.Transaction} aTransaction Transaction pour l'appel (vide ou nul si pas de transaction)\r\n * @returns {ng.IPromise}\r\n */\r\n this.version = function (aTransaction) {\r\n var informations = {\r\n libelle: \"Version du serveur\",\r\n commentaire: \"Lecture de la version du serveur pour l'application \" + this.getLibelleModule(),\r\n estModale: false\r\n };\r\n return _appel(\"version\", [], 5, informations, aTransaction).then(\r\n function (resultat) {\r\n var index = 2;\r\n return resultat[index++];\r\n }\r\n );\r\n };\r\n\r\n /**\r\n * Réalise la récupération de la liste des portails de connexion via le serveur Operis.\r\n * @returns {ng.IPromise}\r\n */\r\n\t\t\t\tthis.portails = function () {\r\n\t\t\t\t\tvar informations = {\r\n libelle: \"Description des portails de connexion disponibles du serveur\",\r\n commentaire: \"Lecture des portails disponibles pour l'application \" + this.getLibelleModule(),\r\n estModale: false\r\n };\r\n return _appel(\"portails\", [], 5, informations, null).then(\r\n function (resultat) {\r\n var index = 2;\r\n\t\t\t\t\t\t\ttry{\r\n var portails = JSON.parse(resultat[index++]);\r\n for(var key in portails) {\r\n portails[key] = JSON.parse(portails[key]);\r\n }\r\n \r\n\t\t\t\t\t\t\t\treturn portails;\r\n\t\t\t\t\t\t\t} catch(e) {\r\n\t\t\t\t\t\t\t\treturn null;\r\n\t\t\t\t\t\t\t}\r\n }\r\n );\r\n\t\t\t\t}\r\n\r\n /**\r\n * Réalise la récupération des informations d'un portail de connexion via le serveur Operis.\r\n * @param {String} portail Le nom du portail.\r\n * @param {String} callbackURL L'URL de callback qui sera utilisée par le portail.\r\n * @param {String} callbackParams Les paramètres de callback qui seront placés dans le state.\r\n * @returns {ng.IPromise}\r\n */\r\n\t\t\t\tthis.descriptionPortail = function (portail, callbackURL, callbackParams) {\r\n\t\t\t\t\tvar informations = {\r\n libelle: \"Description du portail de connexion \" + portail,\r\n commentaire: \"Lecture du portail pour l'application \" + this.getLibelleModule(),\r\n estModale: false\r\n };\r\n return _appel(\"portail\", [portail, \"description_stricte\", callbackURL, this.getNomModule(), callbackParams], 5, informations, null).then(\r\n function (resultat) {\r\n var index = 2;\r\n return JSON.parse(resultat[index++]);\r\n }\r\n );\r\n\t\t\t\t}\r\n\r\n /**\r\n * Valide la connexion au portail dans le but de récupérer une session framework.\r\n * @param {String} portail Le nom du portail.\r\n * @param {String} callbackURL L'URL de callback qui avait été utilisée à la première étape par le portail.\r\n * @param {String} callbackParams Les paramètres de callback qui seront placés dans le state.\r\n * @param {String} modules Le nom des modules attendu.\r\n * @param {String} data Les données renvoyées par le portail permettant la validation de la connexion.\r\n * @param {Boolean} reconnexion Force la reconnexion. Le serveur tentera une déconnexion avant de ce connecter.\r\n * @param {Boolean} rapprochement La validation de connexion sert à rapprocher le compte Framework du compte Portail.\r\n * @returns {ng.IPromise}\r\n */\r\n\t\t\t\tthis.validateConnexionPortail = function (portail, callbackURL, callbackParams, data, reconnexion, rapprochement, nonce) {\r\n\t\t\t\t\tif(!angular.isDefined(reconnexion))\r\n\t\t\t\t\t\treconnexion = true;\r\n \r\n var idUtilisateurAssociation = \"\";\r\n if (rapprochement) {\r\n idUtilisateurAssociation = this.getIdUtilisateur();\r\n }\r\n\t\t\t\t\t\r\n\t\t\t\t\tvar informations = {\r\n libelle: \"Validation de la connexion via un portail \" + portail,\r\n commentaire: \"Validation de la connexion pour rapprochement de compte ou récupération de session pour le module \" + this.getLibelleModule(),\r\n estModale: false\r\n };\r\n return _appel(\r\n \"portail\",\r\n [\r\n portail,\r\n \"connexion_stricte\",\r\n callbackURL,\r\n reconnexion,\r\n this.getNomModule(),\r\n data,\r\n callbackParams,\r\n idUtilisateurAssociation,\r\n\t\t\t\t\t\t\tnonce\r\n ],\r\n 5,\r\n informations,\r\n null\r\n ).then(\r\n function (resultat) {\r\n var index = 2;\r\n\t\t\t\t\t\t\tvar ret = JSON.parse(resultat[index++]);\r\n\t\t\t\t\t\t\t\r\n that.setUtilisateur(ret.login);\r\n that.setIdModule(ret.idModule);\r\n that.setIdUtilisateur(ret.idUtilisateur);\r\n that.setIdSession(ret.idSession);\r\n that.setUtilisateurInformation(ret.userInfo);\r\n\t\t\t\t\t\t\t// Chargement des paramètres\r\n\t\t\t\t\t\t\treturn that.chargementParametres()\r\n\t\t\t\t\t\t\t\t.then(function(resultat){\r\n\t\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t\t});\r\n }\r\n );\r\n\t\t\t\t}\r\n\t\t\t\t\r\n /**\r\n * Réalise la connexion au serveur Operis.\r\n * Si l'utilisateur n'est pas fourni ou si la connexion n'est pas valide, l'interface de connexion s'affiche.\r\n * @param {String} aUtilisateur Le nom de l'utilisateur pour la connexion. S'il est nul, on affiche la mire de connexion.\r\n * @param {String} aMotdepasse Le mot de passe de l'utilisateur pour la connexion.\r\n * @param {Erreur} aErreur L'erreur de connexion.\r\n * @returns {ng.IPromise}\r\n */\r\n this.connexion = function (aUtilisateur, aMotdepasse, aErreur) {\r\n var deferred = $q.defer();\r\n if (that.getDeleted() == true) {\r\n deferred.reject(erreur.creer(SERVICE_SUPPRIME, this, _module));\r\n } else if (that.getIdSession() === null) {\r\n if ((aUtilisateur || \"\").length > 0) {\r\n // Si un utilisateur est fourni, on tente la connexion\r\n aMotdepasse = encryption.encryptageMotDePasse(aUtilisateur, aMotdepasse);\r\n var informations = {\r\n libelle: \"Connexion\",\r\n commentaire: \"Connexion à l'application \" + this.getLibelleModule()\r\n };\r\n _appel(\"Habil_Connexion\", [aUtilisateur, aMotdepasse, _module], 7, informations)\r\n .then(function (resultat) {\r\n var index = 2;\r\n \r\n that.setUtilisateur(aUtilisateur);\r\n that.setIdModule(resultat[index++]);\r\n that.setIdUtilisateur(resultat[index++]);\r\n that.setIdSession(resultat[index++]);\r\n that.setUtilisateurInformation(null);\r\n \r\n // Chargement des paramètres\r\n that.chargementParametres()\r\n .then(function(resultat){\r\n deferred.resolve();\r\n })\r\n .catch(function (erreur) {\r\n deferred.reject(erreur);\r\n });\r\n }.bind(this))\r\n .catch(function (erreur) {\r\n if (_opConnexionPromise === null) {\r\n that.setUtilisateur(aUtilisateur);\r\n if ( true && erreur.codeServeur === \"01007\" ){\r\n // Connexion encore active et on est en reconnexion automatique\r\n // On lance donc une déconnexion suivi d'une connexion de façon automatique.\r\n that.deconnexion(aUtilisateur,aMotdepasse)\r\n .then(function() {\r\n that.connexion(aUtilisateur, aMotdepasse)\r\n .then(function () {\r\n deferred.resolve();\r\n })\r\n .catch(function (erreur) {\r\n deferred.reject(erreur);\r\n })\r\n })\r\n .catch(function (erreur) {\r\n deferred.reject(erreur);\r\n })\r\n }else{\r\n that.connexion(null, null, erreur)\r\n .then(function () {\r\n deferred.resolve();\r\n })\r\n .catch(function (erreur) {\r\n deferred.reject(erreur);\r\n });\r\n }\r\n\r\n\r\n } else {\r\n deferred.reject(erreur);\r\n }\r\n });\r\n } else {\r\n // Sinon on affiche la mire de connexion\r\n // Récupération du login utilisateur si présent dans le html\r\n var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m,key,value) {\r\n if ( key.toLowerCase() == \"login\" )\r\n that.setUtilisateur(value);\r\n });\r\n \r\n // Si le cookie de déconnexion est renseigné\r\n // et qu'il correspond aux paramètres d'URL\r\n // on est en fin de déconnexion\r\n var logoutState = cookie.get(LOGOUT_STATE);\r\n var isLogout = logoutState && $window.location.search.contains(\"state=\" + logoutState);\r\n if (!isLogout && _opConnexionPromise === null) {\r\n _opConnexionPromise = 'LOADING';\r\n _opConnexionPromise = $modal.open({\r\n templateUrl: 'moteur/composants/OpConnexionPortail.html',\r\n controller: 'fr.operis.moteurV4.composants.OpConnexionPortailControleur',\r\n windowClass: 'operis-modal-portail',\r\n backdrop: false,\r\n keyboard: false,\r\n size: 'sm',\r\n resolve: {\r\n utilisateur: function () {\r\n return that.getUtilisateur();\r\n },\r\n erreurConnexion: function () {\r\n return aErreur;\r\n }\r\n }\r\n }).result;\r\n _opConnexionPromise.finally(function () {\r\n _opConnexionPromise = null;\r\n });\r\n } else if(isLogout) {\r\n // Suppression du cookie\r\n cookie.remove(LOGOUT_STATE);\r\n\t\t\t\t\t\t\t\tcookie.remove(\"nonce\");\r\n }\r\n return _opConnexionPromise;\r\n }\r\n } else {\r\n // S'il y a une session\r\n // Si le cookie de rapprochement est renseigné\r\n if (cookie.get(\"rapprochement\") && _opConnexionPromise === null) {\r\n _opConnexionPromise = 'LOADING';\r\n _opConnexionPromise = $modal.open({\r\n templateUrl: 'moteur/composants/OpConnexionPortail.html',\r\n controller: 'fr.operis.moteurV4.composants.OpConnexionPortailControleur',\r\n windowClass: 'operis-modal-portail',\r\n backdrop: false,\r\n keyboard: false,\r\n size: 'sm',\r\n resolve: {\r\n utilisateur: function () {\r\n return that.getUtilisateur();\r\n },\r\n erreurConnexion: function () {\r\n return aErreur;\r\n }\r\n }\r\n }).result;\r\n _opConnexionPromise.finally(function () {\r\n _opConnexionPromise = null;\r\n });\r\n } else {\r\n // On ne fait rien\r\n deferred.resolve();\r\n }\r\n }\r\n return deferred.promise;\r\n };\r\n\r\n /**\r\n * Réalise la déconnexion au serveur Operis.\r\n * @param {String|null} aUtilisateur Le nom de l'utilisateur pour la déconnexion.\r\n * @param {String|null} aMotdepasse Le mot de passe de l'utilisateur pour la déconnexion.\r\n * @returns {ng.IPromise}\r\n */\r\n this.deconnexion = function (aUtilisateur, aMotdepasse) {\r\n aUtilisateur = aUtilisateur || that.getUtilisateur();\r\n aMotdepasse = encryption.encryptageMotDePasse(aUtilisateur, aMotdepasse);\r\n var informations = {\r\n libelle: \"Déconnexion\",\r\n commentaire: \"Déconnexion de l'application \" + this.getLibelleModule()\r\n };\r\n var promise = _appel(\"Habil_Deconnexion\", [aUtilisateur, aMotdepasse, _module, that.getIdSession()], 4, informations);\r\n promise.then(function () {\r\n that.setUtilisateur(null);\r\n that.setIdModule(null);\r\n that.setIdUtilisateur(null);\r\n that.setIdSession(null);\r\n \r\n if(!(that.getUtilisateurInformation().session_id != null && !$config.$config.portail.auto)){\r\n var application = $config.$config.libApplication[$window.APPLICATION] ? $config.$config.libApplication[$window.APPLICATION] : $window.APPLICATION; \r\n opPopupAlerte.creer(\"information\", \"Vous avez été déconnecté avec succès de l'application \\\"\" + application + \"\\\".\", true, false, null, null, \"Déconnexion\");\r\n }\r\n });\r\n return promise;\r\n };\r\n \r\n this.deconnexionPortail = function (aUserInfo) {\r\n aUserInfo = aUserInfo || that.getUtilisateurInformation();\r\n \r\n if(aUserInfo == null) {\r\n console.log(\"Pas d'information utilisateur pour la déconnexion du portail.\")\r\n }\r\n \r\n if(aUserInfo.url_deconnection == null) {\r\n console.log(\"L'url de deconnexion au portail n'a pas été renseignée par le serveur.\");\r\n }\r\n \r\n if(aUserInfo.session_id == null) {\r\n console.log(\"L'id session de portail n'a pas été renseigné par le serveur.\")\r\n }\r\n\t\t\t\t\t\r\n\t\t\t\t\tif ($config.$config.portail.auto != null && $config.$config.portail.auto )\r\n\t\t\t\t\t\treturn;\r\n \r\n if(aUserInfo != null && aUserInfo.url_deconnection != null && aUserInfo.session_id != null) {\r\n that.setUtilisateurInformation(null);\r\n \r\n // Il est préférable de donner une valeur entière dans les paramètres de l'URL comme le state\r\n var state = Math.floor(Math.random() * 1000);\r\n // Mise en place du cookie pour la déconnexion\r\n cookie.set(LOGOUT_STATE, state);\r\n\r\n aUserInfo.url_deconnection = aUserInfo.url_deconnection.replace(\"{session_id}\", aUserInfo.session_id);\r\n // Construction de l'URL d'origine du site vers laquelle on sera redirigé\r\n var indexUrl = window.location.origin + window.location.pathname;\r\n\r\n var new_url_deconnection = new URL(aUserInfo.url_deconnection);\r\n new_url_deconnection.searchParams.set('state', state);\r\n new_url_deconnection.searchParams.set('post_logout_redirect_uri', indexUrl);\r\n window.location = new_url_deconnection;\r\n }\r\n ;\r\n }\r\n\r\n /**\r\n * Réalise le chargement des paramètres.\r\n *\r\n * @returns {ng.IPromise}\r\n *\r\n */\r\n this.chargementParametres = function(){\r\n var deferred = $q.defer(),\r\n parametres = [that.getIdSession(), ID_VUE_PARAMETRES, CHAMP_PARAMETRE_GRILLE + SEPARATEUR_NIVEAU_1 + \"1\"],\r\n informations = {\r\n libelle: \"Chargement des paramètres\",\r\n commentaire: \"Chargement des paramètres pour l'application \" + this.getLibelleModule()\r\n };\r\n\r\n\r\n // Appel de l'écran formulaire\r\n _appelConnecte( null, \"Ges_GetEcranFormulaire\", parametres, 10, informations, null)\r\n .then(function (resultat) {\r\n var index = 4,\r\n ecranGrillesEntete = resultat[index++],\r\n ecranGrillesValeur = resultat[index++];\r\n\r\n // Remplissage du dictionnaire des parametres\r\n that.setParametre(modele.remplirParametre(ecranGrillesEntete,ecranGrillesValeur));\r\n deferred.resolve();\r\n })\r\n .catch(function (erreur) {\r\n deferred.reject(erreur);\r\n });\r\n\r\n return deferred.promise;\r\n };\r\n\r\n /**\r\n * Récupération d'un paramètre de l'application\r\n * @param {String} Catégorie du paramètre\r\n * @param {String} Code du paramètre\r\n * @return La valeur du paramètre si défini ou null\r\n *\r\n */\r\n this.lireParametre = function(aCategorie, aCode){\r\n var codes = that.getParametre()[aCategorie];\r\n if ( !angular.isNullOrUndefined(codes))\r\n return that.getParametre()[aCategorie][aCode];\r\n\r\n return null;\r\n };\r\n\r\n /**\r\n * Réalise le chargement d'un écran de données.\r\n *\r\n * @param {Object} aScope Scope dans lequel les données sont à charger.\r\n * @param {String} aNomEcran Identifiant de l'écran base de données à charger\r\n * @param {Object} aIdentifiants Nom et valeur des colonnes permettant d'identifier un élément unique de la vue.\r\n * Si la valeur est omise, on prend la valeur utilisée lors d'un précédent appel à la fonction.\r\n * Pour omettre la valeur, il suffit de mettre undefined comme valeur.\r\n * Ex : chargement(scope, ecran);\r\n * Ex : chargement(scope, ecran, undefined, transaction);\r\n * @param {fr.operis.moteurV4.communication.Transaction} aTransaction Transaction pour l'appel (vide ou nul si pas de transaction)\r\n * @param {String} aDisplay Indique le type d'affichage pour la mire d'attente.\r\n * @returns {ng.IPromise}\r\n *\r\n */\r\n this.chargement = function (aScope, aNomEcran, aIdentifiants, aTransaction, aDisplay) {\r\n var that = this;\r\n\r\n // Gestion des paramètres\r\n if (aIdentifiants === undefined) {\r\n aIdentifiants = that.getIdentifiants();\r\n } else {\r\n aIdentifiants = angular.copy(aIdentifiants);\r\n that.setIdentifiants(aIdentifiants);\r\n }\r\n var deferred = $q.defer(),\r\n parametres = [that.getIdSession(), aNomEcran, _encoderIdentifiants(aIdentifiants)],\r\n informations = {\r\n libelle: \"Chargement de l'écran \" + aNomEcran,\r\n commentaire: \"Chargement de l'écran \" + aNomEcran + \" pour l'application \" + this.getLibelleModule()\r\n };\r\n // Indication de la présence des en-têtes en cache\r\n if (!angular.isNullOrUndefined(that.getCacheEcrans()[aNomEcran])) {\r\n parametres[1] = parametres[1];// TODO: implémenter le serveur + \"@onlydata\";\r\n }\r\n\r\n if ( requeteMultiAppel.getMultiAppel() ){\r\n var functionRetour = function (resultat){\r\n return that.callbackChargement(aScope, aNomEcran, aIdentifiants, resultat, aDisplay);\r\n };\r\n requeteMultiAppel.add(_module, \"Ges_GetEcranFormulaire\", parametres, 10, informations, angular.copy(aTransaction), functionRetour);\r\n deferred.resolve();\r\n }else{\r\n // Appel de l'écran formulaire\r\n _appelConnecte(aScope, \"Ges_GetEcranFormulaire\", parametres, 10, informations, angular.copy(aTransaction), aDisplay)\r\n .then(function (resultat) {\r\n deferred.resolve(that.callbackChargement(aScope, aNomEcran, aIdentifiants, resultat, aDisplay));\r\n })\r\n .catch(function (erreur) {\r\n deferred.reject(erreur);\r\n });\r\n }\r\n\r\n\r\n\r\n return deferred.promise;\r\n };\r\n\r\n /**\r\n * Réalise le traitement d'un retour de chargement d'un écran de données.\r\n *\r\n * @param {Object} aScope Scope dans lequel les données sont à charger.\r\n * @param {String} aNomEcran Identifiant de l'écran base de données à charger\r\n * @param {Object} aIdentifiants Nom et valeur des colonnes permettant d'identifier un élément unique de la vue.\r\n * @returns {resultat}\r\n *\r\n */\r\n this.callbackChargement = function(aScope, aNomEcran, aIdentifiants, aResultat, aDisplay){\r\n\r\n // Traitement du retour de l'écran formulaire\r\n var index = 2,\r\n ecranChampsEntete = aResultat[index++],\r\n ecranChampsValeur = aResultat[index++],\r\n ecranGrillesEntete = aResultat[index++],\r\n ecranGrillesValeur = aResultat[index++],\r\n ecranListesEntete = aResultat[index++],\r\n ecranListesValeur = aResultat[index++];\r\n\r\n // Gestion du cache des en-têtes et des listes\r\n var cacheEcran = that.getCacheEcrans();\r\n cacheEcran[aNomEcran] = cacheEcran[aNomEcran] || {\r\n ecranChampsEntete: ecranChampsEntete,\r\n ecranGrillesEntete: ecranGrillesEntete,\r\n ecranListesEntete: ecranListesEntete,\r\n ecranListesValeur: ecranListesValeur\r\n };\r\n that.setCacheEcrans(cacheEcran);\r\n ecranChampsEntete = cacheEcran[aNomEcran].ecranChampsEntete;\r\n ecranGrillesEntete = cacheEcran[aNomEcran].ecranGrillesEntete;\r\n ecranListesEntete = cacheEcran[aNomEcran].ecranListesEntete;\r\n ecranListesValeur = cacheEcran[aNomEcran].ecranListesValeur;\r\n\r\n if (!angular.isNullOrUndefined(aScope)) {\r\n // Remplissage du scope\r\n var tablesValeurs = modele.remplirModele(aScope, ecranChampsEntete, ecranChampsValeur, SCOPE_CHAMPS),\r\n tablesGrilles = modele.remplirModele(aScope, ecranGrillesEntete, ecranGrillesValeur, SCOPE_GRILLES),\r\n tablesListes = modele.remplirModele(aScope, ecranListesEntete, ecranListesValeur, SCOPE_LISTES);\r\n\r\n // Ajout de la fonction de comparaison du modèle\r\n aScope.opComparaison = modele.comparateur;\r\n aScope.opComparaisonStricte = modele.comparateurStrict;\r\n\r\n if (aIdentifiants === null) {\r\n // Ajout de la fonction de recherche\r\n aScope.recherche = aScope.recherche || {};\r\n // Mantis Operia 6195 : Permettre un tri personnalisé lors des recherches\r\n aScope.recherche[aNomEcran] = function (aTaillePage, aTri) {\r\n if (!angular.isNullOrUndefined(aTri)) {\r\n return that.recherche(aScope, aNomEcran, tablesValeurs, aTaillePage, 1, null, aTri);\r\n } else {\r\n return that.recherche(aScope, aNomEcran, tablesValeurs, aTaillePage, 1);\r\n }\r\n };\r\n }\r\n\r\n // Ajout de la fonction de sauvegarde\r\n aScope.sauvegarde = aScope.sauvegarde || {};\r\n aScope.sauvegarde[aNomEcran] = function () {\r\n return that.sauvegarde(aScope, aNomEcran, aIdentifiants, tablesValeurs, tablesGrilles, aDisplay);\r\n };\r\n\r\n // Ajout de la fonction pour calculer le hash md5 des données\r\n aScope.md5 = aScope.md5 || {};\r\n aScope.md5[aNomEcran] = function () {\r\n return md5.convertir(modele.recupererValeurs(aScope, tablesValeurs, SCOPE_CHAMPS, aIdentifiants) + '/' +\r\n modele.recupererValeurs(aScope, tablesGrilles, SCOPE_GRILLES, aIdentifiants));\r\n };\r\n\r\n // Ajout de la fonction pour détecter une modification\r\n var md5Initial = aScope.md5[aNomEcran]();\r\n aScope.aucuneModification = aScope.aucuneModification || {};\r\n aScope.aucuneModification[aNomEcran] = function () {\r\n return md5Initial === aScope.md5[aNomEcran]();\r\n };\r\n } else {\r\n $log.warn(\"Le scope est nul. Aucune donnée est donc retournée.\");\r\n }\r\n\r\n var retourChargement = [];\r\n retourChargement.push(tablesValeurs);\r\n retourChargement.push(tablesGrilles);\r\n retourChargement.push(tablesListes);\r\n return retourChargement;\r\n };\r\n\r\n /**\r\n * Réalise la recherche sur un écran de données.\r\n *\r\n * @param {Object} aScope Scope dans lequel les données sont à charger.\r\n * @param {String} aNomEcran Identifiant de l'écran base de données à charger\r\n * @param {type} aTablesValeurs Les tables associées à l'écran\r\n * @param {type} aTaillePage La taille de la page de données à remonter\r\n * @param {type} aNumeroPage Le numéro de la page de données à remonter\r\n * @param {Object} aCritere [Optionnal] Les critères de recherche\r\n * @param {Object} aTri [Optionnal] Tri personnalisé (remplace le tri paramétré dans la description de la table) [Mantis Operia 6195]\r\n * @returns {ng.IPromise}\r\n */\r\n this.recherche = function (aScope, aNomEcran, aTablesValeurs, aTaillePage, aNumeroPage, aCritere, aTri) {\r\n var deferred = $q.defer();\r\n var aTaillePage = aTaillePage;\r\n\r\n if(angular.isNullOrUndefined(aCritere))\r\n aCritere = \"\";\r\n\r\n // Filtre automatique sur les services gestionnaires en ecriture\r\n habilitation.setCritereHabilitation(aScope);\r\n\r\n var enTetes = modele.recupererDescriptions(aScope, aTablesValeurs, aTri), // Mantis Operia 6195\r\n criteres = modele.recupererValeurs(aScope, aTablesValeurs, SCOPE_CHAMPS, aCritere),\r\n parametres = [that.getIdSession(), aNomEcran, enTetes, criteres, aTaillePage, aNumeroPage],\r\n informations = {\r\n libelle: \"Recherche sur l'écran \" + aNomEcran,\r\n commentaire: \"Recherche sur l'écran \" + aNomEcran + \" pour l'application \" + this.getLibelleModule()\r\n };\r\n\r\n _appelConnecte(aScope, \"Ges_GetEcranRecherche\", parametres, 7, informations)\r\n .then(function (resultat) {\r\n var index = 2,\r\n ecranGrillesEntete = resultat[index++],\r\n ecranGrillesValeur = resultat[index++],\r\n tailleTotale = conversion.versEntier(resultat[index++]);\r\n\r\n var tablesGrilles= modele.remplirModele(aScope, ecranGrillesEntete, ecranGrillesValeur, SCOPE_GRILLES);\r\n\r\n aScope.recherchePageSuivante = aScope.recherchePageSuivante || {};\r\n if (tailleTotale > aTaillePage * aNumeroPage) {\r\n aScope.recherchePageSuivante[aNomEcran] = function () {\r\n return that.recherche(aScope, aNomEcran, aTablesValeurs, aTaillePage, aNumeroPage + 1, aCritere, aTri); // Mantis Operia 6195\r\n };\r\n } else {\r\n delete aScope.recherchePageSuivante[aNomEcran];\r\n }\r\n\r\n aScope.recherchePagePrecedente = aScope.recherchePagePrecedente || {};\r\n if (aNumeroPage > 1) {\r\n aScope.recherchePagePrecedente[aNomEcran] = function () {\r\n return that.recherche(aScope, aNomEcran, aTablesValeurs, aTaillePage, aNumeroPage - 1, aCritere, aTri); // Mantis Operia 6195\r\n };\r\n } else {\r\n delete aScope.recherchePagePrecedente[aNomEcran];\r\n }\r\n\r\n aScope.recherchePage = aScope.recherchePage || {};\r\n aScope.recherchePage[aNomEcran] = function (aNumeroPage) {\r\n return that.recherche(aScope, aNomEcran, aTablesValeurs, aTaillePage, aNumeroPage, aCritere, aTri); // Mantis Operia 6195\r\n };\r\n\r\n var retourRecherche = [];\r\n retourRecherche.push(tablesGrilles);\r\n retourRecherche.push(tailleTotale);\r\n retourRecherche.push(aNumeroPage);\r\n deferred.resolve(retourRecherche);\r\n })\r\n .catch(function (erreur) {\r\n deferred.reject(erreur);\r\n });\r\n return deferred.promise;\r\n };\r\n\r\n /**\r\n * Réalise la sauvegarde sur un écran de données.\r\n *\r\n * @param {Object} aScope Scope dans lequel les données sont à charger.\r\n * @param {String} aNomEcran Identifiant de l'écran base de données à charger\r\n * @param {type} aIdentifiants Les identifiants associés à l'écran\r\n * @param {type} aTablesValeurs Les tables associées à l'écran\r\n * @param {type} aTablesGrilles Les tables de grilles associées à l'écran\r\n * @param {String} aDisplay Indique le type d'affichage pour la mire d'attente.\r\n * @returns {ng.IPromise}\r\n */\r\n this.sauvegarde = function (aScope, aNomEcran, aIdentifiants, aTablesValeurs, aTablesGrilles, aDisplay) {\r\n var that = this;\r\n var deferred = $q.defer();\r\n var valeurs = modele.recupererValeurs(aScope, aTablesValeurs, SCOPE_CHAMPS, aIdentifiants),\r\n grilles = modele.recupererValeurs(aScope, aTablesGrilles, SCOPE_GRILLES, aIdentifiants),\r\n md5Initial = aScope.md5[aNomEcran](),\r\n parametres = [that.getIdSession(), aNomEcran, _encoderIdentifiants(aIdentifiants), valeurs, grilles],\r\n informations = {\r\n libelle: \"Sauvegarde de l'écran \" + aNomEcran,\r\n commentaire: \"Sauvegarde de l'écran \" + aNomEcran + \" pour l'application \" + this.getLibelleModule()\r\n };\r\n\r\n /*if ( requeteMultiAppel.getMultiAppel() ){\r\n var functionRetour = function (resultat){\r\n return that.callbackSauvegarde(aScope, aNomEcran, aIdentifiants, resultat);\r\n };\r\n requeteMultiAppel.add(_module, \"Ges_SetEcranFormulaire\", parametres, 5, informations, angular.copy(aTransaction), functionRetour);\r\n deferred.resolve();\r\n }else{*/\r\n _appelConnecte(aScope, \"Ges_SetEcranFormulaire\", parametres, 5, informations, null, aDisplay)\r\n .then(function (resultat) {\r\n deferred.resolve(angular.copy(that.callbackSauvegarde(aScope, aNomEcran, aIdentifiants, resultat)));\r\n })\r\n .catch(function (erreur) {\r\n deferred.reject(erreur);\r\n });\r\n /*}*/\r\n\r\n\r\n return deferred.promise;\r\n };\r\n\r\n /**\r\n * Réalise le traitement d'un retour de chargement d'un écran de données.\r\n *\r\n * @param {Object} aScope Scope dans lequel les données sont à charger.\r\n * @param {String} aNomEcran Identifiant de l'écran base de données à charger\r\n * @param {Object} aIdentifiants Nom et valeur des colonnes permettant d'identifier un élément unique de la vue.\r\n * @returns {resultat}\r\n *\r\n */\r\n this.callbackSauvegarde = function(aScope, aNomEcran, aIdentifiants, aResultat){\r\n\r\n var index = 2;\r\n // Mise à jour de l'identifiant courant\r\n that.setIdentifiants(_decoderIdentifiants(aResultat[index++]));\r\n // Mise à jour de la fonction de détection de modification\r\n aScope.aucuneModification[aNomEcran] = function () {\r\n return md5Initial === aScope.md5[aNomEcran]();\r\n };\r\n\r\n return that.getIdentifiants();\r\n };\r\n\r\n /**\r\n * Réalise la suppression sur un écran de données.\r\n *\r\n * @param {Object} aScope Scope dans lequel les données sont à charger.\r\n * @param {String} aNomEcran Identifiant de l'écran base de données à charger\r\n * @param {type} aIdentifiants Les identifiants associés à l'écran\r\n * @returns {ng.IPromise}\r\n */\r\n this.suppression = function (aScope, aNomEcran, aIdentifiants) {\r\n var deferred = $q.defer();\r\n var parametres = [that.getIdSession(), aNomEcran, _encoderIdentifiants(aIdentifiants)],\r\n informations = {\r\n libelle: \"Suppression de l'écran \" + aNomEcran,\r\n commentaire: \"Suppression de l'écran \" + aNomEcran + \" pour l'application \" + this.getLibelleModule()\r\n };\r\n _appelConnecte(aScope, \"Ges_SupprEcranFormulaire\", parametres, 4, informations)\r\n .then(function (resultat) {\r\n var index = 2;\r\n // Mise à jour de l'identifiant courant\r\n that.setIdentifiants(_decoderIdentifiants(resultat[index++]));\r\n deferred.resolve(angular.copy(that.getIdentifiants()));\r\n })\r\n .catch(function (erreur) {\r\n deferred.reject(erreur);\r\n });\r\n return deferred.promise;\r\n };\r\n\r\n /**\r\n * Réalise la sauvegarde de fichier\r\n *\r\n * @param {Object} aScope Scope dans lequel les données sont à charger.\r\n * @param {String} aNomEcran Identifiant de l'écran base de données à charger\r\n * @param {type} aIdentifiants Les identifiants associés à l'écran\r\n * @returns {ng.IPromise}\r\n */\r\n this.sauvegardeFichier = function (aScope, aFichier){\r\n var deferred = $q.defer();\r\n var typeFile = aFichier.file.type; // Problématique des types de fichier non reconne\r\n if ( typeFile == '' ){\r\n var pos = aFichier.file.name.lastIndexOf(\".\");\r\n typeFile = aFichier.file.name.slice(pos + 1);\r\n }\r\n var parametres = [that.getIdSession(), ID_VUE_FICHIER, CHAMP_ID_FICHIER + SEPARATEUR_NIVEAU_1 + \"\",\r\n \"\" + SEPARATEUR_NIVEAU_1 + this.codeSepBDSaisieClient(aFichier.file.name) + SEPARATEUR_NIVEAU_1 + typeFile + SEPARATEUR_NIVEAU_1 + aFichier.valeurFichier\r\n + SEPARATEUR_NIVEAU_1 + aFichier.tableAss + SEPARATEUR_NIVEAU_1 + aFichier.idAction + SEPARATEUR_NIVEAU_1 + aFichier.idModule + SEPARATEUR_NIVEAU_1 + aFichier.idEntite, \"\"],\r\n informations = {\r\n libelle: \"Sauvegarde de fichier\",\r\n commentaire: \"Sauvegarde de fichier pour l'application \" + this.getLibelleModule()\r\n };\r\n _appelConnecte(aScope, \"Ges_SetEcranFormulaire\", parametres, 5, informations)\r\n .then(function (resultat) {\r\n var index = 2;\r\n // Mise à jour de l'identifiant courant\r\n that.setIdentifiants(_decoderIdentifiants(resultat[index++]));\r\n deferred.resolve(angular.copy(that.getIdentifiants()));\r\n })\r\n .catch(function (erreur) {\r\n deferred.reject(erreur);\r\n });\r\n return deferred.promise;\r\n };\r\n\r\n\r\n\r\n /**\r\n * Appel d'une procédure stockée\r\n *\r\n * @param {Object} aScope Scope dans lequel les données sont à charger.\r\n * @param {String} aNomFonction Nom de fonction\r\n * @param {String} aParam1 Parametre1\r\n * @param {String} aParam2 Parametre2\r\n * @param {String} aParam3 Parametre3\r\n * @param {String} aParam4 Parametre4\r\n * @returns {ng.IPromise}\r\n */\r\n this.procedureInterne = function (aScope, aNomFonction, aParam1, aParam2, aParam3, aParam4) {\r\n var deferred = $q.defer();\r\n\r\n if (angular.isNullOrUndefined( aParam3))\r\n aParam3 = '';\r\n\r\n if (angular.isNullOrUndefined( aParam4))\r\n aParam4 = '';\r\n\r\n var parametres = [that.getIdSession(), aParam1, aParam2, aParam3, aParam4],\r\n informations = {\r\n libelle: \"Appel de procédure stockée \" + aNomFonction,\r\n commentaire: \"Appel de procédure stockée \" + aNomFonction + \" pour l'application \" + this.getLibelleModule()\r\n };\r\n _appelConnecte(aScope, aNomFonction, parametres, 8, informations)\r\n .then(function (resultat) {\r\n deferred.resolve(resultat.slice(2,6));\r\n })\r\n .catch(function (erreur) {\r\n deferred.reject(erreur);\r\n });\r\n return deferred.promise;\r\n };\r\n\r\n /**\r\n * Supprime l'instance de l'objet du cache.\r\n */\r\n this.supprimer = function () {\r\n delete _operisWSServers[_module];\r\n that.hasBeenDeleted();\r\n this.deconnexion();\r\n };\r\n\r\n requeteMultiAppel._multiAppelServeur = function (aNomFonction, aParametres, aNbRetours, aInformations, aTransaction){\r\n return _appel(aNomFonction, aParametres, aNbRetours, aInformations, aTransaction);\r\n };\r\n\r\n /**\r\n * Retourne l'état de multi appel\r\n */\r\n this.getMultiAppel = function(){\r\n return requeteMultiAppel.getMultiAppel();\r\n };\r\n\r\n /**\r\n * Défini l'état du multi appel.\r\n * @param {Object} aScope Scope dans lequel les données sont à traiter.\r\n * @param {string} aMultiAppel L'état du multi appel\r\n */\r\n this.setMultiAppel = function(aScope, aMultiAppel){\r\n return requeteMultiAppel.setMultiAppel(aScope, aMultiAppel);\r\n };\r\n\r\n /**\r\n * Converti caractéres spéciaux du moteur\r\n * @param {string} valeur Valeur à convertir\r\n */\r\n this.codeSepBDSaisieClient = function(valeur) {\r\n if (valeur != null) {\r\n var ret = valeur;\r\n ret = ret.replace(new RegExp(SEPARATEUR_NIVEAU_1, \"g\"), SEPARATEUR_NIVEAU_1_SAISIE_CLIENT);\r\n ret = ret.replace(new RegExp(SEPARATEUR_NIVEAU_2, \"g\"), SEPARATEUR_NIVEAU_2_SAISIE_CLIENT);\r\n ret = ret.replace(new RegExp(SEPARATEUR_NIVEAU_3, \"g\"), SEPARATEUR_NIVEAU_3_SAISIE_CLIENT);\r\n return ret;\r\n } else {\r\n return null;\r\n }\r\n }\r\n \r\n this.utilisateurInformationVide = function () {\r\n return {\r\n ent_denomination: null,\r\n ent_raisonsocial: null,\r\n ent_siret: null,\r\n ent_type: null,\r\n util_adresse: null,\r\n util_adresse_divterr: null,\r\n util_adresse_pays: null,\r\n util_fixe: null,\r\n util_fixe_indicatif: null,\r\n util_id: null,\r\n util_mail: null,\r\n util_mobile: null,\r\n util_naissance_date: null,\r\n util_naissance_dep: null,\r\n util_naissance_lieu: null,\r\n util_naissance_pays: null,\r\n util_nom: null,\r\n util_prenom: null,\r\n util_type: null,\r\n original: null\r\n };\r\n }\r\n }\r\n }]);\r\n}());","/**\r\n * @version 1.0b\r\n * @copyright 2015 Operis\r\n * @Author Pierre-Emmanuel Balageas, Alcer - Operis\r\n */\r\n\r\n/**\r\n * Teste si une valeur est nulle ou indéfinie.\r\n * @param {*} aValeur\r\n * @returns {Boolean} Vrai si la valeur est nulle ou indéfinie.\r\n */\r\nangular.isNullOrUndefined = function (aValeur) {\r\n return aValeur === null || aValeur === undefined;\r\n};\r\n\r\n/**\r\n * Module permettant d'inclure tout le moteur facilement dans une application.\r\n * R�alise la configuration de base des modules utilisés par le moteur.\r\n */\r\nangular.module('fr.operis.moteurV4', [\r\n 'ngAnimate', 'ngRoute', 'ngSanitize'\r\n , 'angular.filter'\r\n , 'fr.operis.moteurV4.communication.OperisWSServer'\r\n , 'fr.operis.moteurV4.composants.planning.OpPlanning'\r\n , 'fr.operis.moteurV4.composants.OpChartBar'\r\n , 'fr.operis.moteurV4.composants.OpChartDoughnut'\r\n , 'fr.operis.moteurV4.composants.OpChartLine'\r\n , 'fr.operis.moteurV4.composants.OpChartPie'\r\n , 'fr.operis.moteurV4.composants.OpFormulaire'\r\n , 'fr.operis.moteurV4.composants.OpMosaique'\r\n , 'fr.operis.moteurV4.composants.OpOnglet'\r\n , 'fr.operis.moteurV4.composants.OpPopupEdition'\r\n , 'fr.operis.moteurV4.composants.OpTextInput'\r\n , 'fr.operis.moteurV4.composants.cartographie.OpCartographie'\r\n , 'fr.operis.moteurV4.composants.ecriture.OpAdresse'\r\n , 'fr.operis.moteurV4.composants.ecriture.OpContact'\r\n , 'fr.operis.moteurV4.composants.ecriture.OpListePerso'\r\n , 'fr.operis.moteurV4.composants.popup.OpPopupActionMetier'\r\n , 'fr.operis.moteurV4.composants.popup.OpPopupMail'\r\n , 'fr.operis.moteurV4.composants.popup.OpPopupDocumentsAttaches'\r\n , 'fr.operis.moteurV4.composants.popup.OpPopupMessagerie'\r\n , 'fr.operis.moteurV4.composants.popup.OpPopupSuppressionFiche'\r\n , 'fr.operis.moteurV4.composants.popup.OpPopupEnregistrementFiche'\r\n , 'fr.operis.moteurV4.composants.popup.OpPopupOptionExportCSV'\r\n , 'fr.operis.moteurV4.conteneurs.OpPopup'\r\n , 'fr.operis.moteurV4.controleurs.ConnexionAuto'\r\n , 'fr.operis.moteurV4.controleurs.ControleurBase'\r\n , 'fr.operis.moteurV4.controleurs.WarnCookie'\r\n , 'fr.operis.moteurV4.directives.OpGrille'\r\n , 'fr.operis.moteurV4.directives.OpGrilleSaisie'\r\n , 'fr.operis.moteurV4.directives.OpStopEvent'\r\n , 'fr.operis.moteurV4.filtres.OpOrderBy'\r\n , 'fr.operis.moteurV4.filtres.FiltreListe'\r\n , 'fr.operis.moteurV4.utils.Date'\r\n , 'fr.operis.moteurV4.utils.GestionRegroupement'\r\n , 'fr.operis.moteurV4.utils.RequeteNotificationInterne'\r\n , 'fr.operis.moteurV4.utils.RequetePreChargementFiche'\r\n , 'fr.operis.moteurV4.utils.RequetePreSauvegardeFiche'\r\n , 'fr.operis.moteurV4.utils.RequetePostSauvegardeFiche'\r\n , 'fr.operis.moteurV4.utils.RequetePreSuppressionFiche'\r\n\t\t, 'fr.operis.moteurV4.utils.RequetePostSuppressionFiche'\r\n , 'fr.operis.moteurV4.utils.RequetePostSauvegardeActionMetier'\r\n , 'fr.operis.moteurV4.utils.RequeteVerificationSuppressionFiche'\r\n , 'fr.operis.moteurV4.utils.Habilitation'\r\n , 'fr.operis.moteurV4.utils.Messagerie'\r\n , 'fr.operis.moteurV4.utils.RequeteModuleComplement'\r\n , 'fr.operis.moteurV4.utils.RequeteContact'\r\n , 'fr.operis.moteurV4.utils.UtilisateurContexteIHM'\r\n , 'fr.operis.moteurV4.utils.Config'\r\n , 'fr.operis.moteurV4.utils.Planning'\r\n , 'fr.operis.moteurV4.utils.Parametre'\r\n , 'fr.operis.moteurV4.utils.Statut'\r\n , 'fr.operis.moteurV4.utils.RefExterne'\r\n , 'fr.operis.moteurV4.utils.Historique'\r\n , 'fr.operis.moteurV4.utils.ModuleInfos'\r\n , 'fr.operis.moteurV4.utils.ActionInfos'\r\n , 'fr.operis.moteurV4.utils.Version'\r\n , 'fr.operis.moteurV4.utils.ReferenceInterne'\r\n , 'fr.operis.moteurV4.utils.ConnexionPortail'\r\n , 'fr.operis.moteurV4.utils.Geocodage'\r\n , 'moteur/composants/OpConnexion.html'\r\n , 'moteur/composants/OpConnexionPortail.html'\r\n , 'moteur/composants/OpMireAttente.html'\r\n , 'moteur/composants/OpPopupAjoutElement.html'\r\n , 'moteur/composants/cartographie/OpPopupFeature.html'\r\n , 'moteur/composants/ecriture/OpTypeahead.html'\r\n , 'moteur/composants/planning/OpPopupAfficherRessources.html'\r\n , 'moteur/composants/planning/OpPopupAjoutOccupation.html'\r\n , 'moteur/composants/planning/OpPopupAjoutTache.html'\r\n , 'moteur/composants/planning/OpPopupAjoutTacheDetaillee.html'\r\n , 'moteur/composants/planning/OpPopupAjoutTacheMateriau.html'\r\n , 'moteur/composants/planning/OpPopupAvancementTache.html'\r\n , 'moteur/composants/planning/OpPopupDetailEvenement.html'\r\n , 'moteur/composants/planning/OpPopupRecurrence.html'\r\n , 'moteur/composants/popup/OpModalImage.html'\r\n , 'moteur/composants/popup/OpPopupAlerte.html'\r\n , 'moteur/composants/popup/OpPopupDocumentsAttaches.html'\r\n , 'moteur/composants/popup/OpPopupEdition.html'\r\n , 'moteur/composants/popup/OpPopupEnregistrementFiche.html'\r\n , 'moteur/composants/popup/OpPopupMessagerie.html'\r\n , 'moteur/composants/popup/OpPopupSuppressionFiche.html'\r\n , 'operiaChat.chat'\r\n , 'rzModule'\r\n , 'ui.mask'\r\n ])\r\n .config(['$logProvider', '$httpProvider'\r\n , function ($logProvider, $httpProvider) {\r\n $logProvider.debugEnabled(window.location.hash === '#debug');\r\n $httpProvider.useApplyAsync(true);\r\n }\r\n ]);","/**\r\n * @version 1.0b\r\n * @copyright 2016 Operis\r\n * @Author Laurent Dorie, Alcer - Operis\r\n */\r\n\r\n'use strict';\r\n\r\nangular.module('fr.operis.moteurV4.utils.RequeteMultiAppel', [])\r\n\r\n .service('fr.operis.moteurV4.utils.RequeteMultiAppel',\r\n [ 'fr.operis.moteurV4.utils.Erreur',\r\n '$q',\r\n '$window',\r\n function (erreur,\r\n $q,\r\n $window) {\r\n\r\n // Variables internes à la classe\r\n var that = this,\r\n _multiAppel = false,\r\n _multiAppelFonction,\r\n _multiAppelFonctionCallback = [],\r\n _multiAppelDonnees = [],\r\n _multiAppelNbRetours = 0,\r\n _multiAppelInformation,\r\n _multiAppelTransaction,\r\n _multiAppelStopOnError = false;\r\n\r\n this._multiAppelServeur;\r\n\r\n /**\r\n * Retourne l'état de multi appel\r\n * @returns {boolean} L'état du multiAppel\r\n */\r\n this.getMultiAppel = function (){\r\n return _multiAppel;\r\n };\r\n\r\n /**\r\n * Défini l'état du multi appel.\r\n * @param {string} aMultiAppel L'état du multi appel\r\n */\r\n this.setMultiAppel = function (aScope, aMultiAppel) {\r\n var deferred = $q.defer();\r\n\r\n _multiAppel = aMultiAppel;\r\n\r\n if ( !angular.isNullOrUndefined(_multiAppel) && !angular.isNullOrUndefined(this._multiAppelServeur) && !_multiAppel ){\r\n this._multiAppelServeur(_multiAppelFonction, _multiAppelDonnees, _multiAppelNbRetours, _multiAppelInformation)\r\n .then(function(resultat){\r\n // Réccupération du nom de l'écran, de l'identifiant\r\n for ( var indice = 0; indice < _multiAppelFonctionCallback.length; indice ++){\r\n _multiAppelFonctionCallback[indice](resultat.slice(0 + _multiAppelNbRetours * indice, _multiAppelNbRetours * ( indice + 1) ));\r\n }\r\n\r\n deferred.resolve();\r\n that._clearMultiAppel();\r\n },function(erreur){\r\n deferred.reject(erreur);\r\n that._clearMultiAppel();\r\n });\r\n }else\r\n deferred.resolve();\r\n\r\n return deferred.promise;\r\n };\r\n\r\n /**\r\n * Ajoute un appel.\r\n *\r\n * @param aModule Nom du module de l'appel\r\n * @param aFonction Nom de la fonction de l'appel\r\n * @param aDonnees Données de l'appel\r\n * @param {Integer} aNbRetours Nombre de retour pour l'appel\r\n * @param {fr.operis.moteurV4.communication.Transaction} aTransaction Transaction pour l'appel (vide ou nul si pas de transaction)\r\n * @param {fr.operis.moteurV4.communication.InformationsRequete} aInformations Informations sur l'appel\r\n *\r\n */\r\n this.add = function( aModule, aFonction, aParametres, aNbRetours, aInformation, aTransaction, aFunctionCallback) {\r\n if ( !angular.isNullOrUndefined(_multiAppelFonction) && _multiAppelFonction != aFonction )\r\n return erreur.creer(\"7010\", this, aModule);\r\n\r\n _multiAppelFonction = aFonction;\r\n _multiAppelNbRetours = aNbRetours;\r\n _multiAppelInformation = aInformation;\r\n _multiAppelTransaction = aTransaction;\r\n\r\n // CallBack\r\n _multiAppelFonctionCallback.push(aFunctionCallback);\r\n\r\n // Données\r\n if ( _multiAppelDonnees.length > 0){\r\n _multiAppelDonnees.push($window.Math.round($window.Math.random() * 1000000).toString());\r\n _multiAppelDonnees.push(_multiAppelFonction);\r\n }\r\n _multiAppelDonnees = _multiAppelDonnees.concat(aParametres);\r\n _multiAppelDonnees.push(_multiAppelStopOnError ? \"0\" : \"1\");\r\n }\r\n\r\n /**\r\n * Nettoyage des variables de la classe\r\n */\r\n this._clearMultiAppel = function(){\r\n _multiAppelFonction = null;\r\n _multiAppelNbRetours = 0;\r\n _multiAppelInformation = null;\r\n _multiAppelTransaction = null;\r\n _multiAppelDonnees = [];\r\n _multiAppelStopOnError = false;\r\n _multiAppel = false;\r\n }\r\n\r\n }\r\n ]\r\n);","/**\r\n * @version 1.0b\r\n * @copyright 2015 Operis\r\n * @Author Brian Kjerulf, Operis\r\n */\r\n\r\n'use strict';\r\nangular.module('fr.operis.moteurV4.composants.OpChartBar', [])\r\n .directive('opChartBar', ['$compile', '$timeout', function ($compile, $timeout) {\r\n return {\r\n restrict: 'E',\r\n transclude: false,\r\n scope:{\r\n opChartData: '=',\r\n opChartOptions: '=',\r\n opChartLegend: '=',\r\n opTitre:'@' ,\r\n opClick:'&'\r\n },\r\n template: ''+\r\n '
'+\r\n '
'+\r\n '
'+\r\n '
'+\r\n '{{opTitre}}'+\r\n '
'+\r\n '
'+\r\n '
'+\r\n ''+\r\n '
'+\r\n '
'+\r\n '
'+\r\n '
',\r\n \r\n link: function postLink(scope, iElement, iAttrs, controller) {\r\n var cElt = iElement.children(),\r\n width = 0,\r\n height = 0;\r\n function verifTaille() {\r\n if(width !== cElt.prop('offsetWidth') || height !== cElt.prop('offsetHeight')) {\r\n // On d�clenche un cycle de digest pour rentrer dans le watch\r\n scope.$digest();\r\n } else {\r\n $timeout(verifTaille, 500, false);\r\n }\r\n }\r\n $timeout(verifTaille, 500, false);\r\n\r\n scope.$watch(function() {\r\n return cElt.prop('offsetWidth') + ';' + cElt.prop('offsetHeight');\r\n },\r\n function(value) {\r\n if(scope.chart && value !== '0;0' && isNaN(scope.chart.chart.aspectRatio)) {\r\n scope.chart.chart.aspectRatio = 2;\r\n scope.chart.resize(function () {\r\n\r\n for (var datasetIndex = 0; datasetIndex < scope.chart.datasets.length; datasetIndex++) {\r\n for (var barIndex = 0; barIndex < scope.chart.datasets[datasetIndex].bars.length; barIndex++) {\r\n scope.chart.datasets[datasetIndex].bars[barIndex].y = scope.chart.datasets[datasetIndex].bars[barIndex].y || 0;\r\n }\r\n }\r\n scope.chart.reflow();\r\n scope.chart.update();\r\n scope.chart.draw();\r\n });\r\n }\r\n });\r\n }\r\n }\r\n }]\r\n );","/**\r\n * @version 1.0b\r\n * @copyright 2015 Operis\r\n * @Author Brian Kjerulf, Operis\r\n */\r\n\r\n'use strict';\r\nangular.module('fr.operis.moteurV4.composants.OpChartDoughnut', [])\r\n .directive('opChartDoughnut', ['$compile', '$timeout', function ($compile, $timeout) {\r\n return {\r\n restrict: 'E',\r\n transclude: false,\r\n scope:{\r\n opChartData: '=',\r\n opChartOptions: '=',\r\n opChartLegend: '=',\r\n opTitre:'@' ,\r\n opClick:'&'\r\n },\r\n template: ''+\r\n '
'+\r\n '
'+\r\n '
'+\r\n '
'+\r\n '{{opTitre}}'+\r\n '
'+\r\n '
'+\r\n '
'+\r\n ''+\r\n '
'+\r\n '
'+\r\n '
'+\r\n '
',\r\n \r\n link: function postLink(scope, iElement, iAttrs, controller) {\r\n var cElt = iElement.children(),\r\n width = 0,\r\n height = 0;\r\n\r\n // TODO : verifier l'utilitée de cette fonction\r\n function verifTailleDoughnut() {\r\n if(width !== cElt.prop('offsetWidth') || height !== cElt.prop('offsetHeight')) {\r\n // On d�clenche un cycle de digest pour rentrer dans le watch\r\n scope.$digest();\r\n } else {\r\n $timeout(verifTailleDoughnut, 500, false);\r\n }\r\n }\r\n $timeout(verifTailleDoughnut, 500, false);\r\n\r\n scope.$watch(function() {\r\n return cElt.prop('offsetWidth') + ';' + cElt.prop('offsetHeight');\r\n },\r\n function(value) {\r\n if(scope.chart && value !== '0;0' && isNaN(scope.chart.chart.aspectRatio)) {\r\n scope.chart.chart.aspectRatio = 2;\r\n scope.chart.resize(function () {\r\n scope.chart.reflow();\r\n scope.chart.update();\r\n scope.chart.draw();\r\n });\r\n }\r\n });\r\n }\r\n }\r\n }]\r\n );","/**\r\n * @version 1.0b\r\n * @copyright 2015 Operis\r\n * @Author Brian Kjerulf, Operis\r\n */\r\n\r\n'use strict';\r\nangular.module('fr.operis.moteurV4.composants.OpChartLine', [])\r\n .directive('opChartLine', ['$compile', '$timeout', function ($compile, $timeout) {\r\n return {\r\n restrict: 'E',\r\n transclude: false,\r\n scope:{\r\n opChartData: '=',\r\n opChartOptions: '=',\r\n opChartLegend: '=',\r\n opTitre:'@' ,\r\n opClick:'&'\r\n },\r\n template: ''+\r\n '
'+\r\n '
'+\r\n '
'+\r\n '
'+\r\n '{{opTitre}}'+\r\n '
'+\r\n '
'+\r\n '
'+\r\n ''+\r\n '
'+\r\n '
'+\r\n '
'+\r\n '
',\r\n \r\n link: function postLink(scope, iElement, iAttrs, controller) {\r\n var cElt = iElement.children(),\r\n width = 0,\r\n height = 0;\r\n\r\n // TODO : verifier l'utilitée de cette fonction\r\n function verifTailleLine() {\r\n if(width !== cElt.prop('offsetWidth') || height !== cElt.prop('offsetHeight')) {\r\n // On d�clenche un cycle de digest pour rentrer dans le watch\r\n scope.$digest();\r\n } else {\r\n $timeout(verifTailleLine, 500, false);\r\n }\r\n }\r\n $timeout(verifTailleLine, 500, false);\r\n\r\n scope.$watch(function() {\r\n return cElt.prop('offsetWidth') + ';' + cElt.prop('offsetHeight');\r\n },\r\n function(value) {\r\n if(scope.chart && value !== '0;0' && isNaN(scope.chart.chart.aspectRatio)) {\r\n scope.chart.chart.aspectRatio = 2;\r\n scope.chart.resize(function () {\r\n scope.chart.reflow();\r\n scope.chart.update();\r\n scope.chart.draw();\r\n });\r\n }\r\n });\r\n }\r\n }\r\n }]\r\n );","/**\r\n * @version 1.0b\r\n * @copyright 2015 Operis\r\n * @Author Brian Kjerulf, Operis\r\n */\r\n\r\n'use strict';\r\nangular.module('fr.operis.moteurV4.composants.OpChartPie', [])\r\n .directive('opChartPie', ['$compile', '$timeout', function ($compile, $timeout) {\r\n return {\r\n restrict: 'E',\r\n transclude: false,\r\n scope:{\r\n opChartData: '=',\r\n opChartOptions: '=',\r\n opChartLegend: '=',\r\n opTitre:'@',\r\n opClick:'&'\r\n },\r\n template: ''+\r\n '
'+\r\n '
'+\r\n '
'+\r\n '
'+\r\n '{{opTitre}}'+\r\n '
'+\r\n '
'+\r\n '
'+\r\n ''+\r\n '
'+\r\n '
'+\r\n '
'+\r\n '
',\r\n \r\n link: function postLink(scope, iElement, iAttrs, controller) {\r\n var cElt = iElement.children(),\r\n width = 0,\r\n height = 0;\r\n\r\n // TODO : verifier l'utilitée de cette fonction\r\n function verifTaillePie() {\r\n if(width !== cElt.prop('offsetWidth') || height !== cElt.prop('offsetHeight')) {\r\n // On d�clenche un cycle de digest pour rentrer dans le watch\r\n scope.$digest();\r\n } else {\r\n $timeout(verifTaillePie, 500, false);\r\n }\r\n }\r\n $timeout(verifTaillePie, 500, false);\r\n\r\n scope.$watch(function() {\r\n return cElt.prop('offsetWidth') + ';' + cElt.prop('offsetHeight');\r\n },\r\n function(value) {\r\n if(scope.chart && value !== '0;0' && isNaN(scope.chart.chart.aspectRatio)) {\r\n scope.chart.chart.aspectRatio = 2;\r\n scope.chart.resize(function () {\r\n scope.chart.reflow();\r\n scope.chart.update();\r\n scope.chart.draw();\r\n });\r\n }\r\n });\r\n }\r\n }\r\n }]\r\n );","angular.module(\"moteur/composants/OpConnexion.html\", []).run([\"$templateCache\", function($templateCache) {\n $templateCache.put(\"moteur/composants/OpConnexion.html\",\n \"

{{erreurs[0].referent.getLibelleModule()}}

{{erreurs[0].libelle}} 0\\\">{{erreurs[0].libelleServeur}}
1\\\" close=\\\"erreurs.length = 0\\\">{{erreurs[0].libelle}} 0\\\">{{erreurs[0].libelleServeur}}
La session est fermée.
\");\n}]);\n","/**\r\n * @version 1.0b\r\n * @copyright 2015 Operis\r\n * @Author Pierre-Emmanuel Balageas, Alcer - Operis\r\n */\r\n\r\n'use strict';\r\n\r\nangular.module('fr.operis.moteurV4.composants.OpConnexion', [\r\n 'ui.bootstrap',\r\n 'fr.operis.moteurV4.directives.OpSimpleFormat',\r\n 'fr.operis.moteurV4.communication.OperisWSServer',\r\n 'fr.operis.moteurV4.directives.OpAutoFocus'])\r\n .controller('fr.operis.moteurV4.composants.OpConnexionControleur',\r\n ['$scope', '$modalInstance', '$window', '$filter', 'fr.operis.moteurV4.communication.OperisWSServer', 'utilisateur', 'erreur',\r\n function ($scope, $modalInstance, $window, $filter, operisWSServer, utilisateur, erreur) {\r\n $scope.utilisateur = utilisateur;\r\n $scope.motdepasse = \"\";\r\n $scope.utilisateurModifiable = angular.isNullOrUndefined(utilisateur);\r\n $scope.erreursParCode = {};\r\n $scope.sessionsFermees = false;\r\n\r\n if (!angular.isNullOrUndefined(erreur)) {\r\n if (!angular.isNullOrUndefined($scope.erreursParCode[erreur.codeServeur]))\r\n $scope.erreursParCode[erreur.codeServeur] = [erreur];\r\n else\r\n $scope.erreursParCode[erreur.codeServeur].push(erreur);\r\n }\r\n\r\n\r\n\r\n $scope.pressePapier = function (erreur) {\r\n $window.prompt(\"Copier le texte : Ctrl+C, Entrée\", angular.toJson(erreur));\r\n };\r\n\r\n $scope.valider = function () {\r\n return operisWSServer.connexionComplete($scope.utilisateur, $scope.motdepasse).then(\r\n function () {\r\n $modalInstance.close();\r\n },\r\n function (erreurs) {\r\n for (var i = 0; i < erreurs.length; i++) {\r\n if ($scope.erreursParCode.hasOwnProperty(erreurs[i].codeServeur))\r\n $scope.erreursParCode[erreurs[i].codeServeur].push(erreurs[i]);\r\n else\r\n $scope.erreursParCode[erreurs[i].codeServeur] = [erreurs[i]];\r\n }\r\n\r\n // Session déjà connecté...\r\n var erreursSession = $scope.erreursParCode['01007'];\r\n if ( erreursSession && erreursSession.length > 0){\r\n var reponse = confirm(\"Voulez-vous déconnecter la session en cours et tenter une reconnexion ?\");\r\n if ( reponse ){\r\n return $scope.fermer().then($scope.valider);\r\n }\r\n }\r\n });\r\n };\r\n\r\n $scope.fermer = function () {\r\n return operisWSServer.deconnexionComplete($scope.utilisateur, $scope.motdepasse).then(\r\n function () {\r\n $scope.erreursParCode['01007'] = [];\r\n $scope.sessionsFermees = true;\r\n },\r\n function (erreur) {\r\n if (!angular.isNullOrUndefined($scope.erreursParCode[erreur.codeServeur]))\r\n $scope.erreursParCode[erreur.codeServeur] = [erreur];\r\n else\r\n $scope.erreursParCode[erreur.codeServeur].push(erreur);\r\n });\r\n };\r\n }]);","angular.module(\"moteur/composants/OpConnexionPortail.html\", []).run([\"$templateCache\", function($templateCache) {\n $templateCache.put(\"moteur/composants/OpConnexionPortail.html\",\n \"

Me connecter à mon compte

{{erreurs[0].referent.getLibelleModule()}}

{{erreurs[0].libelle}} 0\\\">{{erreurs[0].libelleServeur}}
1\\\" close=\\\"erreurs.length = 0\\\">{{erreurs[0].libelle}} 0\\\">{{erreurs[0].libelleServeur}}
La session est fermée.

0\\\">{{value['libelle.connexion']}}

\\\"{{key}}\\\" \\\"{{key}}\\\" 0\\\" target=\\\"_blank\\\" ng-show=\\\"!isDisabled(key)\\\">{{value['whatisit.text']}}

{{value['whatisit.text']}}

Ancun portail n'est disponible. Si le problème persiste, veuillez contacter le support Operis.

OU

Pas encore de compte ?

Connexion portail en cours

\");\n}]);\n","/**\r\n * @version 1.0c\r\n * @copyright 2019 Operis\r\n * @Author Laure-Hélène Bruneton, Alcer - Operis\r\n */\r\n\r\n'use strict';\r\n\r\nangular.module('fr.operis.moteurV4.composants.OpConnexionPortail', [\r\n 'ui.bootstrap',\r\n 'fr.operis.moteurV4.directives.OpSimpleFormat',\r\n 'fr.operis.moteurV4.communication.OperisWSServer',\r\n 'fr.operis.moteurV4.directives.OpAutoFocus'])\r\n .controller('fr.operis.moteurV4.composants.OpConnexionPortailControleur',\r\n ['$scope', '$modalInstance', '$window', '$sce',\r\n 'fr.operis.moteurV4.utils.ConnexionPortail',\r\n 'fr.operis.moteurV4.utils.Cookie',\r\n 'fr.operis.moteurV4.utils.Config',\r\n 'fr.operis.moteurV4.utils.Erreur',\r\n 'fr.operis.moteurV4.communication.OperisWSServer',\r\n 'utilisateur', 'erreurConnexion',\r\n 'fr.operis.moteurV4.utils.Erreur.PORTAILS_DESCRIPTION_INVALIDE',\r\n 'fr.operis.moteurV4.utils.Erreur.PORTAIL_DESCRIPTION_INVALIDE',\r\n 'fr.operis.moteurV4.utils.Erreur.PORTAIL_UNKNOWN',\r\n 'fr.operis.moteurV4.utils.Erreur.PORTAIL_AUTHORIZE_ERROR',\r\n 'fr.operis.moteurV4.utils.Erreur.PORTAIL_UNVALID_STATE',\r\n 'fr.operis.moteurV4.utils.Erreur.PORTAIL_EMPTY_ANSWER',\r\n 'fr.operis.moteurV4.utils.Config.cookie.CGU',\r\n 'fr.operis.moteurV4.utils.Config.cookie.LOGOUT_STATE',\r\n function ($scope, $modalInstance, $window, $sce,\r\n connexionPortail, cookie, config, erreur, operisWSServer,\r\n utilisateur, erreurConnexion,\r\n PORTAILS_DESCRIPTION_INVALIDE, PORTAIL_DESCRIPTION_INVALIDE,\r\n PORTAIL_UNKNOWN, PORTAIL_AUTHORIZE_ERROR, PORTAIL_UNVALID_STATE,PORTAIL_EMPTY_ANSWER,\r\n CGU, LOGOUT_STATE) {\r\n // Connexion Framework\r\n $scope.utilisateur = utilisateur;\r\n $scope.motdepasse = \"\";\r\n $scope.utilisateurModifiable = angular.isNullOrUndefined(utilisateur);\r\n $scope.erreursParCode = {};\r\n $scope.sessionsFermees = false;\r\n // Connexion Portail\r\n $scope.portailDisplay = config.$config.portail.display;\r\n $scope.portailOnly = config.$config.portail.only;\r\n $scope.portailCreaCompte = config.$config.portail.creaCompte;\r\n $scope.portails = null;\r\n $scope.portailsDescription = false;\r\n $scope.iframesrc = \"\";\r\n \r\n $scope.close = function () {\r\n $modalInstance.close();\r\n }\r\n \r\n /********************\r\n * Connexion Framework\r\n *********************/\r\n if (!angular.isNullOrUndefined(erreurConnexion)) {\r\n if (!angular.isNullOrUndefined($scope.erreursParCode[erreurConnexion.codeServeur]))\r\n $scope.erreursParCode[erreurConnexion.codeServeur] = [erreurConnexion];\r\n else\r\n $scope.erreursParCode[erreurConnexion.codeServeur].push(erreurConnexion);\r\n }\r\n \r\n $scope.pressePapier = function (erreur) {\r\n $window.prompt(\"Copier le texte : Ctrl+C, Entrée\", angular.toJson(erreur));\r\n };\r\n \r\n $scope.valider = function () {\r\n return operisWSServer.connexionComplete($scope.utilisateur, $scope.motdepasse).then(\r\n function () {\r\n $modalInstance.close();\r\n },\r\n function (erreurs) {\r\n for (var i = 0; i < erreurs.length; i++) {\r\n if ($scope.erreursParCode.hasOwnProperty(erreurs[i].codeServeur))\r\n $scope.erreursParCode[erreurs[i].codeServeur].push(erreurs[i]);\r\n else\r\n $scope.erreursParCode[erreurs[i].codeServeur] = [erreurs[i]];\r\n }\r\n\r\n // Session déjà connectée...\r\n var erreursSession = $scope.erreursParCode['01007'];\r\n if ( erreursSession && erreursSession.length > 0){\r\n var reponse = confirm(\"Voulez-vous déconnecter la session en cours et tenter une reconnexion ?\");\r\n if ( reponse ){\r\n return $scope.fermer().then($scope.valider);\r\n }\r\n }\r\n });\r\n };\r\n \r\n $scope.fermer = function () {\r\n return operisWSServer.deconnexionComplete($scope.utilisateur, $scope.motdepasse).then(\r\n function () {\r\n $scope.erreursParCode['01007'] = [];\r\n $scope.sessionsFermees = true;\r\n },\r\n function (erreur) {\r\n if (!angular.isNullOrUndefined($scope.erreursParCode[erreur.codeServeur]))\r\n $scope.erreursParCode[erreur.codeServeur] = [erreur];\r\n else\r\n $scope.erreursParCode[erreur.codeServeur].push(erreur);\r\n });\r\n };\r\n \r\n /********************\r\n * Gestion des erreurs\r\n *********************/\r\n function _pushErreur(erreur) {\r\n if (angular.isNullOrUndefined($scope.erreursParCode[erreur.codeServeur]))\r\n $scope.erreursParCode[erreur.codeServeur] = [erreur];\r\n else\r\n $scope.erreursParCode[erreur.codeServeur].push(erreur);\r\n }\r\n \r\n /**********************\r\n * Nettoyage des cookies\r\n ***********************/\r\n function _cleanupCookies() {\r\n cookie.remove(\"portail\");\r\n cookie.remove(\"portailState\");\r\n cookie.remove(\"portailIframe\");\r\n cookie.remove(\"portailReconnexion\");\r\n cookie.remove(\"rapprochement\");\r\n\t\t\tcookie.remove(\"nonce\");\r\n }\r\n \r\n /******************\r\n * Gestion de compte\r\n *******************/\r\n var _gestionCompteUrl = \"./OperisCreateAccount.html?nameApp=\"\r\n + $window.APPLICATION;\r\n \r\n var _currentCGU = cookie.get(CGU);\r\n if(_currentCGU && _currentCGU.length > 0) {\r\n _gestionCompteUrl += \"&cgu=\" + $window.encodeURIComponent(_currentCGU)\r\n + \"&successCallback=\" + $window.encodeURIComponent(\r\n connexionPortail.extractUrlPath() + \"?\" + connexionPortail.extractOriginalParams());\r\n }\r\n \r\n var _creationCompteUrl = _gestionCompteUrl + \"&methode=creation\";\r\n var _recoverCompteUrl = _gestionCompteUrl + \"&methode=regeneration\";\r\n \r\n $scope.creationCompte = function () {\r\n // Si FranceConnect est un portail configuré et activé,\r\n // on charge sa description pour l'envoyer à la page de création de compte\r\n if ($scope.portails && $scope.portails[\"FranceConnect\"] && $scope.portails[\"FranceConnect\"].activated) {\r\n operisWSServer.descriptionPortailComplete(\r\n \"FranceConnect\", $window.encodeURIComponent(\r\n connexionPortail.extractUrlPath()), connexionPortail.encodedStateParams())\r\n .then(function (result) {\r\n cookie.set(\"portail\", result.name);\r\n cookie.set(\"portailDataField\", result.dataField);\r\n // Traitement du state\r\n var state = Math.random();\r\n result.url_connection += state;\r\n cookie.set(\"portailState\", state);\r\n // Traitement du clientId\r\n result.url_connection = result.url_connection.replace(\"{clientId}\", result.clientId);\r\n // Appel de l'authentification\r\n $window.location = _creationCompteUrl + \"&portails=FranceConnect&portailRedirect=\" + $window.encodeURIComponent(result.url_connection);\r\n })\r\n .catch(function (err) {\r\n _pushErreur(erreur.creer(PORTAIL_DESCRIPTION_INVALIDE, null, portail, err));\r\n });\r\n } else {\r\n $window.location = _creationCompteUrl;\r\n }\r\n };\r\n \r\n $scope.recoverCompte = function () {\r\n return _recoverCompteUrl;\r\n };\r\n \r\n /******************\r\n * Connexion Portail\r\n *******************/\r\n $scope.isVisible = function (portail) {\r\n return $scope.portails != null \r\n && $scope.portails[portail] != undefined \r\n && $scope.portails[portail] != null;\r\n };\r\n \r\n $scope.isDisabled = function (portail) {\r\n return !$scope.isVisible(portail) || !$scope.portails[portail].activated;\r\n };\r\n \r\n $scope.connexionPortail = function (portail, iframe) {\r\n return operisWSServer.descriptionPortailComplete(\r\n portail, $window.encodeURIComponent(\r\n connexionPortail.extractUrlPath()), connexionPortail.encodedStateParams())\r\n .then(function (result) {\r\n cookie.set(\"portail\", result.name);\r\n // Traitement du state\r\n var state = Math.random();\r\n result.url_connection += state;\r\n cookie.set(\"portailState\", state);\r\n\t\t\t\t\r\n\t\t\t\t// Récupération du nonce\r\n\t\t\t\tvar paramsNonce = connexionPortail.splitParams(result.url_connection);\r\n\t\t\t\tif (paramsNonce[\"nonce\"]){\r\n\t\t\t\t\tlocalStorage.setItem(\"nonce\", paramsNonce[\"nonce\"]);\r\n\t\t\t\t}else{\r\n\t\t\t\t\tlocalStorage.removeItem(\"nonce\");\r\n\t\t\t\t}\r\n\t\t\t\t\r\n // Traitement du clientId\r\n result.url_connection = result.url_connection.replace(\"{clientId}\", result.clientId);\r\n // Appel de l'authentification\r\n if (iframe) {\r\n \r\n function cleanup(timeout) {\r\n $window.removeEventListener(\"message\", message, false);\r\n if(handle) {\r\n $window.clearTimeout(handle);\r\n }\r\n handle = null;\r\n $scope.iframesrc = \"\";\r\n \r\n if (timeout) {\r\n // Si timeout, connexion directe\r\n cookie.remove(\"portailIframe\");\r\n cookie.set(\"portailIframeError\", true);\r\n $scope.connexionPortail(Object.keys($scope.portails)[0], false);\r\n }\r\n }\r\n \r\n function message(e) {\r\n if (e.origin == $window.location.protocol + \"//\" + $window.location.host) {\r\n cleanup();\r\n if (e.data === \"iframeError\") {\r\n // Si vérification en erreur, connexion directe\r\n cookie.remove(\"portailIframe\");\r\n cookie.set(\"portailIframeError\", true);\r\n $scope.connexionPortail(Object.keys($scope.portails)[0], false);\r\n } else {\r\n // déclenchement de la connexion via portail\r\n _validateConnexion(e.data);\r\n }\r\n }\r\n }\r\n \r\n cookie.set(\"portailIframe\", true);\r\n var handle = $window.setTimeout(function() {\r\n cleanup(true);\r\n }, 5000);\r\n $window.addEventListener(\"message\", message, false);\r\n $scope.iframesrc = $sce.trustAsResourceUrl(result.url_connection + \"&prompt=none\");\r\n } else {\r\n $window.location = result.url_connection;\r\n }\r\n })\r\n .catch(function (err) {\r\n _pushErreur(erreur.creer(PORTAIL_DESCRIPTION_INVALIDE, null, portail, err));\r\n });\r\n };\r\n \r\n function _validateConnexion (data) {\r\n var reconnexion = true; // On kill d'office les sessions FWK précédentes (sinon, cookie.get(\"portailReconnexion\"))\r\n return operisWSServer.validateConnexionPortailComplete(\r\n cookie.get(\"portail\"),\r\n $window.encodeURIComponent(connexionPortail.extractUrlPath()),\r\n connexionPortail.encodedStateParams(),\r\n data,\r\n reconnexion,\r\n cookie.get(\"rapprochement\"),\r\n\t\t\t\tlocalStorage.getItem(\"nonce\"))\r\n .then(function () {\r\n // Nettoyage des erreurs de session déjà connectée\r\n if(cookie.get(\"portailReconnexion\")) {\r\n $scope.erreursParCode['01007'] = [];\r\n $scope.sessionsFermees = true;\r\n }\r\n // Nettoyage des cookies\r\n _cleanupCookies();\r\n \r\n if (cookie.get(\"portailIframeError\") || !config.$config.portail.auto) {\r\n cookie.remove(\"portailIframeError\");\r\n // Supprime les paramètres ajoutés lors de la connexion directe par portail\r\n var href = connexionPortail.extractUrlPath() + \"?\" + connexionPortail.extractOriginalParams();\r\n\t\t\t\t\t$window.location.href = href;\r\n }\r\n $modalInstance.close();\r\n },\r\n function (erreurs) {\r\n if(cookie.get(\"portailReconnexion\")) {\r\n $scope.erreursParCode['01007'] = [];\r\n }\r\n cookie.remove(\"portailReconnexion\");\r\n \r\n for (var i = 0; i < erreurs.length; i++) {\r\n _pushErreur(erreurs[i]);\r\n }\r\n // Session déjà connectée...\r\n var erreursSession = $scope.erreursParCode['01007'];\r\n if (erreursSession && erreursSession.length > 0){\r\n var reponse = confirm(\"Voulez-vous déconnecter la session en cours et tenter une reconnexion ?\");\r\n if (reponse) {\r\n cookie.set(\"portailReconnexion\", true);\r\n // Le jeton n'est plus valide après la première vérification\r\n // Il faut rejouer toute la cinématique de connexion\r\n return $scope.connexionPortail(portail, cookie.get(\"portailIframe\"));\r\n }\r\n }\r\n });\r\n };\r\n \r\n // On interroge la description des portails dès le chargement de la page\r\n operisWSServer.portailsComplete()\r\n .then(function (portails) {\r\n $scope.portailsDescription = true;\r\n \r\n if(portails == null) {\r\n return;\r\n }\r\n \r\n $scope.portails = portails;\r\n \r\n // Analyse des paramètres en entrée\r\n var params = connexionPortail.extractUrlParams();\r\n \r\n // Si pas en déconnexion\r\n if (!cookie.get(LOGOUT_STATE)) {\r\n if (\r\n // Si portail unique\r\n (Object.keys($scope.portails).length == 1\r\n // et connexion auto ou rapprochement\r\n && (config.$config.portail.auto || cookie.get(\"rapprochement\")))\r\n // Ou demande de connexion explicite par portail spécifique\r\n || params[\"byPortail\"]\r\n ) {\r\n if (!cookie.get(\"portailIframe\") && !cookie.get(\"portailIframeError\")) {\r\n // Si pas dans une iframe et pas d'erreur, connexion dans une iframe\r\n $scope.connexionPortail(Object.keys($scope.portails)[0], true);\r\n } // Si dans une iframe ou erreur, on laisse la validation se dérouler\r\n }\r\n }\r\n })\r\n .catch(function (err) {\r\n $scope.portailsDescription = true;\r\n _pushErreur(erreur.creer(PORTAILS_DESCRIPTION_INVALIDE, null, err));\r\n })\r\n .finally(function () {\r\n // Analyse des paramètres de retour\r\n var params = connexionPortail.extractUrlParams();\r\n \r\n if(params[\"state\"]) {\r\n // Désérialisation du state\r\n var callbackParameters = decodeURIComponent(params[\"state\"]);\r\n var splitedParams = connexionPortail.splitParams(callbackParameters);\r\n \r\n if(splitedParams[\"state\"]) {\r\n // Si le state désérialisé contient un state,\r\n // on remplace le state par le state après désérialisation\r\n params[\"state\"] = splitedParams[\"state\"];\r\n }\r\n }\r\n \r\n // State Logout\r\n var logoutState = cookie.get(LOGOUT_STATE);\r\n if(logoutState && params[\"state\"] == logoutState) {\r\n var href = connexionPortail.extractUrlPath() + \"?\" + connexionPortail.extractOriginalParams();\r\n $window.location.href = href;\r\n return;\r\n }\r\n \r\n var portail = cookie.get(\"portail\");\r\n if (portail) {\r\n // On est en retour d'un portail\r\n if(!$scope.portails || !$scope.portails.hasOwnProperty(portail)) {\r\n _pushErreur(erreur.creer(PORTAIL_UNKNOWN, null, portail));\r\n _cleanupCookies();\r\n return;\r\n }\r\n \r\n \r\n // Erreurs\r\n if(params.hasOwnProperty(\"error\") || params.hasOwnProperty(\"error_description\")) {\r\n if (cookie.get(\"portailIframe\")) {\r\n $window.parent.postMessage(\"iframeError\", $window.location.protocol + \"//\" + $window.location.host);\r\n } else {\r\n _pushErreur(erreur.creer(PORTAIL_AUTHORIZE_ERROR, null, params[\"error\"], params[\"error_description\"]));\r\n _cleanupCookies();\r\n return;\r\n }\r\n }\r\n \r\n // State Login\r\n var state = cookie.get(\"portailState\");\r\n if(!params[\"state\"] || !state) {\r\n // Pas de state en params ou en cookie, on s'arrête\r\n _cleanupCookies();\r\n return;\r\n }\r\n \r\n if(params[\"state\"] != state) {\r\n _pushErreur(erreur.creer(PORTAIL_UNVALID_STATE, null, \"state\"));\r\n _cleanupCookies();\r\n return;\r\n }\r\n \r\n \r\n var data = params[\"code\"]; \r\n if($scope.portails[portail].hasOwnProperty(\"uidFieldSession\")) {\r\n data += \";\" + params[\"session_state\"];\r\n }\r\n \r\n if(!data) {\r\n if (cookie.get(\"portailIframe\")) {\r\n $window.parent.postMessage(\"iframeError\", $window.location.protocol + \"//\" + $window.location.host);\r\n } else {\r\n _pushErreur(erreur.creer(PORTAIL_EMPTY_ANSWER, null, portail, \"code\"));\r\n _cleanupCookies();\r\n return;\r\n }\r\n } else {\r\n if (cookie.get(\"portailIframe\")) {\r\n $window.parent.postMessage(data, $window.location.protocol + \"//\" + $window.location.host);\r\n } else {\r\n // Déclenchement de la connexion via portail\r\n return _validateConnexion(data);\r\n }\r\n }\r\n }\r\n });\r\n }]);","/**\r\n * @version 1.0b\r\n * @copyright 2015 Operis\r\n * @Author Laurent Dorie, Operis\r\n */\r\n\r\n'use strict';\r\n\r\nangular.module('fr.operis.moteurV4.composants.OpFormulaire', ['fr.operis.moteurV4.communication.OperisWSServer',\r\n 'fr.operis.moteurV4.utils.GenerationFormulaire',\r\n 'fr.operis.moteurV4.utils.GestionActionFormulaire',\r\n 'fr.operis.moteurV4.utils.RequeteFichier',\r\n 'fr.operis.moteurV4.modele.Modele',\r\n 'fr.operis.moteurV4.utils.Conversion',\r\n 'fr.operis.moteurV4.composants.OpPopupAjoutElement',\r\n 'fr.operis.moteurV4.composants.OpModalImage'])\r\n\r\n .directive('opFormulaire',\r\n ['fr.operis.moteurV4.communication.OperisWSServer',\r\n 'fr.operis.moteurV4.communication.OperisWSServer.SEPARATEUR_NIVEAU_1',\r\n 'fr.operis.moteurV4.utils.GenerationFormulaire',\r\n 'fr.operis.moteurV4.utils.GestionActionFormulaire',\r\n 'fr.operis.moteurV4.utils.GestionGrilleElementPrincipal',\r\n 'fr.operis.moteurV4.utils.Conversion',\r\n 'fr.operis.moteurV4.modele.Modele.SCOPE_NOM',\r\n 'fr.operis.moteurV4.modele.Modele.SCOPE_DESCRIPTIONS',\r\n 'fr.operis.moteurV4.modele.Modele.SCOPE_CLE_PRIMAIRE',\r\n 'fr.operis.moteurV4.modele.Modele.SCOPE_CLE_ETRANGERE',\r\n 'fr.operis.moteurV4.modele.Modele.SCOPE_ACTION',\r\n 'fr.operis.moteurV4.modele.Modele.SCOPE_CHAMPS',\r\n 'fr.operis.moteurV4.modele.Modele.SCOPE_GRILLES',\r\n 'fr.operis.moteurV4.modele.Modele.SCOPE_TYPE',\r\n 'fr.operis.moteurV4.modele.Modele.SCOPE_LONGUEUR_MAX',\r\n 'fr.operis.moteurV4.modele.Modele.SCOPE_LIBELLE',\r\n 'fr.operis.moteurV4.modele.Modele.SCOPE_VISIBLE',\r\n 'fr.operis.moteurV4.modele.Modele.SCOPE_REPRESENTATION',\r\n 'fr.operis.moteurV4.modele.Modele.SCOPE_TYPE_INTERACTION',\r\n 'fr.operis.moteurV4.modele.Modele.SCOPE_TYPE_COMPLEXE',\r\n 'fr.operis.moteurV4.modele.Modele.SCOPE_REF_ETRANGERE',\r\n 'fr.operis.moteurV4.modele.Modele.SCOPE_NOM_GROUPE',\r\n '$compile',\r\n '$http',\r\n '$q',\r\n '$modal',\r\n 'fr.operis.moteurV4.composants.OpPopupAjoutElementControleur.TYPE_POPUPAJOUT',\r\n 'fr.operis.moteurV4.composants.OpPopupAjoutElementControleur.TYPE_POPUPSUPPRESSION',\r\n 'fr.operis.moteurV4.utils.RequeteFichier',\r\n 'fr.operis.moteurV4.utils.RequeteReferentiel',\r\n\t\t\t'fr.operis.moteurV4.utils.Habilitation',\r\n 'fr.operis.moteurV4.utils.ModuleInfos',\r\n\t\t\t'fr.operis.operia.utils.ongletsService',\r\n 'fr.operis.moteurV4.utils.Config',\r\n '$window',\r\n '$timeout',\r\n 'fr.operis.operia.services.modulesActifsService',\r\n\t\t\t'fr.operis.moteurV4.composants.OpPopupAlerte',\r\n function (serveur,\r\n SEPARATEUR_NIVEAU_1,\r\n generateurFormulaire,\r\n gestionnaireActionFormulaire,\r\n gestionGrilleElementPrincipal,\r\n conversion,\r\n SCOPE_NOM,\r\n SCOPE_DESCRIPTIONS,\r\n SCOPE_CLE_PRIMAIRE,\r\n SCOPE_CLE_ETRANGERE,\r\n SCOPE_ACTION,\r\n SCOPE_CHAMPS,\r\n SCOPE_GRILLES,\r\n SCOPE_TYPE,\r\n SCOPE_LONGUEUR_MAX,\r\n SCOPE_LIBELLE,\r\n SCOPE_VISIBLE,\r\n SCOPE_REPRESENTATION,\r\n SCOPE_TYPE_INTERACTION,\r\n SCOPE_TYPE_COMPLEXE,\r\n SCOPE_REF_ETRANGERE,\r\n SCOPE_NOM_GROUPE,\r\n $compile,\r\n $http,\r\n $q,\r\n $modal,\r\n TYPE_POPUPAJOUT,\r\n TYPE_POPUPSUPPRESSION,\r\n requetefichier,\r\n requetereferentiel,\r\n\t\t\t\t habilitation,\r\n moduleInfos,\r\n\t\t\t\t ongletsService,\r\n $config,\r\n $window,\r\n $timeout,\r\n modulesActifsService,\r\n\t\t\t\t opPopupAlerte) {\r\n return {\r\n restrict: 'E',\r\n scope:{\r\n opName:'@',\r\n opVueFormulaire:'=',\r\n opTable:'=',\r\n opSauvegarde:'=',\r\n opIsLecture:'=',\r\n opGrillesFormulaire: '=',\r\n opListesFormulaire: '=',\r\n opIsOpen: '=',\r\n isFormulaireRecherche: '=',\r\n opOnglet:'=',\r\n finchargement:'&',\r\n opSectionDroiteVisible: '=?',\r\n onDemandeActivite:'&'\r\n },\r\n transclude: false,\r\n replace: false,\r\n controller: ['$scope','$element','$attrs',\r\n function($scope,$element,$attrs) {\r\n\r\n // Liste des noms d'ecrans, des correspondance actions/ecrans et des vues formulaires\r\n $scope.nomModule;\r\n $scope.identifiant;\r\n $scope.nomEcran = [];\r\n $scope.listeEcran = [];\r\n $scope.correspondanceActionEcran = {};\r\n $scope.vueFormulaire = {};\r\n $scope.cloneScope;\r\n $scope.champs;\r\n $scope.grilles;\r\n $scope.opOnglet;\r\n $scope.actionsPreSauvegarde = [];\r\n\r\n $scope.getIdEntite = function(){\r\n return $scope.vueFormulaire.identifiant;\r\n };\r\n\r\n\r\n /**\r\n * Fonction d'ajout de vueFormulaire\r\n * @param {string} template template de la vue,\r\n * @param {String} nomEcran nom d'écran,\r\n * */\r\n $scope.ajoutVueFormulaire = function(template,nomEcran){\r\n $scope.listeEcran.push(nomEcran);\r\n $scope.form = {}\r\n $scope.vueFormulaire[nomEcran] = $compile(template)($scope.cloneScope);\r\n $element.append($scope.vueFormulaire[nomEcran]);\r\n\r\n $timeout(function(){\r\n if (!angular.isNullOrUndefined($scope.form[\"form_\" + nomEcran]) &&\r\n !angular.isNullOrUndefined($scope.form[\"form_\" + nomEcran].$setPristine)) {\r\n $scope.form[\"form_\" + nomEcran].$setPristine();\r\n $scope.opVueFormulaire.vueModifie = $scope.form[\"form_\" + nomEcran];\r\n }\r\n },0);\r\n };\r\n\r\n /**\r\n * Fonction de suppression de vue formulaire\r\n * @param {String} nomEcran nom d'écran\r\n * */\r\n $scope.suppressionVueFormulaire = function(nomEcran){\r\n // Retirer l'écran du formulaire de la liste des noms d'écran\r\n if ( $scope.listeEcran.indexOf(nomEcran) !== -1 ){\r\n $scope.listeEcran.splice($scope.listeEcran.indexOf(nomEcran),1);\r\n }\r\n\r\n // Retirer l'élément de la DOM\r\n var idFormulaire = $scope.vueFormulaire[nomEcran][0].id;\r\n return angular.element(document.getElementById(idFormulaire)).remove();\r\n };\r\n\r\n /**\r\n * Fonction d'initialisation des vues formulaires\r\n * */\r\n $scope.viderVueFormulaire = function(){\r\n // Suppression du scope formulaire et de ses fils\r\n if ( $scope.cloneScope )\r\n $scope.cloneScope.$destroy();\r\n $scope.cloneScope = $scope.$new();\r\n\r\n $scope.listeEcran = [];\r\n $scope.correspondanceActionEcran = {};\r\n $scope.vueFormulaire={};\r\n\r\n // Suppression des formulaires\r\n $element.html('');\r\n $compile($element.contents())($scope.cloneScope);\r\n };\r\n\r\n /**\r\n * Fonction de chargement de formulaire\r\n * @param {ecran} Ecran\r\n * @param {identifiant} identifiant\r\n */\r\n $scope.chargementFormulaire = function(module,ecran,identifiant){\r\n serveur.chargement(module,$scope,ecran,identifiant)\r\n .then(function (retourChargement){\r\n var nomFormulaire = $scope.opName;\r\n if (angular.isNullOrUndefined(nomFormulaire)) {\r\n nomFormulaire = ecran;\r\n }\r\n\r\n // Si ecran de document chargement des vignettes\r\n var trigramme = moduleInfos.getInfo(module, \"MOD_TRIGRAMME\"), entite = {};\r\n\r\n // Mantis 6029 Vignettes non chargés dans Operia mobile\r\n var mobile = (serveur.isMobile()) ? \"_M\" : \"\";\r\n\r\n if ( ecran == (trigramme + mobile + \"_DOCUMENTS\" )){\r\n var nomTableDocument = trigramme + \"_DOCUMENT\" ;\r\n if (!angular.isNullOrUndefined($scope.grilles[nomTableDocument])\r\n && $scope.grilles[nomTableDocument].length > 0) {\r\n $scope.grilles[nomTableDocument].map(function (item) {\r\n requetefichier.chargementVignette( module, $scope, item);\r\n })\r\n }\r\n } else if (ecran.indexOf(\"DOCUMENTS_LIES\") != -1) {\r\n // Mantis 5921 Gestion documents éléments liés\r\n var nomTableDocumentLie = \"VL_\" + trigramme + \"_DOCUMENT_LIE\" ;\r\n if (!angular.isNullOrUndefined($scope.grilles[nomTableDocumentLie])\r\n && $scope.grilles[nomTableDocumentLie].length > 0) {\r\n $scope.grilles[nomTableDocumentLie].map(function (item) {\r\n requetefichier.chargementVignette(module, $scope, item);\r\n })\r\n }\r\n }\r\n\r\n // Si ecran de fiche saisie ou synthese\r\n if ( ecran == (trigramme + mobile + \"_FICHE\") ){\r\n requetefichier.chargementVignettePrincipale( module, $scope, $scope.identifiant)\r\n .then(function(vignette){\r\n if ( angular.isNullOrUndefined(vignette.nom))\r\n $scope[\"vignettePrincipale\"] = './img/default/'+ module.toLowerCase() +'.jpg';\r\n else if ( vignette.type.toUpperCase().indexOf(\"IMAGE\")!=-1 )\r\n $scope.vignettePrincipale = \"data:image/png;base64,\" + vignette.valeur;\r\n else {\r\n var pos = vignette.nom.lastIndexOf(\".\");\r\n var fileExtention = vignette.nom.slice(pos + 1);\r\n $scope.vignettePrincipale = './img/applicationtype/'+ fileExtention +'.svg';\r\n }\r\n });\r\n }\r\n\r\n var isFormulaireRecherche = angular.isNullOrUndefined($scope.isFormulaireRecherche)?false:$scope.isFormulaireRecherche;\r\n\r\n var retourGenerateur = generateurFormulaire.creerTemplate($scope,\r\n $scope.opVueFormulaire.nomModule,\r\n retourChargement,\r\n\t\t\t\t\t\t\t\t\t\t ecran,\r\n nomFormulaire, //$scope.opName,\r\n 'gererActionFormulaire',\r\n $scope.opIsLecture,\r\n true,\r\n $scope.opIsOpen,\r\n isFormulaireRecherche\r\n );\r\n $scope.ajoutVueFormulaire(retourGenerateur.template,ecran);\r\n $scope.gererActionFormulaire(retourGenerateur.actions);\r\n\r\n // Attacher $scope.descriptions, $scope.champs et $scope.grilles\r\n if (angular.isNullOrUndefined($scope.opVueFormulaire.descriptions)) {\r\n $scope.opVueFormulaire.descriptions = $scope.descriptions;\r\n }\r\n\r\n $scope.opVueFormulaire.champs = $scope.champs;\r\n $scope.opVueFormulaire.grilles = $scope.grilles;\r\n $scope.opVueFormulaire.listes = $scope.listes;\r\n\r\n if ( !angular.isNullOrUndefined($scope.finchargement) )\r\n $scope.finchargement({scope:$scope});\r\n });\r\n };\r\n\r\n $scope.recharger = function(){\r\n $scope.viderVueFormulaire();\r\n $scope.chargementFormulaire($scope.nomModule, $scope.nomEcran, $scope.identifiant);\r\n };\r\n\r\n $scope.editerCoordonnees = function(model) {\r\n if ($window.matchMedia(\"(max-width: 767px)\").matches){\r\n $scope.opOnglet.masquerSectionGauche();\r\n $scope.opOnglet.afficherSectionDroite();\r\n } else {\r\n $scope.opOnglet.afficherSectionDroite();\r\n }\r\n\r\n $scope.opOnglet.afficherOutils('cartographie');\r\n $scope.opOnglet.modelCarto = model;\r\n $scope.opOnglet.editionCarto = true;\r\n };\r\n\r\n /**\r\n * Mantis 6194 Contrôle des habilitations pour les liens inter-modules\r\n * @param {String} aNomModule\r\n\t\t\t\t\t\t * @param {String} aMapEntite\r\n * @param {String} aModeleNom\r\n * @param {Numeric} aIndex\r\n * @param {String} aType\r\n\t\t\t\t\t\t * @returns {boolean}\r\n */\r\n $scope.habilitationLienModule = function(aNomModule, aMapEntite, aModeleNom, aIndex, aType) {\r\n var module = modulesActifsService.getModule(aNomModule);\r\n if (!angular.isNullOrUndefined(module)) {\r\n var type, nomTable, modele, descriptionChamps;\r\n\r\n if (aType === \"CHAMPS\") {\r\n descriptionChamps = aModeleNom.split('.');\r\n type = descriptionChamps[0];\r\n nomTable = descriptionChamps[1].replace('[$index]','');\r\n\r\n if (type === \"grilles\")\r\n modele = $scope[type][nomTable][aIndex];\r\n else\r\n modele = $scope[type][nomTable]\r\n } else {\r\n modele = aModeleNom;\r\n }\r\n\r\n var nomColCle = module.MOD_ENTITE.valeur;\r\n var nomCoCleValeur = (!angular.isNullOrUndefined(aMapEntite) && (aMapEntite !== \"\")) ? aMapEntite : nomColCle;\r\n\r\n return !angular.isNullOrUndefined(modele[nomCoCleValeur].valeur);\r\n } else {\r\n return false;\r\n }\r\n };\r\n\r\n /**\r\n * Fonction d'ouverture d'entite dans un autre onglet\r\n * @param {String} aNomModule\r\n * @param {String} aMapEntite\r\n * @param {String} aModeleNom\r\n * @param {Numeric} aIndex\r\n * @param {String} aType\r\n */\r\n $scope.linkButtonOuvrirActivite_click = function(aNomModule, aMapEntite, aModeleNom, aIndex, aType) {\r\n var module = modulesActifsService.getModule(aNomModule);\r\n\r\n if (!angular.isNullOrUndefined(module)) {\r\n var type, nomTable, modele, descriptionChamps;\r\n var entite = (aMapEntite !== \"\") ? module.MOD_ENTITE.valeur + '#' + aMapEntite : module.MOD_ENTITE.valeur;\r\n\r\n if (aType === \"CHAMPS\") {\r\n descriptionChamps = aModeleNom.split('.');\r\n type = descriptionChamps[0];\r\n nomTable = descriptionChamps[1].replace('[$index]','');\r\n\r\n if (type === \"grilles\")\r\n modele = $scope[type][nomTable][aIndex];\r\n else\r\n modele = $scope[type][nomTable]\r\n } else {\r\n modele = aModeleNom;\r\n }\r\n\r\n // Mantis 6194 Contrôler habilitations pour le module avant son ouverture\r\n serveur.chargement(\"Operia\", $scope, \"OPE_RechercheUtilisateurServiceGest\", null).then(function (retourChargement) {\r\n $scope.recherche[\"OPE_RechercheUtilisateurServiceGest\"](1000).then(function (retourRecherche) {\r\n var servicegestionnaire = {};\r\n for (var indice = 0; indice < $scope.grilles.VL_HABIL_SERVICEGEST_DROIT.length; indice++){\r\n servicegestionnaire[$scope.grilles.VL_HABIL_SERVICEGEST_DROIT[indice].ID_SERVICEGESTIONNAIRE.valeur]\r\n = $scope.grilles.VL_HABIL_SERVICEGEST_DROIT[indice].DROITACCES.valeur;\r\n }\r\n\r\n // Initialisation service gestionnaire par défaut\r\n var idServiceParDefaut;\r\n if (!angular.isNullOrUndefined($scope.listes.VL_OPE_HABIL_UTILISATEUSERVGES) && $scope.listes.VL_OPE_HABIL_UTILISATEUSERVGES.length > 0) {\r\n idServiceParDefaut = $scope.listes.VL_OPE_HABIL_UTILISATEUSERVGES[0].IDENT_SERVICEGESTIONNAIRE.valeur;\r\n }\r\n\r\n habilitation.initialisationHabilitationServiceGestionnaire(servicegestionnaire, idServiceParDefaut);\r\n\r\n // Ajout de l'onglet en mémoire\r\n ongletsService.ajouterOnglet($scope, module, module.MOD_ENTITE.valeur, modele[module.MOD_ENTITE.valeur].valeur, true, true, true).then(function (onglet) {\r\n var trigramme = onglet.moduleTrigramme;\r\n var mobilite = serveur.isMobile()?'_M':'';\r\n var ecranServiceGestionnaire = trigramme + mobilite + '_SAUVEGARDE_SERVICEGESTIONNAIRE';\r\n var identite = {};\r\n identite[module.MOD_ENTITE.valeur] = modele[module.MOD_ENTITE.valeur].valeur;\r\n\r\n serveur.chargement(onglet.moduleNom, $scope, ecranServiceGestionnaire, identite).then(function (retourChargement) {\r\n if (!angular.isNullOrUndefined(retourChargement[0])) {\r\n var idService = $scope.champs[retourChargement[0][0]].ID_SERVICEGESTIONNAIRE.valeur;\r\n var droitAcces = (angular.isNullOrUndefined(idService)) ? 1 : habilitation.habilitationServiceGestionnaire()[idService];\r\n\r\n if (droitAcces > 0) {\r\n // Ouvrir l'onglet\r\n $scope.onDemandeActivite({idaction: module, entite: entite, modele: modele});\r\n } else {\r\n opPopupAlerte.creer('warning', \"Habilitations insuffisantes pour accèder à la fiche \" + aNomModule.toLowerCase() + \".\", true, false);\r\n }\r\n } else {\r\n opPopupAlerte.creer('warning', \"Habilitations insuffisantes pour accèder à la fiche \" + aNomModule.toLowerCase() + \".\", true, false);\r\n }\r\n }, function () {\r\n //opPopupAlerte.creer('warning', \"Habilitations insuffisantes pour accèder à la fiche \" + aNomModule.toLowerCase() + \".\", true, false);\r\n });\r\n });\r\n })\r\n });\r\n } else {\r\n opPopupAlerte.creer('warning', \"Habilitations insuffisantes pour accèder à la fiche \" + aNomModule.toLowerCase() + \".\", true, false);\r\n }\r\n };\r\n\r\n /**\r\n * Fonction permettant de marquer le formulaire comme modifié\r\n */\r\n $scope.setFormulaireDirty = function() {\r\n if (!angular.isNullOrUndefined($scope.opVueFormulaire.vueModifie)) {\r\n $scope.opVueFormulaire.vueModifie.$pristine = false;\r\n }\r\n };\r\n\r\n /**\r\n * Afficher une entité dans un nouvel onglet (suite clique lien dans grille de synthèse)\r\n * @param {Object} module Module\r\n * @param {String} colCle Nom champ clé pour identifier l'entité à ouvrir\r\n * @param {Object} modeleEntite Modèle champ clé de l'entité à ouvrir\r\n */\r\n $scope.demandeDetailEntiteGrilleSynthese = function (module, colCle, modeleEntite) {\r\n $scope.$parent.$parent.ongletCtrl.demandeDetailEntite(module, colCle, modeleEntite);\r\n };\r\n\r\n /**\r\n * Fonction de suppression de formulaire\r\n * @param {ecran} Ecran\r\n */\r\n $scope.suppressionFormulaire = function(ecran){\r\n $scope.suppressionVueFormulaire(ecran);\r\n };\r\n\r\n /**\r\n * Fonction de sauvegarde de fichier de formulaire\r\n */\r\n $scope.sauvegardeFichierFormulaire = function(){\r\n // Sauvegarde des fichiers\r\n var deferred = $q.defer();\r\n if ( !angular.isNullOrUndefined( $scope.estFormulaireFichier ) ){\r\n requetefichier.executerFichier($scope,$scope.nomModule,$scope.identifiant, $scope.getFichiers())\r\n .then(function(reponse){\r\n deferred.resolve(reponse);\r\n },function(erreur){\r\n deferred.reject(erreur);\r\n });\r\n }\r\n else\r\n deferred.resolve();\r\n return deferred.promise;\r\n };\r\n\r\n /**\r\n * Fonction de suppression de fichier\r\n */\r\n $scope.suppressionFichier = function(){\r\n var deferred = $q.defer();\r\n\r\n // Suppression de fichier\r\n if ( !angular.isNullOrUndefined(requetefichier.getFichierSupprimes($scope))){\r\n requetefichier.suppressionFichier($scope,$scope.nomModule).then(function(reponse){\r\n deferred.resolve(reponse);\r\n },\r\n function(erreur){\r\n deferred.reject(erreur);\r\n });\r\n }\r\n else\r\n deferred.resolve();\r\n\r\n return deferred.promise;\r\n };\r\n\r\n /**\r\n * Fonction de sauvegarde d'écrans\r\n */\r\n $scope.sauvegardeEcrans = function(){\r\n var deferred = $q.defer();\r\n\r\n var promises = [];\r\n for (var i=0;i<$scope.listeEcran.length;i++){\r\n promises.push($scope.sauvegarde[$scope.listeEcran[i]]());\r\n\r\n if (!angular.isNullOrUndefined($scope.form[\"form_\" + $scope.listeEcran[i]])) {\r\n $scope.form[\"form_\" + $scope.listeEcran[i]].$setPristine();\r\n }\r\n }\r\n $q.all(promises).then(function(reponses){\r\n // Vérification si on est en création\r\n var bCreation = false;\r\n for ( var nomIdentifiant in $scope.identifiant){\r\n if ( $scope.identifiant[nomIdentifiant].toString().length == 0 ){\r\n bCreation = true;\r\n break;\r\n }\r\n }\r\n\r\n if ( !angular.isNullOrUndefined(reponses) && reponses.length>0 && bCreation ){\r\n // dans le cas de création modification de la fonction de sauvegarde pour éviter des doublons\r\n $scope.identifiant = reponses[0];\r\n $scope.opVueFormulaire.identifiant = reponses[0];\r\n $scope.recharger();\r\n deferred.resolve($scope.identifiant);\r\n }\r\n\r\n deferred.resolve($scope.identifiant);\r\n },function(erreurs){\r\n deferred.reject(erreurs);\r\n })\r\n\r\n\r\n return deferred.promise;\r\n };\r\n\r\n\r\n /**\r\n * Fonction de sauvegarde de formulaire\r\n */\r\n $scope.sauvegardeFormulaire = function(){\r\n var deferred = $q.defer();\r\n\r\n // Action calcul avant sauvegarde (exemple recherche numéro)\r\n if ( $scope.actionsPreSauvegarde.length>0 ){\r\n gestionnaireActionFormulaire.gererActionPreSauvegarde(\r\n $scope,\r\n $scope.opVueFormulaire.nomModule,\r\n $scope.actionsPreSauvegarde\r\n ).then(function(reponse){\r\n $scope.sauvegardeFormulaireSuite().then(function(reponse){\r\n deferred.resolve(reponse);\r\n },function(erreur){\r\n deferred.reject(erreur);\r\n });\r\n },\r\n function(erreur){\r\n deferred.reject(erreur);\r\n });\r\n }\r\n else{\r\n $scope.sauvegardeFormulaireSuite().then(function(reponse){\r\n deferred.resolve(reponse);\r\n },function(erreur){\r\n deferred.reject(erreur);\r\n });\r\n }\r\n\r\n return deferred.promise;\r\n };\r\n\r\n /**\r\n * Fonction de sauvegarde de formulaire\r\n */\r\n $scope.sauvegardeFormulaireSuite = function(){\r\n var deferred = $q.defer();\r\n\r\n $scope.suppressionFichier().then(function(reponse){\r\n $scope.sauvegardeFichierFormulaire()\r\n .then(function(reponse){\r\n $scope.sauvegardeEcrans().then(function(reponse){\r\n // Suppression des fichiers ajoutées\r\n if ( !angular.isNullOrUndefined( $scope.estFormulaireFichier ) ){\r\n var fichiers = $scope.getFichiers();\r\n for ( var i = 0; i0 ){\r\n var actions = gestionnaireActionFormulaire.gererAction($scope,$scope.opVueFormulaire.nomModule,actions,\r\n $scope.correspondanceActionEcran,\r\n $scope.actionsPreSauvegarde,$attrs.opIsLecture)\r\n\r\n\r\n var ecranChargement = actions.ACHARGER;\r\n var ecranSuppression = actions.ASUPPRIMER;\r\n\r\n // Ecran Formulaire à ajouter\r\n for (var i=0;i 0\\\" tabindex=\\\"-1\\\" class=\\\"opmireattente\\\" ng-class=\\\"{\\n\" +\n \" full: (nbRequetesEnCoursModales > 0 || ouverte) && displayType == 'full',\\n\" +\n \" partial: (nbRequetesEnCoursModales > 0 || ouverte) && (displayType == 'partial' && !ouverte),\\n\" +\n \" partial_show: (nbRequetesEnCoursModales > 0 || ouverte) && (displayType == 'partial' && ouverte),\\n\" +\n \" none: (nbRequetesEnCoursModales > 0 || ouverte) && displayType == 'none'\\n\" +\n \" }\\\">
0 || ouverte}\\\">
0 || ouverte, ouverte: ouverte}\\\" op-autofocus=\\\"true\\\">

0\\\"> Traitements en cours

Traitements terminés

{{requete.libelle}}

En cours depuis Terminée en {{requete.duree | intervalle:\\\"m 'minute' s 'seconde' .SSS 'milliseconde'\\\"}}
{{requete.commentaire}}
{{requete.debut | date:\\\"HH'h' mm'm' ss.sss's'\\\"}} {{requete.fin | date:\\\"HH'h' mm'm' ss.sss's'\\\"}}
\");\n}]);\n","/**\r\n * @version 1.0b\r\n * @copyright 2015 Operis\r\n * @Author Pierre-Emmanuel Balageas, Alcer - Operis\r\n */\r\n\r\n/**\r\n * Définit les informations d'une requête.\r\n * @typedef {Object} fr.operis.moteurV4.composants.OpMireAttente.Requete\r\n * @property {Number} id - Identifiant interne de la requête.\r\n * @property {String} libelle - Libellé de la requête.\r\n * @property {String} commentaire - Commentaire de la requête.\r\n * @property {boolean} modale - Indique le caractère modal de la requête (valeur par défaut : true).\r\n * @property {Date} debut - Date de début de la requête.\r\n * @property {Date} fin - Date de fin de la requête.\r\n * @property {Number} progression - Progression de la requête.\r\n * @property {Number} duree - Durée de la requête.\r\n * @property {ng.Promise} dureePromise - Promesse sur le calcul à intervalles réguliers de la durée de la requête.\r\n * @property {String} statut - Statut de la requête.\r\n * @property {boolean} ouverte - Indique si la requête affiche ses informations.\r\n * @property {Function} pressePapier - Copie la requête dans le presse papier.\r\n * @property {Function} annuler - Annule la requête si elle est en cours, la supprime de la liste sinon.\r\n */\r\n\r\n'use strict';\r\n\r\nangular.module('fr.operis.moteurV4.composants.OpMireAttente', [\r\n 'ui.bootstrap',\r\n 'ngAnimate',\r\n 'fr.operis.moteurV4.directives.OpSimpleFormat',\r\n 'fr.operis.moteurV4.filtres.Intervalle'])\r\n .constant('fr.operis.moteurV4.composants.OpMireAttente.DISPLAY_FULL', 'full')\r\n .constant('fr.operis.moteurV4.composants.OpMireAttente.DISPLAY_PARTIAL', 'partial')\r\n .constant('fr.operis.moteurV4.composants.OpMireAttente.DISPLAY_NONE', 'none')\r\n .directive('opMireattente',\r\n function () {\r\n return {\r\n restrict: 'EA',\r\n replace: true,\r\n templateUrl: 'moteur/composants/OpMireAttente.html'\r\n };\r\n })\r\n .service('fr.operis.moteurV4.composants.OpMireAttente', [\r\n '$rootElement'\r\n , '$rootScope'\r\n , '$compile'\r\n , '$interval'\r\n , '$timeout'\r\n , '$window'\r\n , 'fr.operis.moteurV4.composants.OpMireAttente.DISPLAY_FULL'\r\n , 'fr.operis.moteurV4.composants.OpMireAttente.DISPLAY_PARTIAL'\r\n , 'fr.operis.moteurV4.composants.OpMireAttente.DISPLAY_NONE'\r\n , function ($rootElement, $rootScope, $compile, $interval, $timeout, $window, DISPLAY_FULL, DISPLAY_PARTIAL, DISPLAY_NONE) {\r\n var scope = $rootScope.$new(true),\r\n element = $compile('
')(scope),\r\n id = 0;\r\n\r\n // Ajout de la mire d'attente à l'application\r\n if ($rootElement[0].localName === \"html\") {\r\n angular.element(document.body).append(element);\r\n } else {\r\n $rootElement.append(element);\r\n }\r\n\r\n // Requêtes de la mire d'attente\r\n scope.requetes = [];\r\n // Nombre de requêtes en cours d'exécution\r\n scope.nbRequetesEnCours = 0;\r\n // Nombre de requêtes modale en cours d'exécution\r\n scope.nbRequetesEnCoursModales = 0;\r\n // Type d'affichage de la mire\r\n scope.displayType = DISPLAY_FULL;\r\n \r\n // Vrai si la mire d'attente est ouverte\r\n scope.ouverte = false;\r\n // Méthode pour ouvrir ou fermer la mire d'attente\r\n scope.switch = function () {\r\n this.ouverte = !this.ouverte;\r\n nettoyer();\r\n };\r\n // Valeur par défaut du max des barres de progression\r\n scope.progressionMax = 100;\r\n\r\n /**\r\n * Fonction pour nettoyer les requêtes terminées si la mire n'est pas ouverte\r\n * @returns {void}\r\n */\r\n var nettoyer = function () {\r\n if (!scope.ouverte) {\r\n var requetes = [];\r\n for (var indice = 0; indice < scope.requetes.length; ++indice) {\r\n if (scope.requetes[indice].fin === undefined) requetes.push(scope.requetes[indice]);\r\n }\r\n scope.requetes = requetes;\r\n }\r\n };\r\n\r\n this.definirAffichage = function (display) {\r\n if(!display || (display != DISPLAY_FULL && display != DISPLAY_PARTIAL && display != DISPLAY_NONE)) {\r\n scope.displayType = DISPLAY_FULL;\r\n return;\r\n }\r\n \r\n scope.displayType = display;\r\n }\r\n \r\n /**\r\n * Ajoute une requête à la mire d'attente.\r\n * @param {ng.IPromise} aPromise La promesse correspondant à la requête\r\n * @param {fr.operis.moteurV4.communication.InformationsRequete} aRequeteInformations Les informations de la requête\r\n * @returns {void}\r\n */\r\n this.ajouterRequete = function (aPromise, aRequeteInformations, aDisplay) {\r\n \r\n this.definirAffichage(aDisplay);\r\n \r\n ++scope.nbRequetesEnCours;\r\n\r\n var requete = {\r\n id: ++id,\r\n libelle: aRequeteInformations.libelle || ('Requête n°' + id),\r\n commentaire: aRequeteInformations.commentaire || '',\r\n modale: aRequeteInformations.estModale === false ? false : true,\r\n debut: new Date(),\r\n progression: 0,\r\n progressionTotale: 0,\r\n duree: 0,\r\n dureePromise: $interval(function () {\r\n requete.duree = ((new Date()).getTime() - requete.debut.getTime());\r\n requete.progression = (requete.duree / aPromise.timeout) * scope.progressionMax;\r\n }, 1000),\r\n statut: 'info',\r\n ouverte: false,\r\n pressePapier: function () {\r\n $window.prompt(\"Copier le texte : Ctrl+C, Entrer\", angular.toJson(this.erreur));\r\n },\r\n annuler: function () {\r\n if (this.fin === undefined) {\r\n this.fin = new Date();\r\n this.statut = 'warning';\r\n aPromise.annuler();\r\n } else {\r\n for (var indice = 0; indice < scope.requetes.length; ++indice) {\r\n if (scope.requetes[indice].id === this.id) {\r\n scope.requetes.splice(indice, 1);\r\n return;\r\n }\r\n }\r\n }\r\n }\r\n };\r\n if (requete.modale) ++scope.nbRequetesEnCoursModales;\r\n\r\n aPromise.then(function () {\r\n if (requete.fin === undefined) requete.statut = 'success';\r\n })\r\n .catch(function (erreur) {\r\n if (requete.fin === undefined) requete.statut = 'danger';\r\n requete.erreur = erreur;\r\n })\r\n .finally(function () {\r\n aPromise = null;\r\n requete.fin = new Date();\r\n requete.duree = requete.fin.getTime() - requete.debut.getTime();\r\n requete.progression = scope.progressionMax;\r\n $interval.cancel(requete.dureePromise);\r\n --scope.nbRequetesEnCours;\r\n if (requete.modale) --scope.nbRequetesEnCoursModales;\r\n scope.$evalAsync(nettoyer);\r\n });\r\n scope.requetes.push(requete);\r\n };\r\n }]);","/**\r\n * @version 2.0\r\n * @copyright 2015 Operis\r\n * @Author Laurent Dorie, Operis\r\n */\r\n\r\n'use strict';\r\n\r\nangular.module('fr.operis.moteurV4.composants.OpOnglet',['fr.operis.moteurV4.communication.OperisWSServer'])\r\n // Vue de recherche des actions fiches\r\n .service('opOngletService',['$modal','fr.operis.moteurV4.utils.ModuleInfos',\r\n 'fr.operis.moteurV4.communication.OperisWSServer',\r\n 'fr.operis.operia.utils.categoriemodule.ID_CATEGORIEMODULE_INVENTAIRE',\r\n function ($modal, moduleInfos, serveur, ID_CATEGORIEMODULE_INVENTAIRE) {\r\n\r\n this.basculerRecherche = function(onglet) {\r\n onglet.affichageRecherche = !onglet.affichageRecherche;\r\n };\r\n\r\n //Fonction qui permet d'afficher la section gauche\r\n this.afficherSectionGauche = function(onglet) {\r\n onglet.affichageSectionGauche = true;\r\n };\r\n\r\n //Fonction qui permet d'afficher la section droite\r\n this.afficherSectionDroite = function(onglet) {\r\n onglet.affichageSectionDroite = true;\r\n };\r\n\r\n //Fonction qui permet de masquer la section gauche\r\n this.masquerSectionGauche = function(onglet) {\r\n onglet.affichageSectionGauche = false;\r\n };\r\n\r\n //Fonction qui permet de masquer la section droite\r\n this.masquerSectionDroite = function(onglet) {\r\n onglet.affichageSectionDroite = false;\r\n };\r\n\r\n //Fonction qui permet de basculer la section gauche\r\n this.basculerSectionGauche = function(onglet) {\r\n if (onglet.affichageSectionGauche === undefined) {\r\n onglet.affichageSectionGauche = false;\r\n } else {\r\n onglet.affichageSectionGauche = !onglet.affichageSectionGauche;\r\n }\r\n };\r\n\r\n //Fonction qui permet de basculer la section droite\r\n this.basculerSectionDroite = function(onglet) {\r\n onglet.affichageSectionDroite = !onglet.affichageSectionDroite;\r\n\r\n // Si affichage de la fiche et ni action ni outil visible, il faut réafficher la synthèse\r\n if (onglet.affichageFiche && !onglet.affichageAction && !onglet.affichageOutils) {\r\n onglet.afficherResume();\r\n }\r\n };\r\n\r\n //Fonction qui permet de définir le type d'affichage de la section outils\r\n this.afficherOutils = function(onglet,type) {\r\n onglet.affichageOutils = type;\r\n\r\n // Si affichage d'un outil, il faut masquer la synthèse\r\n onglet.masquerResume();\r\n\r\n // Actualiser le planning\r\n if (type === \"planning\") {\r\n onglet.actualiserPlanningSectionDroite();\r\n }\r\n };\r\n\r\n //Fonction qui permet d'afficher le résumé\r\n this.afficherResume = function(onglet) {\r\n onglet.affichageResume = true;\r\n };\r\n\r\n //Fonction qui permet de masquer le résumé\r\n this.masquerResume = function(onglet) {\r\n onglet.affichageResume = false;\r\n };\r\n\r\n //Fonction qui permet d'afficher la fiche\r\n this.afficherFiche = function(onglet) {\r\n onglet.affichageFiche = true;\r\n };\r\n\r\n //Fonction qui permet de masquer la fiche\r\n this.masquerFiche = function(onglet) {\r\n onglet.affichageFiche = false;\r\n };\r\n\r\n //Fonction qui permet d'afficher le planning\r\n this.afficherPlanning = function(onglet) {\r\n onglet.affichagePlanning = true;\r\n };\r\n\r\n //Fonction qui permet de masquer le planning\r\n this.masquerPlanning = function(onglet) {\r\n onglet.affichagePlanning = false;\r\n onglet.fermerPlanningSectionDroite();\r\n };\r\n\r\n //Fonction qui permet d'afficher l'écran action\r\n this.afficherEcranAction = function(onglet) {\r\n onglet.affichageResume = false;\r\n onglet.affichageAction = true;\r\n };\r\n\r\n //Fonction qui permet de masquer l'écran action\r\n this.masquerEcranAction = function(onglet) {\r\n onglet.affichageAction = false;\r\n };\r\n\r\n //Fonction qui permet de basculer l'affichage du résumé\r\n this.basculerResume = function(onglet) {\r\n var masquerLesAutres = (!onglet.affichageResume);\r\n\r\n if (masquerLesAutres) {\r\n onglet.affichageFiche = false;\r\n onglet.affichagePlanning = false;\r\n onglet.fermerPlanningSectionDroite();\r\n onglet.affichageAction = false;\r\n }\r\n\r\n onglet.affichageResume = !onglet.affichageResume;\r\n };\r\n\r\n //Fonction qui permet de basculer l'affichage de la fiche\r\n this.basculerFiche = function(onglet) {\r\n var masquerLesAutres = (!onglet.affichageFiche);\r\n\r\n if (masquerLesAutres) {\r\n onglet.affichagePlanning = false;\r\n onglet.fermerPlanningSectionDroite();\r\n onglet.affichageResume = false;\r\n onglet.affichageAction = false;\r\n }\r\n\r\n onglet.affichageFiche = !onglet.affichageFiche;\r\n };\r\n\r\n //Fonction qui permet de basculer l'affichage de l'écran action\r\n this.basculerEcranAction = function(onglet) {\r\n var masquerLesAutres = (!onglet.affichageAction);\r\n\r\n if (masquerLesAutres) {\r\n onglet.affichageResume = false;\r\n onglet.affichagePlanning = false;\r\n onglet.fermerPlanningSectionDroite();\r\n onglet.affichageFiche = false;\r\n }\r\n\r\n onglet.affichageAction = !onglet.affichageAction;\r\n };\r\n\r\n // Fonction d'édition de la carto\r\n this.editerCoordonnees = function(onglet,model) {\r\n if ($window.matchMedia(\"(max-width: 767px)\").matches){\r\n onglet.masquerSectionGauche();\r\n onglet.afficherSectionDroite();\r\n } else {\r\n onglet.afficherSectionDroite();\r\n }\r\n\r\n onglet.afficherOutils('cartographie');\r\n onglet.modelCarto = model;\r\n onglet.editionCarto = true;\r\n };\r\n\r\n // Fonction d'edition de courrier\r\n this.editerDocument = function(onglet,selection) {\r\n var popupEditionDocument = $modal.open({\r\n templateUrl: 'moteur/composants/popup/OpPopupEdition.html',\r\n controller: 'fr.operis.moteurV4.composants.OpPopupEditionControleur',\r\n size: 'lg',\r\n resolve: {\r\n moduleNom: function () {\r\n return onglet.moduleNom;\r\n },\r\n selection: function () {\r\n return selection;\r\n },\r\n onglet:function(){\r\n return onglet;\r\n }\r\n }\r\n });\r\n };\r\n\r\n // Fonction de gestion des documents attachés\r\n this.gererDocumentsAttaches = function(onglet, selection, idDepuisSynthese) {\r\n var tableEntite = moduleInfos.getInfo(onglet.moduleNom, \"MOD_TABLEENTITE\");\r\n var entite = moduleInfos.getInfo(onglet.moduleNom, \"MOD_ENTITE\");\r\n\r\n if (onglet.affichageFiche || onglet.affichageResume){\r\n if ( angular.isNullOrUndefined(onglet.ongletCtrl.scopeFormulaire.identifiant[entite]) || onglet.ongletCtrl.scopeFormulaire.identifiant[entite]==\"\")\r\n return alert(\"Veuillez enregistrer au préalable le dossier\")\r\n }\r\n\r\n var popupGestionDocuments = $modal.open({\r\n templateUrl: 'moteur/composants/popup/OpPopupDocumentsAttaches.html',\r\n controller: 'fr.operis.moteurV4.composants.popup.OpPopupDocumentsAttachesControleur',\r\n size: 'lg',\r\n resolve: {\r\n moduleNom: function () {\r\n return onglet.moduleNom;\r\n },\r\n idAction: function () {\r\n return 7;\r\n },\r\n ecranNom: function () {\r\n return (moduleInfos.getInfo(onglet.moduleNom, \"MOD_TRIGRAMME\") + ((serveur.isMobile())?\"_M\":\"\") + '_DOCUMENTS');\r\n },\r\n identifiant: function () {\r\n var identifiant = {};\r\n var entiteNom = moduleInfos.getInfo(onglet.moduleNom, \"MOD_ENTITE\");\r\n\r\n // Mantis 5921 Bouton Document standard inactif en passant par un lien du résumé\r\n if (onglet.affichageFiche || (onglet.affichageResume && (!angular.isNullOrUndefined(idDepuisSynthese)) && idDepuisSynthese)) {\r\n identifiant[entite] = onglet.ongletCtrl.scopeFormulaire.identifiant[entite];\r\n } else {\r\n var idCategModule = moduleInfos.getInfo(onglet.moduleNom, \"ID_CATEGORIEMODULE\");\r\n if (idCategModule === ID_CATEGORIEMODULE_INVENTAIRE) {\r\n identifiant[entiteNom] = selection[0][entiteNom].valeur;\r\n } else {\r\n identifiant[\"ID_\" + onglet.moduleNom.replace(/Mobile/i, \"\").toUpperCase()] = selection[0][entiteNom].valeur;\r\n }\r\n }\r\n\r\n return identifiant;\r\n }\r\n }\r\n });\r\n };\r\n\r\n // Fonction d'affichage des messages\r\n this.afficherMessagerie = function(onglet,selection,onChangeEtat) {\r\n var popupMessagerie = $modal.open({\r\n templateUrl: 'moteur/composants/popup/OpPopupMessagerie.html',\r\n controller: 'fr.operis.moteurV4.composants.popup.OpPopupMessagerieControleur',\r\n size: 'lg',\r\n resolve: {\r\n onglet: function () {\r\n return onglet;\r\n },\r\n selection: function () {\r\n return selection;\r\n },\r\n onChangeEtat: function () {\r\n return onChangeEtat;\r\n }\r\n }\r\n });\r\n };\r\n\r\n // Fonction de récupération de l'écran d'édition d'une recherche\r\n this.getEcranEdition = function (aScope,aTableNom){\r\n var descriptionChamps, descriptionLien;\r\n\r\n if ( angular.isNullOrUndefined(aScope.descriptions[aTableNom]))\r\n return null;\r\n\r\n for (var i=0;i0 ){\r\n descriptionLien = descriptionChamps.lien.split('|');\r\n return descriptionLien[1];\r\n }\r\n }\r\n };\r\n\r\n /**\r\n * Fonction qui envoie le texte à afficher dans la partie CONTEXTE de l'onglet\r\n * @param {Object} Onglet en cours\r\n * @param {String} Contexte à afficher\r\n */\r\n this.definirTexteContextuel = function (aOnglet,aContexte){\r\n if ( !angular.isNullOrUndefined(aContexte) && aContexte.length > 0 )\r\n aOnglet.contexte = aContexte;\r\n else\r\n aOnglet.contexte = \"\";\r\n }\r\n }])\r\n\r\n .directive('opOnglet',\r\n ['$q', '$modal', '$ocLazyLoad', 'fr.operis.moteurV4.communication.OperisWSServer',\r\n 'opOngletService',\r\n 'ongletActifService',\r\n 'fr.operis.moteurV4.utils.Config',\r\n 'fr.operis.moteurV4.utils.Planning',\r\n 'fr.operis.moteurV4.utils.RequetePreSauvegardeFiche',\r\n 'fr.operis.moteurV4.utils.RequetePostSauvegardeFiche',\r\n 'fr.operis.moteurV4.utils.Habilitation',\r\n 'fr.operis.moteurV4.utils.ModuleInfos',\r\n 'fr.operis.moteurV4.composants.OpPopupAlerte',\t\r\n 'fr.operis.moteurV4.composants.popup.OpPopupEnregistrementFiche',\r\n '$timeout'\r\n ,function ($q, $modal, $ocLazyLoad, serveur,\r\n ongletService,\r\n ongletActifService,\r\n $config,\r\n utilsPlanning,\r\n requetePreSauvegardeFiche,\r\n requetePostSauvegardeFiche,\r\n habilitation,\r\n moduleInfos,\r\n opPopupAlerte,\t\t\t\t \r\n opPopupEnregistrementFiche,\r\n $timeout\r\n ) {\r\n return {\r\n restrict: 'E',\r\n replace:false,\r\n scope:{\r\n onglet:'='\r\n },\r\n template: function (element, attributs){\r\n var retour =''+\r\n '
'+\r\n '
'+\r\n '
    '+\r\n ''+\r\n '' +\r\n ''+\r\n ''+\r\n '
'+\r\n '
'+\r\n '
'+\r\n '
'+\r\n ''+\r\n '
'+\r\n ''+\r\n ''+\r\n ''+\r\n '
'+\r\n ''+\r\n '
'+\r\n '
'+\r\n ''+\r\n '
'+\r\n '
'+\r\n ''+\r\n '
'+\r\n ''+\r\n '
'+\r\n ''+\r\n '
'+\r\n ''+\r\n '
'+\r\n ''+\r\n '
'+\r\n ''+\r\n '
'+\r\n '
'+\r\n ''+\r\n '
'+\r\n '
'+\r\n ''+\r\n ''+\r\n '
'+\r\n '
'+\r\n '
'+\r\n '
';\r\n\r\n return retour;\r\n },\r\n controllerAs:'ongletCtrl',\r\n controller: ['$scope','$window',/*'$element',*/\r\n function($scope,$window/*,$element*/){\r\n var vm = this;\r\n\r\n // Description et données de recherche\r\n vm.listeEcranRecherche;\r\n vm.descriptionRecherche;\r\n vm.criteresRecherche; // Mantis 5979 Critères de recherche\r\n vm.donneesRecherche;\r\n\t\t\t\t\t\tvm.donneesListe;\r\n\r\n vm.descriptionCarto;\r\n vm.donneesCarto;\r\n vm.selectionRecherche;\r\n vm.selectionRechercheCle;\r\n vm.filtre;\r\n vm.selectionnerTout;\r\n vm.pageChanged;\r\n vm.retourRechercheOnglet;\r\n vm.actualiser;\r\n vm.finChargementRecherche;\r\n vm.ecranCourantRecherche;\r\n vm.rechercheParDefaut;\r\n vm.bRechercheSelectionne = false;\r\n vm.nomRechercheEnCours;\r\n\r\n // Nombre de pages de recherche\r\n vm.nombrePages = 0;\r\n\r\n // Numéro de la page de recherche\r\n vm.numeroPage = 1;\r\n\r\n // Taille d'une page de recherche\r\n vm.taillePage = $config.bureauLimiteElement;\r\n\r\n // Mantis 6117 : Taille d'une page de recherche personnalisé\r\n vm.seuilsTaillePage = [\r\n {seuilId: 10, seuil: '10'},\r\n {seuilId: 20, seuil: '20'},\r\n {seuilId: 30, seuil: '30'},\r\n {seuilId: 40, seuil: '40'},\r\n {seuilId: 50, seuil: '50'},\r\n {seuilId: 100, seuil: '100'},\r\n {seuilId: 150, seuil: '150'},\r\n {seuilId: 200, seuil: '200'},\r\n {seuilId: 250, seuil: '250'},\r\n {seuilId: 500, seuil: '500'},\r\n {seuilId: 1000, seuil: '1000'},\r\n {seuilId: 5000, seuil: '5000'},\r\n {seuilId: 10000, seuil: '10000'}\r\n ];\r\n\r\n vm.taillePagePerso = {\r\n seuilId: vm.taillePage,\r\n seuil: vm.taillePage.toString()\r\n };\r\n\r\n vm.taillePageMosaique = {\r\n seuilId: $config.bureauLimiteElement,\r\n seuil: $config.bureauLimiteElement.toString()\r\n };\r\n\r\n vm.appliquerTaillePagePerso = function(taillePage) {\r\n //$ocLazyLoad.load({serie: true, files: ['lib/jquery.min.js']}).then(function () {\r\n //$($element[0]).blur(); // Retirer le focus\r\n vm.taillePage = Number(taillePage.seuil);\r\n vm.nombrePages = Math.ceil(vm.tailleTotale / vm.taillePage);\r\n vm.numeroPage = 1;\r\n $scope.rechercheOnglet[vm.ecranCourantRecherche]();\r\n //});\r\n };\r\n\t\t\t\t\t\t\r\n // Taille totale de la recherche\r\n vm.tailleTotale = 0;\r\n\r\n // Paramètres planning\r\n vm.nomRecherchePlanning;\r\n vm.descriptionRecherchePlanning;\r\n vm.donneesRecherchePlanning;\r\n vm.typeRecherchePlanning;\r\n vm.contexteRecherchePlanning;\r\n vm.moduleRecherchePlanning;\r\n vm.actionCodeRecherchePlanning;\r\n vm.planningParameter = {};\r\n\r\n // Déclaration des Fonctions pour le planning\r\n vm.ouvrirPlanning = ouvrirPlanning;\r\n vm.actionPlanning = actionPlanning;\r\n vm.fermerPlanning = fermerPlanning;\r\n vm.sauvegarderPlanning = sauvegarderPlanning;\r\n vm.rechargerPlanning = rechargerPlanning;\r\n vm.affichageGrillePlanning = affichageGrillePlanning;\r\n vm.affichageTimelinePlanning = affichageTimelinePlanning;\r\n vm.affichageAgendaPlanning = affichageAgendaPlanning;\r\n vm.finChargementPlanning = finChargementPlanning;\r\n\t\t\t\t\t\tvm.rechercheSelonTri = rechercheSelonTri; // Mantis Operia 6195\r\n\r\n // Déclaration des Fonctions pour la fiche\r\n vm.ouvrirFiche = ouvrirFiche;\r\n vm.editerFiche = editerFiche;\r\n vm.resumerFiche = resumerFiche;\r\n vm.sauvegarderFiche = sauvegarderFiche;\r\n vm.rechargerFiche = rechargerFiche;\r\n vm.fermerFiche = fermerFiche;\r\n vm.vueFormulaireFiche;\r\n vm.vueFormulaireFicheSynthese;\r\n vm.demandeDetailEntite = demandeDetailEntite;\r\n\r\n // Déclaration des Fonctions\r\n vm.sauvegarderAction = sauvegarderAction;\r\n vm.fermerAction = fermerAction;\r\n vm.chargerDonneesCartoDepuisFiche = chargerDonneesCartoDepuisFiche;\r\n vm.selectionnerTout = selectionnerTout;\r\n vm.pageChanged = pageChanged;\r\n vm.retourRechercheOnglet = retourRechercheOnglet;\r\n vm.actualiser = actualiser;\r\n vm.rechercheDernierDossiersCrees = rechercheDernierDossiersCrees;\r\n vm.finChargementRecherche = finChargementRecherche;\r\n\r\n $scope.onglet[\"ongletCtrl\"] = vm;\r\n\r\n // Fonctions de service pour le scope interne et externe\r\n $scope.onglet.basculerRecherche = function(){\r\n return ongletService.basculerRecherche($scope.onglet);\r\n };\r\n\r\n $scope.onglet.afficherSectionGauche = function(){\r\n return ongletService.afficherSectionGauche($scope.onglet);\r\n };\r\n\r\n $scope.onglet.afficherSectionDroite= function(){\r\n return ongletService.afficherSectionDroite($scope.onglet);\r\n };\r\n\r\n $scope.onglet.masquerSectionGauche= function(){\r\n return ongletService.masquerSectionGauche($scope.onglet);\r\n };\r\n\r\n $scope.onglet.masquerSectionDroite= function(){\r\n return ongletService.masquerSectionDroite($scope.onglet);\r\n };\r\n\r\n $scope.onglet.basculerSectionGauche= function(){\r\n return ongletService.basculerSectionGauche($scope.onglet);\r\n };\r\n\r\n $scope.onglet.basculerSectionDroite= function(){\r\n return ongletService.basculerSectionDroite($scope.onglet);\r\n };\r\n\r\n $scope.onglet.afficherOutils= function(type){\r\n return ongletService.afficherOutils($scope.onglet,type);\r\n };\r\n\r\n $scope.onglet.afficherResume= function(){\r\n return ongletService.afficherResume($scope.onglet);\r\n };\r\n\r\n $scope.onglet.afficherFiche = function(){\r\n return ongletService.afficherFiche($scope.onglet);\r\n };\r\n\r\n $scope.onglet.afficherPlanning = function(){\r\n return ongletService.afficherPlanning($scope.onglet);\r\n };\r\n\r\n $scope.onglet.afficherEcranAction = function(){\r\n return ongletService.afficherEcranAction($scope.onglet);\r\n };\r\n\r\n $scope.onglet.masquerResume= function(){\r\n return ongletService.masquerResume($scope.onglet);\r\n };\r\n\r\n $scope.onglet.masquerFiche = function(){\r\n return ongletService.masquerFiche($scope.onglet);\r\n };\r\n\r\n $scope.onglet.masquerPlanning = function(){\r\n return ongletService.masquerPlanning($scope.onglet);\r\n };\r\n\r\n $scope.onglet.masquerEcranAction = function(){\r\n return ongletService.masquerEcranAction($scope.onglet);\r\n };\r\n\r\n $scope.onglet.basculerResume= function(){\r\n return ongletService.basculerResume($scope.onglet);\r\n };\r\n\r\n $scope.onglet.basculerFiche= function(){\r\n return ongletService.basculerFiche($scope.onglet);\r\n };\r\n\r\n $scope.onglet.basculerEcranAction = function(){\r\n return ongletService.basculerEcranAction($scope.onglet);\r\n };\r\n\r\n $scope.onglet.editerDocument = function(){\r\n // Mantis 5963 Bouton Edition standard (Intervention) inactif en passant par le lien du résumé Demande\r\n if (!angular.isNullOrUndefined($scope.onglet.idEntite) &&\r\n !angular.isNullOrUndefined($scope.onglet.idEntiteValeur) &&\r\n (angular.isNullOrUndefined(vm.selectionRecherche) || (vm.selectionRecherche.length == 0))) {\r\n // Renseigner sélection\r\n var selection = {};\r\n selection[$scope.onglet.idEntite] = $scope.onglet.idEntiteValeur.valeur;\r\n\r\n // Mantis 6073 Edition impossible suite ouverture onglet par lien dans synthèse\r\n var tableauSelection = [];\r\n tableauSelection.push(selection);\r\n\r\n return ongletService.editerDocument($scope.onglet, tableauSelection);\r\n } else {\r\n return ongletService.editerDocument($scope.onglet, vm.selectionRecherche);\r\n }\r\n };\r\n\r\n $scope.onglet.extraireListe = function(){\r\n $ocLazyLoad.load({\r\n serie: true, files: [\r\n 'lib/ng-csv.min.js',\r\n 'lib/angular-sanitize.min.js'\r\n ]\r\n })\r\n .then(function () {\r\n var modalExportCSV = $modal.open({\r\n templateUrl: 'moteur/composants/popup/OpPopupOptionExportCSV.html',\r\n controller: 'fr.operis.moteurV4.composants.popup.OpPopupOptionExportCSVCtrl',\r\n size: 'sm',\r\n resolve: {\r\n // Nom du module\r\n moduleNom: function () {\r\n return $scope.onglet.moduleNom;\r\n },\r\n // Sélection en cours\r\n selectionCourante: function () {\r\n return $scope.ongletCtrl.donneesRecherche;\r\n },\r\n // Ecran de recherche\r\n ecranRecherche:function(){\r\n return $scope.ongletCtrl.ecranCourantRecherche;\r\n },\r\n // Mantis 5979 Critères de recherche en cours\r\n criteresRecherche: function () {\r\n return $scope.ongletCtrl.criteresRecherche;\r\n },\r\n // Page courante\r\n pageCourante:function(){\r\n return $scope.ongletCtrl.numeroPage;\r\n },\r\n // Nombres de pages\r\n nombrePages:function(){\r\n return $scope.ongletCtrl.nombrePages;\r\n },\r\n // Mantis 6117 : Taille d'une page de recherche personnalisé\r\n taillePage: function () {\r\n return $scope.ongletCtrl.taillePage;\r\n }\r\n }\r\n });\r\n })\r\n\r\n // TODO A NETTOYER ANCIENNE FONCTION EXPORT CSV\r\n };\r\n\r\n $scope.onglet.gererDocumentsAttaches = function(){\r\n // Mantis 5921 Bouton Document standard inactif en passant par un lien du résumé\r\n if (!angular.isNullOrUndefined($scope.onglet.idEntite) &&\r\n !angular.isNullOrUndefined($scope.onglet.idEntiteValeur) &&\r\n (angular.isNullOrUndefined(vm.selectionRecherche) || (vm.selectionRecherche.length == 0))) {\r\n // Renseigner sélection\r\n var selection = {};\r\n selection[$scope.onglet.idEntite] = $scope.onglet.idEntiteValeur.valeur;\r\n\r\n // Mantis 6073 Edition impossible suite ouverture onglet par lien dans synthèse\r\n var tableauSelection = [];\r\n tableauSelection.push(selection);\r\n\r\n return ongletService.gererDocumentsAttaches($scope.onglet, tableauSelection, true);\r\n } else {\r\n return ongletService.gererDocumentsAttaches($scope.onglet, vm.selectionRecherche, false);\r\n }\r\n };\r\n\r\n $scope.onglet.afficherMessagerie = function(onChangeEtat){\r\n return ongletService.afficherMessagerie($scope.onglet, vm.selectionRecherche, onChangeEtat);\r\n };\r\n\r\n $scope.onglet.ouvrirFiche = function(aEntiteRecherche, aEstAction, aAffichagePleinEcran){\r\n return vm.ouvrirFiche (aEntiteRecherche, aEstAction, aAffichagePleinEcran);\r\n };\r\n\r\n $scope.onglet.editerFiche = function(args){\r\n return vm.editerFiche (args);\r\n };\r\n\r\n $scope.onglet.sauvegarderFiche = function(){\r\n return vm.sauvegarderFiche ();\r\n };\r\n\r\n $scope.onglet.ouvrirPlanning = function (args) {\r\n return vm.ouvrirPlanning(args);\r\n };\r\n\r\n $scope.onglet.actionPlanning = function (args) {\r\n return vm.actionPlanning(args);\r\n };\r\n\r\n // Selection de l'onglet\r\n $scope.onglet.getSelection = function(){\r\n return vm.selectionRecherche;\r\n };\r\n\r\n // Formulaire Fiche\r\n $scope.onglet.getFormulaireFiche = function(){\r\n return vm.vueFormulaireFiche;\r\n };\r\n\r\n // Nombre de dossier créer par utilisateur\r\n $scope.onglet.nombreDernierDossiersCrees = 0;\r\n\r\n // Ouverture Fiche\r\n function ouvrirFiche (entiteRecherche, estAction, estAffichagePleinEcran) {\r\n var onglet = $scope.onglet;\r\n\r\n // Gestion du contexte\r\n var titre;\r\n for (var property in entiteRecherche) {\r\n if (!angular.isNullOrUndefined(entiteRecherche[property]) &&\r\n !angular.isNullOrUndefined(entiteRecherche[property].descriptions) &&\r\n !angular.isNullOrUndefined(entiteRecherche[property].descriptions.estChampPrincipal) &&\r\n entiteRecherche[property].descriptions.estChampPrincipal == true )\r\n titre = entiteRecherche[property].valeur;\r\n }\r\n ongletService.definirTexteContextuel(onglet, titre);\r\n\r\n // Affichage de l'entite\r\n var identifiant = {};\r\n var tabNomsIdentifiants = onglet.moduleEntite.split(\";\");\r\n\r\n for (var i = 0; i < tabNomsIdentifiants.length; i++) {\r\n identifiant[tabNomsIdentifiants[i]] = entiteRecherche[tabNomsIdentifiants[i]].valeur;\r\n }\r\n\r\n // Droit de mofification\r\n onglet.droitAccessFiche = entiteRecherche.DROITACCES;\r\n\r\n var ecranFiche = onglet.moduleTrigramme + ((serveur.isMobile())?\"_M\":\"\") + \"_FICHE\";\r\n var identifiantFiche = onglet.moduleEntite;\r\n var args = {\r\n nomModule: onglet.moduleNom,\r\n nomEcran: ecranFiche,\r\n identifiant: identifiant,\r\n entiteFiche: entiteRecherche,\r\n estAction: estAction\r\n };\r\n $scope.$broadcast('OperisOnglet_OuvrirFicheSyntheseEvt', args);\r\n\r\n if ($window.matchMedia(\"(max-width: 767px)\").matches || (estAffichagePleinEcran == true)) {\r\n ongletService.masquerSectionGauche(onglet);\r\n ongletService.afficherSectionDroite(onglet);\r\n } else {\r\n ongletService.afficherSectionDroite(onglet);\r\n }\r\n\r\n if ((!angular.isNullOrUndefined(estAction)) && estAction) {\r\n ongletService.afficherEcranAction(onglet);\r\n } else {\r\n ongletService.masquerEcranAction(onglet);\r\n ongletService.afficherResume(onglet);\r\n }\r\n }\r\n\r\n // Editer Fiche\r\n function editerFiche (args) {\r\n\r\n $scope.$broadcast('OperisOnglet_OuvrirFicheEvt',args);\r\n\r\n $scope.onglet.masquerSectionDroite();\r\n $scope.onglet.masquerResume();\r\n $scope.onglet.afficherSectionGauche();\r\n $scope.onglet.afficherFiche();\r\n }\r\n\r\n // Actualiser le planning\r\n $scope.onglet.actualiserPlanningSectionDroite = function () {\r\n $scope.$broadcast('OperisOnglet_ActualiserPlanningSectionDroiteEvt', {nomPlanning: vm.nomRecherchePlanning, typePlanning: vm.typeRecherchePlanning, confirmerAction: false});\r\n };\r\n\r\n // Fermer le planning (vue recherche section droite)\r\n $scope.onglet.fermerPlanningSectionDroite = function () {\r\n $scope.$broadcast('OperisOnglet_FermerPlanningEvt', {nomPlanning: vm.planningParameter.nomPlanning, sauvegarde: false});\r\n };\r\n\r\n // Ouvrir planning\r\n function ouvrirPlanning (args) {\r\n // Gestion du contexte\r\n var titre = \"\";\r\n\r\n if (!angular.isNullOrUndefined(args.titreContexte) && !angular.isNullOrUndefined(args.titreContexte)) {\r\n titre = args.titreContexte;\r\n } else if (!angular.isNullOrUndefined(args.selection) && !angular.isNullOrUndefined(args.selection[0])) {\r\n var selection = args.selection[0];\r\n for (var property in args.selection[0]) {\r\n if (!angular.isNullOrUndefined(selection[property].descriptions) && !angular.isNullOrUndefined(selection[property].descriptions.estChampPrincipal) && selection[property].descriptions.estChampPrincipal == true)\r\n titre = selection[property].valeur;\r\n }\r\n }\r\n\r\n ongletService.definirTexteContextuel($scope.onglet, titre);\r\n\r\n // Cacher volet outils et résumé\r\n $scope.onglet.masquerSectionDroite();\r\n $scope.onglet.masquerResume();\r\n $scope.onglet.masquerPlanning();\r\n\r\n // Ouverture du planning\r\n $scope.$broadcast('OperisOnglet_OuvrirPlanningEvt', args);\r\n $scope.onglet.afficherSectionGauche();\r\n $scope.onglet.afficherPlanning();\r\n\r\n // Actualiser le planning\r\n $scope.$broadcast('OperisOnglet_ActualiserPlanningEvt', {nomPlanning: args.nomPlanning, typePlanning: args.typePlanning, confirmerAction: false});\r\n }\r\n\r\n // Exécuter action planning\r\n function actionPlanning (args) {\r\n $scope.$broadcast('OperisOnglet_ActionPlanningEvt', args);\r\n }\r\n\r\n // Résumer Fiche\r\n function resumerFiche(args){\r\n $scope.$broadcast('OperisOnglet_OuvrirFicheSyntheseEvt',args);\r\n $scope.onglet.afficherResume();\r\n $scope.onglet.afficherSectionDroite();\r\n $scope.onglet.masquerSectionGauche();\r\n $scope.onglet.masquerFiche();\r\n $scope.onglet.masquerPlanning();\r\n }\r\n\r\n function sauvegarderFiche (){\r\n var deferred = $q.defer();\r\n\r\n if ( !vm.vueFormulaireFiche.vueModifie.$valid )\r\n return alert(\"Données mal renseignées. Enregistrement impossible\");\r\n\r\n // Action de controle de préSauvegarde (contrôle, calcul)\r\n requetePreSauvegardeFiche.execution($scope,$scope.onglet.moduleNom,$scope.onglet.id_categoriemodule,\r\n vm.scopeFormulaire,vm.vueFormulaireFiche.idAction)\r\n .then(function(retourPreSauvegarde){\r\n vm.vueFormulaireFiche.sauvegarde().then(\r\n function (retourSauvegarde) {\r\n // Action postSauvegarde (mise à jour des statuts, de l'historique)\r\n requetePostSauvegardeFiche.execution($scope,$scope.onglet.moduleNom,$scope.onglet.id_categoriemodule,\r\n retourSauvegarde,vm.vueFormulaireFiche.idAction);\r\n\r\n if ( vm.vueFormulaireFiche.idAction == 1 )\r\n vm.vueFormulaireFiche.idAction = 2;\r\n\r\n // Réinit OpCalendarRessources nécessaire\r\n /*if (!angular.isNullOrUndefined(vm.planningParameter.clefFiche)) {\r\n vm.planningParameter.clefFiche.nbreAppels = 0;\r\n vm.planningParameter.clefFiche.id = null;\r\n }*/\r\n\r\n vm.chargerDonneesCartoDepuisFiche(vm.vueFormulaireFiche);\r\n\r\n if ($scope.onglet.editionCarto) {\r\n $scope.onglet.editionCarto = false;\r\n $scope.onglet.modelCarto = null;\r\n }\r\n\r\n $scope.actualisationFiche = true;\r\n\r\n deferred.resolve();\r\n }, function(erreur){\r\n deferred.reject(erreur);\r\n }\r\n );\r\n })\r\n\r\n\r\n return deferred.promise;\r\n }\r\n\r\n function rechargerFiche(){\r\n // Message de confirmation\r\n var reponse = confirm(\"Les éléments saisis seront définitivement annulés. Etes-vous sûr de vouloir continuer ?\");\r\n\r\n if ( reponse ){\r\n vm.vueFormulaireFiche.recharger();\r\n if ($scope.onglet.editionCarto) {\r\n $scope.onglet.editionCarto = false;\r\n $scope.onglet.modelCarto = null;\r\n }\r\n }\r\n\r\n }\r\n\r\n function fermerFiche(aForceFermeture){\r\n var deferred = $q.defer();\r\n\r\n // Modification ?// Fiche Saisie\r\n if ( angular.isNullOrUndefined(aForceFermeture) && !angular.isNullOrUndefined(vm.vueFormulaireFiche) && !angular.isNullOrUndefined(vm.vueFormulaireFiche.vueModifie) && !vm.vueFormulaireFiche.vueModifie.$pristine ){\r\n var popupEnregistrement = opPopupEnregistrementFiche.creer();\r\n return popupEnregistrement.result.then(function(aValidation){\r\n if ( aValidation ){\r\n vm.sauvegarderFiche()\r\n .then(function(){\r\n $scope.actualisationFiche = true;\r\n return vm.fermerFiche();\r\n })\r\n }\r\n else {vm.vueFormulaireFiche.vueModifie.$setPristine();return vm.fermerFiche(true)};\r\n },function(){\r\n // Annulation\r\n })\r\n }\r\n\r\n\r\n if ($scope.onglet.affichageResume) {\r\n // Mantis 5963 Bouton Edition standard (Intervention) inactif en passant par le lien du résumé Demande\r\n if (!$scope.onglet.faireBasculeSynthese) {\r\n // Fiche Résumé\r\n $scope.onglet.masquerSectionDroite();\r\n $scope.onglet.masquerResume();\r\n $scope.onglet.afficherSectionGauche();\r\n } else {\r\n $scope.onglet.faireBasculeSynthese = false;\r\n }\r\n } else {\r\n // Fiche Saisie\r\n // Fermer l'écran fiche et replacer les données carto de recherche\r\n $scope.onglet.masquerFiche();\r\n\r\n if ( !angular.isNullOrUndefined( $scope.actualisationFiche ) && $scope.actualisationFiche )\r\n vm.actualiser();\r\n\r\n if ($scope.onglet.editionCarto) {\r\n $scope.onglet.editionCarto = false;\r\n $scope.onglet.modelCarto = null;\r\n }\r\n\r\n }\r\n\r\n // Réinit OpCalendarRessources nécessaire\r\n /*if (!angular.isNullOrUndefined(vm.planningParameter.clefFiche)) {\r\n vm.planningParameter.clefFiche.nbreAppels = 0;\r\n vm.planningParameter.clefFiche.id = null;\r\n }*/\r\n\r\n ongletService.definirTexteContextuel($scope.onglet,\"\");\r\n\r\n $scope.onglet.faireBasculeSynthese = false;\r\n\r\n deferred.resolve();\r\n return deferred.promise;\r\n }\r\n\r\n function sauvegarderPlanning () {\r\n $scope.$broadcast('OperisOnglet_SauvegarderPlanningEvt', {nomPlanning: vm.planningParameter.nomPlanning});\r\n }\r\n\r\n function rechargerPlanning() {\r\n $scope.$broadcast('OperisOnglet_RechargerPlanningEvt', {nomPlanning: vm.planningParameter.nomPlanning, typePlanning: vm.planningParameter.typePlanning, confirmerAction: vm.planningParameter.planningModifie});\r\n }\r\n\r\n function affichageGrillePlanning() {\r\n $scope.$broadcast('OperisOnglet_AffichageGrillePlanningEvt', {nomPlanning: vm.planningParameter.nomPlanning});\r\n }\r\n\r\n function affichageTimelinePlanning() {\r\n $scope.$broadcast('OperisOnglet_AffichageTimelinePlanningEvt', {nomPlanning: vm.planningParameter.nomPlanning});\r\n }\r\n\r\n function affichageAgendaPlanning() {\r\n $scope.$broadcast('OperisOnglet_AffichageAgendaPlanningEvt', {nomPlanning: vm.planningParameter.nomPlanning});\r\n }\r\n\r\n function fermerPlanning() {\r\n // Sauvegarde avant fermêture ?\r\n if (vm.planningParameter.planningModifie){\r\n var popupEnregistrement = opPopupEnregistrementFiche.creer();\r\n return popupEnregistrement.result.then(function (aValidation) {\r\n $scope.$broadcast('OperisOnglet_FermerPlanningEvt', {nomPlanning: vm.planningParameter.nomPlanning, sauvegarde: aValidation});\r\n\r\n if ($scope.onglet.affichageResume) {\r\n // Fermer l'écran résumé et réafficher la section de gauche\r\n $scope.onglet.masquerSectionDroite();\r\n $scope.onglet.masquerResume();\r\n $scope.onglet.afficherSectionGauche();\r\n } else {\r\n // Fermer l'écran planning et replacer les données carto de recherche\r\n $scope.onglet.masquerPlanning();\r\n\r\n vm.actualiser();\r\n\r\n if ($scope.onglet.editionCarto) {\r\n $scope.onglet.editionCarto = false;\r\n $scope.onglet.modelCarto = null;\r\n }\r\n }\r\n\r\n // Réinit OpCalendarRessources nécessaire\r\n /*if (!angular.isNullOrUndefined(vm.planningParameter.clefFiche)) {\r\n vm.planningParameter.clefFiche.nbreAppels = 0;\r\n vm.planningParameter.clefFiche.id = null;\r\n }*/\r\n\r\n ongletService.definirTexteContextuel($scope.onglet,\"\");\r\n },function(){\r\n // Annulation\r\n })\r\n } else {\r\n $scope.$broadcast('OperisOnglet_FermerPlanningEvt', {nomPlanning: vm.planningParameter.nomPlanning, sauvegarde: false});\r\n\r\n if ($scope.onglet.affichageResume) {\r\n // Fermer l'écran résumé et réafficher la section de gauche\r\n $scope.onglet.masquerSectionDroite();\r\n $scope.onglet.masquerResume();\r\n $scope.onglet.afficherSectionGauche();\r\n } else {\r\n // Fermer l'écran planning et replacer les données carto de recherche\r\n $scope.onglet.masquerPlanning();\r\n\r\n vm.actualiser();\r\n\r\n if ($scope.onglet.editionCarto) {\r\n $scope.onglet.editionCarto = false;\r\n $scope.onglet.modelCarto = null;\r\n }\r\n }\r\n\r\n // Réinit OpCalendarRessources nécessaire\r\n /*if (!angular.isNullOrUndefined(vm.planningParameter.clefFiche)) {\r\n vm.planningParameter.clefFiche.nbreAppels = 0;\r\n vm.planningParameter.clefFiche.id = null;\r\n }*/\r\n\r\n ongletService.definirTexteContextuel($scope.onglet,\"\");\r\n }\r\n }\r\n\r\n /**\r\n * Sauvegarder saisie dans l'écran action\r\n */\r\n function sauvegarderAction () {\r\n // Sauvegarder saisie dans l'écran action puis fermer l'écran\r\n $scope.onglet.vueFormulaireAction.sauvegarde()\r\n .then(function(reponse) {\r\n\r\n });\r\n fermerAction();\r\n }\r\n\r\n /**\r\n * Fermer l'écran action\r\n */\r\n function fermerAction () {\r\n $scope.onglet.masquerEcranAction();\r\n $scope.onglet.masquerSectionDroite();\r\n $scope.onglet.afficherSectionGauche();\r\n }\r\n\r\n function chargerDonneesCartoDepuisFiche(vueFormulaire) {\r\n\r\n }\r\n\r\n function selectionnerTout(){\r\n var lengthSelection = vm.selectionRecherche.length;\r\n vm.selectionRecherche = [];\r\n if (lengthSelection != vm.donneesRecherche.length){\r\n for (var i=0;i 0) {\r\n ongletActifService.demanderActivite($scope, aModule, colCle, modeleEntite).then(function (onglet) {\r\n onglet.ouvrirFiche(clef, null, true);\r\n });\r\n } else {\r\n opPopupAlerte.creer('warning', \"Habilitations insuffisantes pour accèder à la fiche \" + nomModule.toLowerCase() + \".\", true, false);\r\n }\r\n } else {\r\n opPopupAlerte.creer('warning', \"Habilitations insuffisantes pour accèder à la fiche \" + nomModule.toLowerCase() + \".\", true, false);\r\n }\r\n }, function () {\r\n //onglet.ouvrirFiche(clef, null, true);\r\n //opPopupAlerte.creer('warning', \"Habilitations insuffisantes pour accèder à la fiche \" + nomModule.toLowerCase() + \".\", true, false);\r\n }\r\n );\r\n });\r\n }\r\n }]\r\n };\r\n }\r\n ])\r\n\r\n //Directive de Barre de fonctions Operis\r\n .directive('opOngletBarreFonctions',['fr.operis.moteurV4.communication.OperisWSServer', '$modal',\r\n 'fr.operis.moteurV4.utils.Config', 'fr.operis.moteurV4.utils.Planning',\r\n 'fr.operis.moteurV4.composants.popup.OpPopupEnregistrementFiche',\r\n function(serveur, $modal, $config, utilsPlanning, opPopupEnregistrementFiche) {\r\n return {\r\n restrict: 'E',\r\n transclude: true,\r\n require: '^opOnglet',\r\n template: function (){\r\n var retour = '
' +\r\n '
'+\r\n ''+\r\n ''+\r\n ''+\r\n '
'+\r\n '
'+\r\n '
'+\r\n '
'+\r\n ''+\r\n ''+\r\n '
'+\r\n '
'+\r\n ''+\r\n ''+\r\n ''+\r\n '
'+\r\n '
'+\r\n '' +\r\n '' +\r\n '' +\r\n '
'+\r\n '
'+\r\n ''+\r\n ''+\r\n ''+\r\n '
'+\r\n '
'+\r\n // Mantis 5887 : Pas de bouton 'plein écran' pour l'outil cartographie\r\n ''+\r\n ''+\r\n '
'+\r\n '
'+\r\n '
'+\r\n '
'+\r\n ''+\r\n ''+\r\n ''+\r\n ''+\r\n '
';\r\n return retour;\r\n },\r\n controllerAs:'barreFonctionCtrl',\r\n controller: ['$scope','$rootScope','$modal','fr.operis.moteurV4.utils.ModuleInfos','fr.operis.moteurV4.composants.OpPopupDemo',\r\n function($scope,$rootScope,$modal, moduleInfos, opPopupDemo){\r\n var vm = this;\r\n\r\n vm.actions;\r\n vm.droitModificationFiche =false;\r\n\r\n // Gestion des actions planning\r\n vm.typePlanning = \"inconnu\";\r\n vm.actionsPlanning = utilsPlanning.getActionsPlanning();\r\n\r\n vm.isMobile = serveur.isMobile();\r\n\r\n var tableEntite = moduleInfos.getInfo($scope.onglet.moduleNom, \"MOD_TABLEENTITE\");\r\n var entite = moduleInfos.getInfo($scope.onglet.moduleNom, \"MOD_ENTITE\");\r\n\r\n // Gestion du popup de démonstration\r\n $scope.onglet.demoActif = (false && ($scope.onglet.moduleNom.toUpperCase() === 'PATRIMOINE')); // Variable pour activer l'affichage du bouton \"Démonstration\"\r\n $scope.onglet.demoActionTitre = \"\";\r\n $scope.onglet.demoActionIcone = \"fa fa-question fa-2x\";\r\n if ($scope.onglet.demoActif) {\r\n if ($scope.onglet.moduleNom.toUpperCase() === 'PATRIMOINE') {\r\n $scope.onglet.demoActionIcone = \"fa fa-sitemap fa-2x\";\r\n $scope.onglet.demoActionTitre = \"Filiation\";\r\n }\r\n }\r\n\r\n vm.gererActionDemo = function () {\r\n if ($scope.onglet.moduleNom.toUpperCase() === 'PATRIMOINE') {\r\n // Démo composant OrgChart\r\n opPopupDemo.creer(\"orgchart\", $scope.onglet.demoActionTitre, true, false, \"Fermer\", \"Annuler\");\r\n }\r\n };\r\n\r\n // Récupération des actions\r\n $scope.onglet.rechercherActionMetier($scope.onglet.idModule)\r\n .then(function(retourRecherche){\r\n // Action métier\r\n vm.actions = angular.copy(retourRecherche.filter(function(item){ return ( item.ID_ACTION < 4 || item.ID_ACTION>99 )}));\r\n\r\n // Droit de modification\r\n for (var i=0;i 3 && item.ID_ACTION < 100 )}));\r\n });\r\n\r\n // Mantis 6160 Gestion exceptions affichage actions\r\n vm.desactiverActionSelonRecherche = function (action) {\r\n return utilsPlanning.desactiverActionSelonRecherche($scope.onglet.moduleNom,\r\n action.ACTIONCODE.valeur, $scope.onglet.ongletCtrl.ecranCourantRecherche);\r\n };\r\n\r\n // Fonction de gestion des actions planning\r\n vm.gererActionPlanning = function (action) {\r\n if (!angular.isNullOrUndefined(action) && !angular.isNullOrUndefined(action.actionCode)) {\r\n $scope.onglet.actionPlanning(action);\r\n }\r\n };\r\n\r\n // Fonction de gestion des actions\r\n vm.gererActionEcran = function (action){\r\n var ecranIHM = action[\"ECRANIHM\"];\r\n\r\n if ( action.ID_ACTION.valeur == 1 || action.ID_ACTION.valeur == 2 ) {\r\n // Action de standard de création et de modification\r\n var ecranFiche = $scope.onglet.moduleTrigramme + ((serveur.isMobile())?\"_M\":\"\") + \"_FICHE\";\r\n var identifiant = {};\r\n identifiant[$scope.onglet.moduleEntite] = \"\";\r\n if ( action.ID_ACTION.valeur != 1 ){\r\n // Modification de fiche\r\n identifiant[$scope.onglet.moduleEntite] = $scope.ongletCtrl.selectionRecherche[0][$scope.onglet.moduleEntite].valeur;\r\n }\r\n $scope.onglet.editerFiche({nomModule:$scope.onglet.moduleNom,nomEcran:ecranFiche,identifiant:identifiant, idAction:action.ID_ACTION.valeur});\r\n }\r\n else {\r\n var moduleNom = $scope.onglet.moduleNom.toLowerCase();\r\n\r\n if ((action.ACTIONCODE.valeur === \"GERERTACHE\") ||\r\n (action.ACTIONCODE.valeur === \"GERERRECURRENCE\") ||\r\n (action.ACTIONCODE.valeur === \"GERERDISPONIBILITE\")) {\r\n // Type de planning pour la gestion de la barre d'actions du planning\r\n vm.typePlanning = utilsPlanning.getTypePlanning($scope.onglet.moduleNom, action.ACTIONCODE.valeur);\r\n\r\n // Lancement planning\r\n if ($scope.onglet.affichageFiche) {\r\n // Proposer enregistrement de la fiche si besoin\r\n if (!angular.isNullOrUndefined($scope.ongletCtrl.vueFormulaireFiche) &&\r\n !angular.isNullOrUndefined($scope.ongletCtrl.vueFormulaireFiche.vueModifie) &&\r\n !$scope.ongletCtrl.vueFormulaireFiche.vueModifie.$pristine) {\r\n var popupEnregistrement = opPopupEnregistrementFiche.creer();\r\n popupEnregistrement.result.then(function (aValidation) {\r\n if (aValidation) {\r\n // Sauvegarde modifications dans la fiche\r\n $scope.ongletCtrl.sauvegarderFiche().then(function () {\r\n // Fermêture de la fiche\r\n $scope.actualisationFiche = true;\r\n $scope.ongletCtrl.fermerFiche().then(function () {\r\n var titreContexte = \"\";\r\n var nomTable = utilsPlanning.getNomTableFiche($scope.onglet.moduleNom, action.ACTIONCODE.valeur);\r\n var nomChamp = utilsPlanning.getNomChampPrincipal($scope.onglet.moduleNom, action.ACTIONCODE.valeur);\r\n\r\n if (!angular.isNullOrUndefined(nomTable) && !angular.isNullOrUndefined(nomChamp)) {\r\n titreContexte = $scope.ongletCtrl.vueFormulaireFiche.champs[nomTable][nomChamp].valeur;\r\n }\r\n\r\n // Lancement planning\r\n $scope.onglet.ouvrirPlanning({\r\n nomModule: $scope.onglet.moduleNom,\r\n actionCode: action.ACTIONCODE.valeur,\r\n selection: $scope.ongletCtrl.selectionRecherche,\r\n titreContexte: (titreContexte === \"\") ? null : titreContexte,\r\n paramActions: {nbreSelect: 0, nbreSelectLectureSeule: 0},\r\n planningModifie: false,\r\n lectureSeule: false\r\n });\r\n });\r\n })\r\n }\r\n else {\r\n // Annuler modifications dans la fiche\r\n $scope.ongletCtrl.vueFormulaireFiche.vueModifie.$setPristine();\r\n\r\n // Fermêture de la fiche\r\n $scope.ongletCtrl.fermerFiche(true).then(function () {\r\n // Lancement planning\r\n $scope.onglet.ouvrirPlanning({\r\n nomModule: $scope.onglet.moduleNom,\r\n actionCode: action.ACTIONCODE.valeur,\r\n selection: $scope.ongletCtrl.selectionRecherche,\r\n paramActions: {nbreSelect: 0, nbreSelectLectureSeule: 0},\r\n planningModifie: false,\r\n lectureSeule: false\r\n });\r\n });\r\n }\r\n }, function () {\r\n // Annulation lancement planning\r\n })\r\n } else {\r\n // Fermêture de la fiche\r\n $scope.ongletCtrl.fermerFiche(true).then(function () {\r\n // Lancement planning\r\n $scope.onglet.ouvrirPlanning({\r\n nomModule: $scope.onglet.moduleNom,\r\n actionCode: action.ACTIONCODE.valeur,\r\n selection: $scope.ongletCtrl.selectionRecherche,\r\n paramActions: {nbreSelect: 0, nbreSelectLectureSeule: 0},\r\n planningModifie: false,\r\n lectureSeule: false\r\n });\r\n });\r\n }\r\n } else {\r\n // Lancement planning\r\n $scope.onglet.ouvrirPlanning({\r\n nomModule: $scope.onglet.moduleNom,\r\n actionCode: action.ACTIONCODE.valeur,\r\n selection: $scope.ongletCtrl.selectionRecherche,\r\n paramActions: {nbreSelect: 0, nbreSelectLectureSeule: 0},\r\n planningModifie: false,\r\n lectureSeule: false\r\n });\r\n }\r\n } else {\r\n if ( action.ID_ACTION.valeur == 3 ){\r\n var controller = 'fr.operis.moteurV4.composants.popup.OpPopupSuppressionFicheCtrl';\r\n var templateUrl = 'moteur/composants/popup/OpPopupSuppressionFiche.html';\r\n action.ECRANNOM.valeur = $scope.onglet.moduleTrigramme + ((serveur.isMobile())?\"_M\":\"\") + \"_FICHE\";\r\n\r\n }else{\r\n var controller,templateUrl;\r\n // Cas des chemins dans un autre module\r\n if ( ecranIHM.valeur.indexOf('/') !== -1 ){\r\n templateUrl = ecranIHM.valeur + '.html';\r\n controller = 'fr.operis.' + ecranIHM.valeur.replace(/\\//g,'.') + 'Ctrl';\r\n }else{\r\n controller = 'fr.operis.'+ moduleNom +'.ecrans.' + ecranIHM.valeur.toLowerCase() + 'Ctrl';\r\n templateUrl = moduleNom + '/ecrans/' + ecranIHM.valeur.toLowerCase() + '.html';\r\n }\r\n }\r\n\r\n // Ouverture du popup d'action\r\n if ($scope.onglet.affichageFiche){\r\n if ( angular.isNullOrUndefined($scope.ongletCtrl.scopeFormulaire.identifiant[entite]) || $scope.ongletCtrl.scopeFormulaire.identifiant[entite]==\"\")\r\n return alert(\"Veuillez enregistrer au préalable le dossier\")\r\n }\r\n\r\n\r\n var popupActionEcran = $modal.open({\r\n templateUrl: templateUrl,\r\n controller: controller,\r\n size: 'xlg',\r\n windowClass: (serveur.isMobile() ? 'mobile' : ''),\r\n resolve: {\r\n // Action\r\n action: function () {\r\n return action;\r\n },\r\n // Nom du module\r\n moduleNom: function () {\r\n return $scope.onglet.moduleNom;\r\n },\r\n // Sélection en cours\r\n selection: function () {\r\n if ($scope.onglet.affichageFiche)\r\n // Récupération de l'ID de la fiche\r\n return [$scope.ongletCtrl.scopeFormulaire.champs[tableEntite]];\r\n else\r\n return $scope.ongletCtrl.selectionRecherche;\r\n },\r\n // Description de la sélection en cours\r\n descriptionSelection: function () {\r\n return $scope.ongletCtrl.descriptionRecherche;\r\n }\r\n }\r\n });\r\n\r\n //Retour du popup d'action\r\n popupActionEcran.result.then(function(){\r\n $scope.ongletCtrl.actualiser();\r\n },function(){\r\n\r\n })\r\n }\r\n }\r\n };\r\n }\r\n ]\r\n };\r\n }])\r\n\r\n //Directive de la recherche\r\n .directive('opOngletRecherche',\r\n ['fr.operis.moteurV4.communication.OperisWSServer', '$compile', '$timeout',\r\n 'fr.operis.moteurV4.utils.GenerationFormulaire',\r\n 'fr.operis.moteurV4.utils.GenerationFormulaire.TYPE_CHAMPS',\r\n 'fr.operis.moteurV4.utils.ModuleInfos',\r\n function(serveur, $compile, $timeout,\r\n generateurFormulaire,\r\n TYPE_CHAMPS,\r\n moduleInfos) {\r\n return {\r\n restrict: 'E',\r\n template:function (element, attributs) {\r\n var retour = ''+\r\n ' '+\r\n '
'+\r\n ' '+\r\n ' '+\r\n ' '+\r\n ' {{ecranLibelle}}'+\r\n ' '+\r\n ' ' +\r\n ' '+\r\n '
'+\r\n '
'+\r\n '
    '+\r\n ' '+\r\n '
'+\r\n '
';\r\n\r\n return retour;\r\n },\r\n require: '^opOnglet',\r\n scope:{\r\n moduleNom:'=',\r\n actionCode:'=',\r\n ecranLibelle:'=',\r\n ecranNom:'=',\r\n default:'=',\r\n echapDefaut:'=',\r\n finChargement:'&'\r\n },\r\n controller: ['$scope', '$attrs', '$modal', 'ongletActifService',\r\n function($scope, $attrs, $modal, ongletActifService) {\r\n $scope.vueFormulaire = null;\r\n $scope.finChargementFormulaire;\r\n $scope.appel_recherche = appel_recherche;\r\n $scope.finChargementFormulaire = finChargementFormulaire;\r\n $scope.basculerRecherche = ongletActifService.basculerRecherche;\r\n $scope.status;\r\n $scope.bFormulaireCharge = false;\r\n $scope.couleurPrimaire = moduleInfos.getInfo($scope.moduleNom, \"MOD_COULEURPRIMAIRE\");\r\n $scope.couleurSecondaire = moduleInfos.getInfo($scope.moduleNom, \"MOD_COULEURSECONDAIRE\");\r\n $scope.bLancerRecherche = false;\r\n\r\n // Fonction d'appel de recherche\r\n function appel_recherche() {\r\n if ( !$scope.bFormulaireCharge ){\r\n if ( angular.isNullOrUndefined($scope.status) )\r\n $scope.status = {};\r\n\r\n $scope.bLancerRecherche = true;\r\n $scope.status.open = true;\r\n }else{\r\n if ( !angular.isNullOrUndefined($scope.$parent.rechercheOnglet[$scope.ecranNom] )){\r\n $scope.$parent.rechercheOnglet[$scope.ecranNom]();\r\n }else\r\n $scope.basculerRecherche();\r\n\r\n }\r\n };\r\n\r\n // Fonction de chargement\r\n function finChargementFormulaire(aScope){\r\n $scope.bFormulaireCharge = true;\r\n\r\n // Recherche de la table\r\n var tableNom;\r\n for ( var table in aScope.champs){\r\n tableNom = table;\r\n break;\r\n }\r\n\r\n $scope.finChargement({scope:aScope, ecrannom:$scope.ecranNom, ecranlibelle:$scope.ecranLibelle, tablenom:tableNom});\r\n\r\n // Si pas de critère on lance la recherche ou recherche par défault\r\n var bCritereNonPresent = true;\r\n for (var colNom in aScope.descriptions[tableNom]){\r\n if ( aScope.descriptions[tableNom][colNom].estCritereRecherche ){\r\n bCritereNonPresent = false;\r\n break;\r\n }\r\n }\r\n\r\n if ( bCritereNonPresent || $scope.default == 1 || $scope.bLancerRecherche )\r\n $scope.appel_recherche();\r\n };\r\n\r\n if ($scope.default == 1) {\r\n if (!angular.isNullOrUndefined($scope.echapDefaut) && $scope.echapDefaut) {\r\n $scope.echapDefaut = false;\r\n } else {\r\n $scope.appel_recherche();\r\n }\r\n }\r\n }\r\n ],\r\n controllerAs:'rechercheCtrl',\r\n link: function (scope, element, attrs, controller) {\r\n\r\n scope.$watch('status.open', function(value){\r\n if ( value && !scope.bFormulaireCharge ){\r\n scope.vueFormulaire ={\r\n nomModule:scope.moduleNom,\r\n nomEcran:scope.ecranNom,\r\n identifiant: null\r\n };\r\n }\r\n })\r\n }\r\n };\r\n }])\r\n\r\n //Directive des résultats\r\n .directive('opOngletResultat',[ function() {\r\n return {\r\n restrict: 'E',\r\n transclude: true,\r\n require: '^opOnglet',\r\n template: function (){\r\n var retour ='
'+\r\n '
' +\r\n '
' +\r\n '{{ongletCtrl.nomRechercheEnCours}} ({{ongletCtrl.tailleTotale}})' +\r\n '' +\r\n ' ({{ongletCtrl.selectionRecherche.length}})'+\r\n '
'+\r\n // Mantis 6117 : Taille d'une page de recherche personnalisé\r\n ''+\r\n //'
'+\r\n '
'+\r\n ''+\r\n '
'+\r\n ''+\r\n '
'+\r\n ''+\r\n '
'+\r\n '
'+\r\n '
'+\r\n //'
'+\r\n '
'+\r\n '
'+ // TODO : Actuellement l'affichage 'Catégories' ne sert pas. Réactiver le bouton lorsque l'affichage est operationnelle.\r\n //'
'+\r\n '
'+\r\n '
'+\r\n '
' +\r\n '
'+\r\n '
'+\r\n ''+\r\n '
1}\">'+\r\n ' '+\r\n ''+\r\n '
'+\r\n ''+\r\n // Mantis 6055 Gérer attribut scroll vertical\r\n '
1}\">'+\r\n ' '+ // Mantis Operia 6195 : Gestion tri personnalisé pour la vue grille des recherches\r\n ''+\r\n '
'+\r\n ''+\r\n '
1}\">'+\r\n ''+\r\n ' '+\r\n '
'+\r\n '
1)\">' +\r\n ''+\r\n '
'+\r\n '
1)\">' +\r\n ''+\r\n '
'+\r\n '
'+\r\n '
';\r\n return retour;\r\n }\r\n };\r\n }])\r\n\r\n //Directive de la fiche\r\n .directive('opOngletFiche',['fr.operis.moteurV4.utils.Planning', 'ongletActifService','fr.operis.moteurV4.utils.RequetePreChargementFiche',\r\n 'fr.operis.moteurV4.communication.OperisWSServer', 'fr.operis.moteurV4.utils.Habilitation',\r\n function(utilsPlanning, ongletActifService, requetePreChargementFiche, serveur, habilitation) {\r\n return {\r\n restrict: 'E',\r\n scope:{onglet:\"=\"},\r\n transclude: true,\r\n bindToController: true,\r\n require: '^opOnglet',\r\n template: function (element, attributs){\r\n var retour='', nomFormulaire = (attributs.modeEdition == \"true\")?'formulaireSynthese':'formulaireSaisie';\r\n var vueFormulaire = (attributs.modeEdition == \"true\")? 'vueFormulaireFicheSynthese':'vueFormulaireFiche';\r\n retour = '
'+\r\n ''+\r\n '
';\r\n return retour;\r\n },\r\n controllerAs:'ficheCtrl',\r\n link: function (scope, element, attrs) {},\r\n controller: ['$scope', '$attrs',\r\n function($scope, $attrs) {\r\n var vm = this;\r\n\r\n // Déclation des fonctions\r\n vm.demanderActivite = demanderActivite;\r\n vm.finChargementFormulaire = finChargementFormulaire;\r\n\r\n function finChargementFormulaire(aScope){\r\n $scope.$parent.ongletCtrl.scopeFormulaire = aScope;\r\n\r\n if ( $attrs.modeEdition == \"false\" )\r\n requetePreChargementFiche.execution(aScope, vm.onglet.moduleNom.toLocaleUpperCase(),$scope.$parent.onglet.id_categoriemodule,\r\n $scope.$parent.ongletCtrl.vueFormulaireFiche.idAction )\r\n }\r\n\r\n /**\r\n * Ecouteur de l'événement de d'ouverture de fiche d'édition\r\n */\r\n var evenement = ( $attrs.modeEdition === \"true\" )?\"Synthese\":\"\";\r\n $scope.$on(\"OperisOnglet_OuvrirFiche\" + evenement + \"Evt\",function handleOuvrirFicheEvent( event,args ) {\r\n if ( !angular.isNullOrUndefined( args ) ){\r\n if ( $attrs.modeEdition === \"true\" )\r\n $scope.$parent.ongletCtrl.vueFormulaireFicheSynthese = args;\r\n else\r\n $scope.$parent.ongletCtrl.vueFormulaireFiche = args;\r\n }else{\r\n if ( $attrs.modeEdition === \"true\" ){\r\n if ( !angular.isNullOrUndefined($scope.$parent.ongletCtrl.vueFormulaireFiche) )\r\n $scope.$parent.ongletCtrl.vueFormulaireFicheSynthese = $scope.$parent.ongletCtrl.vueFormulaireFiche;\r\n }\r\n else {\r\n if ( !angular.isNullOrUndefined($scope.$parent.ongletCtrl.vueFormulaireFicheSynthese) )\r\n $scope.$parent.ongletCtrl.vueFormulaireFiche = $scope.$parent.ongletCtrl.vueFormulaireFicheSynthese;\r\n }\r\n }\r\n\r\n\r\n // Dans le cas de la fiche, on place les données carto de la fiche\r\n if (event.name == \"OperisOnglet_OuvrirFicheEvt\")\r\n if ( $attrs.modeEdition === \"true\" )\r\n $scope.$parent.ongletCtrl.chargerDonneesCartoDepuisFiche($scope.$parent.ongletCtrl.vueFormulaireFicheSynthese);\r\n else\r\n $scope.$parent.ongletCtrl.chargerDonneesCartoDepuisFiche($scope.$parent.ongletCtrl.vueFormulaireFiche);\r\n }\r\n );\r\n\r\n /**\r\n * Fonction d'ouverture d'entite dans un autre onglet\r\n * @param {Object} aModule\r\n * @param {String} aEntite\r\n * @param {Object} aModele\r\n */\r\n function demanderActivite(aScope, aModule, aEntite, aModele){\r\n var mapEntite = aEntite.split('#');\r\n var colEntite = mapEntite[0];\r\n var colModele = (mapEntite.length === 2) ? mapEntite[1] : mapEntite[0];\r\n ongletActifService.demanderActivite(aScope, aModule, colEntite, aModele).then(function (onglet) {\r\n // Baculer vers le nouvel onglet et ouvrir la synthèse\r\n var clef = {};\r\n clef[colEntite] = {valeur: aModele[colModele].valeur};\r\n clef[\"DROITACCES\"] = 0;\r\n\r\n var nomModule = aModule.MODULENOM.valeur;\r\n var trigramme = onglet.moduleTrigramme;\r\n var mobilite = serveur.isMobile()?'_M':'';\r\n var ecranServiceGestionnaire = trigramme + mobilite + '_SAUVEGARDE_SERVICEGESTIONNAIRE';\r\n var identite = {};\r\n identite[colEntite] = aModele[colModele].valeur;\r\n serveur.chargement(nomModule, $scope, ecranServiceGestionnaire, identite)\r\n .then(function (retourChargement) {\r\n if (!angular.isNullOrUndefined(retourChargement[0])) {\r\n var idService = $scope.champs[retourChargement[0][0]].ID_SERVICEGESTIONNAIRE.valeur;\r\n clef[\"DROITACCES\"] = habilitation.habilitationServiceGestionnaire()[idService];\r\n }\r\n onglet.ouvrirFiche(clef, null, true);\r\n },\r\n function () {\r\n onglet.ouvrirFiche(clef, null, true);\r\n });\r\n });\r\n }\r\n }\r\n ]\r\n };\r\n }])\r\n\r\n //Directive du planning\r\n .directive('opOngletPlanning',['fr.operis.moteurV4.utils.Planning', 'ongletActifService',\r\n function(utilsPlanning, ongletActifService) {\r\n return {\r\n restrict: 'E',\r\n scope: {\r\n onglet: \"=\"\r\n },\r\n transclude: true,\r\n bindToController: true,\r\n require: '^opOnglet',\r\n template: function (element, attributs) {\r\n var retour = '
' +\r\n '  {{planningCtrl.msgAvertissement}}' +\r\n '
' +\r\n '
' +\r\n '' +\r\n '
';\r\n\r\n return retour;\r\n },\r\n controllerAs:'planningCtrl',\r\n link: function (scope, element, attrs) {},\r\n controller: ['$scope', '$attrs',\r\n function($scope, $attrs) {\r\n var vm = this;\r\n\r\n // Déclaration des fonctions\r\n vm.finChargementFormulaire = finChargementFormulaire;\r\n vm.gererStatutActions = gererStatutActions;\r\n\r\n // Gestion suite fin de chargement du fromulaire\r\n function finChargementFormulaire(aScope){\r\n $scope.$parent.ongletCtrl.scopeFormulaire = aScope;\r\n }\r\n\r\n // Mise à jour les statuts des actions du planning\r\n function gererStatutActions(statut) {\r\n // Nombre d'éléments sélectionnés\r\n if (!angular.isNullOrUndefined(statut.nbreSelect)) {\r\n $scope.$parent.ongletCtrl.planningParameter.paramActions.nbreSelect = statut.nbreSelect;\r\n }\r\n\r\n // Nombre d'éléments sélectionnés en lecture seule\r\n if (!angular.isNullOrUndefined(statut.nbreSelectLectureSeule)) {\r\n $scope.$parent.ongletCtrl.planningParameter.paramActions.nbreSelectLectureSeule = statut.nbreSelectLectureSeule;\r\n }\r\n\r\n // Modifications en cours ?\r\n $scope.$parent.ongletCtrl.planningParameter.planningModifie = statut.planningModifie;\r\n\r\n // Planning en lecture seule ?\r\n $scope.$parent.ongletCtrl.planningParameter.lectureSeule = statut.lectureSeule;\r\n\r\n // Libellé de la ressource sélectionnée\r\n if (!angular.isNullOrUndefined(statut.libRessourceSelect)) {\r\n $scope.$parent.ongletCtrl.planningParameter.paramActions.libRessourceSelect = statut.libRessourceSelect;\r\n } else {\r\n $scope.$parent.ongletCtrl.planningParameter.paramActions.libRessourceSelect = \"\";\r\n }\r\n }\r\n\r\n // Gestion ouverture du planning\r\n $scope.$on(\"OperisOnglet_OuvrirPlanningEvt\", function handleOuvrirPlanningEvent(event, args) {\r\n vm.args = args;\r\n\r\n // Gestion du contexte\r\n var titre = \"\";\r\n\r\n if (!angular.isNullOrUndefined(args.titreContexte) && !angular.isNullOrUndefined(args.titreContexte)) {\r\n titre = args.titreContexte;\r\n } else if (!angular.isNullOrUndefined(args.selection) && !angular.isNullOrUndefined(args.selection[0])) {\r\n var selection = args.selection[0];\r\n for (var property in args.selection[0]) {\r\n if (!angular.isNullOrUndefined(selection[property].descriptions) && !angular.isNullOrUndefined(selection[property].descriptions.estChampPrincipal) && selection[property].descriptions.estChampPrincipal == true)\r\n titre = selection[property].valeur;\r\n }\r\n }\r\n\r\n vm.contextePlanning = (titre.trim() === \"\") ? $scope.$parent.onglet.moduleLibelle : titre;\r\n vm.nomPlanning = \"planning\" + args.nomModule + args.actionCode;\r\n vm.typePlanning = utilsPlanning.getTypePlanning(args.nomModule, args.actionCode);\r\n vm.nomModule = args.nomModule;\r\n vm.actionCode = args.actionCode;\r\n vm.selection = args.selection;\r\n vm.typePlanningConnu = (!angular.isNullOrUndefined(vm.typePlanning))?true:false;\r\n vm.selectionMultiple = (vm.selection.length > 1);\r\n vm.donneesRecherche = $scope.$parent.ongletCtrl.donneesRecherche;\r\n\r\n if (!vm.typePlanningConnu) {\r\n vm.msgAvertissement = \"Type de planning non définié pour l'action '\" + vm.actionCode + \"' du module \" + vm.nomModule + \".\";\r\n } else if (vm.selectionMultiple) {\r\n vm.msgAvertissement = \"Veuillez ne sélectionner qu'un seul élément.\";\r\n } else {\r\n vm.msgAvertissement = \"Erreur lors de l'ouverture du planning pour l'action '\" + vm.actionCode + \"' du module \" + vm.nomModule + \".\";\r\n }\r\n\r\n vm.args.nomPlanning = vm.nomPlanning;\r\n vm.args.typePlanning = vm.typePlanning;\r\n $scope.$parent.ongletCtrl.planningParameter = vm.args;\r\n });\r\n\r\n // Gestion action du planning\r\n $scope.$on(\"OperisOnglet_ActionPlanningEvt\", function handleActionPlanningEvent(event, args) {\r\n vm.args = args;\r\n vm.args.nomPlanning = vm.nomPlanning;\r\n });\r\n }\r\n ]\r\n };\r\n }])\r\n\r\n //Directive des outils\r\n .directive('opOngletOutils',['fr.operis.moteurV4.communication.OperisWSServer',\r\n function(serveur) {\r\n return {\r\n restrict: 'E',\r\n transclude: true,\r\n require: '^opOnglet',\r\n template: function (){\r\n var retour =\r\n ''+\r\n '
'+\r\n ' '+\r\n ''+\r\n '
'+\r\n ''+\r\n '
'+\r\n '' +\r\n '
'+\r\n ''+\r\n '
'+\r\n ''+\r\n //'
'+\r\n '
'+\r\n '
'+\r\n ''+\r\n ''+\r\n '
'+\r\n '
'+\r\n ''+\r\n '
'+\r\n '
'+\r\n ''+\r\n //'
'+\r\n '
'+\r\n '
'+\r\n ''+\r\n '
'+\r\n '
'+\r\n ''+\r\n //'
'+\r\n '
'+\r\n '
'+\r\n ''+\r\n '
'+\r\n '
'+\r\n ''+\r\n '
'+\r\n '
'+\r\n ''+\r\n '
'+\r\n '
'+\r\n ''+\r\n '
'+\r\n '
'+\r\n ''+\r\n '
'+\r\n '
'+\r\n ''+\r\n '
'+\r\n '
'+\r\n ''+\r\n '
'+\r\n '
'+\r\n '
'+\r\n '
'+\r\n ''+\r\n '
'+\r\n '
'+\r\n ''+\r\n '
'+\r\n '
'+\r\n '
'+\r\n '
'+\r\n ''+\r\n '
'+\r\n '
'+\r\n ''+\r\n '
'+\r\n '
'+\r\n '
'+\r\n '
'+\r\n ''+\r\n '
'+\r\n '
'+\r\n ''+\r\n '
'+\r\n '
'+\r\n '
';\r\n return retour;\r\n },\r\n controllerAs: 'outilsCtrl',\r\n controller: ['$scope',\r\n function($scope){\r\n var vm = this;\r\n }\r\n ]\r\n };\r\n }])\r\n .controller('SyntheseCtrl',\r\n ['$scope', 'fr.operis.moteurV4.communication.OperisWSServer',\r\n function ($scope, serveur) {\r\n\r\n function getRandomColor() {\r\n var letters = '0123456789ABCDEF'.split('');\r\n var color = '#';\r\n for (var i = 0; i < 6; i++ ) {\r\n color += letters[Math.floor(Math.random() * 16)];\r\n }\r\n\r\n if (color == '#FFFFFF') {\r\n color = '#E6E6E6';\r\n }\r\n\r\n return color;\r\n }\r\n\r\n function colorLuminance(hex, lum) {\r\n\r\n // validate hex string\r\n hex = String(hex).replace(/[^0-9a-f]/gi, '');\r\n if (hex.length < 6) {\r\n hex = hex[0]+hex[0]+hex[1]+hex[1]+hex[2]+hex[2];\r\n }\r\n lum = lum || 0;\r\n\r\n // convert to decimal and change luminosity\r\n var rgb = \"#\", c, i;\r\n for (i = 0; i < 3; i++) {\r\n c = parseInt(hex.substr(i*2,2), 16);\r\n c = Math.round(Math.min(Math.max(0, c + (c * lum)), 255)).toString(16);\r\n rgb += (\"00\"+c).substr(c.length);\r\n }\r\n\r\n return rgb;\r\n }\r\n\r\n // Ecrans gérés\r\n var nomEcranPieObjet = 'OperiaSynthese1Activite_Deman';\r\n var nomEcranPiePriorite = 'SyntheseDemandesPriorite';\r\n var nomEcranPieEtatDemande = 'SyntheseDemandesEtat';\r\n var nomEcranPieEtatInterv = 'SyntheseInterventionEtat';\r\n var nomEcranPieCategPatri = 'SynthesePatrimoineCateg';\r\n var nomEcranPieTypePatri = 'SynthesePatrimoineType';\r\n var nomEcranPieTypeBati = 'SynthesePatrimoineTypeBati';\r\n var nomEcranPieTypeEspVert = 'SynthesePatrimoineTypeEspVert';\r\n var nomEcranPieTypeAssain = 'SynthesePatrimoineTypeAssain';\r\n var nomEcranPieTypeVoirie = 'SynthesePatrimoineTypeVoirie';\r\n var nomEcranPieTypeMotor = 'SynthesePatrimoineTypeMotor';\r\n var nomEcranPieTypeSite = 'SynthesePatrimoineTypeSite';\r\n var nomEcranBar = 'OperiaSynthese2Activite_Deman';\r\n\r\n function updatePie(nomEcran) {\r\n\r\n var dataPie = [];\r\n var objGrilles = [];\r\n\r\n if (nomEcran == nomEcranPieObjet) {\r\n objGrilles = $scope.grilles.VL_OP_DEMANDEGROUPEOBJET;\r\n } else if (nomEcran == nomEcranPiePriorite) {\r\n objGrilles = $scope.grilles.VL_OP_DEMANDEGROUPEPRIORITE;\r\n } else if (nomEcran == nomEcranPieEtatDemande) {\r\n objGrilles = $scope.grilles.VL_OP_DEMANDEGROUPEETAT;\r\n } else if (nomEcran == nomEcranPieEtatInterv) {\r\n objGrilles = $scope.grilles.VL_OP_INTERVENTIONGROUPEETAT;\r\n } else if (nomEcran == nomEcranPieCategPatri) {\r\n objGrilles = $scope.grilles.VL_OP_PATRIMOINEGROUPECATEG;\r\n } else if (nomEcran == nomEcranPieTypePatri) {\r\n objGrilles = $scope.grilles.VL_OP_PATRIMOINEGROUPETYPE;\r\n } else if (nomEcran == nomEcranPieTypeBati) {\r\n objGrilles = $scope.grilles.VL_OP_BATIGROUPETYPE;\r\n } else if (nomEcran == nomEcranPieTypeEspVert) {\r\n objGrilles = $scope.grilles.VL_OP_ESPVGROUPETYPE;\r\n } else if (nomEcran == nomEcranPieTypeAssain) {\r\n objGrilles = $scope.grilles.VL_OP_ASSAINGROUPETYPE;\r\n } else if (nomEcran == nomEcranPieTypeVoirie) {\r\n objGrilles = $scope.grilles.VL_OP_VOIRIEGROUPETYPE;\r\n } else if (nomEcran == nomEcranPieTypeMotor) {\r\n objGrilles = $scope.grilles.VL_OP_MOTORGROUPETYPE;\r\n } else if (nomEcran == nomEcranPieTypeSite) {\r\n objGrilles = $scope.grilles.VL_OP_SITEGROUPETYPE;\r\n }\r\n\r\n for (var i = 0; i < objGrilles.length; ++i) {\r\n\r\n // Couleur aléatoire\r\n var couleur = getRandomColor();\r\n var surbrillance = colorLuminance(couleur, 0.5);\r\n\r\n // Nombre de demandes et Objet de demande\r\n var obj = objGrilles[i];\r\n\r\n dataPie.push(\r\n {\r\n value: obj.VALEURS.valeur,\r\n color: couleur,\r\n highlight: surbrillance,\r\n label: obj.GROUPE.valeur\r\n }\r\n )\r\n }\r\n\r\n if (nomEcran == nomEcranPieObjet) {\r\n $scope.dataPieDemandeObjet = dataPie;\r\n } else if (nomEcran == nomEcranPiePriorite) {\r\n $scope.dataPieDemandePriorite = dataPie;\r\n } else if (nomEcran == nomEcranPieEtatDemande) {\r\n $scope.dataPieDemandeEtat = dataPie;\r\n } else if (nomEcran == nomEcranPieEtatInterv) {\r\n $scope.dataPieEtatInterv = dataPie;\r\n } else if (nomEcran == nomEcranPieCategPatri) {\r\n $scope.dataPieCategPatri = dataPie;\r\n } else if (nomEcran == nomEcranPieTypePatri) {\r\n $scope.dataPieTypePatri = dataPie;\r\n } else if (nomEcran == nomEcranPieTypeBati) {\r\n $scope.dataPieTypeBati = dataPie;\r\n } else if (nomEcran == nomEcranPieTypeEspVert) {\r\n $scope.dataPieTypeEspVert = dataPie;\r\n } else if (nomEcran == nomEcranPieTypeAssain) {\r\n $scope.dataPieTypeAssain = dataPie;\r\n } else if (nomEcran == nomEcranPieTypeVoirie) {\r\n $scope.dataPieTypeVoirie = dataPie;\r\n } else if (nomEcran == nomEcranPieTypeMotor) {\r\n $scope.dataPieTypeMotor = dataPie;\r\n } else if (nomEcran == nomEcranPieTypeSite) {\r\n $scope.dataPieTypeSite = dataPie;\r\n }\r\n }\r\n\r\n function updateDoughnut() {\r\n\r\n $scope.titreDoughnut = 'Demandes par objet';\r\n\r\n // Custom Legend Variable, to link chart to the legend directive\r\n $scope.legendDoughnut = '';\r\n\r\n // Données Chart.js\r\n $scope.dataDoughnut = [];\r\n\r\n for (var i = 0; i < $scope.grilles.VL_OP_DEMANDEGROUPEOBJET.length; ++i) {\r\n\r\n // Couleur aléatoire\r\n var couleur = getRandomColor();\r\n var surbrillance = colorLuminance(couleur, 0.5);\r\n\r\n // Nombre de demandes et Objet de demande\r\n var obj = $scope.grilles.VL_OP_DEMANDEGROUPEOBJET[i];\r\n\r\n $scope.dataDoughnut.push(\r\n {\r\n value: obj.VALEURS.valeur,\r\n color: couleur,\r\n highlight: surbrillance,\r\n label: obj.GROUPE.valeur\r\n }\r\n )\r\n }\r\n\r\n // Options Chart.js\r\n $scope.optionsDoughnut = {\r\n\r\n // Sets the chart to be responsive\r\n responsive: true,\r\n\r\n //Boolean - Whether we should show a stroke on each segment\r\n segmentShowStroke : true,\r\n\r\n //String - The colour of each segment stroke\r\n segmentStrokeColor : '#fff',\r\n\r\n //Number - The width of each segment stroke\r\n segmentStrokeWidth : 2,\r\n\r\n //Number - The percentage of the chart that we cut out of the middle\r\n percentageInnerCutout : 50, // This is 0 for Pie charts\r\n\r\n //Number - Amount of animation steps\r\n animationSteps : 100,\r\n\r\n //String - Animation easing effect\r\n animationEasing : 'easeOutBounce',\r\n\r\n //Boolean - Whether we animate the rotation of the Doughnut\r\n animateRotate : true,\r\n\r\n //Boolean - Whether we animate scaling the Doughnut from the centre\r\n animateScale : false,\r\n\r\n //String - A legend template\r\n legendTemplate : '
    <% for (var i=0; i
  • \">■ <%if(segments[i].label){%><%=segments[i].label%><%}%>
  • <%}%>
'\r\n\r\n };\r\n }\r\n\r\n function updateBar() {\r\n\r\n $scope.titreBar = 'Nombre de demandes par année et mois';\r\n\r\n // Custom Legend Variable, to link chart to the legend directive\r\n $scope.legendBar = '';\r\n\r\n // Données Chart.js\r\n // Chargement libellés\r\n $scope.dataBar = {\r\n labels: ['janv', 'fév', 'mars', 'avril', 'mai', 'juin', 'juil', 'août', 'sept', 'oct', 'nov', 'déc'],\r\n datasets: []\r\n };\r\n\r\n // Chargement ensembles de données\r\n for (var i = 0; i < $scope.grilles.VL_OP_DEMANDEGROUPEDATECRE.length; ++i) {\r\n\r\n // Nombre de demandes par année et mois\r\n var obj = $scope.grilles.VL_OP_DEMANDEGROUPEDATECRE[i];\r\n\r\n // Libellés axe X\r\n if (i == 0 && obj.LIBELLES_X.valeur != \"\") {\r\n var lbl = obj.LIBELLES_X.valeur;\r\n $scope.dataBar.labels = lbl.split(\",\");\r\n }\r\n\r\n // Groupes et données\r\n var annee = obj.GROUPE.valeur;\r\n\r\n // Récupérer index du groupe\r\n var j = $scope.dataBar.datasets.length;\r\n while( j-- ) {\r\n if( $scope.dataBar.datasets[j].label === annee ) break;\r\n }\r\n\r\n var idxGroupe = j;\r\n\r\n if (idxGroupe == -1) {\r\n\r\n // Couleur aléatoire\r\n var couleur = getRandomColor();\r\n var couleurRemplissage = colorLuminance(couleur, 0.5);\r\n var couleurLigne = colorLuminance(couleur, 0.8);\r\n var surbrillanceRemplissage = colorLuminance(couleur, 0.75);\r\n var surbrillanceLigne = colorLuminance(couleur, 1);\r\n\r\n var ds = {\r\n label: annee,\r\n fillColor: couleurRemplissage,\r\n strokeColor: couleurLigne,\r\n highlightFill: surbrillanceRemplissage,\r\n highlightStroke: surbrillanceLigne,\r\n data: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]\r\n };\r\n\r\n $scope.dataBar.datasets.push(ds);\r\n idxGroupe = $scope.dataBar.datasets.length - 1;\r\n }\r\n\r\n var idxData = Number(obj.VALEURS_X.valeur) - 1;\r\n $scope.dataBar.datasets[idxGroupe].data[idxData] = obj.VALEURS_Y.valeur;\r\n }\r\n\r\n // Options Chart.js\r\n $scope.optionsBar = {\r\n\r\n // Sets the chart to be responsive\r\n responsive: true,\r\n\r\n //Boolean - Whether the scale should start at zero, or an order of magnitude down from the lowest value\r\n scaleBeginAtZero : true,\r\n\r\n //Boolean - Whether grid lines are shown across the chart\r\n scaleShowGridLines : true,\r\n\r\n //String - Colour of the grid lines\r\n scaleGridLineColor : \"rgba(0,0,0,.05)\",\r\n\r\n //Number - Width of the grid lines\r\n scaleGridLineWidth : 1,\r\n\r\n //Boolean - If there is a stroke on each bar\r\n barShowStroke : true,\r\n\r\n //Number - Pixel width of the bar stroke\r\n barStrokeWidth : 2,\r\n\r\n //Number - Spacing between each of the X value sets\r\n barValueSpacing : 5,\r\n\r\n //Number - Spacing between data sets within X values\r\n barDatasetSpacing : 1,\r\n\r\n //String - A legend template\r\n legendTemplate : '
    <% for (var i=0; i
  • \">■ <%if(datasets[i].label){%><%=datasets[i].label%><%}%>
  • <%}%>
'\r\n };\r\n }\r\n\r\n function updateLine() {\r\n\r\n $scope.titreLine = 'Nombre de demandes par année et mois';\r\n\r\n // Custom Legend Variable, to link chart to the legend directive\r\n $scope.legendLine = '';\r\n\r\n // Données Chart.js\r\n // Chargement libellés\r\n $scope.dataLine = {\r\n labels: ['janv', 'fév', 'mars', 'avril', 'mai', 'juin', 'juil', 'août', 'sept', 'oct', 'nov', 'déc'],\r\n datasets: []\r\n };\r\n\r\n // Chargement ensembles de données\r\n for (var i = 0; i < $scope.grilles.VL_OP_DEMANDEGROUPEDATECRE.length; ++i) {\r\n\r\n // Nombre de demandes par année et mois\r\n var obj = $scope.grilles.VL_OP_DEMANDEGROUPEDATECRE[i];\r\n\r\n // Libellés axe X\r\n if (i == 0 && obj.LIBELLES_X.valeur != \"\") {\r\n var lbl = obj.LIBELLES_X.valeur;\r\n $scope.dataLine.labels = lbl.split(\",\");\r\n }\r\n\r\n // Groupes et données\r\n var annee = obj.GROUPE.valeur;\r\n\r\n // Récupérer index du groupe\r\n var j = $scope.dataLine.datasets.length;\r\n while( j-- ) {\r\n if( $scope.dataLine.datasets[j].label === annee ) break;\r\n }\r\n\r\n var idxGroupe = j;\r\n\r\n if (idxGroupe == -1) {\r\n\r\n // Couleur aléatoire\r\n var couleur = getRandomColor();\r\n var couleurRemplissage = colorLuminance(couleur, 0.2);\r\n var couleurLigne = colorLuminance(couleur, 1);\r\n var couleurRemplissagePoint = colorLuminance(couleur, 1);\r\n var couleurLignePoint = '#fff'; //colorLuminance(couleur, 0.75);\r\n var surbrillanceRemplissagePoint = '#fff'; //colorLuminance(couleur, 0.75);\r\n var surbrillanceLignePoint = colorLuminance(couleur, 1);\r\n\r\n var ds = {\r\n label: annee,\r\n fillColor: couleurRemplissage,\r\n strokeColor: couleurLigne,\r\n pointColor: couleurRemplissagePoint,\r\n pointStrokeColor: couleurLignePoint,\r\n pointHighlightFill: surbrillanceRemplissagePoint,\r\n pointHighlightStroke: surbrillanceLignePoint,\r\n data: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]\r\n };\r\n\r\n $scope.dataLine.datasets.push(ds);\r\n idxGroupe = $scope.dataLine.datasets.length - 1;\r\n }\r\n\r\n var idxData = Number(obj.VALEURS_X.valeur) - 1;\r\n $scope.dataLine.datasets[idxGroupe].data[idxData] = obj.VALEURS_Y.valeur;\r\n }\r\n\r\n // Options Chart.js\r\n $scope.optionsLine = {\r\n\r\n // Sets the chart to be responsive\r\n responsive: true,\r\n\r\n ///Boolean - Whether grid lines are shown across the chart\r\n scaleShowGridLines : true,\r\n\r\n //String - Colour of the grid lines\r\n scaleGridLineColor : \"rgba(0,0,0,.05)\",\r\n\r\n //Number - Width of the grid lines\r\n scaleGridLineWidth : 1,\r\n\r\n //Boolean - Whether the line is curved between points\r\n bezierCurve : true,\r\n\r\n //Number - Tension of the bezier curve between points\r\n bezierCurveTension : 0.4,\r\n\r\n //Boolean - Whether to show a dot for each point\r\n pointDot : true,\r\n\r\n //Number - Radius of each point dot in pixels\r\n pointDotRadius : 4,\r\n\r\n //Number - Pixel width of point dot stroke\r\n pointDotStrokeWidth : 1,\r\n\r\n //Number - amount extra to add to the radius to cater for hit detection outside the drawn point\r\n pointHitDetectionRadius : 20,\r\n\r\n //Boolean - Whether to show a stroke for datasets\r\n datasetStroke : true,\r\n\r\n //Number - Pixel width of dataset stroke\r\n datasetStrokeWidth : 2,\r\n\r\n //Boolean - Whether to fill the dataset with a colour\r\n datasetFill : true,\r\n\r\n // Function - on animation progress\r\n onAnimationProgress: function(){},\r\n\r\n // Function - on animation complete\r\n onAnimationComplete: function(){},\r\n\r\n //String - A legend template\r\n legendTemplate : '
    <% for (var i=0; i
  • \">■ <%if(datasets[i].label){%><%=datasets[i].label%><%}%>
  • <%}%>
'\r\n };\r\n }\r\n\r\n // Options\r\n $scope.optionsPie = {\r\n responsive: true,// Sets the chart to be responsive\r\n segmentShowStroke : true,//Boolean - Whether we should show a stroke on each segment\r\n segmentStrokeColor : '#fff',//String - The colour of each segment stroke\r\n segmentStrokeWidth : 2,//Number - The width of each segment stroke\r\n percentageInnerCutout : 0, //Number - The percentage of the chart that we cut out of the middle (This is 0 for Pie charts)\r\n animationSteps : 100,//Number - Amount of animation steps\r\n animationEasing : 'easeOutBounce',//String - Animation easing effect\r\n animateRotate : true,//Boolean - Whether we animate the rotation of the Doughnut\r\n animateScale : false,//Boolean - Whether we animate scaling the Doughnut from the centre\r\n //String - A legend template\r\n legendTemplate : '
    <% for (var i=0; i
  • \">■ <%if(segments[i].label){%><%=segments[i].label%><%}%>
  • <%}%>
'\r\n };\r\n\r\n // Chart demandes par objet\r\n $scope.titrePieDemandeObjet = 'Demandes par objet';\r\n $scope.legendPieDemandeObjet = '';\r\n $scope.dataPieDemandeObjet = [];\r\n\r\n // Chart demandes par priorité\r\n $scope.titrePieDemandePriorite = 'Demandes par priorité';\r\n $scope.legendPieDemandePriorite = '';\r\n $scope.dataPieDemandePriorite = [];\r\n\r\n // Chart demandes par état\r\n $scope.titrePieDemandeEtat = 'Etat des demandes';\r\n $scope.legendPieDemandeEtat = '';\r\n $scope.dataPieDemandeEtat = [];\r\n\r\n // Chart interventions par état\r\n $scope.titrePieEtatInterv = 'Etat des interventions';\r\n $scope.legendPieEtatInterv = '';\r\n $scope.dataPieEtatInterv = [];\r\n\r\n // Chart patrimoine par catégorie\r\n $scope.titrePieCategPatri = 'Catégories de patrimoine';\r\n $scope.legendPieCategPatri = '';\r\n $scope.dataPieCategPatri = [];\r\n\r\n // Chart patrimoine par type\r\n $scope.titrePieTypePatri = 'Types de patrimoine';\r\n $scope.legendPieTypePatri = '';\r\n $scope.dataPieTypePatri = [];\r\n\r\n // Chart patrimoine bâti par type\r\n $scope.titrePieTypeBati = 'Bâti';\r\n $scope.legendPieTypeBati = '';\r\n $scope.dataPieTypeBati = [];\r\n\r\n // Chart patrimoine espace vert par type\r\n $scope.titrePieTypeEspVert = 'Espace vert';\r\n $scope.legendPieTypeEspVert = '';\r\n $scope.dataPieTypeEspVert = [];\r\n\r\n // Chart patrimoine eau et assainissement par type\r\n $scope.titrePieTypeAssain = 'Eau et assainissement';\r\n $scope.legendPieTypeAssain = '';\r\n $scope.dataPieTypeAssain = [];\r\n\r\n // Chart patrimoine voirie par type\r\n $scope.titrePieTypeVoirie = 'Voirie';\r\n $scope.legendPieTypeVoirie = '';\r\n $scope.dataPieTypeVoirie = [];\r\n\r\n // Chart patrimoine parc motorisé par type\r\n $scope.titrePieTypeMotor = 'Parc motorisé';\r\n $scope.legendPieTypeMotor = '';\r\n $scope.dataPieTypeMotor = [];\r\n\r\n // Chart patrimoine site par type\r\n $scope.titrePieTypeSite = 'Site';\r\n $scope.legendPieTypeSite = '';\r\n $scope.dataPieTypeSite = [];\r\n\r\n // Chargement\r\n serveur.chargement('Demande', $scope, nomEcranPieObjet, null)\r\n .then(function (retourChargement) {\r\n return $scope.recherche[nomEcranPieObjet](30000);\r\n })\r\n .then(function (retourRecherche) {\r\n //updatePie(nomEcranPieObjet);\r\n updateDoughnut();\r\n });\r\n\r\n serveur.chargement('Demande', $scope, nomEcranPiePriorite, null)\r\n .then(function (retourChargement) {\r\n return $scope.recherche[nomEcranPiePriorite](30000);\r\n })\r\n .then(function (retourRecherche) {\r\n updatePie(nomEcranPiePriorite);\r\n //updateDoughnut();\r\n });\r\n\r\n serveur.chargement('Demande', $scope, nomEcranPieEtatDemande, null)\r\n .then(function (retourChargement) {\r\n return $scope.recherche[nomEcranPieEtatDemande](30000);\r\n })\r\n .then(function (retourRecherche) {\r\n updatePie(nomEcranPieEtatDemande);\r\n //updateDoughnut();\r\n });\r\n\r\n serveur.chargement('Intervention', $scope, nomEcranPieEtatInterv, null)\r\n .then(function (retourChargement) {\r\n return $scope.recherche[nomEcranPieEtatInterv](30000);\r\n })\r\n .then(function (retourRecherche) {\r\n updatePie(nomEcranPieEtatInterv);\r\n //updateDoughnut();\r\n });\r\n\r\n serveur.chargement('Patrimoine', $scope, nomEcranPieCategPatri, null)\r\n .then(function (retourChargement) {\r\n return $scope.recherche[nomEcranPieCategPatri](30000);\r\n })\r\n .then(function (retourRecherche) {\r\n updatePie(nomEcranPieCategPatri);\r\n //updateDoughnut();\r\n });\r\n\r\n /*serveur.chargement('Patrimoine', $scope, nomEcranPieTypePatri, null)\r\n .then(function (retourChargement) {\r\n return $scope.recherche[nomEcranPieTypePatri](30000);\r\n })\r\n .then(function (retourRecherche) {\r\n updatePie(nomEcranPieTypePatri);\r\n //updateDoughnut();\r\n });*/\r\n\r\n serveur.chargement('Patrimoine', $scope, nomEcranPieTypeBati, null)\r\n .then(function (retourChargement) {\r\n return $scope.recherche[nomEcranPieTypeBati](30000);\r\n })\r\n .then(function (retourRecherche) {\r\n updatePie(nomEcranPieTypeBati);\r\n //updateDoughnut();\r\n });\r\n\r\n serveur.chargement('Patrimoine', $scope, nomEcranPieTypeEspVert, null)\r\n .then(function (retourChargement) {\r\n return $scope.recherche[nomEcranPieTypeEspVert](30000);\r\n })\r\n .then(function (retourRecherche) {\r\n updatePie(nomEcranPieTypeEspVert);\r\n //updateDoughnut();\r\n });\r\n\r\n serveur.chargement('Patrimoine', $scope, nomEcranPieTypeAssain, null)\r\n .then(function (retourChargement) {\r\n return $scope.recherche[nomEcranPieTypeAssain](30000);\r\n })\r\n .then(function (retourRecherche) {\r\n updatePie(nomEcranPieTypeAssain);\r\n //updateDoughnut();\r\n });\r\n\r\n serveur.chargement('Patrimoine', $scope, nomEcranPieTypeVoirie, null)\r\n .then(function (retourChargement) {\r\n return $scope.recherche[nomEcranPieTypeVoirie](30000);\r\n })\r\n .then(function (retourRecherche) {\r\n updatePie(nomEcranPieTypeVoirie);\r\n //updateDoughnut();\r\n });\r\n\r\n serveur.chargement('Patrimoine', $scope, nomEcranPieTypeMotor, null)\r\n .then(function (retourChargement) {\r\n return $scope.recherche[nomEcranPieTypeMotor](30000);\r\n })\r\n .then(function (retourRecherche) {\r\n updatePie(nomEcranPieTypeMotor);\r\n //updateDoughnut();\r\n });\r\n\r\n serveur.chargement('Patrimoine', $scope, nomEcranPieTypeSite, null)\r\n .then(function (retourChargement) {\r\n return $scope.recherche[nomEcranPieTypeSite](30000);\r\n })\r\n .then(function (retourRecherche) {\r\n updatePie(nomEcranPieTypeSite);\r\n //updateDoughnut();\r\n });\r\n\r\n serveur.chargement('Demande', $scope, nomEcranBar, null)\r\n .then(function (retourChargement) {\r\n return $scope.recherche[nomEcranBar](30000);\r\n })\r\n .then(function (retourRecherche) {\r\n updateBar();\r\n //updateLine();\r\n });\r\n\r\n $scope.reload = function () {\r\n serveur.chargement('Demande', $scope, nomEcranPieObjet);\r\n serveur.chargement('Demande', $scope, nomEcranPiePriorite);\r\n serveur.chargement('Demande', $scope, nomEcranPieEtatDemande);\r\n serveur.chargement('Intervention', $scope, nomEcranPieEtatInterv);\r\n serveur.chargement('Patrimoine', $scope, nomEcranPieCategPatri);\r\n //serveur.chargement('Patrimoine', $scope, nomEcranPieTypePatri);\r\n serveur.chargement('Patrimoine', $scope, nomEcranPieTypeBati);\r\n serveur.chargement('Patrimoine', $scope, nomEcranPieTypeEspVert);\r\n serveur.chargement('Patrimoine', $scope, nomEcranPieTypeAssain);\r\n serveur.chargement('Patrimoine', $scope, nomEcranPieTypeVoirie);\r\n serveur.chargement('Patrimoine', $scope, nomEcranPieTypeMotor);\r\n serveur.chargement('Patrimoine', $scope, nomEcranPieTypeSite);\r\n serveur.chargement('Demande', $scope, nomEcranBar);\r\n };\r\n }])\r\n;\r\n","angular.module(\"moteur/composants/OpPopupAjoutElement.html\", []).run([\"$templateCache\", function($templateCache) {\n $templateCache.put(\"moteur/composants/OpPopupAjoutElement.html\",\n \"

{{titre}}

Voulez-vous vraiment supprimer {{libElement}} ?
{{element.libelle}}
\");\n}]);\n","/**\r\n * @version 1.0b\r\n * @copyright 2015 Operis\r\n * @Author Pierre-Emmanuel Balageas, Alcer - Operis\r\n */\r\n\r\n'use strict';\r\n\r\nangular.module('fr.operis.moteurV4.composants.OpPopupAjoutElement', ['ui.bootstrap', 'fr.operis.moteurV4.composants.OpTextInput'])\r\n .constant('fr.operis.moteurV4.composants.OpPopupAjoutElementControleur.TYPE_POPUPAVERTISSEMENT', 'avertissement')\r\n .constant('fr.operis.moteurV4.composants.OpPopupAjoutElementControleur.TYPE_POPUPCONFIRMATIONWARNING', 'warning')\r\n .constant('fr.operis.moteurV4.composants.OpPopupAjoutElementControleur.TYPE_POPUPCONFIRMATIONDANGER', 'danger')\r\n .constant('fr.operis.moteurV4.composants.OpPopupAjoutElementControleur.TYPE_POPUPAJOUT', 'ajout')\r\n .constant('fr.operis.moteurV4.composants.OpPopupAjoutElementControleur.TYPE_POPUPSUPPRESSION', 'suppression')\r\n .constant('fr.operis.moteurV4.composants.OpPopupAjoutElementControleur.TYPE_POPUPSUPPRESSION_MULTIPLE', 'suppressionMultiple')\r\n .controller('fr.operis.moteurV4.composants.OpPopupAjoutElementControleur', ['$scope', '$modalInstance', '$window',\r\n 'fr.operis.moteurV4.composants.OpPopupAjoutElementControleur.TYPE_POPUPAVERTISSEMENT',\r\n 'fr.operis.moteurV4.composants.OpPopupAjoutElementControleur.TYPE_POPUPCONFIRMATIONWARNING',\r\n 'fr.operis.moteurV4.composants.OpPopupAjoutElementControleur.TYPE_POPUPCONFIRMATIONDANGER',\r\n 'fr.operis.moteurV4.composants.OpPopupAjoutElementControleur.TYPE_POPUPAJOUT',\r\n 'fr.operis.moteurV4.composants.OpPopupAjoutElementControleur.TYPE_POPUPSUPPRESSION',\r\n 'fr.operis.moteurV4.composants.OpPopupAjoutElementControleur.TYPE_POPUPSUPPRESSION_MULTIPLE',\r\n 'titre', 'libElement', 'entite', 'descriptions',\r\n 'listes', 'nomTable', 'type', 'listeElements','nomModule', function ($scope, $modalInstance, $window,\r\n TYPE_POPUPAVERTISSEMENT, TYPE_POPUPCONFIRMATIONWARNING, TYPE_POPUPCONFIRMATIONDANGER, TYPE_POPUPAJOUT,\r\n TYPE_POPUPSUPPRESSION, TYPE_POPUPSUPPRESSION_MULTIPLE, titre, libElement, entite, descriptions, listes,\r\n nomTable, type, listeElements, nomModule) {\r\n $scope.titre = titre;\r\n $scope.libElement = (!angular.isNullOrUndefined(libElement) && (libElement.trim() !== \"\")) ? libElement : \"cet élément\";\r\n $scope.listeElements = listeElements;\r\n $scope.entite = entite;\r\n $scope.descriptions = descriptions;\r\n $scope.listes = listes;\r\n $scope.nomTable = nomTable;\r\n $scope.isAvertissement = (type == TYPE_POPUPAVERTISSEMENT);\r\n $scope.isConfirmation = ((type == TYPE_POPUPCONFIRMATIONWARNING) || (type == TYPE_POPUPCONFIRMATIONDANGER));\r\n $scope.typeConfirmation = type;\r\n $scope.isFenetreAjout = (type == TYPE_POPUPAJOUT);\r\n $scope.isSuppression = (type == TYPE_POPUPSUPPRESSION);\r\n $scope.isSuppressionMultiple = (type == TYPE_POPUPSUPPRESSION_MULTIPLE);\r\n $scope.champs = {};\r\n $scope.nomModule = nomModule;\r\n\r\n if (!angular.isNullOrUndefined(nomTable)) {\r\n $scope.champs[nomTable] = {};\r\n\r\n for (var i = 0; i < descriptions[nomTable].length; i++) {\r\n var nomColonne = descriptions[nomTable][i].nom;\r\n\r\n if (!angular.isNullOrUndefined(nomColonne) && (!angular.isNullOrUndefined($scope.descriptions[nomTable][nomColonne]))) {\r\n $scope.champs[nomTable][nomColonne] = {\r\n descriptions: $scope.descriptions[nomTable][nomColonne]\r\n };\r\n\r\n // Le cas échéant, renseigner colonnes du clé primaire à partir de l'entité parent\r\n if (($scope.champs[nomTable][nomColonne].descriptions.estClePrimaire) && ($scope.champs[nomTable][nomColonne].descriptions.estCleEtrangere)) {\r\n if ((!angular.isNullOrUndefined($scope.entite)) && (!angular.isNullOrUndefined($scope.entite[nomColonne]))) {\r\n if ($scope.entite[nomColonne].descriptions.estClePrimaire) {\r\n $scope.champs[nomTable][nomColonne].valeur = $scope.entite[nomColonne].valeur;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n $scope.confirmer = function () {\r\n $modalInstance.close(true);\r\n };\r\n\r\n $scope.supprimer = function () {\r\n $modalInstance.close(true);\r\n };\r\n\r\n $scope.valider = function () {\r\n if (!angular.isNullOrUndefined(nomTable)) {\r\n $modalInstance.close($scope.champs[nomTable]);\r\n }\r\n };\r\n\r\n $scope.fermer = function (erreur) {\r\n $modalInstance.close();\r\n };\r\n }\r\n ]);\r\n\r\n","(function() {\r\n\r\n 'use strict';\r\n\r\n angular.module('operiaChat.chat', [\r\n 'moteur/composants/operiaChat/operiaChat.html',\r\n 'moteur/composants/operiaVideo/operiaVideo.html'\r\n ]);\r\n\r\n})();"," /**\r\n * @version 2.1\r\n * @copyright 2015 Operis\r\n * @Author Laure-Hélène Bruneton, Alcer\r\n */\r\n\r\n'use strict';\r\n\r\nangular.module('fr.operis.moteurV4.composants.cartographie.OpCartographie', ['ngSanitize', 'fr.operis.moteurV4.utils.Cartographie'])\r\n .directive('opCartographie',\r\n ['$ocLazyLoad', '$timeout', '$http',\r\n 'fr.operis.moteurV4.communication.OperisWSServer',\r\n 'fr.operis.moteurV4.utils.Cartographie',\r\n 'fr.operis.moteurV4.utils.Conversion',\r\n 'fr.operis.moteurV4.utils.Conversion.TYPE_DATE',\r\n function($ocLazyLoad, $timeout, $http,\r\n serveur,\r\n utilsCarto,\r\n conversion,\r\n TYPE_DATE) {\r\n var currentId = 0;\r\n return {\r\n restrict: 'E',\r\n scope: {\r\n opModule: '@',\r\n opDescription: '=',\r\n opDonnees: '=',\r\n opSelection: '=',\r\n opStyle: '@',\r\n opAffichageSectionGauche: '='\r\n },\r\n template: '' +\r\n '
' +\r\n '
' +\r\n '
' +\r\n ' ' +\r\n '
' +\r\n '
' +\r\n ' ' +\r\n '
' +\r\n '
' +\r\n ' ' +\r\n '
' +\r\n '
' +\r\n ' ' +\r\n '
' +\r\n '
' +\r\n '
' +\r\n '
' +\r\n '
' +\r\n ' ' +\r\n ' ' +\r\n ' ' +\r\n ' ' +\r\n ' ' +\r\n ' ' +\r\n ' ' +\r\n ' ' +\r\n ' ' +\r\n '
' +\r\n '
',\r\n controllerAs: 'cartographieCtrl',\r\n controller: ['$scope',\r\n function($scope) {\r\n var vm = this;\r\n \r\n // Identifiant de la carte\r\n vm.id = ++currentId;\r\n\r\n // Outils actifs\r\n vm.outilFiltreActif = false;\r\n vm.outilInfoActif = false;\r\n \r\n // Classes\r\n vm.classeBarreOutils = \"carto-barre-outils\";\r\n vm.classeOpenLayers = \"carto-openlayers\";\r\n \r\n if (!angular.isNullOrUndefined($scope.opStyle)) {\r\n vm.classeBarreOutils += $scope.opStyle;\r\n vm.classeOpenLayers += $scope.opStyle;\r\n }\r\n }\r\n ],\r\n link: function(scope, element, attrs, controller) {\r\n // Variables globales\r\n var context, epsgCode;\r\n var markers, markerStyle, markerSelectedStyle;\r\n var vectorLayer, wmsLayer, map;\r\n \r\n // Contexte\r\n utilsCarto.chargerContexte(scope.opModule)\r\n .then(function(responseContext) {\r\n context = responseContext;\r\n // Projection\r\n return utilsCarto.chargerProjection(context.EPSG);\r\n }).then(function(responseEpsgCode) {\r\n epsgCode = responseEpsgCode;\r\n // OpenLayers\r\n return $ocLazyLoad.load(['css/ol.min.css', 'lib/ol.min.js']);\r\n })\r\n .then(function() {\r\n /* MARQUEURS */\r\n markers = new ol.Collection([]);\r\n\r\n markerStyle = new ol.style.Style({\r\n image: new ol.style.Icon(/** @type {olx.style.IconOptions} */ ({\r\n anchor: [0.5, 0.5],\r\n anchorXUnits: 'fraction',\r\n anchorYUnits: 'fraction',\r\n opacity: 0.90,\r\n src: 'img/punaise_0000ff_Centre.png'\r\n }))\r\n });\r\n\r\n markerSelectedStyle = new ol.style.Style({\r\n image: new ol.style.Icon(/** @type {olx.style.IconOptions} */ ({\r\n anchor: [0.5, 0.5],\r\n anchorXUnits: 'fraction',\r\n anchorYUnits: 'fraction',\r\n opacity: 0.90,\r\n src: 'img/punaise_0000ff_Centre_Focus.png'\r\n }))\r\n });\r\n\r\n // Mantis Operia 6667 : Regroupement marqueurs sur la vue cartographie\r\n var clusterSource = new ol.source.Cluster({\r\n source: new ol.source.Vector({ features: markers })\r\n });\r\n\r\n vectorLayer = new ol.layer.Vector({\r\n /*source: new ol.source.Vector({ features: markers }),\r\n style: markerStyle*/\r\n source: clusterSource,\r\n style: function(feature) {\r\n var nbreFeatures = feature.get('features').length;\r\n if (nbreFeatures > 1) {\r\n var clusterSelected = false;\r\n for (var i = 0; i < nbreFeatures; i++) {\r\n var f = feature.get('features')[i];\r\n if (f.get('selected')) {\r\n clusterSelected = true;\r\n break;\r\n }\r\n }\r\n\r\n var imgCluster = new ol.style.Icon({\r\n anchor: [0.5, 0.5],\r\n anchorXUnits: 'fraction',\r\n anchorYUnits: 'fraction',\r\n opacity: 0.90,\r\n src: 'img/groupe_punaise.png'\r\n });\r\n\r\n var imgSelectedCluster = new ol.style.Icon({\r\n anchor: [0.5, 0.5],\r\n anchorXUnits: 'fraction',\r\n anchorYUnits: 'fraction',\r\n opacity: 0.90,\r\n src: 'img/groupe_punaise_focus.png'\r\n });\r\n\r\n return new ol.style.Style({\r\n /*image: new ol.style.Circle({\r\n radius: 10,\r\n stroke: new ol.style.Stroke({\r\n color: '#fff'\r\n }),\r\n fill: new ol.style.Fill({\r\n color: '#00008b'\r\n })\r\n }),*/\r\n image: (clusterSelected) ? imgSelectedCluster : imgCluster,\r\n text: new ol.style.Text({\r\n text: nbreFeatures.toString(),\r\n fill: new ol.style.Fill({\r\n color: '#fff'\r\n })\r\n })\r\n });\r\n } else {\r\n var marker = feature.get('features')[0];\r\n if (marker.get('selected')) {\r\n return markerSelectedStyle;\r\n } else {\r\n return markerStyle;\r\n }\r\n }\r\n }\r\n });\r\n \r\n if (!angular.isNullOrUndefined(context.sourceWMTS)) {\r\n return $http.get(context.sourceWMTS.capabilities);\r\n }\r\n })\r\n .then(function(responseHttp) {\r\n if (!angular.isNullOrUndefined(responseHttp)) {\r\n return responseHttp.data\r\n }\r\n }, function(reason) {\r\n //\r\n })\r\n .then(function(wmtsCapabilities) {\r\n /* COUCHES */\r\n var layers = [vectorLayer];\r\n // wms\r\n if (!angular.isNullOrUndefined(context.sourceWMS)) {\r\n wmsLayer = new ol.layer.Image({\r\n source: new ol.source.ImageWMS({\r\n url: context.sourceWMS.url,\r\n params: {'LAYERS': context.sourceWMS.layers}\r\n })\r\n });\r\n layers.unshift(wmsLayer);\r\n }\r\n \r\n // wmts\r\n if (!angular.isNullOrUndefined(wmtsCapabilities)) {\r\n var parser = new ol.format.WMTSCapabilities();\r\n var result = parser.read(wmtsCapabilities);\r\n var options = ol.source.WMTS.optionsFromCapabilities(result, {\r\n layer: context.sourceWMTS.layer,\r\n matrixSet: context.sourceWMTS.matrixSet\r\n });\r\n\r\n var wmtsLayer = new ol.layer.Tile({\r\n source: new ol.source.WMTS(/** @type {!olx.source.WMTSOptions} */ (options))\r\n });\r\n layers.unshift(wmtsLayer);\r\n }\r\n\r\n // osm par défaut\r\n if (layers.length == 1) {\r\n var osmLayer = new ol.layer.Tile({\r\n source: new ol.source.OSM()\r\n });\r\n layers.unshift(osmLayer);\r\n }\r\n\r\n map = new ol.Map({\r\n layers: layers,\r\n controls: ol.control.defaults().extend([\r\n new ol.control.ScaleLine(),\r\n new ol.control.ZoomSlider(),\r\n new ol.control.FullScreen() // Mantis Operia 6668 : Vue cartographie en plein écran\r\n ]),\r\n target: document.getElementById('map' + controller.id),\r\n view: new ol.View({\r\n projection: 'EPSG:' + epsgCode,\r\n center: [0,0],\r\n zoom: 1\r\n })\r\n });\r\n\r\n map.getView().fit(context.initialExtent);\r\n\r\n /* INTERACTIONS */\r\n // Note: when Single-click is used double-clicks won't select features.\r\n // This in contrast to Click, where a double-click will both select the feature\r\n // and zoom the map (because of the DoubleClickZoom interaction).\r\n // Note that Single-click is less responsive than Click because of the delay it uses to detect double-clicks.\r\n var popup = document.getElementById('popup' + controller.id);\r\n var title = document.getElementById('popup-title' + controller.id);\r\n var content = document.getElementById('popup-content' + controller.id);\r\n var previous = document.getElementById('popup-previous' + controller.id);\r\n var count = document.getElementById('popup-count' + controller.id);\r\n var next = document.getElementById('popup-next' + controller.id);\r\n var closer = document.getElementById('popup-closer' + controller.id);\r\n\r\n var overlay = new ol.Overlay({ element: popup });\r\n map.addOverlay(overlay);\r\n \r\n refreshPopup = function(indice, total, titleHTML, contentChild) {\r\n count.innerHTML = indice + \"/\" + total;\r\n title.innerHTML = titleHTML;\r\n content.innerHTML = \"\";\r\n content.appendChild(contentChild);\r\n };\r\n\r\n closer.onclick = function() {\r\n overlay.setPosition(undefined);\r\n return false; //Don't follow the href\r\n };\r\n\r\n // display popup on singleclick\r\n map.on('singleclick', function(evt) {\r\n var feature = map.forEachFeatureAtPixel(evt.pixel,\r\n function(feature) {\r\n // Mantis Operia 6667 : Regroupement marqueurs sur la vue cartographie\r\n var features = feature.get('features');\r\n return features;\r\n });\r\n\r\n if (feature) {\r\n if (controller.outilInfoActif) {\r\n refreshPopup(1, 1, scope.opModule, feature[0].get('information')); // Mantis Operia 6667 : Regroupement marqueurs sur la vue cartographie\r\n overlay.setPosition(feature[0].getGeometry().getCoordinates());\r\n } else {\r\n // Mantis Operia 6667 : Regroupement marqueurs sur la vue cartographie\r\n var featureSelected = false;\r\n var regroupement = (feature.length > 1);\r\n\r\n if (regroupement) {\r\n for (var f = 0; f < feature.length; f++) {\r\n if (feature[f].get('selected')) {\r\n featureSelected = true;\r\n break;\r\n }\r\n }\r\n } else {\r\n featureSelected = feature[0].get('selected');\r\n }\r\n\r\n for (var i = 0; i < feature.length; i++) {\r\n basculerSelection(feature[i].get('element'), regroupement, featureSelected);\r\n }\r\n }\r\n } else if (controller.outilInfoActif) {\r\n var viewResolution = /** @type {number} */ (map.getView().getResolution());\r\n var url = wmsLayer.getSource().getGetFeatureInfoUrl(\r\n evt.coordinate, viewResolution, 'EPSG:' + epsgCode,\r\n {'INFO_FORMAT': context.sourceWMS.infoFormat});\r\n if (url) {\r\n $http.get(url).then(function(response) { \r\n var features = new ol.format.GeoJSON().readFeatures(response.data);\r\n \r\n if (!angular.isNullOrUndefined(features) && features.length > 0) {\r\n var index = 0,\r\n title = response.data[\"features\"][index][\"layerName\"],\r\n table = utilsCarto.creerTableAttributs(features[index]);\r\n refreshPopup(\"1\",features.length, title, table);\r\n \r\n if (features.length > 1) { \r\n previous.onclick = function() {\r\n index = Math.max(0, --index);\r\n title = response.data[\"features\"][index][\"layerName\"];\r\n table = utilsCarto.creerTableAttributs(features[index]);\r\n refreshPopup((index + 1),features.length, title, table);\r\n return false; //Don't follow the href\r\n };\r\n\r\n next.onclick = function() {\r\n index = Math.min(++index, features.length - 1);\r\n title = response.data[\"features\"][index][\"layerName\"];\r\n table = utilsCarto.creerTableAttributs(features[index]);\r\n refreshPopup((index + 1),features.length, title, table);\r\n return false; //Don't follow the href\r\n };\r\n }\r\n overlay.setPosition(evt.coordinate);\r\n } else {\r\n overlay.setPosition(undefined);\r\n }\r\n });\r\n }\r\n }\r\n });\r\n\r\n // change mouse cursor when over marker\r\n map.on('pointermove', function(e) {\r\n if (e.dragging) {\r\n return;\r\n }\r\n var pixel = map.getEventPixel(e.originalEvent);\r\n var hit = map.hasFeatureAtPixel(pixel);\r\n map.getTarget().style.cursor = hit ? 'pointer' : '';\r\n });\r\n\r\n //-----------------------------------------------------------------\r\n // Fonctions carto\r\n function resetMarkers() {\r\n var points = [];\r\n markers.clear();\r\n\r\n if (colCoordonnees) {\r\n for (var i = 0; i < scope.opDonnees.length; i++) {\r\n var element = scope.opDonnees[i]; \r\n var coordonnes = element[colCoordonnees].valeur;\r\n var latlonprojection = coordonnes.split(';');\r\n\r\n // Mantis Operia 6667 : Regroupement marqueurs sur la vue cartographie\r\n if ((latlonprojection.length > 2) &&\r\n (!angular.isNullOrUndefined(latlonprojection[0])) &&\r\n (!angular.isNullOrUndefined(latlonprojection[1])) &&\r\n (!angular.isNullOrUndefined(latlonprojection[2])) &&\r\n (latlonprojection[0] != '') &&\r\n (latlonprojection[1] != '') &&\r\n (latlonprojection[2] != '')) {\r\n var message = document.createElement(\"div\");\r\n if (colsChampVisibleCarto.length == 0) {\r\n message.innerHTML = \"Aucun champ visible pour la cartographie\";\r\n } else {\r\n for (var j = 0; j < colsChampVisibleCarto.length; j++) {\r\n var valeur = element[colsChampVisibleCarto[j]].valeur;\r\n\r\n if (valeur instanceof Date ) {\r\n valeur = conversion.versTexte(valeur,TYPE_DATE);\r\n }\r\n if (j == 0) {\r\n message.innerHTML = '

' + valeur + '

';\r\n } else {\r\n message.innerHTML += '

' + valeur + '

';\r\n }\r\n }\r\n }\r\n \r\n var marker = new ol.Feature({\r\n geometry: new ol.geom.Point(\r\n ol.proj.transform(\r\n [parseFloat(latlonprojection[0]), parseFloat(latlonprojection[1])],\r\n 'EPSG:' + latlonprojection[2], 'EPSG:' + epsgCode\r\n )),\r\n element: element,\r\n information: message,\r\n selected: (scope.opSelection.indexOf(element) != -1)\r\n });\r\n \r\n if (marker.get('selected')) {\r\n marker.setStyle(markerSelectedStyle)\r\n } \r\n points.push(marker);\r\n }\r\n }\r\n }\r\n\r\n if (controller.outilFiltreActif) {\r\n points = points.filter(\r\n function(marker) {\r\n return marker.get('selected');\r\n });\r\n }\r\n markers.extend(points);\r\n }\r\n \r\n //-----------------------------------------------------------------\r\n // Fonctions\r\n function basculerSelection(element, regroupement, featureSelected) {\r\n scope.$apply(\r\n function() {\r\n var index = scope.opSelection.indexOf(element);\r\n\r\n // Mantis Operia 6667 : Regroupement marqueurs sur la vue cartographie\r\n if (regroupement) {\r\n if (featureSelected) {\r\n if (index != -1) {\r\n scope.opSelection.splice(index, 1);\r\n }\r\n } else {\r\n scope.opSelection.push(element);\r\n }\r\n } else {\r\n if (index != -1) {\r\n scope.opSelection.splice(index, 1);\r\n } else {\r\n scope.opSelection.push(element);\r\n }\r\n }\r\n });\r\n }\r\n\r\n //-----------------------------------------------------------------\r\n // Fonctions du controller\r\n\r\n controller.switchOutilInfo = function() {\r\n controller.outilInfoActif = !controller.outilInfoActif;\r\n }\r\n\r\n controller.switchOutilFiltre = function() {\r\n controller.outilFiltreActif = !controller.outilFiltreActif;\r\n resetMarkers();\r\n }\r\n\r\n controller.etendueInitiale = function() {\r\n map.getView().fit(context.initialExtent);\r\n }\r\n\r\n controller.etendueDonnees = function() {\r\n var points = [];\r\n var selectedPoints = markers.getArray().filter(\r\n function(marker) {\r\n return marker.get('selected');\r\n });\r\n \r\n if (selectedPoints.length == 1) {\r\n map.getView().setCenter(selectedPoints[0].getGeometry().getCoordinates());\r\n map.getView().setZoom(15);\r\n } else {\r\n if (selectedPoints.length > 0) {\r\n points = selectedPoints;\r\n } else {\r\n points = markers.getArray();\r\n }\r\n \r\n var coordinates = points.map(\r\n function(marker) {\r\n return marker.getGeometry().getCoordinates();\r\n });\r\n \r\n var extent = ol.extent.boundingExtent(coordinates);\r\n map.getView().fit(extent);\r\n }\r\n }\r\n\r\n //-----------------------------------------------------------------\r\n // Evénements\r\n\r\n // Première colonne de type coordonnées lue dans les descriptions\r\n var colCoordonnees;\r\n // Tableau des colonnes des champs principaux\r\n var colsChampVisibleCarto;\r\n\r\n var unwatchDescription = scope.$watch('opDescription', function(value) {\r\n if (!angular.isNullOrUndefined(value)) {\r\n colsChampVisibleCarto = [];\r\n for (var i = 0; i < value.length; i++) {\r\n if (value[i].typeComplexe && value[i].typeComplexe == 'COORDONNEES') {\r\n colCoordonnees = value[i].nom;\r\n }\r\n if (value[i]['visible'].indexOf('C') != -1)\r\n colsChampVisibleCarto.push(value[i]['nom']);\r\n }\r\n }\r\n });\r\n\r\n scope.$watch('opDonnees', function(value) {\r\n if (!angular.isNullOrUndefined(value)) {\r\n resetMarkers();\r\n }\r\n });\r\n\r\n scope.$watchCollection('opSelection', function(value) {\r\n if (!angular.isNullOrUndefined(value)) {\r\n resetMarkers();\r\n }\r\n });\r\n \r\n scope.$watch('opAffichageSectionGauche', function(value) {\r\n if(map && !angular.isNullOrUndefined(value)) {\r\n $timeout(\r\n function() {\r\n map.updateSize();\r\n },\r\n 100, false);\r\n }\r\n });\r\n });\r\n }\r\n };\r\n }\r\n ]);","angular.module(\"moteur/composants/cartographie/OpPopupFeature.html\", []).run([\"$templateCache\", function($templateCache) {\n $templateCache.put(\"moteur/composants/cartographie/OpPopupFeature.html\",\n \"

{{titre}}

\");\n}]);\n","/**\r\n * @name opPopupFeature\r\n *\r\n * @version 1.0\r\n * @copyright 2018 Operis\r\n * @author Laure-Hélène Bruneton, Alcer - Operis\r\n *\r\n */\r\n\r\n'use strict';\r\n\r\nangular.module('fr.operis.moteurV4.composants.cartographie.OpPopupFeature', [])\r\n .controller('fr.operis.moteurV4.composants.cartographie.OpPopupFeatureControleur',\r\n ['$scope', '$modalInstance', '$ocLazyLoad',\r\n 'fr.operis.moteurV4.utils.Cartographie',\r\n 'moduleNom', 'entite',\r\n function ($scope, $modalInstance, $ocLazyLoad,\r\n utilsCarto, moduleNom, entite) {\r\n var context, epsgCode;\r\n\r\n // Contexte\r\n utilsCarto.chargerContexte(moduleNom)\r\n .then(function(responseContext) {\r\n context = responseContext;\r\n // Projection\r\n return utilsCarto.chargerProjection(context.EPSG);\r\n }).then(function(responseEpsgCode) {\r\n epsgCode = responseEpsgCode;\r\n // OpenLayers\r\n return $ocLazyLoad.load('lib/ol.min.js');\r\n })\r\n .then(function() {\r\n // generate a GetFeature request\r\n var featureRequest = new ol.format.WFS().writeGetFeature({\r\n featureNS: context.sourceWFS.featureNS,\r\n featurePrefix: context.sourceWFS.featurePrefix,\r\n featureTypes: [entite.REF_CODE.valeur],\r\n outputFormat: context.sourceWFS.format,\r\n filter: ol.format.filter.equalTo(context.sourceWFS.idProperty, entite.REF_ID.valeur)\r\n });\r\n\r\n // then post the request and add the received features to the popup body\r\n fetch(context.sourceWFS.url, {\r\n method: 'POST',\r\n body: new XMLSerializer().serializeToString(featureRequest)\r\n }).then(function(response) {\r\n return response.text();\r\n }).then(function(text) {\r\n\r\n var doc;\r\n if (typeof DOMParser != \"undefined\") {\r\n var parser = new DOMParser();\r\n doc = parser.parseFromString(text, \"text/xml\");\r\n }\r\n\r\n var oldNode = doc.children[0].children[1],\r\n newNode = doc.createElementNS(\"http://www.opengis.net/gml\", \"gml:featureMember\");\r\n\r\n newNode.appendChild(oldNode.firstChild);\r\n doc.children[0].replaceChild(newNode, oldNode);\r\n\r\n var feature = new ol.format.GML3().readFeatures(doc.children[0].children[1]);\r\n \r\n var content = document.getElementById('popup-feature');\r\n content.appendChild(utilsCarto.creerTableAttributs(feature));\r\n \r\n $scope.$apply(function() { $scope.titre = entite.LIBELLE.valeur; });\r\n });\r\n });\r\n \r\n $scope.titre = \"Chargement en cours...\";\r\n\r\n // Fermer\r\n $scope.fermer = function () {\r\n $modalInstance.close(\"fermer\");\r\n };\r\n }\r\n ]\r\n );\r\n\r\n","/**\r\n * @version 1.0b\r\n * @copyright 2016 Operis\r\n * @Author Laurent Dorie - Operis\r\n */\r\n\r\n'use strict';\r\n\r\nangular.module('fr.operis.moteurV4.composants.ecriture.OpAdresse', [])\r\n .directive('opAdresse', [\r\n 'fr.operis.moteurV4.communication.OperisWSServer',\r\n 'fr.operis.moteurV4.modele.Modele.SCOPE_CHAMPS'\r\n , 'fr.operis.moteurV4.modele.Modele.SCOPE_GRILLES'\r\n ,'fr.operis.moteurV4.modele.Modele.SCOPE_LONGUEUR_MAX'\r\n ,'fr.operis.moteurV4.utils.RequeteReferentiel'\r\n ,'$timeout'\r\n ,'$window',\r\n function (serveur,\r\n SCOPE_CHAMPS,\r\n SCOPE_GRILLES,\r\n SCOPE_LONGUEUR_MAX,\r\n requetereferentiel,\r\n $timeout,\r\n $window ) {\r\n return {\r\n restrict: 'E',\r\n transclude: true,\r\n replace: true,\r\n template: function (element, attributs) {\r\n\r\n var bMobile = serveur.isMobile();\r\n var styleMobile = (serveur.isMobile()) ? ' style=\"padding-left: 0px\"' : '';\r\n var scopeSource = (attributs.opModel.indexOf('[') !== -1) ? SCOPE_GRILLES : SCOPE_CHAMPS;\r\n var id = attributs.opModel;\r\n var idAffichageAdresse = attributs.opModel.replace('[$index]','');\r\n var show = (!angular.isNullOrUndefined(attributs.opShow))?attributs.opShow:true;\r\n var opModel = scopeSource + '.' + attributs.opModel;\r\n var nomModule = attributs.opModuleNom;\r\n\r\n // Définition des autres champs d'adresse\r\n var opModelNomVoie = opModel.replace(\"_ADRESSECOMPLETE\",\"_NOMVOIE\");\r\n var opModelComplement = opModel.replace(\"_ADRESSECOMPLETE\",\"_COMPLEMENT\");\r\n var opModelLocalite = opModel.replace(\"_ADRESSECOMPLETE\",\"_LOCALITE\");\r\n var opModelCodePostal = opModel.replace(\"_ADRESSECOMPLETE\",\"_CODEPOSTAL\");\r\n var opModelBoitePostale = opModel.replace(\"_ADRESSECOMPLETE\",\"_BOITEPOSTAL\");\r\n var OpModelCedex = opModel.replace(\"_ADRESSECOMPLETE\",\"_CEDEX\");\r\n var OpModelCoordGPS = opModel.replace(\"_ADRESSECOMPLETE\",\"_COORDGPS\");\r\n var OpModelEstSaisie = opModel.replace(\"_ADRESSECOMPLETE\",\"_ESTADRESSESAISIE\");\r\n var opModelQuartier = opModel.replace(\"_ADRESSECOMPLETE\",\"_QUARTIER\");\r\n\r\n // Scroll sur clique\r\n var scrollClick = (serveur.isMobile() && navigator.userAgent.match(/Android/i)) ? \"adresse-scroll-on-click \" : \"\";\r\n\r\n // Adresse complete\r\n var retour = '
'+\r\n '
' +\r\n ''+\r\n '
'+\r\n '
' +\r\n ''+\r\n ''+\r\n ' ' +\r\n ''+\r\n ''+\r\n ' ' +\r\n ''+\r\n ''+\r\n '
'+\r\n '
'+\r\n '
';\r\n\r\n // Nom Voie\r\n retour += '
' +\r\n ''+\r\n '
'+\r\n ''+\r\n '
'+\r\n '
';\r\n\r\n // Complement\r\n retour += '
' +\r\n ''+\r\n '
'+\r\n ''+\r\n '
'+\r\n ''+\r\n '
'+\r\n ''+\r\n '
'+\r\n '
';\r\n\r\n // Code Postale + Localite\r\n retour += '
' +\r\n ''+\r\n '
'+\r\n ''+\r\n '
'+\r\n ''+\r\n '
'+\r\n ''+\r\n '
'+\r\n '
';\r\n\r\n // Boite Postale + Cedex + GPS\r\n retour += '
' +\r\n ''+\r\n '
'+\r\n ''+\r\n '
'+\r\n ''+\r\n '
'+\r\n ''+\r\n '
'+\r\n ''+\r\n '
'+\r\n ''+\r\n '
'+\r\n '
';\r\n\r\n\r\n retour += '
';\r\n return retour;\r\n },\r\n link: function (scope, element, attrs) {\r\n // Paramètres d'affichage du bloc adresse\r\n scope.affichageAdresse = {};\r\n\r\n scope.adresseAffichee = function (idAffichageAdresse) {\r\n if (angular.isNullOrUndefined(scope.affichageAdresse[idAffichageAdresse])) {\r\n return false;\r\n } else {\r\n return scope.affichageAdresse[idAffichageAdresse].open;\r\n }\r\n };\r\n\r\n scope.initAffichageAdresse = function (idAffichageAdresse) {\r\n if (angular.isNullOrUndefined(scope.affichageAdresse[idAffichageAdresse])) {\r\n scope.affichageAdresse[idAffichageAdresse] = {open: false};\r\n }\r\n };\r\n\r\n scope.basculeAffichageAdresse = function (idAffichageAdresse) {\r\n scope.initAffichageAdresse(idAffichageAdresse);\r\n scope.affichageAdresse[idAffichageAdresse].open = !scope.affichageAdresse[idAffichageAdresse].open;\r\n };\r\n\r\n // Fonction de relance d'adresse\r\n if ( angular.isNullOrUndefined(scope.click_relancerRecherche)){\r\n scope.click_relancerRecherche = function(idModele){\r\n var descriptionModel = idModele.split('.');\r\n if ( angular.isNullOrUndefined (descriptionModel)\r\n || descriptionModel.length!=2 )\r\n return;\r\n\r\n var nomTable = descriptionModel[0].replace('[$index]','');;\r\n var nomColonne = descriptionModel[1];\r\n\r\n var inputs = element.find('input');\r\n angular.forEach(inputs, function(input) {\r\n if ( input.id == idModele ){\r\n var ngModel = angular.element(input).controller('ngModel');\r\n var old = ngModel.$viewValue;\r\n if ( !angular.isNullOrUndefined (old) && old.length>0)\r\n ngModel.$setViewValue(old.substr(0,old.length-1));\r\n }\r\n });\r\n }\r\n }\r\n\r\n // Fonction de suppression de l'adresse complète\r\n if (angular.isNullOrUndefined(scope.changeAdresseComplete)){\r\n scope.changeAdresseComplete = function(idModele,index){\r\n var descriptionModel = idModele.split('.');\r\n if ( angular.isNullOrUndefined (descriptionModel)\r\n || descriptionModel.length!=2 )\r\n return;\r\n\r\n var nomTable = descriptionModel[0].replace('[$index]','');\r\n var nomColonne = descriptionModel[1];\r\n var scopeSource = (idModele.indexOf('[') !== -1) ? scope[SCOPE_GRILLES][nomTable][index] : scope[SCOPE_CHAMPS][nomTable];\r\n\r\n // Définition des autres champs d'adresse\r\n var opModelNomVoie = nomColonne.replace(\"_ADRESSECOMPLETE\",\"_NOMVOIE\");\r\n var opModelLocalite = nomColonne.replace(\"_ADRESSECOMPLETE\",\"_LOCALITE\");\r\n var opModelCodePostal = nomColonne.replace(\"_ADRESSECOMPLETE\",\"_CODEPOSTAL\");\r\n var OpModelEstSaisie = nomColonne.replace(\"_ADRESSECOMPLETE\",\"_ESTADRESSESAISIE\");\r\n var OpModelCoordGPS = nomColonne.replace(\"_ADRESSECOMPLETE\",\"_COORDGPS\");\r\n var opModelComplement = nomColonne.replace(\"_ADRESSECOMPLETE\",\"_COMPLEMENT\");\r\n var opModelBoitePostale = nomColonne.replace(\"_ADRESSECOMPLETE\",\"_BOITEPOSTAL\");\r\n var OpModelCedex = nomColonne.replace(\"_ADRESSECOMPLETE\",\"_CEDEX\");\r\n var OpModelCedexQuartier = nomColonne.replace(\"_ADRESSECOMPLETE\",\"_QUARTIER\");\r\n\r\n scopeSource[opModelNomVoie].valeur = null;\r\n scopeSource[opModelLocalite].valeur = null;\r\n scopeSource[opModelCodePostal].valeur = null;\r\n scopeSource[OpModelEstSaisie].valeur = null;\r\n scopeSource[OpModelCoordGPS].valeur = null;\r\n scopeSource[opModelComplement].valeur = null;\r\n scopeSource[opModelBoitePostale].valeur = null;\r\n scopeSource[OpModelCedex].valeur = null;\r\n scopeSource[OpModelCedexQuartier].valeur = null;\r\n }\r\n }\r\n\r\n // Fonction de recherche de référentiel externe d'adresse\r\n if (angular.isNullOrUndefined(scope.rechercheReferentielAdresse)){\r\n scope.rechercheReferentielAdresse = function( nomModule, nomReferentiel, parametreReferentiel, idModele,index, valeurRecherche ){\r\n var descriptionModel = idModele.split('.');\r\n if ( angular.isNullOrUndefined (descriptionModel)\r\n || descriptionModel.length!=2 )\r\n return;\r\n\r\n var nomTable = descriptionModel[0].replace('[$index]','');\r\n var nomColonne = descriptionModel[1];\r\n var OpModelEstSaisie = nomColonne.replace(\"_ADRESSECOMPLETE\",\"_ESTADRESSESAISIE\");\r\n var scopeSource = (idModele.indexOf('[') !== -1) ? scope[SCOPE_GRILLES][nomTable][index] : scope[SCOPE_CHAMPS][nomTable];\r\n scopeSource[OpModelEstSaisie].valeur = false;\r\n\r\n return requetereferentiel.rechercher( scope, nomModule, nomReferentiel, parametreReferentiel, idModele, index, valeurRecherche );\r\n }\r\n }\r\n\r\n if (angular.isNullOrUndefined(scope.changerAdresse)) {\r\n scope.changerAdresse = function(idModele, index){\r\n var descriptionModel = idModele.split('.');\r\n if ( angular.isNullOrUndefined (descriptionModel)\r\n || descriptionModel.length!=2 )\r\n return;\r\n\r\n var nomTable = descriptionModel[0].replace('[$index]','');;\r\n var nomColonne = descriptionModel[1];\r\n var scopeSource = (idModele.indexOf('[') !== -1) ? scope[SCOPE_GRILLES][nomTable][index] : scope[SCOPE_CHAMPS][nomTable];\r\n\r\n // Définition des autres champs d'adresse\r\n var opModelNomVoie = nomColonne.replace(\"_ADRESSECOMPLETE\",\"_NOMVOIE\");\r\n var opModelLocalite = nomColonne.replace(\"_ADRESSECOMPLETE\",\"_LOCALITE\");\r\n var opModelCodePostal = nomColonne.replace(\"_ADRESSECOMPLETE\",\"_CODEPOSTAL\");\r\n var OpModelEstSaisie = nomColonne.replace(\"_ADRESSECOMPLETE\",\"_ESTADRESSESAISIE\");\r\n var OpModelCoordGPS = nomColonne.replace(\"_ADRESSECOMPLETE\",\"_COORDGPS\");\r\n\r\n scopeSource[nomColonne].valeur = '';\r\n if ( !(angular.isNullOrUndefined(scopeSource[nomColonne].valeur)) ){\r\n if ( !(angular.isNullOrUndefined(scopeSource[opModelNomVoie].valeur)) ){\r\n scopeSource[nomColonne].valeur = scopeSource[opModelNomVoie].valeur;\r\n }\r\n\r\n if ( !(angular.isNullOrUndefined(scopeSource[opModelCodePostal].valeur)) && scopeSource[opModelCodePostal].valeur.length>0 ) {\r\n if ( !angular.isNullOrUndefined(scopeSource[nomColonne].valeur) && scopeSource[nomColonne].valeur.length > 0){\r\n scopeSource[nomColonne].valeur += \" \";\r\n scopeSource[nomColonne].valeur += scopeSource[opModelCodePostal].valeur;\r\n }\r\n else\r\n scopeSource[nomColonne].valeur = scopeSource[opModelCodePostal].valeur;\r\n\r\n }\r\n\r\n if ( !(angular.isNullOrUndefined(scopeSource[opModelLocalite].valeur)) && scopeSource[opModelLocalite].valeur.length>0 ) {\r\n if ( !angular.isNullOrUndefined(scopeSource[nomColonne].valeur) && scopeSource[nomColonne].valeur.length > 0){\r\n scopeSource[nomColonne].valeur += \" \";\r\n scopeSource[nomColonne].valeur += scopeSource[opModelLocalite].valeur;\r\n }\r\n else\r\n scopeSource[nomColonne].valeur = scopeSource[opModelLocalite].valeur;\r\n }\r\n\r\n scopeSource[OpModelEstSaisie].valeur = true;\r\n scopeSource[OpModelCoordGPS].valeur = null;\r\n }\r\n }\r\n }\r\n\r\n // Fonction de mise à jour des champs liés au retour du résultat de la recherche du référentiel\r\n if (angular.isNullOrUndefined(scope.onTypeAheadReferentielAdresse)) {\r\n scope.onTypeAheadReferentielAdresse = function ( idModele, $item, $index ) {\r\n var descriptionModel = idModele.split('.');\r\n if ( angular.isNullOrUndefined (descriptionModel)\r\n || descriptionModel.length!=2 )\r\n return;\r\n\r\n var nomTable = descriptionModel[0].replace('[$index]','');\r\n var nomColonne = descriptionModel[1];\r\n var scopeSource = (idModele.indexOf('[') !== -1) ? scope[SCOPE_GRILLES][nomTable][$index] : scope[SCOPE_CHAMPS][nomTable];\r\n\r\n // Définition des autres champs d'adresse\r\n var opModelNomVoie = nomColonne.replace(\"_ADRESSECOMPLETE\",\"_NOMVOIE\");\r\n var opModelLocalite = nomColonne.replace(\"_ADRESSECOMPLETE\",\"_LOCALITE\");\r\n var opModelCodePostal = nomColonne.replace(\"_ADRESSECOMPLETE\",\"_CODEPOSTAL\");\r\n var OpModelCoordGPS = nomColonne.replace(\"_ADRESSECOMPLETE\",\"_COORDGPS\");\r\n\r\n scopeSource[opModelNomVoie].valeur = '';\r\n scopeSource[opModelCodePostal].valeur = '';\r\n scopeSource[opModelLocalite].valeur = '';\r\n\r\n if ( !angular.isNullOrUndefined ( $item[\"adresse\"] ) ){\r\n scopeSource[opModelNomVoie].valeur = $item[\"adresse\"] + \" \";\r\n }\r\n\r\n if ( !angular.isNullOrUndefined ( $item[\"codepostal\"] )){\r\n scopeSource[opModelCodePostal].valeur = $item[\"codepostal\"];\r\n }\r\n\r\n if ( !angular.isNullOrUndefined ( $item[\"commune\"] ) ){\r\n scopeSource[opModelLocalite].valeur = $item[\"commune\"];\r\n }\r\n\r\n if ( !angular.isNullOrUndefined ( $item[\"coordgps\"] ) ){\r\n scopeSource[OpModelCoordGPS].valeur = $item[\"coordgps\"];\r\n }\r\n\r\n };\r\n }\r\n\r\n // Fonction de géolocalication\r\n if (angular.isNullOrUndefined(scope.geolocaliserMoi)) {\r\n scope.geolocaliserMoi = function (idModele) {\r\n var descriptionModel = idModele.split('.');\r\n if ( angular.isNullOrUndefined (descriptionModel)\r\n || descriptionModel.length!=2 )\r\n return;\r\n\r\n var nomTable = descriptionModel[0].replace('[$index]','');\r\n var nomColonne = descriptionModel[1];\r\n\r\n // Définition des autres champs d'adresse\r\n var opModelNomVoie = nomColonne.replace(\"_ADRESSECOMPLETE\",\"_NOMVOIE\");\r\n var opModelLocalite = nomColonne.replace(\"_ADRESSECOMPLETE\",\"_LOCALITE\");\r\n var opModelCodePostal = nomColonne.replace(\"_ADRESSECOMPLETE\",\"_CODEPOSTAL\");\r\n var opModelCoordGPS = nomColonne.replace(\"_ADRESSECOMPLETE\",\"_COORDGPS\");\r\n var scopeSource = (idModele.indexOf('[') !== -1) ? scope[SCOPE_GRILLES][nomTable][$index] : scope[SCOPE_CHAMPS][nomTable];\r\n\r\n scopeSource[nomColonne].valeur = '';\r\n scopeSource[opModelNomVoie].valeur = '';\r\n scopeSource[opModelCodePostal].valeur = '';\r\n scopeSource[opModelLocalite].valeur = '';\r\n scopeSource[opModelCoordGPS].valeur = '';\r\n\r\n if ($window.navigator.geolocation) {\r\n $window.navigator.geolocation.getCurrentPosition(function (position) {\r\n // Si champ adresse alors récupérer l'adresse selon les coordonnées XY\r\n var rechercheXY = \"lon=\" + position.coords.longitude + \"&lat=\" + position.coords.latitude;\r\n\r\n requetereferentiel.rechercher(scope, scope.nomModule, \"geolocaliserMoi\", null, null, null, rechercheXY).then(\r\n function (retourRecherche) {\r\n if (!angular.isNullOrUndefined(retourRecherche) && (retourRecherche.length > 0)) {\r\n if ( !angular.isNullOrUndefined ( retourRecherche[0][\"adresse\"] ) ){\r\n scopeSource[opModelNomVoie].valeur = retourRecherche[0][\"adresse\"] + \" \";\r\n }\r\n\r\n if ( !angular.isNullOrUndefined ( retourRecherche[0][\"codepostal\"] )){\r\n scopeSource[opModelCodePostal].valeur = retourRecherche[0][\"codepostal\"];\r\n }\r\n\r\n if ( !angular.isNullOrUndefined ( retourRecherche[0][\"commune\"] ) ){\r\n scopeSource[opModelLocalite].valeur = retourRecherche[0][\"commune\"];\r\n }\r\n\r\n if ( !angular.isNullOrUndefined ( retourRecherche[0][\"coordgps\"] ) ){\r\n scopeSource[opModelCoordGPS].valeur = retourRecherche[0][\"coordgps\"];\r\n }\r\n\r\n scopeSource[nomColonne].valeur = retourRecherche[0].libelle;\r\n }\r\n });\r\n });\r\n }\r\n };\r\n }\r\n }\r\n };\r\n }])\r\n\r\n .directive('adresseScrollOnClick', ['$ocLazyLoad', '$document', '$window', function($ocLazyLoad, $document, $window) {\r\n return {\r\n restrict: 'A',\r\n link: function (scope, element) {\r\n $ocLazyLoad.load({\r\n serie: true, files: ['lib/jquery.min.js']\r\n }).then(function () {\r\n $document.ready(function () {\r\n element.on('click', function () {\r\n if ($(element).offset().top > ($window.innerHeight * 0.20)) {\r\n var posActuel = $document[0].body.scrollTop;\r\n $(\"html, body\").animate({scrollTop: posActuel + $(element).offset().top - 80}, \"slow\");\r\n }\r\n });\r\n });\r\n });\r\n }\r\n }\r\n }])\r\n;","/**\r\n * @version 1.0b\r\n * @copyright 2017 Operis\r\n * @Author Laurent Dorie - Operis\r\n */\r\n\r\n'use strict';\r\n\r\nangular.module('fr.operis.moteurV4.composants.ecriture.OpContact', [])\r\n .directive('opContact', [\r\n 'fr.operis.moteurV4.communication.OperisWSServer',\r\n 'fr.operis.moteurV4.modele.Modele.SCOPE_CHAMPS'\r\n , 'fr.operis.moteurV4.modele.Modele.SCOPE_GRILLES'\r\n ,'fr.operis.moteurV4.modele.Modele.SCOPE_LONGUEUR_MAX'\r\n ,'fr.operis.moteurV4.utils.RequeteReferentiel'\r\n ,'$document',\r\n function (serveur,\r\n SCOPE_CHAMPS,\r\n SCOPE_GRILLES,\r\n SCOPE_LONGUEUR_MAX,\r\n requetereferentiel,\r\n $document\r\n ) {\r\n return {\r\n restrict: 'E',\r\n transclude: true,\r\n replace: true,\r\n template: function (element, attributs) {\r\n\r\n var bMobile = serveur.isMobile();\r\n var styleMobile = (serveur.isMobile()) ? ' style=\"padding-left: 0px\"' : '';\r\n var scopeSource = (attributs.opModel.indexOf('[') !== -1) ? SCOPE_GRILLES : SCOPE_CHAMPS;\r\n var id = attributs.opModel;\r\n var idAffichageContact = attributs.opModel.replace('[$index]','');\r\n var show = (!angular.isNullOrUndefined(attributs.opShow))?attributs.opShow:true;\r\n var opModel = scopeSource + '.' + attributs.opModel;\r\n var nomModule = attributs.opModuleNom;\r\n\r\n // Définition des autres champs contact\r\n var opModelQualite = opModel.replace(\"_CONTACTCOMPLET\",\"_TITRE\");\r\n var opModelNom = opModel.replace(\"_CONTACTCOMPLET\",\"_NOM\");\r\n var opModelPrenom = opModel.replace(\"_CONTACTCOMPLET\",\"_PRENOM\");\r\n var opModelTelephone = opModel.replace(\"_CONTACTCOMPLET\",\"_TEL\");\r\n var opModelGSM= opModel.replace(\"_CONTACTCOMPLET\",\"_GSM\");\r\n var OpModelMail = opModel.replace(\"_CONTACTCOMPLET\",\"_MAIL\");\r\n var OpModelAdresse = attributs.opModel.replace(\"_CONTACTCOMPLET\",\"_ADRESSECOMPLETE\");\r\n var OpModelReferentiel = opModel.replace(\"_CONTACTCOMPLET\",\"_ID_CONTACT\");\r\n\r\n // Scroll sur clique\r\n var scrollClick = (serveur.isMobile() && navigator.userAgent.match(/Android/i)) ? \"contact-scroll-on-click \" : \"\";\r\n\r\n // Contact complet\r\n var retour = '
'+\r\n '
' +\r\n ''+\r\n '
'+\r\n '
' +\r\n ''+\r\n '0)\" class=\"glyphicon glyphicon-warning-sign form-control-feedback\">'+\r\n ' ' +\r\n ''+\r\n ''+\r\n '
'+\r\n '
'+\r\n '
';\r\n\r\n // Qualité/Nom/Prénom\r\n retour += '
' +\r\n ''+\r\n '
'+\r\n ''+\r\n '
'+\r\n ''+\r\n '
'+\r\n ''+\r\n '
'+\r\n ''+\r\n '
'+\r\n ''+\r\n '
'+\r\n '
';\r\n\r\n // Téléphone / GSM\r\n retour += '
' +\r\n ''+\r\n '
'+\r\n ''+\r\n '
'+\r\n ''+\r\n '
'+\r\n ''+\r\n '
'+\r\n ''+\r\n '
'+\r\n '
' +\r\n '@' +\r\n ''+\r\n '
'+\r\n '
'+\r\n '
';\r\n\r\n\r\n // Adresse\r\n retour += '' +\r\n '
';\r\n\r\n retour += '
';\r\n return retour;\r\n },\r\n link: function (scope, element) {\r\n // Paramètres d'affichage du bloc contact\r\n scope.affichageContact = {};\r\n\r\n scope.contactAffiche = function (idAffichageContact) {\r\n if (angular.isNullOrUndefined(scope.affichageContact[idAffichageContact])) {\r\n return false;\r\n } else {\r\n return scope.affichageContact[idAffichageContact].open;\r\n }\r\n };\r\n\r\n scope.initAffichageContact = function (idAffichageContact) {\r\n if (angular.isNullOrUndefined(scope.affichageContact[idAffichageContact])) {\r\n scope.affichageContact[idAffichageContact] = {open: false};\r\n }\r\n };\r\n\r\n scope.basculeAffichageContact = function (idAffichageContact) {\r\n scope.initAffichageContact(idAffichageContact);\r\n scope.affichageContact[idAffichageContact].open = !scope.affichageContact[idAffichageContact].open;\r\n };\r\n\r\n // Fonction de relance de contact\r\n if ( angular.isNullOrUndefined(scope.click_relancerRechercheContact)){\r\n scope.click_relancerRechercheContact = function(idModele){\r\n var descriptionModel = idModele.split('.');\r\n if ( angular.isNullOrUndefined (descriptionModel)\r\n || descriptionModel.length!=2 )\r\n return;\r\n\r\n var nomTable = descriptionModel[0].replace('[$index]','');;\r\n var nomColonne = descriptionModel[1];\r\n\r\n var inputs = element.find('input');\r\n angular.forEach(inputs, function(input) {\r\n if ( input.id == idModele ){\r\n var ngModel = angular.element(input).controller('ngModel');\r\n var old = ngModel.$viewValue;\r\n if ( !angular.isNullOrUndefined (old) && old.length>0)\r\n ngModel.$setViewValue(old.substr(0,old.length-1));\r\n }\r\n });\r\n }\r\n }\r\n\r\n // Fonction de suppression du contact complète\r\n if (angular.isNullOrUndefined(scope.changeContactComplete)){\r\n scope.changeContactComplete = function(idModele, index){\r\n var descriptionModel = idModele.split('.');\r\n if ( angular.isNullOrUndefined (descriptionModel)\r\n || descriptionModel.length!=2 )\r\n return;\r\n\r\n var nomTable = descriptionModel[0].replace('[$index]','');\r\n var nomColonne = descriptionModel[1];\r\n var scopeSource = (idModele.indexOf('[') !== -1) ? scope[SCOPE_GRILLES][nomTable][index] : scope[SCOPE_CHAMPS][nomTable];\r\n\r\n // Définition des autres champs de contact\r\n var opModelQualite = nomColonne.replace(\"_CONTACTCOMPLET\",\"_TITRE\");\r\n var opModelNom = nomColonne.replace(\"_CONTACTCOMPLET\",\"_NOM\");\r\n var opModelPrenom = nomColonne.replace(\"_CONTACTCOMPLET\",\"_PRENOM\");\r\n var opModelTelephone = nomColonne.replace(\"_CONTACTCOMPLET\",\"_TEL\");\r\n var opModelGSM= nomColonne.replace(\"_CONTACTCOMPLET\",\"_GSM\");\r\n var OpModelMail = nomColonne.replace(\"_CONTACTCOMPLET\",\"_MAIL\");\r\n var OpModelAdresse = nomColonne.replace(\"_CONTACTCOMPLET\",\"_ADRESSECOMPLETE\");\r\n var opModelNomVoie = nomColonne.replace(\"_CONTACTCOMPLET\",\"_NOMVOIE\");\r\n var opModelComplement = nomColonne.replace(\"_CONTACTCOMPLET\",\"_COMPLEMENT\");\r\n var opModelLocalite = nomColonne.replace(\"_CONTACTCOMPLET\",\"_LOCALITE\");\r\n var opModelCodePostal = nomColonne.replace(\"_CONTACTCOMPLET\",\"_CODEPOSTAL\");\r\n var opModelBoitePostal = nomColonne.replace(\"_CONTACTCOMPLET\",\"_BOITEPOSTAL\");\r\n var OpModelCedex = nomColonne.replace(\"_CONTACTCOMPLET\",\"_CEDEX\");\r\n var OpModelGPS = nomColonne.replace(\"_CONTACTCOMPLET\",\"_COORDGPS\");\r\n\t\t\t\t\t\t\tvar OpModelQuartier = nomColonne.replace(\"_CONTACTCOMPLET\",\"_QUARTIER\");\r\n var OpModelReferentiel = nomColonne.replace(\"_CONTACTCOMPLET\",\"_ID_CONTACT\");\r\n\r\n scopeSource[opModelQualite].valeur = null;\r\n scopeSource[opModelNom].valeur = null;\r\n scopeSource[opModelPrenom].valeur = null;\r\n scopeSource[opModelTelephone].valeur = null;\r\n scopeSource[opModelGSM].valeur = null;\r\n scopeSource[OpModelMail].valeur = null;\r\n scopeSource[OpModelAdresse].valeur = null;\r\n scopeSource[opModelNomVoie].valeur = null;\r\n scopeSource[opModelComplement].valeur = null;\r\n scopeSource[opModelLocalite].valeur = null;\r\n scopeSource[opModelCodePostal].valeur = null;\r\n scopeSource[opModelBoitePostal].valeur = null;\r\n scopeSource[OpModelCedex].valeur = null;\r\n scopeSource[OpModelGPS].valeur = null;\r\n\t\t\t\t\t\t\tscopeSource[OpModelQuartier].valeur = null;\r\n scopeSource[OpModelReferentiel].valeur = null;\r\n }\r\n }\r\n\r\n // Fonction de recherche de référentiel externe d'adresse\r\n if (angular.isNullOrUndefined(scope.rechercheReferentielContact)){\r\n scope.rechercheReferentielContact = function( nomModule, idModele,index, valeurRecherche ){\r\n return requetereferentiel.rechercher( scope, nomModule, 'REFERENTIEL_INTERNE_CONTACT', 'REFERENTIEL_INTERNE_PATRIMOINE|LIBELLE', idModele, index, valeurRecherche );\r\n }\r\n }\r\n\r\n if (angular.isNullOrUndefined(scope.changerContact)) {\r\n scope.changerContact = function(idModele, index){\r\n var descriptionModel = idModele.split('.');\r\n if ( angular.isNullOrUndefined (descriptionModel)\r\n || descriptionModel.length!=2 )\r\n return;\r\n\r\n var nomTable = descriptionModel[0].replace('[$index]','');;\r\n var nomColonne = descriptionModel[1];\r\n var scopeSource = (idModele.indexOf('[') !== -1) ? scope[SCOPE_GRILLES][nomTable][index] : scope[SCOPE_CHAMPS][nomTable];\r\n\r\n // Définition des autres champs de contact\r\n var opModelQualite = nomColonne.replace(\"_CONTACTCOMPLET\",\"_TITRE\");\r\n var opModelNom = nomColonne.replace(\"_CONTACTCOMPLET\",\"_NOM\");\r\n var opModelPrenom = nomColonne.replace(\"_CONTACTCOMPLET\",\"_PRENOM\");\r\n var OpModelReferentiel = nomColonne.replace(\"_CONTACTCOMPLET\",\"_ID_CONTACT\");\r\n\r\n scopeSource[nomColonne].valeur = '';\r\n if ( !(angular.isNullOrUndefined(scopeSource[nomColonne].valeur)) ){\r\n if ( !(angular.isNullOrUndefined(scopeSource[opModelQualite].valeur)) ){\r\n scopeSource[nomColonne].valeur = scopeSource[opModelQualite].valeur;\r\n }\r\n\r\n if ( !(angular.isNullOrUndefined(scopeSource[opModelNom].valeur)) && scopeSource[opModelNom].valeur.length>0 ) {\r\n if ( !angular.isNullOrUndefined(scopeSource[nomColonne].valeur) && scopeSource[nomColonne].valeur.length > 0){\r\n scopeSource[nomColonne].valeur += \" \";\r\n scopeSource[nomColonne].valeur += scopeSource[opModelNom].valeur;\r\n }\r\n else\r\n scopeSource[nomColonne].valeur = scopeSource[opModelNom].valeur;\r\n }\r\n\r\n if ( !(angular.isNullOrUndefined(scopeSource[opModelPrenom].valeur)) && scopeSource[opModelPrenom].valeur.length>0 ) {\r\n if ( !angular.isNullOrUndefined(scopeSource[nomColonne].valeur) && scopeSource[nomColonne].valeur.length > 0){\r\n scopeSource[nomColonne].valeur += \" \";\r\n scopeSource[nomColonne].valeur += scopeSource[opModelPrenom].valeur;\r\n }\r\n else\r\n scopeSource[nomColonne].valeur = scopeSource[opModelPrenom].valeur;\r\n }\r\n\r\n scopeSource[OpModelReferentiel].valeur = null;\r\n }\r\n }\r\n }\r\n\r\n // Fonction de mise à jour des champs liés au retour du résultat de la recherche du référentiel\r\n if (angular.isNullOrUndefined(scope.onTypeAheadReferentielContact)) {\r\n scope.onTypeAheadReferentielContact = function ( $item, $index, idModele ) {\r\n var descriptionModel = idModele.split('.');\r\n if ( angular.isNullOrUndefined (descriptionModel)\r\n || descriptionModel.length!=2 )\r\n return;\r\n\r\n var nomTable = descriptionModel[0].replace('[$index]','');\r\n var nomColonne = descriptionModel[1];\r\n var scopeSource = (idModele.indexOf('[') !== -1) ? scope[SCOPE_GRILLES][nomTable][$index] : scope[SCOPE_CHAMPS][nomTable];\r\n\r\n // Définition des autres champs de contact\r\n var opModelQualite = nomColonne.replace(\"_CONTACTCOMPLET\",\"_TITRE\");\r\n var opModelNom = nomColonne.replace(\"_CONTACTCOMPLET\",\"_NOM\");\r\n var opModelPrenom = nomColonne.replace(\"_CONTACTCOMPLET\",\"_PRENOM\");\r\n var opModelTelephone = nomColonne.replace(\"_CONTACTCOMPLET\",\"_TEL\");\r\n var opModelGSM= nomColonne.replace(\"_CONTACTCOMPLET\",\"_GSM\");\r\n var OpModelMail = nomColonne.replace(\"_CONTACTCOMPLET\",\"_MAIL\");\r\n var OpModelAdresse = nomColonne.replace(\"_CONTACTCOMPLET\",\"_ADRESSECOMPLETE\");\r\n var opModelNomVoie = nomColonne.replace(\"_CONTACTCOMPLET\",\"_NOMVOIE\");\r\n var opModelComplement = nomColonne.replace(\"_CONTACTCOMPLET\",\"_COMPLEMENT\");\r\n var opModelLocalite = nomColonne.replace(\"_CONTACTCOMPLET\",\"_LOCALITE\");\r\n var opModelCodePostal = nomColonne.replace(\"_CONTACTCOMPLET\",\"_CODEPOSTAL\");\r\n var opModelBoitePostal = nomColonne.replace(\"_CONTACTCOMPLET\",\"_BOITEPOSTAL\");\r\n var OpModelCedex = nomColonne.replace(\"_CONTACTCOMPLET\",\"_CEDEX\");\r\n var OpModelGPS = nomColonne.replace(\"_CONTACTCOMPLET\",\"_COORDGPS\");\r\n\t\t\t\t\t\t\tvar OpModelQuartier = nomColonne.replace(\"_CONTACTCOMPLET\",\"_QUARTIER\");\r\n var OpModelReferentiel = nomColonne.replace(\"_CONTACTCOMPLET\",\"_ID_CONTACT\");\r\n\r\n scopeSource[nomColonne][\"SELECTED\"] = $item;\r\n scopeSource[opModelQualite].valeur = '';\r\n scopeSource[opModelNom].valeur = '';\r\n scopeSource[opModelPrenom].valeur = '';\r\n scopeSource[opModelTelephone].valeur = '';\r\n scopeSource[opModelGSM].valeur = '';\r\n scopeSource[OpModelMail].valeur = '';\r\n scopeSource[OpModelAdresse].valeur = '';\r\n scopeSource[opModelNomVoie].valeur = '';\r\n scopeSource[opModelComplement].valeur = '';\r\n scopeSource[opModelLocalite].valeur = '';\r\n scopeSource[opModelCodePostal].valeur = '';\r\n scopeSource[opModelBoitePostal].valeur = '';\r\n scopeSource[OpModelCedex].valeur = '';\r\n scopeSource[OpModelGPS].valeur = '';\r\n\t\t\t\t\t\t\tscopeSource[OpModelQuartier].valeur = '';\r\n scopeSource[OpModelReferentiel].valeur = $item.valeur;\r\n\r\n if ( !angular.isNullOrUndefined ( $item[\"cot_titre\"] ) ){\r\n scopeSource[opModelQualite].valeur = $item[\"cot_titre\"];\r\n }\r\n\r\n if ( !angular.isNullOrUndefined ( $item[\"cot_nom\"] )){\r\n scopeSource[opModelNom].valeur = $item[\"cot_nom\"];\r\n }\r\n\r\n if ( !angular.isNullOrUndefined ( $item[\"cot_prenom\"] ) ){\r\n scopeSource[opModelPrenom].valeur = $item[\"cot_prenom\"];\r\n }\r\n\r\n if ( !angular.isNullOrUndefined ( $item[\"cot_tel\"] ) ){\r\n scopeSource[opModelTelephone].valeur = $item[\"cot_tel\"];\r\n }\r\n\r\n if ( !angular.isNullOrUndefined ( $item[\"cot_gsm\"] ) ){\r\n scopeSource[opModelGSM].valeur = $item[\"cot_gsm\"];\r\n }\r\n\r\n if ( !angular.isNullOrUndefined ( $item[\"cot_mail\"] ) ){\r\n scopeSource[OpModelMail].valeur = $item[\"cot_mail\"];\r\n }\r\n\r\n if ( !angular.isNullOrUndefined ( $item[\"cot_adressecomplete\"] ) ){\r\n scopeSource[OpModelAdresse].valeur = $item[\"cot_adressecomplete\"];\r\n }\r\n\r\n if ( !angular.isNullOrUndefined ( $item[\"cot_nomvoie\"] ) ){\r\n scopeSource[opModelNomVoie].valeur = $item[\"cot_nomvoie\"];\r\n }\r\n\r\n if ( !angular.isNullOrUndefined ( $item[\"cot_lieudit\"] ) ){\r\n scopeSource[opModelComplement].valeur = $item[\"cot_lieudit\"];\r\n }\r\n\r\n if ( !angular.isNullOrUndefined ( $item[\"cot_localite\"] ) ){\r\n scopeSource[opModelLocalite].valeur = $item[\"cot_localite\"];\r\n }\r\n\r\n if ( !angular.isNullOrUndefined ( $item[\"cot_codepostal\"] ) ){\r\n scopeSource[opModelCodePostal].valeur = $item[\"cot_codepostal\"];\r\n }\r\n\r\n if ( !angular.isNullOrUndefined ( $item[\"cot_boitepostal\"] ) ){\r\n scopeSource[opModelBoitePostal].valeur = $item[\"cot_boitepostal\"];\r\n }\r\n\r\n if ( !angular.isNullOrUndefined ( $item[\"cot_cedex\"] ) ){\r\n scopeSource[OpModelCedex].valeur = $item[\"cot_cedex\"];\r\n }\r\n\r\n if ( !angular.isNullOrUndefined ( $item[\"cot_coordgps\"] ) ){\r\n scopeSource[OpModelGPS].valeur = $item[\"cot_coordgps\"];\r\n }\r\n\r\n if ( !angular.isNullOrUndefined ( $item[\"cot_quartier\"] ) ){\r\n scopeSource[OpModelQuartier].valeur = $item[\"cot_quartier\"];\r\n }\t\t\t\t\t\t\t\r\n };\r\n }\r\n }\r\n };\r\n }])\r\n\r\n .directive('contactScrollOnClick', ['$ocLazyLoad', '$document', '$window', function($ocLazyLoad, $document, $window) {\r\n return {\r\n restrict: 'A',\r\n link: function (scope, element) {\r\n $ocLazyLoad.load({\r\n serie: true, files: ['lib/jquery.min.js']\r\n }).then(function () {\r\n $document.ready(function () {\r\n element.on('click', function () {\r\n if ($(element).offset().top > ($window.innerHeight * 0.20)) {\r\n var posActuel = $document[0].body.scrollTop;\r\n $(\"html, body\").animate({scrollTop: posActuel + $(element).offset().top - 80}, \"slow\");\r\n }\r\n });\r\n });\r\n });\r\n }\r\n }\r\n }])\r\n;","/**\r\n * @version 1.0b\r\n * @copyright 2016 Operis\r\n * @Author Brian Kjerulf - Operis\r\n */\r\n\r\n'use strict';\r\n\r\nangular.module('fr.operis.moteurV4.composants.ecriture.OpListePerso', [])\r\n .directive('opListePerso', ['fr.operis.moteurV4.modele.Modele.SCOPE_CHAMPS',\r\n 'fr.operis.moteurV4.modele.Modele.SCOPE_GRILLES', 'fr.operis.moteurV4.modele.Modele.SCOPE_LISTES',\r\n 'fr.operis.moteurV4.modele.Modele.SCOPE_DESCRIPTIONS', 'fr.operis.moteurV4.modele.Modele.SCOPE_DESCRIPTION',\r\n 'fr.operis.moteurV4.modele.Modele.SCOPE_LIBELLE', 'fr.operis.moteurV4.modele.Modele.SCOPE_OBLIGATOIRE',\r\n 'fr.operis.moteurV4.modele.Modele.SCOPE_TYPE_COMPLEXE', 'fr.operis.moteurV4.modele.Modele.SCOPE_REF_ETRANGERE',\r\n 'fr.operis.moteurV4.modele.Modele.SCOPE_ESTLECTURESEULE', 'fr.operis.moteurV4.modele.Modele.SCOPE_TYPE',\r\n '$timeout', 'fr.operis.moteurV4.communication.OperisWSServer',\r\n function (SCOPE_CHAMPS, SCOPE_GRILLES, SCOPE_LISTES, SCOPE_DESCRIPTIONS, SCOPE_DESCRIPTION, SCOPE_LIBELLE,\r\n SCOPE_OBLIGATOIRE, SCOPE_TYPE_COMPLEXE, SCOPE_REF_ETRANGERE, SCOPE_ESTLECTURESEULE, SCOPE_TYPE, $timeout,\r\n serveur) {\r\n return {\r\n restrict: 'E',\r\n replace: true,\r\n template: function (element, attributs) {\r\n // Scope\r\n var scopeSource = SCOPE_CHAMPS;\r\n if (attributs.opModel.indexOf('[') !== -1) {\r\n scopeSource = SCOPE_GRILLES;\r\n }\r\n\r\n // Modèle\r\n var opModelClef = scopeSource + '.' + attributs.opModel;\r\n var opModelValeur = scopeSource + '.' + attributs.opModel.replace(\"_CLEF\", \"_VALEUR\");\r\n\r\n // Option des modèles\r\n var modelOption = '{' +\r\n 'allowInvalid: true,' +\r\n 'updateOn: \\'default blur\\',' +\r\n 'debounce: {\\'default\\': 300, \\'blur\\': 0}' +\r\n '}';\r\n\r\n // Liste champ clef (valeur et filtre)\r\n // Format attendu opListeClef = champClef as champLibellé in tableListe |filter: ...\r\n var idClef = opModelClef.replace('[$index]', '');\r\n var valeurListeClef = \"\";\r\n var valeurLabelClef = \"\";\r\n var groupListeClef = \"\";\r\n var lc = attributs.opListeClef.split(' in ');\r\n var idListeClef = lc[lc.length - 1].split(' |filter: ');\r\n\r\n var listeFilterClef = '';\r\n if (idListeClef.length === 2)\r\n listeFilterClef = ' |filter: ' + idListeClef[1];\r\n idListeClef = idListeClef[0];\r\n\r\n // Récupération de la valeur\r\n lc = lc[0].split(' group by ');\r\n if (lc.length > 1) {\r\n groupListeClef = ' group by entite.' + lc[1] + '.valeur';\r\n }\r\n\r\n lc = lc[0].split(' as ');\r\n valeurListeClef = lc[0];\r\n if (lc.length > 1) {\r\n valeurLabelClef = lc[1];\r\n } else {\r\n valeurLabelClef = lc[0];\r\n }\r\n\r\n lc = '::' + SCOPE_LISTES + '.' + idListeClef;\r\n\r\n // Liste champ valeur (valeur et filtre)\r\n // Format attendu opListeValeur = champClef as champLibellé in tableListe |filter: ...\r\n var idValeur = opModelValeur.replace('[$index]', '');\r\n /*var valeurListeValeur = \"\";\r\n var valeurLabelValeur = \"\";\r\n var groupListeValeur = \"\";\r\n var lv = attributs.opListeValeur.split(' in ');\r\n var idListeValeur = lv[lv.length - 1].split(' |filter: ');\r\n\r\n var listeFilterValeur = '';\r\n if (idListeValeur.length === 2)\r\n listeFilterValeur = ' |filter: ' + idListeValeur[1];\r\n idListeValeur = idListeValeur[0];\r\n\r\n // Récupération de la valeur\r\n lv = lv[0].split(' group by ');\r\n if (lv.length > 1) {\r\n groupListeValeur = ' group by entite.' + lv[1] + '.valeur';\r\n }\r\n\r\n lv = lv[0].split(' as ');\r\n valeurListeValeur = lv[0];\r\n if (lv.length > 1) {\r\n valeurLabelValeur = lv[1];\r\n } else {\r\n valeurLabelValeur = lv[0];\r\n }\r\n\r\n lv = '::' + SCOPE_LISTES + '.' + idListeValeur;*/\r\n\r\n // Formulaire\r\n var formulaireNom = !angular.isNullOrUndefined(attributs.opForm) ? attributs.opForm : \"form\";\r\n\r\n // Required\r\n var requiredClef = opModelClef + '.' + SCOPE_DESCRIPTIONS + '.' + SCOPE_OBLIGATOIRE;\r\n var requiredValeur = opModelValeur + '.' + SCOPE_DESCRIPTIONS + '.' + SCOPE_OBLIGATOIRE;\r\n\r\n // Disabled\r\n var lectureSeuleClef = opModelClef + '.' + SCOPE_DESCRIPTIONS + '.' + SCOPE_ESTLECTURESEULE;\r\n var lectureSeuleValeur = opModelValeur + '.' + SCOPE_DESCRIPTIONS + '.' + SCOPE_ESTLECTURESEULE;\r\n\r\n // ToolTip\r\n var toolTipClef = opModelClef + '.' + SCOPE_DESCRIPTIONS + '.' + SCOPE_DESCRIPTION;\r\n var toolTipValeur = opModelValeur + '.' + SCOPE_DESCRIPTIONS + '.' + SCOPE_DESCRIPTION;\r\n\r\n // PlaceHolder\r\n var placeholderClef = opModelClef + '.' + SCOPE_DESCRIPTIONS + '.' + SCOPE_DESCRIPTION;\r\n var placeholderValeur = opModelValeur + '.' + SCOPE_DESCRIPTIONS + '.' + SCOPE_DESCRIPTION;\r\n\r\n // Typeahead éditable\r\n var typeaheadEditableValeur = 'true'; //'!((' + opModelValeur + '.' + SCOPE_DESCRIPTIONS + '.' + SCOPE_TYPE +') == \\'NUMBER\\' )';\r\n\r\n // ngShow\r\n var show = (!angular.isNullOrUndefined(attributs.opShow)) ? attributs.opShow : true;\r\n\r\n // Scroll sur clique\r\n var scrollClick = (serveur.isMobile() && navigator.userAgent.match(/Android/i)) ? \"liste-perso-scroll-on-click \" : \"\";\r\n\r\n // Racine et libellé\r\n var templateElement = '
' +\r\n '';\r\n\r\n // Champ Clef\r\n templateElement += '
';\r\n templateElement += '';\r\n templateElement += '
';\r\n\r\n // Champ Valeur\r\n templateElement += '
' +\r\n '
' +\r\n '
' +\r\n '' +\r\n '' +\r\n //'' +\r\n // '' +\r\n //''+\r\n '' + // ng-if=\"estListeFixe(\\'' + idValeur.replace(/\\./g, \"_\") + '\\')\">' +\r\n '' +\r\n ''+\r\n '
' +\r\n '
' +\r\n '' +\r\n //'' +\r\n // '' +\r\n //'' +\r\n '
' +\r\n '
'+\r\n '
' +\r\n '
'+\r\n '' +\r\n '
' +\r\n '
' +\r\n '
';\r\n\r\n templateElement += '
';\r\n\r\n return templateElement;\r\n },\r\n link: function (scope, element, attr) {\r\n /**\r\n * Scope source et modèle\r\n */\r\n var scopeSource = SCOPE_CHAMPS;\r\n if (attr.opModel.indexOf('[') !== -1) {\r\n scopeSource = SCOPE_GRILLES;\r\n }\r\n\r\n var opModelClef = scopeSource + '.' + attr.opModel;\r\n var opModelValeur = scopeSource + '.' + attr.opModel.replace(\"_CLEF\", \"_VALEUR\");\r\n\r\n /**\r\n * Varaibles pour le champ clef\r\n */\r\n scope.modelClefLibelle = attr.opModel.replace(\"_CLEF\", \"\");\r\n\r\n // Format attendu opListeClef = champClef as champLibellé in tableListe |filter: ...\r\n var lc = attr.opListeClef.split(' in ');\r\n var tableListeClef = lc[lc.length - 1].split(' |')[0];\r\n lc = lc[0].split(' group by ');\r\n lc = lc[0].split(' as ');\r\n var champIdListeClef = lc[0];\r\n var champLabelListeClef = (lc.length > 1) ? lc[1] : lc[0];\r\n\r\n /**\r\n * Varaibles pour le champ valeur en mode \"liste fixe\"\r\n */\r\n scope.valeurRadio = {valeur: \"\"};\r\n scope.valeurListe = {valeur: \"\"};\r\n scope.valeurTypeahead = {valeur: \"\"};\r\n\r\n /**\r\n * Description liste (champ valeur)\r\n */\r\n var nomTableColonneClef = opModelClef.split('.');\r\n var nomTableColonne = opModelValeur.split('.');\r\n var estGrille = (nomTableColonne[0] === SCOPE_GRILLES);\r\n\r\n var lv = attr.opListeValeur.split(' in ');\r\n var tableListe = lv[lv.length - 1].split(' |')[0];\r\n var lvColonneCleFiltre = lv[lv.length - 1].split(' |')[1];\r\n lvColonneCleFiltre = lvColonneCleFiltre.split(':')[1].trim().replace(/\\'/g, \"\");\r\n\r\n lv = lv[0].split(' group by ');\r\n lv = lv[0].split(' as ');\r\n var lvColonneCle = lv[0];\r\n\r\n var lvColonneLibelle = lvColonneCle;\r\n if (lv.length > 1) {\r\n lvColonneLibelle = lv[1];\r\n }\r\n\r\n /**\r\n * Tableau des listes fixes (Clé 1#Valeur 1#Complément 1#Titre 1|Clé 2#Valeur 2#Complément 2#Titre 2|Clé 3#Valeur 3#Complément 3#Titre 3|...)\r\n */\r\n if (angular.isNullOrUndefined(scope.listepersoListefixe)) {\r\n scope.listepersoListefixe = [];\r\n }\r\n\r\n /**\r\n * Init paramètres d'affichage champ valeur\r\n */\r\n var idListeFixe = nomTableColonne[0] + \"_\" + nomTableColonne[1].replace('[$index]', '') + \"_\" + nomTableColonne[2] + \"_\" + scope.$id;\r\n if (angular.isNullOrUndefined(scope.paramListePerso)) {\r\n scope.paramListePerso = [];\r\n }\r\n\r\n if (angular.isNullOrUndefined(scope.paramListePerso[idListeFixe])) {\r\n scope.paramListePerso[idListeFixe] = {};\r\n scope.paramListePerso[idListeFixe].listeFixe = true;\r\n scope.paramListePerso[idListeFixe].listeFixeRadio = false;\r\n scope.paramListePerso[idListeFixe].id = scope.$id;\r\n\r\n var desc;\r\n if (estGrille) {\r\n desc = scope[scopeSource][nomTableColonne[1].replace('[$index]', '')][SCOPE_DESCRIPTIONS][nomTableColonne[2]];\r\n } else {\r\n desc = scope[scopeSource][nomTableColonne[1].replace('[$index]', '')][nomTableColonne[2]][SCOPE_DESCRIPTIONS];\r\n }\r\n\r\n scope.paramListePerso[idListeFixe].typeInteraction = desc.typeInteraction;\r\n }\r\n\r\n /**\r\n * Init champ valeur\r\n */\r\n if (angular.isNullOrUndefined(scope.listepersoListefixe[idListeFixe])) {\r\n scope.listepersoListefixe[idListeFixe] = [];\r\n\r\n var clef = (!angular.isNullOrUndefined(scope.entite) && !angular.isNullOrUndefined(scope.entite[attr.opModel.split('.')[1]])) ? scope.entite[attr.opModel.split('.')[1]].valeur : -1;\r\n var idx = -1;\r\n\r\n if (clef !== -1) {\r\n for (var i = 0; i < scope.listes[tableListe].length; i++) {\r\n if (scope.listes[tableListe][i][lvColonneCleFiltre].valeur === clef) {\r\n idx = i;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n if (idx !== -1) {\r\n var listeValeurs = scope.listes[tableListe][idx][lvColonneCle].valeur.split(\"|\");\r\n\r\n if (!angular.isNullOrUndefined(scope.listepersoListefixe[idListeFixe])) {\r\n scope.listepersoListefixe[idListeFixe] = [];\r\n }\r\n\r\n for (var k = 0; k < listeValeurs.length; k++) {\r\n var objValeur = {};\r\n objValeur[nomTableColonneClef[2]] = clef;\r\n\r\n var valeur = listeValeurs[k].split(\"#\");\r\n objValeur.valeur = valeur[0];\r\n objValeur.libelle = valeur[0];\r\n if (valeur.length > 1) {\r\n objValeur.libelle = valeur[1];\r\n\r\n if (valeur.length > 2) {\r\n objValeur.complementLibelle = valeur[2];\r\n\r\n if (valeur.length > 3) {\r\n objValeur.titre = valeur[3];\r\n }\r\n }\r\n }\r\n\r\n if (angular.isNullOrUndefined(scope.listepersoListefixe[idListeFixe])) {\r\n scope.listepersoListefixe[idListeFixe] = [];\r\n }\r\n scope.listepersoListefixe[idListeFixe].push(objValeur);\r\n }\r\n\r\n scope.paramListePerso[idListeFixe].listeFixeRadio = ((scope.listepersoListefixe[idListeFixe].length > 0) &&\r\n (scope.listepersoListefixe[idListeFixe].length < 4));\r\n }\r\n }\r\n\r\n /**\r\n * Init liste champ valeur\r\n */\r\n if (scope.paramListePerso[idListeFixe].listeFixe) {\r\n for (var l = 0; l < scope.listepersoListefixe[idListeFixe].length; l++) {\r\n var cle = scope.listepersoListefixe[idListeFixe][l].valeur;\r\n var lib = scope.listepersoListefixe[idListeFixe][l].libelle;\r\n\r\n if (estGrille) {\r\n var tableGrilles = nomTableColonne[1].split('[');\r\n var idxCle = -1;\r\n\r\n for (var g = 0; g < scope.grilles[tableGrilles[0]].length; g++) {\r\n if (scope.grilles[tableGrilles[0]][g][nomTableColonneClef[2]].valeur === scope.listepersoListefixe[idListeFixe][l][nomTableColonneClef[2]]) {\r\n idxCle = g;\r\n break;\r\n }\r\n }\r\n\r\n if (idxCle !== -1) {\r\n if (cle == scope.grilles[tableGrilles[0]][idxCle][nomTableColonne[2]].valeur) {\r\n scope.valeurRadio.valeur = cle;\r\n scope.valeurListe.valeur = lib;\r\n scope.valeurTypeahead.valeur = lib;\r\n break;\r\n }\r\n }\r\n } else {\r\n if (cle == scope.champs[nomTableColonne[1]][nomTableColonne[2]].valeur) {\r\n scope.valeurRadio.valeur = cle;\r\n scope.valeurListe.valeur = lib;\r\n scope.valeurTypeahead.valeur = lib;\r\n break;\r\n }\r\n }\r\n }\r\n } /*else {\r\n if (!angular.isNullOrUndefined(scope.listes[tableListe])) {\r\n for (var j = 0; j < scope.listes[tableListe].length; j++) {\r\n var cleListe = scope.listes[tableListe][j][lvColonneCle].valeur;\r\n var libListe = scope.listes[tableListe][j][lvColonneLibelle].valeur;\r\n\r\n if (estGrille) {\r\n var nomTable = nomTableColonne[1].split('[');\r\n var idxListe = -1;\r\n\r\n for (var m = 0; m < scope.grilles[nomTable[0]].length; m++) {\r\n if (scope.grilles[nomTable[0]][m][nomTableColonneClef[2]].valeur === scope.listes[tableListe][j][nomTableColonneClef[2]]) {\r\n idxListe = m;\r\n break;\r\n }\r\n }\r\n\r\n if (idxListe !== -1) {\r\n if (cleListe == scope.grilles[nomTable[0]][idxListe][nomTableColonne[2]].valeur) {\r\n scope.valeurRadio.valeur = cleListe;\r\n scope.valeurListe.valeur = libListe;\r\n scope.valeurTypeahead.valeur = libListe;\r\n break;\r\n }\r\n }\r\n } else {\r\n if (cleListe == scope.champs[nomTableColonne[1]][nomTableColonne[2]].valeur) {\r\n scope.valeurRadio.valeur = cleListe;\r\n scope.valeurListe.valeur = libListe;\r\n scope.valeurTypeahead.valeur = libListe;\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n }*/\r\n\r\n // Statut renseignement du champ clef\r\n if (angular.isNullOrUndefined(scope.estClefRenseigne)) {\r\n scope.estClefRenseigne = function (clef) {\r\n return (!angular.isNullOrUndefined(clef) && (clef !== \"\"));\r\n }\r\n }\r\n\r\n /**\r\n * ngChange champ clef\r\n */\r\n if (angular.isNullOrUndefined(scope.onChangeClef)) {\r\n scope.onChangeClef = function (clef, index) {\r\n var tableLibelle = scope.modelClefLibelle.split('.')[0].replace(\"[$index]\", \"\");\r\n var champLibelle = scope.modelClefLibelle.split('.')[1];\r\n var valeurLibelle = null;\r\n scope.clefRenseigne = (!angular.isNullOrUndefined(clef) && (clef !== \"\"));\r\n\r\n if (scope.clefRenseigne) {\r\n // Libellé du clé sélectionné\r\n for (var j = 0; j < scope.listes[tableListeClef].length; j++) {\r\n if (scope.listes[tableListeClef][j][champIdListeClef].valeur === clef) {\r\n valeurLibelle = scope.listes[tableListeClef][j][champLabelListeClef].valeur;\r\n break;\r\n }\r\n }\r\n\r\n // Index dans la liste des clés qui permetttant de filtrer le champ valeur\r\n var idx = -1;\r\n for (var i = 0; i < scope.listes[tableListe].length; i++) {\r\n if (scope.listes[tableListe][i][lvColonneCleFiltre].valeur === clef) {\r\n valeurLibelle = scope.listes[tableListe][i][champLabelListeClef].valeur;\r\n idx = i;\r\n break;\r\n }\r\n }\r\n\r\n if (idx !== -1) {\r\n var listeValeurs = scope.listes[tableListe][idx][lvColonneCle].valeur.split(\"|\");\r\n\r\n if (!angular.isNullOrUndefined(scope.listepersoListefixe[idListeFixe])) {\r\n scope.listepersoListefixe[idListeFixe] = [];\r\n }\r\n\r\n for (var k = 0; k < listeValeurs.length; k++) {\r\n var objValeur = {};\r\n objValeur[nomTableColonneClef[2]] = clef;\r\n\r\n var valeur = listeValeurs[k].split(\"#\");\r\n objValeur.valeur = valeur[0];\r\n objValeur.libelle = valeur[0];\r\n if (valeur.length > 1) {\r\n objValeur.libelle = valeur[1];\r\n\r\n if (valeur.length > 2) {\r\n objValeur.complementLibelle = valeur[2];\r\n\r\n if (valeur.length > 3) {\r\n objValeur.titre = valeur[3];\r\n }\r\n }\r\n }\r\n\r\n if (angular.isNullOrUndefined(scope.listepersoListefixe[idListeFixe])) {\r\n scope.listepersoListefixe[idListeFixe] = [];\r\n }\r\n scope.listepersoListefixe[idListeFixe].push(objValeur);\r\n }\r\n\r\n scope.paramListePerso[idListeFixe].listeFixeRadio = ((scope.listepersoListefixe[idListeFixe].length > 0) &&\r\n (scope.listepersoListefixe[idListeFixe].length < 4));\r\n }\r\n\r\n // Renseigner champ libellé\r\n if (estGrille) {\r\n if (!angular.isNullOrUndefined(scope.grilles[tableLibelle][index][champLibelle])) {\r\n scope.grilles[tableLibelle][index][champLibelle].valeur = valeurLibelle;\r\n }\r\n } else {\r\n if (!angular.isNullOrUndefined(scope.champs[tableLibelle][champLibelle])) {\r\n scope.champs[tableLibelle][champLibelle].valeur = valeurLibelle;\r\n }\r\n }\r\n } else {\r\n // Reinit champ libellé\r\n if (estGrille) {\r\n if (!angular.isNullOrUndefined(scope.grilles[tableLibelle][index][champLibelle])) {\r\n scope.grilles[tableLibelle][index][champLibelle].valeur = valeurLibelle;\r\n }\r\n } else {\r\n if (!angular.isNullOrUndefined(scope.champs[tableLibelle][champLibelle])) {\r\n scope.champs[tableLibelle][champLibelle].valeur = valeurLibelle;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * ngChange champ valeur (datalist)\r\n */\r\n if (angular.isNullOrUndefined(scope.onChangeValeurListe)) {\r\n scope.onChangeValeurListe = function(idElement) {\r\n var elem = document.getElementById(idElement + \"_\" + scope.$id);\r\n var list = elem.getAttribute('list');\r\n var options = document.querySelectorAll('#' + list + ' option');\r\n var inputValue = elem.value;\r\n\r\n for (var i = 0; i < options.length; i++) {\r\n var option = options[i];\r\n if (option.value === inputValue) {\r\n if (!angular.isNullOrUndefined(scope.entite)) {\r\n if (scope.entite[nomTableColonne[2]][SCOPE_DESCRIPTIONS].type === \"NUMBER\") {\r\n scope.entite[nomTableColonne[2]].valeur = Number(option.getAttribute('data-id'));\r\n } else {\r\n scope.entite[nomTableColonne[2]].valeur = option.getAttribute('data-id');\r\n }\r\n } else {\r\n if (scope.champs[nomTableColonne[1]][nomTableColonne[2]][SCOPE_DESCRIPTIONS][SCOPE_TYPE] === \"NUMBER\") {\r\n scope.champs[nomTableColonne[1]][nomTableColonne[2]].valeur = Number(option.getAttribute('data-id'));\r\n } else {\r\n scope.champs[nomTableColonne[1]][nomTableColonne[2]].valeur = option.getAttribute('data-id');\r\n }\r\n }\r\n\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Ouverture liste typeahead\r\n */\r\n /*scope.typeaheadComparator = function (actualValue, viewValue) {\r\n return viewValue === '[$empty$]' || ('' + actualValue).toLowerCase().indexOf(('' + viewValue).toLowerCase()) > -1;\r\n };\r\n\r\n if (angular.isNullOrUndefined(scope.ouvrirTypeaheadListePerso)) {\r\n scope.ouvrirTypeaheadListePerso = function (id) {\r\n $timeout(function () {\r\n // TODO : trouver un moyen de déclencher le typeahead suite première passage ici sans sélection d'élément car dans ce cas val() est déjà à '' et triggerHandler est sans effet\r\n // Vider l'input puis déclencher le typeahead\r\n var idElem = scope.getIdentifiant('', '', id);\r\n angular.element(document.querySelectorAll('#' + idElem)).val('').triggerHandler('input');\r\n angular.element(document.querySelectorAll('#' + idElem)).val('').triggerHandler('change'); // for IE\r\n });\r\n }\r\n }*/\r\n\r\n /**\r\n * typeaheadOnSelect champ valeur (typeahead)\r\n */\r\n if (angular.isNullOrUndefined(scope.onChangeValeurTypeAhead)) {\r\n scope.onChangeValeurTypeAhead = function(item) {\r\n if (!angular.isNullOrUndefined(scope.entite)) {\r\n if (scope.entite[nomTableColonne[2]][SCOPE_DESCRIPTIONS][SCOPE_TYPE] === \"NUMBER\") {\r\n scope.entite[nomTableColonne[2]].valeur = Number(item.valeur);\r\n } else {\r\n scope.entite[nomTableColonne[2]].valeur = item.valeur;\r\n }\r\n } else {\r\n if (scope.champs[nomTableColonne[1]][nomTableColonne[2]][SCOPE_DESCRIPTIONS][SCOPE_TYPE] === \"NUMBER\") {\r\n scope.champs[nomTableColonne[1]][nomTableColonne[2]].valeur = Number(item.valeur);\r\n } else {\r\n scope.champs[nomTableColonne[1]][nomTableColonne[2]].valeur = item.valeur;\r\n }\r\n }\r\n\r\n\r\n }\r\n }\r\n\r\n /**\r\n * ngChange champ valeur (boutons radio)\r\n */\r\n if (angular.isNullOrUndefined(scope.onChangeValeurRadio)) {\r\n scope.onChangeValeurRadio = function(valeur) {\r\n if (!angular.isNullOrUndefined(scope.entite)) {\r\n if (scope.entite[nomTableColonne[2]][SCOPE_DESCRIPTIONS][SCOPE_TYPE] === \"NUMBER\") {\r\n scope.entite[nomTableColonne[2]].valeur = Number(valeur);\r\n } else {\r\n scope.entite[nomTableColonne[2]].valeur = valeur;\r\n }\r\n } else {\r\n if (scope.champs[nomTableColonne[1]][nomTableColonne[2]][SCOPE_DESCRIPTIONS][SCOPE_TYPE] === \"NUMBER\") {\r\n scope.champs[nomTableColonne[1]][nomTableColonne[2]].valeur = Number(valeur);\r\n } else {\r\n scope.champs[nomTableColonne[1]][nomTableColonne[2]].valeur = valeur;\r\n }\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Affichage des boutons radio ?\r\n */\r\n if (angular.isNullOrUndefined(scope.estRadio)) {\r\n scope.estRadio = function (e) {\r\n var nomElem = e + \"_\" + scope.$id;\r\n return scope.paramListePerso[nomElem].listeFixeRadio;\r\n };\r\n }\r\n\r\n /**\r\n * La source des données est-elle une liste fixe ?\r\n */\r\n /*if (angular.isNullOrUndefined(scope.estListeFixe)) {\r\n scope.estListeFixe = function (e) {\r\n var nomElem = e + \"_\" + scope.$id;\r\n return scope.paramListePerso[nomElem].listeFixe;\r\n };\r\n }*/\r\n\r\n /**\r\n * Champ valeur datalist ?\r\n */\r\n if (angular.isNullOrUndefined(scope.typeDatalist)) {\r\n scope.typeDatalist = function (e) {\r\n var nomElem = e + \"_\" + scope.$id;\r\n return (scope.paramListePerso[nomElem].typeInteraction === \"DATALIST\");\r\n };\r\n }\r\n\r\n /**\r\n * Champ valeur typeahead ?\r\n */\r\n if (angular.isNullOrUndefined(scope.typeTypeahead)) {\r\n scope.typeTypeahead = function (e) {\r\n var nomElem = e + \"_\" + scope.$id;\r\n return (scope.paramListePerso[nomElem].typeInteraction === \"TYPEAHEAD\");\r\n };\r\n }\r\n\r\n /**\r\n * Identifiant unique\r\n */\r\n if (angular.isNullOrUndefined(scope.getIdentifiant)) {\r\n scope.getIdentifiant = function (prefixe, suffixe, e) {\r\n return prefixe + e + \"_\" + scope.$id + suffixe;\r\n };\r\n }\r\n\r\n /**\r\n * Valeurs des listes fixes\r\n */\r\n if (angular.isNullOrUndefined(scope.getDataListeFixe)) {\r\n scope.getDataListeFixe = function (e) {\r\n return scope.listepersoListefixe[e + \"_\" + scope.$id];\r\n };\r\n }\r\n }\r\n };\r\n }])\r\n /*.directive('emptyListePerso', function () {\r\n return {\r\n restrict: 'A',\r\n require: 'ngModel',\r\n link: function (scope, element, attrs, modelCtrl) {\r\n // this parser runs before typeahead's parser\r\n modelCtrl.$parsers.unshift(function (inputValue) {\r\n var value = (inputValue ? inputValue : '[$empty$]'); // replace empty string with '[$empty$]' to bypass typeahead-min-length check\r\n modelCtrl.$viewValue = value; // this $viewValue must match the inputValue pass to typehead directive\r\n return value;\r\n });\r\n\r\n // this parser runs after typeahead's parser\r\n modelCtrl.$parsers.push(function (inputValue) {\r\n return inputValue === '[$empty$]' ? '' : inputValue; // set '[$empty$]' back to empty string\r\n });\r\n }\r\n }\r\n })*/\r\n .directive('listePersoShowOnFocus', function () {\r\n return {\r\n restrict: 'A',\r\n require: 'ngModel',\r\n link: function (scope, element, attrs, ngModel) {\r\n element.bind('focus', function () {\r\n ngModel.$setViewValue();\r\n element.triggerHandler('input');\r\n element.triggerHandler('change');\r\n });\r\n }\r\n };\r\n })\r\n .directive('listePersoScrollOnClick', ['$ocLazyLoad', '$document', '$window', function($ocLazyLoad, $document, $window) {\r\n return {\r\n restrict: 'A',\r\n link: function (scope, element) {\r\n $ocLazyLoad.load({\r\n serie: true, files: ['lib/jquery.min.js']\r\n }).then(function () {\r\n $document.ready(function () {\r\n element.on('click', function () {\r\n if ($(element).offset().top > ($window.innerHeight * 0.20)) {\r\n var posActuel = $document[0].body.scrollTop;\r\n $(\"html, body\").animate({scrollTop: posActuel + $(element).offset().top - 80}, \"slow\");\r\n }\r\n });\r\n });\r\n });\r\n }\r\n }\r\n }]);\r\n","/**\r\n * @version 1.0b\r\n * @copyright 2016 Operis\r\n * @Author Laurent Dorie - Operis\r\n */\r\n\r\n'use strict';\r\n\r\nangular.module('fr.operis.moteurV4.composants.OpTextInput', [\r\n 'fr.operis.moteurV4.modele.Modele'\r\n , 'fr.operis.moteurV4.utils.Conversion'\r\n , 'fr.operis.moteurV4.communication.OperisWSServer'\r\n ,'fr.operis.moteurV4.utils.RequeteReferentiel'\r\n ,'fr.operis.moteurV4.utils.ReferentielServlet'\r\n ,'fr.operis.moteurV4.utils.RequeteFichier'])\r\n .directive('opTextinput', [\r\n '$timeout'\r\n ,'fr.operis.moteurV4.utils.Conversion'\r\n ,'fr.operis.moteurV4.utils.RequeteReferentiel'\r\n ,'fr.operis.moteurV4.utils.ReferentielServlet'\r\n ,'fr.operis.moteurV4.utils.RequeteFichier'\r\n ,'fr.operis.moteurV4.utils.GestionActionFormulaire'\r\n , 'fr.operis.moteurV4.modele.Modele.SCOPE_DESCRIPTIONS'\r\n , 'fr.operis.moteurV4.modele.Modele.SCOPE_TYPE'\r\n , 'fr.operis.moteurV4.modele.Modele.SCOPE_CHAMPS'\r\n , 'fr.operis.moteurV4.modele.Modele.SCOPE_GRILLES'\r\n , 'fr.operis.moteurV4.modele.Modele.SCOPE_LISTES'\r\n , 'fr.operis.moteurV4.modele.Modele.SCOPE_LONGUEUR_MAX'\r\n , 'fr.operis.moteurV4.modele.Modele.SCOPE_LIBELLE'\r\n , 'fr.operis.moteurV4.modele.Modele.SCOPE_DESCRIPTION'\r\n , 'fr.operis.moteurV4.modele.Modele.SCOPE_UNITE'\r\n , 'fr.operis.moteurV4.modele.Modele.SCOPE_BORNE_MIN'\r\n , 'fr.operis.moteurV4.modele.Modele.SCOPE_BORNE_MAX'\r\n , 'fr.operis.moteurV4.modele.Modele.SCOPE_OBLIGATOIRE'\r\n , 'fr.operis.moteurV4.modele.Modele.SCOPE_TYPE_COMPLEXE'\r\n , 'fr.operis.moteurV4.modele.Modele.SCOPE_REF_ETRANGERE'\r\n , 'fr.operis.moteurV4.modele.Modele.SCOPE_ESTLECTURESEULE'\r\n , 'fr.operis.moteurV4.utils.Config'\r\n , 'fr.operis.moteurV4.communication.OperisWSServer'\r\n , 'fr.operis.moteurV4.utils.Encryption'\r\n , function (\r\n $timeout\r\n ,conversion\r\n , requetereferentiel\r\n , referentielServlet\r\n , requetefichier\r\n , gestionActionFormulaire\r\n , SCOPE_DESCRIPTIONS\r\n , SCOPE_TYPE\r\n , SCOPE_CHAMPS\r\n , SCOPE_GRILLES\r\n , SCOPE_LISTES\r\n , SCOPE_LONGUEUR_MAX\r\n , SCOPE_LIBELLE\r\n , SCOPE_DESCRIPTION\r\n , SCOPE_UNITE\r\n , SCOPE_BORNE_MIN\r\n , SCOPE_BORNE_MAX\r\n , SCOPE_OBLIGATOIRE\r\n , SCOPE_TYPE_COMPLEXE\r\n , SCOPE_REF_ETRANGERE\r\n , SCOPE_ESTLECTURESEULE\r\n , $config\r\n , serveur\r\n , encryption\r\n ) {\r\n return {\r\n restrict: 'E',\r\n transclude: true,\r\n replace: true,\r\n template: function (element, attributs) {\r\n var scopeSource = SCOPE_CHAMPS,\r\n scopeListes = SCOPE_LISTES,\r\n opModel, opListe, idListe, listeFilter, valeurLabel, valeurListe, groupListe='',\r\n retour = \"\";\r\n\r\n // Index de la grille\r\n if (attributs.opModel.indexOf('[') !== -1) scopeSource = SCOPE_GRILLES;\r\n opModel = scopeSource + '.' + attributs.opModel;\r\n\r\n // Id\r\n var id = attributs.opModel;\r\n\r\n // Nom du module\r\n var nomModule = attributs.opModuleNom;\r\n\r\n // Liste\r\n if (!angular.isNullOrUndefined(attributs.opListe)&& attributs.opListe.length>1) {\r\n // Récupération de la liste,valeur et filtre\r\n opListe = attributs.opListe.split(' in ');\r\n idListe = opListe[opListe.length - 1].split(' |filter: ');\r\n listeFilter = '';\r\n if (idListe.length === 2)\r\n listeFilter = ' |filter: ' + idListe[1];\r\n idListe = idListe[0];\r\n\r\n // Récupération de la valeur\r\n if (opListe.length === 1) {\r\n valeurLabel = idListe + 'VALEUR';\r\n } else {\r\n opListe = opListe[0].split(' group by ');\r\n if ( opListe.length >1 ){\r\n groupListe = ' group by entite.' + opListe[1] + '.valeur';\r\n }\r\n\r\n opListe = opListe[0].split(' as ');\r\n valeurListe = opListe[0];\r\n if ( opListe.length >1 ){\r\n valeurLabel = opListe[1];\r\n }else {\r\n valeurLabel = opListe[0];\r\n }\r\n }\r\n opListe = '::' + scopeListes + '.' + idListe;\r\n }\r\n\r\n // Disabled\r\n var lectureSeule = opModel + '.descriptions.' + SCOPE_ESTLECTURESEULE;\r\n\r\n // ToolTip\r\n var toolTip = opModel + '.descriptions.' + SCOPE_DESCRIPTION;\r\n\r\n // PlaceHolder\r\n var placeholder = opModel + '.descriptions.' + SCOPE_DESCRIPTION;\r\n\r\n // TypeChamps\r\n var typeaheadEditable = '!(' + opModel + '.descriptions.type == \\'NUMBER\\' )';\r\n\r\n // Required\r\n var required = opModel + '.descriptions.' + SCOPE_OBLIGATOIRE;\r\n\r\n // Option des modèles\r\n var modelOption = '{' +\r\n 'allowInvalid: true,' +\r\n 'updateOn: \\'default blur\\',' +\r\n 'debounce: {\\'default\\': 300, \\'blur\\': 0}' +\r\n '}';\r\n\r\n // change\r\n var change = (!angular.isNullOrUndefined(attributs.opChange)) ? 'ng-change=\"' + attributs.opChange + '\" ' : '';\r\n if ( opModel.indexOf(\"ESTPRINCIPAL\") !== -1 )\r\n change = 'ng-change=\"onEstPrincipal(\\'' + opModel + '\\',$index,' + opModel + '.valeur)\" ';\r\n\r\n // Show\r\n var show = (!angular.isNullOrUndefined(attributs.opShow))?attributs.opShow:true;\r\n\r\n // Type\r\n var type = (!angular.isNullOrUndefined(attributs.opType))?attributs.opType:'text';\r\n \r\n // Type Complexe\r\n var typeComplexe = (!angular.isNullOrUndefined(attributs.opTypeComplexe))?attributs.opTypeComplexe:undefined;\r\n\r\n // Lien\r\n var bLien = (!angular.isNullOrUndefined(attributs.opLien) && (attributs.opLien.length>0));\r\n var nomModuleLien, colonnesInfoLien, mapEntite;\r\n if (bLien) {\r\n var descriptionLien = attributs.opLien.split('|');\r\n nomModuleLien = descriptionLien[0];\r\n colonnesInfoLien = descriptionLien[1];\r\n mapEntite = ((descriptionLien.length > 2) && !angular.isNullOrUndefined(descriptionLien[2])) ? descriptionLien[2] : \"\";\r\n }\r\n\r\n // Info bulle\r\n var bInfoBulle = (!angular.isNullOrUndefined(attributs.opInfoBulle) && (attributs.opInfoBulle.length>0)) ? 'true' : 'false';\r\n var colonnesInfoBulle;\r\n if (bInfoBulle === 'true') {\r\n var descInfoBulle = attributs.opInfoBulle.split('|');\r\n if ((descInfoBulle.length > 1) && (descInfoBulle[0] === \"InfoBulle\")) {\r\n colonnesInfoBulle = descInfoBulle[1];\r\n }\r\n }\r\n\r\n // Scroll sur clique\r\n var scrollClick = (serveur.isMobile() && navigator.userAgent.match(/Android/i)) ? \"scroll-on-click \" : \"\";\r\n\r\n // Formule\r\n var formule = '';\r\n if ( !angular.isNullOrUndefined(attributs.opFormule) && attributs.opFormule.length>0)\r\n formule = 'op-input-formule=\"'+attributs.opFormule+'\" ';\r\n\r\n // Formulaire\r\n var formulaireNom = !angular.isNullOrUndefined(attributs.opForm)?attributs.opForm:\"form\";\r\n\r\n retour += '
';\r\n\r\n if (type === \"static\") {\r\n if (serveur.isMobile()) {\r\n retour += '