<!DOCTYPE html>
<!--
  Licensed to the Apache Software Foundation (ASF) under one
  or more contributor license agreements.  See the NOTICE file
  distributed with this work for additional information
  regarding copyright ownership.  The ASF licenses this file
  to you 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.
  -->
<!-- Brooklyn SHA-1: GIT_SHA_1 -->
<html>
<head>
    <meta charset='utf-8'/>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta name="description" content="Brooklyn Web Console (Javascript GUI)">

    <title>Brooklyn JS REST client</title>

    <link rel="stylesheet" href="./assets/css/codemirror.css">
    <link rel="stylesheet" href="./assets/js/libs/font-awesome/css/font-awesome.css">
    <link rel="stylesheet" href="./assets/css/show-hint.css">
    <link rel="stylesheet" href="./assets/css/styles.css">
    <link rel="stylesheet" href="./assets/css/codemirror-brooklyn.css">
    <link rel="stylesheet" href="./assets/css/brooklyn.css">
    <style>
        body {
            padding-top: 60px; /* 60px to make the container go all the way to the bottom of the topbar */
        }
    </style>

    <!-- HTML5 shim, for IE6-8 support of HTML5 elements -->
    <!--[if lt IE 9]>
    <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
    <![endif]-->
</head>
<body>

<div class="navbar navbar-fixed-top">
    <div class="navbar-inner">
        <div class="userName-top"><span id="user"></span> | <a href="/v1/logout" id="logout-link">Log out</a></div>
        <div class="container">
            <a class="logo" href="#" title="Brooklyn, Version 0.11.0"><!-- Logo added via CSS --></a> <!-- BROOKLYN_VERSION -->
            <div class="menubar-top">
                <ul class="nav">
                    <li><a href="#v1/home" class="nav1 nav1_home">Home</a></li>
                    <!-- TODO extend API with v1/editor -->
                    <li><a href="#v1/editor/" class="nav1 nav1_editor">Composer</a></li>
                    <li><a href="#v1/applications" class="nav1 nav1_apps">Applications</a></li>
                    <li><a href="#v1/catalog" class="nav1 nav1_catalog">Catalog</a></li>
                    <li class="dropdown">
                        <a href="#" class="nav1 nav1_script dropdown-toggle" data-toggle="dropdown">Script</a>
                        <ul class="dropdown-menu" role="menu" aria-labelledby="dLabel">
                            <li><a href="./assets/html/swagger-ui.html" target="_blank" class="nav1 nav1_apidoc">REST API</a></li>
                            <li><a href="#v1/script/groovy" class="nav1 nav1_groovy">Groovy</a></li>
                        </ul>
                    </li>
                    <li><a href="#v1/help" class="nav1 nav1_help"><b>?</b></a></li>
                </ul>
            </div>
        </div>
    </div>
</div>

<div id="main-content">
    <div id="application-content"></div>
    <div id="server-caution-overlay"></div>
</div>

<!-- load our code with require.js. data-main is replaced with optimised file at build -->
<script type="text/javascript" data-main="./assets/js/config.js" src="./assets/js/libs/require.js"></script>

</body>
</html>
