1
========== Gnatsweb 4.0 released ======================================
3
2003-07-29 Yngve Svendsen <yngve.svendsen@sun.com>
5
* Makefile: update OTHER_FILES and INSTALL_CGI.
7
* README: Emphasize that Gnatsweb 4.0 needs GNATS 4. Be specific
8
about CGI.pm versions. Fix typos. Change 2002 to 2003 in the
9
copyright notice -- there were no official releases in 2002.
11
* gnatsweb-site-example.pl, test.pl: Change 2002 to 2003 in the
12
copyright notice -- there were no official releases in 2002.
14
* gnatsweb.pl: Change 2002 to 2003 in the copyright notice --
15
there were no official releases in 2002. Change $VERSION to 4.00.
21
2003-05-06 Yngve Svendsen <yngve.svendsen@sun.com>
23
* gnatsweb.pl (edit): Change check for whether field value is a
24
known enumeration value to take into account that 'unknown' may be
25
an already existing, legitimate field value.
27
2003-04-29 Yngve Svendsen <yngve.svendsen@sun.com>
29
* gnatsweb.pl (sendpr): Set default Submitter-Id field to the
30
value stored in the global cookie.
32
* gnatsweb.pl (submit_stored_query): Separate "submit query"
33
command and query string with ';', not '&'. Fixes PR 469. Fix
34
thanks to Alexey Roytman.
36
* gnatsweb.pl (fix_multiline_val): Prevent whitespace-only values
37
from being entered in multiline fields.
39
* gnatsweb.pl (edit): Rewrite check for whether field value is a
40
known enumeration value -- use foreach instead of grep. Fixes PR
43
* gnatsweb.pl (get_mailto_link): Opera needs the URL in the
44
mailto: link message body encoded only once (sigh, another special
47
2003-01-08 Yngve Svendsen <yngve.svendsen@sun.com>
49
* gnatsweb.pl (get_mailto_link): Correct negation of binding
50
operator from !=~ to !~. Thanks to Alwin Dieperink.
52
========== Gnatsweb 4.0 beta 4 released ===============================
54
2002-11-23 Yngve Svendsen <yngve.svendsen@sun.com>
56
* gnatsweb.pl: Set VERSION to 3.99.4. This is beta 4.
58
* Makefile: Add a few forgotten files to OTHER_FILES.
60
* gnatsweb.pl: $site_no_gnats_passwords now has a default value
62
- CUSTOMIZE.vars: Update accordingly.
64
* BETA: Update for beta 4. Add 2002 to copyright notice.
66
* Makefile, README, gnatsweb-site-example.pl, gnatsweb.pl,
67
test.pl: Add 2002 to copyright notice.
69
2002-10-31 Yngve Svendsen <yngve.scary@trick.or.treat>
71
* gnatsweb.pl (view, edit, submit_stored_query,
72
delete_stored_query): Call error_page() instead of printing out
73
errors ourselves. The stored query error printing didn't even
76
* gnatsweb.pl (get_reply): Call page_footer and page_end_html
77
after calls to gerror(). Fixes PR 399.
79
2002-10-29 Yngve Svendsen <yngve.svendsen@sun.com>
81
* gnatsweb.html: Mention that required fields on the Create PR
82
page are emphasized in red, by default.
84
2002-10-27 Yngve Svendsen <yngve.svendsen@sun.com>
86
* CUSTOMIZE.vars: Document $site_required_field_color.
88
* gnatsweb.pl: New field flag $SENDREQUIRED to mark a field as
89
being set to "inital-entry require" in the dbconfig.
90
- $site_required_field_color: new config variable specifying the
91
color to use when marking required fields on the Create PR page.
92
- (init_fieldinfo): Set it.
93
- (sendpr): Use it to mark required fields.
95
* gnatsweb.pl (query_page): Add missing "print" statement in front
96
of some end table cell and row tags.
98
* gnatsweb.pl (display_query_results): Display `unknown' for
99
enumerated-field values that don't exist. This and the 3 next
100
items are due to Lars Henriksen.
102
* gnatsweb.pl (submitedit): Throw an error if Responsible,
103
Category or Submitter-Id are set to `unknown'.
104
- Remove check for empty username or empty Responsible field.
105
Noone quite understood why it was there.
107
* gnatsweb.pl (edit): Check whether the value set in an enumerated
108
field exists or has been removed from the administrative database
109
(file or dbconfig). If the value has been removed, use the value
112
* gnatsweb.pl (sendpr): Force users to set category to something
113
meaningful by setting default value to `unknown'.
115
* gnatsweb.pl (sendpr, edit): The value being returned from
116
fieldinfo() is a hashref, not a hash. Change @values to $values
117
in all applicable places.
119
2002-10-25 Yngve Svendsen <yngve.svendsen@sun.com>
121
* gnatsweb.pl (submitnewpr): Remove return statement -- the call
122
client_cmd("$text.") will exit after leaving an error message
123
because $client_would_have_exited has not been set to 1.
124
Spotted and fixed by Lars Henriksen.
126
* gnatsweb.pl (edit, sendpr, view): Get rid of the blank row after
127
"Reporter's E-mail". Takes up space and separating mail headers
128
and GNATS fields has no meaning for users of the interface.
130
2002-10-15 Yngve Svendsen <yngve.svendsen@clustra.com>
132
* gnatsweb.pl (main): Allow passwordless logins in order to
133
support revised authentication mechanism in latest revision of
134
GNATS 4. Change due to Pankaj K. Garg.
136
2002-10-12 Yngve Svendsen <yngve.svendsen@clustra.com>
138
* gnatsweb.pl (submitnewpr): Check PR text before submitting new
139
PR. Previously, it did not check contents, which implied that
140
in a GNATS database where text fields were defined in dbconfig
141
with the `matching' keyword, you could create a PR that would be
142
rejected with a "Field x with contents `y' didn't match any of
143
the required regexps" the first time you edit it, even though
144
you didn't change the text field at all.
146
* gnatsweb.pl (login_page): Add missing </td> after "User Name:".
149
* gnatsweb.pl (submitnewpr): Remove extra newline after PR text.
150
Patch due to Lars Henriksen.
152
* gnatsweb.pl (server_reply, read_server, client_cmd): Print
153
proper headers when needed. Patch by Robert Lupton the Good.
155
* gnatsweb.pl (display_query_results): Add a link at the bottom of
156
the Query Results page which allows the user to reverse the sort
157
order of the currently displayed results. Based on a patch by
159
- gnatsweb.html: Mention the Reverse sort order link.
161
* gnatsweb.html: Change the description of the Query Page to match
162
the new layout and describe a few previously left-out fields.
164
* gnatsweb.pl (query_page): Place the "Originated by You" and
165
"Ignore Closed" checkboxes together with the Submitter-Id and
166
State listboxes resp. Use valign=top in the left-column cells.
167
Change the placement of the "Display Current Date" checkbox.
168
Change the designation "Descending Order" to "Reverse Order".
169
- (advanced_query_page): Change the placement of the "Display
170
Current Date" checkbox. Change the designation "Descending
171
Order" to "Reverse Order".
173
* gnatsweb.pl (get_mailto_link): Quote the URL in the body twice
174
for all non-Netscape browsers.
176
2002-10-11 Yngve Svendsen <yngve.svendsen@clustra.com>
178
* gnatsweb.pl: field2param and param2field are gone. We now
179
operate exclusively both internally and externally with proper
180
dbconfig fieldnames, not lower-case versions. This breaks
181
compatibility of Gnatsweb 2.x and older Gnatsweb 3.x stored
182
queries with this version. site-files may also need a slight
183
change, in that the callbacks edit_intro_'fieldname' and
184
sendpr_intro_'fieldname' need to have 'fieldname' changed from
185
the lower case name to the fieldname set in dbconfig. Changes
186
due to Lars Henriksen.
187
- (submitquery): Use anchored regexp searches for enumerated
188
types. Changes due to Lars Henriksen.
189
* CUSTOMIZE.cb: Explicitly state that the edit_intro_'fieldname'
190
and sendpr_intro_'fieldname' should have 'fieldname' set to the
191
dbconfig fieldname, not the lower case version.
192
* gnatsweb-site-example.pl: Amend the edit_intro_'fieldname' and
193
sendpr_intro_'fieldname' to take the above into account.
195
2002-09-24 Yngve Svendsen <yngve.svendsen@clustra.com>
197
* gnatsweb.pl (submitedit): Remove \n at the end of the edited PR
198
text during submission. Fix by Lars Henriksen, PR 385.
200
* gnatsweb.pl (query_page, advanced_query_page): Add "Descending
201
Order" option to `sort by'.
203
2002-09-17 Yngve Svendsen <yngve.svendsen@clustra.com>
205
* CUSTOMIZE.vars: Document the mark_urls hash. Note to everyone
206
who does checkins: Remember to update the docs when you check in
207
something significant.
209
* gnatsweb.pl (edit, view): Include PR number in page title.
210
Patch by Robert Lupton the Good.
212
* gnatsweb.pl (login_page): Add missing comma to print statement.
213
Fix by Robert Lupton the Good.
215
* gnatsweb.pl (query_page, advanced_query_page): Add `sort by'
216
functionality, based on patch by Robert Lupton the Good.
217
- Move `Originated by You' checkbox so it appears just beneath
219
- Use real dbconfig fieldnames in the list boxes instead of lower
220
case or builtin fieldnames.
222
2002-08-10 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
224
* gnatsweb.pl (server_reply): Use <br /> instead of <br> for
225
future XHTML compliance.
226
(read_server): Ditto.
228
(print_attachments): Ditto.
232
(advanced_query_page): Ditto.
234
(change_database): Ditto.
238
2002-08-10 Anders Johnson <anders@wischip.com>
240
* gnatsweb.pl (server_reply): Print actual reply from server.
242
2002-07-26 Yngve Svendsen <yngvesv@math.ntnu.no>
244
* gnatsweb-site-example.pl (site_callback): Change qfmt field
245
separators in accordance with the new usage of octal charcter 037
248
2002-06-04 Dirk Bergstrom <dirk@juniper.net>
250
* gnatsweb.pl (mark_urls): Changed the regexes so it no longer
251
does four passes over the string. Put in a config knob
252
(%mark_urls) to control behavior, and limit size of fields
253
processed. This is theoretically a fix for PR 387 (mark_urls
254
takes over a minute), however, I find no measurable difference in
255
performance before and after the change. oh well, it's still a
258
2002-02-22 Dirk Bergstrom <dirk@juniper.net>
260
* gnatsweb.pl (sendpr, validate_new_pr, submitnewpr, view, edit,
261
submitedit, parsepr, interested_parties): Remove X-GNATS-Notify
262
from gnatsweb. it's not supported by gnatsd, so it's just
264
(init_prefs): add a hack to support old "email_add" cookie value.
265
(edit, sendpr): change the name of forms to "PrForm". this is
266
used by a javascript hook in a helper app, and it needs to talk to
268
(edit): decremented the field count so the javascript hook would
269
work after removing the x-gnats-notify field.
271
2002-02-09 Yngve Svendsen <yngve.svendsen@clustra.com>
273
* gnatsweb.pl (submitquery): Use exact matching when querying on
274
enum or multienum type fields. Should be the behaviour that
275
most people would expect. Fixes PR 322.
277
2001-12-18 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
279
* gnatsweb.pl (page_start_html): Do not mix classic HTML color
280
tags (BGCOLOR) and CSS.
282
========== Gnatsweb 4.0 beta 3 released ===============================
284
2001-12-12 Yngve Svendsen <yngve.svendsen@clustra.com>
286
* gnatsweb.pl: Set VERSION to 3.99.3. This is beta 3.
288
2001-12-04 Yngve Svendsen <yngve.svendsen@clustra.com>
290
* gnatsweb.pl (sendpr, validate_email_field, init_prefs): Rename
291
'email_addr' to 'email' in the global cookie.
293
2001-12-02 Yngve Svendsen <yngve.svendsen@clustra.com>
295
* gnatsweb.pl (submitquery, display_query_results): Use ASCII
296
octal \037 (unit separator) as field separator in the query
297
output format string, instead of '|', which would make Gnatsweb
298
mess up the query results display when a field contained a '|'.
300
2001-11-30 Yngve Svendsen <yngve.svendsen@clustra.com>
302
* gnatsweb.pl (display_query_results): Removed definition of
303
$myurl -- it was never used.
305
* gnatsweb.pl: Implement redirect after 'Store query':
306
- (display_query_results): Add return_url hidden field to form.
307
- (store_query): Add redirect code, notify user that redirect is
310
2001-11-29 Yngve Svendsen <yngve.svendsen@clustra.com>
312
* gnatsweb.pl: Implement redirect after 'Create':
313
- (sendpr): Add hidden field 'return_url' to form.
314
- (submitnewpr): Defer call to page_start_html until we know
315
whether we need a customized HTML head. Create global cookie
316
here, not in main. Add code to issue refresh header and call
317
page_start_html with extra arguments for the HTML head section
318
for the MSIE workaround. Add a line to the result page saying
319
that the user will be redirected automatically.
320
- (get_pr_url): Do not include pr=xxx in URL when $pr is 0.
321
- (page_start_html): Add passed arguments (if any) to the call to
322
start_html. Use URL containing return_url parameter in the
323
CREATE link in the button bar.
324
- (main): Remove call to print_header in the 'submit' case. We do
325
this inside the submitnewpr subroutine now.
326
- (submitedit): Do the refresh in the same way as in submitnewpr -
327
the old method emitted bad HTML.
328
- (delete_stored_query): Ditto.
330
* gnatsweb.pl (sendpr, edit): Fix syntax error that prevented
331
table cell and row end tags from being printed.
333
2001-11-21 Yngve Svendsen <yngve.svendsen@clustra.com>
335
* CUSTOMIZING.vars, TROUBLESHOOTING, INSTALL, gnatsweb.html,
336
gnatsweb.pl: Changes to reflect that GNATS development has moved
339
* gnatsweb.pl: Add 'use Text::Tabs'.
340
- (view): Expand tabs to spaces, replace back-to-back occurrences
341
of spaces with " " and a space. This makes browsers render
342
indented code correctly. Thanks to Brad Garcia.
344
2001-11-19 Yngve Svendsen <yngve.svendsen@clustra.com>
346
* gnatsweb.pl: A bit of cleanup, based on suggestions from Dirk
348
- (init_fieldinfo): Add 'separators' and 'default_sep' hash
349
elements for multienum fields.
350
- (parse_multienum, unparse_multienum): Use them.
351
- (multiselect_menu): New subroutine. Returns a
353
- (edit, sendpr): Use it.
354
- (query_page): Use // around regexp.
355
- (unparse_multienum): Use join instead of foreach loop.
357
2001-11-03 Yngve Svendsen <yngve.svendsen@clustra.com>
359
* gnatsweb.pl: Initial check-in of multienum support code.
360
- (parse_multienum): Parse a legally separated MultiEnum string by
361
splitting on the multienum separators and returning the result
363
- (unparse_multienum): Collect multienum form values in a single
364
string, values separated by the first character in the multienum
365
separator string for that field.
366
- (submitnewpr, submitedit): Use unparse_multienum on MultiEnum
367
field values from the form.
368
- (edit): Use parse_multienum to pre-fill MultiEnum fields in the
369
form with the old values. We use a multiselect scrolling list.
370
- (query_page, advanced_query_page): Support queries on MultiEnum
371
fields. We use a multiselect scrolling list.
372
- (sendpr): Support entry of values for MultiEnum fields using a
373
multiselect scrolling list.
375
* gnatsweb.pl (delete_stored_query): Use refresh, not redirect,
376
since that confuses Netscape. Add workaround for MSIE's
377
non-handling of refresh headers.
379
* gnatsweb.pl (login_page): Tweak print statement to avoid user
380
strict-related warning.
382
2001-11-01 Dirk Bergstrom <dirk@juniper.net>
384
* gnatsweb.pl (one_line_form, view): Change form submission from
385
POST to GET. Postdata expires from cache after some time (i
386
believe it's browser-dependent), and this can cause loss of data
387
in the following scenario: user clicks the create button on the
388
main page, spends half an hour entering PR data, hits submit, and
389
there's an error; user hits "back", but is told that the create
390
form is postdata, and it has expired. all the data they entered
391
is lost, and much frustration ensues. this can also happen with
392
editing and query submission.
393
(edit): Increment number of hardcoded fields in $field_number to
394
account for the addition of return_url. This needs to be done
395
whenever a non-dynamic field is added to the top of the edit or
398
2001-10-30 Yngve Svendsen <yngve.svendsen@clustra.com>
400
* gnatsweb.pl (get_mailto_link): Remove special handling
401
of Internet Explorer browser -- not all MSIE users use Outlook.
402
Furthermore, newer versions of Outlook do not need the special
404
- (get_mailto_link): Put Synopsis, as well as category and PR
405
number in the Subject field of the mailto link.
407
2001-10-23 Yngve Svendsen <yngve.svendsen@clustra.com>
409
* gnatsweb.pl ($site_banner_text): Say 'GNU Gnatsweb'.
411
2001-10-21 Yngve Svendsen <yngve.svendsen@clustra.com>
413
* TROUBLESHOOTING: New document.
415
* INSTALL: Update, expand, correct. Mention troubleshooting
418
* gnatsweb.pl (advanced_query_page): Use cellspacing=0.
420
* gnatsweb.pl (sendpr): Change name of form from editPrForm to
423
2001-10-20 Yngve Svendsen <yngve.svendsen@clustra.com>
425
* gnatsweb.pl (get_viewpr_url): Properly escape the 'view
426
audit-trail' command.
428
========== Gnatsweb 4.0 beta 2 released ===============================
430
2001-10-17 Yngve Svendsen <yngve.svendsen@clustra.com>
432
* $VERSION set to 3.99.2. This is Gnatsweb 4.0 beta 2.
434
* Gnatsweb is finally under the GPL. All significant files,
435
copyright notices and licensing conditions have been added to
436
all code files and the README file.
437
- COPYING: New file containing the GPL.
441
2001-10-17 Dirk Bergstrom <dirk@juniper.net>
443
* gnatsweb.pl (parse_submitters): Populate %submitter_complete
444
with the human-readable value from the submitters file.
445
(popup_or_scrolling_menu): Use %submitter_complete to provide
446
labels for Submitter-Id field.
447
(main_page): Display current database in change database dropdown.
448
(formstart): Workaround for an exceedingly dumb netscape bug, in
449
which the back arrow is broken after submitting a new PR or an
451
(form_start, multipart_form_start): Wrapper functions for
453
(send_pr, edit): Use multipart_form_start().
454
(init_prefs): Added code to save email_addr in the global cookie.
455
This value is used to populate the email field in the create PR
456
screen. This functionality disappeared somewhere after 1.59.
458
2001-10-15 Yngve Svendsen <yngves@gnu.org>
460
* INSTALL: Change the treatment of access control to take into
461
account the new 'listdb' level.
463
* CUSTOMIZE.vars: Document the $include_audit_trail variable.
465
2001-10-12 Yngve Svendsen <yngve.svendsen@clustra.com>
467
* Makefile: Silence the test target a bit.
469
* test.pl: Get rid of noise generated when the test script is
470
unable to connect to the GNATS database. Add a note on how to
471
troubleshoot connection problems.
473
* gnatsweb.pl: Strengthen warning about setting config variables
474
in the site file, not in the main script.
476
2001-10-11 Yngve Svendsen <yngves@gnu.org>
478
* gnatsweb.pl (split_csl): New subroutine. Splits comma-separated
479
e-mail addresses in such a way that commas in quotes aren't
480
considered separators. Thanks to Arno Unkrig.
481
(fix_email_addrs): Use it.
482
(interested_parties): Likewise.
484
* gnatsweb.html: Document the Display Current Date checkbox in the
487
* gnatsweb.pl (query_page, advanced_query_page): Add checkbox
488
controlling whether to display the current date on the results
490
- (display_query_results): Display current date below number of
491
matches if the "Display current date" checkbox on the query page
494
* gnatsweb.pl: New config variable $include_audit_trail which
495
controls whether the Audit-Trail will be shown by default in the
497
(main_page, get_viewpr_url): Use it.
499
* gnatsweb.pl (popup_or_scrolling_menu): Use both username and
500
full name in the Responsible dialog.
501
- (parse_responsible): New responsible_complete hash. Contains
502
both username and full name.
504
2001-09-21 Dirk Bergstrom <dirk@juniper.net>
506
* gnatsweb.pl (main_page): add a '$q->' to a CGI.pm call that i
509
2001-09-12 Yngve Svendsen <yngve.svendsen@clustra.com>
511
* gnatsweb.pl: Various very minor changes to get rid of strict
514
* gnatsweb-site-example.pl: Fix problems with 'open' and 'not
515
closed' examples by switching to custom query format instead of
518
* CUSTOMIZE.cb, CUSTOMIZE.vars: Update in accordance with the
519
changes below. Make layout a smidgen clearer.
521
* gnatsweb.pl: Change $gnats_info_top to point to a page on
522
sources which contains links to documentation for multiple
525
* gnatsweb.pl (login_page): Add a callback which allows printing
526
of a welcome message on the login page.
527
- gnatsweb-site-example.pl: Use it.
529
2001-09-11 Yngve Svendsen <yngve.svendsen@clustra.com>
531
* gnatsweb.pl: Change $VERSION to 3.99. We're in beta now.
533
* INSTALL: Include notes for upgraders.
535
* gnatsweb-site-example.pl: Fix problems with query results table
536
header row when using the 'open' and 'not closed' buttons.
538
* gnatsweb.html: Fairly minor changes to reflect the way GNATS and
541
* Makefile: Add new files to the OTHER_FILES macro. Rewrite
542
install target to back up old installations and to preserve the
543
gnatsweb-site.pl file if already installed. Remove references
544
to gnatsweb-site-sente.pl.
546
2001-09-10 Yngve Svendsen <yngve.svendsen@clustra.com>
548
* gnatsweb-site-sente.pl: Gone -- it was getting a bit long in the
549
tooth and 2.x-specific.
551
* gnatsweb-site-example.html: Fleshed out a bit.
553
* CUSTOMIZE.cb: Callback documentation finished.
555
* gnatsweb.pl (sendpr): Removed get_default_value callback hook.
557
2001-09-09 Yngve Svendsen <yngve.svendsen@clustra.com>
559
* gnatsweb.pl (main): Support cmd callbacks.
561
* CUSTOMIZE, CUSTOMIZE.vars: New documentation on how to customize
564
* gnatsweb.pl: $global_cookie_expires was being defined twice.
566
* Makefile (tarball, default, no-debug-statements): Misc. fixes.
568
* gnatsweb.pl: $VERSION now global, so that we can use it in the
571
* gnatsweb.pl (client_init): Trap attempts to use a nonexisting
574
* README, TODO: Update for Gnatsweb 4.
575
- INSTALL: Largely rewritten for Gnatsweb 4
576
- gnatsweb-site.pl: Minimal local configuration file.
577
- Makefile: Install gnatsweb-site.pl, not gnatsweb-site-sente.pl
579
2001-09-08 Yngve Svendsen <yngve.svendsen@clustra.com>
581
* gnatsweb.pl (page_start_html): Reenable the button bar on the
582
main page -- turns out users who are accustomed to it use it
585
2001-09-07 Dirk Bergstrom <dbergstr@crawler.juniper.net>
587
* gnatsweb.pl (get_mailto_link): rewritten to properly html-escape
588
the followup mailto: link contents.
590
* gnatsweb.pl (help_page): Changed bare calls to p() & a() to
591
$q->p() style calls. Missed these yesterday.
593
2001-09-06 Dirk Bergstrom <dbergstr@crawler.juniper.net>
595
* gnatsweb.pl: Use CGI qw/-nosticky/; This prevents CGI.pm from
596
appending a bunch of .cgifields to every self_url(). AFAIK, we're
597
not using CGI.pm's sticky field features, so we can do w/o the
598
overhead and the unreasonably long URLs it produces.
600
* gnatsweb.pl: Changed bare calls to CGI.pm routines to qualified
601
calls (ie. submit(foo... becomes $q->submit(foo... ). This allows
602
us to stop importing the :standard and :netscape extensions to
603
CGI.pm. Doing so should improve the startup time and decrease
606
* gnatsweb.pl: Refresh headers choke on semicolon-separated
607
query-strings, so we change semicolons to ampersands in the URL
608
everywhere we use refresh.
610
* gnatsweb.pl (view, edit, submitedit, download_attachment): Added
611
code to strip non-digit characters from $pr. Gnatsd sometimes
612
accepts category/number, and sometimes does the Wrong Thing, and I
613
thought it best to remove the possibility of problems.
615
* gnatsweb.pl (camouflage, set_pref): Removed camouflage()ing of
616
'user', since the first time I used this version of gnatsweb, it
617
became convinced that my username was 'ag`tavqw'. This migration
618
problem far outweighs the meager benefits of masking the username
619
in the cookie. camouflage()ing the password will still cause
620
migration problems for sites that have used a previous incarnation
621
of gnatsweb, but it might be worth it...
623
* gnatsweb.pl (page_start_html): Don't show logout button if
624
$site_gnatsweb_server_auth is set. Don't show button bar on main
625
page. Changed all the html tags to lowercase, for
626
standards-compliance.
628
* gnatsweb.pl (datemenu, edit): Removed datemenu(), and the one
629
(unreachable) reference to it. It was unused, and probably
630
justifiably so, given the robust date parsing abilities in gnatsd.
632
* gnatsweb.pl (display_query_results): Strip empty params out of
633
$url for the "View for bookmarking" link.
635
* gnatsweb.pl (store_query): Strip empty params out of
636
$query_string before building cookie, to help keep it under the 4K
637
limit. Check (approx) length of cookie, error if it looks like
638
it's going to be over 4K.
640
* gnatsweb.pl (get_mailto_link): Added a new config parameter,
641
%site_pr_submission_address. If set for the current database,
642
get_mailto_link() adds a mailto: link ("submit followup via
643
email") that goes to the local PR submission address and the PR's
644
Reply-To address. The subject is set so that the message gets
645
tacked on to the PR's audit trail.
647
2001-09-02 Yngve Svendsen <yngve.svendsen@clustra.com>
649
* test.pl: Remove parse/unparse tests. These would be very hard
650
to get to work with GNATS 4's customized fields.
652
2001-08-23 Yngve Svendsen <yngve.svendsen@clustra.com>
654
* gnatsweb.pl ($VERSION): Change to 3.98.
656
* gnatsweb.pl (submitedit): Corrected a typo that prevented
657
free-text search against specific fields from working. Thanks
658
to Paul-Andre Panon for spotting this.
660
2001-08-20 Yngve Svendsen <yngve.svendsen@clustra.com>
662
* gnatsweb.pl (edit): Add the attribute wrap=hard to
663
Reason-Changed textareas. Causes input in these fields to be
664
added to the Audit-Trail prewrapped at $textwidth.
666
2001-08-19 Yngve Svendsen <yngve.svendsen@clustra.com>
668
* gnatsweb.pl (parse_categories): No longer exclude 'pending' from
669
the category search list. This restriction made little sense.
671
* gnatsweb.pl: Move the initial declaraion of $GNATS_VERS from the
672
sub initialize to the outermost block so that main_page can
674
- (main_page): Print both the Gnatsweb and GNATS version numbers
675
in the main page footer.
677
* gnatsweb.pl ($use_temp_db_prefs_cookie): New variable. If this
678
is set, the db_prefs cookie is set without an expiry date,
679
generating a browser-stored cookie limited to the current
680
session. This improves security.
681
- (cmd_login): Set cookie expiry only if $use_temp_db_prefs_cookie
684
* gnatsweb.pl (camouflage): New subroutine. If passed a scalar,
685
camouflages it by XORing it with 19 and reversing the string.
686
If passed a hash reference with keys "user" and "password", it
687
camouflages the values of these keys using the same algorithm.
688
- (uncamouflage): The camouflage algorithm is symmetric, so we
689
just call it from here.
690
- (cmd_login): Use camouflage to hide username and password in
691
login cookies. Will only provide a certain measure of security
692
against the most casual and amateurish of prying eyes.
693
- (set_pref): Use uncamouflage to retrieve username and password.
695
2001-08-18 Yngve Svendsen <yngve.svendsen@clustra.com>
697
* gnatsweb.pl (submitquery): Make issuing of the client command
698
EXPR conditional. Certain slightly unusual queries
699
would result in the client command EXPR being sent with no
700
parameter, generating a gnatsd error.
702
* gnatsweb.pl (query_page): Avoid use strict-related warning if
703
$global_prefs{'columns'} was undefined.
705
* gnatsweb.pl (print_stored_queries): Filter out stored queries
706
for other databases than the current one. Change due to
709
2001-08-17 Yngve Svendsen <yngve.svendsen@clustra.com>
711
* test.pl: Change query commands to work with gnatsd v4 syntax.
712
Testing now runs, but fails on parse/unparse. May need a rewrite.
714
2001-08-16 Yngve Svendsen <yngve.svendsen@clustra.com>
716
* gnatsweb.pl: Make the $suppress_main variable global - it has to
717
be in order to make gnatsweb.pl callable from the test.pl
720
2001-08-12 Yngve Svendsen <yngve.svendsen@clustra.com>
722
* gnatsweb.pl (login_page): Prevent the word "Password" from being
725
2001-08-08 Yngve Svendsen <yngve.svendsen@clustra.com>
727
* gnatsweb.pl: ($VERSION): Change to 3.97 -- we're nearly
728
4.0 feature-complete now.
730
* gnatsweb.pl: Replace the Login Again functionality with a Log
732
- Replace all occurences of "login again" with "logout".
733
- (main_page): Change the "Login Again" label to "Log Out / Change
735
- (cmd_logout): New subroutine. Clears the db_prefs cookie and
736
redirects the user to the login page.
737
- (main): Call cmd_logout instead of going directly to login_page.
739
* gnatsweb.pl: Add a navigation bar just below the page banner:
740
- $site_button_background and $site_button_foreground. New
741
variables initialized to black and white resp.
742
- (page_start_html): Rewrite to display button bar and generally
743
clean up the code, with clearer style declarations.
744
- (login_page): Call page_start_html with an additional parameter
745
set to '1'. Prevents the button bar from being displayed on this
748
2001-08-07 Yngve Svendsen <yngve.svendsen@clustra.com>
750
* gnatsweb.pl (download_attachment): Fix a syntax error which
751
prevented attachment downloading from working properly.
753
* Cleanup to get rid of strict warnings:
754
gnatsweb.pl: Change initial definition of
755
$no_create_without_access from undef to ''.
756
- (submitedit, main, mark_urls, display_query_results, unparsepr):
757
Add some || '' constructs. Fixes a bunch of 'uninitialized
759
- (param2field): Correctly translate 'PR' to 'Number'. Remove
760
warn statement as it makes little sense with GNATS 4
763
2001-07-26 Yngve Svendsen <yngve.svendsen@clustra.com>
765
* gnatsweb.pl (display_query_results): Use cellspacing 0 and
766
cellpadding 1. Makes table a tad more readable.
768
* gnatsweb.pl (page_start_html): Redesign the banner. Different
769
typeface, different size. This is done so that we no longer need
770
to keep separate styles based on browser and platform - things
771
will look fairly similar across the board.
772
- Also, we now print user and access level info in the banner
773
itself, along with the database name.
774
- (page_heading): Stop printing user and access level info in the
775
heading (it now appears in the banner). We now print the page
776
heading inside a simple <H1>, instead of in a table. This makes
777
for cleaner HTML and less space between heading and page content.
778
- Remove the third parameter in calls to page_heading. This used
779
to control whether to print user and access info in the page
782
2001-07-18 Yngve Svendsen <yngve.svendsen@clustra.com>
784
* gnatsweb.pl (view, edit): Removed the check for non-digit
785
characters introduced below. It is no longer needed since we now
786
treat CODE_NO_PRS_MATCHED as an error.
788
* gnatsweb.pl (store_query): Add checking of query name before we
789
attempt to store it. According to
790
http://home.netscape.com/newsref/std/cookie_spec.html, cookie
791
names must not contain commas, semicolons or spaces, and they must
794
* gnatsweb.pl: New variables $print_header_done,
795
$page_start_html_done and $page_heading_done to be used to
796
ensure that we don't print headers, headings and banners twice.
797
(print_header, page_start_html, page_heading): Use these
799
- All direct calls to CGI.pm's header function replaced by calls
801
- (gerror): Rewritten to output headers, heading and banner.
802
- (get_reply): We now treat the return code CODE_NO_PRS_MATCHED as
803
an error. Otherwise, users would be able to edit nonexistent
804
PRs. This has the unfortunate side-effect of outputting an error
805
when there are no matches to a query, but I consider that a
806
small price to pay. Tweaked error code formatting.
807
- (popup_or_scrolling_menu): Inserted missing '!' in if statement.
808
- (edit): Switched order of page_heading and readpr.
810
2001-07-16 Yngve Svendsen <yngve.svendsen@clustra.com>
812
* gnatsweb.pl (page_heading): Use -nowrap=>'1' instead of plain
813
nowrap to avoid silly CGI.pm messages in the error_log.
815
* gnatsweb.pl (error_page): New subroutine which replaces the
816
local err_sub routine used in submitedit. We want all error
817
reporting to be done through this subroutine, since it gives us
820
* gnatsweb.pl (popup_or_scrolling_menu): Check if $string is
821
defined by using 'if defined' instead of a numeric comparison.
823
* gnatsweb.pl (advanced_query_page): Add a line below 'Closed
824
After' and 'Closed Before' reminding users to uncheck 'Ignore
825
Closed'. Added a little bit of vertical space between tables.
826
Ported from 2.x branch.
828
* gnatsweb.pl (view, edit): Add a check for non-digit characters
829
in PR numbers. If such characters are found, an appropriate error
830
message is issued. gnatsd will actually accept PR numbers on the
831
format string/xxxx, where xxxx is a number, and return the
832
appropriate PR. However, when edits are submitted to such a PR, a
833
new PR with the "number" 'string/xxxx' would be created, with the
834
same category as the original PR. This is a workaround for that
835
problem. Ported from 2.x branch.
837
* gnatsweb.pl: (page_heading): Set the width of the table
838
containing the page heading and database, username and access
839
level to 100%. Opera would display a too narrow table when the
840
width wasn't explicitly set.
842
* gnatsweb.pl (main): Add an explicit link to the automatic
843
redirection page. Fix due to Mark Kuchel. Ported from 2.x branch.
845
* gnatsweb.pl (login_page_javascript): Use correct <SCRIPT
848
* gnatsweb.pl (submitquery): If there's a query name, include it
849
in the page heading. Ported from 2.x branch.
851
* gnatsweb.pl (store_query): Gnatsweb will no longer allow you to
852
store a query if this would result in more than 20 cookies.
853
Otherwise random cookies get dropped and things start acting
854
weird. 20 is a magical number as defined in
855
http://home.netscape.com/newsref/std/cookie_spec.html. Ported from
858
* gnatsweb-pl (display_query_results): Added a 'View for
859
bookmarking' link, which reloads the same query so that you can
860
bookmark it in your browser. Ported from 2.x branch.
862
* gnatsweb.pl (submitedit): Modifying the CC list (X-GNATS-Notify
863
header) was not working if X-GNATS-Notify existed but was empty.
864
Problem turned out to be a couple of extraneous spaces in the
865
field substitution regexps.
867
* gnatsweb.pl: Change the example value of $site_mail_domain from
868
@juniper.net to something nonexistent.
870
* Implement redirects after edits (ported from 2.x branch):
872
gnatsweb.pl (get_pr_url): New subroutine. Returns a URL which
873
will take one to the specified $pr and with a specified $cmd.
874
(get_editpr_url, get_viewpr_url): Rewrite to use get_pr_url.
875
(get_script_name): New subroutine. Same as script_name(), but
876
includes 'database=xxx' parameter.
877
(view, edit): Pass hidden variable return_url.
878
(submitedit): New local subroutine err_sub. Makes it easier to
879
postpone calling print_header. Rewrite all error messages in
880
submitedit to use this routine.
881
(submitedit): After submitting edits, users are now redirected
882
back to the page where they were before the edit.
883
(display_query_results): Change to use get_viewpr_url and
884
get_editpr_url so that we get the return_url parameter as part of
886
(print_header): New subroutine. Print HTTP header unless it's been
888
(main): Don't call header() before calling submitedit(). Let
889
submitedit itself take care of printing the headers it needs.
891
2001-07-15 Yngve Svendsen <yngve.svendsen@clustra.com>
893
* test.pl: Don't use 'diff -u' during 'make test'; not everyone
894
has GNU diff. Ported from 2.x branch.
896
* gnatsweb.pl (decode_attachment): Fix a problem where attachments
897
containing a double newline in the body would be truncated
898
during decoding. Fix due to Omar Rashad.
900
* gnatsweb.pl (parsepr): Strip leading space characters from each
901
line of the attachments. Fixes attachment handling, which has
902
been broken almost since GNATS 4.0 development started.
904
* gnatsweb.pl (download_attachment): Insert a conditional to send
905
the header based on HTTP_USER_AGENT. MS Internet Explorer 5.5
906
would attempt to save downloaded attachments under the same name
907
as the Gnatsweb script file, typically gnatsweb.pl. This is
908
because MSIE handles the HTTP header "Content-Disposition:
909
attachment" wrongly. It needs "file" instead of "attachment".
911
* gnatsweb.pl (submitedit): Check whether fields that are
912
specified in dbconfig as requiring a 'Reason Changed' have the
915
2001-07-08 Yngve Svendsen <yngve.svendsen@clustra.com>
917
* $VERSION increased to 3.96.
919
2001-07-08 Dirk Bergstrom <dirk@juniper.net>
921
* gnatsweb.pl: now runs with "use strict;". while combing though
922
the code to properly declare and scope variables, i found several
923
flags and routines that were unused; they were removed. some
924
routines were massaged to accomodate lexical scoping:
925
- the sortby_field(_num) subs were inlined.
926
- can_do_mime is wrapped in a do{} block to capture the cached value.
927
- $default was removed from date_menu.
929
* gnatsweb.pl: configuration switches gathered together at the top
930
of the file, keeping all the hardcoded global values in one place.
932
* gnatsweb.pl (popup_or_scrolling_menu): category
933
dropdown/scrolling list now includes descriptions. the
934
descriptions from the categories file are now displayed, instead
935
of just the (sometimes cryptic) codes.
937
* gnatsweb.pl: uses warn() to write errors to the server logfile
938
whenever an error is generated, a message is emitted to STDERR,
939
containing a diagnostic message, the username, the database, and a
942
* gnatsweb.pl (send_pr, edit): the create and edit PR pages now
943
keep track of field number, so that javascript hooks can be
944
applied. forms are also named. gnats field names customarily
945
include dashes, and javascript names cannot include dashes, so it
946
was impossible to write a javascript routine that could examine or
947
change a field value. to get around this, the code keeps track of
948
the field number (starting at zero), and passes this value to the
949
cb() callback. this way, the callback can generate javascript on
950
the fly, for things like client-side validitity checking.
952
* gnatsweb.pl (send_pr, edit): field descriptions are printed in
953
the create and edit pages (and optionally on the view PR page,
954
though that tends to look overly cluttered), using the field
955
descriptions from the dbconfig file. this necessitated setting
956
the column width of the left column to 20%, so that the
957
descriptions would wrap.
959
* gnatsweb.pl (view): tidied up logic for
960
[edit] or [view audit-trail] or send email to interested parties
961
so that the last 'or' doesn't show up when users w/o edit access
962
are viewing the audit trail.
964
* gnatsweb.pl (page_start_html): database name now displayed in
967
* gnatsweb.pl (mark_urls): replaced with a more rigorous
968
version. now does email addresses, and turns references to PRs
969
into view_pr_urls. this is used on just about every field in
970
the view-pr page, and on many fields in the query-results
973
* gnatsweb.pl (client_exit): improved handling of errors and
974
exceptions from gnatsd. $suppress_client_exit is now actually
975
honored, so that submitedit() and initialize() can recover
976
gracefully from problems. this is particularly important in
977
submitedit() -- if we shut down the connection to gnatsd on an
978
edit error, the lock on the PR will not be properly cleared. this
979
fixes a problem with stale PR lockfiles.
981
* gnatsweb.pl (submitquery): dates are returned from queries as
982
ISO-8601-like dates (yyyy-mm-dd hh:mm:ss tz), using the query
983
format %{%Y-%m-%d %H:%M:%S %Z}D. This makes sorting query results
984
by date actually work.
986
* gnatsweb.pl (submitquery): empty parameters are stripped from
987
the query-string on the query-results page. in a gnats db with
988
many fields, the query-string will become very long, filled up
989
with ...&field_name=&other_field=&third_field=&.... this is a
990
problem, since IE5 truncates query-strings at ~2048 characters.
992
* gnatsweb.pl (advanced_query_page): applied yngve's fix of v2.33
993
to the advanced query page.
995
* gnatsweb.pl: added explicit return statements to several subs
998
* gnatsweb.pl (param2field): now looks thru @fieldnames for a
999
matching field. the old, algorithmic, behavior would fail on
1000
fields with multiple consecutive capitalized letters (ie: ID-Num
1001
would come back as Id-Num) and fields containing underscores
1002
(ie: Project_Number would come back as Project-Number). if there
1003
is no matching gnats fieldname, it falls back to the old behavior.
1005
* gnatsweb.pl ($sn): global variable $sn renamed $script_name for
1008
* gnatsweb.pl: Responsible field always displayed as a mailto:
1011
* gnatsweb.pl (send_html): removed the die() on file open failure.
1012
it seemed better to simply return, and let the caller decide what
1013
to do, especially since help_page already had error handling coded
1016
* gnatsweb.pl (can_edit, can_create): now use the access levels
1019
* gnatsweb.pl: added $no_create_without_access flag. useful
1020
primarily for web-only sites which wish to limit PR creation to
1021
users with a minimum access level. allows for view-without-create
1024
* gnatsweb.pl: gnatsd/gnatsweb can be set up for web-only access.
1025
if you want to set up a more tightly secured installation, you can
1026
allow only localhost connections to gnatsd, restrict logins to the
1027
host, and require all users to go thru gnatsweb. this option
1028
assumes that the web server is doing authentication, and that the
1029
REMOTE_USER environment variable is correctly set. with this
1030
switch set, the "login again" button is replaced by a "change
1033
* gnatsweb.pl (change_database): added to support web-only access
1035
* gnatsweb.pl: gnatsweb can be set up to ignore the gnats
1036
password. the gnats network mode is quite cavalier about
1037
passwords, and some sites may elect not to use gnats passwords.
1038
if so, there's no point in gnatsweb asking for them. if this
1039
switch is set, the "login again" page does not prompt for a
1042
* gnatsweb.pl (parse_config): removed this sub, since it is
1043
unused, and the %config hash is unused. i have no clue why it's
1044
here -- it may be a relic from gnats 3.113, which, iirc, has a
1047
* gnatsweb.pl ($site_mailer): removed, as it was unused
1049
* gnatsweb.pl (submitedit): removed $ok flag, since it was
1050
superfluous. the "last LOCKED;" statements in the error handling
1051
blocks serve the same purpose
1053
* gnatsweb.pl (%db_pref): changed db_pref hash element 'email' to
1054
'email_addr'. otherwise, whatever value user entered into the
1055
"Reporter's Email" field on the "Create PR" page would get stuck
1056
as their email address (because set_pref overrides %cvals{'foo'}
1057
with $q->param('foo')...)
1059
* gnatsweb.pl (initialize): substantially rewritten. the old
1060
version issued a CHDB first, then attempted to set the user name
1061
(and thus get access) with USER. this could lead to a deadlock
1062
situation where the user was "in" a database they didn't have
1063
access to, and thus login_page() couldn't display a list of
1064
databases so the user could change to one they *did* have access
1065
to. access level defaulted to 'edit'. the new version starts off
1066
by caching the results of DBLS, so that any failures down the line
1067
won't leave us in a deadlock. then it does a CHDB, using the
1068
three-argument form (db-name, user-name, password), which will
1069
fail if the user does not have access to the selected database.
1070
from the response to the CHDB command, it extracts the
1071
access-level the user is granted in that database, and sets the
1072
global $access_level variable
1073
(access_level defaults to view, instead of edit). finally, if the
1074
access_level is less than view (ie, submit, none or deny), the
1075
user is given the login page.
1077
* gnatsweb.pl (main, cmd_login): moved login code from command
1078
switch in main() to it's own sub. this makes main() much cleaner.
1079
since i added a bunch of code to the login, it seemed best to move
1080
it to it's own sub. cmd_login() also does some sanity-checking on
1081
the user name -- i discovered that users were entering PR numbers
1082
in the login field, because they were so used to just typing away
1083
in the first field they saw...
1085
* gnatsweb.pl (login_page): now displays an optional message,
1086
given as second parameter, useful for passing authentication
1087
errors to the user. only displays the necessary fields, depending
1088
on $site_gnats_browser_auth and $site_no_gnats_passwords.
1090
* gnatsweb.pl: debug flags allow for browser viewing of
1091
communications with gnatsd. if the $site_allow_remote_debug flag
1092
is set, setting the 'debug' param will allow you to see the
1093
conversation between gnatsweb and gnatsd. setting it to 'cmd'
1094
will show just gnatsweb's commands, 'reply' will show just
1095
gnatsd's replies, and 'all' will show both. this is useful mostly
1096
for developers and gnats admins. unfortunately, there's no good
1097
way to limit use of debug params to users with admin privileges,
1098
since much of what you might want to snoop happens *before* access
1099
level is determined.
1101
* gnatsweb.pl (hidden_debug): added to forms to preserve state of
1102
debug params. this allows debugging during queries and
1103
create/edit submits.
1105
* gnatsweb.pl (main_page): now exit()s when finished. so that we
1106
can call it from the big switch in main() when users try to do
1107
something they aren't allowed to do.
1109
* gnatsweb.pl (main): if access level is less than 'edit', users
1110
cannot submit edits to PRs. previously, users w/o edit privileges
1111
did not see the "edit" button on the main page, but gnatsweb did
1112
not explicitly prevent them from submitting an edit
1113
(ie, with a manually created form). this loophole is now closed.
1115
* gnatsweb.pl (main): $gnatsweb_site_file is read and eval'd,
1116
rather than pulled in using do(), to facilitate using strict
1117
(using do(), the included file is not in the including file's
1118
lexical scope). errors generate a warn()ing to the server log as
1119
well as a die (which will go to the browser, via
1120
CGI::Carp::FatalsToBrowser).
1122
* gnatsweb-site-sente.pl: configuration switches from gnatsweb.pl
1123
duplicated at the top of the file, since this is the recommended
1126
* gnatsweb-site-sente.pl (site_callback): cleaned up the if
1127
blocks, removed unsupported callbacks. added documentation for
1128
the suported callbacks.
1130
2001-06-26 Yngve Svendsen <yngve.svendsen@clustra.com>
1132
* gnatsweb.pl (help_page): Fix a serious security hole where an
1133
attacker would be able to read any file on the system or run any
1134
command to which the web server process user had access to by
1135
submitting a rogue help_file parameter in the URL. help_file is
1136
now hardcoded to 'gnatsweb.html'.
1138
2001-04-05 Yngve Svendsen <yngve.svendsen@clustra.com>
1140
* gnatsweb.pl (query_page): Shift 'number' out of the array of
1141
selectable column names (@fieldnames) to prevent user from
1142
selecting it. That would cause the 'number' column to be
1143
repeated twice, since NUMBER_FIELD is explicitly added to the
1144
search format in submitquery. The best solution would be to
1145
remove the explicit addition, but that messes up column sorting.
1146
However, since the only drawback of the current fix is that we
1147
force the inclusion of PR numbers in the query results listing,
1148
this doesn't seem to matter much.
1150
* gnatsweb.pl (help_page): If present, return the gnatsweb.html
1151
document installed with Gnatsweb, stripped with send_html, as
1152
help text. Ported from Gnatsweb 2.x branch.
1154
* gnatsweb.pl (send_html): New subroutine that strips off
1155
everything outside <BODY> and </BODY> in an HTML document and
1156
returns the contents. Ported from Gnatsweb 2.x branch.
1158
* gnatsweb.html: Clean up HTML, fix spelling, remove some <I>'s
1159
and <B>'s that made the text less readable. Some slight
1160
rephrasing in order to clarify things.
1162
2001-04-04 Yngve Svendsen <yngve.svendsen@clustra.com>
1164
* gnatsweb.pl (display_query_results): Use the provided 'nonempty'
1165
routine to pad empty cells with 's instead of the if used in
1166
the last checkin. This only takes care of the cases where the empty
1167
cells are not at the end of a row.
1169
* gnatsweb.pl (display_query_results): When there are one or more
1170
empty cells at the end of a query result row, the remaining cells
1171
are padded with 's.
1173
2001-03-29 Yngve Svendsen <yngve.svendsen@clustra.com>
1175
* gnatsweb.pl (display_query_results): Add an if clause in order to
1176
print an if a field is empty. This is needed because most
1177
browsers won't render the border of an empty field.
1179
* gnatsweb.pl: Make output more amenable to CSS stylesheet formatting.
1180
Add paragraph tags and enclose stuff that doesn't belong inside
1181
paragraphs in DIV tags. Use heading tags instead of font size tags for
1182
headings. Also correct some rather bad HTML problems with missing
1183
endtags for paragraph and table tags all over the place. These caused
1184
Netscape Navigator to refuse to use stylesheet styling in query results
1185
table cells. This should also improve browser rendering performance.
1186
Improved HTML source code formatting by adding lots of \n's
1188
* gnatsweb.pl (main_page): Remove Matt's and Kenneth's e-mail
1189
addresses. They do not seem to be valid anymore.
1191
* gnatsweb.pl (main_page): Collect the two query buttons on one
1192
line in order to conserve vertical space.
1194
2001-03-24 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
1196
* gnatsweb.pl (login_page_javascript): Use correct <SCRIPT LANGUAGE>.
1197
Fix the Javascript code and improve the warning messages if cookies
1200
2001-03-22 Yngve Svendsen <yngve.svendsen@clustra.com>
1202
* gnatsweb.pl (display_query_results): Apply escapeHTML to
1203
$fieldcontents before printing.
1205
2001-03-21 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
1207
* gnatsweb.pl ($VERSION): Bump to 3.95.
1209
2001-03-21 Yngve Svendsen <yngve.svendsen@clustra.com>
1211
* gnatsweb.pl: New configuration variable $site_stylesheet.
1212
(page_start_html): Use it.
1214
2001-03-11 Tommi Virtanen <tv@debian.org>
1216
* gnatsweb.pl (decode_attachment): Editing bugs with attached files
1217
used to bomb out trying to chomp a constant string.
1219
2000-02-08 Tom Tromey <tromey@cygnus.com>
1221
Turn URLs in PR text into real URLs:
1222
* cgi-bin/gnatsweb.pl (mark_urls): New function.
1226
2001-02-03 Mark Kuchel <mark@kuchel.net>
1227
Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
1229
* gnatsweb.pl (login_page_javascript): Properly warn about cookies
1230
being required, both if Javascript is enabled and if it is disabled.
1232
2001-01-22 Mark Kuchel <mark@kuchel.net>
1234
* gnatsweb.pl (main): Generate proper cookie paths.
1236
2001-01-11 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
1238
* gnatsweb.pl (help_page): Simplify the welcome text and make it
1241
2000-12-29 Mark Kuchel <mark@kuchel.net>
1242
Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
1244
* gnatsweb.pl (main): Add an explicit link to the automatic
1247
========== Starting immediately, we have to use GNU ChangeLogs =====
1249
========== gnatsweb 2.6 released ===================================
1251
1999-11-30 Kenneth H. Cox <kenstir@abraham.senteinc.com>
1253
* Enhancement: If user does not have cookies enabled, they now get
1254
a warning on the Login page. Previously, you would have to submit
1255
the login page before you got the warning, then you would have to
1256
go back and resubmit the page. A little JavaScript goes a long
1259
1999-11-27 Kenneth H. Cox <kenstir@abraham.senteinc.com>
1261
* Enhancement: If DEFAULT_RELEASE is set in the gnats config file,
1262
then it is now used as the default value in new PR's.
1263
Patch by Brian Cameron <Brian.Cameron@Eng.Sun.COM>.
1265
* Bug fix: In "send email" link, include GNATS_ADDR.
1266
Patch by Jason Molenda <jsm@cygnus.com>.
1268
* Enhancement: Reversed the default sort, so that new PR's appear
1269
before older ones. Added some more debug prints.
1270
Patch by Tim Riker <TimR@CalderaSystems.com>.
1272
1999-11-18 Kenneth H. Cox <kenstir@abraham.senteinc.com>
1274
* New features: Now the site_callback can
1275
- supply default values for various things until they are
1276
specified and stored in the user's cookies: Reporter's
1277
email...(more coming?). This facilitates that first PR for new
1279
- print new buttons at top+bottome of main page.
1280
- print stuff at the top of individual fields on the sendpr and
1283
See gnatsweb-site-sente.pl for examples.
1285
* Bug fix: The default list of columns displayed for a query was
1286
empty; now it isn't. You can still get the empty list if you
1287
explicitly turn off all columns.
1289
========== gnatsweb 2.6 beta2 released ===================================
1291
1999-11-17 Kenneth H. Cox <kenstir@abraham.senteinc.com>
1293
* New feature: Now all links and forms contain the database param,
1294
so that you can keep multiple databases open in multiple browser
1297
========== gnatsweb 2.6 beta released ===================================
1299
1999-11-14 Kenneth H. Cox <kenstir@abraham.senteinc.com>
1301
* New feature? Cookies are now stored with path=/. I don't know
1302
if this'll help IE users or not; I actually did it to share
1303
cookies between my test web and my main web. You should still be
1304
able to get to your stored queries, and even delete them.
1306
* New feature: If you follow a URL such as
1307
http://www.x.com/cgi-bin/gnatsweb.pl?cmd=view&database=main&pr=1269
1308
and you are forced to login, then after logging in you will be
1309
redirected to the requested age. I tried doing this with a
1310
redirect but that didn't work; had to use a somewhat ugly
1311
zero-delay refresh. If you can figure that out I'd be grateful.
1313
* New feature: Split cookies into a global cookie (column
1314
preference and email addr) and a db-specific cookie. That way you
1315
don't have to keep typing in different passwords if you change
1318
* Code reorg: Cleaned up the main proc especially w.r.t. the
1319
cookie-setting stuff. Now all of the preference settings happen
1320
at once, and there is only one 'switch' over all of the commands.
1321
However, if you don't have cookies enabled I probably broke the
1322
detection of this error.
1324
1999-11-13 Kenneth H. Cox <kenstir@abraham.senteinc.com>
1326
* New feature: Added a button to delete stored queries.
1327
Patch by Robert Lupton the Good <rhl@astro.princeton.edu>.
1329
* Bug fix (get_mailto_link): MSIE users need special handling in
1331
Patch by <ralph_pursifull@am.exch.hp.com>.
1333
========== gnatsweb 2.5 released ===================================
1335
1999-10-16 Kenneth H. Cox <kenstir@abraham.senteinc.com>
1337
* Bug fix: Attachment file names are now stripped of any path
1338
elements, so that the browser doesn't prompt you to save,
1339
e.g. c:\windows\system.ini
1341
* New feature: In the Query Results page, there is now an edit
1342
link next to the view link, if you have edit priviledges.
1344
1999-10-13 Kenneth H. Cox <kenstir@abraham.senteinc.com>
1346
* New feature: If you have an "unknown" category, then gnatsweb
1347
will use it as the default, and issue an error if somebody tries
1348
to submit a PR with Category=unknown.
1349
Patch by Robert Lupton the Good <rhl@astro.princeton.edu>.
1351
1999-10-01 Kenneth H. Cox <kenstir@abraham.senteinc.com>
1353
* Bug fix: When parsing a PR with a description field containing
1354
From:, gnatsweb would erroneously save that as the originator's
1356
Patch by Elgin Lee <ehl@terisa.com>.
1358
1999-09-28 Kenneth H. Cox <kenstir@abraham.senteinc.com>
1360
* Bug fix: For release-based gnats, "target" should have been
1363
1999-09-24 Ken Cox <kenstir@special-sauce.senteinc.com>
1365
* Bug fix (main): Gnatsweb was not handling failed logins
1366
correctly. Thanks to Robert Abatecola <robert@tsgus.com>
1369
========== gnatsweb 2.5 beta2 ======================================
1371
1999-09-23 Kenneth H. Cox <kenstir@abraham.senteinc.com>
1373
* Bug fix: An extra blank attachment was getting added during
1376
* New feature: Can now delete file attachments.
1378
* Enhancement: gnatsweb-site.pl can now set $site_post_max.
1379
If this is set, and a post exceeds this limit, then gnatsweb will
1380
fail with an error. This prevents somebody from swamping your
1381
server by attaching a huge file.
1383
* Enhancement: Now sets cookie only when the cookie values
1384
change. This makes it much less annoying for people who have
1385
cookie prompting turned on.
1386
Patch by Ronald J. Kimball <rkimball@vgi.com> and
1387
Robert Abatecola <robert@tsgus.com>.
1389
1999-09-20 Kenneth H. Cox <kenstir@abraham.senteinc.com>
1391
* New feature: gnatsweb-site.pl can now override basic color
1392
selections without using the complicated site_callback method. I
1393
do this so that I can tell visually when I'm running a test
1394
version of gnatsweb and when I'm running the production version.
1395
See $site_background, $site_banner_foreground,
1396
$site_banner_background.
1398
========== gnatsweb 2.5 beta ======================================
1402
* New feature: Experimental support for file
1403
attachments in the Unformatted field. Use MIME::Base64 package
1404
because it makes life easy. Looked at but did not use MIME-tools
1405
for creating and parsing the attachments, because it required that
1406
too many packages be installed (it contains 21 packages and it
1407
requires 5 more). For this to work you need CGI.pm-2.56 and
1408
any version of MIME::Base64.
1410
This I consider this support experimental because
1411
- it's tested, but not all that thoroughly
1412
- it requires you to get new perl packages
1415
- there is as yet no way to delete file attachments
1416
- uploading a big file can cause the appearance that gnatsweb
1417
is hung. I think a workaround is to set $CGI::POST_MAX
1418
but I haven't tried it.
1420
* Enhancement: Added 'send email' link to edit page. Used to be
1421
present only on view page.
1423
* Enhancement: Added submit + reset buttons to top of
1426
* Enhancement (test.pl): Die if loading gnatsweb.pl or
1427
gnatsweb-site has errors.
1428
Patch from Ronald J. Kimball <rkimball@vgi.com>
1430
* Enhancement (validate_email_field): Used regexp donated by
1431
rkimball@vgi.com to allow @ in email addresses only if it's
1432
followed by what looks more or less like a domain name.
1434
* Bug fix (submit_stored_query): Must use full (not relative) URL
1435
in redirect, to work around bug interacting with Netscape
1436
Enterprise Server 3.5.1.
1437
Patch from Elgin Lee <ehl@terisa.com>.
1439
* Bug fix (initialize): Keyword query should have been 'kywd' not
1441
Patch from Elgin Lee <ehl@terisa.com>.
1443
* Bug fix (sendpr): Removed "CC" capability, as it was causing too
1444
much confusion. That field would only send a copy of the initial
1445
PR, but wouldn't put you on the X-Gnats-Notify list; everyone here
1446
thought it would. Now there are only "Reporter's email" and "CC
1447
these people on PR status email". Also, the latter list gets a
1448
copy of the initial PR. Hopefully that will clear up the
1451
* Bug fix (sendpr): The X-Gnats-Notify field was not handling
1452
lists of email addresses properly. Now it is.
1453
Patch from James Lin <james@jeditech.com>.
1455
* Bug fix (submitedit): Really fixed the following bug:
1456
When sending mail, use email address in
1457
responsible file as From, if present.
1458
Reported by Jason Molenda <jsm@cygnus.com>.
1459
Thanks, Carl Lindberg for pointing this out.
1461
========== gnatsweb 2.4 released ======================================
1463
1999-07-27 Kenneth H. Cox <kenstir@abraham.senteinc.com>
1465
* Enhancement?: Added HTML help (gnatsweb.html) provided by Matt.
1466
As yet, there is no way to get to this help file from within
1467
gnatsweb. A patch to do this would be appreciated. Note that to
1468
keep installation drop-dead simple, this HTML help should be
1469
served up by gnatsweb itself, not installed in a separate file
1470
(which for an Apache server would need to be installed into a
1471
separate directory).
1473
* Requested enhancement: Use version number (not revision number)
1476
* Bug fix (get_reply): Gnatsweb was mangling some gnatsd error
1477
messages so as to make them ungrammatical.
1478
Reported by Jason Molenda <jsm@cygnus.com>.
1480
* Bug fix (submitedit): When sending mail, use email address in
1481
responsible file as From, if present.
1482
Reported by Jason Molenda <jsm@cygnus.com>.
1484
1999-06-25 Kenneth H. Cox <kenstir@abraham.senteinc.com>
1486
* Requested enhancement:
1487
(sendpr): Description text area is larger (8 lines) Environment is
1491
(display_query_results): Carl Lindberg fixed a bug in the results
1492
display when using apache + mod_perl.
1493
(validate_email_field): Carl Lindberg made a change to allow
1494
non-qualified email addresses.
1496
* Speed enhancement:
1497
Removed 'use POSIX' since it's not needed.
1499
1999-06-13 Kenneth H. Cox <kenstir@abraham.senteinc.com>
1502
The "send email to interested parties" link now includes in the
1503
body of the message the URL which you can use to view the PR in
1507
The "send email to interested parties" link is now properly URL
1510
1999-05-30 Kenneth H. Cox <kenstir@abraham.senteinc.com>
1513
X-gnatsweb-version header was being thrown away by GNATS. Changed
1514
to `X-Send-Pr-Version: gnatsweb-$VERSION' so that it wouldn't be.
1517
1999-05-13 Kenneth H. Cox <kenstir@abraham.senteinc.com>
1520
Replaced font() with $q->font() for old CGI.pm's.
1522
========== gnatsweb 2.3 released ======================================
1524
1999-05-08 Ken Cox <kenstir@special-sauce.senteinc.com>
1526
* Requested enhancement: Reporter's email address is now shown on
1527
the view and edit pages.
1530
(initialize): Fixed bug reported by Thomas A Peterson
1531
<tap@htc.honeywell.com>: If a user has logged in, then somebody
1532
changes their gnatsd password, then gnatsweb got stuck; it would
1533
try the old password without presenting the login screen. Now for
1534
the 'chdb' and 'user' commands, failure takes you to the login
1536
(main): Use 'warn' to report compilation errors in
1537
'gnats-site.pl'. Previously these errors were not being reported
1539
(everywhere): Use '$q->escapeHTML' instead of 'CGI::escapeHTML',
1540
as the latter was not working for folks with old CGI.pm's.
1542
* Audit-Trail feature (submitedit): Since no conclusion was
1543
reached on the gnats mailing list re: the redesigned Audit-Trail
1544
format and how to change all of the programs to support it, I
1545
implemented a gnatsweb-only feature. In the site_callback you can
1546
set a field's AUDITINCLUDE flag; if the flag is set then changes
1547
in that field are recorded in the Audit-Trail. Multitext fields
1548
are indented when their old/new values are printed. By default,
1549
the only fields which have the AUDITINCLUDE flag set are
1550
Responsible and State.
1552
1999-04-25 Ken Cox <kenstir@special-sauce.senteinc.com>
1555
(interested_parties): Fixed notify problems reported by someone.
1556
Since MLPR is not working as expected, do the work in this sub.
1557
(trim_responsible): Fixed bug reported by Matt. Don't lowercase
1558
the Responsible name address, don't confuse Responsible with email
1561
* View PR page: Display a mailto link for sending email to all
1564
1999-04-21 Ken Cox <kenstir@special-sauce.senteinc.com>
1566
* PR Notify lists: Now editors can add themselves to the list of
1567
people who get notified when a PR changes state, by changing
1568
"X-GNATS-Notify". This is also available when creating a new PR.
1570
* New PR validation: submitnewpr() now performs more error
1571
checking on a new PR before mailing it.
1574
test.pl: Fixed tests so that they don't fail for lines beginning
1575
with '.'. RickM #22.
1576
(initialize): Removed 'pending' from category list.
1577
(submitedit): No longer gives an error if it trims old-style
1578
'Responsible: kenstir (Ken Cox)' to 'Responsible: kenstir'.
1579
(praddr): Patch from Carl to support blank responsible field.
1581
1999-04-17 Ken Cox <kenstir@special-sauce.senteinc.com>
1583
* Better test harness: Does query, then uses those PR's for
1584
parsepr/unparsepr test.
1586
* In email notifications, include database name in URL.
1588
========== gnatsweb 2.2 released ======================================
1590
1999-04-17 Kenneth H. Cox <kenstir@abraham.senteinc.com>
1592
* site_callback: New reason 'initialize', lets the site_callback
1593
muck with the global data structures if desired.
1594
Suggested by Carl_Lindberg@BLaCKSMITH.com.
1596
* Advanced Query page:
1597
- Added reset button. RickM #8.
1598
- Sort category, submitter_id, responsible lists. RickM #5.
1599
- Reordered date queries on Advanced Query page, as requested by
1601
- Added GNATS_RELEASE_BASED date queries.
1603
* Create PR page: Submitter-Id and Originator are now visible;
1604
Submitter-Id is treated as an enumerated field. Both are
1605
remembered via the cookie.
1608
- New PR no longer escapes leading '.' characters. RickM #23.
1609
- No more blank cells in query results table.
1610
- Check 2 common places for sendmail, before bombing
1611
out with a helpful message. Fixes reports of gnatsweb install
1613
- Can now display and sort by Confidential, Release, Submitter-Id.
1616
* Use scrolling_list instead of checkbox_group on query page. Was
1617
beginning to have too many unaligned checkboxes.
1619
* New $site_release_based var controls display of fields added by
1620
compiling gnats with -DGNATS_RELEASE_BASED
1621
Incorporates spirit of patches by Paul Traina <pst@juniper.net>.
1623
1999-04-14 Kenneth H. Cox <kenstir@abraham.senteinc.com>
1625
* gnatsweb.pl: Replaced CGI function calls with method
1626
invocations, e.g. Tr() with $q->Tr(). This is more in keeping
1627
with mg's style, and clears up problems which Martin Apel
1628
<apel@tecmath.de> had using perl 5.004_04.
1630
1999-04-13 Kenneth H. Cox <kenstir@abraham.senteinc.com>
1632
* gnatsweb.pl (view): Only print 'edit' button on View page if
1633
user can edit. RickM bug #1.
1635
1999-04-12 Kenneth H. Cox <kenstir@abraham.senteinc.com>
1637
* gnatsweb.pl (submitedit): Don't complain if you can't get the
1638
email address of the old Responsible; it may have been invalid, or
1639
they may have left the company.
1640
Reported by Carl_Lindberg@BLaCKSMITH.com.
1641
(edit): When editing a PR, trim Responsible field as if it were an
1642
email address Carl reports that his PR's from gnats 3.2 look this
1644
(sendpr, edit): Shift 'all' off of @responsible and @state.
1647
========== gnatsweb 2.1 released ======================================
1649
* Fixed Advanced Query page: multi-selection listboxes weren't working;
1650
was querying for "|kenstir". Patch suggested by
1651
Carl_Lindberg@BLaCKSMITH.com.
1653
* site_callback() extended. Now called for additional reasons:
1654
page_footer -- can print extra stuff near the bottom of the
1655
page, e.g. to add buttons on the view page
1656
page_end_html -- can extend the absolute end of the page
1657
Requested by Carl_Lindberg@BLaCKSMITH.com.
1659
* --- INCOMPATIBILE CHANGES to site_callback() ---
1660
- When the $reason is 'page_heading', the argument list is different.
1661
See gnatsweb-site-sente.pl for example. Changed for consistency.
1662
- No need for reason 'view_postlude'; can be done with 'page_footer'.
1668
* Query results can be sorted by clicking on a column heading.
1670
* Advanced query page for access to full power of gnats.
1672
* Integrated with Matt Gerassimoff's "gnats.pl" for gnatsd hipness.