You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
consul/ui/index.html

357 lines
11 KiB

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Consul</title>
<link rel="stylesheet" href="static/bootstrap.min.css">
<link rel="stylesheet" href="static/base.css">
</head>
<body>
<div class="container">
<div class="col-md-12">
<div id="app">
</div>
</div>
</div>
<script type="text/x-handlebars">
{{outlet}}
</script>
<script type="text/x-handlebars" data-template-name="dc">
<div class="row">
<div class="col-md-12 col-sm-12 col-xs-12 topbar">
<div class="col-md-1 col-sm-2 col-xs-12">
<a href="#"><div class="top-brand"></div></a>
</div>
<div class="col-md-2 col-sm-3 col-xs-12">
{{#link-to 'services' class='btn btn-default col-xs-12'}}Services{{/link-to}}
</div>
<div class="col-md-2 col-sm-3 col-xs-12">
{{#link-to 'nodes' class='btn btn-default col-xs-12'}}Nodes{{/link-to}}
</div>
<div class="col-md-2 col-sm-3 col-xs-12">
{{#link-to 'kv' class='btn btn-default col-xs-12'}}Key/Value{{/link-to}}
</div>
<div class="col-md-2 col-md-offset-1 col-sm-3 col-sm-offset-5 col-xs-6">
{{#link-to 'services'}}<button {{bind-attr class=":col-xs-12 :btn hasFailingChecks:btn-warning:btn-success"}}>{{ checkMessage }}</button>{{/link-to}}
</div>
<div class="col-md-2 col-sm-3 col-xs-6">
<button type="button" {{bind-attr class=":col-xs-12 :btn isDropDownVisible:btn-primary:btn-default"}} {{action "toggle"}}> {{model}} <span class="caret"></span> </button>
{{#if isDropdownVisible}}
<ul class="dropdown-menu col-xs-12" style="display:block;">
{{#each dc in dcs}}
<li {{action "toggle"}}>{{#link-to 'services' dc}}{{dc}}{{/link-to}}</li>
{{/each}}
</ul>
{{/if}}
</div>
</div>
</div>
{{outlet}}
</script>
<script type="text/x-handlebars" data-template-name="kv/show">
<div class="row">
<h5><a class="subtle" href="" {{action 'linkToKey' topModel.grandParentKey }}>{{topModel.parentKey}}</a></h5>
</div>
<div class="row">
<div class="col-md-5">
<div class="row">
{{#each item in model }}
{{#link-to item.linkToRoute item.urlSafeKey href=false tagName="div" class="panel panel-link panel-short"}}
<div {{bind-attr class=":panel-bar item.isFolder:bg-gray:bg-light-gray" }}></div>
<div class="panel-heading">
<h3 class="panel-title">
{{item.key}}
</h3>
</div>
{{/link-to}}
{{/each}}
</div>
</div>
<div class="col-md-6 col-md-offset-1">
<div class="panel">
<div {{ bind-attr class=":panel-bar newKey.isValid:bg-green:bg-light-gray" }}></div>
<div class="panel-heading">
<h3 class="panel-title">
Create Key
</h3>
</div>
<div class="panel-body">
<form class="form">
<div class="form-group">
<div class="input-group">
<span class="input-group-addon">{{topModel.parentKey}}</span>
{{ input value=newKey.key class="form-control" required=true }}
</div>
</div>
<div class="form-group">
{{ textarea value=newKey.value class="form-control"}}
</div>
<button {{ action "createKey"}} {{bind-attr disabled=newKey.isInvalid }} {{ bind-attr class=":btn newKey.isValid:btn-success:btn-default" }}>Create</button>
</form>
</div>
</div>
</div>
</div>
</script>
<script type="text/x-handlebars" data-template-name="kv/edit">
<div class="row">
<h5><a class="subtle" href="" {{action 'linkToKey' model.grandParentKey }}>{{model.parentKey}}</a></h5>
</div>
<div class="row">
<div class="col-md-5">
<div class="row">
{{#each item in siblings }}
{{#link-to item.linkToRoute item.urlSafeKey href=false tagName="div" class="panel panel-link panel-short"}}
<div {{bind-attr class=":panel-bar item.isFolder:bg-gray:bg-light-gray" }}></div>
<div class="panel-heading">
<h3 class="panel-title">
{{item.key}}
</h3>
</div>
{{/link-to}}
{{/each}}
</div>
</div>
<div class="col-md-6 col-md-offset-1">
<div class="panel">
<div {{ bind-attr class=":panel-bar isLoading:bg-orange:bg-green" }}></div>
<div class="panel-heading">
<h3 class="panel-title">
{{model.key}}
</h3>
</div>
<div class="panel-body">
<form class="form">
<div class="form-group">
{{ textarea value=model.value class="form-control"}}
</div>
<button {{ action "updateKey"}} {{bind-attr disabled=isLoading }} {{ bind-attr class=":btn isLoading:btn-warning:btn-success" }}>Update</button>
<button {{ action "deleteKey"}} {{bind-attr disabled=isLoading }} {{ bind-attr class=":btn :pull-right isLoading:btn-warning:btn-danger" }}>Delete</button>
</form>
</div>
</div>
</div>
</div>
</script>
<script type="text/x-handlebars" id="services">
<div {{ bind-attr class=":col-md-5 hasChild:hidden" }}>
{{#each service in services}}
<div class="row">
{{#link-to 'services.show' service.Name tagName="div" href=false class="list-group-item list-link" }}
<div {{bind-attr class="service.hasFailingChecks:bg-orange:bg-green :list-bar"}}></div>
<h4 class="list-group-item-heading">
{{#link-to 'services.show' service.Name class='subtle'}}{{service.Name}}{{/link-to}}
<div class="heading-helper">
<a class="subtle" href="#">{{service.checkMessage}}</a>
</div>
</h4>
<ul class="list-inline">
{{#each node in service.Nodes }}
<li>{{#link-to 'nodes.show' node class='subtle'}}{{node}}{{/link-to}}</li>
{{/each}}
</ul>
{{/link-to}}
</div>
{{/each}}
</div>
<div class="col-md-6 col-md-offset-1">
<div class="row">
{{outlet}}
</div>
</div>
</script>
<script type="text/x-handlebars" id="service">
<h2 class="no-margin">{{ model.1.ServiceName }}</h2>
<hr>
<h5>Tags</h5>
<p>Pending...</p>
<h5>Nodes</h5>
{{#each node in model }}
{{#link-to 'nodes.show' node.Node tagName="div" href=false class="panel panel-link" }}
<div {{ bind-attr class=":panel-bar node.hasFailingChecks:bg-orange:bg-green" }}></div>
<div class="panel-heading">
<h3 class="panel-title">
{{#link-to 'nodes.show' node.Node class='subtle'}}{{node.Node}}{{/link-to}}
<small>{{node.Address}}</small>
<span class="panel-note">{{node.checkMessage}}</span>
</h3>
</div>
<div class="panel-body">
<ul class="list-unstyled list-broken">
{{#each check in node.Checks }}
<li>
<h4>{{ check.Name }} <small>{{ check.CheckID }}</small> <span class="pull-right"><small>{{check.Status}}</small></h4>
</li>
{{/each}}
</ul>
</div>
{{/link-to}}
{{/each}}
{{#link-to "services" class="btn btn-default col-xs-12 visible-xs" }}All Services{{/link-to}}
</script>
<script type="text/x-handlebars" id="nodes">
<div class="col-md-5">
{{#each node in nodes}}
<div class="row">
{{#link-to 'nodes.show' node.Name tagName="div" href=false class="list-group-item list-link" }}
<div {{bind-attr class="node.hasFailingChecks:bg-orange:bg-green :list-bar"}}></div>
<h4 class="list-group-item-heading">
{{#link-to 'nodes.show' node.Name class='subtle'}}{{node.Name}}{{/link-to}}
<small>{{node.Address}}</small>
<div class="heading-helper">
<a class="subtle" href="#">{{node.checkMessage}}</a>
</div>
</h4>
<ul class="list-inline">
{{#each service in node.Services }}
<li>{{#link-to 'services.show' service class='subtle'}}{{service}}{{/link-to}}</li>
{{/each}}
</ul>
</div>
{{/link-to}}
{{/each}}
</div>
<div class="col-md-6 col-md-offset-1">
<div class="row">
{{outlet}}
</div>
</div>
</script>
<script type="text/x-handlebars" id="node">
<h2 class="no-margin">{{ model.Node.Node }} <small> {{ model.Node.Address }}</small></h2>
<hr>
<h5>Checks</h5>
{{#each check in model.Checks }}
<div class="panel">
<div {{bind-attr class=":panel-bar model.hasFailingChecks:bg-orange:bg-green"}} ></div>
<div class="panel-heading">
<h3 class="panel-title">
{{check.Name}}
<small>{{check.CheckID}}</small>
<span class="panel-note">{{check.Status}}</span>
</h3>
</div>
<div class="panel-body">
<h5>Notes</h5>
<p>{{ check.Notes }}</p>
<h5>Output</h5>
<pre>
{{check.Output}}
</pre>
</div>
</div>
{{/each}}
<h5>Services</h5>
{{#each service in model.Services }}
{{#link-to 'services.show' service.Service }}
<div class="panel panel-link panel-short">
<div class="panel-bar bg-light-gray"></div>
<div class="panel-heading">
<h3 class="panel-title">
{{service.Service}}
<small>{{sevice.ID}}</small>
<span class="panel-note">:{{service.Port}}</span>
</h3>
</div>
</div>
{{/link-to}}
{{/each}}
{{#link-to "nodes" class="btn btn-default col-xs-12 visible-xs" }}All Nodes{{/link-to}}
</script>
<script type="text/x-handlebars" id="index">
<div class="col-md-8 col-md-offset-2 vertical-center">
{{#each item in model}}
{{#link-to 'services' item }}
<div class="panel panel-link panel-short">
<div class="panel-bar bg-green"></div>
<div class="panel-heading">
<h3 class="panel-title">
{{item}}
<small>{{item}}</small>
<span class="panel-note">all checks passing</span>
</h3>
</div>
</div>
{{/link-to}}
{{/each}}
</div>
</script>
<script src="javascripts/libs/jquery-1.10.2.js"></script>
<script src="javascripts/libs/handlebars-1.1.2.js"></script>
<script src="javascripts/libs/ember-1.5.0.js"></script>
<script src="javascripts/libs/ember-validations.js"></script>
<script src="javascripts/fixtures.js"></script>
<script src="javascripts/app/router.js"></script>
<script src="javascripts/app/routes.js"></script>
<script src="javascripts/app/models.js"></script>
<script src="javascripts/app/views.js"></script>
<script src="javascripts/app/controllers.js"></script>
<!-- to activate the test runner, add the "?test" query string parameter -->
<script src="tests/runner.js"></script>
</body>
</html>