diff --git a/client/homePage.ts b/client/homePage.ts index a3bf7feb88612103371e3c6904152af8e0bc5381..6c622a127011167cdae964b4d45d661c1ff46505 100644 --- a/client/homePage.ts +++ b/client/homePage.ts @@ -37,6 +37,8 @@ interface Project { let myIdeaCards: { [key: number]: IdeaCard } = {}; +const cache: {[key: string]: any[]} = {}; + class IdeaCard { private header: string; private department: string; @@ -323,7 +325,9 @@ export async function loadPage(listenersLoaded: boolean) { } const projectContainer = document.getElementById("project-container"); if (projectContainer) { - await getProjects(projectContainer, listenersLoaded, user.id); + const startGetProjects = performance.now(); + getProjects(projectContainer, listenersLoaded, user.id); + console.log(`getProjects duration: ${performance.now() - startGetProjects} ms`) } console.log("innan"); const departmentContainer = document.getElementById( @@ -490,7 +494,19 @@ export async function getProjects( listenersLoaded: boolean, userHsaId: string ) { - const data = await getImprovementWorksForUser(userHsaId); + let data: any[] = []; + + if(cache[userHsaId]) { + const startGetCachedProjects = performance.now(); + data = cache[userHsaId]; + console.log(`getCachedProjects duration: ${performance.now() - startGetCachedProjects} ms`); + } else { + const startGetImprovementWorksForUser = performance.now(); + data = await getImprovementWorksForUser(userHsaId); + cache[userHsaId] = data; + console.log(`getImprovementWorksForUser duration: ${performance.now() - startGetImprovementWorksForUser} ms`); + } + let id = 0; data.forEach(async (project) => { let title = project.name; @@ -511,7 +527,9 @@ export async function getProjects( dateStarted ); projectCards[i] = card; + const startGenerateHTML = performance.now(); let cardHTML = card.generateHTML(); + console.log(`GenerateHTML duration ${performance.now() - startGenerateHTML} ms`); let div = document.createElement("div"); div.className = "homePageProjectCardDiv"; // Set the class name(s) here div.innerHTML = cardHTML; diff --git a/client/profilePage.ts b/client/profilePage.ts index d4d55da9393ef4f1177979e490c4416621e143cd..6706058fa6daa9457bc93482a9c1761be300b138 100644 --- a/client/profilePage.ts +++ b/client/profilePage.ts @@ -259,7 +259,7 @@ async function createNewIdeaCard( } const projectContainer = document.getElementById("project-container"); if(projectContainer) { - await getProjects(projectContainer, listenersLoaded, user.id); + getProjects(projectContainer, listenersLoaded, user.id); } }) diff --git a/client/projectPage/projectPageA.ts b/client/projectPage/projectPageA.ts index 7dd13a0483dd3bf4003d70d1e80fd5e67e453057..8b53b93f78a391ccef7a79d45bf85c77fc7e5184 100644 --- a/client/projectPage/projectPageA.ts +++ b/client/projectPage/projectPageA.ts @@ -187,20 +187,17 @@ async function checkInputFields(projectId: string, formId: string) { } function loadInitiateAndFinalizeBtn(projectId : string, completed : boolean) { - alert("hej"); if(!completed) { - alert("not completed"); const nolanModelElement = document.getElementById("projectPageNolandsModel") as HTMLElement; //Creates buttons with classname, id, attribute and text const finalizeButton = document.createElement("button"); const iterationButton = document.createElement("button"); if (nolanModelElement) { - alert("finds element"); finalizeButton.id = "toCurrentProjects"; iterationButton.id = "toCurrentProjects"; - finalizeButton.classList.add("btn", "btn-primary"); - iterationButton.classList.add("btn", "btn-primary"); + finalizeButton.classList.add("btn", "btn-secondary"); + iterationButton.classList.add("btn", "btn-secondary"); iterationButton.setAttribute('role', 'button'); finalizeButton.setAttribute('role', 'button'); finalizeButton.textContent = 'Avsluta Förbättringsarbete';