Polling for lesson updates (updates the menu and page navigation)

This commit is contained in:
Nanne Baars 2018-04-27 18:33:31 +02:00
parent 76daac0db5
commit e422da4c64
3 changed files with 46 additions and 35 deletions

View File

@ -40,9 +40,10 @@ public class LessonProgressService {
@RequestMapping(value = "/service/lessonprogress.mvc", produces = "application/json") @RequestMapping(value = "/service/lessonprogress.mvc", produces = "application/json")
@ResponseBody @ResponseBody
public Map getLessonInfo() { public Map getLessonInfo() {
UserTracker userTracker = userTrackerRepository.findByUser(webSession.getUserName());
LessonTracker lessonTracker = userTracker.getLessonTracker(webSession.getCurrentLesson());
Map json = Maps.newHashMap(); Map json = Maps.newHashMap();
UserTracker userTracker = userTrackerRepository.findByUser(webSession.getUserName());
if (webSession.getCurrentLesson() != null) {
LessonTracker lessonTracker = userTracker.getLessonTracker(webSession.getCurrentLesson());
String successMessage = ""; String successMessage = "";
boolean lessonCompleted = false; boolean lessonCompleted = false;
if (lessonTracker != null) { if (lessonTracker != null) {
@ -51,6 +52,7 @@ public class LessonProgressService {
} }
json.put("lessonCompleted", lessonCompleted); json.put("lessonCompleted", lessonCompleted);
json.put("successMessage", successMessage); json.put("successMessage", successMessage);
}
return json; return json;
} }

View File

@ -7,9 +7,13 @@ define(['jquery',
return Backbone.Collection.extend({ return Backbone.Collection.extend({
model: MenuModel, model: MenuModel,
url: 'service/lessonmenu.mvc', url: 'service/lessonmenu.mvc',
initialize: function () { initialize: function () {
var self = this; var self = this;
this.fetch(); this.fetch();
setInterval(function () {
this.fetch()
}.bind(this), 5000);
}, },
onDataLoaded: function () { onDataLoaded: function () {

View File

@ -25,6 +25,9 @@ define(['jquery',
self.navToPage(page); self.navToPage(page);
} }
}); });
setInterval(function () {
this.updatePagination();
}.bind(this), 5000);
}, },
findPage: function(assignment) { findPage: function(assignment) {
@ -60,7 +63,9 @@ define(['jquery',
}, },
updatePagination: function() { updatePagination: function() {
if ( this.paginationControlView != undefined ) {
this.paginationControlView.updateCollection(); this.paginationControlView.updateCollection();
}
}, },
getCurrentPage: function () { getCurrentPage: function () {