diff --git a/client/SidebarAndHeader/pageHandler.ts b/client/SidebarAndHeader/pageHandler.ts index 607abd730221f5bdac46968f097a5d54b674b9a3..44de7ee75fade481dc0ead206c3fa299e1d2a7fe 100644 --- a/client/SidebarAndHeader/pageHandler.ts +++ b/client/SidebarAndHeader/pageHandler.ts @@ -166,7 +166,7 @@ function loadIdeaBank() { const target = event.target as HTMLElement; //adds an event listener for the initiate page if (target && target.className === "initiateProjectButton") { - const cardId = "suggestion" + target.id.replace("initiateProjectFromCard", ""); + const cardId = target.id.replace("initiateProjectFromCard", ""); loadInitiatePage(cardId); } }); diff --git a/client/ideaBank/ideaBank.ts b/client/ideaBank/ideaBank.ts index ed9e18fe5c57eadf9add58cfb078bb3bdae50870..f11cbc998e9e6afb0bdeb577e83ef63fbea8af11 100644 --- a/client/ideaBank/ideaBank.ts +++ b/client/ideaBank/ideaBank.ts @@ -15,6 +15,7 @@ class IdeaCard { private description: string; private upvoteCount: number; private id: number; + private suggestionID: string; constructor( id: number, @@ -22,7 +23,8 @@ class IdeaCard { department: string, name: string, description: string, - upvoteCount: number + upvoteCount: number, + suggestionID: string ) { this.header = header; this.department = department; @@ -30,6 +32,7 @@ class IdeaCard { this.description = description; this.upvoteCount = upvoteCount; this.id = id; + this.suggestionID = suggestionID; } generateHTML(): string { @@ -64,7 +67,7 @@ class IdeaCard { </div> <div class="expandedButton"> - <button class="initiateProjectButton" id="initiateProjectFromCard${this.id}">Initiera Project</button> + <button class="initiateProjectButton" id="initiateProjectFromCard${this.suggestionID}">Initiera Project</button> </div> </div> </div> @@ -106,6 +109,7 @@ async function createNewCards(className: string, container: Element) { suggestions.forEach(async (suggestion) => { var unit = await getObjectById("unit", suggestion.unitId); var user = await getObjectById("users", suggestion.creatorHsaId); + console.log(suggestion) createNewIdeaCard( suggestion.name, unit.name, @@ -114,7 +118,8 @@ async function createNewCards(className: string, container: Element) { suggestion.upvotes.length, className, container, - counter + counter, + suggestion.id ); counter = counter + 1; }); @@ -128,7 +133,8 @@ async function createNewIdeaCard( upvoteCount: number, className: string, container: Element, - ID: number + ID: number, + suggestionID: string ) { let card = new IdeaCard( ID, @@ -136,7 +142,8 @@ async function createNewIdeaCard( department, name, description, - upvoteCount + upvoteCount, + suggestionID ); let cardHTML = card.generateHTML(); myIdeaCards[ID] = card; diff --git a/client/initiateForbattringsarbete/initiateIdea.ts b/client/initiateForbattringsarbete/initiateIdea.ts index 3b8d5502736aefbf537fd920b3ab68417f16fd01..e688ae95eddfa42f951dd597d6bba377a10db9ac 100644 --- a/client/initiateForbattringsarbete/initiateIdea.ts +++ b/client/initiateForbattringsarbete/initiateIdea.ts @@ -82,11 +82,17 @@ function createAssignedEmployeeDesign(s: string, x: JQuery<HTMLElement>, employe } //Functions to load the page +function clearFromEventListeners(container: Element) { + const clonedContainer = container.cloneNode(true); + container.replaceWith(clonedContainer); + console.log("cleared"); +} export async function loadPage (id: string) { + console.log(id); const container = document.querySelector('#container-fluid'); + if (!container) return; // Stop if the container isn't found - const linkelementCSS = document.createElement('link'); linkelementCSS.rel = 'styleSheet'; linkelementCSS.href = 'initiateForbattringsarbete/initiateIdea.css'; @@ -120,7 +126,7 @@ export async function loadPage (id: string) { //Eventlistenerbuttons: const createButton = document.getElementById('createProjectFromSuggestionButton') as HTMLButtonElement | null; const selectEmployeeButton = document.getElementById('selectEmployee'); - + document.addEventListener("click", function (event) { const target = event.target as HTMLElement; //adds an event listener for the initiate page @@ -138,7 +144,6 @@ export async function loadPage (id: string) { }); if (specificElement) { - // Insert the generated element before the specific element container.insertBefore(generatedElement, container.firstChild); // Insert the specific element into the target element