Skip to content

Commit a8b3f91

Browse files
Merge pull request #1500 from ASU/uds-1654-improve-search
fix(app-degree-pages): improve the search relevancy by displaying tit…
2 parents c7f3718 + 20e4e20 commit a8b3f91

File tree

2 files changed

+47
-7
lines changed

2 files changed

+47
-7
lines changed

packages/app-degree-pages/src/core/services/degree-data-manager-service.js

Lines changed: 46 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -46,10 +46,26 @@ function filterData({
4646
!isAccelConcValid(acceleratedConcurrent) ||
4747
row[acceleratedConcurrent.value]?.length > 0;
4848

49-
const filterByKeyword = (resolver, searchTerm) => {
49+
const filterByKeywordTitle = (resolver, searchTerm) => {
5050
if (!searchTerm) return true;
5151
const regex = new RegExp(searchTerm, "i");
52-
return regex.test(resolver.getFullDescription());
52+
const title = regex.test(resolver.getMajorDesc());
53+
if (title) {
54+
return true;
55+
}
56+
57+
return false;
58+
};
59+
60+
const filterByKeywordDescription = (resolver, searchTerm) => {
61+
if (!searchTerm) return true;
62+
const regex = new RegExp(searchTerm, "i");
63+
const description = regex.test(resolver.getFullDescription());
64+
if (description) {
65+
return true;
66+
}
67+
68+
return false;
5369
};
5470

5571
const filterByBlacklist = resolver =>
@@ -81,13 +97,39 @@ function filterData({
8197
filterByDepartmentCode(resolver) &&
8298
filterByCampus(resolver) &&
8399
filterByAcceleratedConcurrent(row) &&
84-
filterByKeyword(resolver, keyword) &&
85100
filterByBlacklist(resolver) &&
86101
filterGraduateCerts(resolver)
87102
);
88103
};
89104

90-
return programs.filter(applyFilters);
105+
const filteredByTitle = [];
106+
const filteredByDescription = [];
107+
108+
const newPrograms = programs.filter(degree => {
109+
const resolver = degreeDataPropResolverService(degree);
110+
111+
const isFilteredByTitle = filterByKeywordTitle(resolver, keyword);
112+
const isFilteredByDescription = filterByKeywordDescription(
113+
resolver,
114+
keyword
115+
);
116+
117+
if (
118+
(isFilteredByTitle || isFilteredByDescription) &&
119+
applyFilters(degree)
120+
) {
121+
if (isFilteredByTitle) {
122+
filteredByTitle.push(degree);
123+
} else {
124+
filteredByDescription.push(degree);
125+
}
126+
return true;
127+
}
128+
129+
return false;
130+
});
131+
132+
return filteredByTitle.concat(filteredByDescription);
91133
}
92134

93135
/**

packages/app-degree-pages/src/core/services/degree-data-prop-resolver-service.jsx

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,6 @@ function degreeDataPropResolverService(row = {}) {
9191
/** @type {string} */
9292
const gradRequirement2 = row["degreeRequirements"] || "";
9393
return `${gradRequirement1}${gradRequirement2}`;
94-
9594
},
9695
isOnline: () => row["asuOnlineAcadPlanUrl"], // Returns null if online url is not available
9796
// See getGeneralDegreeMajorMap for more info
@@ -222,9 +221,8 @@ function degreeDataPropResolverService(row = {}) {
222221
const text = row["stemOptText"];
223222
if (text && text !== "") {
224223
return "Yes";
225-
} else {
226-
return "No";
227224
}
225+
return "No";
228226
},
229227
getSubPlnMajorMaps: () => {
230228
if (!row["subplans"] || !row["majorMapSubplans"]) return [];

0 commit comments

Comments
 (0)