mirror of
https://github.com/pcottle/learnGitBranching.git
synced 2025-06-29 17:27:22 +02:00
light refactoring download animate was lame actually
This commit is contained in:
parent
0aadae766f
commit
542d68a975
3 changed files with 112 additions and 37 deletions
118
build/bundle.js
118
build/bundle.js
|
@ -6742,6 +6742,10 @@ var Commands = {
|
||||||
return commandConfig[name].regex;
|
return commandConfig[name].regex;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
isCommandSupported: function(name) {
|
||||||
|
return !!commandConfig[name];
|
||||||
|
},
|
||||||
|
|
||||||
getShortcutMap: function() {
|
getShortcutMap: function() {
|
||||||
var map = {};
|
var map = {};
|
||||||
this.loop(function(config, name) {
|
this.loop(function(config, name) {
|
||||||
|
@ -6753,6 +6757,20 @@ var Commands = {
|
||||||
return map;
|
return map;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
getOptionMap: function() {
|
||||||
|
var optionMap = {};
|
||||||
|
this.loop(function(config, name) {
|
||||||
|
var displayName = config.displayName || name;
|
||||||
|
var thisMap = {};
|
||||||
|
// start all options off as disabled
|
||||||
|
_.each(config.options, function(option) {
|
||||||
|
thisMap[option] = false;
|
||||||
|
});
|
||||||
|
optionMap[displayName] = thisMap;
|
||||||
|
});
|
||||||
|
return optionMap;
|
||||||
|
},
|
||||||
|
|
||||||
getRegexMap: function() {
|
getRegexMap: function() {
|
||||||
var map = {};
|
var map = {};
|
||||||
this.loop(function(config, name) {
|
this.loop(function(config, name) {
|
||||||
|
@ -9951,6 +9969,7 @@ var PromiseAnimation = Backbone.Model.extend({
|
||||||
throw new Error('need closure or animation');
|
throw new Error('need closure or animation');
|
||||||
}
|
}
|
||||||
this.set('closure', options.closure || options.animation);
|
this.set('closure', options.closure || options.animation);
|
||||||
|
this.set('duration', options.duration || this.get('duration'));
|
||||||
this.set('deferred', options.deferred || Q.defer());
|
this.set('deferred', options.deferred || Q.defer());
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -14048,8 +14067,7 @@ var instantCommands = [
|
||||||
intl.str('git-supported-commands'),
|
intl.str('git-supported-commands'),
|
||||||
'<br/>'
|
'<br/>'
|
||||||
];
|
];
|
||||||
var commands = CommandOptionParser.prototype.getMasterOptionMap();
|
var commands = Commands.getOptionMap();
|
||||||
|
|
||||||
// build up a nice display of what we support
|
// build up a nice display of what we support
|
||||||
_.each(commands, function(commandOptions, command) {
|
_.each(commands, function(commandOptions, command) {
|
||||||
lines.push('git ' + command);
|
lines.push('git ' + command);
|
||||||
|
@ -14104,7 +14122,7 @@ function CommandOptionParser(method, options) {
|
||||||
this.method = method;
|
this.method = method;
|
||||||
this.rawOptions = options;
|
this.rawOptions = options;
|
||||||
|
|
||||||
this.supportedMap = this.getMasterOptionMap()[method];
|
this.supportedMap = Commands.getOptionMap()[method];
|
||||||
if (this.supportedMap === undefined) {
|
if (this.supportedMap === undefined) {
|
||||||
throw new Error('No option map for ' + method);
|
throw new Error('No option map for ' + method);
|
||||||
}
|
}
|
||||||
|
@ -14113,11 +14131,6 @@ function CommandOptionParser(method, options) {
|
||||||
this.explodeAndSet();
|
this.explodeAndSet();
|
||||||
}
|
}
|
||||||
|
|
||||||
CommandOptionParser.prototype.getMasterOptionMap = function() {
|
|
||||||
// need to copy -- also ugly
|
|
||||||
return JSON.parse(JSON.stringify(optionMap));
|
|
||||||
};
|
|
||||||
|
|
||||||
var optionMap = {};
|
var optionMap = {};
|
||||||
Commands.loop(function(config, name) {
|
Commands.loop(function(config, name) {
|
||||||
var displayName = config.displayName || name;
|
var displayName = config.displayName || name;
|
||||||
|
@ -16465,6 +16478,16 @@ var VisNode = VisBase.extend({
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
|
||||||
|
animatePositionTo: function(visNode, speed, easing) {
|
||||||
|
var attributes = this.getAttributes();
|
||||||
|
var destAttributes = visNode.getAttributes();
|
||||||
|
|
||||||
|
// TODO make not hardcoded
|
||||||
|
attributes.circle = destAttributes.circle;
|
||||||
|
attributes.text = destAttributes.text;
|
||||||
|
this.animateToAttr(attributes, speed, easing);
|
||||||
|
},
|
||||||
|
|
||||||
highlightTo: function(visObj, speed, easing) {
|
highlightTo: function(visObj, speed, easing) {
|
||||||
// a small function to highlight the color of a node for demonstration purposes
|
// a small function to highlight the color of a node for demonstration purposes
|
||||||
var color = visObj.get('fill');
|
var color = visObj.get('fill');
|
||||||
|
@ -16744,19 +16767,25 @@ var VisNode = VisBase.extend({
|
||||||
return stepFunc;
|
return stepFunc;
|
||||||
},
|
},
|
||||||
|
|
||||||
genGraphics: function() {
|
makeCircle: function(paper) {
|
||||||
var paper = this.gitVisuals.paper;
|
|
||||||
|
|
||||||
var pos = this.getScreenCoords();
|
var pos = this.getScreenCoords();
|
||||||
var textPos = this.getTextScreenCoords();
|
return paper.circle(
|
||||||
|
|
||||||
var circle = paper.circle(
|
|
||||||
pos.x,
|
pos.x,
|
||||||
pos.y,
|
pos.y,
|
||||||
this.getRadius()
|
this.getRadius()
|
||||||
).attr(this.getAttributes().circle);
|
).attr(this.getAttributes().circle);
|
||||||
|
},
|
||||||
|
|
||||||
|
makeText: function(paper) {
|
||||||
|
var textPos = this.getTextScreenCoords();
|
||||||
|
return paper.text(textPos.x, textPos.y, String(this.get('id')));
|
||||||
|
},
|
||||||
|
|
||||||
|
genGraphics: function() {
|
||||||
|
var paper = this.gitVisuals.paper;
|
||||||
|
var circle = this.makeCircle(paper);
|
||||||
|
var text = this.makeText(paper);
|
||||||
|
|
||||||
var text = paper.text(textPos.x, textPos.y, String(this.get('id')));
|
|
||||||
text.attr({
|
text.attr({
|
||||||
'font-size': this.getFontSize(this.get('id')),
|
'font-size': this.getFontSize(this.get('id')),
|
||||||
'font-weight': 'bold',
|
'font-weight': 'bold',
|
||||||
|
@ -23131,6 +23160,10 @@ var Commands = {
|
||||||
return commandConfig[name].regex;
|
return commandConfig[name].regex;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
isCommandSupported: function(name) {
|
||||||
|
return !!commandConfig[name];
|
||||||
|
},
|
||||||
|
|
||||||
getShortcutMap: function() {
|
getShortcutMap: function() {
|
||||||
var map = {};
|
var map = {};
|
||||||
this.loop(function(config, name) {
|
this.loop(function(config, name) {
|
||||||
|
@ -23142,6 +23175,20 @@ var Commands = {
|
||||||
return map;
|
return map;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
getOptionMap: function() {
|
||||||
|
var optionMap = {};
|
||||||
|
this.loop(function(config, name) {
|
||||||
|
var displayName = config.displayName || name;
|
||||||
|
var thisMap = {};
|
||||||
|
// start all options off as disabled
|
||||||
|
_.each(config.options, function(option) {
|
||||||
|
thisMap[option] = false;
|
||||||
|
});
|
||||||
|
optionMap[displayName] = thisMap;
|
||||||
|
});
|
||||||
|
return optionMap;
|
||||||
|
},
|
||||||
|
|
||||||
getRegexMap: function() {
|
getRegexMap: function() {
|
||||||
var map = {};
|
var map = {};
|
||||||
this.loop(function(config, name) {
|
this.loop(function(config, name) {
|
||||||
|
@ -24069,8 +24116,7 @@ var instantCommands = [
|
||||||
intl.str('git-supported-commands'),
|
intl.str('git-supported-commands'),
|
||||||
'<br/>'
|
'<br/>'
|
||||||
];
|
];
|
||||||
var commands = CommandOptionParser.prototype.getMasterOptionMap();
|
var commands = Commands.getOptionMap();
|
||||||
|
|
||||||
// build up a nice display of what we support
|
// build up a nice display of what we support
|
||||||
_.each(commands, function(commandOptions, command) {
|
_.each(commands, function(commandOptions, command) {
|
||||||
lines.push('git ' + command);
|
lines.push('git ' + command);
|
||||||
|
@ -24125,7 +24171,7 @@ function CommandOptionParser(method, options) {
|
||||||
this.method = method;
|
this.method = method;
|
||||||
this.rawOptions = options;
|
this.rawOptions = options;
|
||||||
|
|
||||||
this.supportedMap = this.getMasterOptionMap()[method];
|
this.supportedMap = Commands.getOptionMap()[method];
|
||||||
if (this.supportedMap === undefined) {
|
if (this.supportedMap === undefined) {
|
||||||
throw new Error('No option map for ' + method);
|
throw new Error('No option map for ' + method);
|
||||||
}
|
}
|
||||||
|
@ -24134,11 +24180,6 @@ function CommandOptionParser(method, options) {
|
||||||
this.explodeAndSet();
|
this.explodeAndSet();
|
||||||
}
|
}
|
||||||
|
|
||||||
CommandOptionParser.prototype.getMasterOptionMap = function() {
|
|
||||||
// need to copy -- also ugly
|
|
||||||
return JSON.parse(JSON.stringify(optionMap));
|
|
||||||
};
|
|
||||||
|
|
||||||
var optionMap = {};
|
var optionMap = {};
|
||||||
Commands.loop(function(config, name) {
|
Commands.loop(function(config, name) {
|
||||||
var displayName = config.displayName || name;
|
var displayName = config.displayName || name;
|
||||||
|
@ -33157,6 +33198,7 @@ var PromiseAnimation = Backbone.Model.extend({
|
||||||
throw new Error('need closure or animation');
|
throw new Error('need closure or animation');
|
||||||
}
|
}
|
||||||
this.set('closure', options.closure || options.animation);
|
this.set('closure', options.closure || options.animation);
|
||||||
|
this.set('duration', options.duration || this.get('duration'));
|
||||||
this.set('deferred', options.deferred || Q.defer());
|
this.set('deferred', options.deferred || Q.defer());
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -35079,6 +35121,16 @@ var VisNode = VisBase.extend({
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
|
||||||
|
animatePositionTo: function(visNode, speed, easing) {
|
||||||
|
var attributes = this.getAttributes();
|
||||||
|
var destAttributes = visNode.getAttributes();
|
||||||
|
|
||||||
|
// TODO make not hardcoded
|
||||||
|
attributes.circle = destAttributes.circle;
|
||||||
|
attributes.text = destAttributes.text;
|
||||||
|
this.animateToAttr(attributes, speed, easing);
|
||||||
|
},
|
||||||
|
|
||||||
highlightTo: function(visObj, speed, easing) {
|
highlightTo: function(visObj, speed, easing) {
|
||||||
// a small function to highlight the color of a node for demonstration purposes
|
// a small function to highlight the color of a node for demonstration purposes
|
||||||
var color = visObj.get('fill');
|
var color = visObj.get('fill');
|
||||||
|
@ -35358,19 +35410,25 @@ var VisNode = VisBase.extend({
|
||||||
return stepFunc;
|
return stepFunc;
|
||||||
},
|
},
|
||||||
|
|
||||||
genGraphics: function() {
|
makeCircle: function(paper) {
|
||||||
var paper = this.gitVisuals.paper;
|
|
||||||
|
|
||||||
var pos = this.getScreenCoords();
|
var pos = this.getScreenCoords();
|
||||||
var textPos = this.getTextScreenCoords();
|
return paper.circle(
|
||||||
|
|
||||||
var circle = paper.circle(
|
|
||||||
pos.x,
|
pos.x,
|
||||||
pos.y,
|
pos.y,
|
||||||
this.getRadius()
|
this.getRadius()
|
||||||
).attr(this.getAttributes().circle);
|
).attr(this.getAttributes().circle);
|
||||||
|
},
|
||||||
|
|
||||||
|
makeText: function(paper) {
|
||||||
|
var textPos = this.getTextScreenCoords();
|
||||||
|
return paper.text(textPos.x, textPos.y, String(this.get('id')));
|
||||||
|
},
|
||||||
|
|
||||||
|
genGraphics: function() {
|
||||||
|
var paper = this.gitVisuals.paper;
|
||||||
|
var circle = this.makeCircle(paper);
|
||||||
|
var text = this.makeText(paper);
|
||||||
|
|
||||||
var text = paper.text(textPos.x, textPos.y, String(this.get('id')));
|
|
||||||
text.attr({
|
text.attr({
|
||||||
'font-size': this.getFontSize(this.get('id')),
|
'font-size': this.getFontSize(this.get('id')),
|
||||||
'font-weight': 'bold',
|
'font-weight': 'bold',
|
||||||
|
|
|
@ -110,6 +110,7 @@ var PromiseAnimation = Backbone.Model.extend({
|
||||||
throw new Error('need closure or animation');
|
throw new Error('need closure or animation');
|
||||||
}
|
}
|
||||||
this.set('closure', options.closure || options.animation);
|
this.set('closure', options.closure || options.animation);
|
||||||
|
this.set('duration', options.duration || this.get('duration'));
|
||||||
this.set('deferred', options.deferred || Q.defer());
|
this.set('deferred', options.deferred || Q.defer());
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
|
@ -130,6 +130,16 @@ var VisNode = VisBase.extend({
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
|
||||||
|
animatePositionTo: function(visNode, speed, easing) {
|
||||||
|
var attributes = this.getAttributes();
|
||||||
|
var destAttributes = visNode.getAttributes();
|
||||||
|
|
||||||
|
// TODO make not hardcoded
|
||||||
|
attributes.circle = destAttributes.circle;
|
||||||
|
attributes.text = destAttributes.text;
|
||||||
|
this.animateToAttr(attributes, speed, easing);
|
||||||
|
},
|
||||||
|
|
||||||
highlightTo: function(visObj, speed, easing) {
|
highlightTo: function(visObj, speed, easing) {
|
||||||
// a small function to highlight the color of a node for demonstration purposes
|
// a small function to highlight the color of a node for demonstration purposes
|
||||||
var color = visObj.get('fill');
|
var color = visObj.get('fill');
|
||||||
|
@ -409,19 +419,25 @@ var VisNode = VisBase.extend({
|
||||||
return stepFunc;
|
return stepFunc;
|
||||||
},
|
},
|
||||||
|
|
||||||
genGraphics: function() {
|
makeCircle: function(paper) {
|
||||||
var paper = this.gitVisuals.paper;
|
|
||||||
|
|
||||||
var pos = this.getScreenCoords();
|
var pos = this.getScreenCoords();
|
||||||
var textPos = this.getTextScreenCoords();
|
return paper.circle(
|
||||||
|
|
||||||
var circle = paper.circle(
|
|
||||||
pos.x,
|
pos.x,
|
||||||
pos.y,
|
pos.y,
|
||||||
this.getRadius()
|
this.getRadius()
|
||||||
).attr(this.getAttributes().circle);
|
).attr(this.getAttributes().circle);
|
||||||
|
},
|
||||||
|
|
||||||
|
makeText: function(paper) {
|
||||||
|
var textPos = this.getTextScreenCoords();
|
||||||
|
return paper.text(textPos.x, textPos.y, String(this.get('id')));
|
||||||
|
},
|
||||||
|
|
||||||
|
genGraphics: function() {
|
||||||
|
var paper = this.gitVisuals.paper;
|
||||||
|
var circle = this.makeCircle(paper);
|
||||||
|
var text = this.makeText(paper);
|
||||||
|
|
||||||
var text = paper.text(textPos.x, textPos.y, String(this.get('id')));
|
|
||||||
text.attr({
|
text.attr({
|
||||||
'font-size': this.getFontSize(this.get('id')),
|
'font-size': this.getFontSize(this.get('id')),
|
||||||
'font-weight': 'bold',
|
'font-weight': 'bold',
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue