Compare commits

..

5 commits

Author SHA1 Message Date
0d4a2c75ab Added translation files 2024-12-04 13:45:39 +01:00
795e3b12ce Added terms and conditions logic 2024-12-04 13:45:28 +01:00
1c29421f73 Added menu logic 2024-12-04 13:45:08 +01:00
3bd7cc7651 Unified headers 2024-12-04 13:44:46 +01:00
49461e73e4 Renamed js file and added tooltips support 2024-12-04 09:11:53 +01:00
10 changed files with 12375 additions and 78 deletions

View file

@ -12,28 +12,37 @@
</head> </head>
<body data-platform="public"> <body data-platform="public">
<header class="top-bar" data-image=""> <header class="top-bar fixed-top">
<nav class="navbar navbar-expand-lg bg-body-tertiary"> <div class="d-grid gap-3 align-items-center">
<nav class="navbar navbar-expand-lg bg-body-tertiary" aria-label="Main navigation">
<div class="container"> <div class="container">
<a class="navbar-brand" href="home.html"> <a class="navbar-brand" href="home.html">
<img src="static/img/logo/logo_e-tandem-Bilinguisme_FR.svg"> <img src="static/img/logo/logo_e-tandem-Bilinguisme_FR.svg">
</a> </a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#mainNav" aria-controls="mainNav" aria-expanded="false" aria-label="Toggle navigation"> <button type="button" id="menu-toggle" class="navbar-toggler border-0" type="button" data-bs-toggle="offcanvas" data-bs-target="#mainNav" aria-controls="mainNav" aria-label="Toggle main menu">
<span class="navbar-toggler-icon"></span> <span class="custom-toggler navbar-toggler-icon"></span>
</button> </button>
<div class="collapse navbar-collapse" id="mainNav"> <div class="offcanvas offcanvas-end" tabindex="-1" id="mainNav" aria-label="Main menu" data-bs-scroll="false">
<ul class="navbar-nav"> <div class="offcanvas-body">
<li class="nav-item"> <div id="side-lang" class="ms-auto">
<a class="nav-link active" aria-current="page" href="#">Accueil</a> <div class="col">
</li> <label for="lang">Choisir la langue</label>
<li class="nav-item"> <select id="lang" class="lang-select form-select form-select-sm" aria-label="Select language">
<a class="nav-link" href="#">Features</a> <option selected>Français</option>
</li> <option>Deutsch</option>
</ul> <option>Italiano</option>
<option>Rumantsch</option>
<option>English</option>
</select>
</div>
</div>
</div>
</div> </div>
</div> </div>
</nav> </nav>
</div>
</header> </header>
<main class="container" data-screen="404"> <main class="container" data-screen="404">
<div class="wrapper container"> <div class="wrapper container">
<div class="text-center"> <div class="text-center">

View file

@ -12,28 +12,37 @@
</head> </head>
<body data-platform="public"> <body data-platform="public">
<header class="top-bar" data-image=""> <header class="top-bar fixed-top">
<nav class="navbar navbar-expand-lg bg-body-tertiary"> <div class="d-grid gap-3 align-items-center">
<nav class="navbar navbar-expand-lg bg-body-tertiary" aria-label="Main navigation">
<div class="container"> <div class="container">
<a class="navbar-brand" href="home.html"> <a class="navbar-brand" href="home.html">
<img src="static/img/logo/logo_e-tandem-Bilinguisme_FR.svg"> <img src="static/img/logo/logo_e-tandem-Bilinguisme_FR.svg">
</a> </a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#mainNav" aria-controls="mainNav" aria-expanded="false" aria-label="Toggle navigation"> <button type="button" id="menu-toggle" class="navbar-toggler border-0" type="button" data-bs-toggle="offcanvas" data-bs-target="#mainNav" aria-controls="mainNav" aria-label="Toggle main menu">
<span class="navbar-toggler-icon"></span> <span class="custom-toggler navbar-toggler-icon"></span>
</button> </button>
<div class="collapse navbar-collapse" id="mainNav"> <div class="offcanvas offcanvas-end" tabindex="-1" id="mainNav" aria-label="Main menu" data-bs-scroll="false">
<ul class="navbar-nav"> <div class="offcanvas-body">
<li class="nav-item"> <div id="side-lang" class="ms-auto">
<a class="nav-link active" aria-current="page" href="#">Accueil</a> <div class="col">
</li> <label for="lang">Choisir la langue</label>
<li class="nav-item"> <select id="lang" class="lang-select form-select form-select-sm" aria-label="Select language">
<a class="nav-link" href="#">Features</a> <option selected>Français</option>
</li> <option>Deutsch</option>
</ul> <option>Italiano</option>
<option>Rumantsch</option>
<option>English</option>
</select>
</div>
</div>
</div>
</div> </div>
</div> </div>
</nav> </nav>
</div>
</header> </header>
<main class="container" data-screen="connect"> <main class="container" data-screen="connect">
<div class="wrapper container"> <div class="wrapper container">
<div class="col-11 col-lg-5 mx-auto"> <div class="col-11 col-lg-5 mx-auto">

