110 lines
4.0 KiB
JavaScript
110 lines
4.0 KiB
JavaScript
// goat.lesson name space
|
|
goat.lesson = {
|
|
CurLesson: function(_lessonUrl) {
|
|
return {
|
|
hints:[],
|
|
hintIndex:0,
|
|
solution:null,
|
|
plan:null,
|
|
cookiesAndParams:[],
|
|
params:[],
|
|
source:null,
|
|
lessonUrl:(_lessonUrl || null),
|
|
clearInfo: function() {
|
|
this.hints = null;
|
|
this.solution = null;
|
|
this.plan = null;
|
|
this.cookies = null;
|
|
this.source = null;
|
|
this.params = null;
|
|
},
|
|
loadInfo: function() {
|
|
this.getHints();
|
|
this.getPlan();
|
|
this.getSolution();
|
|
this.getCookies();
|
|
this.getSource();
|
|
this.getParams();
|
|
},
|
|
getHints:function() {
|
|
var scope = this;
|
|
goat.data.loadHints().then(
|
|
function(resp) {
|
|
scope.hints = resp.data;
|
|
if (scope.hints.length > 0 && scope.hints[0].hint.indexOf(goatConstants.noHints) === -1) {
|
|
goat.utils.displayButton('showHintsBtn',true);
|
|
} else {
|
|
goat.utils.displayButton('showHintsBtn',false);
|
|
}
|
|
return scope;
|
|
},
|
|
function(err){
|
|
goat.utils.displayButton('showHintsBtn',false);
|
|
//TODO handle errors
|
|
}
|
|
);
|
|
},
|
|
getSolution:function() {
|
|
var scope = this;
|
|
goat.data.loadSolution().then(
|
|
function(resp) {
|
|
scope.solution = resp.data;
|
|
goat.utils.displayButton('showSolutionBtn',true);
|
|
$('#showSolutionBtn').unbind().click(goat.utils.showLessonSolution);
|
|
return scope;
|
|
},
|
|
function(err){
|
|
scope.solution = null;
|
|
goat.utils.displayButton('showSolutionBtn',false);
|
|
//TODO handle errors
|
|
}
|
|
);
|
|
},
|
|
getPlan: function() {
|
|
var scope = this;
|
|
goat.data.loadPlan().then(
|
|
function(resp) {
|
|
scope.plan = resp.data;
|
|
goat.utils.displayButton('showPlanBtn',true);
|
|
$('#showPlanBtn').unbind().click(goat.utils.showLessonPlan);
|
|
return scope;
|
|
},
|
|
function(err){
|
|
goat.utils.displayButton('showPlanBtn',false);
|
|
//TODO handle errors
|
|
}
|
|
);
|
|
},
|
|
getSource: function() {
|
|
var scope = this;
|
|
goat.data.loadSource().then(
|
|
function(resp) {
|
|
scope.source = resp.data;
|
|
goat.utils.displayButton('showSourceBtn',true);
|
|
$('#showSourceBtn').unbind().click(goat.utils.showLessonSource);
|
|
return scope;
|
|
},
|
|
function(err){
|
|
goat.utils.displayButton('showSourceBtn',false);
|
|
//TODO handle errors
|
|
}
|
|
);
|
|
},
|
|
getCookies: function() {
|
|
var scope = this;
|
|
goat.data.loadCookies().then(
|
|
function(resp) {
|
|
scope.cookies = resp.data;
|
|
return scope;
|
|
},
|
|
function(err){
|
|
//TODO handle errors
|
|
}
|
|
);
|
|
},
|
|
getParams: function() {
|
|
this.params = goat.utils.scrapeParams(this.lessonUrl);
|
|
}
|
|
}
|
|
}
|
|
}; |