<!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="../tp/d3.js"></script>
    <script src="../tp/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>
