From e46605ba747da1d4c4a43726b8baf94b333af187 Mon Sep 17 00:00:00 2001 From: partapparam Date: Fri, 29 Mar 2024 17:14:25 -0700 Subject: [PATCH 1/2] updated project page filters to show tools --- assets/js/current-projects.js | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/assets/js/current-projects.js b/assets/js/current-projects.js index ad40fd7d5a..57c03de503 100644 --- a/assets/js/current-projects.js +++ b/assets/js/current-projects.js @@ -28,7 +28,7 @@ document.addEventListener("DOMContentLoaded",function(){ if (window.location.pathname === '/projects-check/') { filterTitle = filterName; } else { - filterTitle = 'languages / technologies' + filterTitle = 'languages / technologies / tools' } filterValue.sort((a,b)=> { a = a.toLowerCase() @@ -230,7 +230,7 @@ function createFilter(sortedProjectData){ // 'looking': [ ... new Set( (sortedProjectData.map(item => item.project.looking ? item.project.looking.map(item => item.category) : '')).flat() ) ].filter(v=>v!='').sort(), // ^ See issue #1997 for more info on why this is commented out 'programs': [...new Set(sortedProjectData.map(item => item.project.programAreas ? item.project.programAreas.map(programArea => programArea) : '').flat() ) ].filter(v=>v!='').sort(), - 'technologies': [...new Set(sortedProjectData.map(item => (item.project.technologies && item.project.languages?.length > 0) ? [item.project.languages, item.project.technologies].flat() : '').flat() ) ].filter(v=>v!='').sort(), + 'technologies': [...new Set(sortedProjectData.map(item => (item.project.technologies && item.project.languages?.length > 0 && item.project.tools?.length > 0) ? [item.project.languages, item.project.technologies, item.project.tools].flat() : '').flat() ) ].filter(v=>v!='').sort(), 'status': [... new Set(sortedProjectData.map(item => item.project.status))].sort() } } @@ -654,12 +654,18 @@ function clearAllEventHandler(){ /** * Takes a single project object and returns the html string representing the project card */ -function projectCardComponent(project){ +function projectCardComponent(project) { + const projectLanguages = project.languages ? [... new Set(project.languages.map(lang => lang))] : "" + const projectTechnologies = project.technologies ? [... new Set(project.technologies.map(t => t))] : "" + const projectTools = project.tools ? [... new Set(project.tools.map(t => t))] : "" + // the data-technologies attr will be used by UpdateFilterFrequency + // to generate Filter's Object + const dataTechnologiesArr = [...projectLanguages, ...projectTechnologies, ...projectTools] return `
  • Date: Tue, 2 Apr 2024 09:49:07 -0700 Subject: [PATCH 2/2] removed comments and cleaned up code for update tool filter --- assets/js/current-projects.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/assets/js/current-projects.js b/assets/js/current-projects.js index 0d10185e17..9f881d4813 100644 --- a/assets/js/current-projects.js +++ b/assets/js/current-projects.js @@ -40,8 +40,9 @@ document.addEventListener("DOMContentLoaded",function(){ } else { filterTitle = filterName; } - // Partap // for issue #4648, needed to add languages inside the technologies filter-item group, might be able to optimize for future iterations + + // This ensures that the /projects-check page does not change if ((filterName === 'languages' || filterName === 'tools') && window.location.pathname === '/projects/') { // remove the view all button document.querySelector(`#technologies`).lastElementChild.remove() @@ -493,7 +494,6 @@ function updateProjectCardDisplayState(filterParams){ projectCardObj[key] = projectCard.dataset[key].split(","); } else { - // partap const searchAreas=['technologies','description','partner','programs','title','languages', 'tools']; for(const area of searchAreas){ projectCardObj[area]=projectCard.dataset[area].split(",");