Details
diff --git a/az-core/src/main/java/azkaban/Constants.java b/az-core/src/main/java/azkaban/Constants.java
index b3fd0f4..0f2b336 100644
--- a/az-core/src/main/java/azkaban/Constants.java
+++ b/az-core/src/main/java/azkaban/Constants.java
@@ -229,6 +229,9 @@ public class Constants {
// allowed max size of shared project dir in MB
public static final String PROJECT_DIR_MAX_SIZE_IN_MB = "azkaban.project_cache_max_size_in_mb";
+
+ // number of rows to be displayed on the executions page.
+ public static final String DISPLAY_EXECUTION_PAGE_SIZE = "azkaban.display.execution_page_size";
}
public static class FlowProperties {
diff --git a/azkaban-solo-server/src/main/resources/conf/azkaban.properties b/azkaban-solo-server/src/main/resources/conf/azkaban.properties
index a09550d..624c6c7 100644
--- a/azkaban-solo-server/src/main/resources/conf/azkaban.properties
+++ b/azkaban-solo-server/src/main/resources/conf/azkaban.properties
@@ -41,3 +41,5 @@ jetty.connector.stats=true
executor.connector.stats=true
# Azkaban plugin settings
azkaban.jobtype.plugin.dir=plugins/jobtypes
+# Number of executions to be displayed
+azkaban.display.execution_page_size=16
diff --git a/azkaban-web-server/src/main/java/azkaban/webapp/servlet/AbstractAzkabanServlet.java b/azkaban-web-server/src/main/java/azkaban/webapp/servlet/AbstractAzkabanServlet.java
index a9da66c..30b1a89 100644
--- a/azkaban-web-server/src/main/java/azkaban/webapp/servlet/AbstractAzkabanServlet.java
+++ b/azkaban-web-server/src/main/java/azkaban/webapp/servlet/AbstractAzkabanServlet.java
@@ -18,6 +18,8 @@ package azkaban.webapp.servlet;
import static azkaban.ServiceProvider.SERVICE_PROVIDER;
+import azkaban.Constants;
+import azkaban.Constants.ConfigurationKeys;
import azkaban.server.AzkabanServer;
import azkaban.server.HttpRequestUtils;
import azkaban.server.session.Session;
@@ -68,6 +70,8 @@ public abstract class AbstractAzkabanServlet extends HttpServlet {
private List<ViewerPlugin> viewerPlugins;
private List<TriggerPlugin> triggerPlugins;
+ private int displayExecutionPageSize;
+
public static String createJsonResponse(final String status, final String message,
final String action, final Map<String, Object> params) {
final HashMap<String, Object> response = new HashMap<>();
@@ -106,6 +110,7 @@ public abstract class AbstractAzkabanServlet extends HttpServlet {
this.label = props.getString("azkaban.label", "");
this.color = props.getString("azkaban.color", "#FF0000");
this.passwordPlaceholder = props.getString("azkaban.password.placeholder", "Password");
+ this.displayExecutionPageSize = props.getInt(ConfigurationKeys.DISPLAY_EXECUTION_PAGE_SIZE, 16);
if (this.application instanceof AzkabanWebServer) {
final AzkabanWebServer server = (AzkabanWebServer) this.application;
@@ -369,4 +374,8 @@ public abstract class AbstractAzkabanServlet extends HttpServlet {
resp.setContentType(JSON_MIME_TYPE);
JSONUtils.toJSON(obj, resp.getOutputStream(), true);
}
+
+ protected int getDisplayExecutionPageSize() {
+ return displayExecutionPageSize;
+ }
}
diff --git a/azkaban-web-server/src/main/java/azkaban/webapp/servlet/HistoryServlet.java b/azkaban-web-server/src/main/java/azkaban/webapp/servlet/HistoryServlet.java
index 4a354da..6ab39e2 100644
--- a/azkaban-web-server/src/main/java/azkaban/webapp/servlet/HistoryServlet.java
+++ b/azkaban-web-server/src/main/java/azkaban/webapp/servlet/HistoryServlet.java
@@ -87,7 +87,7 @@ public class HistoryServlet extends LoginAbstractAzkabanServlet {
newPage(req, resp, session,
"azkaban/webapp/servlet/velocity/historypage.vm");
int pageNum = getIntParam(req, "page", 1);
- final int pageSize = getIntParam(req, "size", 16);
+ final int pageSize = getIntParam(req, "size", getDisplayExecutionPageSize());
page.add("vmutils", new VelocityUtil(this.projectManager));
if (pageNum < 0) {
diff --git a/azkaban-web-server/src/main/resources/azkaban/webapp/servlet/velocity/flowpage.vm b/azkaban-web-server/src/main/resources/azkaban/webapp/servlet/velocity/flowpage.vm
index 7c0e4b7..bcbb9ab 100644
--- a/azkaban-web-server/src/main/resources/azkaban/webapp/servlet/velocity/flowpage.vm
+++ b/azkaban-web-server/src/main/resources/azkaban/webapp/servlet/velocity/flowpage.vm
@@ -48,6 +48,7 @@
var projectName = "${project.name}";
var flowId = "${flowid}";
var execId = null;
+ var pageSize = "${size}";
</script>
<link rel="stylesheet" type="text/css" href="${context}/css/morris.css"/>
<link rel="stylesheet" type="text/css" href="${context}/css/bootstrap-datetimepicker.css"/>
diff --git a/azkaban-web-server/src/web/js/azkaban/view/flow.js b/azkaban-web-server/src/web/js/azkaban/view/flow.js
index 014671e..8e50e89 100644
--- a/azkaban-web-server/src/web/js/azkaban/view/flow.js
+++ b/azkaban-web-server/src/web/js/azkaban/view/flow.js
@@ -114,7 +114,7 @@ azkaban.ExecutionsView = Backbone.View.extend({
initialize: function (settings) {
this.model.bind('change:view', this.handleChangeView, this);
this.model.bind('render', this.render, this);
- this.model.set({page: 1, pageSize: 16});
+ this.model.set({page: 1, pageSize: this.pageSize});
this.model.bind('change:page', this.handlePageChange, this);
},