initial support for separation of content from attack in UI

This commit is contained in:
Jason White 2016-06-28 16:20:40 +02:00
parent 63398aaf6d
commit 0aa94a71e5
4 changed files with 29 additions and 12 deletions

View File

@ -926,3 +926,9 @@ cookie-container {
.help-button {
margin-right:4px;
}
/* ATTACK DISPLAY */
div.attack-container {
display:none;
}

View File

@ -98,10 +98,11 @@ define(['jquery',
hasPlan:this.lessonInfoModel.get('hasPlan'),
hasSolution:this.lessonInfoModel.get('hasSolution'),
hasSource:this.lessonInfoModel.get('hasSource'),
hasHints:(this.lessonInfoModel.get('numberHints') > 0),
hasHints:(this.lessonInfoModel.get('numberHints') > 0)
//hasAttack:this.lessonInfo.get('hasAttack') // TODO: add attack options
});
this.listenTo(this.helpControlsView,'plan:show',this.hideShowHelps);
this.listenTo(this.helpControlsView,'attack:show',this.hideShowAttack);
this.listenTo(this.helpControlsView,'solution:show',this.hideShowHelps);
this.listenTo(this.helpControlsView,'hints:show',this.onShowHints)
this.listenTo(this.helpControlsView,'source:show',this.hideShowHelps);
@ -128,7 +129,6 @@ define(['jquery',
this.lessonHintView = new HintView();
this.cookieView = new CookieView();
//TODO: instantiate model with values (not sure why was not working before)
var paramModel = new ParamModel({});
paramModel.set('scrParam',this.lessonContent.get('scrParam'));
@ -180,6 +180,12 @@ define(['jquery',
this.lessonHintView.render();
};
this.hideShowAttack = function (options) { // will likely expand this to encompass
if (options.show) {
$('div.attack-container').show();
}
};
this.restartLesson = function() {
var self=this;
var fragment = "attack/" + self.scr + "/" + self.menu;

View File

@ -29,8 +29,8 @@ function($,_,Backbone) {
if (this.hasSolution) {
this.$el.find('#show-solution-button').unbind().on('click',_.bind(this.showSolution,this)).show();
}
if (this.hasPlan) {
this.$el.find('#show-plan-button').unbind().on('click',_.bind(this.showPlan,this)).show();
if (true) { //FIXME: change to this.hasAttack
this.$el.find('#show-attack-button').unbind().on('click',_.bind(this.showAttack,this)).show();
}
if (this.hasHints) {
this.$el.find('#show-hints-button').unbind().on('click',_.bind(this.showHints,this)).show();
@ -48,8 +48,8 @@ function($,_,Backbone) {
this.trigger('solution:show','solution');
},
showPlan: function() {
this.trigger('plan:show','plan');
showAttack: function() {
this.trigger('attack:show',{show:true});
},
showHints: function() {

View File

@ -25,14 +25,14 @@ define(['jquery',
//TODO: reimplement this in custom fashion maybe?
makeFormsAjax: function () {
var options = {
success:this.reLoadView.bind(this),
success:this.onAttackExecution.bind(this),
url: this.model.urlRoot,
type:'GET'
// $.ajax options can be used here too, for example:
//timeout: 3000
};
//hook forms //TODO: clarify form selectors later
$("form").ajaxForm(options);
$("form.attack").ajaxForm(options);
},
ajaxifyAttackHref: function() { // rewrite any links with hrefs point to relative attack URLs
@ -54,10 +54,15 @@ define(['jquery',
});
},
reLoadView: function(content) {
this.model.setContent(content);
this.render();
onAttackExecution: function(feedback) {
console.log('attack executed')
this.renderFeedback(feedback);
},
renderFeedback: function(feedback) {
this.$el.find('feedback').html(feedback);
}
});