diff --git a/en/cgi/monthly.cgi b/en/cgi/monthly.cgi index 1bc3369803..14f101f16f 100755 --- a/en/cgi/monthly.cgi +++ b/en/cgi/monthly.cgi @@ -1,243 +1,243 @@ #!/usr/bin/perl -w require "./cgi-style.pl"; use CGI qw(:all); use strict; my $Submit = param("Submit"); my $debug = param("debug") || ""; my $NumDevelopers = 3; my $NumLinks = 4; my $NumTasks = 5; my @messages; # # Routine to format some xml nicely # sub xml { my($Indent, $TagEtc, @Text) = @_; my($Tag, $Etc) = split(' ', $TagEtc, 2); my $Spaces = " " x ($Indent*3); if (!@Text) { # No text in the tag return ("$Spaces<$TagEtc >\n"); } elsif (@Text == 1) { # Bottom level tag - output on one line return ("$Spaces<$TagEtc>@Text\n"); } else { # This is not a bottom level tag - output a new line after # starting tag return ("$Spaces<$TagEtc>\n", @Text, "$Spaces\n"); } } # # As above to format indented text but no tag # sub xmltext { my($Indent, @Text) = @_; my $Spaces = " " x ($Indent*3); return map { "$Spaces$_\n" } @Text; } if ($Submit) { my $errors = 0; my @hidden; my $Project = param("Project") || ""; my $Category = param("Category") || "misc"; push(@hidden, hidden("Project")); my @contacts; foreach my $Num (1..$NumDevelopers) { my $fname = param("FirstName$Num") || ""; my $lname = param("LastName$Num") || ""; my $email = param("Email$Num") || ""; push(@hidden, hidden("FirstName$Num")); push(@hidden, hidden("LastName$Num")); push(@hidden, hidden("Email$Num")); next unless $fname || $lname || $email; my @name; push(@name, xml(4, 'given', $fname)) if $fname; push(@name, xml(4, 'common', $lname)) if $lname; my @person; push(@person, xml(3, 'name', "", @name)) if @name; push(@person, xml(3, 'email', $email)) if $email; push(@contacts, xml(2, 'person', "", @person)); } if (!@contacts) { ++$errors; push(@messages, b("Please specify at least one contact")); } my @links; foreach my $Num (1..$NumLinks) { my $url = param("Url$Num") || ""; my $desc = param("Desc$Num") || ""; push(@hidden, hidden("Url$Num")); push(@hidden, hidden("Desc$Num")); next unless $url; my @link; if ($desc) { push(@links, xml(2, "url href=\"$url\"", $desc)); } else { push(@links, xml(2, "url href=\"$url\"")); } } my @tasks; foreach my $Num (1..$NumTasks) { my $desc = param("Task$Num") || ""; $desc =~ s/\r//g; my @desc = split("\n", $desc); push(@hidden, hidden("Task$Num")); next unless $desc; push(@tasks, xml(2, "task", "",xmltext(3, @desc))); } my $info = param("SubmittedInfo") || ""; push(@hidden, hidden("SubmittedInfo")); $info =~ s/\r//g; my @info = split("\n", $info); my $title = "FreeBSD project submission output"; my @contents = xml(0, "project cat=\'$Category\'", xml(1, "title", $Project), "\n", xml(1, "contact", "", @contacts), "\n", xml(1, "links", "", @links), "\n", xml(1, "body", xml(2, "p", "", xmltext(3, @info))), "\n", xml(1, "help", "", @tasks), ); my $contents = join('', @contents); $contents = "\n$contents"; if (!$errors) { print "Content-Type: text/plain\n\n"; print $contents; exit; } } my @DeveloperTable; foreach my $Num (1..$NumDevelopers) { push(@DeveloperTable, TR(td(textfield(-name => "FirstName$Num", -size => 20)), td(textfield(-name => "LastName$Num", -size => 20)), td(textfield(-name => "Email$Num", -size => 32)))); } my @LinksTable; foreach my $Num (1..$NumLinks) { push(@LinksTable, TR(td(textfield(-name => "Url$Num", -size => 55)), td(textfield(-name => "Desc$Num", -size => 20)))); } my @TaskTable; foreach my $Num (1..$NumTasks) { push(@TaskTable, TR(td(textarea(-name => "Task$Num", -rows => 3, -cols => 60)))); } print (html_header("Submitting a FreeBSD Project Status Report"), hr, join("
\n", @messages, ""), p("To submit status information about a FreeBSD project, fill out the", " following:"), start_form(), h3("Project:"), textfield(-name => "Project", -size => "32"), h3("Category:"), popup_menu(-name => "Category", -values => ['proj', 'docs', 'kern', 'bin', 'arch', 'ports', 'vendor', - 'misc'], -default => 'proj'), + 'misc', 'soc'], -default => 'proj'), h3("Developers:"), blockquote(table({"BORDER" => 0, "COLS" => 3, "NOSAVE" => 1}, TR(td("First Name"), td("Family Name"), td("Email address")), @DeveloperTable)), h3("Links:"), blockquote(table({"BORDER" => 0, "COLS" => 2, "NOSAVE" => 1}, TR(td("Url"), td("Description (optional)")), @LinksTable)), h3("Present status:"), p("You can use "simple" HTML tags (e.g. <p>, ", "<em>, <strong> and <a href=... >) to format."), blockquote(textarea(-name => "SubmittedInfo", -rows => 7, -cols => 60)), h3("Open tasks (optional):"), blockquote(table({"BORDER" => 0, "COLS" => 5, "NOSAVE" => 1}, TR(td("Description")), @TaskTable)), submit(-name => "Submit", -label => "Download XML"), reset(-value => "Reset"), br, end_form(), html_footer()); __END__ diff --git a/en/news/status/report-sample.xml b/en/news/status/report-sample.xml index 497e8ad6a7..d909b11982 100644 --- a/en/news/status/report-sample.xml +++ b/en/news/status/report-sample.xml @@ -1,49 +1,49 @@ - + - + Status Report Sample John Smith test@FreeBSD.org Description here.

You can start your first paragraph here. Generally speaking, you will only usually submit one paragraph per status report, as they are intended to be somewhat brief. If, however, you find it necessary to write one with multiple paragraphs, it's fairly straightforward.

Just start another `p' tag.

Some work you need help with More work Keep these short and to the point