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..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,10 +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");
- return regex.test(resolver.getFullDescription());
+ const title = regex.test(resolver.getMajorDesc());
+ if (title){
+ 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 =>
@@ -81,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);
}
/**
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 && (