<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
<!--
   Licensed to the Apache Software Foundation (ASF) under one or more
   contributor license agreements.  See the NOTICE file distributed with
   this work for additional information regarding copyright ownership.
   The ASF licenses this file to You under the Apache License, Version 2.0
   (the "License"); you may not use this file except in compliance with
   the License.  You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.
-->
<meta charset="utf-8" />
<title>Apache Falcon</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="description" content="" />
<meta name="author" content="" />
<link href="css/bootstrap.min.css" type="text/css" rel="stylesheet" />
<link href="css/falcon.css" type="text/css" rel="stylesheet" />
<link rel="apple-touch-icon-precomposed" sizes="144x144" href="img/falcon-144.png" />
<link rel="apple-touch-icon-precomposed" sizes="114x114" href="img/falcon-114.png" />
<link rel="apple-touch-icon-precomposed" sizes="72x72" href="img/falcon-72.png" />
<link rel="apple-touch-icon-precomposed" href="img/falcon-57.png" />
<link rel="shortcut icon" href="img/favicon.png" />
</head>
<body>
<div class="navbar navbar-inverse falcon-docs-nav">
<div class="navbar-header"><button type="button" class="navbar-toggle" data-toggle="collapse" data-target=
".navbar-collapse"></button> <a class="navbar-brand falcon-brand">Apache Falcon</a></div>
<div class="navbar-collapse navbar-right collapse">
<ul class="nav navbar-nav">
<li><a class="btn-entity-list" href="index.html?type=feed">Data sets</a></li>
<li><a class="btn-entity-list" href="index.html?type=process">Processes</a></li>
<li><a class="btn-entity-list" href="index.html?type=cluster">Clusters</a></li>
</ul>
</div>
</div>
<div class="container">

<h3 class="link-icons entity-title" id="entity-title"></h3>
<br />
<div id="entity-info-container">
<div class="panel panel-default" id="panel-instance" style="display:none">
<div class="panel-heading">Instances</div>
<div class="panel-body"></div>
</div>
<div class="panel panel-default" id="panel-definition">
<div class="panel-heading">Definition</div>
<div class="panel-body"> <textarea class="form-control" id="entity-def-textarea"></textarea></div>
</div>
<div class="panel panel-default" id="panel-dependency" style="display:none">
<div class="panel-heading">
Dependency
</div>
<div class="panel-body">
<div id="dep-view-list" style="display:none"></div>
<div id="dep-view-graph" style="display:none"></div>
</div>
<div class="panel-footer">
<div class="btn-group">
<button class="btn btn-primary" id="btn-dep-list">List view</button>
<button class="btn btn-default" id="btn-dep-graph">Graph view</button>
</div>
</div>
</div>
</div>

<div class="modal fade" id="lineage-modal" tabindex="-1" role="dialog" aria-hidden="true">
  <div class="modal-dialog" style="width:900px !important">
    <div class="modal-content">
      <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
        <h4 class="modal-title" id="myModalLabel">Lineage information</h4>
      </div>
      <div class="modal-body">
        <div>
          <h4><small>Legends</small></h4>
          <ul class="lineage-legend">
            <li class="lineage-legend-feed-inst">Feed instance</li>
            <li class="lineage-legend-feed-inst lineage-legend-terminal">Feed instance (terminal)</li>
            <li class="lineage-legend-process-inst">Process instance</li>
            <li class="lineage-legend-process-inst lineage-legend-terminal">Process instance (terminal)</li>
          </ul>
        </div>
        <div style="width:95%; overflow:scroll;">
          <center>
            <svg id="lineage-graph" width="920" height="600"></svg>
          </center>
        </div>
        <div>
          <div id="lineage-info-panel"></div>
        </div>
      </div>
      <div class="modal-footer">
        <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
      </div>
    </div>
  </div>
</div>

<hr />
<div class="footer">&#169; Apache Falcon, 2013</div>
</div>
<!-- /container -->
<script id="dependency-tmpl" type="text/x-dust-template">
<table class="table table-bordered">
  <tbody>
    {#entity}
    <tr><td><a class="link-icons entity-link-{type}" href="entity.html?type={type}&id={name}">{name}</a></td></tr>
    {/entity}
  </tbody>
</table>
</script><script id="instance-tmpl" type="text/x-dust-template">
<table class="table">
  <tbody>
    {#instances}
    <tr>
      <td><span class="instance-icons instance-link-{status}"></span> {instance}</td>
      <td style="width: 6em; text-align: right">
        {@if cond="'{status}' === 'SUCCEEDED'"}
        <a class="lineage-href" data-instance-name="{instance}">Lineage</a>&nbsp;
        {/if}
        {?logFile}<a href="{logFile}" target="_blank">Logs</a>{/logFile}
        {?details}<a style="cursor: pointer" class="instance-hdfs-log" data-toggle="tooltip" data-title="<div style='word-break:break-all;'>Log available at {details}</div>" data-html="true" data-trigger="click"><span class="glyphicon glyphicon-export"></span></a>{/details}
      </td>
    </tr>
    {/instances}
  </tbody>
</table>
</script>

<script type="text/x-dust-template" id="lineage-info-tmpl">
{#results}
<div class="row">
{#userWorkflowName}<div class="col-md-3"><h4><small>User workflow</small></h4>{.}</div>{/userWorkflowName}
{#userWorkflowEngine}<div class="col-md-3"><h4><small>User workflow engine</small></h4>{.}</div>{/userWorkflowEngine}
{#publisher}<div class="col-md-3"><h4><small>Publisher</small></h4>{.}</div>{/publisher}
{#runs-on}<div class="col-md-3"><h4><small>Runs on</small></h4>{.}</div>{/runs-on}
{#owner}<div class="col-md-3"><h4><small>Owner</small></h4>{.}</div>{/owner}
{#owned-by}<div class="col-md-3"><h4><small>Owned by</small></h4>{.}</div>{/owned-by}
</div>
{/results}
</script>

<script src="js/jquery-1.11.0.min.js" type="text/javascript">
</script><script src="js/bootstrap.min.js" type="text/javascript">
</script><script src="js/dust-full-2.0.0.min.js" type="text/javascript">
</script><script src="js/dust-helpers-1.2.0.min.js" type="text/javascript">
</script><script src="js/d3.v3.min.js" charset="utf-8">
</script><script src="js/dagre.min.js" type="text/javascript">
</script><script src="js/falcon.js" type="text/javascript">
</script><script src="js/falcon-entity.js" type="text/javascript">
</script><script src="js/falcon-lineage.js" type="text/javascript">
</script>
</body>
</html>
