diff --git a/app/controllers/Learn.scala b/app/controllers/Learn.scala index a40bc1d8f0..529657af55 100644 --- a/app/controllers/Learn.scala +++ b/app/controllers/Learn.scala @@ -30,7 +30,10 @@ object Learn extends LilaController { implicit val body = ctx.body levelForm.bindFromRequest.fold( err => BadRequest.fuccess, - data => env.api.setScore(me, data._1, data._2) inject Ok + data => env.api.setScore(me, data._1, data._2) >> + env.api.get(me).map { progress => + Ok(Json toJson progress) as JSON + } ) } } diff --git a/ui/learn/src/lesson.js b/ui/learn/src/lesson.js index a8d0ecc6e5..f1519b41cd 100644 --- a/ui/learn/src/lesson.js +++ b/ui/learn/src/lesson.js @@ -2,7 +2,6 @@ var m = require('mithril'); var stageBuilder = require('./stage'); var makeProgress = require('./progress').ctrl; var sound = require('./sound'); -var xhr = require('./xhr'); module.exports = function(blueprint, opts) { @@ -15,7 +14,7 @@ module.exports = function(blueprint, opts) { else { vm.completed = true; sound.lessonEnd(); - xhr.setScore(blueprint.key, vm.score); + opts.setScore(blueprint, vm.score); } m.redraw(); }; diff --git a/ui/learn/src/run/runCtrl.js b/ui/learn/src/run/runCtrl.js index b197c3ae4b..1157e4e37d 100644 --- a/ui/learn/src/run/runCtrl.js +++ b/ui/learn/src/run/runCtrl.js @@ -1,11 +1,19 @@ var m = require('mithril'); var lessons = require('../lesson/list'); var makeLesson = require('../lesson'); +var xhr = require('../xhr'); module.exports = function(lesson, opts) { + var setScore = function(level, score) { + xhr.setScore(level.key, score).then(function(data) { + opts.data = data; + }); + }; + var lesson = makeLesson(lessons.get(m.route.param("id")), { - stage: m.route.param('stage') || 1 + stage: m.route.param('stage') || 1, + setScore: setScore }); var getNext = function() {