summaryrefslogtreecommitdiff
path: root/templates/webhooks.html.ep
blob: fec485dd6d997b717ac96bf8ac7bc99a3a238079 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
% if (my $invalid = stash('invalid')) {
	%= include '_invalid_input', invalid => $invalid
% }

<h1>Web Hooks</h1>

<!-- -H "Authorization: Bearer ${TOKEN}"  -->
<div class="row">
	<div class="col s12">
		<p>
			Die im Web Hook konfigurierte URL wird bei jedem Checkin und Checkout
			des ausgewählten Zuges aufgerufen. Falls ein Token eingetragen
			ist, wird er als Bearer Token verwendet.
		</p>
		<p>
			Events werden als JSON POST übertragen. Das JSON-Dokument besteht aus
			zwei Feldern: „reason“ gibt den Grund des API-Aufrufs an (checkin,
			checkout, undo), „status“ den <a href="/api">aktuellen Status</a>.
		</p>
	</div>
	%= form_for '/account/hooks' => (method => 'POST') => begin
		%= csrf_field
		<div class="col s12 center-align">
			<label>
				%= check_box enabled => 1
				<span>Aktiv</span>
			</label>
		</div>
		<div class="input-field col s12">
			<i class="material-icons prefix">link</i>
			%= text_field 'url', id => 'url', class => 'validate', maxlength => 1000
			<label for="url">URL</label>
		</div>
		<div class="input-field col s12">
			<i class="material-icons prefix">lock</i>
			%= text_field 'token', id => 'token', class => 'validate', maxlength => 250
			<label for="token">Token</label>
		</div>
		<div class="col s12">
			% if ($hook->{latest_run}->epoch) {
				Zuletzt ausgeführt: <%= $hook->{latest_run} %><br/>
				% if ($hook->{errored}) {
					<i class="material-icons left">error</i>
					Status: <%= $hook->{output} %>
				% }
				% else {
					<i class="material-icons left">check</i>
					Server-Antwort: <%= $hook->{output} %>
				% }
			% }
			% else {
				Noch nicht ausgeführt.
			% }
		</div>
		<div class="col s12 center-align">
			<button class="btn waves-effect waves-light" type="submit" name="action" value="save">
				Speichern
				<i class="material-icons right">send</i>
			</button>
		</div>
	%= end
</div>