Index: lams_gradebook/web/gradebookMonitorContent5.jsp
===================================================================
diff -u -r6582c67f62fe86aeb15f5b7e21b54a82952ec3d3 -r198c8a9ea2d927fdf19aa00b222831934f6af176
--- lams_gradebook/web/gradebookMonitorContent5.jsp (.../gradebookMonitorContent5.jsp) (revision 6582c67f62fe86aeb15f5b7e21b54a82952ec3d3)
+++ lams_gradebook/web/gradebookMonitorContent5.jsp (.../gradebookMonitorContent5.jsp) (revision 198c8a9ea2d927fdf19aa00b222831934f6af176)
@@ -660,27 +660,39 @@
resizeJqgrid(jQuery(".ui-jqgrid-btable:visible", this));
})
- function userNameFormatter (cellvalue, options, rowObject) {
- return definePortraitPopover(rowObject[8].innerHTML, rowObject.id, cellvalue, cellvalue, true);
- }
- // Combine portraits with activityURL. Both are optional so it is mix and match.
- function userNameFormatterActivity (cellvalue, options, rowObject) {
- var portProcessed = definePortraitPopover(rowObject[9].innerHTML, rowObject.id, cellvalue, cellvalue, true);
- if ( rowObject.children.length > 10 && rowObject[10].innerHTML.length > 0 ) {
- var activityURL = rowObject[10].innerHTML;
- if ( portProcessed.indexOf('"+cellvalue+"";
- }
- }
- return portProcessed;
- }
-
setTimeout(function(){ window.dispatchEvent(new Event('resize')); }, 300);
+
+ $("#userView, #activityView").bind("jqGridAfterGridComplete", function () {
+ let grid = $(this),
+ expandedGridIds = grid.data('expandedGridIds');
+ $(this).data('expandedGridIds', null);
+ if (expandedGridIds) {
+ $(expandedGridIds).each(function(index, id){
+ grid.jqGrid('expandSubGridRow', id);
+ });
+ }
+ });
});
+
+ function userNameFormatter (cellvalue, options, rowObject) {
+ return definePortraitPopover(rowObject[8].innerHTML, rowObject.id, cellvalue, cellvalue, true);
+ }
+
+ // Combine portraits with activityURL. Both are optional so it is mix and match.
+ function userNameFormatterActivity (cellvalue, options, rowObject) {
+ var portProcessed = definePortraitPopover(rowObject[9].innerHTML, rowObject.id, cellvalue, cellvalue, true);
+ if ( rowObject.children.length > 10 && rowObject[10].innerHTML.length > 0 ) {
+ var activityURL = rowObject[10].innerHTML;
+ if ( portProcessed.indexOf('"+cellvalue+"";
+ }
+ }
+ return portProcessed;
+ }
Index: lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/MonitoringConstants.java
===================================================================
diff -u -rc1e3ca12a9ccb265363e2330dd91ce7bedbcfa35 -r198c8a9ea2d927fdf19aa00b222831934f6af176
--- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/MonitoringConstants.java (.../MonitoringConstants.java) (revision c1e3ca12a9ccb265363e2330dd91ce7bedbcfa35)
+++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/MonitoringConstants.java (.../MonitoringConstants.java) (revision 198c8a9ea2d927fdf19aa00b222831934f6af176)
@@ -68,4 +68,5 @@
// flux management
public static final String CANVAS_REFRESH_FLUX_NAME = "canvas refresh";
+ public static final String GRADEBOOK_REFRESH_FLUX_NAME = "gradebook refresh";
}
\ No newline at end of file
Index: lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/MonitoringController.java
===================================================================
diff -u -r20e62542c73330b5ccd425dc727597660abdd129 -r198c8a9ea2d927fdf19aa00b222831934f6af176
--- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/MonitoringController.java (.../MonitoringController.java) (revision 20e62542c73330b5ccd425dc727597660abdd129)
+++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/MonitoringController.java (.../MonitoringController.java) (revision 198c8a9ea2d927fdf19aa00b222831934f6af176)
@@ -164,6 +164,9 @@
FluxRegistry.initFluxMap(MonitoringConstants.CANVAS_REFRESH_FLUX_NAME,
CommonConstants.LESSON_PROGRESSED_SINK_NAME, null, lessonId -> "doRefresh", FluxMap.STANDARD_THROTTLE,
FluxMap.STANDARD_TIMEOUT);
+ FluxRegistry.initFluxMap(MonitoringConstants.GRADEBOOK_REFRESH_FLUX_NAME,
+ CommonConstants.LESSON_PROGRESSED_SINK_NAME, null, lessonId -> "doRefresh", FluxMap.STANDARD_THROTTLE,
+ FluxMap.STANDARD_TIMEOUT);
}
private Integer getUserId() {
@@ -189,6 +192,13 @@
return FluxRegistry.get(MonitoringConstants.CANVAS_REFRESH_FLUX_NAME, lessonId);
}
+ @RequestMapping(path = "/getGradebookUpdateFlux", method = RequestMethod.GET, produces = MediaType.TEXT_EVENT_STREAM_VALUE)
+ @ResponseBody
+ public Flux getGradebookUpdateFlux(@RequestParam long lessonId)
+ throws JsonProcessingException, IOException {
+ return FluxRegistry.get(MonitoringConstants.GRADEBOOK_REFRESH_FLUX_NAME, lessonId);
+ }
+
/**
* Initializes a lesson for specific learning design with the given lesson title and lesson description. If
* initialization is successful, this method will the ID of new lesson.
Index: lams_monitoring/web/includes/javascript/monitorLesson5.js
===================================================================
diff -u -rd30456574288df7fd628ad569ec5e74b23f971a3 -r198c8a9ea2d927fdf19aa00b222831934f6af176
--- lams_monitoring/web/includes/javascript/monitorLesson5.js (.../monitorLesson5.js) (revision d30456574288df7fd628ad569ec5e74b23f971a3)
+++ lams_monitoring/web/includes/javascript/monitorLesson5.js (.../monitorLesson5.js) (revision 198c8a9ea2d927fdf19aa00b222831934f6af176)
@@ -2551,6 +2551,8 @@
});
});
*/
+
+ $('#grid').trigger( 'reloadGrid' );
$.extend(true, $.jgrid.guiStyles.bootstrap4, {
pager : {
pagerSelect : 'form-control-select'
@@ -2559,6 +2561,25 @@
clearButton : 'btn btn-sm'
}
});
+
+ const gradebooksUpdateSource = new EventSource(LAMS_URL + 'monitoring/monitoring/getGradebookUpdateFlux.do?lessonId=' + lessonId);
+ gradebooksUpdateSource.onmessage = function (event) {
+ if ("doRefresh" == event.data && $('#gradebookDiv').length === 1){
+ let expandedGridIds = [];
+ $("#userView tr:has(.sgexpanded)").each(function () {
+ let num = $(this).attr('id');
+ expandedGridIds.push(num);
+ });
+ $('#userView').data('expandedGridIds', expandedGridIds).trigger("reloadGrid");
+
+ expandedGridIds = [];
+ $("#activityView tr:has(.sgexpanded)").each(function () {
+ let num = $(this).attr('id');
+ expandedGridIds.push(num);
+ });
+ $('#activityView').data('expandedGridIds', expandedGridIds).trigger("reloadGrid");
+ }
+ };
}
/**