diff --git a/webgoat-container/src/main/java/org/owasp/webgoat/service/LessonCompletedService.java b/webgoat-container/src/main/java/org/owasp/webgoat/service/LessonProgressService.java
similarity index 84%
rename from webgoat-container/src/main/java/org/owasp/webgoat/service/LessonCompletedService.java
rename to webgoat-container/src/main/java/org/owasp/webgoat/service/LessonProgressService.java
index 668cddd5e..23701894d 100644
--- a/webgoat-container/src/main/java/org/owasp/webgoat/service/LessonCompletedService.java
+++ b/webgoat-container/src/main/java/org/owasp/webgoat/service/LessonProgressService.java
@@ -18,27 +18,27 @@ import java.util.Map;
@Controller
/**
- *
LessonCompletedService class.
+ * LessonProgressService class.
*
* @author webgoat
*/
-public class LessonCompletedService extends BaseService {
+public class LessonProgressService extends BaseService {
private static final Logger logger = LoggerFactory.getLogger(LessonMenuService.class);
private LabelManager labelManager;
@Autowired
- public LessonCompletedService(final LabelManager labelManager) {
+ public LessonProgressService(final LabelManager labelManager) {
this.labelManager = labelManager;
}
/**
- * getLessonCompletedService.
+ * LessonProgressService.
*
* @param session a {@link HttpSession} object.
* @return a {@link LessonInfoModel} object.
*/
- @RequestMapping(value = "/lessoncompleted.mvc", produces = "application/json")
+ @RequestMapping(value = "/lessonprogress.mvc", produces = "application/json")
@ResponseBody
public Map getLessonInfo(HttpSession session) {
WebSession webSession = getWebSession(session);
diff --git a/webgoat-container/src/main/webapp/WEB-INF/pages/main_new.jsp b/webgoat-container/src/main/webapp/WEB-INF/pages/main_new.jsp
index 8065739c3..356706e1b 100644
--- a/webgoat-container/src/main/webapp/WEB-INF/pages/main_new.jsp
+++ b/webgoat-container/src/main/webapp/WEB-INF/pages/main_new.jsp
@@ -121,7 +121,7 @@
-
+
diff --git a/webgoat-container/src/main/webapp/js/goatApp/controller/LessonController.js b/webgoat-container/src/main/webapp/js/goatApp/controller/LessonController.js
index 2d664d63c..06440f32a 100644
--- a/webgoat-container/src/main/webapp/js/goatApp/controller/LessonController.js
+++ b/webgoat-container/src/main/webapp/js/goatApp/controller/LessonController.js
@@ -16,8 +16,8 @@ define(['jquery',
'goatApp/view/MenuButtonView',
'goatApp/model/LessonInfoModel',
'goatApp/view/TitleView',
- 'goatApp/model/LessonCompletedModel',
- 'goatApp/view/LessonCompletedView'
+ 'goatApp/model/LessonProgressModel',
+ 'goatApp/view/LessonProgressView'
],
function($,
_,
@@ -37,8 +37,8 @@ define(['jquery',
MenuButtonView,
LessonInfoModel,
TitleView,
- LessonCompletedModel,
- LessonCompletedView
+ LessonProgressModel,
+ LessonProgressView
) {
'use strict'
@@ -46,8 +46,8 @@ define(['jquery',
var Controller = function(options) {
this.lessonContent = new LessonContentModel();
- this.lessonCompletedModel = new LessonCompletedModel();
- this.lessonCompletedView = new LessonCompletedView(this.lessonCompletedModel);
+ this.lessonProgressModel = new LessonProgressModel();
+ this.lessonProgressView = new LessonProgressView(this.lessonProgressModel);
this.lessonView = options.lessonView;
_.extend(Controller.prototype,Backbone.Events);
@@ -134,7 +134,7 @@ define(['jquery',
$('.lesson-help').hide();
}
this.trigger('menu:reload');
- this.lessonCompletedModel.completed();
+ this.lessonProgressModel.completed();
};
this.addCurHelpState = function (curHelp) {
diff --git a/webgoat-container/src/main/webapp/js/goatApp/model/LessonProgressModel.js b/webgoat-container/src/main/webapp/js/goatApp/model/LessonProgressModel.js
new file mode 100644
index 000000000..2582583ac
--- /dev/null
+++ b/webgoat-container/src/main/webapp/js/goatApp/model/LessonProgressModel.js
@@ -0,0 +1,13 @@
+define(['jquery',
+ 'underscore',
+ 'backbone'],
+ function ($,
+ _,
+ Backbone) {
+ return Backbone.Model.extend({
+ url: 'service/lessonprogress.mvc',
+ completed: function () {
+ this.fetch();
+ }
+ });
+ });
\ No newline at end of file
diff --git a/webgoat-container/src/main/webapp/js/goatApp/view/LessonProgressView.js b/webgoat-container/src/main/webapp/js/goatApp/view/LessonProgressView.js
new file mode 100644
index 000000000..0c3e892b1
--- /dev/null
+++ b/webgoat-container/src/main/webapp/js/goatApp/view/LessonProgressView.js
@@ -0,0 +1,26 @@
+define(['jquery',
+ 'underscore',
+ 'backbone',
+ 'goatApp/model/LessonProgressModel'],
+ function ($,
+ _,
+ Backbone,
+ LessonProgressModel) {
+ return Backbone.View.extend({
+ el: '#lesson-progress',
+ initialize: function (lessonProgressModel) {
+ this.model = lessonProgressModel;
+
+ if (this.model) {
+ this.listenTo(this.model, 'change', this.render);
+ }
+ },
+ render: function () {
+ if (this.model.get("lessonCompleted")) {
+ this.$el.html(this.model.get('successMessage'));
+ } else {
+ this.$el.html("");
+ }
+ }
+ });
+ });
\ No newline at end of file