Index: lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/MonitoringService.java =================================================================== diff -u -ra9c5e4550ac78c7dde3dc3796d6cf8dc03d455e8 -ra39116377d13ac23757521c9a86dc9bf95a140ab --- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/MonitoringService.java (.../MonitoringService.java) (revision a9c5e4550ac78c7dde3dc3796d6cf8dc03d455e8) +++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/MonitoringService.java (.../MonitoringService.java) (revision a39116377d13ac23757521c9a86dc9bf95a140ab) @@ -1469,7 +1469,7 @@ } else { // the gate is closed, stop here stopReason = messageService.getMessage(MonitoringService.FORCE_COMPLETE_STOP_MESSAGE_GATE, - new Object[] { activity.getTitle() }); + new Object[] { activity.getTitle() == null ? "" : activity.getTitle() }); } } else if (activity.isToolActivity()) { Index: lams_monitoring/web/includes/javascript/monitorLesson.js =================================================================== diff -u -r05b3e396e6a35a5afec67fd4a79da717edcd2165 -ra39116377d13ac23757521c9a86dc9bf95a140ab --- lams_monitoring/web/includes/javascript/monitorLesson.js (.../monitorLesson.js) (revision 05b3e396e6a35a5afec67fd4a79da717edcd2165) +++ lams_monitoring/web/includes/javascript/monitorLesson.js (.../monitorLesson.js) (revision a39116377d13ac23757521c9a86dc9bf95a140ab) @@ -935,10 +935,7 @@ // go to "force complete" mode, similar to dragging user to an activity activityId = dialog.data('ajaxProperties').data.activityID, dropArea = sequenceCanvas.add('#completedLearnersContainer'); - dropArea.css('cursor', 'url(' - + LAMS_URL + 'images/icons/' - + (moveAll || selectedLearners.length > 1 ? 'group' : 'user') - + '.png),pointer') + dropArea.css('cursor', 'pointer') .one('click', function(event) { dropArea.off('click').css('cursor', 'default'); if (moveAll) { @@ -2779,19 +2776,25 @@ // double tap detection on mobile devices; it works also for mouse clicks // temporarly switched to click as jQuery mobile was removed for bootstrapping elem.click(function(event) { - event.stopPropagation(); - var currentTime = new Date().getTime(); + // was the second click quick enough after the first one? + var currentTime = new Date().getTime(), + tapLength = currentTime - lastTapTime; + lastTapTime = currentTime; + + if (lastTapTarget && lastTapTarget.classList.contains('learner-icon') && tapLength < 10) { + // after clicking learner icon there is a propagation to activity, which must be ignored + // we can not stop propagation completetly as force complete stops working + return; + } + // is the second click on the same element as the first one? if (event.currentTarget == lastTapTarget) { - - // was the second click quick enough after the first one? - var tapLength = currentTime - lastTapTime; if (tapLength < tapTimeout && tapLength > 0) { event.preventDefault(); dblClickFunction(event); } } - lastTapTime = currentTime; + lastTapTarget = event.currentTarget; }); }