flow-extended.js

62 lines | 1.757 kB Blame History Raw Download
azkaban.FlowExtendedViewPanel = Backbone.View.extend({
	events: {
		"click .closeInfoPanel" : "handleClosePanel" 
	},
	initialize: function(settings) {
		//this.model.bind('change:flowinfo', this.changeFlowInfo, this);
		$(this.el).show();
		$(this.el).draggable({cancel: ".dataContent", containment: "document"});

		this.render();
		$(this.el).hide();
	},
	showExtendedView: function(evt) {
		var event = evt;
		
		$(this.el).css({top: evt.pageY, left: evt.pageX});
		$(this.el).show();
	},
	render: function(self) {
		console.log("Changing title");
		$(this.el).find(".nodeId").text(this.model.get("id"));
		$(this.el).find(".nodeType").text(this.model.get("type"));
		
		var props = this.model.get("props");
		var tableBody = $(this.el).find(".dataPropertiesBody");
		
		for (var key in props) {
			var tr = document.createElement("tr");
			var tdKey = document.createElement("td");
			var tdValue = document.createElement("td");
			
			$(tdKey).text(key);
			$(tdValue).text(props[key]);
			
			$(tr).append(tdKey);
			$(tr).append(tdValue);
			
			$(tableBody).append(tr);
			
			var propsTable = $(this.el).find(".dataJobProperties");
			$(propsTable).resizable({handler: "s"});
		}
		
		if (this.model.get("type") == "flow") {
			var svgns = "http://www.w3.org/2000/svg";
			var svgDataFlow = $(this.el).find(".dataFlow");
			
			var svgGraph = document.createElementNS(svgns, "svg");
			$(svgGraph).attr("class", "svgTiny");
			$(svgDataFlow).append(svgGraph);
			$(svgDataFlow).resizable();
			
			this.graphView = new azkaban.SvgGraphView({el: svgDataFlow, model: this.model, render: true, rightClick:  { "node": nodeClickCallback, "graph": graphClickCallback }})
		}
		else {
			$(this.el).find(".dataFlow").hide();
		}
	},
	handleClosePanel: function(self) {
		$(this.el).hide();
	}
});