{# LG 20221003 passé + bas {% include "@Paa/Default/post_imports.html.twig" %} #}
<!DOCTYPE html>
<html lang="fr">
<head>
{# LG 20221003 début
<meta charset="UTF-8" />
<meta name="author" content="Limoog">
<meta name="viewport" content="width=device-width" initial-scale="1">
{% if not estDemo() %}
<meta name="robots" content="noindex"/>
<title>Logiciel planning médico-social et Alternance gratuit</title>
{% else %}
<title>PAA</title>
{% endif %}
<link rel="icon" type="image/x-icon" href="{{ asset_version('Images/PAA.ICO') }}" />
<link rel="stylesheet" type="text/css" href="{{asset_version('Limoog/Partages/css/Emma.css')}}">
<link rel="stylesheet" type="text/css" href="{{asset_version('vendor/bootstrap/4.5.0/css/bootstrap.min.css')}}">
#}
{% include "@Paa/Default/pre_imports.html.twig" %}
<meta name="description" content="PAA, le logiciel de planning médico-social (IME, IMPro, ...) et formation en alternance est gratuit en version limitée">
{% include "@Paa/Default/post_imports.html.twig" %}
{# LG 20221003 fin #}
</head>
<body>
<!--PAADemo--> {#Ne pas enlever ce commentaire : utilisé en JavaScript pour enlever ce contenu inutile dans le popup#}
{% if estDemo() %}
<div id="background">
<div id="screen-splitter">
<div id="card-wrapper">
<div id="cards">
<div class="alert alert-light text-center" style="font-size: .80vw; color: black;">
<h1>Créer et présenter les emplois du temps</H1>
</div>
<img src="{{ asset_version("Images/Captures/Planning.png") }}" class="rounded" alt="Construisez vos plannings d'activité et de présences en toute simplicité">
</div>
<div id="cards">
<div class="alert alert-light text-center" style="font-size: .80vw; color: black;">
<h1>Gérer le personnel, les usagers, les équipements</h1>
</div>
<img src="{{ asset_version("Images/Captures/SaisieIntervenants-Général.png") }} " class="rounded" alt="Gérez le personnel, ses activités, ses contrats et ses horaires">
</div>
<div id="cards">
<div class="alert alert-light text-center" style="font-size: .80vw; color: black;">
<h1>Combiner activités collectives et individuelles</h1>
</div>
<img src="{{ asset_version("Images/Captures/ChoixParticipantsUsagers.png") }}" class="rounded" alt="Définissez simplement les participants de chaque séance">
</div>
</div>
</div>
<div id="screen-splitter"></div>
<div id="screen-splitter">
<div id="card-wrapper">
<div id="cards">
<div class="alert alert-light text-center" style="font-size: .80vw; color: black;">
<h1>Gérer des bilans d'activités, présence, absences ...</h1>
</div>
<img src="{{ asset_version("Images/Captures/EditionsRapports.png") }}" class="rounded" alt="Editez les plannings générés dans une multitude de formats">
</div>
<div id="cards">
<div class="alert alert-light text-center" style="font-size: .80vw; color: black;">
<h1>Gérer les données des usagers</h1>
</div>
<img src="{{ asset_version("Images/Captures/Usagers_Statuts.png") }}" class="rounded" alt="Gérez les données des usagers an plus de leur planning">
</div>
<div id="cards">
<div class="alert alert-light text-center" style="font-size: .80vw; color: black;">
<h1>Automatiser la construction des emplois du temps</h1>
</div>
<img src="{{ asset_version("Images/Captures/CréerUneSemaine.png") }}" class="rounded" alt="Simplifiez les emplois du temps en utilisant des modèles évolutifs">
</div>
</div>
</div>
</div>
<style>
body, html {
overflow: hidden;
}
::-webkit-scrollbar {
display:none;
}
#background {
display: flex;
position: fixed;
transition: opacity .4s;
background: rgb(230, 230, 230);
width: 100%;
height: 100%;
z-index: -1;
overflow: hidden;
}
#screen-splitter {
flex: 1;
flex-direction: column;
}
#card-wrapper {
flex: 1;
display: flex;
height: 90%;
margin-top: 10%;
width: 100%;
flex-direction: column;
justify-content: space-around;
}
#card-wrapper * {
width: 90%;
display: flex;
align-self: center;
justify-content: center;
}
#cards {
display: flex;
flex: 1;
flex-direction: column;
}
#cards :nth-child(2) {
margin-bottom: 5%;
}
@media (max-width: 1100px) {
#background {
opacity: 0;
transition: opacity .4s;
}
}
#card-title {
display: flex;
align-self: center;
justify-content: center;
background-color: gray;
}
#card-title p {
padding: 15px;
}
@keyframes fade-in {
0% {
opacity: 0;
transform: translateY(-50vh);
}
60% {
opacity: 0;
}
}
#wrapper {
display: flex;
align-items: center;
justify-content: space-around;
}
{# #login_container {
padding-top: 1.5rem;
padding-bottom: 1.5rem;
padding-right: 1.5rem;
} #}
#sinscrire{
display: block !important ;
}
h1{
font-size: .80vw;
font-weight: bolder;
}
</style>
{% endif %}
<!--PAADemo--> {#Ne pas enlever ce commentaire : utilisé en JavaScript pour enlever ce contenu inutile dans le popup#}
<!--PAALoginForm--> {#Ne pas enlever ce commentaire : utilisé en JavaScript pour savoir que c'est une demande de login#}
<style>
#login_container {
animation: fade-in 1s;
display: block;
box-shadow: 5px 5px 16px -5px rgba(0,0,0,0.3);
{# padding-top: 1.5rem;
padding-left: 1.5rem; #}
}
#login_container label[for="username"]
, #login_container label[for="fos_user_change_password_form_current_password"]
, #login_container label[for="fos_user_resetting_form_plainPassword_first"] {
padding: 0 40px 0 0;
margin: 0 0 0 5%;
}
#login_container label[for="password"]
, #login_container label[for="fos_user_change_password_form_plainPassword_first"]
, #login_container label[for="fos_user_change_password_form_plainPassword_second"]
, #login_container label[for="fos_user_resetting_form_plainPassword_second"] {
padding: 15px 40px 0 0;
margin: 0 0 0 5%;
}
#login_container input[type="text"], #login_container input[type="password"], #login_container input[type="submit"] {
width: 90%;
margin-left: 5%;
}
#login_container input[type="checkbox"] {
width: 50px;
margin-top: 10px;
}
#login_container input[name='_remember_me'], #login_container label[for='remember_me'] {
margin-top: 15px;
margin-bottom: 15px;
}
label {
font-size: inherit;
}
a {
color: mediumseagreen;
}
p {
/* LG 20230112 déac : perturbe l'affichage de la page par-dessus laquelle le popup arrive (changelog notemment) font-size: 12px;
text-align: center; */
}
.btn-block {
background-color: #DCEAD7;
}
#login-alert {
margin-top: 15px;
margin-bottom: 15px;
background: #9BBC8A;
border-radius: 5px;
text-align: center;
}
.login-div{
width: 90%;
margin-left: 5%;
margin-bottom: 15px;
}
.login-error{
color: red ;;
}
#sinscrire{
display: none ;
}
#password{
border-bottom-right-radius: 0 !important;
border-top-right-radius: 0 !important;
}
#ctnAfficheMDP{
border-top-left-radius: 0;
border-bottom-left-radius: 0;
box-shadow: 0 0 7px 1px var(--paa-menu-color);
}
</style>
{# <div style="height: 100%;"> #}
{# <div>
{{ dump(csrf_token('authenticate')) }} = valeur csrf token, qui est un hash de la session actuelle
</div>
#}
<div class = "flex-column d-flex justify-content-center align-items-center h-100">
<div id="login_container" class = "bg-white p-4" style="width: 400px;">
<div class="login-div" style="margin-top: 0px; margin-bottom: 40px; margin-left: -17px;">
<a href = "http://www.limoog.net" tabIndex = "-1"> {# LG 20220914 tabIndex = "-1" permet de rendre non focusable le lien, et d'éviter qu'il apparaisse avec un cadre rouge sur certains navigateurs #}
<img src="{{ asset_version("Images/logoPAA.png") }} " alt = "Planning Accueil Accompagnement" class = "logo resizeTel" style="width:360px">
</a>
</div>
{# LG 20231009 old {% if is_granted("IS_AUTHENTICATED_REMEMBERED") %} #}
{% if is_granted("IS_AUTHENTICATED_FULLY") %}
<div id="login-alert" class="login-div">
{#Affiche "Connecté en tant que ... Déconnexion"#}
Vous êtes actuellement connecté en tant que {{ app.user.username }}
</div>
<div style="display: flex;" class="login-div">
<div style="flex: 1;">
<a href="{{ path('fos_user_security_logout') }}">
{{ 'layout.logout'|trans({}, 'FOSUserBundle') }}
</a>
</div>
<div>
<a href="{{ path('index') }}">
Aller à l'accueil
</a>
</div>
</div>
{# LG 20231009 déplacé de login.html.twig début #}
<div style="m" class="login-div">
Vous pouvez aussi vous reconnecter avec une autre identité
</div>
{# LG 20231009 déplacé de login.html.twig fin #}
{% endif %}
{% block pre_fos_user_content %}{% endblock pre_fos_user_content %}
{% block fos_user_content %}{% endblock fos_user_content %}
{% block post_fos_user_content %}{% endblock post_fos_user_content %}
{# LG 20221007 : déplacé dans Login.html.twig
<div id="sinscrire" class="login-div" style="margin-top: 15px">
{% if estDemo() %}
<a href="https://www.limoog.net/inscription/" target="_blank">Obtenir un accès gratuit</a>
{% endif%}
</div>
#}
{# SM 20240515 début de afficher MDP#}
<script>
// LG 20240822 old if (!document.getElementById("afficheMDP")){
if (document.getElementById("password") && !document.getElementById("afficheMDP")){
//bouton afficher mdp n'existe pas,crée si il n'existe pas, et ne pas le crée si il existe
var lab = document.getElementById("remember_me"); //récupérer la position de se souvenir de moi
var pass = document.getElementById("password"); //récupérer password
var ctn = document.createElement("div"); //création de ladiv final
ctn.classList="d-flex ";//class de la div
ctn.id="alligneMDP"; //id de la div
ctn.style=style="max-width: 307;width: 335px;"//taille de la div du MDP
pass.parentElement.append(ctn);//crétion du lien parent enfant entre ctn et pass
ctn.append(pass);//on rajoute le mots de passe
var dav = document.createElement("div");//on crée la div du span(bouton)
dav.id = "ctnAfficheMDP" ; // LG 20240725
dav.classList="input-group-text shadow-form-control";//class de la div
ctn.parentElement.append(dav);//on crée le lien parents enfant entre dav et ctn
var btn = document.createElement("span");//on crée le span(bouton en forme d'oeil)
btn.classList="far fa-eye";//class du span
btn.id="afficheMDP";//id du span
btn.title="Afficher le mot de passe";//title du span
dav.parentElement.append(btn);//création du lien parent enfant entre btn et dav
dav.append(btn);//on rajoute le span dans la div
ctn.append(dav);//on rajoute la div dans la div principale
lab.before(ctn);//on le place avant la position de se souvenir de moi
var mdp=document.getElementById("password");
var eye = document.getElementById("afficheMDP") ; // LG 20240809
var afficherMDP=document.getElementById("afficheMDP");
afficherMDP.addEventListener('click', () => {//quand on clicke
if (mdp.type === "password"){
// dans ce cas, si le mots de passe est cachée, le rendre visible
mdp.type="text";
eye.classList = "fa fa-eye-slash" ; // LG 20240809
btn.title="Masquer le mot de passe"; // LG 20240809
} else{
// dans les autres cas, le mots de passe est visible, le rendre ilisible
mdp.type="password";
eye.classList = "fa fa-eye" ; // LG 20240809
btn.title="Afficher le mot de passe"; // LG 20240809
}
})}
</script>
{# SM 20240515 fin de afficher MDP#}
</div>
{# </div> #}
<script>
// custom-control-label control-label m-0 mr-3
{# LG 20220914 début : quand le form login est appellé dans un popup plusieurs fois, il y a une erreur "Redéclaration de Let usernameTb" #}
{# let usernameTb = document.getElementById("username");
let passwdTb = document.getElementById("password");
let btnSubmit = document.getElementById("_submit")
usernameTb.classList.add("shadow-form-control", "border-0", "form-control");
passwdTb.classList.add("shadow-form-control", "border-0", "form-control");
btnSubmit.classList.add("btn-menu-planning", "btn", "btn-block", "shadow-form-control"); #}
{# AV 20221007 old document.getElementById("username").classList.add("shadow-form-control", "border-0", "form-control");
document.getElementById("password").classList.add("shadow-form-control", "border-0", "form-control");
document.getElementById("_submit").classList.add("btn-menu-planning", "btn", "btn-block", "shadow-form-control"); #}
// AV 20221007 début les id doivent correspondre en fonction des différents éléments des form: changer le mdp, réinitialiser le mdp et connexion
if(document.getElementById("username") !== null) {
document.getElementById("username").classList.add("shadow-form-control", "border-0", "form-control");
{# //LG 20221008 début : pour préécrire le login de l'utilisateur actuel, quand on peut le connaitre #}
{% if psLogin is not defined %}
{% set psLogin = '' %}
// LG 20231009 début
{% elseif is_granted("IS_AUTHENTICATED_REMEMBERED") %}
{% set psLogin = app.user.username %}
// LG 20231009 fin
{% endif %}
if ("{{ psLogin }}") {
{# // Un login a été fourni au twig #}
$("#username").val("{{psLogin}}") ;
} else if (window.currentUser) {
{# // La page actuelle dispose de l'information #}
$("#username").val(window.currentUser) ;
}
{# //LG 20221008 fin #}
}
if(document.getElementById("password") !== null) {
document.getElementById("password").classList.add("shadow-form-control", "border-0", "form-control");
}
if(document.getElementById("_submit") !== null) {
document.getElementById("_submit").classList.add("btn-menu-planning", "btn", "btn-block", "shadow-form-control");
}
if($("input[type=submit]").length) {
$("input[type=submit]")[0].classList.add("btn-menu-planning", "btn", "btn-block", "shadow-form-control");
$("input[type=submit]").css("margin-top", "15px");
}
if(document.getElementById("fos_user_change_password_form_current_password") !== null) {
document.getElementById("fos_user_change_password_form_current_password").classList.add("shadow-form-control", "border-0", "form-control");
}
if(document.getElementById("fos_user_change_password_form_plainPassword_first") !== null) {
document.getElementById("fos_user_change_password_form_plainPassword_first").classList.add("shadow-form-control", "border-0", "form-control");
}
if(document.getElementById("fos_user_change_password_form_plainPassword_second") !== null) {
document.getElementById("fos_user_change_password_form_plainPassword_second").classList.add("shadow-form-control", "border-0", "form-control");
}
if(document.getElementById("fos_user_resetting_form_plainPassword_first") !== null) {
document.getElementById("fos_user_resetting_form_plainPassword_first").classList.add("shadow-form-control", "border-0", "form-control");
}
if(document.getElementById("fos_user_resetting_form_plainPassword_second") !== null) {
document.getElementById("fos_user_resetting_form_plainPassword_second").classList.add("shadow-form-control", "border-0", "form-control");
}
if(document.getElementById("fos_user_change_password_form__token") !== null) {
document.getElementById("fos_user_change_password_form__token").classList.add("btn-menu-planning", "btn", "btn-block", "shadow-form-control");
}
// AV 20221007 fin
{# LG 20220927 old var loNext = $("#flashbag").next()[0] ; #}
var loNext = $("#aide").next()[0] ;
if (loNext && loNext.tagName == "DIV" ) {
// L'élément flashbag a derierre lui une div : elle a été ajoutée dans vendor/friendsofsymfony/user-bundle/Resources/views/Security/login_content.html.twig
// pour afficher l'erreur d'authentification
// Lui affecter la classe login-div
loNext.classList.add("login-div", "login-error") ;
{% if estDemo() %}
if ($(loNext).html() == "Identifiants invalides.") {
$(loNext).html("Identifiants invalides.<br>Si vous doutez de votre nom d'utilisateur, utilisez plutôt l'adresse mail que vous avez fournie lors de votre inscription.") ;
}
{% endif %}
}
</script>
<!--PAALoginForm--> {#Ne pas enlever ce commentaire : utilisé en JavaScript pour savoir que c'est une demande de login#}
</body>
</html>