<!--
 Copyright (c) 2017 SONATA-NFV and Paderborn University
 ALL RIGHTS RESERVED.
 
 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.

 Neither the name of the SONATA-NFV, Paderborn University
 nor the names of its contributors may be used to endorse or promote
 products derived from this software without specific prior written
 permission.

 This work has been performed in the framework of the SONATA project,
 funded by the European Commission under Grant number 671517 through
 the Horizon 2020 and 5G-PPP programmes. The authors would like to
 acknowledge the contributions of their colleagues of the SONATA
 partner consortium (www.sonata-nfv.eu).
-->

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
    <title>Emulator Dashboard</title>

    <!-- Bootstrap -->
    <!--<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">-->
    <link href="https://maxcdn.bootstrapcdn.com/bootswatch/3.3.7/flatly/bootstrap.min.css" rel="stylesheet" integrity="sha384-+ENW/yibaokMnme+vBLnHMphUYxHs34h9lpdbSLuAwGkOKFRl4C34WkjazBtb7eT" crossorigin="anonymous">

    <link href="css/main.css" rel="stylesheet">

    <!-- jQuery -->
   <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min.js" type="text/javascript"></script>
    <!--<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.jss" type="text/javascript"></script>-->
    <script src="https://cdnjs.cloudflare.com/ajax/libs/bootbox.js/4.4.0/bootbox.min.js" type="text/javascript"></script>

    <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
    <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
    <!--[if lt IE 9]>
    <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
    <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
    <![endif]-->



    <script src="js/main.js" type="text/javascript"></script>


</head>
<style>

.link {
  stroke: #ccc;
}

.node text {
  pointer-events: none;
  font: 15px sans-serif;
}

</style>
<body>
  <div id="page-top">
    <div class="row">
      <div class="col-sm-8"><h1>Emulator Dashboard</h1></div>
    </div>



</div>
  <div id="content">


<div class="panel panel-primary">
  <!-- Default panel contents -->
  <div class="panel-heading"><span>Emulated Datacenters</span>&nbsp;&nbsp;<span class="badge" id="lbl_datacenter_count">0</span><span class="pull-right" id="lbl_lateness_datacenter">Lateness: -</span></div>
  <!-- Table -->
  <table class="table table-striped table-hover" id="table_datacenter">
  </table>
</div>

<div class="spacer">&nbsp;</div>
 
<div class="panel panel-primary">
  <!-- Default panel contents -->
  <div class="panel-heading"><span>Running Containers</span>&nbsp;&nbsp;<span class="badge" id="lbl_container_count">0</span><span class="pull-right" id="lbl_lateness_container">Lateness: -</span></div>
  <!-- Table -->
  <table class="table table-striped table-hover" id="table_container">
  </table>
</div>

<div class="spacer">&nbsp;</div>

<div class="panel panel-primary">
    <div class="panel-heading"><span>Placement Graph</span>&nbsp;&nbsp;</div>
    <table class="table table-striped table-hover" id="table_graph">

    </table>
</div>
    <script src="js/d3.v3.min.js"></script>
    <script src="js/graph.js" type="text/javascript"></script>

</div>

<footer class="footer text-center small">(c) 2017 by SONATA Consortium and Paderborn University and IMEC</footer>


</body>

</html>
