зеркало из https://github.com/mozilla/pjs.git
Initial checkin of 'Hendrix' - mozilla.org web-to-news feedback system.
This commit is contained in:
Родитель
e42d1daf3b
Коммит
440d68e6e9
|
@ -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;
|
||||
}
|
|
@ -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;
|
||||
}
|
|
@ -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" %]
|
||||
|
||||
<p>Unfortunately, there is a problem with your submission, as follows:
|
||||
</p>
|
||||
|
||||
[% SWITCH error %]
|
||||
[% CASE "bad_parameters" %]
|
||||
<p class="error">
|
||||
You need to give both your name and a summary of your feedback.
|
||||
</p>
|
||||
|
||||
<p>Please press Back and fill in the missing field(s).</p>
|
||||
|
||||
[% CASE "cant_post" %]
|
||||
<p class="error">
|
||||
We are unable to send your feedback to the server.
|
||||
</p>
|
||||
|
||||
<p>Please try again later. Your feedback is reproduced below so you can
|
||||
save it somewhere.</p>
|
||||
|
||||
<pre>
|
||||
[% message FILTER html %]
|
||||
</pre>
|
||||
|
||||
[% CASE DEFAULT %]
|
||||
The error is unknown. Please try again later.
|
||||
[% END %]
|
||||
|
||||
[% PROCESS 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 ***** %]
|
||||
|
||||
</body>
|
||||
</html>
|
|
@ -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 ***** %]
|
||||
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
|
||||
<html>
|
||||
<head>
|
||||
<title>[% title %]</title>
|
||||
<link rel="stylesheet" href="hendrix.css">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<img id="header-img" src="hendrix.jpg">
|
||||
[% IF NOT h1 AND title %]
|
||||
[% h1 = title %]
|
||||
[% END %]
|
||||
|
||||
[% IF h1 %]
|
||||
<h1>[% h1 %]</h1>
|
||||
[% END %]
|
|
@ -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"
|
||||
%]
|
||||
|
||||
<p>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
|
||||
<a href="http://bugzilla.mozilla.org/enter_bug.cgi">Bugzilla</a>.</p>
|
||||
|
||||
<form id="feedback-form" method="GET">
|
||||
<table id="feedback-table">
|
||||
<tr>
|
||||
<td class="label">Name:</td>
|
||||
<td class="widget">
|
||||
<input id="name" name="name" type="text"
|
||||
value="[% form.email FILTER html %]"/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="label">Email (optional):</td>
|
||||
<td class="widget">
|
||||
<input id="email" name="email" type="text"
|
||||
value="[% form.email FILTER html %]"/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="label">
|
||||
Product:
|
||||
</td>
|
||||
<td class="widget">
|
||||
<select id="product" name="product">
|
||||
<option name="Firefox">Firefox</option>
|
||||
<option name="Thunderbird">Thunderbird</option>
|
||||
<option name="Mozilla Suite">Mozilla Suite</option>
|
||||
<option name="Camino">Camino</option>
|
||||
<option name="Other">Other (please state)</option>
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="label">
|
||||
Feedback Summary:
|
||||
</td>
|
||||
<td class="widget">
|
||||
<input id="subject" name="subject" type="text"
|
||||
value="[% form.subject FILTER html %]"/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="label">
|
||||
Detailed Comments:
|
||||
</td>
|
||||
<td class="widget">
|
||||
<textarea id="comments" name="comments" wrap="hard"
|
||||
>[% form.comments FILTER html %]</textarea>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<input type="hidden" name="action" value="submit"/>
|
||||
|
||||
[%# Add JS to only enable button when form is filled in %]
|
||||
|
||||
<input id="send-feedback" type="submit" value="Send Feedback"/>
|
||||
</form>
|
||||
|
||||
<p>Information from this form is placed in the newsgroup
|
||||
<tt>[% newsgroup %]</tt> where it can be viewed by any mozilla.org contributor.
|
||||
</p>
|
||||
|
||||
<p class="footnote">Why "Hendrix"? The late
|
||||
<a href="http://en.wikipedia.org/wiki/Jimi_Hendrix">Jimi Hendrix</a>
|
||||
is credited with making popular the technique of making feedback useful in the creation of music :-).</p>
|
||||
|
||||
[% PROCESS footer.html.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 %]
|
|
@ -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 %]
|
|
@ -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" %]
|
||||
|
||||
<p>Thank you for your feedback, and for using our software.</p>
|
||||
|
||||
<p>Your message was:</p>
|
||||
|
||||
<pre>
|
||||
[% message FILTER html %]
|
||||
</pre>
|
||||
|
||||
[% PROCESS footer.html.tmpl %]
|
Загрузка…
Ссылка в новой задаче