From 073c6ea2d5fbeb65730d8384e73440b2eb7432dd Mon Sep 17 00:00:00 2001 From: Ojas Atkar Date: Tue, 4 Mar 2025 13:30:50 -0700 Subject: [PATCH 1/3] fix(unity-react-core): updating the page numbers and ellipses used in pagination --- .../src/components/Pagination/Pagination.jsx | 29 ++++++++++++++++--- 1 file changed, 25 insertions(+), 4 deletions(-) diff --git a/packages/unity-react-core/src/components/Pagination/Pagination.jsx b/packages/unity-react-core/src/components/Pagination/Pagination.jsx index ee2e3f3184..c272b110b4 100644 --- a/packages/unity-react-core/src/components/Pagination/Pagination.jsx +++ b/packages/unity-react-core/src/components/Pagination/Pagination.jsx @@ -62,15 +62,16 @@ export const Pagination = ({ const renderPages = () => { // Set the ranges to be shown in the pagination + const displayMinimumPages = 2; const lowerRangeLimit = iff( selectedPage === totalPages - 1, - 2, - selectedPage === totalPages ? 3 : 1 + 1, + selectedPage === totalPages ? 2 : 1 ); const upperRangeLimit = iff( selectedPage === 1, - 3, - selectedPage === 2 ? 2 : 1 + 2, + selectedPage === 2 ? 1 : 1 ); const lowerRange = createRange( selectedPage - lowerRangeLimit, @@ -96,6 +97,16 @@ export const Pagination = ({ 1 )} + {selectedPage > (totalPages - displayMinimumPages ) && ( + handleChangePage(e, 2)} + > + 2 + + )} {renderedPages[0] > 2 && ...} {renderedPages.map(page => ( ... )} + {selectedPage < displayMinimumPages + 1 && ( + handleChangePage(e, totalPages - 1)} + > + {totalPages - 1} + + )} {renderedPages[renderedPages.length - 1] !== totalPages && ( Date: Thu, 6 Mar 2025 14:24:06 -0700 Subject: [PATCH 2/3] fix(app-degree-pages): improve Degree Listing search by title matches --- .../core/services/degree-data-manager-service.js | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/packages/app-degree-pages/src/core/services/degree-data-manager-service.js b/packages/app-degree-pages/src/core/services/degree-data-manager-service.js index ba16affa1f..f478306232 100644 --- a/packages/app-degree-pages/src/core/services/degree-data-manager-service.js +++ b/packages/app-degree-pages/src/core/services/degree-data-manager-service.js @@ -49,7 +49,18 @@ function filterData({ const filterByKeyword = (resolver, searchTerm) => { if (!searchTerm) return true; const regex = new RegExp(searchTerm, "i"); - return regex.test(resolver.getFullDescription()); + const title = regex.test(resolver.getMajorDesc()); + const description = regex.test(resolver.getFullDescription()); + if (title){ + return true; + } else if (description) { + return true; + } + else { + return false; + } + + }; const filterByBlacklist = resolver => From ed3a49c6750422bbc64c0e367f90a9f684b65276 Mon Sep 17 00:00:00 2001 From: Ojas Atkar Date: Thu, 13 Mar 2025 17:31:37 -0700 Subject: [PATCH 3/3] fix(app-degree-pages): improve search by boosting title matches --- .../services/degree-data-manager-service.js | 41 +++++++++++++++---- 1 file changed, 34 insertions(+), 7 deletions(-) diff --git a/packages/app-degree-pages/src/core/services/degree-data-manager-service.js b/packages/app-degree-pages/src/core/services/degree-data-manager-service.js index f478306232..9fb83442f3 100644 --- a/packages/app-degree-pages/src/core/services/degree-data-manager-service.js +++ b/packages/app-degree-pages/src/core/services/degree-data-manager-service.js @@ -46,21 +46,28 @@ function filterData({ !isAccelConcValid(acceleratedConcurrent) || row[acceleratedConcurrent.value]?.length > 0; - const filterByKeyword = (resolver, searchTerm) => { + const filterByKeywordTitle = (resolver, searchTerm) => { if (!searchTerm) return true; const regex = new RegExp(searchTerm, "i"); const title = regex.test(resolver.getMajorDesc()); - const description = regex.test(resolver.getFullDescription()); if (title){ return true; - } else if (description) { - return true; } else { return false; } + }; - + const filterByKeywordDescription = (resolver, searchTerm) => { + if (!searchTerm) return true; + const regex = new RegExp(searchTerm, "i"); + const description = regex.test(resolver.getFullDescription()); + if (description){ + return true; + } + else { + return false; + } }; const filterByBlacklist = resolver => @@ -92,13 +99,33 @@ function filterData({ filterByDepartmentCode(resolver) && filterByCampus(resolver) && filterByAcceleratedConcurrent(row) && - filterByKeyword(resolver, keyword) && filterByBlacklist(resolver) && filterGraduateCerts(resolver) ); }; - return programs.filter(applyFilters); + let filteredByTitle = []; + let filteredByDescription = []; + + let newPrograms = programs.filter(degree => { + const resolver = degreeDataPropResolverService(degree); + + if(filterByKeywordTitle(resolver, keyword)) { + if (applyFilters(degree)) { + filteredByTitle.push(degree); + } + return false; + } + + if(filterByKeywordDescription(resolver, keyword)) { + if (applyFilters(degree)) { + filteredByDescription.push(degree); + } + return false; + } + }); + + return filteredByTitle.concat(filteredByDescription); } /**