View file

@ -9,31 +9,41 @@
<link href="static/css/main.css" rel="stylesheet"> <link href="static/css/main.css" rel="stylesheet">
<link rel="icon" type="image/png" sizes="16x16" href="static/favicon.png"> <link rel="icon" type="image/png" sizes="16x16" href="static/favicon.png">
<script src="static/js/vendor/bootstrap.bundle.min.js"></script> <script src="static/js/vendor/bootstrap.bundle.min.js"></script>
<script src="static/js/check.js"></script>
</head> </head>
<body data-platform="public"> <body data-platform="public">
<header class="top-bar" data-image=""> <header class="top-bar fixed-top">
<nav class="navbar navbar-expand-lg bg-body-tertiary"> <div class="d-grid gap-3 align-items-center">
<nav class="navbar navbar-expand-lg bg-body-tertiary" aria-label="Main navigation">
<div class="container"> <div class="container">
<a class="navbar-brand" href="home.html"> <a class="navbar-brand" href="home.html">
<img src="static/img/logo/logo_e-tandem-Bilinguisme_FR.svg"> <img src="static/img/logo/logo_e-tandem-Bilinguisme_FR.svg">
</a> </a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#mainNav" aria-controls="mainNav" aria-expanded="false" aria-label="Toggle navigation"> <button type="button" id="menu-toggle" class="navbar-toggler border-0" type="button" data-bs-toggle="offcanvas" data-bs-target="#mainNav" aria-controls="mainNav" aria-label="Toggle main menu">
<span class="navbar-toggler-icon"></span> <span class="custom-toggler navbar-toggler-icon"></span>
</button> </button>
<div class="collapse navbar-collapse" id="mainNav"> <div class="offcanvas offcanvas-end" tabindex="-1" id="mainNav" aria-label="Main menu" data-bs-scroll="false">
<ul class="navbar-nav"> <div class="offcanvas-body">
<li class="nav-item"> <div id="side-lang" class="ms-auto">
<a class="nav-link active" aria-current="page" href="#">Accueil</a> <div class="col">
</li> <label for="lang">Choisir la langue</label>
<li class="nav-item"> <select id="lang" class="lang-select form-select form-select-sm" aria-label="Select language">
<a class="nav-link" href="#">Features</a> <option selected>Français</option>
</li> <option>Deutsch</option>
</ul> <option>Italiano</option>
<option>Rumantsch</option>
<option>English</option>
</select>
</div>
</div>
</div>
</div> </div>
</div> </div>
</nav> </nav>
</div>
</header> </header>
<main class="container-fluid" data-screen="connect"> <main class="container-fluid" data-screen="connect">
<div class="wrapper container"> <div class="wrapper container">
<div class="col-11 col-lg-5 mx-auto"> <div class="col-11 col-lg-5 mx-auto">
@ -44,9 +54,9 @@
<label class="form-label" for="userId">Adresse électronique</label> <label class="form-label" for="userId">Adresse électronique</label>
</div> </div>
<div class="mb-3"> <div class="mb-3">
<button type="button" class="btn btn-link" data-bs-toggle="modal" data-bs-target="#cgv-modal">Lire les termes et conditions d'utilisation</button> <button id="readTerms" type="button" class="btn btn-link" data-bs-toggle="modal" data-bs-target="#cgv-modal">Lire les termes et conditions d'utilisation</button>
</div> </div>
<button class="btn btn-cta rounded w-100 py-3" type="submit">Créer un compte</button> <button id="btnCreateAccount" class="btn btn-cta rounded w-100 py-3" type="submit" disabled>Créer un compte</button>
</form> </form>
<span>J'ai déjà un compte?</span> <span>J'ai déjà un compte?</span>
<a href="connect.html">M'identifier</a> <a href="connect.html">M'identifier</a>
@ -68,8 +78,10 @@
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Fermer"></button> <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Fermer"></button>
</div> </div>
<div class="modal-body"> <div class="modal-body">
<p>En vous inscrivant sur plateforme e-tandem.ch des TANDEMs linguistiques® du Forum du bilinguisme, vous acceptez de publier votre profil<sup class="danger"><strong>*</strong></sup>. Le Forum du bilinguisme souhaite rappeler que cette plateforme est uniquement réservée à la mise en relation de personnes intéressées à pratiquer un TANDEM linguistique®. Le Forum du bilinguisme se réserve le droit de supprimer en tout temps le profil de personnes dont les intentions diffèrent de lobjectif premier de cette plateforme : mettre en contact des personnes de langues différentes dans le but de former et pratiquer un TANDEM linguistique*. Le Forum du bilinguisme rappelle aux personnes inscrites que cette e-plateforme est ouverte au public et que les données personnelles publiées sont de la responsabilité de lutilisateur. Vous pouvez en tout temps désactiver, par conséquent réactiver votre profil.</p> <p>En vous inscrivant sur plateforme e-tandem.ch des TANDEMs linguistiques® du Forum du bilinguisme, vous acceptez de publier votre profil<sup class="emphasis"><strong>*</strong></sup>.</p>
<p><sup class="danger"><strong>*</strong></sup>Le Forum du bilinguisme ne peut être tenu responsable de la véracité des données publiées, ni du bien-fondé de la démarche des personnes inscrites sur la plateforme. Vous pouvez à tout moment nous signaler un profil ne respectant pas le but de cette plateforme.</p> <p>Le Forum du bilinguisme souhaite rappeler que cette plateforme est uniquement réservée à la mise en relation de personnes intéressées à pratiquer un TANDEM linguistique®.</p>
<p>Le Forum du bilinguisme se réserve le droit de supprimer en tout temps le profil de personnes dont les intentions diffèrent de lobjectif premier de cette plateforme : mettre en contact des personnes de langues différentes dans le but de former et pratiquer un TANDEM linguistique*. Le Forum du bilinguisme rappelle aux personnes inscrites que cette e-plateforme est ouverte au public et que les données personnelles publiées sont de la responsabilité de lutilisateur. Vous pouvez en tout temps désactiver, par conséquent réactiver votre profil.</p>
<p><sup class="emphasis"><strong>*</strong></sup>Le Forum du bilinguisme ne peut être tenu responsable de la véracité des données publiées, ni du bien-fondé de la démarche des personnes inscrites sur la plateforme. Vous pouvez à tout moment nous signaler un profil ne respectant pas le but de cette plateforme.</p>
<div class="form-check py-3"> <div class="form-check py-3">
<input class="form-check-input" type="checkbox" value="" id="cgv-check"> <input class="form-check-input" type="checkbox" value="" id="cgv-check">
<label class="form-check-label" for="cgv-check"> <label class="form-check-label" for="cgv-check">

