front_foundation #9

Closed
mohamed_maoulainine wants to merge 181 commits from front_foundation into main
2 changed files with 74 additions and 55 deletions
Showing only changes of commit 0fe64fd844 - Show all commits

View File

@ -45,7 +45,6 @@ import { store } from "@/main.ts";
position: relative;
}
.logout {
background-color: #009cde;
color: white;
@ -62,6 +61,4 @@ import { store } from "@/main.ts";
.logout:hover {
background-color: #007bad;
}
</style>

View File

@ -32,74 +32,96 @@
</template>
<script setup lang="ts">
import { ref /*, onMounted*/ } from "vue";
//import { callApi } from "@/services/api";
import { ref, onMounted } from "vue";
import Header from "../components/HeaderComponent.vue";
import Agenda from "../components/AgendaComponent.vue";
import ProjectComp from "../components/ProjectComponent.vue";
import PendingProjectComponent from "@/components/PendingProjectComponent.vue";
import AddProjectForm from "@/components/AddProjectForm.vue";
import { getAdminProjects } from "@/services/Apis/Admin";
import { getProjectEntrepreneurs } from "@/services/Apis/Shared";
import { type AxiosError, type AxiosResponse } from "axios";
import Project from "@/ApiClasses/Project";
import UserEntrepreneur from "@/ApiClasses/UserEntrepreneur";
//const PORT = "8081";
//const URI = `http://localhost:${PORT}`;
const projects = ref<
Outdated
Review

remove this comment

remove this comment
{
name: string;
link: string;
members: string[];
}[]
>([]);
//const projects = ref<{ name: string; link: string; members: string[] }[]>([]);
const fallbackProjects = [
{
name: "Projet Alpha",
link: "/canvas",
members: ["Alice", "Bob", "Charlie"],
},
{
name: "Projet Beta",
link: "./canvas",
members: ["David", "Eve", "Frank"],
},
];
/* const fetchProjects = () => {
callApi(
`${URI}/admin/projects`,
async (response) => {
console.log(response);
const projectList = response.data;
const fetchProjects = () => {
getAdminProjects(
(response: AxiosResponse) => {
const projectList = response.data.map(
(p: Project) => new Project(p)
);
const projectPromises = projectList.map((project: any) => {
return new Promise(async (resolve) => {
callApi(
`${URI}/shared/projects/entrepreneurs/${project.idProject}`,
(memberResponse) => {
const members = memberResponse.data.map((m: any) => m.userName);
resolve({
name: project.projectName,
const projectPromises = projectList.map(
(project: { idProject: number; projectName: string }) =>
new Promise<void>((resolve) => {
getProjectEntrepreneurs(
project.idProject!,
(memberResponse: AxiosResponse) => {
const members = memberResponse.data.map(
(m: UserEntrepreneur) =>
new UserEntrepreneur(m).userName ||
"Unknown"
);
projects.value.push({
name:
project.projectName ||
Outdated
Review

what is that for ?

what is that for ?
"Unnamed Project",
link: `/project/${project.idProject}`,
members,
});
resolve();
},
() => {
// Error fetching members, still resolve with empty members
resolve({
name: project.projectName,
projects.value.push({
name:
project.projectName ||
"Unnamed Project",
link: `/project/${project.idProject}`,
members: [],
});
resolve();
}
);
});
});
})
);
projects.value = await Promise.all(projectPromises);
Promise.all(projectPromises).catch(() => {
// fallback in case member fetches fail
projects.value = fallbackProjects;
});
},
Outdated
Review

same comment for CSS

same comment for CSS
(error) => {
console.error("Error fetching projects:", error);
(error: AxiosError) => {
console.error("Error fetching admin projects:", error);
projects.value = fallbackProjects;
}
);
};
onMounted(fetchProjects);
*/
const projects = ref([
{
name: "Projet Alpha",
link: "/canvas", // to test
members: ["Alice", "Bob", "Charlie"],
},
{
name: "Projet Beta",
link: "./canvas", // to test
members: ["David", "Eve", "Frank"],
},
]);
const pendingProjects = ref([
{ name: "l'eau", creationDate: "26-02-2024" },