diff --git a/build/bundle.js b/build/bundle.js
index 2b63e4dd..4bdaacb5 100644
--- a/build/bundle.js
+++ b/build/bundle.js
@@ -5650,12 +5650,11 @@ GitEngine.prototype.rebaseInteractive = function(targetSource, currentLocation)
}, this))
.done();
- var InteractiveRebaseView = require('../views/miscViews').InteractiveRebaseView;
+ var InteractiveRebaseView = require('../views/rebaseView').InteractiveRebaseView;
// interactive rebase view will reject or resolve our promise
new InteractiveRebaseView({
deferred: deferred,
- toRebase: toRebase,
- el: $('#dialogHolder')
+ toRebase: toRebase
});
};
@@ -8434,7 +8433,7 @@ var GitError = exports.GitError = MyError.extend({
});
-require.define("/src/js/views/miscViews.js",function(require,module,exports,__dirname,__filename,process,global){var GitError = require('../util/errors').GitError;
+require.define("/src/js/views/rebaseView.js",function(require,module,exports,__dirname,__filename,process,global){var GitError = require('../util/errors').GitError;
var _ = require('underscore');
// horrible hack to get localStorage Backbone plugin
var Backbone = (!require('../util').isBrowser()) ? Backbone = require('backbone') : Backbone = window.Backbone;
@@ -8585,7 +8584,6 @@ var RebaseEntryView = Backbone.View.extend({
exports.InteractiveRebaseView = InteractiveRebaseView;
-
});
require.define("/src/js/models/commandModel.js",function(require,module,exports,__dirname,__filename,process,global){var _ = require('underscore');
@@ -11320,6 +11318,57 @@ HeadlessGit.prototype.sendCommand = function(value) {
exports.HeadlessGit = HeadlessGit;
+});
+
+require.define("/src/js/views/index.js",function(require,module,exports,__dirname,__filename,process,global){var GitError = require('../util/errors').GitError;
+var _ = require('underscore');
+// horrible hack to get localStorage Backbone plugin
+var Backbone = (!require('../util').isBrowser()) ? require('backbone') : window.Backbone;
+
+var ModalView = Backbone.View.extend({
+ tagName: 'div',
+ className: 'modalView box horizontal center transitionOpacity',
+ template: _.template($('#modal-view-template').html()),
+
+ initialize: function(options) {
+ this.render();
+ },
+
+ render: function() {
+ // add ourselves to the DOM
+ this.$el.html(this.template({}));
+ $('body').append(this.el);
+ console.log(this.el);
+ var _this = this;
+ setTimeout(function() {
+ _this.show();
+ }, 1050);
+ },
+
+ show: function() {
+ this.display(true);
+ },
+
+ hide: function() {
+ this.display(false);
+ },
+
+ getInsideElement: function() {
+ return this.$('.contentHolder');
+ },
+
+ display: function(value) {
+ this.$el.toggleClass('show', value);
+ },
+
+ tearDown: function() {
+ this.hide();
+ }
+});
+
+exports.ModalView = ModalView;
+
+
});
require.define("/src/js/app/index.js",function(require,module,exports,__dirname,__filename,process,global){var _ = require('underscore');
@@ -12485,12 +12534,11 @@ GitEngine.prototype.rebaseInteractive = function(targetSource, currentLocation)
}, this))
.done();
- var InteractiveRebaseView = require('../views/miscViews').InteractiveRebaseView;
+ var InteractiveRebaseView = require('../views/rebaseView').InteractiveRebaseView;
// interactive rebase view will reject or resolve our promise
new InteractiveRebaseView({
deferred: deferred,
- toRebase: toRebase,
- el: $('#dialogHolder')
+ toRebase: toRebase
});
};
@@ -13805,7 +13853,9 @@ var toGlobalize = {
AnimationFactory: require('../visuals/animation/animationFactory'),
Main: require('../app'),
HeadLess: require('../git/headless'),
- Q: { Q: require('q') }
+ Q: { Q: require('q') },
+ RebaseView: require('../views/rebaseView'),
+ Views: require('../views')
};
_.each(toGlobalize, function(module) {
@@ -14306,6 +14356,58 @@ exports.CommandLineHistoryView = CommandLineHistoryView;
});
require("/src/js/views/commandViews.js");
+require.define("/src/js/views/index.js",function(require,module,exports,__dirname,__filename,process,global){var GitError = require('../util/errors').GitError;
+var _ = require('underscore');
+// horrible hack to get localStorage Backbone plugin
+var Backbone = (!require('../util').isBrowser()) ? require('backbone') : window.Backbone;
+
+var ModalView = Backbone.View.extend({
+ tagName: 'div',
+ className: 'modalView box horizontal center transitionOpacity',
+ template: _.template($('#modal-view-template').html()),
+
+ initialize: function(options) {
+ this.render();
+ },
+
+ render: function() {
+ // add ourselves to the DOM
+ this.$el.html(this.template({}));
+ $('body').append(this.el);
+ console.log(this.el);
+ var _this = this;
+ setTimeout(function() {
+ _this.show();
+ }, 1050);
+ },
+
+ show: function() {
+ this.display(true);
+ },
+
+ hide: function() {
+ this.display(false);
+ },
+
+ getInsideElement: function() {
+ return this.$('.contentHolder');
+ },
+
+ display: function(value) {
+ this.$el.toggleClass('show', value);
+ },
+
+ tearDown: function() {
+ this.hide();
+ }
+});
+
+exports.ModalView = ModalView;
+
+
+});
+require("/src/js/views/index.js");
+
require.define("/src/js/views/miscViews.js",function(require,module,exports,__dirname,__filename,process,global){var GitError = require('../util/errors').GitError;
var _ = require('underscore');
// horrible hack to get localStorage Backbone plugin
@@ -14457,10 +14559,163 @@ var RebaseEntryView = Backbone.View.extend({
exports.InteractiveRebaseView = InteractiveRebaseView;
-
});
require("/src/js/views/miscViews.js");
+require.define("/src/js/views/rebaseView.js",function(require,module,exports,__dirname,__filename,process,global){var GitError = require('../util/errors').GitError;
+var _ = require('underscore');
+// horrible hack to get localStorage Backbone plugin
+var Backbone = (!require('../util').isBrowser()) ? Backbone = require('backbone') : Backbone = window.Backbone;
+
+var InteractiveRebaseView = Backbone.View.extend({
+ tagName: 'div',
+ template: _.template($('#interactive-rebase-template').html()),
+
+ events: {
+ 'click #confirmButton': 'confirmed'
+ },
+
+ initialize: function(options) {
+ this.hasClicked = false;
+ this.deferred = options.deferred;
+
+ this.rebaseArray = options.toRebase;
+
+ this.rebaseEntries = new RebaseEntryCollection();
+ this.rebaseMap = {};
+ this.entryObjMap = {};
+
+ this.rebaseArray.reverse();
+ // make basic models for each commit
+ _.each(this.rebaseArray, function(commit) {
+ var id = commit.get('id');
+ this.rebaseMap[id] = commit;
+ this.entryObjMap[id] = new RebaseEntry({
+ id: id
+ });
+ this.rebaseEntries.add(this.entryObjMap[id]);
+ }, this);
+
+ this.render();
+
+ // show the dialog holder
+ this.show();
+ },
+
+ show: function() {
+ this.toggleVisibility(true);
+ },
+
+ hide: function() {
+ this.toggleVisibility(false);
+ },
+
+ toggleVisibility: function(toggle) {
+ this.$el.toggleClass('shown', toggle);
+ },
+
+ confirmed: function() {
+ // we hide the dialog anyways, but they might be fast clickers
+ if (this.hasClicked) {
+ return;
+ }
+ this.hasClicked = true;
+
+ // first of all hide
+ this.$('#iRebaseDialog').css('display', 'none');
+ this.hide();
+
+ // get our ordering
+ var uiOrder = [];
+ this.$('ul#rebaseEntries li').each(function(i, obj) {
+ uiOrder.push(obj.id);
+ });
+
+ // now get the real array
+ var toRebase = [];
+ _.each(uiOrder, function(id) {
+ // the model
+ if (this.entryObjMap[id].get('pick')) {
+ toRebase.unshift(this.rebaseMap[id]);
+ }
+ }, this);
+
+ this.deferred.resolve(toRebase);
+ // garbage collection will get us
+ this.$el.html('');
+ },
+
+ render: function() {
+ var json = {
+ num: this.rebaseArray.length
+ };
+
+ this.$el.html(this.template(json));
+
+ // also render each entry
+ var listHolder = this.$('ul#rebaseEntries');
+ this.rebaseEntries.each(function(entry) {
+ new RebaseEntryView({
+ el: listHolder,
+ model: entry
+ });
+ }, this);
+
+ // then make it reorderable..
+ listHolder.sortable({
+ distance: 5,
+ placeholder: 'ui-state-highlight'
+ });
+ }
+});
+
+var RebaseEntry = Backbone.Model.extend({
+ defaults: {
+ pick: true
+ },
+
+ toggle: function() {
+ this.set('pick', !this.get('pick'));
+ }
+});
+
+var RebaseEntryCollection = Backbone.Collection.extend({
+ model: RebaseEntry
+});
+
+var RebaseEntryView = Backbone.View.extend({
+ tagName: 'li',
+ template: _.template($('#interactive-rebase-entry-template').html()),
+
+ toggle: function() {
+ this.model.toggle();
+
+ // toggle a class also
+ this.listEntry.toggleClass('notPicked', !this.model.get('pick'));
+ },
+
+ initialize: function(options) {
+ this.render();
+ },
+
+ render: function() {
+ var json = this.model.toJSON();
+ this.$el.append(this.template(this.model.toJSON()));
+
+ // hacky :( who would have known jquery barfs on ids with %'s and quotes
+ this.listEntry = this.$el.children(':last');
+
+ this.listEntry.delegate('#toggleButton', 'click', _.bind(function() {
+ this.toggle();
+ }, this));
+ }
+});
+
+exports.InteractiveRebaseView = InteractiveRebaseView;
+
+});
+require("/src/js/views/rebaseView.js");
+
require.define("/src/js/visuals/animation/animationFactory.js",function(require,module,exports,__dirname,__filename,process,global){var _ = require('underscore');
var Backbone = require('backbone');
diff --git a/src/index.html b/src/index.html
index 34662689..6708165b 100644
--- a/src/index.html
+++ b/src/index.html
@@ -93,6 +93,36 @@
+
+
+
+