Add webhook to account page

This commit is contained in:
Daniel Friesel 2019-05-10 19:03:18 +02:00
parent 3f4cf9ee42
commit 269b8536f4
3 changed files with 33 additions and 5 deletions

View file

@ -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,
},

View file

@ -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} );

View file

@ -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,13 +48,31 @@
<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
% }
</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>