multiveiw work

This commit is contained in:
Peter Cottle 2012-12-23 13:09:49 -08:00
parent 4eeedfc137
commit cb0a492da6
6 changed files with 185 additions and 8 deletions

View file

@ -13681,6 +13681,68 @@ HeadlessGit.prototype.sendCommand = function(value) {
exports.HeadlessGit = HeadlessGit;
});
require.define("/src/js/views/multiView.js",function(require,module,exports,__dirname,__filename,process,global){var GitError = require('../util/errors').GitError;
var _ = require('underscore');
var Q = require('q');
// horrible hack to get localStorage Backbone plugin
var Backbone = (!require('../util').isBrowser()) ? require('backbone') : window.Backbone;
var ModalTerminal = require('../views').ModalTerminal;
var ContainedBase = require('../views').ContainedBase;
var ConfirmCancelView = require('../views').ConfirmCancelView;
var LeftRightView = require('../views').LeftRightView;
var ModalAlert = require('../views').ModalAlert;
var MultiView = Backbone.View.extend({
tagName: 'div',
className: 'multiView',
typeToConstructor: {
ModalAlert: ModalAlert
},
initialize: function(options) {
options = options || {};
if (!options.childViews) {
options.childViews = [{
type: 'ModalAlert',
options: {
markdown: 'Woah wtf!!'
}
}, {
type: 'ModalAlert',
options: {
markdown: 'Im second'
}
}];
}
this.childViewJSONs = options.childViews;
this.childViews = [];
this.render();
},
createChildView: function(viewJSON) {
var type = viewJSON.type;
if (!this.typeToConstructor[type]) {
throw new Error('wut');
}
var view = new this.typeToConstructor[type](viewJSON.options);
this.childViews.push(view);
view.show();
},
render: function() {
// go through each and render... show the first
_.each(this.childViewJSONs, function(childView) {
this.createChildView(childView);
}, this);
}
});
exports.MultiView = MultiView;
});
require.define("/src/js/app/index.js",function(require,module,exports,__dirname,__filename,process,global){var _ = require('underscore');
@ -16167,7 +16229,8 @@ var toGlobalize = {
HeadLess: require('../git/headless'),
Q: { Q: require('q') },
RebaseView: require('../views/rebaseView'),
Views: require('../views')
Views: require('../views'),
MultiView: require('../views/multiView')
};
_.each(toGlobalize, function(module) {
@ -16858,18 +16921,63 @@ require("/src/js/views/index.js");
require.define("/src/js/views/multiView.js",function(require,module,exports,__dirname,__filename,process,global){var GitError = require('../util/errors').GitError;
var _ = require('underscore');
var Backbone = require('backbone');
var Q = require('q');
// horrible hack to get localStorage Backbone plugin
var Backbone = (!require('../util').isBrowser()) ? require('backbone') : window.Backbone;
var ModalTerminal = require('../views').ModalTerminal;
var ContainedBase = require('../views').ContainedBase;
var ConfirmCancelView = require('../views').ConfirmCancelView;
var LeftRightView = require('../views').LeftRightView;
var ModalAlert = require('../views').ModalAlert;
var MultiView = Backbone.View.extend({
tagName: 'div',
className: 'multiView',
typeToConstructor: {
ModalAlert: ModalAlert
},
initialize: function(options) {
options = options || {};
if (!options.childViews) {
options.childViews = [{
type: 'ModalAlert',
options: {
markdown: 'Woah wtf!!'
}
}, {
type: 'ModalAlert',
options: {
markdown: 'Im second'
}
}];
}
this.childViewJSONs = options.childViews;
this.childViews = [];
this.render();
},
createChildView: function(viewJSON) {
var type = viewJSON.type;
if (!this.typeToConstructor[type]) {
throw new Error('wut');
}
var view = new this.typeToConstructor[type](viewJSON.options);
this.childViews.push(view);
view.show();
},
render: function() {
// go through each and render... show the first
_.each(this.childViewJSONs, function(childView) {
this.createChildView(childView);
}, this);
}
});
exports.MultiView = MultiView;
})
});
require("/src/js/views/multiView.js");

View file

@ -100,7 +100,7 @@
<div class="box flex1">
</div>
<div class="terminal-window-holder box flex3 vertical">
<div class="terminal-window-holder box flex3 vertical transitionTransform">
<div class="toolbar box vertical">
<div class="controls box horizontal">
<div class="box flex1">

View file

@ -14,7 +14,8 @@ var toGlobalize = {
HeadLess: require('../git/headless'),
Q: { Q: require('q') },
RebaseView: require('../views/rebaseView'),
Views: require('../views')
Views: require('../views'),
MultiView: require('../views/multiView')
};
_.each(toGlobalize, function(module) {

View file

@ -1,14 +1,59 @@
var GitError = require('../util/errors').GitError;
var _ = require('underscore');
var Backbone = require('backbone');
var Q = require('q');
// horrible hack to get localStorage Backbone plugin
var Backbone = (!require('../util').isBrowser()) ? require('backbone') : window.Backbone;
var ModalTerminal = require('../views').ModalTerminal;
var ContainedBase = require('../views').ContainedBase;
var ConfirmCancelView = require('../views').ConfirmCancelView;
var LeftRightView = require('../views').LeftRightView;
var ModalAlert = require('../views').ModalAlert;
var MultiView = Backbone.View.extend({
tagName: 'div',
className: 'multiView',
typeToConstructor: {
ModalAlert: ModalAlert
},
initialize: function(options) {
options = options || {};
if (!options.childViews) {
options.childViews = [{
type: 'ModalAlert',
options: {
markdown: 'Woah wtf!!'
}
}, {
type: 'ModalAlert',
options: {
markdown: 'Im second'
}
}];
}
this.childViewJSONs = options.childViews;
this.childViews = [];
this.render();
},
createChildView: function(viewJSON) {
var type = viewJSON.type;
if (!this.typeToConstructor[type]) {
throw new Error('wut');
}
var view = new this.typeToConstructor[type](viewJSON.options);
this.childViews.push(view);
view.show();
},
render: function() {
// go through each and render... show the first
_.each(this.childViewJSONs, function(childView) {
this.createChildView(childView);
}, this);
}
});
exports.MultiView = MultiView;
})

View file

@ -6,6 +6,8 @@ body {
margin: 0px;
border: 0px;
padding: 0px;
-webkit-perspective: 800;
-webkit-perspective-origin: 50% 225px;
}
html, body {
@ -66,6 +68,14 @@ body,
transition: background 700ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
}
.transitionTransform {
-webkit-transition: -webkit-transform 700ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-moz-transition: -moz-transform 700ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-ms-transition: -ms-transform 700ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-o-transition: -o-transform 700ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
transition: transform 700ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
}
.transitionOpacity {
-webkit-transition: opacity 700ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-moz-transition: opacity 700ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
@ -407,6 +417,7 @@ li.rebaseEntry.notPicked {
position: fixed;
top: 0px;
left: 0px;
-webkit-transform-style: preserve-3d;
background: rgba(0, 0, 0, 0.6);
-webkit-box-shadow: inset 0px 0px 100px rgba(0, 0, 0, 0.9);

View file

@ -4,11 +4,23 @@ Big things:
Big Graphic things:
~~~~~~~~~~~~~~~~~~~~~~~~~
[ ] promise-based dialogs
[.] multiViews with multiple terminals...
[ ] 3d transition between terminals (reveal.JS hakim)
Medium things:
~~~~~~~~~~~~~~~~~~~~~~~~~~~
Views
=========
[ ] allow views to have optional "with" view that gets appended afterwards
[ ] multiview makes all these arrow views which fire events
[ ] debounce the forward and back methods
[ ] there! that should be good enough
Commands
========
[ ] refactor some kind of
Small things to implement:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~