[ZWeb] CFV: Bug box on nzo

Paul Everitt paul@zope.com
Mon, 22 Apr 2002 06:58:36 -0400

Howdy.  This is an important week, as we march towards a Milestone One 
release.  All of you can help, and I know, deep in my heart, that all of 
you are simply itching to volunteer. :^)

To make it easier, I'll put out some bite-sized tasks under "CFV" 
subjects.  (CFV means call for volunteers.)  Here's the first one.

I added a box at the bottom of the nzo skin pages labelled "Temporary 
Area -- The Bug Box".  It isn't wired up yet.  Here's a quick run down 
of this task.

Any takers?  It is likely to be two hours of work.  It probably requires 
zero access to nzo or the collector site until after you've done most of 
the implementation.


Implement Bug Box


The bug box makes it very quick and non-disruptive to provide feedback 
on nzo pages, make suggestions, jot down ideas, etc.


1. Collect structured input.

2. Provide visibility of current issues.

3. Not slow down the site review process.

4. Make it much simpler to lodge bunches of issues.

Suggested Implementation

I started a form area that goes at the bottom of every page on nzo. 
Currently this table is always visible; others may choose to set its css 
display to none and put a link in the footer area to turn it on.

I envisioned three approaches to this: simple, medium and hard.  In the 
simple case, the form action is just uses collector.zope.org as the 
target.  This has the downside that, when the page is posted, you leave 
nzo and have to find your way back.

In the medium case, you fix this problem by moving the form itself to 
collector.zope.org and inserting it in the nzo page as an iframe.

In the hard case, you make bug submission completely async by using 
XmlHttpRequest (supported in IE and Mozilla).  Clicking on "Add" doesn't 
post a form.  Instead, it calles some Javascript which collects the form 
data, constructs a GET URL, and makes an XmlHttpRequest connection. 
"Add" is async, "Add and Confirm" is sync with a pop-up box indicating 
success/failure.  If the collector can't use GET, then you have to build 
the form data and use POST.

Both the simple and hard case might hampered by the need to collect the 
login information *on the collector*.  Otherwise everything is coming 
from anonymous.  It's likely that you don't need to be logged in to the 
collector, as collector_email is a form field that can be passed in.