<!--
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.
-->
<!doctype html>
<html ng-app="serviceCenter">

<head>
    <meta charset="utf-8">
    <title>{{ "serviceCenter" | translate }}</title>
    <meta name="description" content="Service-Center Management Console">
    <meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no" />
    <link rel="stylesheet" href="bower_components/angular-material/angular-material.css" />
    <link rel="stylesheet" href="bower_components/angular-material-data-table/dist/md-data-table.css" />
    <link rel="stylesheet" href="bower_components/components-font-awesome/css/font-awesome.css" />
    <link rel="stylesheet" href="bower_components/angular-swagger-ui/dist/css/swagger-ui.min.css" />
    <link rel="stylesheet" href="bower_components/bootstrap/dist/css/bootstrap.min.css" />
    <link rel="stylesheet" href="bower_components/vis/dist/vis.min.css">
    <link rel="stylesheet" href="bower_components/css-percentage-circle/css/circle.css">
    <link rel="stylesheet" href="styles/main.css">
</head>

<body>
<!--[if lte IE 8]>
<p class="browsehappy">You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/">upgrade your browser</a> to improve your experience.</p>
<![endif]-->

<!-- Add your site or application content here -->

<div class="body-content">
    <div ui-view=""></div>
    <div class="loader"></div>
</div>



<script src="bower_components/jquery/dist/jquery.js"></script>
<script src="bower_components/angular/angular.js"></script>
<script src="bower_components/angular-animate/angular-animate.js"></script>
<script src="bower_components/angular-aria/angular-aria.js"></script>
<script src="bower_components/angular-messages/angular-messages.js"></script>
<script src="bower_components/angular-resource/angular-resource.js"></script>
<script src="bower_components/angular-sanitize/angular-sanitize.js"></script>
<script src="bower_components/angular-ui-router/release/angular-ui-router.js"></script>
<script src="bower_components/angular-translate/angular-translate.js"></script>
<script src="bower_components/angular-translate-loader-static-files/angular-translate-loader-static-files.js"></script>
<script src="bower_components/angular-material/angular-material.js"></script>
<script src="bower_components/angular-material-data-table/dist/md-data-table.js"></script>
<script src="bower_components/angular-swagger-ui/dist/scripts/swagger-ui.js"></script>
<script src="bower_components/angular-yamljs/dist/angular-yamljs.js"></script>
<script src="bower_components/yaml.js/dist/yaml.js"></script>
<script src="bower_components/angular-swagger-ui/dist/scripts/modules/swagger-yaml-parser.min.js"></script>
<script src="bower_components/jszip/vendor/FileSaver.js"></script>
<script src="bower_components/jszip/dist/jszip.min.js"></script>
<script src="bower_components/js-yaml/dist/js-yaml.min.js"></script>
<script src="bower_components/swagger-ui/dist/swagger-ui-bundle.js"></script>
<script src="bower_components/swagger-ui/dist/swagger-ui-standalone-preset.js"></script>
<script src="bower_components/vis/dist/vis.min.js"></script>
<!-- build:js({.tmp,app}) scripts/scripts.js -->
<script src="scripts/app.js"></script>
<!-- Load common services -->
<script src="scripts/services/httpService.js"></script>
<script src="scripts/services/commonService.js"></script>
<script src="apiList/apiList.js"></script>
<!-- Load all the directive files here -->
<script src="scripts/directives/nodataFoundDirective.js"></script>
<script src="scripts/directives/tableDirective.js"></script>
<!-- Load all the serviceCenter modules controller files here -->
<script src="scripts/modules/dashboard/controllers/dashboardCtrl.js"></script>
<!-- Load all the serviceCenter modules controller files here -->
<script src="scripts/modules/serviceCenter/controllers/servicesListCtrl.js"></script>
<script src="scripts/modules/serviceCenter/controllers/serviceInfoCtrl.js"></script>
<script src="scripts/modules/serviceCenter/controllers/schemaCtrl.js"></script>
<!-- Load all the serviceCenter modules filter files here -->
<script src="scripts/modules/serviceCenter/filters/formatSchema.js"></script>
<!-- Load all the instances modules controller files here -->
<script src="scripts/modules/instances/controllers/instancesCtrl.js"></script>
<!-- Load all the topology modules controller files here -->
<script src="scripts/modules/topology/controllers/topologyCtrl.js"></script>
<!-- Load the serviceCenter router modules files here -->
<script src="scripts/scRouterConfig.js"></script>
<script src="scripts/controllers/serviceCenterCtrl.js"></script>
<!-- Load languages files here -->
<script src="scripts/languages/locale-en.js"></script>
<script src="scripts/languages/locale-zh.js"></script>
<!-- endbuild -->
</body>

</html>
