use warnings;
use DBI;
+use Data::Dumper;
BEGIN {
use Exporter ();
our ($VERSION, @ISA, @EXPORT, @EXPORT_OK, %EXPORT_TAGS);
$VERSION = 1.00;
@ISA = qw(Exporter);
- @EXPORT = qw(&db_connect &db_commit $dbh);
+ @EXPORT = qw(db_connect db_commit expires2timet
+ $dbh);
%EXPORT_TAGS = ( );
@EXPORT_OK = qw();
}
}
}
+sub expires2timet ($) {
+ my ($str) = @_;
+ if ($str eq '') {
+ return undef;
+ }
+ open F, "-|", qw(date -d),'$str',qw(+%s) or die $!;
+ my $dtime = <F>;
+ $?=0; $!=0; close F or die "$? $!";
+ $dtime =~ m/^\d+$/ or die "$dtime ?";
+ return $dtime+0;
+}
sub db_commit () {
- nooutput("SELECT * FROM addresses LEFT JOIN config USING (emailaddr)");
- nooutput("SELECT * FROM addresses LEFT JOIN texts USING (textid)");
+ nooutput("SELECT * FROM addresses LEFT JOIN config".
+ " USING (emailaddr) WHERE forwardfile IS NULL");
+ nooutput("SELECT * FROM addresses LEFT JOIN texts".
+ " USING (textid) WHERE name IS NULL");
$dbh->do("COMMIT");
}
<title>Email "out of office" setup</title>
</head><body>
<h1>Email "out of office" setup</h1>
-<h2>Our email addresses</h2>
+<h2>Email addresses and their configuration</h2>
<%perl>
my %row;
my $sth = $dbh->prepare(<<END);
- SELECT emailaddr, textid, expires
- FROM config
- LEFT JOIN addresses USING (emailaddr)
+ SELECT *
+ FROM addresses
+ LEFT JOIN config USING (emailaddr)
LEFT JOIN texts USING (textid)
ORDER BY emailaddr
END
</%perl>
-<table>
+<table rules="all">
<tr>
<td>Address</td>
-<td>O-o-o status</td>
+<td>Status</td>
<td>Which message?</td>
<td>Expiry date</td>
</tr><tr>
+% $sth->execute();
% while (my $row= $sth->fetchrow_hashref()) {
<tr>
<td><% $row->{'emailaddr'} |h %></td>
% if (defined $row->{'textid'}) {
-% my $expiry = expires2timet($row->{'expires'});
-% if ($expiry > time) {
-<td>active</td>
-% } else {
+% my $expires = expires2timet($row->{'expires'});
+% if (defined($expires) && $expires < time) {
<td>expired</td>
+% } else {
+<td>active</td>
% }
-<td><% $row->{'textid'} |h %></td>
+<td><% $row->{'name'} |h %></td>
+% if (defined $expires) {
<td><% $row->{'expires'} |h %></td>
+% } else {
+<td>never</td>
+% }
% } else {
<td>inactive</td>
<td></td>