READY TO BUILD LEVELS :DDDDDDDDDDDDDD

This commit is contained in:
Peter Cottle 2013-01-11 00:35:50 -08:00
parent c5f4d6e3f2
commit 8a1986a923
7 changed files with 175 additions and 48 deletions

View file

@ -9792,12 +9792,12 @@ var ConfirmCancelView = ResolveRejectBase.extend({
}, },
initialize: function(options) { initialize: function(options) {
if (!options.destination || !options.deferred) { if (!options.destination) {
throw new Error('needmore'); throw new Error('needmore');
} }
this.destination = options.destination; this.destination = options.destination;
this.deferred = options.deferred; this.deferred = options.deferred || Q.defer();
this.JSON = { this.JSON = {
confirm: options.confirm || 'Confirm', confirm: options.confirm || 'Confirm',
cancel: options.cancel || 'Cancel' cancel: options.cancel || 'Cancel'
@ -16660,7 +16660,9 @@ var ConfirmCancelTerminal = require('../views').ConfirmCancelTerminal;
var NextLevelConfirm = require('../views').NextLevelConfirm; var NextLevelConfirm = require('../views').NextLevelConfirm;
var LevelToolbar = require('../views').LevelToolbar; var LevelToolbar = require('../views').LevelToolbar;
var MarkdownPresenter = require('../views/builderViews').MarkdownPresenter;
var MultiViewBuilder = require('../views/builderViews').MultiViewBuilder; var MultiViewBuilder = require('../views/builderViews').MultiViewBuilder;
var MarkdownGrabber = require('../views/builderViews').MarkdownGrabber;
var regexMap = { var regexMap = {
'define goal': /^define goal$/, 'define goal': /^define goal$/,
@ -16931,6 +16933,18 @@ var LevelBuilder = Level.extend({
} }
chain = chain.done(_.bind(function() { chain = chain.done(_.bind(function() {
// ok great! lets just give them the goods
new MarkdownPresenter({
fillerText: JSON.stringify(this.getExportObj(), null, 2),
previewText: 'Here is the JSON for this level! Share it with someone or send it to me on Github!'
});
command.finishWith(deferred);
}, this));
masterDeferred.resolve();
},
getExportObj: function() {
var compiledLevel = _.extend( var compiledLevel = _.extend(
{}, {},
this.level this.level
@ -16940,12 +16954,7 @@ var LevelBuilder = Level.extend({
if (this.startDialog) { if (this.startDialog) {
compiledLevel.startDialog = this.startDialog; compiledLevel.startDialog = this.startDialog;
} }
console.log(compiledLevel); return compiledLevel;
console.log(this.startDialog);
command.finishWith(deferred);
}, this));
masterDeferred.resolve();
}, },
processLevelBuilderCommand: function(command, deferred) { processLevelBuilderCommand: function(command, deferred) {
@ -17044,7 +17053,8 @@ var MarkdownGrabber = ContainedBase.extend({
options = options || {}; options = options || {};
this.deferred = options.deferred || Q.defer(); this.deferred = options.deferred || Q.defer();
this.JSON = { this.JSON = {
previewText: options.previewText || 'Preview' previewText: options.previewText || 'Preview',
fillerText: options.fillerText || '## Enter some markdown!\n\n\n'
}; };
this.container = options.container || new ModalTerminal({ this.container = options.container || new ModalTerminal({
@ -17114,6 +17124,34 @@ var MarkdownGrabber = ContainedBase.extend({
} }
}); });
var MarkdownPresenter = ContainedBase.extend({
tagName: 'div',
className: 'markdownPresenter box vertical',
template: _.template($('#markdown-presenter').html()),
initialize: function(options) {
options = options || {};
this.JSON = {
previewText: options.previewText || 'Here is something for you',
fillerText: options.fillerText || '# Yay'
};
this.container = new ModalTerminal({
title: 'Check this out...'
});
this.render();
var confirmCancel = new Views.ConfirmCancelView({
destination: this.getDestination()
});
confirmCancel.deferred.promise
.fail(function() { })
.done(_.bind(this.die, this));
this.show();
}
});
var DemonstrationBuilder = ContainedBase.extend({ var DemonstrationBuilder = ContainedBase.extend({
tagName: 'div', tagName: 'div',
className: 'demonstrationBuilder box vertical', className: 'demonstrationBuilder box vertical',
@ -17321,6 +17359,7 @@ exports.MarkdownGrabber = MarkdownGrabber;
exports.DemonstrationBuilder = DemonstrationBuilder; exports.DemonstrationBuilder = DemonstrationBuilder;
exports.TextGrabber = TextGrabber; exports.TextGrabber = TextGrabber;
exports.MultiViewBuilder = MultiViewBuilder; exports.MultiViewBuilder = MultiViewBuilder;
exports.MarkdownPresenter = MarkdownPresenter;
}); });
@ -20045,7 +20084,9 @@ var ConfirmCancelTerminal = require('../views').ConfirmCancelTerminal;
var NextLevelConfirm = require('../views').NextLevelConfirm; var NextLevelConfirm = require('../views').NextLevelConfirm;
var LevelToolbar = require('../views').LevelToolbar; var LevelToolbar = require('../views').LevelToolbar;
var MarkdownPresenter = require('../views/builderViews').MarkdownPresenter;
var MultiViewBuilder = require('../views/builderViews').MultiViewBuilder; var MultiViewBuilder = require('../views/builderViews').MultiViewBuilder;
var MarkdownGrabber = require('../views/builderViews').MarkdownGrabber;
var regexMap = { var regexMap = {
'define goal': /^define goal$/, 'define goal': /^define goal$/,
@ -20316,6 +20357,18 @@ var LevelBuilder = Level.extend({
} }
chain = chain.done(_.bind(function() { chain = chain.done(_.bind(function() {
// ok great! lets just give them the goods
new MarkdownPresenter({
fillerText: JSON.stringify(this.getExportObj(), null, 2),
previewText: 'Here is the JSON for this level! Share it with someone or send it to me on Github!'
});
command.finishWith(deferred);
}, this));
masterDeferred.resolve();
},
getExportObj: function() {
var compiledLevel = _.extend( var compiledLevel = _.extend(
{}, {},
this.level this.level
@ -20325,12 +20378,7 @@ var LevelBuilder = Level.extend({
if (this.startDialog) { if (this.startDialog) {
compiledLevel.startDialog = this.startDialog; compiledLevel.startDialog = this.startDialog;
} }
console.log(compiledLevel); return compiledLevel;
console.log(this.startDialog);
command.finishWith(deferred);
}, this));
masterDeferred.resolve();
}, },
processLevelBuilderCommand: function(command, deferred) { processLevelBuilderCommand: function(command, deferred) {
@ -22105,7 +22153,8 @@ var MarkdownGrabber = ContainedBase.extend({
options = options || {}; options = options || {};
this.deferred = options.deferred || Q.defer(); this.deferred = options.deferred || Q.defer();
this.JSON = { this.JSON = {
previewText: options.previewText || 'Preview' previewText: options.previewText || 'Preview',
fillerText: options.fillerText || '## Enter some markdown!\n\n\n'
}; };
this.container = options.container || new ModalTerminal({ this.container = options.container || new ModalTerminal({
@ -22175,6 +22224,34 @@ var MarkdownGrabber = ContainedBase.extend({
} }
}); });
var MarkdownPresenter = ContainedBase.extend({
tagName: 'div',
className: 'markdownPresenter box vertical',
template: _.template($('#markdown-presenter').html()),
initialize: function(options) {
options = options || {};
this.JSON = {
previewText: options.previewText || 'Here is something for you',
fillerText: options.fillerText || '# Yay'
};
this.container = new ModalTerminal({
title: 'Check this out...'
});
this.render();
var confirmCancel = new Views.ConfirmCancelView({
destination: this.getDestination()
});
confirmCancel.deferred.promise
.fail(function() { })
.done(_.bind(this.die, this));
this.show();
}
});
var DemonstrationBuilder = ContainedBase.extend({ var DemonstrationBuilder = ContainedBase.extend({
tagName: 'div', tagName: 'div',
className: 'demonstrationBuilder box vertical', className: 'demonstrationBuilder box vertical',
@ -22382,6 +22459,7 @@ exports.MarkdownGrabber = MarkdownGrabber;
exports.DemonstrationBuilder = DemonstrationBuilder; exports.DemonstrationBuilder = DemonstrationBuilder;
exports.TextGrabber = TextGrabber; exports.TextGrabber = TextGrabber;
exports.MultiViewBuilder = MultiViewBuilder; exports.MultiViewBuilder = MultiViewBuilder;
exports.MarkdownPresenter = MarkdownPresenter;
}); });
@ -23150,12 +23228,12 @@ var ConfirmCancelView = ResolveRejectBase.extend({
}, },
initialize: function(options) { initialize: function(options) {
if (!options.destination || !options.deferred) { if (!options.destination) {
throw new Error('needmore'); throw new Error('needmore');
} }
this.destination = options.destination; this.destination = options.destination;
this.deferred = options.deferred; this.deferred = options.deferred || Q.defer();
this.JSON = { this.JSON = {
confirm: options.confirm || 'Confirm', confirm: options.confirm || 'Confirm',
cancel: options.cancel || 'Cancel' cancel: options.cancel || 'Cancel'

View file

@ -293,14 +293,17 @@
<textarea></textarea> <textarea></textarea>
</script> </script>
<script type="text/html" id="markdown-presenter">
<p class="helperText textAlignCenter">
<%= previewText %>
</p>
<textarea><%= fillerText %></textarea>
</script>
<script type="text/html" id="markdown-grabber-view"> <script type="text/html" id="markdown-grabber-view">
<div class="inputSide box vertical"> <div class="inputSide box vertical">
<div class="markdownGrabberInput"> <div class="markdownGrabberInput">
<textarea> <textarea><%= fillerText %></textarea>
## Enter some markdown!
</textarea>
</div> </div>
</div> </div>

View file

@ -20,7 +20,9 @@ var ConfirmCancelTerminal = require('../views').ConfirmCancelTerminal;
var NextLevelConfirm = require('../views').NextLevelConfirm; var NextLevelConfirm = require('../views').NextLevelConfirm;
var LevelToolbar = require('../views').LevelToolbar; var LevelToolbar = require('../views').LevelToolbar;
var MarkdownPresenter = require('../views/builderViews').MarkdownPresenter;
var MultiViewBuilder = require('../views/builderViews').MultiViewBuilder; var MultiViewBuilder = require('../views/builderViews').MultiViewBuilder;
var MarkdownGrabber = require('../views/builderViews').MarkdownGrabber;
var regexMap = { var regexMap = {
'define goal': /^define goal$/, 'define goal': /^define goal$/,
@ -291,6 +293,18 @@ var LevelBuilder = Level.extend({
} }
chain = chain.done(_.bind(function() { chain = chain.done(_.bind(function() {
// ok great! lets just give them the goods
new MarkdownPresenter({
fillerText: JSON.stringify(this.getExportObj(), null, 2),
previewText: 'Here is the JSON for this level! Share it with someone or send it to me on Github!'
});
command.finishWith(deferred);
}, this));
masterDeferred.resolve();
},
getExportObj: function() {
var compiledLevel = _.extend( var compiledLevel = _.extend(
{}, {},
this.level this.level
@ -300,12 +314,7 @@ var LevelBuilder = Level.extend({
if (this.startDialog) { if (this.startDialog) {
compiledLevel.startDialog = this.startDialog; compiledLevel.startDialog = this.startDialog;
} }
console.log(compiledLevel); return compiledLevel;
console.log(this.startDialog);
command.finishWith(deferred);
}, this));
masterDeferred.resolve();
}, },
processLevelBuilderCommand: function(command, deferred) { processLevelBuilderCommand: function(command, deferred) {

View file

@ -57,7 +57,8 @@ var MarkdownGrabber = ContainedBase.extend({
options = options || {}; options = options || {};
this.deferred = options.deferred || Q.defer(); this.deferred = options.deferred || Q.defer();
this.JSON = { this.JSON = {
previewText: options.previewText || 'Preview' previewText: options.previewText || 'Preview',
fillerText: options.fillerText || '## Enter some markdown!\n\n\n'
}; };
this.container = options.container || new ModalTerminal({ this.container = options.container || new ModalTerminal({
@ -127,6 +128,34 @@ var MarkdownGrabber = ContainedBase.extend({
} }
}); });
var MarkdownPresenter = ContainedBase.extend({
tagName: 'div',
className: 'markdownPresenter box vertical',
template: _.template($('#markdown-presenter').html()),
initialize: function(options) {
options = options || {};
this.JSON = {
previewText: options.previewText || 'Here is something for you',
fillerText: options.fillerText || '# Yay'
};
this.container = new ModalTerminal({
title: 'Check this out...'
});
this.render();
var confirmCancel = new Views.ConfirmCancelView({
destination: this.getDestination()
});
confirmCancel.deferred.promise
.fail(function() { })
.done(_.bind(this.die, this));
this.show();
}
});
var DemonstrationBuilder = ContainedBase.extend({ var DemonstrationBuilder = ContainedBase.extend({
tagName: 'div', tagName: 'div',
className: 'demonstrationBuilder box vertical', className: 'demonstrationBuilder box vertical',
@ -334,4 +363,5 @@ exports.MarkdownGrabber = MarkdownGrabber;
exports.DemonstrationBuilder = DemonstrationBuilder; exports.DemonstrationBuilder = DemonstrationBuilder;
exports.TextGrabber = TextGrabber; exports.TextGrabber = TextGrabber;
exports.MultiViewBuilder = MultiViewBuilder; exports.MultiViewBuilder = MultiViewBuilder;
exports.MarkdownPresenter = MarkdownPresenter;

View file

@ -125,12 +125,12 @@ var ConfirmCancelView = ResolveRejectBase.extend({
}, },
initialize: function(options) { initialize: function(options) {
if (!options.destination || !options.deferred) { if (!options.destination) {
throw new Error('needmore'); throw new Error('needmore');
} }
this.destination = options.destination; this.destination = options.destination;
this.deferred = options.deferred; this.deferred = options.deferred || Q.defer();
this.JSON = { this.JSON = {
confirm: options.confirm || 'Confirm', confirm: options.confirm || 'Confirm',
cancel: options.cancel || 'Cancel' cancel: options.cancel || 'Cancel'

View file

@ -788,6 +788,12 @@ div.levelIcon.solved div.index div.indexNum {
/* Git demonstration view, and markdownGrabber */ /* Git demonstration view, and markdownGrabber */
.markdownPresenter textarea {
min-height: 400px;
width: 90%;
margin: 10px;
}
.markdownGrabber { .markdownGrabber {
padding: 10px; padding: 10px;
} }

View file

@ -1,7 +1,7 @@
Big Things Big Things
~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~
[ ] edit dialog
[ ] descriptions for levels? [ ] descriptions for levels?
[ ] import random level
Medium things: Medium things:
~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~
@ -28,6 +28,7 @@ Ideas for cleaning
Done things: Done things:
(I only started this on Dec 17th 2012 to get a better sense of what was done) (I only started this on Dec 17th 2012 to get a better sense of what was done)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[x] edit dialog
[x] level builder dialog builder [x] level builder dialog builder
[x] level builder dialog tester [x] level builder dialog tester
[x] turn off button clicking for demonstration view :O [x] turn off button clicking for demonstration view :O