azkaban-uncached
Details
diff --git a/src/java/azkaban/webapp/servlet/LoginAbstractAzkabanServlet.java b/src/java/azkaban/webapp/servlet/LoginAbstractAzkabanServlet.java
index b1d78c9..669cff4 100644
--- a/src/java/azkaban/webapp/servlet/LoginAbstractAzkabanServlet.java
+++ b/src/java/azkaban/webapp/servlet/LoginAbstractAzkabanServlet.java
@@ -64,9 +64,9 @@ public abstract class LoginAbstractAzkabanServlet extends AbstractAzkabanServlet
contextType.put(".jpeg", "image/jpeg");
contextType.put(".gif", "image/gif");
contextType.put(".jpg", "image/jpeg");
+ contextType.put(".tl", "text/dust-template");
}
-
private File webResourceDirectory = null;
private MultipartParser multipartParser;
diff --git a/src/java/azkaban/webapp/servlet/velocity/executionspage.vm b/src/java/azkaban/webapp/servlet/velocity/executionspage.vm
index fc126c4..f416d20 100644
--- a/src/java/azkaban/webapp/servlet/velocity/executionspage.vm
+++ b/src/java/azkaban/webapp/servlet/velocity/executionspage.vm
@@ -17,7 +17,7 @@
<!DOCTYPE html>
<html>
<head>
-#parse( "azkaban/webapp/servlet/velocity/style.vm" )
+#parse("azkaban/webapp/servlet/velocity/style.vm")
<script type="text/javascript" src="${context}/js/jquery/jquery-1.9.1.js"></script>
<script type="text/javascript" src="${context}/js/underscore-1.4.4-min.js"></script>
<script type="text/javascript" src="${context}/js/namespace.js"></script>
@@ -35,7 +35,7 @@
</head>
<body>
#set($current_page="executing")
-#parse( "azkaban/webapp/servlet/velocity/nav.vm" )
+#parse("azkaban/webapp/servlet/velocity/nav.vm")
<div class="messaging"><p id="messageClose">X</p><p id="message"></p></div>
<div class="content">
@@ -63,8 +63,8 @@
</tr>
</thead>
<tbody>
- #if($runningFlows)
-#foreach($flow in $runningFlows)
+#if($runningFlows)
+ #foreach($flow in $runningFlows)
<tr class="row" >
<td class="tb-name">
<a href="${context}/executor?execid=${flow.executionId}">${flow.executionId}</a>
@@ -81,7 +81,7 @@
<td><div class="status ${flow.status}">$utils.formatStatus(${flow.status})</div></td>
<td></td>
</tr>
-#end
+ #end
#else
<tr><td></td><td class="last">No Executing Flows</td></tr>
#end
@@ -106,8 +106,8 @@
</tr>
</thead>
<tbody>
- #if($recentlyFinished)
-#foreach($flow in $recentlyFinished)
+#if($recentlyFinished.isEmpty())
+ #foreach($flow in $recentlyFinished)
<tr class="row" >
<td class="tb-name execId">
<a href="${context}/executor?execid=${flow.executionId}">${flow.executionId}</a>
@@ -124,7 +124,7 @@
<td><div class="status ${flow.status}">$utils.formatStatus(${flow.status})</div></td>
<td></td>
</tr>
-#end
+ #end
#else
<tr><td></td><td class="last">No Recently Finished</td></tr>
#end
diff --git a/src/java/azkaban/webapp/servlet/velocity/historypage.vm b/src/java/azkaban/webapp/servlet/velocity/historypage.vm
index 0b39bc2..8c833d2 100644
--- a/src/java/azkaban/webapp/servlet/velocity/historypage.vm
+++ b/src/java/azkaban/webapp/servlet/velocity/historypage.vm
@@ -82,8 +82,8 @@
</tr>
</thead>
<tbody>
- #if($flowHistory)
-#foreach($flow in $flowHistory)
+#if(!$flowHistory.isEmpty())
+ #foreach($flow in $flowHistory)
<tr class="row" >
<td class="tb-name execId">
<a href="${context}/executor?execid=${flow.executionId}">${flow.executionId}</a>
@@ -101,9 +101,9 @@
<td><div class="status ${flow.status}">$utils.formatStatus(${flow.status})</div></td>
<td></td>
</tr>
-#end
+ #end
#else
- <tr><td class="last">No History Results Found</td></tr>
+ <tr><td class="last" colspan="9">No History Results Found</td></tr>
#end
</tbody>
</table>
diff --git a/src/java/azkaban/webapp/servlet/velocity/scheduledflowpage.vm b/src/java/azkaban/webapp/servlet/velocity/scheduledflowpage.vm
index c15f548..0987dd6 100644
--- a/src/java/azkaban/webapp/servlet/velocity/scheduledflowpage.vm
+++ b/src/java/azkaban/webapp/servlet/velocity/scheduledflowpage.vm
@@ -81,8 +81,8 @@
</tr>
</thead>
<tbody>
- #if($schedules)
-#foreach($sched in $schedules)
+#if(!$schedules.isEmpty())
+ #foreach($sched in $schedules)
<tr class="row" >
<td>${sched.scheduleId}</td>
@@ -100,7 +100,7 @@
<td><button id="removeSchedBtn" onclick="removeSched(${sched.scheduleId})" >Remove Schedule</button></td>
<td><button id="addSlaBtn" onclick="slaView.initFromSched(${sched.scheduleId}, '${sched.flowName}')" >Set SLA</button></td>
</tr>
-#end
+ #end
#else
<tr><td class="last">No Scheduled Flow Found</td></tr>
#end
src/web/js/azkaban.exflow.view.js 14(+6 -8)
diff --git a/src/web/js/azkaban.exflow.view.js b/src/web/js/azkaban.exflow.view.js
index ea1e6c8..377703b 100644
--- a/src/web/js/azkaban.exflow.view.js
+++ b/src/web/js/azkaban.exflow.view.js
@@ -646,14 +646,13 @@ var logUpdaterFunction = function() {
var exNodeClickCallback = function(event) {
console.log("Node clicked callback");
var jobId = event.currentTarget.jobid;
- var attempt = event.currentTarget.attempt;
var requestURL = contextURL + "/manager?project=" + projectName + "&flow=" + flowId + "&job=" + jobId;
- var visualizerURL = contextURL + "/visualizer?execid=" + execId + "&job=" + jobId + "&attempt=" + attempt;
+ var visualizerURL = contextURL + "/pigvisualizer?execid=" + execId + "&jobid=" + jobId;
var menu = [
- {title: "Open Job...", callback: function() {window.location.href=requestURL;}},
+ {title: "Open Job...", callback: function() {window.location.href = requestURL;}},
{title: "Open Job in New Window...", callback: function() {window.open(requestURL);}},
- {title: "Open Job Visualizer...", callback: function() {window.open(visualizerURL);}}
+ {title: "Visualize Job...", callback: function() {window.location.href = visualizerURL;}}
];
contextMenuView.show(event, menu);
@@ -662,14 +661,13 @@ var exNodeClickCallback = function(event) {
var exJobClickCallback = function(event) {
console.log("Node clicked callback");
var jobId = event.currentTarget.jobid;
- var attempt = event.currentTarget.attempt;
var requestURL = contextURL + "/manager?project=" + projectName + "&flow=" + flowId + "&job=" + jobId;
- var visualizerURL = contextURL + "/visualizer?execid=" + execId + "&job=" + jobId + "&attempt=" + attempt;
+ var visualizerURL = contextURL + "/pigvisualizer?execid=" + execId + "&jobid=" + jobId;
var menu = [
- {title: "Open Job...", callback: function() {window.location.href=requestURL;}},
+ {title: "Open Job...", callback: function() {window.location.href = requestURL;}},
{title: "Open Job in New Window...", callback: function() {window.open(requestURL);}},
- {title: "Open Job Visualizer...", callback: function() {window.open(visualizerURL);}}
+ {title: "Visualize Job...", callback: function() {window.location.href = visualizerURL;}}
];
contextMenuView.show(event, menu);
src/web/js/azkaban.joblog.view.js 2(+1 -1)
diff --git a/src/web/js/azkaban.joblog.view.js b/src/web/js/azkaban.joblog.view.js
index 5be3c28..eafd9c9 100644
--- a/src/web/js/azkaban.joblog.view.js
+++ b/src/web/js/azkaban.joblog.view.js
@@ -62,7 +62,7 @@ azkaban.JobLogView = Backbone.View.extend({
var endTime = date.getTime();
if ((endTime - startTime) > 10000) {
finished = true;
- showDialog("Alert","The log are taking a long time to finish loading. Azkaban has stopped loading them. Please click Refresh to restart the load.");
+ showDialog("Alert","The log is taking a long time to finish loading. Azkaban has stopped loading them. Please click Refresh to restart the load.");
}
var re = /(https?:\/\/(([-\w\.]+)+(:\d+)?(\/([\w/_\.]*(\?\S+)?)?)?))/g;