#*
 * Copyright 2012 LinkedIn Corp.
 *
 * Licensed 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.
*#

<!DOCTYPE html>
<html lang="en">
  <head>

#parse("azkaban/webapp/servlet/velocity/style.vm")
#parse("azkaban/webapp/servlet/velocity/javascript.vm")
    <script type="text/javascript" src="${context}/js/azkaban/util/ajax.js"></script>
    <script type="text/javascript" src="${context}/js/azkaban/view/executions.js"></script>
    <script type="text/javascript" src="${context}/js/jquery/jquery.tablesorter.js"></script>
    <script type="text/javascript">
      var contextURL = "${context}";
      var currentTime = ${currentTime};
      var timezone = "${timezone}";
      var errorMessage = null;
      var successMessage = null;
      
      
      $(document).ready(function () {
        var jobTable = $("#executingJobs");
        jobTable.tablesorter();
      });
    </script>
  </head>
  <body>

#set ($current_page="executing")
#parse ("azkaban/webapp/servlet/velocity/nav.vm")

## Page header.

    <div class="az-page-header">
      <div class="container-full">
        <h1><a href="${context}/executor">Executing Flows</a></h1>
      </div>
    </div>

    <div class="container-full">

#parse ("azkaban/webapp/servlet/velocity/alerts.vm")

## Page Content

      <ul class="nav nav-tabs nav-sm" id="header-tabs">
        <li id="currently-running-view-link"><a href="#currently-running">Currently Running</a></li>
        <li id="recently-finished-view-link"><a href="#recently-finished">Recently Finished</a></li>
      </ul>

      <div class="row" id="currently-running-view">
        <div class="col-xs-12">
          <table id="executingJobs" class="table table-striped table-bordered table-hover table-condensed executions-table">
            <thead>
              <tr>
                <th>#</th>
                <th class="execid">Execution Id</th>
                <th >Executor Id</th>
                <th>Flow</th>
                <th>Project</th>
                <th class="user">User</th>
                <th class="user">Proxy</th>
                <th class="date">Start Time</th>
                <th class="date">End Time</th>
                <th class="elapse">Elapsed</th>
                <th class="status">Status</th>
                <th class="action">Action</th>
              </tr>
            </thead>
            <tbody>

#if ( !$null.isNull(${runningFlows}))
  #foreach ($flow in $runningFlows)
              <tr>
                 <td class="tb-name">
                   $velocityCount
                </td>
                <td class="tb-name">
                  <a href="${context}/executor?execid=${flow.getFirst().executionId}">${flow.getFirst().executionId}</a>
                </td>
                <td>
                   #if (${flow.getSecond()})
                       ${flow.getSecond().getId()}											
                   #else
                       -
                   #end
                </td>
                <td><a href="${context}/manager?project=$vmutils.getProjectName(${flow.getFirst().projectId})&flow=${flow.getFirst().flowId}">${flow.getFirst().flowId}</a></td>
                <td>
                  <a href="${context}/manager?project=$vmutils.getProjectName(${flow.getFirst().projectId})">$vmutils.getProjectName(${flow.getFirst().projectId})</a>
                </td>
                <td>${flow.getFirst().submitUser}</td>
                <td>${flow.getFirst().proxyUsers}</td>
                <td>$utils.formatDate(${flow.getFirst().startTime})</td>
                <td>$utils.formatDate(${flow.getFirst().endTime})</td>
                <td>$utils.formatDuration(${flow.getFirst().startTime}, ${flow.getFirst().endTime})</td>
                <td><div class="status ${flow.getFirst().status}">$utils.formatStatus(${flow.getFirst().status})</div></td>
                <td><button type="button" id="cancelbtn" class="btn btn-danger btn-sm" onclick="killFlow(${flow.getFirst().executionId})">Kill</button></td>
              </tr>
  #end
#else
              <tr>
                <td colspan="10">No Executing Flows</td>
              </tr>
#end
            </tbody>
          </table>
        </div><!-- /col-xs-12 -->
      </div><!-- /row -->

      <div class="row" id="recently-finished-view">
        <div class="col-xs-12">
          <table id="recentlyFinished" class="table table-striped table-bordered table-hover table-condensed executions-table">
            <thead>
              <tr>
                <th>#</th>
                <th class="execid">Execution Id</th>
                <th>Flow</th>
                <th>Project</th>
                <th class="user">User</th>
                <th class="user">Proxy</th>
                <th class="date">Start Time</th>
                <th class="date">End Time</th>
                <th class="elapse">Elapsed</th>
                <th class="status">Status</th>
                <th class="action">Action</th>
              </tr>
            </thead>
            <tbody>
#if ( !$null.isNull(${recentlyFinished}))
  #foreach ($flow in $recentlyFinished)
              <tr>
                <td class="tb-name">
                   $velocityCount
                </td>
                <td class="tb-name execId">
                  <a href="${context}/executor?execid=${flow.executionId}">${flow.executionId}</a>
                </td>
                <td><a href="${context}/manager?project=$vmutils.getProjectName(${flow.projectId})&flow=${flow.flowId}">${flow.flowId}</a></td>
                <td>
                  <a href="${context}/manager?project=$vmutils.getProjectName(${flow.projectId})">$vmutils.getProjectName(${flow.projectId})</a>
                </td>
                <td>${flow.submitUser}</td>
                <td>${flow.proxyUsers}</td>
                <td>$utils.formatDate(${flow.startTime})</td>
                <td>$utils.formatDate(${flow.endTime})</td>
                <td>$utils.formatDuration(${flow.startTime}, ${flow.endTime})</td>
                <td><div class="status ${flow.status}">$utils.formatStatus(${flow.status})</div></td>
                <td></td>
              </tr>
  #end
#else
              <tr>
                <td colspan="10">No Recently Finished</td>
              </tr>
#end
            </tbody>
          </table>
        </div><!-- /col-xs-12 -->
      </div><!-- /row -->
      <div class="modal" id="messageDialog">
        <div class="modal-dialog">
          <div class="modal-content">
            <div class="modal-header" id="messageTitle">
              <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
              <h4 class="modal-title">Error</h4>
            </div>
            <div class="modal-body" id="messageDiv">
              <p id="messageBox"></p>
            </div>
            <div class="modal-footer">
              <button type="button" class="btn btn-primary" data-dismiss="modal"  onclick="window.location.reload(true);">Dismiss</button>
            </div>
          </div>
       </div>
      </div>
    </div><!-- /container-full -->
  </body>
</html>
