diff options
author | Daniel Friesel <derf@finalrewind.org> | 2019-05-10 19:03:18 +0200 |
---|---|---|
committer | Daniel Friesel <derf@finalrewind.org> | 2019-05-10 19:03:18 +0200 |
commit | 269b8536f42ee7b872f112c31490f2a44e345f23 (patch) | |
tree | f8921e41da29469cd74674a0cff921656bb6d652 | |
parent | 3f4cf9ee42eb1c8be01ccefb9b396cebe1213413 (diff) |
Add webhook to account page
-rwxr-xr-x | lib/Travelynx.pm | 2 | ||||
-rw-r--r-- | lib/Travelynx/Controller/Account.pm | 5 | ||||
-rw-r--r-- | templates/account.html.ep | 31 |
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> |