azkaban-uncached

Details

diff --git a/src/java/azkaban/webapp/servlet/velocity/index.vm b/src/java/azkaban/webapp/servlet/velocity/index.vm
index 500f4f3..bc15e11 100644
--- a/src/java/azkaban/webapp/servlet/velocity/index.vm
+++ b/src/java/azkaban/webapp/servlet/velocity/index.vm
@@ -93,7 +93,7 @@
 
 			<div class="row">
 				<div class="col-lg-12">
-					<table class="table table-striped" id="all-jobs">
+					<table class="table table-striped table-bordered" id="all-jobs">
 						<thead>
 							<tr>
 								<th class="tb-name">Name</th>
@@ -106,13 +106,13 @@
 	#foreach($project in $projects)
 							<tr>
 								<td id="${project.name}" class="tb-name project-expand expanded">
-									<span>+</span>
+									<span class="glyphicon glyphicon-plus"></span>
 									<a href="${context}/manager?project=${project.name}">$project.name</a>
 								</td>
 								<td class="tb-up-date">$utils.formatDate($project.lastModifiedTimestamp)</td>
 								<td class="tb-owner">$project.lastModifiedUser</td>
 							</tr>
-							<tr id="${project.name}-child" style="display: none;">
+							<tr class="childrow collapse" id="${project.name}-child">
 								<td colspan="3">
 									<table class="table table-bordered">
 										<thead>
diff --git a/src/web/js/azkaban.table.sort.js b/src/web/js/azkaban.table.sort.js
index 516448c..40f05e8 100644
--- a/src/web/js/azkaban.table.sort.js
+++ b/src/web/js/azkaban.table.sort.js
@@ -16,50 +16,52 @@
 
 $.namespace('azkaban');
 
-azkaban.TableSorter= Backbone.View.extend({
-  events : {
+azkaban.TableSorter = Backbone.View.extend({
+  events: {
   	"click .sortable": "handleClickSort"
   },
-  initialize : function(settings) {
+
+  initialize: function(settings) {
   	$(this.el).addClass("sortableTable");
   
-  	var thead = $(this.el).children("thead");
-	var th = $(thead).find("th");
-	
-	$(th).addClass("sortable");
-	$("th.ignoresort").removeClass("sortable");
-	var sortDiv = document.createElement("div");
+		var thead = $(this.el).children("thead");
+		var th = $(thead).find("th");
+		
+		$(th).addClass("sortable");
+		$("th.ignoresort").removeClass("sortable");
+		var sortDiv = document.createElement("div");
 
-	$(sortDiv).addClass("sortIcon");
-	
-	$(th).append(sortDiv);
-	
-	var tbody = $(this.el).children("tbody");
-	var rows = $(tbody).children("tr");
-	
-	var row;
-	for (var i = 0; i < rows.length; ++i ) {
-		var nextRow = rows[i];
-		if (row && $(nextRow).hasClass("childrow")) {
-			if (!row.childRows) {
-				row.childRows = new Array();
-			}
+		$(sortDiv).addClass("sortIcon");
+		
+		$(th).append(sortDiv);
 		
-			row.childRows.push(nextRow);
+		var tbody = $(this.el).children("tbody");
+		var rows = $(tbody).children("tr");
+		
+		var row;
+		for (var i = 0; i < rows.length; ++i ) {
+			var nextRow = rows[i];
+			if (row && $(nextRow).hasClass("childrow")) {
+				if (!row.childRows) {
+					row.childRows = new Array();
+				}
+				row.childRows.push(nextRow);
+			}
+			else {
+				row = nextRow;
+			}
 		}
-		else {
-			row = nextRow;
+		
+		if (settings.initialSort) {
+			this.toggleSort(settings.initialSort);
 		}
-	}
-	
-	if (settings.initialSort) {
-		this.toggleSort(settings.initialSort);
-	}
   },
+
   handleClickSort: function(evt) {
   	this.toggleSort(evt.currentTarget);
   },
-  toggleSort: function(th) {
+  
+	toggleSort: function(th) {
   	console.log("sorting by index " + $(th).index());
   	if ($(th).hasClass("asc")) {
   		$(th).removeClass("asc");
@@ -81,70 +83,72 @@ azkaban.TableSorter= Backbone.View.extend({
   		this.sort($(th).index(), false);
   	}
   },
-  sort: function(index, desc) {
-	var tbody = $(this.el).children("tbody");
-	var rows = $(tbody).children("tr");
+  
+	sort: function(index, desc) {
+		var tbody = $(this.el).children("tbody");
+		var rows = $(tbody).children("tr");
+
+		var tdToSort = new Array();
+		for (var i = 0; i < rows.length; ++i) {
+			var row = rows[i];
+			if (!$(row).hasClass("childrow")) {
+				var td = row.children[index];
+				tdToSort.push(td);
+			}
+		}
 
-	var tdToSort = new Array();
-	for (var i = 0; i < rows.length; ++i) {
-		var row = rows[i];
-		if (!$(row).hasClass("childrow")) {
-			var td = row.children[index];
-			tdToSort.push(td);
+		if (desc) {
+			tdToSort.sort(function(a,b) {
+				var texta = $(a).text().trim().toLowerCase();
+				var textb = $(b).text().trim().toLowerCase();
+				
+				if (texta < textb) {
+					return 1;
+				}
+				else if (texta > textb) {
+					return -1;
+				} 
+				else {
+					return 0;
+				}
+			});
+		}
+		else {
+			tdToSort.sort(function(a,b) {
+				var texta = $(a).text().trim().toLowerCase();
+				var textb = $(b).text().trim().toLowerCase();
+				
+				if (texta < textb) {
+					return -1;
+				}
+				else if (texta > textb) {
+					return 1;
+				} 
+				else {
+					return 0;
+				}
+			});
 		}
-	}
 
-	if (desc) {
-		tdToSort.sort(function(a,b) {
-			var texta = $(a).text().trim().toLowerCase();
-			var textb = $(b).text().trim().toLowerCase();
-			
-			if (texta < textb) {
-				return 1;
-			}
-			else if (texta > textb) {
-				return -1;
-			} 
-			else {
-				return 0;
-			}
-		});
-	}
-	else {
-		tdToSort.sort(function(a,b) {
-			var texta = $(a).text().trim().toLowerCase();
-			var textb = $(b).text().trim().toLowerCase();
+		var sortedTR = new Array();
+		for (var i = 0; i < tdToSort.length; ++i) {
+			var tr = $(tdToSort[i]).parent();
+			sortedTR.push(tr);
 			
-			if (texta < textb) {
-				return -1;
-			}
-			else if (texta > textb) {
-				return 1;
-			} 
-			else {
-				return 0;
+			var childRows = tr[0].childRows;
+			if (childRows) {
+				for(var j=0; j < childRows.length; ++j) {
+					sortedTR.push(childRows[j]);
+				}
 			}
-		});
-	}
-
-	var sortedTR = new Array();
-	for (var i = 0; i < tdToSort.length; ++i) {
-		var tr = $(tdToSort[i]).parent();
-		sortedTR.push(tr);
+		}
 		
-		var childRows = tr[0].childRows;
-		if (childRows) {
-			for(var j=0; j < childRows.length; ++j) {
-				sortedTR.push(childRows[j]);
-			}
+		for (var i = 0; i < sortedTR.length; ++i) {
+			$(tbody).append(sortedTR[i]);
 		}
-	}
-	
-	for (var i = 0; i < sortedTR.length; ++i) {
-		$(tbody).append(sortedTR[i]);
-	}
   },
+
   render: function() {
-  	console.log("render graph");
+  	console.log("render sorted table");
   }
 });