Index: lams_monitoring/conf/language/lams/ApplicationResources.properties
===================================================================
diff -u -r35ee206c5d47a350ae59a47321a2c11a96af6f04 -rd1b23130f9980a55d8df855d834238415ba50aa2
--- lams_monitoring/conf/language/lams/ApplicationResources.properties (.../ApplicationResources.properties) (revision 35ee206c5d47a350ae59a47321a2c11a96af6f04)
+++ lams_monitoring/conf/language/lams/ApplicationResources.properties (.../ApplicationResources.properties) (revision d1b23130f9980a55d8df855d834238415ba50aa2)
@@ -264,6 +264,7 @@
learners.page =Page
learners.order =Order by completion
learners.search.phrase =Enter search query
or page number
+learners.search.phrase.tooltip =You can use multiple keywords by separating them with ;
learners.search.phrase.go.tooltip =Run search
learners.search.phrase.clear.tooltip =Clear search results
button.live.edit =Live Edit
Index: lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/MonitoringAction.java
===================================================================
diff -u -r14c54447b34867997a4b9c3de61b4feda3059434 -rd1b23130f9980a55d8df855d834238415ba50aa2
--- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/MonitoringAction.java (.../MonitoringAction.java) (revision 14c54447b34867997a4b9c3de61b4feda3059434)
+++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/MonitoringAction.java (.../MonitoringAction.java) (revision d1b23130f9980a55d8df855d834238415ba50aa2)
@@ -32,6 +32,7 @@
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
+import java.util.LinkedHashSet;
import java.util.List;
import java.util.Locale;
import java.util.Map;
@@ -1190,10 +1191,10 @@
}
}
-
IUserManagementService userManagementService = MonitoringServiceProxy.getUserManagementService(getServlet()
.getServletContext());
- Organisation organisation = (Organisation) userManagementService.findById(Organisation.class, lessonDTO.getOrganisationID());
+ Organisation organisation = (Organisation) userManagementService.findById(Organisation.class,
+ lessonDTO.getOrganisationID());
request.setAttribute("notificationsAvailable", organisation.getEnableCourseNotifications());
request.setAttribute("lesson", lessonDTO);
return mapping.findForward("monitorLesson");
@@ -1221,21 +1222,29 @@
: new LearnerProgressNameComparator());
if (!StringUtils.isBlank(searchPhrase)) {
- searchPhrase = searchPhrase.trim().toLowerCase();
-
// get only users whose names match the given phrase
- List searchResult = new ArrayList();
+ Set searchResult = new LinkedHashSet();
+
+ // check if there are several search phrases in the query
+ String[] searchPhrases = searchPhrase.split(";");
+ for (int searchPhraseIndex = 0; searchPhraseIndex < searchPhrases.length; searchPhraseIndex++) {
+ searchPhrases[searchPhraseIndex] = searchPhrases[searchPhraseIndex].trim().toLowerCase();
+ }
+
for (LearnerProgress learnerProgress : learnerProgresses) {
User learner = learnerProgress.getUser();
StringBuilder learnerDisplayName = new StringBuilder(learner.getFirstName().toLowerCase()).append(" ")
.append(learner.getLastName().toLowerCase()).append(" ")
.append(learner.getLogin().toLowerCase());
- if (learnerDisplayName.indexOf(searchPhrase) != -1) {
- searchResult.add(learnerProgress);
+ for (String searchPhrasePiece : searchPhrases) {
+ if (!StringUtils.isBlank(searchPhrasePiece) && learnerDisplayName.indexOf(searchPhrasePiece) != -1) {
+ searchResult.add(learnerProgress);
+ }
}
}
- learnerProgresses = searchResult;
+ learnerProgresses.clear();
+ learnerProgresses.addAll(searchResult);
}
// batch size is 10
Index: lams_monitoring/web/monitor.jsp
===================================================================
diff -u -r40d574e90c45111f7235398a683c4bf2ea889d20 -rd1b23130f9980a55d8df855d834238415ba50aa2
--- lams_monitoring/web/monitor.jsp (.../monitor.jsp) (revision 40d574e90c45111f7235398a683c4bf2ea889d20)
+++ lams_monitoring/web/monitor.jsp (.../monitor.jsp) (revision d1b23130f9980a55d8df855d834238415ba50aa2)
@@ -333,7 +333,9 @@