Added support code for JobDetails page in admin console
git-svn-id: https://hyracks.googlecode.com/svn/branches/hyracks_dev_next@1140 123451ca-8445-de46-9d55-352943316053
diff --git a/hyracks-control-cc/src/main/resources/static/javascript/adminconsole/JobDetailsPage.js b/hyracks-control-cc/src/main/resources/static/javascript/adminconsole/JobDetailsPage.js
new file mode 100644
index 0000000..828e310
--- /dev/null
+++ b/hyracks-control-cc/src/main/resources/static/javascript/adminconsole/JobDetailsPage.js
@@ -0,0 +1,85 @@
+$(function() {
+ var jobSpecDAG = new Graphs.DAG();
+ var jobSpecRenderer;
+
+ function drawJobGraph() {
+ var jobGraphDiv = $('#job-graph')[0];
+ jobSpecRenderer = new Graphs.JsPlumbRenderer(jobSpecDAG, jobGraphDiv, null);
+ jobSpecRenderer.refresh();
+ }
+
+ function onJobRunDataReceived(data) {
+ var run = data.result;
+
+ if (run.status != 'TERMINATED' && run.status != 'FAILURE') {
+ setTimeout(fetchJobRun, 10000);
+ }
+ }
+
+ function fetchJobRun() {
+ $.ajax({
+ url : '/rest/jobs/' + $.getURLParam('job-id') + '/job-run',
+ method : 'GET',
+ dataType : 'json',
+ success : onJobRunDataReceived
+ });
+ }
+
+ function onJobActivityGraphDataReceived(data) {
+ var jag = data.result;
+ activityMap = new Object;
+ var activities = jag.activities;
+ for ( var i = 0; i < activities.length; ++i) {
+ var activity = activities[i];
+ }
+
+ drawJobGraph();
+
+ fetchJobRun();
+ }
+
+ function fetchJobActivityGraph() {
+ $.ajax({
+ url : '/rest/jobs/' + $.getURLParam('job-id') + '/job-activity-graph',
+ method : 'GET',
+ dataType : 'json',
+ success : onJobActivityGraphDataReceived
+ });
+ }
+
+ function onJobSpecificationDataReceived(data) {
+ var jobSpec = data.result;
+ var operators = jobSpec.operators;
+ for ( var i = 0; i < operators.length; ++i) {
+ var op = operators[i];
+ jobSpecDAG.addNode(op.id, op);
+ }
+ var connectors = jobSpec.connectors;
+ for ( var i = 0; i < connectors.length; ++i) {
+ var conn = connectors[i];
+ var sNode = jobSpecDAG.lookupNode(conn['in-operator-id']);
+ var sIndex = conn['in-operator-port'];
+ var tNode = jobSpecDAG.lookupNode(conn['out-operator-id']);
+ var tIndex = conn['out-operator-port'];
+ jobSpecDAG.addEdge(conn.id, conn, sNode, sIndex, tNode, tIndex);
+ }
+ fetchJobActivityGraph();
+ }
+
+ function fetchJobSpecification() {
+ $.ajax({
+ url : '/rest/jobs/' + $.getURLParam('job-id') + '/job-specification',
+ method : 'GET',
+ dataType : 'json',
+ success : onJobSpecificationDataReceived
+ });
+ }
+
+ function init() {
+ fetchJobSpecification();
+ }
+
+ jsPlumb.bind("ready", function() {
+ init();
+ });
+});
\ No newline at end of file