chiark / gitweb /
wip
[nj-awaymsg.git] / mason / save
index 2b96224..a34abe9 100755 (executable)
@@ -6,32 +6,47 @@ www_begin($r,$m);
 $save => 0
 $cancel => 0
 $textid => undef
+$desc
+$subject
+$text
 </%args><%perl>
-if ($save) {
-    my $ins;
-    $dbh->do('BEGIN');
-    if ($textid eq 'new') {
-       my $ntextq = $dbh->prepare("SELECT textid FROM texts".
-                                  " ORDER BY textid DESC LIMIT 1");
-       $ntextq->execute();
-       my $ntextrow = $ntextq->fetchrow_hashref();
-       if ($ntextrow) {
-           $textid = $ntextrow->{'textid'} + 1;
-       } else {
-           $textid = 1;
-       }
-    } else {
-       my $dtextq = $dbh->prepare("DELETE FROM texts WHERE textid = ?");
-       my $ndeleted = $dtextq->execute($textid);
-       if (!$ndeleted) {
-</%perl><htmlhead, subpage => 'Error, editing deleted message'>
-Message was deleted.
-<form action="main" method="get">
-<input type="submit" value="OK">
-</form><%perl>
-       }
-       return;
+if (!$save) {
+    $m->redirect("main");
+    return;
+}
+my $ins;
+
+$dbh->do('BEGIN');
+
+if ($textid ne 'new') {
+    my $dtextq = $dbh->prepare("DELETE FROM texts WHERE textid = ?");
+    my $ndeleted = $dtextq->execute($textid);
+    if (!$ndeleted) {
+       $textid = 'new';
     }
 }
-$m->redirect("main");
-</%perl>
+
+if ($textid eq 'new') {
+    my $textid = time;
+    my $ntextq = $dbh->prepare("SELECT textid FROM texts".
+                              " ORDER BY textid DESC LIMIT 1");
+    $ntextq->execute();
+    my $ntextrow = $ntextq->fetchrow_hashref();
+    if ($ntextrow) {
+       my $mintextid = $ntextrow->{'textid'} + 1;
+       $textid = $mintextid if $textid < $mintextid;
+    }
+}
+
+my $dinsertq = $dbh->prepare("INSERT INTO texts (textid, desc, subject, text)".
+                            " VALUES (?,?,?,?)");
+$dinsertq->execute($textid, $desc, $subject, $text);
+
+db_commit();
+
+</%perl><& htmlhead, subpage => "Saved \"$desc\"" &>
+Message and configuration saved.
+<p>
+<form action="main" method="get">
+<input type="submit" value="OK">
+</form>