diff --git a/webtools/hendrix/hendrix.css b/webtools/hendrix/hendrix.css new file mode 100644 index 00000000000..48ae5e19c33 --- /dev/null +++ b/webtools/hendrix/hendrix.css @@ -0,0 +1,56 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Version: MPL 1.1 + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * The Original Code is the Hendrix Feedback System. + * + * The Initial Developer of the Original Code is + * Gervase Markham. + * Portions created by the Initial Developer are Copyright (C) 2004 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * + * ***** END LICENSE BLOCK ***** */ + +#header-img { + float: right; + border: 1px grey solid; +} + +p.error { + color: red; +} + +.footnote { + font-size: small; +} + +h1 { + font-size: x-large; +} + +input[type="text"] { + font-family: monospace; +} + +#name, #email { + width: 25em; +} + +#subject, #comments { + width: 45em; +} + +#comments { + height: 20ex; +} diff --git a/webtools/hendrix/hendrix.jpg b/webtools/hendrix/hendrix.jpg new file mode 100644 index 00000000000..e69de29bb2d diff --git a/webtools/hendrix/index.cgi b/webtools/hendrix/index.cgi new file mode 100755 index 00000000000..554a948c18c --- /dev/null +++ b/webtools/hendrix/index.cgi @@ -0,0 +1,117 @@ +#!/usr/bin/perl -wT +# -*- Mode: perl; indent-tabs-mode: nil -*- + +# ***** BEGIN LICENSE BLOCK ***** +# Version: MPL 1.1 +# +# The contents of this file are subject to the Mozilla Public License Version +# 1.1 (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# http://www.mozilla.org/MPL/ +# +# Software distributed under the License is distributed on an "AS IS" basis, +# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +# for the specific language governing rights and limitations under the +# License. +# +# The Original Code is the Hendrix Feedback System. +# +# The Initial Developer of the Original Code is +# Gervase Markham. +# Portions created by the Initial Developer are Copyright (C) 2004 +# the Initial Developer. All Rights Reserved. +# +# Contributor(s): +# +# ***** END LICENSE BLOCK ***** + +use strict; + +# This application requires installation of the "Email::Send" (note: not +# Mail::Send) module. +use Template; +use CGI; +use Email::Send qw(NNTP); + +# use CGI::Carp qw(fatalsToBrowser); + +# Configuration +my $newsgroup = "netscape.public.mozilla.test"; +my $server = "news.mozilla.org"; + +my $cgi = new CGI; +my $form = $cgi->Vars; +my $vars; +$vars->{'form'} = $form; +$vars->{'newsgroup'} = $newsgroup; + +my $template = Template->new({ + INCLUDE_PATH => ["template"], + PRE_CHOMP => 1, + TRIM => 1, + FILTERS => { + email => \&emailFilter, + }, +}) || die("Template creation failed.\n"); + +my $action = $cgi->param("action"); + +if (!$action) { + # If no action, show the submission form + print "Content-Type: text/html\n\n"; + $template->process("index.html.tmpl", $vars) + || die("Template process failed: " . $template->error() . "\n"); +} +elsif ($action eq "submit") { + # Format the parameters and send to the newsgroup. + + # Check for compulsory parameters + if (!$form->{'name'} || !$form->{'subject'} || !$form->{'product'}) { + throwError("bad_parameters"); + } + + my $message; + my $headers; + + $template->process("message-headers.txt.tmpl", $vars, \$headers) + || die("Template process failed: " . $template->error() . "\n"); + $template->process("message.txt.tmpl", $vars, \$message) + || die("Template process failed: " . $template->error() . "\n"); + + # Post formatted message to newsgroup + my $newsMsg = Email::Simple->new($headers . "\n\n" . $message); + my $success = send NNTP => $newsMsg, $server; + + throwError("cant_post") if (!$success); + + # Give user feedback on success + $vars->{'headers'} = $headers; + $vars->{'message'} = $message; + + print "Content-Type: text/html\n\n"; + $template->process("submit-successful.html.tmpl", $vars) + || die("Template process failed: " . $template->error() . "\n"); +} +else { + die("Unknown action $action\n"); +} + +exit; + +# Simple email obfuscation +sub emailFilter { + my ($var) = @_; + $var =~ s/\@/_at_/; + return $var; +} + +sub throwError { + my ($error) = @_; + $vars->{'error'} = $error; + + print "Content-Type: text/html\n\n"; + $template->process("error.html.tmpl", $vars) + || die("Template process failed: " . $template->error() . "\n"); + + exit; +} diff --git a/webtools/hendrix/template/error.html.tmpl b/webtools/hendrix/template/error.html.tmpl new file mode 100644 index 00000000000..590b83a84de --- /dev/null +++ b/webtools/hendrix/template/error.html.tmpl @@ -0,0 +1,55 @@ +[%# ***** BEGIN LICENSE BLOCK ***** + # Version: MPL 1.1 + # + # The contents of this file are subject to the Mozilla Public License Version + # 1.1 (the "License"); you may not use this file except in compliance with + # the License. You may obtain a copy of the License at + # http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS IS" basis, + # WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + # for the specific language governing rights and limitations under the + # License. + # + # The Original Code is the Hendrix Feedback System. + # + # The Initial Developer of the Original Code is + # Gervase Markham. + # Portions created by the Initial Developer are Copyright (C) 2004 + # the Initial Developer. All Rights Reserved. + # + # Contributor(s): + # + # ***** END LICENSE BLOCK ***** %] + +[% PROCESS header.html.tmpl + title = "Hendrix - Error" %] + +
Unfortunately, there is a problem with your submission, as follows: +
+ +[% SWITCH error %] + [% CASE "bad_parameters" %] ++ You need to give both your name and a summary of your feedback. +
+ +Please press Back and fill in the missing field(s).
+ + [% CASE "cant_post" %] ++ We are unable to send your feedback to the server. +
+ +Please try again later. Your feedback is reproduced below so you can + save it somewhere.
+ ++ [% message FILTER html %] ++ + [% CASE DEFAULT %] + The error is unknown. Please try again later. +[% END %] + +[% PROCESS footer.html.tmpl %] diff --git a/webtools/hendrix/template/footer.html.tmpl b/webtools/hendrix/template/footer.html.tmpl new file mode 100644 index 00000000000..e9e1c7e0288 --- /dev/null +++ b/webtools/hendrix/template/footer.html.tmpl @@ -0,0 +1,26 @@ +[%# ***** BEGIN LICENSE BLOCK ***** + # Version: MPL 1.1 + # + # The contents of this file are subject to the Mozilla Public License Version + # 1.1 (the "License"); you may not use this file except in compliance with + # the License. You may obtain a copy of the License at + # http://www.mozilla.org/MPL/ + # + # Software distributed under the License is distributed on an "AS IS" basis, + # WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + # for the specific language governing rights and limitations under the + # License. + # + # The Original Code is the Hendrix Feedback System. + # + # The Initial Developer of the Original Code is + # Gervase Markham. + # Portions created by the Initial Developer are Copyright (C) 2004 + # the Initial Developer. All Rights Reserved. + # + # Contributor(s): + # + # ***** END LICENSE BLOCK ***** %] + +