mirror of
https://github.com/cuigh/swirl
synced 2025-01-05 18:41:56 +00:00
108 lines
3.4 KiB
Go
108 lines
3.4 KiB
Go
|
{{ extends "../_layouts/default" }}
|
||
|
{{ import "../_modules/pager" }}
|
||
|
|
||
|
{{ block script() }}
|
||
|
<script>$(() => new Swirl.Service.ListPage())</script>
|
||
|
{{ end }}
|
||
|
|
||
|
{{ block body() }}
|
||
|
<section class="hero is-info">
|
||
|
<div class="hero-body">
|
||
|
<div class="container has-text-centered">
|
||
|
<h1 class="title is-2">
|
||
|
SERVICE
|
||
|
</h1>
|
||
|
<h2 class="subtitle is-5">
|
||
|
Services are the definitions of tasks to run on a swarm.
|
||
|
</h2>
|
||
|
</div>
|
||
|
</div>
|
||
|
<div class="hero-foot">
|
||
|
<div class="container">
|
||
|
<nav class="tabs is-boxed">
|
||
|
<ul>
|
||
|
<li class="is-active">
|
||
|
<a href="/service/">Services</a>
|
||
|
</li>
|
||
|
<li>
|
||
|
<a href="/service/template/">Templates</a>
|
||
|
</li>
|
||
|
</ul>
|
||
|
</nav>
|
||
|
</div>
|
||
|
</div>
|
||
|
</section>
|
||
|
|
||
|
<section class="section">
|
||
|
<nav class="level">
|
||
|
<!-- Left side -->
|
||
|
<div class="level-left">
|
||
|
<div class="level-item">
|
||
|
<form>
|
||
|
<div class="field has-addons">
|
||
|
<p class="control">
|
||
|
<input name="name" value="{{.Name}}" class="input" placeholder="Search by name">
|
||
|
</p>
|
||
|
<p class="control">
|
||
|
<button class="button is-primary">Search</button>
|
||
|
</p>
|
||
|
</div>
|
||
|
</form>
|
||
|
</div>
|
||
|
<div class="level-item">
|
||
|
<p class="subtitle is-5">
|
||
|
<strong>{{.Pager.Count}}</strong> services
|
||
|
</p>
|
||
|
</div>
|
||
|
</div>
|
||
|
<!-- Right side -->
|
||
|
<div class="level-right">
|
||
|
<p class="level-item">
|
||
|
<button id="btn-delete" class="button is-danger"><span class="icon"><i class="fa fa-remove"></i></span><span>Delete</span></button>
|
||
|
</p>
|
||
|
<p class="level-item">
|
||
|
<a class="button is-success" href="new"><span class="icon"><i class="fa fa-plus"></i></span><span>New</span></a>
|
||
|
</p>
|
||
|
</div>
|
||
|
</nav>
|
||
|
|
||
|
<table id="table-items" class="table is-bordered is-striped is-narrow is-fullwidth">
|
||
|
<thead>
|
||
|
<tr>
|
||
|
<th width="30"><input type="checkbox" data-action="check-all"></th>
|
||
|
<th>Name</th>
|
||
|
<th>Image</th>
|
||
|
<th width="145">Mode</th>
|
||
|
<th>Updated</th>
|
||
|
<th width="160">Action</th>
|
||
|
</tr>
|
||
|
</thead>
|
||
|
<tbody>
|
||
|
{{range .Services}}
|
||
|
<tr>
|
||
|
<td><input type="checkbox" value="{{.Name}}" data-action="check"></td>
|
||
|
<td><a href="{{.Name}}/detail">{{.Name}}</a></td>
|
||
|
<td>{{ limit(.Image, 60) }}</td>
|
||
|
<td>
|
||
|
<div class="tags has-addons">
|
||
|
<span class="tag is-{{.Mode == "replicated" ? "info" : "dark"}}">{{.Mode}}</span>
|
||
|
<span class="tag is-{{.Actives == 0 ? "danger" : (.Actives < .Replicas ? "warning" : "success")}}">{{.Actives}}/{{.Replicas}}</span>
|
||
|
</div>
|
||
|
</td>
|
||
|
<td>{{time(.UpdatedAt)}}</td>
|
||
|
<td>
|
||
|
<div class="field has-addons">
|
||
|
<p class="control"><a href="{{.Name}}/edit" class="button is-small is-dark is-outlined">Edit</a></p>
|
||
|
{{if .Mode == "replicated"}}
|
||
|
<p class="control"><button type="button" class="button is-small is-info is-outlined" data-action="scale-service" data-replicas="{{.Replicas}}">Scale</button></p>
|
||
|
{{end}}
|
||
|
<p class="control"><button class="button is-small is-danger is-outlined" data-action="delete-service">Delete</button></p>
|
||
|
</div>
|
||
|
</td>
|
||
|
</tr>
|
||
|
{{end}}
|
||
|
</tbody>
|
||
|
</table>
|
||
|
{{ yield pager(info=.Pager) }}
|
||
|
</section>
|
||
|
{{ end }}
|