front_foundation #5

Open
mohamed_maoulainine wants to merge 73 commits from front_foundation into main
4 changed files with 108 additions and 15 deletions
Showing only changes of commit 651fb2b1a1 - Show all commits

View File

@ -0,0 +1,8 @@
{
"entrepreneurs": [
{ "id": 1, "name": "Alice", "email": "alice@example.com" },
{ "id": 2, "name": "Bob", "email": "bob@example.com" },
{ "id": 3, "name": "Charlie", "email": "charlie@example.com" }
]
}

View File

@ -6,12 +6,9 @@ import ErrorWrapper from "@/views/errorWrapper.vue";
<template>
<Header />
Outdated
Review

Il faut laisser ça, cela permet d'afficher les messages d'erreurs par desssus le contenu.

Il faut laisser ça, cela permet d'afficher les messages d'erreurs par desssus le contenu.
<!--<nav>
<RouterLink to="/">Home</RouterLink> |
<RouterLink to="/canvas">Canvas</RouterLink>
Outdated
Review

Vous êtes sur qu'il faut laisser ça, je pense que ça devrait être inclus dans RouterView

Vous êtes sur qu'il faut laisser ça, je pense que ça devrait être inclus dans RouterView
</nav>-->
<RouterView />
<RouterView />
</template>

View File

@ -2,35 +2,123 @@
<header>
<img src="../icons/logo inpulse.png" alt="INPulse Logo">
<div class="header-buttons">
<div class="contact-menu">
<div class="menu">
<button class="contact-button" @click="toggleDropdown">Contact</button>
<div class="contact-dropdown" v-show="isDropdownOpen">
<button>Contact All</button>
<button>Contact Person 1</button>
<button>Contact Person 2</button>
<button>Contact Person 3</button>
<div class="contact-dropdown" v-bind:class="{ 'dropdown-visible': isDropdownOpen }">
<button @click="contactAll">Contact All</button>
<button v-for="(email, index) in entrepreneurEmails" :key="index">
{{ email }}
</button>
</div>
<div class="return"><a href="/">return to list project</a></div>
<button class="return-button"><a href="/">Return to list project</a></button>
mohamed_maoulainine marked this conversation as resolved Outdated
Outdated
Review

plutôt utiliser des routerLink au lieu de href
https://stackoverflow.com/questions/52675885/when-to-use-router-link-vs-a

plutôt utiliser des routerLink au lieu de href https://stackoverflow.com/questions/52675885/when-to-use-router-link-vs-a
</div>
</div>
</header>
</template>
<script>
mohamed_maoulainine marked this conversation as resolved Outdated
Outdated
Review

Ce n'est pas de la composition API, a changer

Ce n'est pas de la composition API, a changer

où exactement?

où exactement?
import axios from "axios";
Outdated
Review

Il faut se servir de axiosInstance, voir https://gitea.piair.dev/piair/MyINPulse/src/branch/main/front/MyINPulse-front/src/services/api.ts.
Cela permet de préconfigurer l'authentification et le host du backend.

Il faut se servir de `axiosInstance`, voir https://gitea.piair.dev/piair/MyINPulse/src/branch/main/front/MyINPulse-front/src/services/api.ts. Cela permet de préconfigurer l'authentification et le host du backend.
export default {
data() {
return {
isDropdownOpen: false
isDropdownOpen: false,
entrepreneurEmails: [],
mohamed_maoulainine marked this conversation as resolved Outdated
Outdated
Review

Vérifier que le type de données renvoyé par le backend correspond bien à ca (ce n'est pas le cas).

Vérifier que le type de données renvoyé par le backend correspond bien à ca (ce n'est pas le cas).
};
},
methods: {
toggleDropdown() {
this.isDropdownOpen = !this.isDropdownOpen;
}
}
console.log("Dropdown toggled:", this.isDropdownOpen); //for debug purposes
},
async fetchEntrepreneurs() {
try {
const response = await axios.get("http://localhost:5000/entrepreneurs");
mohamed_maoulainine marked this conversation as resolved Outdated
Outdated
Review

il faut pas Hardcoder une addresse, elle est dans le fichier .env. Dans tout les cas, cette adresse ne devrait pas être là.

il faut pas Hardcoder une addresse, elle est dans le fichier .env. Dans tout les cas, cette adresse ne devrait pas être là.
Outdated
Review

je viens de voir le message de commit, c'est en effet logique d'utiliser cette donnée. Par contre je suis pas sur que ce soit la bonne méthode pour faire des tests, c'est a discuter.

Il serait bien d'appeler mock-data au lieu de fake-data

je viens de voir le message de commit, c'est en effet logique d'utiliser cette donnée. Par contre je suis pas sur que ce soit la bonne méthode pour faire des tests, c'est a discuter. Il serait bien d'appeler mock-data au lieu de fake-data
this.entrepreneurEmails = response.data.map(e => e.email);
} catch (error) {
console.error("Erreur lors de la récupération des entrepreneurs:", error);
}
},
contactAll() {
alert("Contacter tous les entrepreneurs : " + this.entrepreneurEmails.join(", "));
},
},
mounted() {
this.fetchEntrepreneurs();
},
};
</script>
<style scoped>
header {
display: flex;
justify-content: space-between;
align-items: flex-start;
padding: 10px;
}
.header-buttons {
display: flex;
align-items: flex-start;
}
.menu {
display: flex;
flex-direction: column;
gap: 10px;
}
.contact-button, .return-button {
background-color: #000;
color: white;
border: none;
padding: 10px;
cursor: pointer;
font-size: 14px;
text-align: center;
}
.return-button a {
color: white;
text-decoration: none;
}
.contact-dropdown {
display: none;
position: absolute;
background-color: white;
box-shadow: 0px 4px 8px rgba(0, 0, 0, 0.2);
border-radius: 8px;
padding: 10px;
margin-top: 5px;
z-index: 1000;
}
.contact-dropdown button {
display: block;
width: 100%;
padding: 5px;
text-align: left;
border: none;
background: none;
cursor: pointer;
}
.contact-dropdown button:hover {
background-color: #f0f0f0;
}
.dropdown-visible {
display: block;
}
header img {
width: 100px;
height: auto;
}
@import "@/components/canvas/style-project.css";
</style>

View File

@ -3,7 +3,7 @@ import {store} from "../main.ts";
import {callApi} from "@/services/api.ts";
import ErrorModal from "@/components/errorModal.vue";
import {errorList} from "@/services/popupDisplayer.ts";
import TempModal from "@/components/temp-modal.vue";
//import TempModal from "@/components/temp-modal.vue";
import ErrorWrapper from "@/App.vue";
function addResToTable(id: any){
return (req: any) => {