mirror of
https://github.com/pcottle/learnGitBranching.git
synced 2025-06-29 09:20:03 +02:00
multiview workign
This commit is contained in:
parent
465b25368e
commit
cad801fafe
11 changed files with 157 additions and 33 deletions
|
@ -84,6 +84,9 @@ LevelArbiter.prototype.validateLevel = function(level) {
|
|||
throw new Error('I need this field for a level: ' + field);
|
||||
}
|
||||
});
|
||||
if (this.levelMap[level.id]) {
|
||||
throw new Error('woah that level already exists!');
|
||||
}
|
||||
};
|
||||
|
||||
LevelArbiter.prototype.getSequences = function() {
|
||||
|
|
|
@ -14,7 +14,6 @@ var DisabledMap = require('../level/disabledMap').DisabledMap;
|
|||
var Command = require('../models/commandModel').Command;
|
||||
var GitShim = require('../git/gitShim').GitShim;
|
||||
|
||||
var ModalAlert = require('../views').ModalAlert;
|
||||
var MultiView = require('../views/multiView').MultiView;
|
||||
var CanvasTerminalHolder = require('../views').CanvasTerminalHolder;
|
||||
var ConfirmCancelTerminal = require('../views').ConfirmCancelTerminal;
|
||||
|
@ -42,6 +41,28 @@ var Level = Sandbox.extend({
|
|||
|
||||
Level.__super__.initialize.apply(this, [options]);
|
||||
this.startOffCommand();
|
||||
|
||||
this.handleOpen();
|
||||
},
|
||||
|
||||
handleOpen: function() {
|
||||
this.options.deferred = this.options.deferred || Q.defer();
|
||||
|
||||
// if there is a multiview in the beginning, open that
|
||||
// and let it resolve our deferred
|
||||
if (this.level.startDialog) {
|
||||
new MultiView(_.extend(
|
||||
{},
|
||||
this.level.startDialog,
|
||||
{ deferred: this.options.deferred }
|
||||
));
|
||||
return;
|
||||
}
|
||||
|
||||
// otherwise, resolve after a 700 second delay
|
||||
setTimeout(_.bind(function() {
|
||||
this.options.deferred.resolve();
|
||||
}, this), this.getAnimationTime() * 1.2);
|
||||
},
|
||||
|
||||
initName: function(options) {
|
||||
|
|
|
@ -134,13 +134,17 @@ var Sandbox = Backbone.View.extend({
|
|||
|
||||
// we don't even need a reference to this,
|
||||
// everything will be handled via event baton :DDDDDDDDD
|
||||
var whenLevelOpen = Q.defer();
|
||||
var Level = require('../level').Level;
|
||||
|
||||
var currentLevel = new Level({
|
||||
level: levelJSON
|
||||
level: levelJSON,
|
||||
deferred: whenLevelOpen
|
||||
});
|
||||
setTimeout(function() {
|
||||
|
||||
whenLevelOpen.promise.then(function() {
|
||||
command.finishWith(deferred);
|
||||
}, this.getAnimationTime());
|
||||
});
|
||||
},
|
||||
|
||||
exitLevel: function(command, deferred) {
|
||||
|
|
|
@ -129,17 +129,17 @@ var SeriesView = BaseView.extend({
|
|||
// this is a bit hacky, it really should be some nice model
|
||||
// property changing but it's the 11th hour...
|
||||
var toLoop = this.$('div.levelIcon').each(function(index, el) {
|
||||
var id = el.id;
|
||||
var id = $(el).attr('data-id');
|
||||
$(el).toggleClass('solved', Main.getLevelArbiter().isLevelSolved(id));
|
||||
});
|
||||
},
|
||||
|
||||
click: function(ev) {
|
||||
if (!ev || !ev.srcElement || !ev.srcElement.id) {
|
||||
if (!ev || !ev.srcElement) {
|
||||
console.warn('wut, no id'); return;
|
||||
}
|
||||
|
||||
var id = ev.srcElement.id;
|
||||
var id = $(ev.srcElement).attr('data-id');
|
||||
this.navEvents.trigger('clickedID', id);
|
||||
}
|
||||
});
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue