<!DOCTYPE html>
<!--
~ Copyright 2014,2015 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.
-->
<html>
<head>
    <meta charset="utf-8">
    <link rel="shortcut icon" href="data/img/onos-logo.png">

    <link rel="apple-touch-icon" href="data/img/apple-touch-icon.png">
    <meta name="apple-mobile-web-app-capable" content="yes">
    <meta name="apple-mobile-web-app-status-bar-style" content="black">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>ONOS</title>

    <!-- Third party library code included here -->
    <!--TODO: use minified versions, once debugging is complete -->
    <script src="tp/angular.js"></script>
    <script src="tp/angular-route.js"></script>

    <script src="tp/d3.js"></script>
    <script src="tp/topojson.v1.min.js"></script>

    <!-- ONOS UI Framework included here -->
    <!-- TODO: use a single catenated-minified file here -->
    <script src="onos.js"></script>
    <script src="app/directives.js"></script>

    <script src="app/fw/util/util.js"></script>
    <script src="app/fw/util/fn.js"></script>
    <script src="app/fw/util/random.js"></script>
    <script src="app/fw/util/theme.js"></script>
    <script src="app/fw/util/keys.js"></script>

    <script src="app/fw/mast/mast.js"></script>
    <script src="app/fw/nav/nav.js"></script>

    <script src="app/fw/svg/svg.js"></script>
    <script src="app/fw/svg/glyph.js"></script>
    <script src="app/fw/svg/icon.js"></script>
    <script src="app/fw/svg/geodata.js"></script>
    <script src="app/fw/svg/map.js"></script>
    <script src="app/fw/svg/zoom.js"></script>
    <script src="app/fw/svg/svgUtil.js"></script>

    <script src="app/fw/remote/remote.js"></script>
    <script src="app/fw/remote/urlfn.js"></script>
    <script src="app/fw/remote/rest.js"></script>
    <script src="app/fw/remote/wsock.js"></script>
    <script src="app/fw/remote/websocket.js"></script>

    <script src="app/fw/widget/widget.js"></script>
    <script src="app/fw/widget/table.js"></script>
    <script src="app/fw/widget/toolbar.js"></script>
    <script src="app/fw/widget/tooltip.js"></script>
    <script src="app/fw/widget/button.js"></script>
    <script src="app/fw/widget/tableBuilder.js"></script>

    <script src="app/fw/layer/layer.js"></script>
    <script src="app/fw/layer/panel.js"></script>
    <script src="app/fw/layer/flash.js"></script>
    <script src="app/fw/layer/quickhelp.js"></script>
    <script src="app/fw/layer/veil.js"></script>

    <!-- Framework and library stylesheets included here -->
    <!-- TODO: use a single catenated-minified file here -->
    <link rel="stylesheet" href="app/onos.css">
    <link rel="stylesheet" href="app/common.css">
    <link rel="stylesheet" href="app/fw/mast/mast.css">
    <link rel="stylesheet" href="app/fw/svg/glyph.css">
    <link rel="stylesheet" href="app/fw/svg/icon.css">
    <link rel="stylesheet" href="app/fw/layer/panel.css">
    <link rel="stylesheet" href="app/fw/layer/flash.css">
    <link rel="stylesheet" href="app/fw/layer/quickhelp.css">
    <link rel="stylesheet" href="app/fw/layer/veil.css">
    <link rel="stylesheet" href="app/fw/nav/nav.css">
    <link rel="stylesheet" href="app/fw/widget/button.css">
    <link rel="stylesheet" href="app/fw/widget/toolbar.css">
    <link rel="stylesheet" href="app/fw/widget/tooltip.css">
    <link rel="stylesheet" href="app/fw/widget/table.css">

    <!-- This is where contributed javascript will get injected -->
    <!-- {INJECTED-JAVASCRIPT-START} -->
    <script src="app/view/topo/topo.js"></script>
    <script src="app/view/topo/topoD3.js"></script>
    <script src="app/view/topo/topoEvent.js"></script>
    <script src="app/view/topo/topoFilter.js"></script>
    <script src="app/view/topo/topoForce.js"></script>
    <script src="app/view/topo/topoInst.js"></script>
    <script src="app/view/topo/topoLink.js"></script>
    <script src="app/view/topo/topoModel.js"></script>
    <script src="app/view/topo/topoOblique.js"></script>
    <script src="app/view/topo/topoPanel.js"></script>
    <script src="app/view/topo/topoSelect.js"></script>
    <script src="app/view/topo/topoTraffic.js"></script>
    <script src="app/view/topo/topoToolbar.js"></script>
    <script src="app/view/device/device.js"></script>
    <script src="app/view/host/host.js"></script>
    <script src="app/view/app/app.js"></script>
    <script src="app/view/intent/intent.js"></script>
    <script src="app/view/sample/sample.js"></script>
    <!-- {INJECTED-JAVASCRIPT-END} -->


    <!-- This is where contributed stylesheets will get injected -->
    <!-- {INJECTED-STYLESHEETS-START} -->
    <link rel="stylesheet" href="app/view/topo/topo.css">
    <link rel="stylesheet" href="app/view/device/device.css">
    <link rel="stylesheet" href="app/view/host/host.css">
    <link rel="stylesheet" href="app/view/app/app.css">
    <link rel="stylesheet" href="app/view/intent/intent.css">
    <link rel="stylesheet" href="app/view/sample/sample.css">
    <!-- {INJECTED-STYLESHEETS-END} -->

</head>
<body class="light" ng-app="onosApp">
<div id="frame" ng-controller="OnosCtrl as onosCtrl">
    <div id="mast"
         ng-controller="MastCtrl as mastCtrl"
         ng-include="'app/fw/mast/mast.html'"></div>

    <div id="view" ng-view></div>

    <div id="nav"
         ng-controller="NavCtrl as navCtrl"
         ng-include="'nav.html'"></div>

    <div id="floatpanels"></div>
    <div id="alerts"></div>
    <div id="tooltip"></div>
    <div id="flash"></div>
    <div id="quickhelp"></div>
    <div id="veil"
         resize
         ng-style="resizeWithOffset(0, 0)"></div>
</div>

<script>
    <!-- Inject user agent info into html element to allow CSS sensitivity. -->
    (function () {
        var t = !!('ontouchstart' in window) || !!('onmsgesturechange' in window);
        d3.select(document.documentElement)
            .attr('data-useragent', navigator.userAgent)
            .attr('data-platform', navigator.platform)
            .classed('touch', t);
    }());
</script>
</body>
</html>
