bugs.racket-lang.org finally works.
Captcha files removed, and will be part of the extra web content sources (which will hold the sources for internal.racket-lang.org too).
This commit is contained in:
parent
ed5c5fcb14
commit
38a4f228ee
|
@ -21,4 +21,4 @@
|
|||
;; Each is a "hostname:dest-path", and then a list of directories to
|
||||
;; put in that path. (Warning: "dest" should not be a top-level
|
||||
;; directory that already exists.)
|
||||
'(["champlain:/www" "www" "download" "lists" "stubs"])))
|
||||
'(["champlain:/www" "www" "download" "bugs" "lists" "stubs"])))
|
||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 691 B |
Binary file not shown.
Before Width: | Height: | Size: 729 B |
Binary file not shown.
Before Width: | Height: | Size: 745 B |
|
@ -4,22 +4,229 @@
|
|||
|
||||
(define planet-bugs "http://planet.racket-lang.org/trac/newticket")
|
||||
|
||||
(require "../www/main.rkt")
|
||||
;; a starred option is the default
|
||||
(define (platform-option-links)
|
||||
(mk-options '([* "...or choose" ""]
|
||||
["Windows Vista" "windows-vista"]
|
||||
["Windows XP" "windows-xp"]
|
||||
["Windows 2000" "windows-2000"]
|
||||
["Windows NT" "windows-nt"]
|
||||
["Windows 95/98/Me" "windows-9x"]
|
||||
["Macintosh PowerPC (MacOS X)" "mac-ppc-osx"]
|
||||
["Macintosh Intel (MacOS X)" "mac-i386-osx"]
|
||||
["Linux, Fedora/RedHat based" "linux-fedora"]
|
||||
["Linux, Ubuntu/Debian based" "linux-ubuntu"]
|
||||
["Linux, other distro" "linux-other"]
|
||||
["Sun Solaris" "solaris"]
|
||||
;; ["Sun Solaris 8" "solaris-8"]
|
||||
;; ["Sun Solaris, other version" "solaris-other"]
|
||||
["Other Unix" "unix-other"]
|
||||
;; ["Macintosh PowerPC (MacOS Classic)" "mac-ppc-macos"]
|
||||
;; ["Macintosh 68K" "mac-68k"]
|
||||
;; ["BeOS" "beos"]
|
||||
;; ["MzScheme kernel" "mzkernel"]
|
||||
)))
|
||||
(define (severity-option-links)
|
||||
(mk-options '(["Critical" "critical"]
|
||||
[* "Serious" "serious"]
|
||||
["Non-critical" "non-critical"])))
|
||||
(define (bug-class-option-links)
|
||||
(mk-options '([* "Software Bug" "sw-bug"]
|
||||
["Documentation Bug" "doc-bug"]
|
||||
["Change Request" "change-request"]
|
||||
["Support" "support"])))
|
||||
|
||||
(define (mk-options opts)
|
||||
(for/list ([s (in-list opts)])
|
||||
(if (eq? '* (car s))
|
||||
@option[selected: 'true value: (caddr s)]{@(cadr s)}
|
||||
@option[value: (cadr s)]{@(car s)})))
|
||||
|
||||
(require "../www/main.rkt" racket/string)
|
||||
|
||||
(define (cgi-link from . to)
|
||||
(apply symlink (format "/www/cgi-bin/~a" from) to))
|
||||
(define bug-report-cgi (cgi-link "bug-report" "bug-report.cgi"))
|
||||
(define bug-report-captcha (cgi-link "bug-report-captcha"))
|
||||
|
||||
(provide captcha-file)
|
||||
(define captcha-file (make-parameter #f))
|
||||
|
||||
(define query
|
||||
@page[#:title "Query Bug Reports" #:file "query/"]{
|
||||
@em{TODO}})
|
||||
|
||||
(define (bugs-script)
|
||||
@script/inline{
|
||||
var bugform = null;
|
||||
var browser_platform = "";
|
||||
var params = new Array();
|
||||
var cookies = new Array();
|
||||
@||
|
||||
function initBugData() {
|
||||
bugform = document.getElementById("BugForm");
|
||||
if (navigator.platform && navigator.platform != "")
|
||||
browser_platform = navigator.platform;
|
||||
if (navigator.cpuClass && navigator.cpuClass != "")
|
||||
browser_platform += " / " + navigator.cpuClass;
|
||||
if (navigator.userAgent && navigator.userAgent != "")
|
||||
browser_platform += " / " + navigator.userAgent;
|
||||
if (location.search.length > 0) {
|
||||
var paramstrs = location.search.substring(1).split(@"/[;&]/");
|
||||
for (var i in paramstrs) {
|
||||
var param = paramstrs[i].split(/=/);
|
||||
if (param.length == 2)
|
||||
params[param[0]] = unescape(param[1]).replace(/\+/g," ");
|
||||
}
|
||||
}
|
||||
if (document.cookie.length > 0) {
|
||||
var cookiestrs = document.cookie.split(@"/; */");
|
||||
for (var i in cookiestrs) {
|
||||
var eql = cookiestrs[i].indexOf('=');
|
||||
if (eql >= 0)
|
||||
cookies[cookiestrs[i].substring(0,eql)] =
|
||||
unescape(cookiestrs[i].substring(eql+1));
|
||||
}
|
||||
}
|
||||
if (params["v"]) bugform.version.value = params["v"];
|
||||
DoUserFields(RestoreUserField);
|
||||
if (bugform.platform.value == "") {
|
||||
if (bugform.platform_options.selectedIndex == 0) UpdatePlatformUser();
|
||||
else UpdatePlatformOptions();
|
||||
}
|
||||
if (bugform.email.value == "") bugform.email.focus();
|
||||
else if (bugform.name.value == "") bugform.name.focus();
|
||||
else bugform.subject.focus();
|
||||
}
|
||||
@||
|
||||
function SaveUserField(field, name) {
|
||||
if (field.value != "") {
|
||||
var d = new Date();
|
||||
d.setTime(d.getTime()+(365*24*60*60*1000));
|
||||
document.cookie = name + "=" + escape(field.value)
|
||||
+ "; expires="+ d.toGMTString()
|
||||
+ "; path=/";
|
||||
}
|
||||
}
|
||||
function RestoreUserField(field, name) {
|
||||
if (field.value == "" && cookies[name]) field.value = cookies[name];
|
||||
}
|
||||
function DoUserFields(op) {
|
||||
op(bugform.email, "email");
|
||||
op(bugform.name, "name");
|
||||
op(bugform.version, "version");
|
||||
op(bugform.platform, "platform");
|
||||
op(bugform.platform_user, "platform_user");
|
||||
op(bugform.platform_options, "platform_options");
|
||||
}
|
||||
@||
|
||||
function CheckSubmit() {
|
||||
DoUserFields(SaveUserField);
|
||||
if (bugform.email.value == "") {
|
||||
window.alert("Please enter an Email");
|
||||
return false;
|
||||
}
|
||||
if (bugform.subject.value == "" && bugform.description.value == "") {
|
||||
window.alert("Please enter a summary and/or a description"
|
||||
+ " of your bug");
|
||||
return false;
|
||||
}
|
||||
if (bugform.version.value == "") {
|
||||
window.alert("Please enter your Racket version");
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@||
|
||||
var old_platform_user = null;
|
||||
function UpdatePlatformUser() {
|
||||
var newval = bugform.platform_user.value;
|
||||
if (old_platform_user != newval) {
|
||||
if (newval == "" && old_platform_user != browser_platform) {
|
||||
newval = browser_platform;
|
||||
bugform.platform_user.value = browser_platform;
|
||||
bugform.platform_user.select();
|
||||
}
|
||||
bugform.platform.value = newval;
|
||||
bugform.platform_options.selectedIndex = 0;
|
||||
bugform.platform_user.focus();
|
||||
old_platform_user = newval;
|
||||
}
|
||||
}
|
||||
@||
|
||||
function UpdatePlatformOptions() {
|
||||
var d = new Date();
|
||||
var opts = bugform.platform_options;
|
||||
var newval = opts.options[opts.selectedIndex].value;
|
||||
if (newval == "") {
|
||||
bugform.platform.value = browser_platform;
|
||||
bugform.platform_user.value = old_platform_user = browser_platform;
|
||||
} else {
|
||||
bugform.platform.value = newval;
|
||||
bugform.platform_user.value = old_platform_user = "...or type";
|
||||
}
|
||||
bugform.platform_user.select();
|
||||
opts.focus();
|
||||
}})
|
||||
|
||||
(define index
|
||||
@page[#:title "Bug Reports"]{
|
||||
@p[style: "padding: 5px; color: #a00; border: 1px solid;"]{@em{
|
||||
@page[#:title "Bug Reports" #:extra-headers bugs-script
|
||||
#:extra-body-attrs `(onLoad: "initBugData();")]{
|
||||
@p[style: '("padding: 5px; color: #a00; background-color: #ffe;"
|
||||
" border: 1px solid; font-weight: bold;")]{
|
||||
If you can, please use the Bug Report item in DrRacket's Help menu. It
|
||||
works better than this page, because it helps you supply precise
|
||||
information about your Racket installation and working environment.}}
|
||||
information about your Racket installation and working environment.}
|
||||
@p{@strong{Note:} Bug reports for PLaneT packages are submitted on the
|
||||
@a[href: planet-bugs]{PLaneT server}.}
|
||||
@p{Before submitting a bug report, you may wish to:
|
||||
@ul{@li{Consult the @-docs,}
|
||||
@li{@download a newer Racket version if there is one (Racket
|
||||
displays its version number on startup),}
|
||||
@li{@query{Query existing bug reports}.}}}})
|
||||
@li{@query{Query existing bug reports}.}}}
|
||||
@(define (field mode title . input)
|
||||
(let ([title (b title ":")])
|
||||
(case mode
|
||||
[(line) (list title " " input br)]
|
||||
[(br) (list title br input br br)]
|
||||
[(tr) (tr (td title) (td input))]
|
||||
[else (error 'field "internal error")])))
|
||||
@form[action: bug-report-cgi method: 'post id: 'BugForm
|
||||
style: '("border: 2px solid #44f; padding: 6px;"
|
||||
" background-color: #eef;")
|
||||
onsubmit: "return CheckSubmit();"]{
|
||||
@field['br "Your name"]{
|
||||
@input[type: 'text name: 'name value: "" size: 40]}
|
||||
@field['br "Your e-mail address"]{
|
||||
@input[type: 'text name: 'email value: "" size: 40]}
|
||||
@field['br "Summary of the problem"]{
|
||||
@input[type: 'text name: 'subject value: "" size: 60]}
|
||||
@table{
|
||||
@field['tr "Version"]{
|
||||
@input[type: 'text name: 'version value: "" size: 14]}
|
||||
@field['tr "Platform"]{
|
||||
@input[type: 'text name: 'platform_user size: 30
|
||||
onchange: "UpdatePlatformUser();"
|
||||
onkeyup: "UpdatePlatformUser();"]@;
|
||||
@|nbsp|@;
|
||||
@select[name: 'platform_options
|
||||
onchange: "UpdatePlatformOptions();"]{
|
||||
@platform-option-links}@;
|
||||
@input[type: 'hidden name: 'platform]}
|
||||
@field['tr "Severity"]{
|
||||
@select[name: 'severity]{@severity-option-links}}
|
||||
@field['tr "Class"]{
|
||||
@select[name: 'class]{@bug-class-option-links}}}
|
||||
@br
|
||||
@field['br "Description of the problem"]{
|
||||
@textarea[name: 'description rows: 12 cols: 70
|
||||
style: "font-family: monospace;"]{}}
|
||||
@field['br '("If possible, please give a short sequence of steps to"
|
||||
" reproduce the problem")]{
|
||||
@textarea[name: 'how-to-repeat rows: 8 cols: 70
|
||||
style: "font-family: monospace;"]{}}
|
||||
@(let* ([c (captcha-file)]
|
||||
[c (and c (img src: (cgi-link c) align: "middle"))])
|
||||
(and c @field['line @list{Please type @c}]{
|
||||
@input[type: 'text name: 'captcha value: "" size: 10]}))
|
||||
@input[type: 'submit value: "Submit"]}})
|
||||
|
|
Loading…
Reference in New Issue
Block a user