azkaban-memoizeit

Details

diff --git a/src/java/azkaban/webapp/servlet/velocity/projectpage.vm b/src/java/azkaban/webapp/servlet/velocity/projectpage.vm
index 4be989d..aeafad4 100644
--- a/src/java/azkaban/webapp/servlet/velocity/projectpage.vm
+++ b/src/java/azkaban/webapp/servlet/velocity/projectpage.vm
@@ -81,8 +81,7 @@
                 <a href="${context}/manager?project=${project.name}&flow=${flow.id}">${flow.id}</a>
               </div>
               <div id="${flow.id}-child" class="panel-collapse panel-list collapse">
-                <ul class="list-group list-group-collapse" id="${flow.id}-tbody">
-                </ul>
+                <div class="list-group list-group-collapse job-list" id="${flow.id}-tbody"></div>
               </div>
             </div>
 		#end
diff --git a/src/less/project.less b/src/less/project.less
index df01264..00a77e8 100644
--- a/src/less/project.less
+++ b/src/less/project.less
@@ -7,6 +7,14 @@
   cursor: pointer;
 }
 
+.dependency {
+  background-color: #f0f0f0;
+}
+
+.dependent {
+  background-color: #fafafa;
+}
+
 // Permissions page table.
 .permission-table {
   .tb-perm {
diff --git a/src/web/js/azkaban.project.view.js b/src/web/js/azkaban.project.view.js
index c278d3b..5f08bb2 100644
--- a/src/web/js/azkaban.project.view.js
+++ b/src/web/js/azkaban.project.view.js
@@ -20,8 +20,8 @@ var flowTableView;
 azkaban.FlowTableView = Backbone.View.extend({
 	events : {
 		"click .flow-expander": "expandFlowProject",
-		"mouseover .expandedFlow a": "highlight",
-		"mouseout .expandedFlow a": "unhighlight",
+		"mouseover .job-list a": "highlight",
+		"mouseout .job-list a": "unhighlight",
 		"click .runJob": "runJob",
 		"click .runWithDep": "runWithDep",
 		"click .execute-flow": "executeFlow",
@@ -33,7 +33,7 @@ azkaban.FlowTableView = Backbone.View.extend({
 	},
 
 	expandFlowProject: function(evt) {
-		if (evt.target.tagName == "A") {
+		if (evt.target.tagName == "A" || evt.target.tagName == "BUTTON") {
 			return;
 		}
 		
@@ -81,11 +81,17 @@ azkaban.FlowTableView = Backbone.View.extend({
 			var level = job.level;
 			var nodeId = flowId + "-" + name;
 		
-      var li = document.createElement("li");
-      $(li).addClass("list-group-item");
-			li.flowId = flowId;
-			li.projectName = project;
-			li.jobName = name;
+      var ida = document.createElement("a");
+      $(ida).addClass("list-group-item");
+			$(ida).attr("id", nodeId);
+			$(ida).css("padding-left", (level * 20) + 15);
+			$(ida).attr("href", requestURL + name);
+			$(ida).text(name);
+			ida.flowId = flowId;
+			ida.dependents = job.dependents;
+			ida.dependencies = job.dependencies;
+			ida.projectName = project;
+			ida.jobName = name;
 
 			if (execAccess) {
 				var hoverMenuDiv = document.createElement("div");
@@ -113,21 +119,10 @@ azkaban.FlowTableView = Backbone.View.extend({
 				divRunWithDep.flowId = flowId;
 				$(hoverMenuDiv).append(divRunWithDep);
 				
-				$(li).append(hoverMenuDiv);
+				$(ida).append(hoverMenuDiv);
 			}
 			
-			var ida = document.createElement("a");
-			ida.dependents = job.dependents;
-			ida.dependencies = job.dependencies;
-			ida.flowid = flowId;
-			$(ida).text(name);
-			$(ida).addClass("jobLink");
-			$(ida).attr("id", nodeId);
-			$(ida).css("margin-left", level * 20);
-			$(ida).attr("href", requestURL + name);
-			
-			$(li).append(ida);
-			$(innerTable).append(li);
+			$(innerTable).append(ida);
 		}
 	},
 	
@@ -141,16 +136,13 @@ azkaban.FlowTableView = Backbone.View.extend({
 		var currentTarget = evt.currentTarget;
 		$(".dependent").removeClass("dependent");
 		$(".dependency").removeClass("dependency");
-	
-		if ($(currentTarget).hasClass("jobLink")) {
-			this.highlightJob(currentTarget);
-		}
+    this.highlightJob(currentTarget);
 	},
 
 	highlightJob: function(currentTarget) {
 		var dependents = currentTarget.dependents;
 		var dependencies = currentTarget.dependencies;
-		var flowid = currentTarget.flowid;
+		var flowid = currentTarget.flowId;
 		
 		if (dependents) {
 			for (var i = 0; i < dependents.length; ++i) {