chiark / gitweb /
wip
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Wed, 5 Sep 2012 17:21:39 +0000 (18:21 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Wed, 5 Sep 2012 17:21:39 +0000 (18:21 +0100)
mason/edit
mason/save

index 6f256ef..8dddaa2 100755 (executable)
@@ -43,7 +43,7 @@ if (!$tx) { die "no such text $textid"; }
 <& htmlhead, subpage => "Edit \"$tx->{'desc'}\"" &>
 <form action="save" method="post">
 <&| txtable, tx => $tx, inputs => 1 &>
-<tr><td colspan=2><textarea cols=79 rows=15><%
+<tr><td colspan=2><textarea name="text" cols="79" rows="15"><%
   $tx->{'text'} |h %></textarea></td></tr>
 </&>
 <input type="hidden" name="textid" value="<% $tx->{'textid'} %>">
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>