a07e395181
I changed what I think is needed and I have done manual testing on this. I tried to keep the changes to a minimun. The changes are approx: * HTML output now includes the provider name in parenthesis. * I'm not versed in bootstrap, should the output group providers in a * table? * PUT is only enabled on /api/web. * GET on /api returns a map containing all providers configuration * GET on /api/{provider} will return the config as before on that * provider.
101 lines
3.8 KiB
Cheetah
101 lines
3.8 KiB
Cheetah
<!DOCTYPE html>
|
||
<html>
|
||
<head>
|
||
<title>/ˈTræfɪk/</title>
|
||
|
||
<!-- Bootstrap -->
|
||
<link rel="stylesheet" href="/static/bootstrap/css/bootstrap.min.css">
|
||
<link rel="stylesheet" href="/static/bootstrap/css/bootstrap-theme.min.css">
|
||
<script src="/static/jquery-2.1.4.min.js"></script>
|
||
<script src="/static/bootstrap/js/bootstrap.min.js"></script>
|
||
|
||
<style type="text/css">
|
||
body {padding-bottom: 70px;}
|
||
.content {margin:10px;}
|
||
</style>
|
||
</head>
|
||
|
||
<body>
|
||
|
||
<div class="container">
|
||
<div class="jumbotron">
|
||
<h1>/ˈTræfɪk/</h1>
|
||
</div>
|
||
|
||
<div class="row">
|
||
|
||
<div class="col-md-6">
|
||
<!-- <div class="panel-heading">Frontends</div>
|
||
<div class="panel-body"> -->
|
||
{{range $keyProviders, $valueProviders := .Configurations}}
|
||
{{range $keyFrontends, $valueFrontends := $valueProviders.Frontends}}
|
||
<div class="panel panel-primary">
|
||
<div class="panel-heading">{{$keyFrontends}} - ({{$keyProviders}})</div>
|
||
<div class="panel-body">
|
||
<a class="btn btn-info" role="button" data-toggle="collapse" href="#{{$valueFrontends.Backend}}" aria-expanded="false">
|
||
{{$valueFrontends.Backend}}
|
||
</a>
|
||
</div>
|
||
<table class="table table-striped table-hover">
|
||
<tr>
|
||
<td><em>Route</em></td>
|
||
<td><em>Rule</em></td>
|
||
<td><em>Value</em></td>
|
||
</tr>
|
||
{{range $keyRoutes, $valueRoutes := $valueFrontends.Routes}}
|
||
<tr>
|
||
<td>{{$keyRoutes}}</td>
|
||
<td>{{$valueRoutes.Rule}}</td>
|
||
<td>{{$valueRoutes.Value}}</td>
|
||
</tr>
|
||
{{end}}
|
||
</table>
|
||
</div>
|
||
{{end}}
|
||
{{end}}
|
||
<!-- </div> -->
|
||
</div>
|
||
<div class="col-md-6">
|
||
<!-- <div class="panel-heading">Backends</div>
|
||
<div class="panel-body"> -->
|
||
{{range $keyProviders, $valueProviders := .Configurations}}
|
||
{{range $keyBackends, $valueBackends := $valueProviders.Backends}}
|
||
<div class="panel panel-primary" id="{{$keyBackends}}">
|
||
<div class="panel-heading">{{$keyBackends}}({{$keyProviders}})</div>
|
||
<div class="panel-body">
|
||
{{with $valueBackends.LoadBalancer}}
|
||
<a class="btn btn-info" role="button">
|
||
Load Balancer: {{.Method}}
|
||
</a>
|
||
{{end}}
|
||
{{with $valueBackends.CircuitBreaker}}
|
||
<a class="btn btn-info" role="button">
|
||
Circuit Breaker: {{.Expression}}
|
||
</a>
|
||
{{end}}
|
||
</div>
|
||
<table class="table table-striped table-hover">
|
||
<tr>
|
||
<td><em>Server</em></td>
|
||
<td><em>URL</em></td>
|
||
<td><em>Weight</em></td>
|
||
</tr>
|
||
{{range $keyServers, $valueServers := $valueBackends.Servers}}
|
||
<tr>
|
||
<td>{{$keyServers}}</td>
|
||
<td><code><A href="{{$valueServers.URL}}">{{$valueServers.URL}}</A></code></td>
|
||
<td>{{$valueServers.Weight}}</td>
|
||
</tr>
|
||
{{end}}
|
||
</table>
|
||
</div>
|
||
{{end}}
|
||
{{end}}
|
||
<!-- </div> -->
|
||
</div>
|
||
|
||
</div>
|
||
</div>
|
||
|
||
</body>
|
||
</html>
|