Compare commits
No commits in common. "4f90da69f370bf6208a4e500c49645f63c97fccc" and "eb302268ba3563c0210e79befabc969298f1abd2" have entirely different histories.
4f90da69f3
...
eb302268ba
@ -45,6 +45,7 @@ import { store } from "@/main.ts";
|
|||||||
position: relative;
|
position: relative;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
.logout {
|
.logout {
|
||||||
background-color: #009cde;
|
background-color: #009cde;
|
||||||
color: white;
|
color: white;
|
||||||
@ -61,4 +62,6 @@ import { store } from "@/main.ts";
|
|||||||
.logout:hover {
|
.logout:hover {
|
||||||
background-color: #007bad;
|
background-color: #007bad;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
@ -32,7 +32,8 @@
|
|||||||
</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/AdminAppointments.vue";
|
//import Agenda from "../components/AdminAppointments.vue";
|
||||||
@ -40,89 +41,66 @@ 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 projects = ref<
|
//const PORT = "8081";
|
||||||
{
|
//const URI = `http://localhost:${PORT}`;
|
||||||
name: string;
|
|
||||||
link: string;
|
|
||||||
members: string[];
|
|
||||||
}[]
|
|
||||||
>([]);
|
|
||||||
|
|
||||||
const fallbackProjects = [
|
//const projects = ref<{ name: string; link: string; members: string[] }[]>([]);
|
||||||
{
|
|
||||||
name: "Projet Alpha",
|
|
||||||
link: "/canvas",
|
|
||||||
members: ["Alice", "Bob", "Charlie"],
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "Projet Beta",
|
|
||||||
link: "./canvas",
|
|
||||||
members: ["David", "Eve", "Frank"],
|
|
||||||
},
|
|
||||||
];
|
|
||||||
|
|
||||||
const fetchProjects = () => {
|
/* const fetchProjects = () => {
|
||||||
getAdminProjects(
|
callApi(
|
||||||
(response: AxiosResponse) => {
|
`${URI}/admin/projects`,
|
||||||
const projectList = response.data.map(
|
async (response) => {
|
||||||
(p: Project) => new Project(p)
|
console.log(response);
|
||||||
);
|
const projectList = response.data;
|
||||||
|
|
||||||
const projectPromises = projectList.map(
|
const projectPromises = projectList.map((project: any) => {
|
||||||
(project: { idProject: number; projectName: string }) =>
|
return new Promise(async (resolve) => {
|
||||||
new Promise<void>((resolve) => {
|
callApi(
|
||||||
getProjectEntrepreneurs(
|
`${URI}/shared/projects/entrepreneurs/${project.idProject}`,
|
||||||
project.idProject!,
|
(memberResponse) => {
|
||||||
(memberResponse: AxiosResponse) => {
|
const members = memberResponse.data.map((m: any) => m.userName);
|
||||||
const members = memberResponse.data.map(
|
resolve({
|
||||||
(m: UserEntrepreneur) =>
|
name: project.projectName,
|
||||||
new UserEntrepreneur(m).userName ||
|
|
||||||
"Unknown"
|
|
||||||
);
|
|
||||||
|
|
||||||
projects.value.push({
|
|
||||||
name:
|
|
||||||
project.projectName ||
|
|
||||||
"Unnamed Project",
|
|
||||||
link: `/project/${project.idProject}`,
|
link: `/project/${project.idProject}`,
|
||||||
members,
|
members,
|
||||||
});
|
});
|
||||||
|
|
||||||
resolve();
|
|
||||||
},
|
},
|
||||||
() => {
|
() => {
|
||||||
projects.value.push({
|
// Error fetching members, still resolve with empty members
|
||||||
name:
|
resolve({
|
||||||
project.projectName ||
|
name: project.projectName,
|
||||||
"Unnamed Project",
|
|
||||||
link: `/project/${project.idProject}`,
|
link: `/project/${project.idProject}`,
|
||||||
members: [],
|
members: [],
|
||||||
});
|
});
|
||||||
resolve();
|
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
})
|
|
||||||
);
|
|
||||||
|
|
||||||
Promise.all(projectPromises).catch(() => {
|
|
||||||
// fallback in case member fetches fail
|
|
||||||
projects.value = fallbackProjects;
|
|
||||||
});
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
projects.value = await Promise.all(projectPromises);
|
||||||
},
|
},
|
||||||
(error: AxiosError) => {
|
(error) => {
|
||||||
console.error("Error fetching admin projects:", error);
|
console.error("Error fetching 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" },
|
||||||
|
Loading…
x
Reference in New Issue
Block a user