click handlers

This commit is contained in:
Peter Cottle 2012-12-25 17:31:34 -08:00
parent 9ddfaf2f18
commit ee02aea414
6 changed files with 65 additions and 18 deletions

View file

@ -11667,8 +11667,9 @@ var CommandPromptView = Backbone.View.extend({
}, },
submitValue: function(value) { submitValue: function(value) {
// we should add if it's not a blank line and this is a new command... // we should add the command to our local storage history
// or if we edited the command // if it's not a blank line and this is a new command...
// or if we edited the command in place
var shouldAdd = (value.length && this.index == -1) || var shouldAdd = (value.length && this.index == -1) ||
((value.length && this.index !== -1 && ((value.length && this.index !== -1 &&
this.commands.toArray()[this.index].get('text') !== value)); this.commands.toArray()[this.index].get('text') !== value));
@ -11700,7 +11701,6 @@ var CommandPromptView = Backbone.View.extend({
} }
}); });
// This is the view for all commands -- it will represent // This is the view for all commands -- it will represent
// their status (inqueue, processing, finished, error), // their status (inqueue, processing, finished, error),
// their value ("git commit --amend"), // their value ("git commit --amend"),
@ -11831,7 +11831,6 @@ var CommandLineHistoryView = Backbone.View.extend({
exports.CommandPromptView = CommandPromptView; exports.CommandPromptView = CommandPromptView;
exports.CommandLineHistoryView = CommandLineHistoryView; exports.CommandLineHistoryView = CommandLineHistoryView;
}); });
require.define("/src/js/util/keyboard.js",function(require,module,exports,__dirname,__filename,process,global){var _ = require('underscore'); require.define("/src/js/util/keyboard.js",function(require,module,exports,__dirname,__filename,process,global){var _ = require('underscore');
@ -12962,12 +12961,13 @@ var VisNode = VisBase.extend({
}, },
attachClickHandlers: function() { attachClickHandlers: function() {
var commandStr = 'git show ' + this.get('commit').get('id'); var commandStr = 'git checkout ' + this.get('commit').get('id');
var Main = require('../app'); var Main = require('../app');
_.each([this.get('circle'), this.get('text')], function(rObj) { _.each([this.get('circle'), this.get('text')], function(rObj) {
rObj.click(function() { rObj.click(function() {
Main.getEvents().trigger('processCommandFromEvent', commandStr); Main.getEvents().trigger('processCommandFromEvent', commandStr);
}); });
$(rObj.node).css('cursor', 'pointer');
}); });
}, },
@ -13437,10 +13437,24 @@ var VisBranch = VisBase.extend({
.attr(this.getAttributes().arrow); .attr(this.getAttributes().arrow);
this.set('arrow', arrow); this.set('arrow', arrow);
this.attachClickHandlers();
rect.toFront(); rect.toFront();
text.toFront(); text.toFront();
}, },
attachClickHandlers: function() {
var commandStr = 'git checkout ' + this.get('branch').get('id');
var Main = require('../app');
var objs = [this.get('rect'), this.get('text'), this.get('arrow')];
_.each(objs, function(rObj) {
rObj.click(function() {
Main.getEvents().trigger('processCommandFromEvent', commandStr);
});
$(rObj.node).css('cursor', 'pointer');
});
},
updateName: function() { updateName: function() {
this.get('text').attr({ this.get('text').attr({
text: this.getName() text: this.getName()
@ -13913,13 +13927,14 @@ var MultiView = Backbone.View.extend({
// other views will take if they need to // other views will take if they need to
this.keyboardListener.mute(); this.keyboardListener.mute();
require('../app').getUI().modalEnd(); require('../app').getUI().modalEnd();
this.deferred.resolve();
setTimeout(_.bind(function() { setTimeout(_.bind(function() {
_.each(this.childViews, function(childView) { _.each(this.childViews, function(childView) {
childView.tearDown(); childView.tearDown();
}); });
}, this), this.deathTime); }, this), this.deathTime);
this.deferred.resolve();
}, },
start: function() { start: function() {
@ -16860,8 +16875,9 @@ var CommandPromptView = Backbone.View.extend({
}, },
submitValue: function(value) { submitValue: function(value) {
// we should add if it's not a blank line and this is a new command... // we should add the command to our local storage history
// or if we edited the command // if it's not a blank line and this is a new command...
// or if we edited the command in place
var shouldAdd = (value.length && this.index == -1) || var shouldAdd = (value.length && this.index == -1) ||
((value.length && this.index !== -1 && ((value.length && this.index !== -1 &&
this.commands.toArray()[this.index].get('text') !== value)); this.commands.toArray()[this.index].get('text') !== value));
@ -16893,7 +16909,6 @@ var CommandPromptView = Backbone.View.extend({
} }
}); });
// This is the view for all commands -- it will represent // This is the view for all commands -- it will represent
// their status (inqueue, processing, finished, error), // their status (inqueue, processing, finished, error),
// their value ("git commit --amend"), // their value ("git commit --amend"),
@ -17024,7 +17039,6 @@ var CommandLineHistoryView = Backbone.View.extend({
exports.CommandPromptView = CommandPromptView; exports.CommandPromptView = CommandPromptView;
exports.CommandLineHistoryView = CommandLineHistoryView; exports.CommandLineHistoryView = CommandLineHistoryView;
}); });
require("/src/js/views/commandViews.js"); require("/src/js/views/commandViews.js");
@ -17367,13 +17381,14 @@ var MultiView = Backbone.View.extend({
// other views will take if they need to // other views will take if they need to
this.keyboardListener.mute(); this.keyboardListener.mute();
require('../app').getUI().modalEnd(); require('../app').getUI().modalEnd();
this.deferred.resolve();
setTimeout(_.bind(function() { setTimeout(_.bind(function() {
_.each(this.childViews, function(childView) { _.each(this.childViews, function(childView) {
childView.tearDown(); childView.tearDown();
}); });
}, this), this.deathTime); }, this), this.deathTime);
this.deferred.resolve();
}, },
start: function() { start: function() {
@ -19049,10 +19064,24 @@ var VisBranch = VisBase.extend({
.attr(this.getAttributes().arrow); .attr(this.getAttributes().arrow);
this.set('arrow', arrow); this.set('arrow', arrow);
this.attachClickHandlers();
rect.toFront(); rect.toFront();
text.toFront(); text.toFront();
}, },
attachClickHandlers: function() {
var commandStr = 'git checkout ' + this.get('branch').get('id');
var Main = require('../app');
var objs = [this.get('rect'), this.get('text'), this.get('arrow')];
_.each(objs, function(rObj) {
rObj.click(function() {
Main.getEvents().trigger('processCommandFromEvent', commandStr);
});
$(rObj.node).css('cursor', 'pointer');
});
},
updateName: function() { updateName: function() {
this.get('text').attr({ this.get('text').attr({
text: this.getName() text: this.getName()
@ -19651,12 +19680,13 @@ var VisNode = VisBase.extend({
}, },
attachClickHandlers: function() { attachClickHandlers: function() {
var commandStr = 'git show ' + this.get('commit').get('id'); var commandStr = 'git checkout ' + this.get('commit').get('id');
var Main = require('../app'); var Main = require('../app');
_.each([this.get('circle'), this.get('text')], function(rObj) { _.each([this.get('circle'), this.get('text')], function(rObj) {
rObj.click(function() { rObj.click(function() {
Main.getEvents().trigger('processCommandFromEvent', commandStr); Main.getEvents().trigger('processCommandFromEvent', commandStr);
}); });
$(rObj.node).css('cursor', 'pointer');
}); });
}, },

View file

@ -227,8 +227,9 @@ var CommandPromptView = Backbone.View.extend({
}, },
submitValue: function(value) { submitValue: function(value) {
// we should add if it's not a blank line and this is a new command... // we should add the command to our local storage history
// or if we edited the command // if it's not a blank line and this is a new command...
// or if we edited the command in place
var shouldAdd = (value.length && this.index == -1) || var shouldAdd = (value.length && this.index == -1) ||
((value.length && this.index !== -1 && ((value.length && this.index !== -1 &&
this.commands.toArray()[this.index].get('text') !== value)); this.commands.toArray()[this.index].get('text') !== value));
@ -260,7 +261,6 @@ var CommandPromptView = Backbone.View.extend({
} }
}); });
// This is the view for all commands -- it will represent // This is the view for all commands -- it will represent
// their status (inqueue, processing, finished, error), // their status (inqueue, processing, finished, error),
// their value ("git commit --amend"), // their value ("git commit --amend"),
@ -390,4 +390,3 @@ var CommandLineHistoryView = Backbone.View.extend({
exports.CommandPromptView = CommandPromptView; exports.CommandPromptView = CommandPromptView;
exports.CommandLineHistoryView = CommandLineHistoryView; exports.CommandLineHistoryView = CommandLineHistoryView;

View file

@ -121,13 +121,14 @@ var MultiView = Backbone.View.extend({
// other views will take if they need to // other views will take if they need to
this.keyboardListener.mute(); this.keyboardListener.mute();
require('../app').getUI().modalEnd(); require('../app').getUI().modalEnd();
this.deferred.resolve();
setTimeout(_.bind(function() { setTimeout(_.bind(function() {
_.each(this.childViews, function(childView) { _.each(this.childViews, function(childView) {
childView.tearDown(); childView.tearDown();
}); });
}, this), this.deathTime); }, this), this.deathTime);
this.deferred.resolve();
}, },
start: function() { start: function() {

View file

@ -307,10 +307,24 @@ var VisBranch = VisBase.extend({
.attr(this.getAttributes().arrow); .attr(this.getAttributes().arrow);
this.set('arrow', arrow); this.set('arrow', arrow);
this.attachClickHandlers();
rect.toFront(); rect.toFront();
text.toFront(); text.toFront();
}, },
attachClickHandlers: function() {
var commandStr = 'git checkout ' + this.get('branch').get('id');
var Main = require('../app');
var objs = [this.get('rect'), this.get('text'), this.get('arrow')];
_.each(objs, function(rObj) {
rObj.click(function() {
Main.getEvents().trigger('processCommandFromEvent', commandStr);
});
$(rObj.node).css('cursor', 'pointer');
});
},
updateName: function() { updateName: function() {
this.get('text').attr({ this.get('text').attr({
text: this.getName() text: this.getName()

View file

@ -314,12 +314,13 @@ var VisNode = VisBase.extend({
}, },
attachClickHandlers: function() { attachClickHandlers: function() {
var commandStr = 'git show ' + this.get('commit').get('id'); var commandStr = 'git checkout ' + this.get('commit').get('id');
var Main = require('../app'); var Main = require('../app');
_.each([this.get('circle'), this.get('text')], function(rObj) { _.each([this.get('circle'), this.get('text')], function(rObj) {
rObj.click(function() { rObj.click(function() {
Main.getEvents().trigger('processCommandFromEvent', commandStr); Main.getEvents().trigger('processCommandFromEvent', commandStr);
}); });
$(rObj.node).css('cursor', 'pointer');
}); });
}, },

View file

@ -12,6 +12,7 @@ Commands
======== ========
[ ] sip from buffer with post-command hooks. ideally the git engine [ ] sip from buffer with post-command hooks. ideally the git engine
knows nothing about the level being played knows nothing about the level being played
[ ] refactor 'processCommand'
[ ] text input from the commandPromptView must flow down into [ ] text input from the commandPromptView must flow down into
filters. no hacky stuff anymore where it's part of the option parser, filters. no hacky stuff anymore where it's part of the option parser,
wtf wtf
@ -34,6 +35,7 @@ Big Bugs to fix:
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] better click events on branches and commits
[x] change to returning a promise for multiview [x] change to returning a promise for multiview
[x] multiViews with multiple terminals... [x] multiViews with multiple terminals...
[x] debounce the forward and back methods [x] debounce the forward and back methods