mirror of
https://github.com/groupe1cir1n/groupe1CIR1Njs.git
synced 2026-01-18 16:37:25 +01:00
Cleanup the code, fix a lot of little things
This commit is contained in:
@@ -47,7 +47,7 @@
|
||||
<div class="main">
|
||||
<div class="secondary">
|
||||
<img id="img_analyse" src="src/img/Accueil/Analyse.jpg" alt="image montrant des personnes et des diagrammes">
|
||||
<p id="who_we_are"><div id="LabHidden" class="slide-effect">L’équipe « Vision et Analyse de Données » est une équipe du laboratoire L@bISEN de l’ISEN <br>Yncréa Ouest. L’équipe mène une activité de R&D pour la conception de plateformes <br>technologiques d’observations et d’analyses à partir de réseaux de capteurs intelligents.</div></p>
|
||||
<p id="who_we_are"></p><div id="LabHidden">L’équipe « Vision et Analyse de Données » est une équipe du laboratoire L@bISEN de l’ISEN <br>Yncréa Ouest. L’équipe mène une activité de R&D pour la conception de plateformes <br>technologiques d’observations et d’analyses à partir de réseaux de capteurs intelligents.</div>
|
||||
<a href="recherche.html"class="btn">Voir nos axes de recherches</a>
|
||||
<li class="actu">
|
||||
<p>Fil d'actualité</p>
|
||||
|
||||
@@ -59,13 +59,13 @@
|
||||
<div class="modal-content">
|
||||
<span class="close">×</span>
|
||||
<div class="content_techno">
|
||||
<div class="img_techno">
|
||||
<img src="/src/img/plateforme_techno/laptop_meeting.jpg" alt="laptop meeting">
|
||||
</div>
|
||||
<div class="text_techno">
|
||||
<h2>Chambre connectée (Living Lab)</h2>
|
||||
<p id="LivingLabTextModal"></p>
|
||||
</div>
|
||||
<div class="img_techno">
|
||||
<img src="/src/img/plateforme_techno/laptop_meeting.jpg" alt="laptop meeting">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -83,13 +83,13 @@
|
||||
<div class="modal-content">
|
||||
<span class="close">×</span>
|
||||
<div class="content_techno">
|
||||
<div class="img_techno">
|
||||
<img src="/src/img/plateforme_techno/server_and_wires.jpg" alt="server and wires">
|
||||
</div>
|
||||
<div class="text_techno">
|
||||
<h2 id="EnvironnementHybridesConnectésTitle">Environnement hybrides connectés</h2>
|
||||
<p id="EnvironnementHybridesConnectésTextModal">Cette plateforme est en cours de développement et vise à offrir des services à la personne dans des environnements indoor (bureau connecté, école connectée, usine connectée, ...). Parmi les services, nous envisageons l’étude du comportement des personnes, ladétection d’anomalies et la sécurité de l’environnement. Deux enjeux majeurs sont traités : (1) l’application des algorithmes d’intelligence artificielle qui prend tout son sens pour la prédiction d’évènements à risque ; (2) la mise en place de moyens numériques interopérables comme une architecture réseau dédiée et des technologies d’acquisition et de communications standards permettant l’accès aux données et la centralisation/distribution de la prise de décision.Pour cette plateforme nous disposons de moyens de calcul intensif comme le serveur GPU pour faire du FoG computing qui présente une alternative intéressante par rapport au cloud pour des raisons de sécurité de données et de coût.</p>
|
||||
</div>
|
||||
<div class="img_techno">
|
||||
<img src="/src/img/plateforme_techno/server_and_wires.jpg" alt="server and wires">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -47,9 +47,13 @@
|
||||
<div id="allButton">
|
||||
<fieldset>
|
||||
<legend>Choisir ce que vous souhaitez voir</legend>
|
||||
<div>
|
||||
<input id="all" type="radio" onclick="reset()" name="drone" checked>
|
||||
<label>Toutes</label>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<input id="revue" type="radio" onclick="revue()" name="drone" checked>
|
||||
<input id="revue" type="radio" onclick="revue()" name="drone">
|
||||
<label>Revue</label>
|
||||
</div>
|
||||
|
||||
@@ -58,10 +62,7 @@
|
||||
<label>Communication</label>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<input id="all" type="radio" onclick="reset()" name="drone">
|
||||
<label>Toutes</label>
|
||||
</div>
|
||||
|
||||
</fieldset>
|
||||
<input type="text" id="entry_title" placeholder="Title" onkeypress="searchTitle(event)">
|
||||
<input type="text" id="entry_author" placeholder="Nom d'auteur" onkeypress="searchAuthor(event)">
|
||||
|
||||
@@ -7,11 +7,15 @@ nav {
|
||||
color: #fff;
|
||||
padding: 20px;
|
||||
margin-bottom: 10px;
|
||||
z-index: 999;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.burger-menu {
|
||||
display: block;
|
||||
cursor: pointer;
|
||||
align-items: center;
|
||||
margin-right: 10px;
|
||||
}
|
||||
|
||||
.menu {
|
||||
|
||||
@@ -21,22 +21,19 @@ img{
|
||||
list-style-type: none;
|
||||
padding-left: 5px;
|
||||
padding-right: 5px;
|
||||
border-radius: 20px;
|
||||
}
|
||||
#img_analyse{
|
||||
width: 500px;
|
||||
height: 330px;
|
||||
}
|
||||
|
||||
#img_analyse:hover{
|
||||
width: 1000px;
|
||||
height: 660px;
|
||||
}
|
||||
|
||||
#who_we_are{
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
color: red;
|
||||
color: black;
|
||||
text-align: center;
|
||||
z-index: 0;
|
||||
}
|
||||
|
||||
.word {
|
||||
@@ -68,10 +65,12 @@ img{
|
||||
#img_competence{
|
||||
width: 800px;
|
||||
height: 450px;
|
||||
transition: width 0.5s, height 0.5s;
|
||||
}
|
||||
|
||||
#img_hover{
|
||||
width: auto;
|
||||
#img_competence:hover{
|
||||
width: 1000px;
|
||||
height: 550px;
|
||||
}
|
||||
|
||||
#LabHidden{
|
||||
|
||||
@@ -1,25 +1,25 @@
|
||||
function validateForm() {
|
||||
//Récupérer les valeurs des champs
|
||||
var prenomNom = document.getElementById("usrnInp").value;
|
||||
var email = document.getElementById("emailInp").value;
|
||||
var message = document.getElementById("textarea1Inp").value;
|
||||
let prenomNom = document.getElementById("usrnInp").value;
|
||||
let email = document.getElementById("emailInp").value;
|
||||
let message = document.getElementById("textarea1Inp").value;
|
||||
|
||||
//Définir les expressions régulières
|
||||
var prenomNomRegex = /^[a-zA-Z]+\s[a-zA-Z]+$/;
|
||||
var emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
|
||||
let prenomNomRegex = /^[a-zA-Z]+\s[a-zA-Z]+$/;
|
||||
let emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
|
||||
|
||||
//Tester les valeurs des champs avec les expressions régulières
|
||||
var isPrenomNomValid = prenomNomRegex.test(prenomNom);
|
||||
var isEmailValid = emailRegex.test(email);
|
||||
var isMessageValid = message.length >= 20 && message.length <= 1000;
|
||||
let isPrenomNomValid = prenomNomRegex.test(prenomNom);
|
||||
let isEmailValid = emailRegex.test(email);
|
||||
let isMessageValid = message.length >= 20 && message.length <= 1000;
|
||||
//console.log(isPrenomNomValid, isEmailValid, isMessageValid);
|
||||
//console.log(prenomNom, email, message);
|
||||
|
||||
//Récupérer les éléments d'erreur
|
||||
var submitBtn = document.getElementById("submitBtn");
|
||||
var prenomNomError = document.getElementById("usrnError");
|
||||
var emailError = document.getElementById("emailError");
|
||||
var messageError = document.getElementById("textarea1Error");
|
||||
let submitBtn = document.getElementById("submitBtn");
|
||||
let prenomNomError = document.getElementById("usrnError");
|
||||
let emailError = document.getElementById("emailError");
|
||||
let messageError = document.getElementById("textarea1Error");
|
||||
|
||||
|
||||
//Afficher les messages d'erreur
|
||||
|
||||
@@ -23,6 +23,7 @@ function displayWord() {
|
||||
wordElement.classList.add('show');
|
||||
}, 1000);
|
||||
});
|
||||
slideAndDisapear();
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -39,41 +40,30 @@ displayWord();
|
||||
slide(element, 100, 500, 200);
|
||||
*/
|
||||
|
||||
function slide({ timing, draw, duration }) {
|
||||
const start = performance.now();
|
||||
|
||||
requestAnimationFrame(function animate(time) {
|
||||
// timeFraction passe de 0 à 1
|
||||
let timeFraction = (time - start) / duration;
|
||||
if (timeFraction > 1) timeFraction = 1;
|
||||
|
||||
// Calculer l'état courant de l'animation
|
||||
const progress = timing(timeFraction);
|
||||
|
||||
draw(progress); // Dessinez-le
|
||||
|
||||
if (timeFraction < 1) {
|
||||
requestAnimationFrame(animate);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function draw(progress) {
|
||||
const train = document.getElementById('lahidden');
|
||||
train.style.left = progress + 'px';
|
||||
function slideAndDisapear(){
|
||||
//Quand tout le texte est apparu, il fait une translation vers la droite puis vers la gauche avant de revenir à sa position initiale, puis tout s’efface et le cycle recommence.
|
||||
const element = document.getElementById('who_we_are'); // Récupérer l'élément à animer
|
||||
setTimeout(() => { // Mettre l'élément a gauche
|
||||
element.style.transform = 'translateX(-5%)';
|
||||
}, 5000);
|
||||
setTimeout(() => { // Remettre l'élément à sa position initiale
|
||||
element.style.transform = 'translateX(0)';
|
||||
}, 5500);
|
||||
setTimeout(() => { // Mettre l'élément a droite
|
||||
element.style.transform = 'translateX(5%)';
|
||||
}, 6000);
|
||||
setTimeout(() => { // Remettre l'élément à sa position initiale
|
||||
element.style.transform = 'translateX(0)';
|
||||
}, 6500);
|
||||
setTimeout(() => {
|
||||
element.innerHTML = '';
|
||||
}, 7000);
|
||||
setTimeout(() => {
|
||||
displayWord();
|
||||
}, 7250);
|
||||
}
|
||||
|
||||
// Appel de la fonction displayWord
|
||||
displayWord();
|
||||
|
||||
setTimeout(() => {
|
||||
slide({
|
||||
timing: function(timeFraction) {
|
||||
return timeFraction; // Utilisation du timing linéaire par défaut
|
||||
},
|
||||
draw: draw,
|
||||
duration: 2000 // Durée de l'animation en millisecondes
|
||||
});
|
||||
}, 1000); // Temps d'attente pour que l'animation des mots soit terminée (ajustez si nécessaire)
|
||||
|
||||
|
||||
// Appel de la fonction slide
|
||||
@@ -65,6 +65,21 @@ document.addEventListener('DOMContentLoaded', function() {
|
||||
addMember();
|
||||
});
|
||||
document.body.appendChild(addMemberButton);
|
||||
let MembersJS = document.querySelectorAll('.NewMembresJS')
|
||||
MembersJS.forEach(function(element) {
|
||||
//Ajout du bouton supprimer
|
||||
const deleteButton = document.createElement('button');
|
||||
deleteButton.innerText = 'Supprimer';
|
||||
deleteButton.id = 'deleteButton';
|
||||
deleteButton.addEventListener('click', function() {
|
||||
//Supprime le membre auquel le bouton appartient
|
||||
const confirmation = confirm('Voulez vous vraiment supprimer ce membre ?');
|
||||
if (confirmation === true) {
|
||||
element.remove();
|
||||
}
|
||||
});
|
||||
element.appendChild(deleteButton);
|
||||
});
|
||||
} else {
|
||||
alert('Mot de passe du profil administrateur incorrect !');
|
||||
console.error('Mot de passe du profil administrateur incorrect !');
|
||||
@@ -83,8 +98,8 @@ document.addEventListener('DOMContentLoaded', function() {
|
||||
|
||||
'use strict';
|
||||
|
||||
var isDrawing, lastPoint;
|
||||
var container = document.getElementById('js-container'),
|
||||
let isDrawing, lastPoint;
|
||||
let container = document.getElementById('js-container'),
|
||||
canvas = document.getElementById('js-canvas'),
|
||||
canvasWidth = canvas.width,
|
||||
canvasHeight = canvas.height,
|
||||
@@ -121,14 +136,14 @@ document.addEventListener('DOMContentLoaded', function() {
|
||||
function getFilledInPixels(stride) {
|
||||
if (!stride || stride < 1) { stride = 1; }
|
||||
|
||||
var pixels = ctx.getImageData(0, 0, canvasWidth, canvasHeight),
|
||||
let pixels = ctx.getImageData(0, 0, canvasWidth, canvasHeight),
|
||||
pdata = pixels.data,
|
||||
l = pdata.length,
|
||||
total = (l / stride),
|
||||
count = 0;
|
||||
|
||||
// Iterate over all pixels
|
||||
for(var i = count = 0; i < l; i += stride) {
|
||||
for(let i = count = 0; i < l; i += stride) {
|
||||
if (parseInt(pdata[i]) === 0) {
|
||||
count++;
|
||||
}
|
||||
@@ -138,7 +153,7 @@ document.addEventListener('DOMContentLoaded', function() {
|
||||
}
|
||||
|
||||
function getMouse(e, canvas) {
|
||||
var offsetX = 0, offsetY = 0, mx, my;
|
||||
let offsetX = 0, offsetY = 0, mx, my;
|
||||
|
||||
if (canvas.offsetParent !== undefined) {
|
||||
do {
|
||||
@@ -171,12 +186,12 @@ document.addEventListener('DOMContentLoaded', function() {
|
||||
|
||||
e.preventDefault();
|
||||
|
||||
var currentPoint = getMouse(e, canvas),
|
||||
let currentPoint = getMouse(e, canvas),
|
||||
dist = distanceBetween(lastPoint, currentPoint),
|
||||
angle = angleBetween(lastPoint, currentPoint),
|
||||
x, y;
|
||||
|
||||
for (var i = 0; i < dist; i++) {
|
||||
for (let i = 0; i < dist; i++) {
|
||||
x = lastPoint.x + (Math.sin(angle) * i) - 25;
|
||||
y = lastPoint.y + (Math.cos(angle) * i) - 25;
|
||||
ctx.globalCompositeOperation = 'destination-out';
|
||||
|
||||
@@ -11,7 +11,7 @@ burger.onclick = function() {
|
||||
|
||||
function updateTime() {
|
||||
//Afficher l'heure actuelle
|
||||
setInterval(function() {var now = new Date();
|
||||
setInterval(function() {let now = new Date();
|
||||
let hours = now.getHours();
|
||||
let minutes = now.getMinutes();
|
||||
let seconds = now.getSeconds();
|
||||
@@ -100,6 +100,7 @@ phoneNumbers.forEach(function(phoneNumber) {
|
||||
if (input === copiedText){ // Si l'utilisateur a entré le numéro de téléphone correctement
|
||||
console.log("Vous appelez ce numéro : " + copiedText);
|
||||
let audio = new Audio('/src/sound/sonnerie.mp3');
|
||||
audio.volume = 1;
|
||||
audio.play();
|
||||
// On arrête la sonnerie au bout de 5 secondes
|
||||
setTimeout(function() {
|
||||
|
||||
@@ -2,7 +2,7 @@ function returnToTopButton(){
|
||||
//Attend 2 secondes avant de creer le bouton pour attendre la fin du loader
|
||||
setTimeout(function (){
|
||||
//Creation du bouton
|
||||
var TopButton = document.createElement("button");
|
||||
let TopButton = document.createElement("button");
|
||||
TopButton.setAttribute("id", "returnToTopButton");
|
||||
TopButton.setAttribute("onclick", "returnToTop()");
|
||||
TopButton.innerHTML = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Pro 6.4.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. --><path d="M201.4 137.4c12.5-12.5 32.8-12.5 45.3 0l160 160c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L224 205.3 86.6 342.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l160-160z"/></svg>';
|
||||
@@ -34,7 +34,7 @@ function changeImage(image){
|
||||
|
||||
function changeImageUnderMouse(){
|
||||
document.addEventListener('click', function(event){
|
||||
var elementClicked = event.target;
|
||||
let elementClicked = event.target;
|
||||
//console.log(elementClicked);
|
||||
//Verifie si l'element cliqué est une image
|
||||
if(elementClicked.tagName == "IMG"){
|
||||
|
||||
@@ -29,9 +29,9 @@ document.addEventListener('DOMContentLoaded', function() {
|
||||
});
|
||||
|
||||
function truncateText(elementId, maxLength) {
|
||||
var element = document.getElementById(elementId);
|
||||
let element = document.getElementById(elementId);
|
||||
if (element) {
|
||||
var text = element.textContent.trim();
|
||||
let text = element.textContent.trim();
|
||||
if (text.length > maxLength) {
|
||||
return text.substring(0, maxLength) + "...";
|
||||
} else {
|
||||
|
||||
Binary file not shown.
Reference in New Issue
Block a user