\n";
-print "WikiText | \n";
+print "WikiText | \n";
print "I am working on ways to provide easy online collaborative editing,
and always for new ways to make writing for the LDP easier.
diff --git a/LDP/lampadas/www/document_wiki.pl b/LDP/lampadas/www/document_wiki.pl
index 94c1beda..25af2668 100755
--- a/LDP/lampadas/www/document_wiki.pl
+++ b/LDP/lampadas/www/document_wiki.pl
@@ -1,6 +1,5 @@
-#! /usr/bin/perl
+#!/usr/bin/perl
-$workpath = "/tmp";
$editcols = 80;
$editrows = 25;
@@ -10,18 +9,35 @@ use Pg;
$query = new CGI;
$dbmain = "ldp";
@row;
+$section_max = 25;
# Read parameters
$doc_id = param('doc_id');
-$wiki = param('wiki');
$notes = param('notes');
$revision = param('revision');
+$logfile = '/tmp/ldp.log';
+open (LOG, "> $logfile");
+print LOG "document_wiki opened by $username.\n";
+
+
+$section = 0;
+while ($section <= $section_max) {
+ $section++;
+ $wiki_section = param("wiki$section");
+ if ($wiki_section) {
+# if ($wiki) {
+# $wiki .= "\n";
+# }
+ $wiki .= $wiki_section;
+ }
+}
+$section = 0;
+
$save = param('Save');
$preview = param('Preview');
$docbook = param('DocBook');
-
-$username = $query->remote_user();
+$splitup = param('SplitUp');
$conn=Pg::connectdb("dbname=$dbmain");
die $conn->errorMessage unless PGRES_CONNECTION_OK eq $conn->status;
@@ -33,13 +49,27 @@ if ($username ne $row[0]) {
print $query->redirect("../newaccount.html");
exit;
} else {
- if (($row[1] ne 't') and ($row[2] != $doc_id)) {
- print $query->redirect("../wrongpermission.html");
- exit;
+ if ($row[1] ne 't') {
+ $maintainer_id = $row[2];
+ $result=$conn->exec("SELECT count(*) FROM document_maintainer WHERE maintainer_id=$maintainer_id AND doc_id=$doc_id AND active='t'");
+ @row = $result->fetchrow;
+ unless ($row[0]) {
+ print $query->redirect("../wrongpermission.html");
+ exit;
+ }
}
}
+print LOG "Opening document_wiki by $username.\n";
+
if ($save) {
+ print LOG "Saving document_wiki by $username.\n";
+ while ($wiki =~ /\\/) {
+ $wiki =~ s/\\/a1s2d3f4/;
+ }
+ while ($wiki =~ /a1s2d3f4/) {
+ $wiki =~ s/a1s2d3f4/\\\\/;
+ }
while ($wiki =~ /&/) {
$wiki =~ s/&/a1s2d3f4/;
}
@@ -65,11 +95,20 @@ if ($save) {
@row = $result->fetchrow;
$revisions = $row[0];
+# &printheader;
+# print $wiki;
+# print end_html;
+# exit;
+
if ($revisions >= $revision ) {
&printheader;
print " Edit conflict!\n";
print " You were editing version $revisions, but trying to save to version $revision\n";
print end_html;
+ } elsif ($wiki eq '') {
+ &printheader;
+ print " No content to save!\n";
+ print end_html;
} else {
$revision = $revisions + 1;
$sql = "INSERT INTO document_wiki(doc_id, revision, date_entered, wiki, notes, username) VALUES ($doc_id, $revision, now(), '$wiki', '$notes', '$username')";
@@ -96,7 +135,7 @@ die $conn->errorMessage unless PGRES_TUPLES_OK eq $result->resultStatus;
$revisions = $row[0];
#if we're not previewing, load data from database and determine version
-unless ($preview or $docbook) {
+unless (($preview) or ($docbook)) {
$result = $conn->exec("SELECT wiki FROM document_wiki WHERE doc_id = $doc_id ORDER BY revision DESC LIMIT 1, 0");
die $conn->errorMessage unless PGRES_TUPLES_OK eq $result->resultStatus;
@row = $result->fetchrow;
@@ -111,28 +150,53 @@ unless ($preview or $docbook) {
}
&printheader;
+
print " \n";
print end_html;
}
if ($preview or $docbook) {
- $txtfile = "$workpath/" . rand . ".txt";
+ $txtfile = "/tmp/" . rand() . ".txt";
$sgmlfile = $txtfile;
$sgmlfile =~ s/\.txt/\.sgml/;
$htmlfile = $txtfile;
@@ -141,15 +205,16 @@ if ($preview or $docbook) {
$abstractfile =~ s/\./abs\./;
$abstractsgmlfile = $sgmlfile;
$abstractsgmlfile =~ s/\./abs\./;
- system("rm $sgmlfile");
open(TXT, "> $txtfile");
print TXT $wiki;
close(TXT);
- $cmd = "/usr/lib/cgi-bin/gldp.org/txt2db.pl -o $sgmlfile $txtfile";
+ $cmd = "/usr/local/bin/wt2db -o $sgmlfile $txtfile";
system($cmd);
-
+
+ print LOG "Wrote wt file to $txtfile for document $doc_id by $username.\n";
+
$sgml = '' . "\n";
if ($class eq 'FAQ') {
$sgml .= "\n";
@@ -170,7 +235,7 @@ if ($preview or $docbook) {
print ABSTRACT $abstract;
close(ABSTRACT);
- $cmd = "/usr/lib/cgi-bin/gldp.org/txt2db.pl -o $abstractsgmlfile $abstractfile";
+ $cmd = "/usr/local/bin/wt2db -o $abstractsgmlfile $abstractfile";
system($cmd);
$abstract = "";
@@ -202,10 +267,15 @@ if ($preview or $docbook) {
$sgml .= "\n";
+ print LOG "Opening sgml file $sgmlfile for document $doc_id by $username.\n";
+
+ $sgmlfileline = 0;
open(SGML, $sgmlfile);
while () {
+ print LOG ".";
$line = $_;
$sgml .= $line;
+ $sgmlfileline++;
while ($line =~ /) {
$line =~ s/</;
}
@@ -215,12 +285,18 @@ if ($preview or $docbook) {
$buf .= " $line";
}
close(SGML);
+ print LOG "\n";
+ print LOG "Read $sgmlfileline lines from $sgmlfile for document $doc_id by $username.\n";
+
$sgml .= "\n";
open(SGML, "> $sgmlfile");
print SGML $sgml;
close(SGML);
+
+ print LOG "Wrote composite sgml file $sgmlfile for document $doc_id by $username.\n";
+
}
if ($docbook) {
@@ -230,19 +306,23 @@ if ($docbook) {
print "Content-Type: text/plain; charset=ISO-8859-1\n\n";
- while ($sgml =~ /\) {
- $sgml =~ s/\</;
- }
- while ($sgml =~ /\>/) {
- $sgml =~ s/\>/>/;
- }
+# while ($sgml =~ /) {
+# $sgml =~ s/</;
+# }
+# while ($sgml =~ />/) {
+# $sgml =~ s/>/>/;
+# }
print $sgml;
# print "\n";
# print " |