diff --git a/website/agenda/planung/css/notify-events.css b/website/agenda/planung/css/notify-events.css index bbc21ec..68046a3 100644 --- a/website/agenda/planung/css/notify-events.css +++ b/website/agenda/planung/css/notify-events.css @@ -2,8 +2,19 @@ table#events{ transition:all 2s; } -table#events.done{ - background:#cfc; +table#events div.error{ + background: #f33; + color:white; + padding:1rem; + width: 30rem; +} + + +table#events div.done{ + background: #3f3; + color:white; + padding:1rem; + width: 30rem; } table#events td:nth-of-type(1){ diff --git a/website/agenda/planung/js/notify-events.js b/website/agenda/planung/js/notify-events.js index 98d0cf1..7d430cc 100644 --- a/website/agenda/planung/js/notify-events.js +++ b/website/agenda/planung/js/notify-events.js @@ -1,13 +1,20 @@ function register_buttons() { $("#forms form").on('click', 'button', function( event ) { event.preventDefault(); - var form = $(this).closest('form'); + let form = $(this).closest('form'); + let formId = form.attr('id'); + let table = $('#' + formId+" table"); + let status = table.find("td.result div"); + status.text('').removeClass("error").removeClass("done"); + $.post("notify-events.cgi", form.serialize()) - .done( function(data) { - var content = $(data).find("#content"); - $('#result').html(content); - var formId = form.attr('id'); - $('#' + formId+" table").addClass("done"); + .always( function(data) { + if (data.includes("done")){ + status.text("ok").removeClass("error").addClass("done"); + } else { + status.text(data).removeClass("ok").addClass("error"); + } + table.find("tr.result").show(); }); }); } diff --git a/website/agenda/planung/notify-events.cgi b/website/agenda/planung/notify-events.cgi index 4e01d02..b72b163 100755 --- a/website/agenda/planung/notify-events.cgi +++ b/website/agenda/planung/notify-events.cgi @@ -6,6 +6,7 @@ no warnings 'redefine'; use utf8; use Data::Dumper; +use Try::Tiny; use params(); use config(); @@ -53,11 +54,10 @@ my $request = { #set user at params->presets->user $request = uac::prepare_request( $request, $user_presets ); - $params = $request->{params}->{checked}; #show header -unless ( params::isJson() || ( $params->{template} =~ /\.txt/ ) ) { +unless ( params::isJson() || ( $params->{template} =~ /\.txt/ ) || $params->{action}eq'send' ) { my $headerParams = uac::set_template_permissions( $request->{permissions}, $params ); $headerParams->{loc} = localization::get( $config, { user => $user, file => 'menu' } ); template::process( $config, 'print', template::check( $config, 'default.html' ), $headerParams ); @@ -162,8 +162,13 @@ sub sendMail { $mail->{Cc} = $params->{cc} if defined $params->{cc}; $mail->{Subject} = $params->{subject} if defined $params->{subject}; $mail->{Data} = $params->{content} if defined $params->{content}; - my $result = mail::send($mail); - print "Content-type:text/plain\n\nresult:".Dumper($result); + + try { + my $result = mail::send($mail); + print "Content-type:text/plain\n\ndone:$result\n"; + } catch { + printf "Content-type:text/plain\n\nresult:%s\n", $_->{message} // $_; + } } sub getMail { @@ -214,8 +219,6 @@ sub eventToText { $s .= $event->{user_excerpt} . "\n"; $s .= $event->{topic} . "\n"; $s .= $event->{content} . "\n"; - - #print STDERR "DUMP\n$s"; return $s; } diff --git a/website/agenda/planung/pot/de/notify-events.po b/website/agenda/planung/pot/de/notify-events.po index dc8c301..38e5eb0 100644 --- a/website/agenda/planung/pot/de/notify-events.po +++ b/website/agenda/planung/pot/de/notify-events.po @@ -28,3 +28,5 @@ msgstr "Inhalt" msgid "show_details" msgstr "Zeige Details" +msgid "result" +msgstr "Ergebnis" diff --git a/website/agenda/planung/pot/en/notify-events.po b/website/agenda/planung/pot/en/notify-events.po index a25913e..6435d03 100644 --- a/website/agenda/planung/pot/en/notify-events.po +++ b/website/agenda/planung/pot/en/notify-events.po @@ -28,3 +28,5 @@ msgstr "Content" msgid "show_details" msgstr "Show Details" +msgid "result" +msgstr "Result" diff --git a/website/agenda/planung/templates/notify-events.html b/website/agenda/planung/templates/notify-events.html index 667894b..f86d7f8 100644 --- a/website/agenda/planung/templates/notify-events.html +++ b/website/agenda/planung/templates/notify-events.html @@ -43,15 +43,15 @@ - + - + - - Warning - no recipient configured at series! - - + + Warning + no recipient configured at series! + + @@ -63,12 +63,18 @@ + + + + + + @@ -97,7 +103,7 @@ - +