<!DOCTYPE html>
<!--
Copyright 2017 Red Hat

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 http-equiv="Content-type" content="text/html; charset=utf-8"/>
  <title id='pagetitle'><%= htmlWebpackPlugin.options.title %></title>
</head>
<body ng-app="zuulStatus" ng-controller="mainController">
  <nav class="navbar navbar-default">
      <div class="container-fluid">
          <div class="navbar-header">
              <a class="navbar-brand" href="../" target="_self">Zuul Dashboard</a>
          </div>
          <ul class="nav navbar-nav">
              <li class="active"><a href="status.html" target="_self">Status</a></li>
              <li><a href="jobs.html" target="_self">Jobs</a></li>
              <li><a href="builds.html" target="_self">Builds</a></li>
          </ul>
      </div>
  </nav>
   <div class="container">
       <div class="zuul-container" id="zuul-container">
           <div style="display: none;" class="alert" id="zuul_msg"></div>
           <button class="btn pull-right zuul-spinner">
               updating <span class="glyphicon glyphicon-refresh"></span>
           </button>
           <p>Queue lengths:
           <span id="zuul_queue_events_num">0</span> events,
           <span id="zuul_queue_management_events_num">0</span> management events,
           <span id="zuul_queue_results_num">0</span> results.
           </p>
           <div id="zuul_controls"></div>
           <div id="zuul_pipelines" class="row"></div>
           <p>Zuul version: <span id="zuul-version-span"></span></p>
           <p>Last reconfigured: <span id="last-reconfigured-span"></span></p>
       </div>
   </div>
</body></html>
