@@ -46,10 +46,28 @@ 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+ else {
57+ return false ;
58+ }
59+ } ;
60+
61+ const filterByKeywordDescription = ( resolver , searchTerm ) => {
62+ if ( ! searchTerm ) return true ;
63+ const regex = new RegExp ( searchTerm , "i" ) ;
64+ const description = regex . test ( resolver . getFullDescription ( ) ) ;
65+ if ( description ) {
66+ return true ;
67+ }
68+ else {
69+ return false ;
70+ }
5371 } ;
5472
5573 const filterByBlacklist = resolver =>
@@ -81,13 +99,33 @@ function filterData({
8199 filterByDepartmentCode ( resolver ) &&
82100 filterByCampus ( resolver ) &&
83101 filterByAcceleratedConcurrent ( row ) &&
84- filterByKeyword ( resolver , keyword ) &&
85102 filterByBlacklist ( resolver ) &&
86103 filterGraduateCerts ( resolver )
87104 ) ;
88105 } ;
89106
90- return programs . filter ( applyFilters ) ;
107+ let filteredByTitle = [ ] ;
108+ let filteredByDescription = [ ] ;
109+
110+ let newPrograms = programs . filter ( degree => {
111+ const resolver = degreeDataPropResolverService ( degree ) ;
112+
113+ if ( filterByKeywordTitle ( resolver , keyword ) ) {
114+ if ( applyFilters ( degree ) ) {
115+ filteredByTitle . push ( degree ) ;
116+ }
117+ return false ;
118+ }
119+
120+ if ( filterByKeywordDescription ( resolver , keyword ) ) {
121+ if ( applyFilters ( degree ) ) {
122+ filteredByDescription . push ( degree ) ;
123+ }
124+ return false ;
125+ }
126+ } ) ;
127+
128+ return filteredByTitle . concat ( filteredByDescription ) ;
91129}
92130
93131/**
0 commit comments