12173
dictionnary.html Normal file

File diff suppressed because it is too large Load diff

View file

@ -9,6 +9,7 @@
<link href="static/css/main.css" rel="stylesheet"> <link href="static/css/main.css" rel="stylesheet">
<link rel="icon" type="image/png" sizes="16x16" href="static/favicon.png"> <link rel="icon" type="image/png" sizes="16x16" href="static/favicon.png">
<script src="static/js/vendor/bootstrap.bundle.min.js"></script> <script src="static/js/vendor/bootstrap.bundle.min.js"></script>
<script src="static/js/js.js"></script>
</head> </head>
<body> <body>
@ -143,8 +144,8 @@
<section class="panel mb-3"> <section class="panel mb-3">
<h1 class="fs-2 mb-4">Présentation</h1> <h1 class="fs-2 mb-4">Présentation</h1>
<p>Vous avez la possibilité de publier un texte permettant à toute personne intéressée den savoir un peu plus à votre sujet motivation, intérêts personnels, âge, objectif du TANDEM linguistique (professionnel ou privé), horaires, etc.</p> <p>Vous avez la possibilité de publier un texte permettant à toute personne intéressée den savoir un peu plus à votre sujet motivation, intérêts personnels, âge, objectif du TANDEM linguistique (professionnel ou privé), horaires, etc.</p>
<label class="form-label">Présentation (500 caractères max.)</label> <label class="form-label" for="user-description">Présentation (500 caractères max.)</label>
<textarea name="user-description" id="user-description" class="form-control" placeholder="Entrez votre présentation" rows="4"></textarea> <textarea name="user-description" id="user-description" class="form-control" placeholder="Entrez votre présentation" rows="4" maxlength="500"></textarea>
</section> </section>
<section class="panel mb-3"> <section class="panel mb-3">
<h1 class="fs-2 mb-4">Langue(s) proposée(s)</h1> <h1 class="fs-2 mb-4">Langue(s) proposée(s)</h1>

View file

