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

View File

@ -32,74 +32,96 @@
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { ref /*, onMounted*/ } from "vue"; import { ref, onMounted } from "vue";
//import { callApi } from "@/services/api";
import Header from "../components/HeaderComponent.vue"; import Header from "../components/HeaderComponent.vue";
import Agenda from "../components/AgendaComponent.vue"; import Agenda from "../components/AgendaComponent.vue";
import ProjectComp from "../components/ProjectComponent.vue"; import ProjectComp from "../components/ProjectComponent.vue";
import PendingProjectComponent from "@/components/PendingProjectComponent.vue"; import PendingProjectComponent from "@/components/PendingProjectComponent.vue";
import AddProjectForm from "@/components/AddProjectForm.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 projects = ref<
Outdated
Review

remove this comment

remove this comment
//const URI = `http://localhost:${PORT}`; {
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 = () => { const fetchProjects = () => {
callApi( getAdminProjects(
`${URI}/admin/projects`, (response: AxiosResponse) => {
async (response) => { const projectList = response.data.map(
console.log(response); (p: Project) => new Project(p)
const projectList = response.data; );
const projectPromises = projectList.map((project: any) => { const projectPromises = projectList.map(
return new Promise(async (resolve) => { (project: { idProject: number; projectName: string }) =>
callApi( new Promise<void>((resolve) => {
`${URI}/shared/projects/entrepreneurs/${project.idProject}`, getProjectEntrepreneurs(
(memberResponse) => { project.idProject!,
const members = memberResponse.data.map((m: any) => m.userName); (memberResponse: AxiosResponse) => {
resolve({ const members = memberResponse.data.map(
name: project.projectName, (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}`, link: `/project/${project.idProject}`,
members, members,
}); });
resolve();
}, },
() => { () => {
// Error fetching members, still resolve with empty members projects.value.push({
resolve({ name:
name: project.projectName, project.projectName ||
"Unnamed Project",
link: `/project/${project.idProject}`, link: `/project/${project.idProject}`,
members: [], 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) => { (error: AxiosError) => {
console.error("Error fetching projects:", error); console.error("Error fetching admin projects:", error);
projects.value = fallbackProjects;
} }
); );
}; };
onMounted(fetchProjects); 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([ const pendingProjects = ref([
{ name: "l'eau", creationDate: "26-02-2024" }, { name: "l'eau", creationDate: "26-02-2024" },