azkaban-uncached
Changes
src/web/js/azkaban.exflow.view.js 12(+8 -4)
src/web/js/graph/azkaban.svg.graph.helper.js 50(+25 -25)
src/web/js/graph/azkaban.svg.graph.view.js 29(+25 -4)
Details
src/web/js/azkaban.exflow.view.js 12(+8 -4)
diff --git a/src/web/js/azkaban.exflow.view.js b/src/web/js/azkaban.exflow.view.js
index d9481ec..377703b 100644
--- a/src/web/js/azkaban.exflow.view.js
+++ b/src/web/js/azkaban.exflow.view.js
@@ -647,10 +647,12 @@ var exNodeClickCallback = function(event) {
console.log("Node clicked callback");
var jobId = event.currentTarget.jobid;
var requestURL = contextURL + "/manager?project=" + projectName + "&flow=" + flowId + "&job=" + jobId;
+ var visualizerURL = contextURL + "/pigvisualizer?execid=" + execId + "&jobid=" + jobId;
var menu = [
- {title: "Open Job...", callback: function() {window.location.href=requestURL;}},
- {title: "Open Job in New Window...", callback: function() {window.open(requestURL);}}
+ {title: "Open Job...", callback: function() {window.location.href = requestURL;}},
+ {title: "Open Job in New Window...", callback: function() {window.open(requestURL);}},
+ {title: "Visualize Job...", callback: function() {window.location.href = visualizerURL;}}
];
contextMenuView.show(event, menu);
@@ -660,10 +662,12 @@ var exJobClickCallback = function(event) {
console.log("Node clicked callback");
var jobId = event.currentTarget.jobid;
var requestURL = contextURL + "/manager?project=" + projectName + "&flow=" + flowId + "&job=" + jobId;
+ var visualizerURL = contextURL + "/pigvisualizer?execid=" + execId + "&jobid=" + jobId;
var menu = [
- {title: "Open Job...", callback: function() {window.location.href=requestURL;}},
- {title: "Open Job in New Window...", callback: function() {window.open(requestURL);}}
+ {title: "Open Job...", callback: function() {window.location.href = requestURL;}},
+ {title: "Open Job in New Window...", callback: function() {window.open(requestURL);}},
+ {title: "Visualize Job...", callback: function() {window.location.href = visualizerURL;}}
];
contextMenuView.show(event, menu);
src/web/js/graph/azkaban.svg.graph.helper.js 50(+25 -25)
diff --git a/src/web/js/graph/azkaban.svg.graph.helper.js b/src/web/js/graph/azkaban.svg.graph.helper.js
index 2b7b376..76c7833 100644
--- a/src/web/js/graph/azkaban.svg.graph.helper.js
+++ b/src/web/js/graph/azkaban.svg.graph.helper.js
@@ -49,31 +49,31 @@ var openJobDisplayCallback = function(nodeId, flowId, evt) {
}
var createModelFromAjaxCall = function(data, model) {
- var nodes = {};
- for (var i=0; i < data.nodes.length; ++i) {
- var node = data.nodes[i];
- nodes[node.id] = node;
- }
- for (var i=0; i < data.edges.length; ++i) {
- var edge = data.edges[i];
- var fromNode = nodes[edge.from];
- var toNode = nodes[edge.target];
-
- if (!fromNode.outNodes) {
- fromNode.outNodes = {};
- }
- fromNode.outNodes[toNode.id] = toNode;
-
- if (!toNode.inNodes) {
- toNode.inNodes = {};
- }
- toNode.inNodes[fromNode.id] = fromNode;
- }
-
- console.log("data fetched");
- model.set({data: data});
- model.set({nodes: nodes});
- model.set({disabled: {}});
+ var nodes = {};
+ for (var i = 0; i < data.nodes.length; ++i) {
+ var node = data.nodes[i];
+ nodes[node.id] = node;
+ }
+ for (var i = 0; i < data.edges.length; ++i) {
+ var edge = data.edges[i];
+ var fromNode = nodes[edge.from];
+ var toNode = nodes[edge.target];
+
+ if (!fromNode.outNodes) {
+ fromNode.outNodes = {};
+ }
+ fromNode.outNodes[toNode.id] = toNode;
+
+ if (!toNode.inNodes) {
+ toNode.inNodes = {};
+ }
+ toNode.inNodes[fromNode.id] = fromNode;
+ }
+
+ console.log("data fetched");
+ model.set({data: data});
+ model.set({nodes: nodes});
+ model.set({disabled: {}});
}
var nodeClickCallback = function(event, model, type) {
src/web/js/graph/azkaban.svg.graph.view.js 29(+25 -4)
diff --git a/src/web/js/graph/azkaban.svg.graph.view.js b/src/web/js/graph/azkaban.svg.graph.view.js
index ed1bb04..b7c2286 100644
--- a/src/web/js/graph/azkaban.svg.graph.view.js
+++ b/src/web/js/graph/azkaban.svg.graph.view.js
@@ -324,7 +324,12 @@ azkaban.SvgGraphView = Backbone.View.extend({
var centerY = node.centerY;
gNode.setAttribute("transform", "translate(" + node.x + "," + node.y + ")");
- this.addBounds(bounds, {minX:node.x - centerX, minY: node.y - centerY, maxX: node.x + centerX, maxY: node.y + centerY});
+ this.addBounds(bounds, {
+ minX: node.x - centerX,
+ minY: node.y - centerY,
+ maxX: node.x + centerX,
+ maxY: node.y + centerY
+ });
}
},
drawFlowNode: function(self, node) {
@@ -441,7 +446,12 @@ azkaban.SvgGraphView = Backbone.View.extend({
text.setAttribute("y", 6);
text.setAttribute("height", 10);
- //this.addBounds(bounds, {minX:node.x - xOffset, minY: node.y - yOffset, maxX: node.x + xOffset, maxY: node.y + yOffset});
+ /*this.addBounds(bounds, {
+ minX: node.x - xOffset,
+ minY: node.y - yOffset,
+ maxX: node.x + xOffset,
+ maxY: node.y + yOffset
+ });*/
innerG.appendChild(rect);
innerG.appendChild(text);
@@ -507,7 +517,12 @@ azkaban.SvgGraphView = Backbone.View.extend({
text.setAttribute("x", 0);
text.setAttribute("y", 0);
- this.addBounds(bounds, {minX:node.x - xOffset, minY: node.y - yOffset, maxX: node.x + xOffset, maxY: node.y + yOffset});
+ this.addBounds(bounds, {
+ minX: node.x - xOffset,
+ minY: node.y - yOffset,
+ maxX: node.x + xOffset,
+ maxY: node.y + yOffset
+ });
var backRect = document.createElementNS(svgns, 'rect');
backRect.setAttribute("x", 0);
@@ -542,7 +557,13 @@ azkaban.SvgGraphView = Backbone.View.extend({
},
resetPanZoom : function(duration) {
var bounds = this.graphBounds;
- var param = {x: bounds.minX, y: bounds.minY, width: (bounds.maxX - bounds.minX), height: (bounds.maxY - bounds.minY), duration: duration };
+ var param = {
+ x: bounds.minX,
+ y: bounds.minY,
+ width: (bounds.maxX - bounds.minX),
+ height: (bounds.maxY - bounds.minY),
+ duration: duration
+ };
this.panZoom(param);
},