null
or name is blank
+ */
+ public Event(String scope, String name, Long sessionId, String subject, String message, boolean isHtmlContentType, Date failTime) throws InvalidParameterException {
+ if (scope == null) {
+ throw new InvalidParameterException("Event scope can not be null.");
+ }
+ if (StringUtils.isBlank(name)) {
+ throw new InvalidParameterException("Event name can not be blank.");
+ }
+ this.scope = scope;
+ this.name = name;
+ this.eventSessionId = sessionId;
+ this.subject = subject;
+ this.message = message;
+ this.htmlFormat = isHtmlContentType;
+ this.failTime = failTime;
+ }
+
@Override
public Object clone() {
- return new Event(scope, name, eventSessionId, subject, message, htmlFormat);
+ return new Event(scope, name, eventSessionId, subject, message, htmlFormat, failTime);
}
/**
Index: lams_common/src/java/org/lamsfoundation/lams/events/EventNotificationService.java
===================================================================
RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/events/EventNotificationService.java,v
diff -u -r1.7.2.15 -r1.7.2.16
--- lams_common/src/java/org/lamsfoundation/lams/events/EventNotificationService.java 28 Mar 2017 12:05:25 -0000 1.7.2.15
+++ lams_common/src/java/org/lamsfoundation/lams/events/EventNotificationService.java 1 Jun 2017 07:30:57 -0000 1.7.2.16
@@ -5,6 +5,7 @@
import java.util.Date;
import java.util.Iterator;
import java.util.List;
+import java.util.Map;
import java.util.Set;
import org.apache.commons.lang.StringUtils;
@@ -114,6 +115,23 @@
}
@Override
+ public void notifyLessonMonitors(Long lessonId, String subject, String message, boolean isHtmlFormat) {
+ Map") + .append(getMessageService().getMessage("label.started")).append(" ") + .append(lesson.getStartDateTime()).append("
").append(getMessageService().getMessage("label.status")).append(" | ") + .append(getMessageService().getMessage("progress.email.heading.number.learners")) + .append(" | % |
---|---|---|
").append(getMessageService().getMessage("label.not.started")).append(" | ") + .append(notStarted).append(" | ") + .append(asPercentage(notStarted, possibleLearnersCount)).append("% |
").append(getMessageService().getMessage("lesson.chart.started")).append(" | ") + .append(startedLearnersCount).append(" | ") + .append(asPercentage(startedLearnersCount, possibleLearnersCount)).append("% |
").append(getMessageService().getMessage("lesson.chart.completed")).append(" | ") + .append(completedLearnersCount).append(" | ") + .append(asPercentage(completedLearnersCount, possibleLearnersCount)).append("% | ").append(possibleLearnersCount).append(" | ") + .append("100% |
").append(getMessageService().getMessage("label.activity")).append(" | ") + .append(getMessageService().getMessage("progress.email.heading.number.learners")) + .append(" | % | |
---|---|---|---|
") + .append(getMessageService().getMessage("label.not.started")).append(" | ").append(notStarted) + .append(" | ").append("").append(asPercentage(notStarted, possibleLearnersCount)) + .append("% | |
"); + for (int i = 0; i < dto.getDepth(); i++) { + progress.append("• "); + } + String title = activity.getTitle(); // null for gates + if (title == null) { + title = activity.isGateActivity() ? getMessageService().getMessage("label.gate.title") : + getMessageService().getMessage("label.unknown"); + } + + if (activity.isBranchingActivity() || activity.isOptionsActivity()) { + progress.append("").append(title).append(" | "); + } else { + progress.append("").append(title).append(" | "); + } + // output the headings for branching/options but only output numbers if there are learners stuck in the complex activity. + if ((activity.isBranchingActivity() || activity.isOptionsActivity() || activity.isSequenceActivity()) + && (dto.getNumberOfLearners() == null || dto.getNumberOfLearners() == 0)) { + progress.append(" | ") + .append(asPercentage(dto.getNumberOfLearners(), possibleLearnersCount)) + .append("% | "); + numLearnersProcessed += dto.getNumberOfLearners(); + } + } + } + numLearnersProcessed += completedLearnersCount; + progress.append("
Finished | ").append("").append(completedLearnersCount) + .append(" | ").append("").append(asPercentage(completedLearnersCount, possibleLearnersCount)) + .append("% | |
").append(numLearnersProcessed) + .append(" | ").append(asPercentage(numLearnersProcessed, possibleLearnersCount)) + .append("% | ").append("
").append("
") + .append("
") + .append(getMessageService().getMessage("progress.email.sent.automatically")) + .append("
"); + + String subject = getMessageService().getMessage("progress.email.subject", + new Object[] { lesson.getLessonName() }); + + return new String[] { subject, progress.toString() }; + + } + + private String asPercentage(Integer numerator, Integer denominator ) { + double raw = numerator.doubleValue() / denominator * 100; + return NumberUtil.formatLocalisedNumber(raw, (Locale)null, 2); + } + + @Override public Long cloneLesson(Long lessonId, Integer creatorId, Boolean addAllStaff, Boolean addAllLearners, String[] staffIds, String[] learnerIds, Organisation group) throws MonitoringServiceException { Lesson newLesson = null; @@ -2378,4 +2495,5 @@ return resetReadOnly; } + } \ No newline at end of file Fisheye: Tag 1.1 refers to a dead (removed) revision in file `lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/EmailProgressAction.java'. Fisheye: No comparison available. Pass `N' to diff? Index: lams_monitoring/web/monitor.jsp =================================================================== RCS file: /usr/local/cvsroot/lams_monitoring/web/monitor.jsp,v diff -u -r1.27.2.60 -r1.27.2.61 --- lams_monitoring/web/monitor.jsp 16 May 2017 20:56:05 -0000 1.27.2.60 +++ lams_monitoring/web/monitor.jsp 1 Jun 2017 07:31:31 -0000 1.27.2.61 @@ -178,8 +178,26 @@+ |