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

@ -20,7 +20,9 @@ var ConfirmCancelTerminal = require('../views').ConfirmCancelTerminal;
var NextLevelConfirm = require('../views').NextLevelConfirm;
var LevelToolbar = require('../views').LevelToolbar;
var MarkdownPresenter = require('../views/builderViews').MarkdownPresenter;
var MultiViewBuilder = require('../views/builderViews').MultiViewBuilder;
var MarkdownGrabber = require('../views/builderViews').MarkdownGrabber;
var regexMap = {
'define goal': /^define goal$/,
@ -291,23 +293,30 @@ var LevelBuilder = Level.extend({
}
chain = chain.done(_.bind(function() {
var compiledLevel = _.extend(
{},
this.level
);
// the start dialog now is just our help intro thing
delete compiledLevel.startDialog;
if (this.startDialog) {
compiledLevel.startDialog = this.startDialog;
}
console.log(compiledLevel);
console.log(this.startDialog);
// 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(
{},
this.level
);
// the start dialog now is just our help intro thing
delete compiledLevel.startDialog;
if (this.startDialog) {
compiledLevel.startDialog = this.startDialog;
}
return compiledLevel;
},
processLevelBuilderCommand: function(command, deferred) {
var methodMap = {
'define goal': this.defineGoal,

View file

@ -57,7 +57,8 @@ var MarkdownGrabber = ContainedBase.extend({
options = options || {};
this.deferred = options.deferred || Q.defer();
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({
@ -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({
tagName: 'div',
className: 'demonstrationBuilder box vertical',
@ -334,4 +363,5 @@ exports.MarkdownGrabber = MarkdownGrabber;
exports.DemonstrationBuilder = DemonstrationBuilder;
exports.TextGrabber = TextGrabber;
exports.MultiViewBuilder = MultiViewBuilder;
exports.MarkdownPresenter = MarkdownPresenter;

View file

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