<!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.
-->
<html>
<head>
    <meta charset="utf-8">
    <link rel="shortcut icon" href="../data/img/onos-logo.png">
    <title>ONOS Angular</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>
    <script src="../tp/jquery-2.1.1.min.js"></script>

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

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

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

    <!-- Framework and library stylesheets included here -->
    <!-- TODO: use a single catenated-minified file here -->
    <link rel="stylesheet" href="onos.css">
    <link rel="stylesheet" href="fw/mast/mast.css">

    <!-- This is where contributed javascript get injected -->
    <!-- INJECTED-JAVASCRIPT -->
    <!-- TODO: inject javascript refs server-side -->

    <!-- This is where contributed stylesheets get injected -->
    <!-- INJECTED-CSS-STYLESHEETS -->
    <!-- TODO: inject style-sheet refs server-side -->
</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="'fw/mast/mast.html'"></div>

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

        <div id="floatpanels"></div>
        <div id="alerts"></div>
        <div id="flash"></div>
        <div id="quickhelp"></div>
        <div id="deathmask"></div>
    </div>
</body>
</html>
