| |
| <!-- |
| 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. |
| |
| --> |
| <nav class="navbar navbar-default navbar-fixed-top navbar-main"> |
| <div id="fold-button" ng-click="showSidebar()" class="btn btn-default navbar-btn pull-left"><i class="fa fa-navicon"></i></div> |
| <div class="navbar-title">Overview</div> |
| </nav> |
| <div id="content-inner"> |
| <div class="row"> |
| <div class="col-md-6"> |
| <div class="panel panel-default panel-dashboard"> |
| <div class="panel-heading"> |
| <div class="row"> |
| <div class="col-xs-3"><i class="fa fa-tasks fa-3x"></i></div> |
| <div class="col-xs-9 text-right"> |
| <div class="huge">{{overview.taskmanagers}}</div> |
| <div>Task Managers</div> |
| </div> |
| </div> |
| </div> |
| <div class="panel-heading"> |
| <div class="row"> |
| <div class="col-xs-3"><i class="fa fa-folder fa-3x"></i></div> |
| <div class="col-xs-9 text-right"> |
| <div class="huge">{{overview["slots-total"]}}</div> |
| <div>Task Slots</div> |
| </div> |
| </div> |
| </div> |
| <div class="panel-heading"> |
| <div class="row"> |
| <div class="col-xs-3"><i class="fa fa-folder-o fa-3x"></i></div> |
| <div class="col-xs-9 text-right"> |
| <div class="huge">{{overview["slots-available"]}}</div> |
| <div>Available Task Slots</div> |
| </div> |
| </div> |
| </div> |
| </div> |
| </div> |
| <div class="col-md-6"> |
| <div class="panel panel-default panel-lg"> |
| <div class="panel-heading">Total Jobs</div> |
| <div class="list-group"> |
| <div class="list-group-item"> |
| <div class="badge badge-primary">{{overview["jobs-running"]}}</div>Running |
| </div> |
| <div class="list-group-item"> |
| <div class="badge badge-success">{{overview["jobs-finished"]}}</div>Finished |
| </div> |
| <div class="list-group-item"> |
| <div class="badge badge-info">{{overview["jobs-cancelled"]}}</div>Canceled |
| </div> |
| <div class="list-group-item"> |
| <div class="badge badge-danger">{{overview["jobs-failed"]}}</div>Failed |
| </div> |
| </div> |
| </div> |
| </div> |
| </div> |
| <div class="panel panel-default"> |
| <div class="panel-heading"> |
| <h3 class="panel-title">Running Jobs</h3> |
| </div> |
| <div class="panel-body"> |
| <table class="table table-hover table-clickable"> |
| <thead> |
| <tr> |
| <th>Start Time</th> |
| <th>End Time</th> |
| <th>Duration</th> |
| <th>Job Name</th> |
| <th>Job ID</th> |
| <th>Tasks</th> |
| <th>Status</th> |
| </tr> |
| </thead> |
| <tbody> |
| <tr ng-repeat="job in runningJobs|orderBy:"'start-time'"" ui-sref="single-job.plan.overview({ jobid: job.jid })"> |
| <td>{{job['start-time'] | amDateFormat:'YYYY-MM-DD, H:mm:ss'}}</td> |
| <td>{{job['end-time'] | amDateFormat:'YYYY-MM-DD, H:mm:ss'}}</td> |
| <td>{{job.duration}} ms</td> |
| <td>{{job.name}}</td> |
| <td>{{job.jid}}</td> |
| <td class="label-group"> |
| <bs-label status="{{status}}" ng-repeat="(status, value) in job.tasks">{{value}}</bs-label> |
| </td> |
| <td> |
| <bs-label status="{{job.state}}">{{job.state}}</bs-label> |
| </td> |
| </tr> |
| </tbody> |
| </table> |
| </div> |
| </div> |
| <div class="panel panel-default"> |
| <div class="panel-heading"> |
| <h3 class="panel-title">Completed Jobs</h3> |
| </div> |
| <div class="panel-body"> |
| <table class="table table-hover table-clickable"> |
| <thead> |
| <tr> |
| <th>Start Time</th> |
| <th>End Time</th> |
| <th>Duration</th> |
| <th>Job Name</th> |
| <th>Job ID</th> |
| <th>Tasks</th> |
| <th>Status</th> |
| </tr> |
| </thead> |
| <tbody> |
| <tr ng-repeat="job in finishedJobs|orderBy:"'end-time'":true" ui-sref="single-job.plan.overview({ jobid: job.jid })"> |
| <td>{{job['start-time'] | amDateFormat:'YYYY-MM-DD, H:mm:ss'}}</td> |
| <td>{{job['end-time'] | amDateFormat:'YYYY-MM-DD, H:mm:ss'}}</td> |
| <td>{{job.duration}} ms</td> |
| <td>{{job.name}}</td> |
| <td>{{job.jid}}</td> |
| <td class="label-group"> |
| <bs-label status="{{status}}" ng-repeat="(status, value) in job.tasks">{{value}}</bs-label> |
| </td> |
| <td> |
| <bs-label status="{{job.state}}">{{job.state}}</bs-label> |
| </td> |
| </tr> |
| </tbody> |
| </table> |
| </div> |
| </div> |
| </div> |