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 ***** %] + + + diff --git a/webtools/hendrix/template/header.html.tmpl b/webtools/hendrix/template/header.html.tmpl new file mode 100644 index 00000000000..fa768c3943a --- /dev/null +++ b/webtools/hendrix/template/header.html.tmpl @@ -0,0 +1,42 @@ +[%# ***** 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 ***** %] + + + + + + [% title %] + + + + + + [% IF NOT h1 AND title %] + [% h1 = title %] + [% END %] + + [% IF h1 %] +

[% h1 %]

+ [% END %] diff --git a/webtools/hendrix/template/index.html.tmpl b/webtools/hendrix/template/index.html.tmpl new file mode 100644 index 00000000000..5158b0db2f7 --- /dev/null +++ b/webtools/hendrix/template/index.html.tmpl @@ -0,0 +1,96 @@ +[%# ***** 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 - mozilla.org Feedback System" +%] + +

This is Hendrix - the mozilla.org system for leaving quick and general feedback. If you have a specific and detailed bug report, please file it in +Bugzilla.

+ +
+ + + + + + + + + + + + + + + + + + + + + +
Name: + +
Email (optional): + +
+ Product: + + +
+ Feedback Summary: + + +
+ Detailed Comments: + + +
+ + + [%# Add JS to only enable button when form is filled in %] + + +
+ +

Information from this form is placed in the newsgroup +[% newsgroup %] where it can be viewed by any mozilla.org contributor. +

+ +

Why "Hendrix"? The late +Jimi Hendrix +is credited with making popular the technique of making feedback useful in the creation of music :-).

+ +[% PROCESS footer.html.tmpl %] diff --git a/webtools/hendrix/template/message-headers.txt.tmpl b/webtools/hendrix/template/message-headers.txt.tmpl new file mode 100644 index 00000000000..07d852c080d --- /dev/null +++ b/webtools/hendrix/template/message-headers.txt.tmpl @@ -0,0 +1,33 @@ +[%# ***** 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 ***** %] +[% from = form.name %] +[% IF form.email %] + [% from = BLOCK %] + [% from %] <[% form.email FILTER email %]> + [% END %] +[% END %] +Newsgroups: [% newsgroup %] +From: [% from %] +X-Hendrix-Product: [% form.product %] +Subject: [Hendrix] [% form.subject %] diff --git a/webtools/hendrix/template/message.txt.tmpl b/webtools/hendrix/template/message.txt.tmpl new file mode 100644 index 00000000000..09941e0b7f8 --- /dev/null +++ b/webtools/hendrix/template/message.txt.tmpl @@ -0,0 +1,32 @@ +[%# ***** 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 ***** %] +Name: [% form.name %] +[% IF form.email %] +Email: [% form.email FILTER email %] +[% END %] +Product: [% form.product %] +Summary: [% form.subject %] + +Comments: +[%+ form.comments %] diff --git a/webtools/hendrix/template/submit-successful.html.tmpl b/webtools/hendrix/template/submit-successful.html.tmpl new file mode 100644 index 00000000000..75f2bef531f --- /dev/null +++ b/webtools/hendrix/template/submit-successful.html.tmpl @@ -0,0 +1,36 @@ +[%# ***** 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 - Submission Successful" %] + +

Thank you for your feedback, and for using our software.

+ +

Your message was:

+ +
+[% message FILTER html %]
+
+ +[% PROCESS footer.html.tmpl %]