@ -270,7 +270,7 @@ article li:not(:first-of-type){
border: 2px solid white; border: 2px solid white;
border-radius: 50%; border-radius: 50%;
} }
.profile .label{ .profile .label, #signal-modal label{
font-weight: 700; font-weight: 700;
} }
.user-description{ .user-description{
@ -318,11 +318,14 @@ article li:not(:first-of-type){
color: white; color: white;
padding: 0.5em 1.5em; padding: 0.5em 1.5em;
} }
.btn-cta, .btn-primary, .btn-secondary, .btn-outline-primary, .btn-outline-secondary{ .btn-cta, .btn-primary, .btn-secondary, .btn-outline-primary, .btn-outline-secondary{
font-size: 1em; font-size: 1em;
} }
.btn:disabled, .btn.disabled{
background: var(--bs-gray-400);
color: var(--bs-gray-600);
border-color: var(--bs-gray-500);
}
/* forms */ /* forms */
.lang-select{ .lang-select{
max-width: 12em; max-width: 12em;
@ -342,11 +345,33 @@ ul, ol{
.rounded{ .rounded{
--bs-border-radius: 2rem; --bs-border-radius: 2rem;
} }
.emphasis{
color: var(--bs-link-color);
}
sup.emphasis{
margin-left: 0.125rem;
margin-right: 0.125rem;
}
.validated{
display: flex;
align-items: center;
}
.validated::before{
content: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="icon-ui"><path stroke-linecap="round" stroke-linejoin="round" d="m4.5 12.75 6 6 9-13.5" /></svg>');
margin-right: 0.5rem;
width: 1.5em;
height: 1.5em;
display: inline-flex;
}
/*modals*/ /*modals*/
.modal-header{ .modal-header{
border-bottom: none; border-bottom: none;
} }
.modal-title{
width: 100%;
text-align: center;
}
/* footer */ /* footer */
footer{ footer{
@ -443,7 +468,7 @@ nav .icon-ui{
display: grid; display: grid;
gap: 0 .5rem; gap: 0 .5rem;
width: fit-content; width: fit-content;
margin: calc(var(--div-padding) / 1.25) auto 0; margin: calc(var(--div-padding) / 3) auto 0;
} }
.offcanvas .user-avatar{ .offcanvas .user-avatar{
margin: 0 auto; margin: 0 auto;

View file

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="icon-ui">
<path stroke-linecap="round" stroke-linejoin="round" d="m4.5 12.75 6 6 9-13.5" />
</svg>

After

Width:  |  Height:  |  Size: 220 B

14
static/js/check.js Normal file
View file

@ -0,0 +1,14 @@
document.addEventListener("DOMContentLoaded", function() {
const checkTerms = document.querySelector('#cgv-check');
const createAccountButton = document.querySelector('#btnCreateAccount');
const readTerms = document.querySelector('#readTerms');
console.log(checkTerms, createAccountButton);
checkTerms.addEventListener("change", function() {
createAccountButton.disabled = !checkTerms.checked;
if (checkTerms.checked) {
readTerms.classList.add("validated");
} else {
readTerms.classList.remove("validated");
}
});
});

View file

@ -1,3 +1,14 @@
/* tooltips */
function initTooltips(section) {
const tooltipTriggerList = document.querySelectorAll('[data-bs-toggle="tooltip"]');
const tooltipList = [...tooltipTriggerList].map(tooltipTriggerEl => new bootstrap.Tooltip(tooltipTriggerEl));
}
function checkTermsandConditions(){
const checkTerms = document.querySelector('#cgv-check');
const createAccountButton = document.querySelector('#btnCreateAccount');
createAccountButton.disabled = !checkTerms.checked;
}
document.addEventListener("DOMContentLoaded", function() { document.addEventListener("DOMContentLoaded", function() {
const offmenu = document.getElementById("offSideMenu"); const offmenu = document.getElementById("offSideMenu");
const sidemenu = document.getElementById("secondary-nav"); const sidemenu = document.getElementById("secondary-nav");
@ -15,4 +26,6 @@ document.addEventListener("DOMContentLoaded", function() {
const mediaQuery = window.matchMedia("(max-width: 992px)"); const mediaQuery = window.matchMedia("(max-width: 992px)");
toggleMenus(mediaQuery); // Initial check toggleMenus(mediaQuery); // Initial check
mediaQuery.addEventListener('change', (e) => toggleMenus(e)); mediaQuery.addEventListener('change', (e) => toggleMenus(e));
initTooltips(document);
}); });

View file

@ -9,7 +9,7 @@
<link href="static/css/main.css" rel="stylesheet"> <link href="static/css/main.css" rel="stylesheet">
<link rel="icon" type="image/png" sizes="16x16" href="static/favicon.png"> <link rel="icon" type="image/png" sizes="16x16" href="static/favicon.png">
<script src="static/js/vendor/bootstrap.bundle.min.js"></script> <script src="static/js/vendor/bootstrap.bundle.min.js"></script>
<script src="static/js/menu.js"></script> <script src="static/js/js.js"></script>
</head> </head>
<body> <body>
@ -3773,13 +3773,13 @@
</div> </div>
</div> </div>
</div> </div>
<div class="user-description"> <p class="user-description">
Ich möchte gerne meine Französischkenntnisse verbessern. In meiner Freizeit male bzw. illustriere ich, lese, mache Yoga oder verbringe Zeit in der Natur. Ich komme aus Thun, arbeite aber in Bern. Gerne unterstütze ich dich dabei, deine Deutschkenntnisse zu verbessern. Ich möchte gerne meine Französischkenntnisse verbessern. In meiner Freizeit male bzw. illustriere ich, lese, mache Yoga oder verbringe Zeit in der Natur. Ich komme aus Thun, arbeite aber in Bern. Gerne unterstütze ich dich dabei, deine Deutschkenntnisse zu verbessern.
</div> </p>
</div> </div>
<div class="profile-options"> <div class="profile-options">
<button type="button" class="btn btn-cta rounded">Proposer un TANDEM</button> <button type="button" class="btn btn-cta rounded">Proposer un TANDEM</button>
<button type="button" class="btn btn-link">Signaler ce profil inapproprié</button> <button type="button" class="btn btn-link" data-bs-toggle="modal" data-bs-target="#signal-modal">Signaler ce profil inapproprié</button>
</div> </div>
</div> </div>
</div> </div>
@ -3834,13 +3834,13 @@
</div> </div>
</div> </div>
</div> </div>
<div class="user-description"> <p class="user-description">
Ich möchte meine Französischkenntnisse v.A. mündlich verbessern um im Berufsalltag ungehemmter und einfacher kommunizieren zu können. Ist eingerostet, da ich es sehr wenig brauchte. Bin 39jährig, mag die Natur und Musik, habe 2 Töchter. Am liebsten möchte ich mich in Persona treffen, aber wir können auch mit online abwechseln. Kann zu Bürozeiten oder Do/Fr nach Feierabend. Ich möchte meine Französischkenntnisse v.A. mündlich verbessern um im Berufsalltag ungehemmter und einfacher kommunizieren zu können. Ist eingerostet, da ich es sehr wenig brauchte. Bin 39jährig, mag die Natur und Musik, habe 2 Töchter. Am liebsten möchte ich mich in Persona treffen, aber wir können auch mit online abwechseln. Kann zu Bürozeiten oder Do/Fr nach Feierabend.
</div> </p>
</div> </div>
<div class="profile-options"> <div class="profile-options">
<button type="button" class="btn btn-cta rounded">Proposer un TANDEM</button> <button type="button" class="btn btn-cta rounded" >Proposer un TANDEM</button>
<button type="button" class="btn btn-link">Signaler ce profil inapproprié</button> <button type="button" class="btn btn-link" data-bs-toggle="modal" data-bs-target="#signal-modal">Signaler ce profil inapproprié</button>
</div> </div>
</div> </div>
</div> </div>
@ -3874,5 +3874,43 @@
</div> </div>
</footer> </footer>
<!-- Modal -->
<div class="modal fade" id="signal-modal" tabindex="-1" aria-label="Signaler un utilisateur" aria-hidden="true">
<div class="modal-dialog modal-lg modal-dialog-centered modal-dialog-scrollable">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">Signaler le profil de<br>{user-pseudo}</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Fermer"></button>
</div>
<div class="modal-body">
<form>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed laoreet quam eget magna aliquet pretium. In eget orci eu turpis commodo cursus.</p>
<div class="col-lg-4">
<label class="form-label">Motif du signalement</label>
<select class="form-select">
<option selected>Sélectionnez un motif</option>
<option>Spam</option>
<option>Comportement inapproprié</option>
<option>Informations erronées</option>
<option>Autre</option>
</select>
</div>
<div class="mt-3">
<label class="form-label">Précisions</label>
<textarea name="signal-description" id="signal-description" class="form-control" placeholder="Précisez le motif de signalement" rows="4" maxlength="250"></textarea>
</div>
<input type="hidden" id="userId" name="userId" value="12345" />
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Annuler</button>
<button type="button" class="btn btn-primary">Envoyer</button>
</div>
</div>
</div>
</div>
</body> </body>
</html> </html>