diff --git a/build/bundle.js b/build/bundle.js index 05f4511a..5caca537 100644 --- a/build/bundle.js +++ b/build/bundle.js @@ -4678,13 +4678,13 @@ var Sandbox = Backbone.View.extend({ command.addWarning( "Solved map was reset, you are starting from a clean slate!" ); - deferred.resolve(); + command.finishWith(deferred); }, processSandboxCommand: function(command, deferred) { var commandMap = { 'reset solved': this.resetSolved, - 'general help': this.helpDialog, + 'help general': this.helpDialog, 'help': this.helpDialog, 'reset': this.reset, 'delay': this.delay, @@ -6542,7 +6542,7 @@ var LevelToolbar = require('../views').LevelToolbar; var TreeCompare = require('../git/treeCompare').TreeCompare; var regexMap = { - 'level help': /^level help$/, + 'help level': /^help level$/, 'start dialog': /^start dialog$/, 'show goal': /^show goal$/, 'hide goal': /^hide goal$/, @@ -6879,7 +6879,7 @@ var Level = Sandbox.extend({ [/^help$/, function() { throw new Errors.CommandResult({ msg: 'You are in a level, so multiple forms of help are available. Please select either ' + - '"level help" or "general help"' + '"help level" or "help general"' }); }], [/^hint$/, function() { @@ -12993,9 +12993,8 @@ var instantCommands = [ var regexMap = { 'reset solved': /^reset solved($|\s)/, - 'general help': /^general help($|\s)/, - 'help': /^help($|\s)|\?/, - 'reset': /^reset($|\s)/, + 'help': /^help ?(general)?($|\s)/, + 'reset': /^reset$/, 'delay': /^delay (\d+)$/, 'clear': /^clear($|\s)/, 'exit level': /^exit level($|\s)/, @@ -15608,13 +15607,13 @@ LevelArbiter.prototype.init = function() { _.each(levels, function(level, index) { this.validateLevel(level); - var id = levelSequenceName + String(index); + var id = levelSequenceName + String(index + 1); var compiledLevel = _.extend( {}, level, { index: index, - id: levelSequenceName + String(index), + id: id, sequenceName: levelSequenceName } ); @@ -15644,6 +15643,7 @@ LevelArbiter.prototype.levelSolved = function(id) { LevelArbiter.prototype.resetSolvedMap = function() { this.solvedMap = {}; this.syncToStorage(); + Main.getEvents().trigger('levelSolved'); }; LevelArbiter.prototype.syncToStorage = function() { @@ -15845,8 +15845,6 @@ var LevelDropdownView = ContainedBase.extend({ options = options || {}; this.JSON = {}; - Main.getEvents().on('levelSolved', this.updateSolvedStatus, this); - this.navEvents = _.clone(Backbone.Events); this.navEvents.on('clickedID', _.debounce( _.bind(this.loadLevelID, this), @@ -16018,6 +16016,9 @@ var LevelDropdownView = ContainedBase.extend({ }, show: function(deferred) { + // doing the update on show will allow us to fade which will be nice + this.updateSolvedStatus(); + this.showDeferred = deferred; this.keyboardListener.listen(); LevelDropdownView.__super__.show.apply(this); @@ -16095,6 +16096,7 @@ var SeriesView = BaseView.extend({ // property changing but it's the 11th hour... var toLoop = this.$('div.levelIcon').each(function(index, el) { var id = $(el).attr('data-id'); + console.log('updating id', id); $(el).toggleClass('solved', Main.getLevelArbiter().isLevelSolved(id)); }); }, @@ -19345,13 +19347,13 @@ LevelArbiter.prototype.init = function() { _.each(levels, function(level, index) { this.validateLevel(level); - var id = levelSequenceName + String(index); + var id = levelSequenceName + String(index + 1); var compiledLevel = _.extend( {}, level, { index: index, - id: levelSequenceName + String(index), + id: id, sequenceName: levelSequenceName } ); @@ -19381,6 +19383,7 @@ LevelArbiter.prototype.levelSolved = function(id) { LevelArbiter.prototype.resetSolvedMap = function() { this.solvedMap = {}; this.syncToStorage(); + Main.getEvents().trigger('levelSolved'); }; LevelArbiter.prototype.syncToStorage = function() { @@ -19806,7 +19809,7 @@ var LevelToolbar = require('../views').LevelToolbar; var TreeCompare = require('../git/treeCompare').TreeCompare; var regexMap = { - 'level help': /^level help$/, + 'help level': /^help level$/, 'start dialog': /^start dialog$/, 'show goal': /^show goal$/, 'hide goal': /^hide goal$/, @@ -20143,7 +20146,7 @@ var Level = Sandbox.extend({ [/^help$/, function() { throw new Errors.CommandResult({ msg: 'You are in a level, so multiple forms of help are available. Please select either ' + - '"level help" or "general help"' + '"help level" or "help general"' }); }], [/^hint$/, function() { @@ -20501,13 +20504,13 @@ var Sandbox = Backbone.View.extend({ command.addWarning( "Solved map was reset, you are starting from a clean slate!" ); - deferred.resolve(); + command.finishWith(deferred); }, processSandboxCommand: function(command, deferred) { var commandMap = { 'reset solved': this.resetSolved, - 'general help': this.helpDialog, + 'help general': this.helpDialog, 'help': this.helpDialog, 'reset': this.reset, 'delay': this.delay, @@ -20632,9 +20635,8 @@ var instantCommands = [ var regexMap = { 'reset solved': /^reset solved($|\s)/, - 'general help': /^general help($|\s)/, - 'help': /^help($|\s)|\?/, - 'reset': /^reset($|\s)/, + 'help': /^help ?(general)?($|\s)/, + 'reset': /^reset$/, 'delay': /^delay (\d+)$/, 'clear': /^clear($|\s)/, 'exit level': /^exit level($|\s)/, @@ -22618,8 +22620,6 @@ var LevelDropdownView = ContainedBase.extend({ options = options || {}; this.JSON = {}; - Main.getEvents().on('levelSolved', this.updateSolvedStatus, this); - this.navEvents = _.clone(Backbone.Events); this.navEvents.on('clickedID', _.debounce( _.bind(this.loadLevelID, this), @@ -22791,6 +22791,9 @@ var LevelDropdownView = ContainedBase.extend({ }, show: function(deferred) { + // doing the update on show will allow us to fade which will be nice + this.updateSolvedStatus(); + this.showDeferred = deferred; this.keyboardListener.listen(); LevelDropdownView.__super__.show.apply(this); @@ -22868,6 +22871,7 @@ var SeriesView = BaseView.extend({ // property changing but it's the 11th hour... var toLoop = this.$('div.levelIcon').each(function(index, el) { var id = $(el).attr('data-id'); + console.log('updating id', id); $(el).toggleClass('solved', Main.getLevelArbiter().isLevelSolved(id)); }); }, diff --git a/src/js/level/arbiter.js b/src/js/level/arbiter.js index 110e31d0..fde6fe2c 100644 --- a/src/js/level/arbiter.js +++ b/src/js/level/arbiter.js @@ -38,13 +38,13 @@ LevelArbiter.prototype.init = function() { _.each(levels, function(level, index) { this.validateLevel(level); - var id = levelSequenceName + String(index); + var id = levelSequenceName + String(index + 1); var compiledLevel = _.extend( {}, level, { index: index, - id: levelSequenceName + String(index), + id: id, sequenceName: levelSequenceName } ); @@ -74,6 +74,7 @@ LevelArbiter.prototype.levelSolved = function(id) { LevelArbiter.prototype.resetSolvedMap = function() { this.solvedMap = {}; this.syncToStorage(); + Main.getEvents().trigger('levelSolved'); }; LevelArbiter.prototype.syncToStorage = function() { diff --git a/src/js/level/index.js b/src/js/level/index.js index d045c89e..3478aa06 100644 --- a/src/js/level/index.js +++ b/src/js/level/index.js @@ -23,7 +23,7 @@ var LevelToolbar = require('../views').LevelToolbar; var TreeCompare = require('../git/treeCompare').TreeCompare; var regexMap = { - 'level help': /^level help$/, + 'help level': /^help level$/, 'start dialog': /^start dialog$/, 'show goal': /^show goal$/, 'hide goal': /^hide goal$/, @@ -360,7 +360,7 @@ var Level = Sandbox.extend({ [/^help$/, function() { throw new Errors.CommandResult({ msg: 'You are in a level, so multiple forms of help are available. Please select either ' + - '"level help" or "general help"' + '"help level" or "help general"' }); }], [/^hint$/, function() { diff --git a/src/js/level/sandbox.js b/src/js/level/sandbox.js index 43fa9454..81161410 100644 --- a/src/js/level/sandbox.js +++ b/src/js/level/sandbox.js @@ -185,13 +185,13 @@ var Sandbox = Backbone.View.extend({ command.addWarning( "Solved map was reset, you are starting from a clean slate!" ); - deferred.resolve(); + command.finishWith(deferred); }, processSandboxCommand: function(command, deferred) { var commandMap = { 'reset solved': this.resetSolved, - 'general help': this.helpDialog, + 'help general': this.helpDialog, 'help': this.helpDialog, 'reset': this.reset, 'delay': this.delay, diff --git a/src/js/level/sandboxCommands.js b/src/js/level/sandboxCommands.js index ac2d43e6..ef69d4ba 100644 --- a/src/js/level/sandboxCommands.js +++ b/src/js/level/sandboxCommands.js @@ -46,9 +46,8 @@ var instantCommands = [ var regexMap = { 'reset solved': /^reset solved($|\s)/, - 'general help': /^general help($|\s)/, - 'help': /^help($|\s)|\?/, - 'reset': /^reset($|\s)/, + 'help': /^help ?(general)?($|\s)/, + 'reset': /^reset$/, 'delay': /^delay (\d+)$/, 'clear': /^clear($|\s)/, 'exit level': /^exit level($|\s)/, diff --git a/src/js/views/levelDropdownView.js b/src/js/views/levelDropdownView.js index 9706861b..9e08bdca 100644 --- a/src/js/views/levelDropdownView.js +++ b/src/js/views/levelDropdownView.js @@ -20,8 +20,6 @@ var LevelDropdownView = ContainedBase.extend({ options = options || {}; this.JSON = {}; - Main.getEvents().on('levelSolved', this.updateSolvedStatus, this); - this.navEvents = _.clone(Backbone.Events); this.navEvents.on('clickedID', _.debounce( _.bind(this.loadLevelID, this), @@ -193,6 +191,9 @@ var LevelDropdownView = ContainedBase.extend({ }, show: function(deferred) { + // doing the update on show will allow us to fade which will be nice + this.updateSolvedStatus(); + this.showDeferred = deferred; this.keyboardListener.listen(); LevelDropdownView.__super__.show.apply(this); @@ -270,6 +271,7 @@ var SeriesView = BaseView.extend({ // property changing but it's the 11th hour... var toLoop = this.$('div.levelIcon').each(function(index, el) { var id = $(el).attr('data-id'); + console.log('updating id', id); $(el).toggleClass('solved', Main.getLevelArbiter().isLevelSolved(id)); }); },