summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Friesel <derf@finalrewind.org>2019-05-10 19:03:18 +0200
committerDaniel Friesel <derf@finalrewind.org>2019-05-10 19:03:18 +0200
commit269b8536f42ee7b872f112c31490f2a44e345f23 (patch)
treef8921e41da29469cd74674a0cff921656bb6d652
parent3f4cf9ee42eb1c8be01ccefb9b396cebe1213413 (diff)
Add webhook to account page
-rwxr-xr-xlib/Travelynx.pm2
-rw-r--r--lib/Travelynx/Controller/Account.pm5
-rw-r--r--templates/account.html.ep31
3 files changed, 33 insertions, 5 deletions
diff --git a/lib/Travelynx.pm b/lib/Travelynx.pm
index 3840518..001a762 100755
--- a/lib/Travelynx.pm
+++ b/lib/Travelynx.pm
@@ -1045,7 +1045,7 @@ sub startup {
$self->pg->db->update(
'webhooks',
{
- errored => !$success,
+ errored => $success ? 0 : 1,
latest_run => DateTime->now( time_zone => 'Europe/Berlin' ),
output => $text,
},
diff --git a/lib/Travelynx/Controller/Account.pm b/lib/Travelynx/Controller/Account.pm
index c02fb1a..e272eb1 100644
--- a/lib/Travelynx/Controller/Account.pm
+++ b/lib/Travelynx/Controller/Account.pm
@@ -222,6 +222,8 @@ sub privacy {
$public_level &= ~0x02;
}
$self->set_privacy( $user->{id}, $public_level );
+
+ $self->flash( success => 'privacy' );
$self->redirect_to('account');
}
else {
@@ -244,8 +246,9 @@ sub webhook {
token => $hook->{token},
enabled => $hook->{enabled}
);
+ $self->flash( success => 'webhook' );
+ $self->redirect_to('account');
$self->run_hook( $self->current_user->{id}, 'ping' );
- $hook = $self->get_webhook;
}
else {
$self->param( url => $hook->{url} );
diff --git a/templates/account.html.ep b/templates/account.html.ep
index 7baacbe..05e0447 100644
--- a/templates/account.html.ep
+++ b/templates/account.html.ep
@@ -8,10 +8,16 @@
<div class="card green darken-4">
<div class="card-content white-text">
% if ($success eq 'mail') {
- <span class="card-title">Mail-Adresse erfolgreich geändert</span>
+ <span class="card-title">Mail-Adresse geändert</span>
% }
% elsif ($success eq 'password') {
- <span class="card-title">Passwort erfolgreich geändert</span>
+ <span class="card-title">Passwort geändert</span>
+ % }
+ % elsif ($success eq 'privacy') {
+ <span class="card-title">Einstellungen zu öffentliche Account-Daten geändert</span>
+ % }
+ % elsif ($success eq 'webhook') {
+ <span class="card-title">Web Hook aktualisiert</span>
% }
</div>
</div>
@@ -21,6 +27,7 @@
<h1>Account</h1>
% my $acc = current_user();
+% my $hook = get_webhook();
<div class="row">
<div class="col s12">
<table class="striped">
@@ -41,7 +48,7 @@
<td>
<a href="/account/privacy"><i class="material-icons">edit</i></a>
% if ($acc->{is_public} == 0) {
- Keine
+ <span style="color: #999999;">Keine</span>
% }
% if ($acc->{is_public} & 0x02) {
Aktueller Status
@@ -49,6 +56,24 @@
</td>
</tr>
<tr>
+ <th scope="row">Web Hook</th>
+ <td>
+ <a href="/account/hooks"><i class="material-icons">edit</i></a>
+ % if ($hook->{enabled} == 0) {
+ <span style="color: #999999;">Nicht eingerichtet</span>
+ % }
+ % elsif ($hook->{latest_run}->epoch == 0) {
+ Aktiv, noch nicht ausgeführt
+ % }
+ % elsif ($hook->{errored}) {
+ Aktiv, fehlerhaft <i class="material-icons">error</i>
+ % }
+ % else {
+ Aktiv
+ % }
+ </td>
+ </tr>
+ <tr>
<th scope="row">Registriert am</th>
<td><%= $acc->{registered_at}->strftime('%d.%m.%Y %H:%M') %></td>
</tr>