<!DOCTYPE html>
<!--
~ Copyright 2014-present 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">

    <link href='https://fonts.googleapis.com/css?family=Open+Sans:400,300,700'
          rel='stylesheet' type='text/css'>

    <title>ONOS</title>

    <!-- Third party library code included here -->
    <script src="dist/vendor.js"></script>

    <!-- {INJECTED-USER-START} -->
    <!-- {INJECTED-USER-END} -->

    <!-- ONOS UI Framework included here -->
    <script src="onos.js"></script>
    <script src="dist/onos.js"></script>

    <!-- Framework and library stylesheets included here -->
    <link rel="stylesheet" href="dist/onos.css">

    <!-- Contributed javascript injected here -->
    <!-- {INJECTED-JAVASCRIPT-START} -->
    <!-- {INJECTED-JAVASCRIPT-END} -->

    <!-- Contributed stylesheets injected here -->
    <!-- {INJECTED-STYLESHEETS-START} -->
    <!-- {INJECTED-STYLESHEETS-END} -->

</head>
<body class="light" ng-app="onosApp">
<div id="frame" ng-controller="OnosCtrl as onosCtrl" detect-browser>
    <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">
        <div class="msg"></div>
        <svg resize></svg>
    </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>
