Index: lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/MonitoringAction.java =================================================================== diff -u -r9438790401b957cdd70a4d6ab2a76da70176c6eb -r570505035381ff9b0640e56bb12c954ecf4166fa --- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/MonitoringAction.java (.../MonitoringAction.java) (revision 9438790401b957cdd70a4d6ab2a76da70176c6eb) +++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/MonitoringAction.java (.../MonitoringAction.java) (revision 570505035381ff9b0640e56bb12c954ecf4166fa) @@ -1152,11 +1152,11 @@ if (activity.getFloating()) { // these are support activities for (ActivityURL childActivity : activity.getChildActivities()) { - responseJSON.append("support", activityToJSON(childActivity, null, lessonId, learnerId, monitorId)); + responseJSON.append("support", activityProgressToJSON(childActivity, null, lessonId, learnerId, monitorId)); } } else { responseJSON.append("activities", - activityToJSON(activity, (Long) ret[1], lessonId, learnerId, monitorId)); + activityProgressToJSON(activity, (Long) ret[1], lessonId, learnerId, monitorId)); } } @@ -1527,7 +1527,7 @@ return userJSON; } - private JSONObject activityToJSON(ActivityURL activity, Long currentActivityId, Long lessonId, Integer learnerId, + private JSONObject activityProgressToJSON(ActivityURL activity, Long currentActivityId, Long lessonId, Integer learnerId, Integer monitorId) throws JSONException, IOException { JSONObject activityJSON = new JSONObject(); activityJSON.put("id", activity.getActivityId()); @@ -1559,7 +1559,7 @@ if (activity.getChildActivities() != null) { for (ActivityURL childActivity : activity.getChildActivities()) { activityJSON.append("childActivities", - activityToJSON(childActivity, currentActivityId, lessonId, learnerId, monitorId)); + activityProgressToJSON(childActivity, currentActivityId, lessonId, learnerId, monitorId)); } } Index: lams_monitoring/web/css/monitorLesson.css =================================================================== diff -u -r9438790401b957cdd70a4d6ab2a76da70176c6eb -r570505035381ff9b0640e56bb12c954ecf4166fa --- lams_monitoring/web/css/monitorLesson.css (.../monitorLesson.css) (revision 9438790401b957cdd70a4d6ab2a76da70176c6eb) +++ lams_monitoring/web/css/monitorLesson.css (.../monitorLesson.css) (revision 570505035381ff9b0640e56bb12c954ecf4166fa) @@ -164,6 +164,11 @@ overflow: hidden; } +img#sequenceCanvasLoading { + padding: 5px 0 0 370px; + display: none; +} + div#completedLearnersContainer { padding: 4px 0px 3px 5px; border-top: thin dotted #2E6E9E; Index: lams_monitoring/web/includes/javascript/monitorLesson.js =================================================================== diff -u -r9438790401b957cdd70a4d6ab2a76da70176c6eb -r570505035381ff9b0640e56bb12c954ecf4166fa --- lams_monitoring/web/includes/javascript/monitorLesson.js (.../monitorLesson.js) (revision 9438790401b957cdd70a4d6ab2a76da70176c6eb) +++ lams_monitoring/web/includes/javascript/monitorLesson.js (.../monitorLesson.js) (revision 570505035381ff9b0640e56bb12c954ecf4166fa) @@ -1,4 +1,5 @@ // ********** GLOBAL VARIABLES ********** +var refreshInProgress = false; // copy of lesson SVG so it does no need to be fetched every time var originalSequenceCanvas = null; // DIV container for lesson SVG; it gets accessed so many times it's worth to cache it here @@ -441,6 +442,9 @@ * Updates learner progress in sequence tab according to respose sent to refreshMonitor() */ function updateSequenceTab(response) { + // remove the loading animation + $('#sequenceTopButtonsContainer img#sequenceCanvasLoading').remove(); + var learnerCount = 0; $.each(response.activities, function(){ if (this.learners) { @@ -465,7 +469,7 @@ addLearnerIconsHandlers(activity); if (activity.url) { - var activityGroup = $('rect[id="act' + activity.id + '"]', sequenceCanvas).parent(); + var activityGroup = $('g#' + activity.id, sequenceCanvas); activityGroup.css('cursor', 'pointer').dblclick(function(){ // double click on activity shape to open Monitoring for this activity openPopUp(LAMS_URL + activity.url, "MonitorActivity", 720, 900, true); @@ -650,8 +654,6 @@ */ function addCompletedLearnerIcons(learners, learnerTotalCount) { var iconsContainer = $('#completedLearnersContainer'); - // clear all icons except the door - iconsContainer.children(':not(img#completedLearnersDoorIcon)').remove(); var completedLearnerCount = (learners ? learners.length : 0 ); // show (current/total) label $('').attr({ @@ -847,6 +849,11 @@ * Updates all changeable elements of monitoring screen. */ function refreshMonitor(){ + if (refreshInProgress) { + return; + } + refreshInProgress = true; + if (originalSequenceCanvas) { // put bottom layer, LD SVG sequenceCanvas.html(originalSequenceCanvas); @@ -888,6 +895,9 @@ }); } + // clear all completed learner icons except the door + $('#completedLearnersContainer :not(img#completedLearnersDoorIcon)').remove(); + // get update data $.ajax({ dataType : 'json', @@ -897,7 +907,18 @@ 'method' : 'getLessonProgressJSON', 'lessonID' : lessonId }, + beforeSend : function(){ + var sequenceTopButtonsContainer = $('#sequenceTopButtonsContainer'); + if ($('img#sequenceCanvasLoading', sequenceTopButtonsContainer).length == 0){ + $('#sequenceCanvasLoading') + .clone().appendTo(sequenceTopButtonsContainer) + .css('display', 'block'); + } + }, + success : function(response) { + refreshInProgress = false; + // update Lesson tab widgets (state, number of learners etc.) updateLessonTab(response); Index: lams_monitoring/web/monitor.jsp =================================================================== diff -u -r9438790401b957cdd70a4d6ab2a76da70176c6eb -r570505035381ff9b0640e56bb12c954ecf4166fa --- lams_monitoring/web/monitor.jsp (.../monitor.jsp) (revision 9438790401b957cdd70a4d6ab2a76da70176c6eb) +++ lams_monitoring/web/monitor.jsp (.../monitor.jsp) (revision 570505035381ff9b0640e56bb12c954ecf4166fa) @@ -278,7 +278,7 @@
-
+
@@ -294,7 +294,8 @@
- +