<!DOCTYPE html>
<!--
  ~ Copyright 2014 Open Networking Laboratory
  ~
  ~ 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.
  -->

<!--
  ONOS UI - single page web app

  @author Simon Hunt
  -->
<html>
<head>
    <meta charset="utf-8">
    <title>ONOS GUI</title>

    <!--TODO: use the minified version of d3, once debugging is complete -->
    <script src="libs/d3.js"></script>
    <script src="libs/jquery-2.1.1.min.js"></script>

    <link rel="stylesheet" href="base.css">
    <link rel="stylesheet" href="onos.css">

    <script src="geometry.js"></script>
    <script src="onos.js"></script>

</head>
<body>
    <div id="frame">
        <div id="mast">
            <img id="logo" src="img/onos-logo.png">
            <span class="title">Open Network Operating System</span>
            <span id="displayModes" class="right">
                <span id="showAll" class="radio active">All Layers</span>
                <span id="showPkt" class="radio">Packet Only</span>
                <span id="showOpt" class="radio">Optical Only</span>
            </span>
        </div>
        <div id="view">
            <!-- NOTE: svg layer injected here -->
        </div>
        <div id="flyout"></div>
    </div>

    <!-- Initialize the UI...-->
    <script type="text/javascript">
        var ONOS = $.onos({note: "config, if needed"});
    </script>

    <!-- include module files-->
    <!-- + mast.js-->
    <!-- + nav.js-->
    <!-- + .... application views-->

    <!-- for now, we are just bootstrapping the network visualization-->
    <script src="network.js" type="text/javascript"></script>

    <!-- finally, build the UI-->
    <script type="text/javascript">
        $(ONOS.buildUi);
    </script>

</body>
</html>
