* CSS patch for gnatsweb
@ 2003-04-13 19:46 Mike Hoolehan
2003-04-15 13:16 ` Yngve Svendsen
0 siblings, 1 reply; 2+ messages in thread
From: Mike Hoolehan @ 2003-04-13 19:46 UTC (permalink / raw)
To: help-gnats
[-- Attachment #1: Type: text/plain, Size: 690 bytes --]
Hello,
please review the following patchfiles to gnatsweb.pl, CUSTOMIZE.vars, and
gnatsweb-site.pl, which together provide for CSS formatting of most gnatsweb
elements from a single CSS stylesheet.
I have modified gnatsweb.pl to place 'class' tags on most elements and text,
modified gnats-site.pl to link to a css page by default, and modified
CUSTOMIZE.vars to eliminate mention of the various colors and style
formatting which have been superseded by CSS formatting. Finally, I
included a new css sheet that contains all the new styles, which the user
may modify to make his or her own look (though the default look I provided
looks pretty good, I think).
Thanks,
Mike Hoolehan
[-- Attachment #2: gnatsweb.pl.patch --]
[-- Type: text/plain, Size: 32962 bytes --]
--- gnatsweb.pl.orig Fri Apr 11 13:59:07 2003
+++ gnatswebcss.pl Sun Apr 13 15:21:19 2003
@@ -31,11 +31,9 @@ use vars qw($site_gnats_host $site_gnats
$site_gnatsweb_server_auth $site_no_gnats_passwords
$no_create_without_access $site_mail_domain $site_post_max
$description_in_view $help_page_path $site_banner_text
-$site_banner_background $site_banner_foreground
-$site_button_foreground $site_button_background $site_stylesheet
+$site_stylesheet
$include_audit_trail $popup_menu_becomes_obnoxious
-$scrolling_menu_default_size $site_background
-$site_required_field_color $use_temp_db_prefs_cookie
+$scrolling_menu_default_size $use_temp_db_prefs_cookie
$global_cookie_expires $global_cookie_path $textwidth
$site_allow_remote_debug $attachment_delimiter %mark_urls
$gnats_info_top %site_pr_submission_address $VERSION);
@@ -149,10 +147,6 @@ $help_page_path = './gnatsweb.html';
# Name you want in the page banner and banner colors.
$site_banner_text = 'GNU Gnatsweb';
-$site_banner_background = '#000000';
-$site_banner_foreground = '#ffffff';
-$site_button_background = '#000000';
-$site_button_foreground = '#ffffff';
# Uncomment the following line and insert stylesheet URL in order to
# link all generated pages to an external stylesheet. Both absolute
@@ -173,14 +167,6 @@ $popup_menu_becomes_obnoxious = 20;
# default size for scrolling lists. overridden for some fields
$scrolling_menu_default_size = 3;
-# Page background color -- not used unless defined.
-#$site_background = '#c0c0c0';
-$site_background = undef;
-
-# Color to use for marking the names of required fields on the Create
-# PR page.
-$site_required_field_color = '#ff0000';
-
# control the mark_urls routine, which "htmlifies" PRs for view_pr.
# it adds a lot of usability, but can be slow for huge (100K+) fields.
# urls = make links clickable
@@ -522,17 +508,29 @@ sub print_stacktrace {
sub multiselect_menu
{
my $size = @{$_[1]} < 4 ? @{$_[1]} : 4;
+ my $style = $_[3];
+ $style = '' if not defined $style;
+
return $q->scrolling_list(-name=>$_[0], -values=>$_[1], -size=>$size,
- -multiple=>'true', -default=>$_[2]);
+ -multiple=>'true', -default=>$_[2],
+ -class=>$style);
}
sub popup_or_scrolling_menu
{
my $size=$_[3];
+ my $style=$_[4];
+
if (!(defined $size))
{
$size = $scrolling_menu_default_size;
- }
+ }
+
+ if (!(defined $style))
+ {
+ $style = '';
+ }
+
# a hack to make responsible field easier to deal with when
# there are many names in the responsible file
@@ -559,14 +557,16 @@ sub popup_or_scrolling_menu
-size=>$size,
-values=>$_[1],
-labels=>$labels,
- -default=>$_[2]);
+ -default=>$_[2],
+ -class=>$style);
}
else
{
return $q->popup_menu (-name=>$_[0],
-values=>$_[1],
-labels=>$labels,
- -default=>$_[2]);
+ -default=>$_[2],
+ -class=>$style);
}
}
@@ -919,13 +919,14 @@ sub print_attachments
return unless can_do_mime();
- print "<tr><td valign=top><b>File Attachments:</b></td>\n<td>";
+ print "<tr><td class=\"attachments_fieldname\"><span class=\"attachments_fieldname\">File Attachments:</span></td>\n<td class=\"attachments_fieldvalue\">";
# Add file upload button for adding new attachment.
if ($mode eq 'sendpr' || $mode eq 'edit') {
print "Add a file attachment:<br />",
$q->filefield(-name=>'attached_file',
- -size=>50);
+ -size=>50,
+ -class=>'attachments_add');
# that's all we need to do if this is the sendpr page
return if $mode eq 'sendpr';
}
@@ -1041,12 +1042,13 @@ sub sendpr
$q->reset(-name=>'reset')),
$q->hidden(-name=>'return_url'),
"<hr />\n",
- "<table>";
+ "<table class=\"createpr\">";
my $def_email = $global_prefs{'email'} || '';
- print "<tr>\n<td width=\"20%\"><b>Reporter's email:</b></td>\n<td>",
+ print "<tr>\n<td width=\"20%\" class=\"createpr_field\"><span class=\"createpr_fieldname\">Reporter's email:</span></td>\n<td class=\"createpr_input\">",
$q->textfield(-name=>'email',
-default=>$def_email,
- -size=>$textwidth), "</td>\n</tr>\n";
+ -size=>$textwidth,
+ -class=>'createpr_input'), "</td>\n</tr>\n";
# keep count of field number, so that javascript hooks can
# have a way to access fields with dashes in their names
# they'll need to use PrForm.elements[fieldNumber].value
@@ -1073,12 +1075,12 @@ sub sendpr
# at the top of a given field.
my $intro = cb("sendpr_intro_$_", $field_number) || '';
- print "<tr><td valign=\"top\" width=\"20%\">";
+ print "<tr><td class=\"createpr_field\" width=\"20%\">";
fieldinfo ($_, 'flags') & $SENDREQUIRED ?
- print "<font color=\"$site_required_field_color\"><b>$_</b></font>" : print "<b>$_</b>";
- print "<br /><small>\n",
+ print "<span class=\"createpr_fieldrequired\">$_</span>" : print "<span class=\"createpr_fieldname\">$_</span>";
+ print "<br /><span class=\"createpr_fielddesc\">\n",
fieldinfo($_, 'desc'),
- "</small></td><td>\n", $intro, "\n";
+ "</span></td><td class=\"createpr_input\">\n", $intro, "\n";
if (fieldinfo($_, 'fieldtype') eq "enum")
{
@@ -1088,13 +1090,13 @@ sub sendpr
push(@$values, "unknown") if (!grep /^unknown$/, @$values);
$default = "unknown";
}
- print popup_or_scrolling_menu($_, $values, $default),
+ print popup_or_scrolling_menu($_, $values, $default, undef, 'createpr_input'),
"</td>\n</tr>\n";
}
elsif (fieldinfo ($_, 'fieldtype') eq 'multienum')
{
my $defaultsref = parse_multienum($default, $_);
- print multiselect_menu($_, $values, $defaultsref),
+ print multiselect_menu($_, $values, $defaultsref, 'createpr_input'),
"</td>\n</tr>\n";
}
elsif (fieldinfo($_, 'fieldtype') eq "multitext")
@@ -1103,7 +1105,8 @@ sub sendpr
print $q->textarea(-name=>$_,
-cols=>$textwidth,
-rows=>$rows,
- -default=>$default),
+ -default=>$default,
+ -class=>'createpr_input'),
"</td>\n</tr>\n";
# Create file upload button after Description.
if (/Description/)
@@ -1115,7 +1118,8 @@ sub sendpr
{
print $q->textfield(-name=>$_,
-size=>$textwidth,
- -default=>$default),
+ -default=>$default,
+ -class=>'createpr_input'),
"</td>\n</tr>\n";
}
print "\n";
@@ -1541,11 +1545,12 @@ sub edit
$q->hidden(-name=>'return_url'),
"<hr>\n";
- print "<table>\n";
- print "<tr>\n<td><b>Reporter's email:</b></td>\n<td>",
+ print "<table class=\"editpr\">\n";
+ print "<tr>\n<td class=\"editpr_field\"><span class=\"editpr_fieldname\">Reporter's email:</span></td>\n<td class=\"editpr_input\">",
$q->textfield(-name=>'Reply-To',
-default=>$fields{'Reply-To'},
- -size=>$textwidth),
+ -size=>$textwidth,
+ -class=>'editpr_input'),
"</td>\n</tr>\n";
# keep count of field number, so that javascript hooks can
@@ -1570,9 +1575,9 @@ sub edit
# The "intro" provides a way for the site callback to print something
# at the top of a given field.
my $intro = cb("edit_intro_$_", $field_number) || '';
- print "<tr><td valign=\"top\" width=\"20%\"><b>$_:</b><br /><small>\n",
+ print "<tr><td class=\"editpr_field\" width=\"20%\"><span class=\"editpr_fieldname\">$_:<br /><span class=\"editpr_fielddesc\">\n",
fieldinfo($_, 'desc'),
- "</small><td>\n", $intro, "\n";
+ "</span><td class=\"editpr_input\">\n", $intro, "\n";
if (fieldinfo ($_, 'fieldtype') eq 'enum')
{
@@ -1583,13 +1588,13 @@ sub edit
push(@$values, 'unknown') if (!grep /^unknown$/, @$values);
$default = 'unknown';
}
- print popup_or_scrolling_menu($_, $values, $default),
+ print popup_or_scrolling_menu($_, $values, $default, undef, 'editpr_input'),
"</td>\n</tr>\n";
}
elsif (fieldinfo ($_, 'fieldtype') eq 'multienum')
{
my $defaultsref = parse_multienum($fields{$_}, $_);
- print multiselect_menu($_, $values, $defaultsref),
+ print multiselect_menu($_, $values, $defaultsref, 'editpr_input'),
"</td>\n</tr>\n";
}
elsif (fieldinfo ($_, 'fieldtype') eq 'multitext')
@@ -1600,7 +1605,8 @@ sub edit
print $q->textarea(-name=>$_,
-cols=>$textwidth,
-rows=>$rows,
- -default=>$fields{$_}),
+ -default=>$fields{$_},
+ -class=>'editpr_input'),
"</td>\n</tr>\n";
# Print attachments after Description.
print_attachments(\%fields, 'edit') if /Description/;
@@ -1609,18 +1615,20 @@ sub edit
{
print $q->textfield(-name=>$_,
-size=>$textwidth,
- -default=>$fields{$_}),
+ -default=>$fields{$_},
+ -class=>'editpr_input'),
"</td>\n</tr>\n";
}
if (fieldinfo ($_, 'flags') & $REASONCHANGE)
{
- print "<tr><td valign=\"top\"><b>Reason Changed:</b></td>\n<td>",
+ print "<tr><td class=\"editpr_field\"><span class=\"editpr_fieldname\">Reason Changed:</span></td>\n<td>",
$q->textarea(-name=>"$_-Changed-Why",
-default=>'',
-override=>1,
-cols=>$textwidth,
-rows=>2,
- -wrap=>'hard'),
+ -wrap=>'hard',
+ -class=>'editpr_input'),
"</td>\n</tr>\n";
}
print "\n";
@@ -1868,45 +1876,49 @@ sub query_page
{
if (fieldinfo($_, 'fieldtype') =~ /enum/)
{
- print "<tr><td valign=top>$_:</td>\n<td>";
+ print "<tr><td class=\"query_field\"><span class=\"query_field\">$_:</p></td>\n<td class=\"query_input\">";
my $value_list=fieldinfo($_, 'values');
my @values=('any', @$value_list);
if (fieldinfo($_, 'fieldtype') eq 'enum')
{
- print popup_or_scrolling_menu ($_, \@values, $values[0]);
+ print popup_or_scrolling_menu ($_, \@values, $values[0],
+ undef, 'query_input');
}
elsif (fieldinfo($_, 'fieldtype') eq 'multienum')
{
my $size = @values < 4 ? @values : 4;
print $q->scrolling_list(-name=>$_, -values=>\@values, -size=>$size,
- -multiple=>'true', -defaults=>$values[0]);
+ -multiple=>'true', -defaults=>$values[0],
+ -class=>'query_input');
}
if ($_ eq $STATE_FIELD)
{
print "<br />",
$q->checkbox_group(-name=>'ignoreclosed',
-values=>['Ignore Closed'],
- -defaults=>['Ignore Closed']);
+ -defaults=>['Ignore Closed'],
+ -class=>'query_input');
}
elsif ($_ eq $SUBMITTER_ID_FIELD)
{
print "<br />",
$q->checkbox_group(-name=>'originatedbyme',
-values=>['Originated by You'],
- -defaults=>[]);
+ -defaults=>[],
+ -class=>'query_input');
}
print "</td>\n</tr>\n";
}
}
print
- "<tr>\n<td>$SYNOPSIS_FIELD Search:</td>\n<td>",
- $q->textfield(-name=>$SYNOPSIS_FIELD,-size=>25),
+ "<tr>\n<td class=\"query_field\"><span class=\"query_field\">$SYNOPSIS_FIELD Search:</span></td>\n<td class=\"query_input\">",
+ $q->textfield(-name=>$SYNOPSIS_FIELD,-size=>25,-class=>"query_input"),
"</td>\n</tr>\n",
- "<tr>\n<td>Multi-line Text Search:</td>\n<td>",
- $q->textfield(-name=>'multitext',-size=>25),
+ "<tr>\n<td class=\"query_field\"><span class=\"query_field\">Multi-line Text Search:</span></td>\n<td class=\"query_input\">",
+ $q->textfield(-name=>'multitext',-size=>25,-class=>'query_input'),
"</td>\n</tr>\n",
- "<tr valign=top>\n<td>Column Display:</td>\n<td>";
+ "<tr valign=top>\n<td class=\"query_field\"><span class=\"query_field\">Column Display:</span></td>\n<td class=\"query_input\">";
my @allcolumns;
foreach (@fieldnames) {
@@ -1927,24 +1939,28 @@ sub query_page
-values=>\@allcolumns,
-defaults=>\@columns,
-multiple=>1,
- -size=>5),
+ -size=>5,
+ -class=>'query_input'),
"</td>\n</tr>\n";
- print "<tr valign=top>\n<td>Sort By:</td>\n<td>",
+ print "<tr valign=top>\n<td class=\"query_field\"><span class=\"query_field\">Sort By:</span></td>\n<td class=\"query_input\">",
$q->scrolling_list(-name=>'sortby',
-values=>\@fieldnames,
-multiple=>0,
- -size=>1),
+ -size=>1,
+ -class=>'query_input'),
"<br />",
$q->checkbox_group(-name=>'reversesort',
-values=>['Reverse Order'],
- -defaults=>[]),
+ -defaults=>[],
+ -class=>'query_input'),
"</td>\n</tr>\n";
- print "<tr valign=top>\n<td>Display:</td>\n<td>",
+ print "<tr valign=top>\n<td class=\"query_field\"><span class=\"query_field\">Display:</span></td>\n<td>",
$q->checkbox_group(-name=>'displaydate',
-values=>['Current Date'],
- -defaults=>['Current Date']),
+ -defaults=>['Current Date'],
+ -class=>'query_input'),
"</td>\n</tr>\n",
"</table>\n",
"<hr>\n",
@@ -1966,8 +1982,6 @@ sub advanced_query_page
hidden_db();
my $width = 30;
- my $heading_bg = '#9fbdf9';
- my $cell_bg = '#d0d0d0';
print $q->span($q->submit('cmd', 'submit query'),
" or ",
@@ -1977,26 +1991,26 @@ sub advanced_query_page
### Text and multitext queries
- print "<table border=1 cellspacing=0 bgcolor=$cell_bg>\n",
+ print "<table class=\"query\">\n",
"<caption>Search All Text</caption>\n",
- "<tr bgcolor=$heading_bg>\n",
+ "<tr>\n",
"<th nowrap>Search these text fields</th>\n",
"<th nowrap>using regular expression</th>\n",
"</tr>\n";
- print "<tr>\n<td>Single-line text fields:</td>\n<td>",
- $q->textfield(-name=>'text', -size=>$width),
+ print "<tr>\n<td class=\"query_field\"><span class=\"query_field\">Single-line text fields:</span></td>\n<td class=\"query_input\">",
+ $q->textfield(-name=>'text', -size=>$width, -class=>'query_input'),
"</td>\n</tr>\n",
- "<tr>\n<td>Multi-line text fields:</td>\n<td>",
- $q->textfield(-name=>'multitext', -size=>$width),
+ "<tr>\n<td class=\"query_field\"><span class=\"query_field\">Multi-line text fields:</span></td>\n<td class=\"query_input\">",
+ $q->textfield(-name=>'multitext', -size=>$width, -class=>'query_input'),
"</td>\n</tr>\n",
"</table>\n";
print "<div> </div>\n";
### Date queries
- print "<table border=1 cellspacing=0 bgcolor=$cell_bg>\n",
+ print "<table class=\"query\">\n",
"<caption>Search By Date</caption>\n",
- "<tr bgcolor=$heading_bg>\n",
+ "<tr>\n",
"<th nowrap>Date Search</th>\n",
"<th nowrap>Example: <tt>1999-04-01 05:00 GMT</tt></th>\n",
"</tr>\n";
@@ -2005,11 +2019,11 @@ sub advanced_query_page
{
if (fieldinfo ($_, 'fieldtype') eq 'date')
{
- print "<tr>\n<td>$_ after:</td>\n<td>",
- $q->textfield(-name=>$_."_after", -size=>$width),
+ print "<tr>\n<td class=\"query_field\"><span class=\"query_field\">$_ after:</span></td>\n<td class=\"query_input\">",
+ $q->textfield(-name=>$_."_after", -size=>$width, -class=>'query_input'),
"</td>\n</tr>\n";
- print "<tr>\n<td>$_ before:</td>\n<td>",
- $q->textfield(-name=>$_."_before", -size=>$width),
+ print "<tr>\n<td class=\"query_field\"><span class=\"query_field\">$_ before:</span></td>\n<td class=\"query_input\">",
+ $q->textfield(-name=>$_."_before", -size=>$width, -class=>'query_input'),
"</td>\n</tr>\n";
}
}
@@ -2021,9 +2035,9 @@ sub advanced_query_page
### Field queries
- print "<table border=1 cellspacing=0 bgcolor=$cell_bg>\n",
+ print "<table class=\"query\">\n",
"<caption>Search Individual Fields</caption>\n",
- "<tr bgcolor=$heading_bg>\n",
+ "<tr>\n",
"<th nowrap>Search this field</th>\n",
"<th nowrap>using regular expression, or</th>\n",
"<th nowrap>using multi-selection</th>\n",
@@ -2033,12 +2047,13 @@ sub advanced_query_page
print "<tr valign=top>\n";
# 1st column is field name
- print "<td>$_:</td>\n";
+ print "<td class=\"query_field\"><span class=\"query_field\">$_:</span></td>\n";
# 2nd column is regexp search field
- print "<td>",
+ print "<td class=\"query_input\">",
$q->textfield(-name=>$_,
- -size=>$width);
+ -size=>$width,
+ -class=>'query_input');
print "\n";
# XXX ??? !!! FIXME
# This should be fixed by allowing a 'not' in front of the fields, so
@@ -2048,12 +2063,13 @@ sub advanced_query_page
print "<br />",
$q->checkbox_group(-name=>'ignoreclosed',
-values=>['Ignore Closed'],
- -defaults=>['Ignore Closed']),
+ -defaults=>['Ignore Closed'],
+ -class=>'query_input'),
}
print "</td>\n";
# 3rd column is blank or scrolling multi-select list
- print "<td>";
+ print "<td class=\"query_input\">";
if (fieldinfo($_, 'fieldtype') =~ 'enum')
{
my $ary_ref = fieldinfo($_, 'values');
@@ -2062,7 +2078,8 @@ sub advanced_query_page
print $q->scrolling_list(-name=>$_,
-values=>$ary_ref,
-multiple=>1,
- -size=>$size);
+ -size=>$size,
+ -class=>'query_input');
}
else
{
@@ -2073,9 +2090,9 @@ sub advanced_query_page
print "</table>\n";
print "<div> </div>\n";
- print "<table border=1 cellspacing=0 bgcolor=$cell_bg>\n",
+ print "<table class=\"query\">\n",
"<caption>Display</caption>\n",
- "<tr valign=top>\n<td>Display these columns:</td>\n<td>";
+ "<tr valign=top>\n<td class=\"query_field\"><span class=\"query_field\">Display these columns:</span></td>\n<td class=\"query_input\">";
my @allcolumns;
foreach (@fieldnames) {
@@ -2096,23 +2113,27 @@ sub advanced_query_page
-values=>\@allcolumns,
-defaults=>\@columns,
-multiple=>1,
- -size=>5),
+ -size=>5,
+ -class=>'query_input'),
"</td>\n</tr>\n";
- print "<tr valign=top>\n<td>Sort By:</td>\n<td>",
+ print "<tr valign=top>\n<td class=\"query_field\"><span class=\"query_field\">Sort By:</span></td>\n<td class=\"query_input\">",
$q->scrolling_list(-name=>'sortby',
-values=>\@fieldnames,
-multiple=>0,
- -size=>1),
+ -size=>1,
+ -class=>'query_input'),
"<br />",
$q->checkbox_group(-name=>'reversesort',
-values=>['Reverse Order'],
- -defaults=>[]),
+ -defaults=>[],
+ -class=>'query_input'),
"</td>\n</tr>\n";
- print "<tr valign=top>\n<td>Display:</td>\n<td>",
+ print "<tr valign=top>\n<td class=\"query_field\"><span class=\"query_field\">Display:</span></td>\n<td class=\"query_input\">",
$q->checkbox_group(-name=>'displaydate',
-values=>['Current Date'],
- -defaults=>['Current Date']),
+ -defaults=>['Current Date'],
+ -class=>'query_input'),
"</td>\n</tr>\n",
"</td>\n</tr>\n</table>\n";
print "<div> </div>\n";
@@ -2390,7 +2411,7 @@ sub display_query_results
print $q->start_form(),
hidden_debug(),
$q->hidden(name=>'cmd', -value=>'view', -override=>1),
- "<table border=1 cellspacing=0 cellpadding=1><tr>\n";
+ "<table class=\"queryresults\"><tr>\n";
# By default sort by PR number.
my($sortby) = $q->param('sortby') || $fieldnames[0];
@@ -2417,7 +2438,7 @@ sub display_query_results
$query_string =~ s/(\w|-)+=;//g;
my $href = $script_name . '?' . $query_string;
- print "\n<th><a href=\"$href\">$_</a></th>\n";
+ print "\n<th class=\"queryresults\"><a class=\"queryresults\" href=\"$href\">$_</a></th>\n";
}
# finished the header row
print "</tr>\n";
@@ -2450,7 +2471,7 @@ sub display_query_results
print "<tr valign=top>\n";
my $id = shift @{$_};
- print "<td nowrap><a href=\"" . get_viewpr_url($id, 1) . "\">$id</a>";
+ print "<td class=\"queryresults\" nowrap><a href=\"" . get_viewpr_url($id, 1) . "\">$id</a>";
if (can_edit())
{
print " <a href=\"" . get_editpr_url($id, 1) . "\"><font size=-1>edit</font></a>";
@@ -2479,7 +2500,7 @@ sub display_query_results
$fieldcontents = mark_urls($fieldcontents);
}
- print "<td nowrap>$fieldcontents</td>";
+ print "<td class=\"queryresults\" nowrap>$fieldcontents</td>";
$whichfield++;
}
# Pad the remaining, empty columns with 's
@@ -2649,28 +2670,30 @@ sub print_stored_queries
}
if (%stored_queries)
{
- print "<table cellspacing=0 cellpadding=0 border=0>",
- "<tr valign=top>",
+ print "\n<table class=\"storedqueries\">",
+ "<tr>",
+ "<td class=\"storedqueries_submit\">",
$q->start_form(),
- hidden_debug(),
- "<td>",
+ hidden_debug(),
hidden_db(),
$q->submit('cmd', 'submit stored query'),
- "<td> <td>",
+ " ",
$q->popup_menu(-name=>'queryname',
- -values=>[ sort(keys %stored_queries) ]),
+ -values=>[ sort(keys %stored_queries) ],
+ -class=>'storedqueries_submit'),
$q->end_form(),
+ "</td><td class=\"storedqueries_delete\">",
$q->start_form(),
- hidden_debug(),
- "<td>",
+ hidden_debug(),
$q->hidden('return_url', $q->self_url()),
hidden_db(),
$q->submit('cmd', 'delete stored query'),
- "<td> <td>",
+ " ",
$q->popup_menu(-name=>'queryname',
- -values=>[ sort(keys %stored_queries) ]),
+ -values=>[ sort(keys %stored_queries) ],
+ -class=>'storedqueries_delete'),
$q->end_form(),
- "</tr></table>";
+ "</td></tr></table>";
}
}
@@ -2871,8 +2894,10 @@ sub one_line_form
my($label, @form_body) = @_;
my $valign = 'baseline';
return $q->Tr({-valign=>$valign},
- $q->td($q->b($label)),
- $q->td($q->start_form(-method=>'get'), hidden_debug(),
+ $q->td({-class=>'mainpage_field'},
+ "<span class=\"mainpage_field\">$label</span>"),
+ $q->td({-class=>'mainpage_input'},
+ $q->start_form(-method=>'get'), hidden_debug(),
hidden_db(), @form_body, $q->end_form()));
}
@@ -2905,7 +2930,7 @@ sub main_page
page_start_html($page);
page_heading($page, 'Main Page');
- print '<table>';
+ print '<table class="mainpage">';
my $top_buttons_html = cb('main_page_top_buttons') || '';
print $top_buttons_html;
@@ -2922,13 +2947,15 @@ sub main_page
$q->hidden(-name=>'cmd', -value=>'edit', -override=>1),
$q->submit('cmd', 'edit'),
'#',
- $q->textfield(-size=>6, -name=>'pr'))
+ $q->textfield(-size=>6, -name=>'pr',
+ -class=>'mainpage_input'))
if can_edit();
print one_line_form('View Problem Report:',
$q->hidden(-name=>'cmd', -value=>$viewcmd, -override=>1),
$q->submit('cmd', 'view'),
'#',
- $q->textfield(-size=>6, -name=>'pr'));
+ $q->textfield(-size=>6, -name=>'pr',
+ -class=>'mainpage_input'));
print one_line_form('Query Problem Reports:',
$q->submit('cmd', 'query'),
' ', $q->submit('cmd', 'advanced query'));
@@ -2936,10 +2963,11 @@ sub main_page
{
print one_line_form('Change Database:',
$q->scrolling_list(-name=>'new_db',
- -values=>$global_list_of_dbs,
- -default=>$global_prefs{'database'},
- -multiple=>0,
- -size=>1),
+ -values=>$global_list_of_dbs,
+ -default=>$global_prefs{'database'},
+ -multiple=>0,
+ -size=>1,
+ -class=>'mainpage_input'),
$q->submit('cmd', 'change database') );
}
else
@@ -3036,10 +3064,8 @@ sub page_start_html
return;
}
- # Call start_html, with -bgcolor if we need to override that.
+ # Call start_html
my @args = (-title=>"$title - $site_banner_text");
- push(@args, -bgcolor=>$site_background)
- if defined($site_background);
push(@args, -style=>{-src=>$site_stylesheet})
if defined($site_stylesheet);
push(@args, @extra_head_args);
@@ -3047,29 +3073,6 @@ sub page_start_html
# Add the page banner. The $site_banner_text is linked back to the
# main page.
- #
- # Note that the banner uses inline style, rather than a GIF; this
- # makes installation easier by eliminating the need to install GIFs
- # into a separate directory. At least for Apache, you can't serve
- # GIFs out of your CGI directory.
- #
- my $bannerstyle = <<EOF;
- color: $site_banner_foreground;
- font-family: 'Verdana', 'Arial', 'Helvetica', 'sans';
- font-weight: light;
- text-decoration: none;
-EOF
-
- my $buttonstyle = <<EOF;
- color: $site_button_foreground;
- font-family: 'Verdana', 'Arial', 'Helvetica', 'sans';
- font-size: 8pt;
- font-weight: normal;
- text-decoration: none;
-EOF
-
- my $banner_fontsize1 = "font-size: 14pt; ";
- my $banner_fontsize2 = "font-size: 8pt; ";
my($row, $row2, $banner);
my $url = "$script_name";
@@ -3078,29 +3081,29 @@ EOF
my $createurl = get_pr_url('create', 0, 1);
- $row = qq(<tr>\n<td><table border="0" cellspacing="0" cellpadding="3" width="100%">);
- $row .= qq(<tr style="background-color: $site_banner_background">\n<td align="left">);
- $row .= qq(<span style="$bannerstyle $banner_fontsize1">$global_prefs{'database'} </span>)
+ $row = qq(<tr>\n<td><table class="header" width="100%">);
+ $row .= qq(<tr>\n<td class=\"header_leftbox\">);
+ $row .= qq(<span class=\"header_lefttitle\">$global_prefs{'database'} </span>)
if $global_prefs{'database'};
- $row .= qq(<span style="$bannerstyle $banner_fontsize2">User: $db_prefs{'user'} </span>)
+ $row .= qq(<span class="header_userinfo">User: $db_prefs{'user'} </span>)
if $db_prefs{'user'};
- $row .= qq(<span style="$bannerstyle $banner_fontsize2">Access: $access_level</span>)
+ $row .= qq(<span class="header_userinfo">Access: $access_level</span>)
if $access_level;
- $row .= qq(\n</td>\n<td align="right">
- <a href="$url" style="$bannerstyle $banner_fontsize1">$site_banner_text</a>
+ $row .= qq(\n</td>\n<td class=\"header_rightbox\">
+ <a href="$url" class=\"header_righttitle\">$site_banner_text</a>
</td>\n</tr>\n</table></td></tr>\n);
$row2 = qq(<tr>\n<td colspan="2">);
- $row2 .= qq(<table border="1" cellspacing="0" bgcolor="$site_button_background" cellpadding="3">);
+ $row2 .= qq(<table class="navbutton">);
$row2 .= qq(<tr>\n);
- $row2 .= qq(<td><a href="$url" style="$buttonstyle">MAIN PAGE</A></TD>);
- $row2 .= qq(<td><a href="$createurl" style="$buttonstyle">CREATE</a></td>)
+ $row2 .= qq(<td class="navbutton"><a href="$url" class="navbutton">Main Page</A></TD>);
+ $row2 .= qq(<td class="navbutton"><a href="$createurl" class="navbutton">Create</a></td>)
if can_create();
- $row2 .= qq(<td><a href="$url&cmd=query" style="$buttonstyle">QUERY</a></td>);
- $row2 .= qq(<td><a href="$url&cmd=advanced%20query" style="$buttonstyle">ADV. QUERY</a></td>);
- $row2 .= qq(<td><a href="$url&cmd=logout" style="$buttonstyle">LOG OUT</a></td>)
+ $row2 .= qq(<td class="navbutton"><a href="$url&cmd=query" class="navbutton">Query</a></td>);
+ $row2 .= qq(<td class="navbutton"><a href="$url&cmd=advanced%20query" class="navbutton">Adv. Query</a></td>);
+ $row2 .= qq(<td class="navbutton"><a href="$url&cmd=logout" class="navbutton">Log Out</a></td>)
unless ($site_gnatsweb_server_auth);
- $row2 .= qq(<td><a href="$url&cmd=help" style="$buttonstyle">HELP</a></td>);
+ $row2 .= qq(<td class="navbutton"><a href="$url&cmd=help" class="navbutton">Help</a></td>);
$row2 .= qq(</tr>\n);
$row2 .= qq(</table>\n</td>\n</tr>);
@@ -3144,7 +3147,7 @@ sub page_heading
print $html;
return;
}
- print $q->h1({-style=>'font-weight: normal'}, $heading);
+ print $q->h1({-class=>'pagetitle'}, $heading);
}
# page_footer -
@@ -3895,12 +3898,13 @@ sub login_page
client_init();
my(@dbs) = client_cmd("dbls");
- print $q->start_form(), hidden_debug(), "<table>";
+ print $q->start_form(), hidden_debug(), "<table class=\"login\">";
unless($site_gnatsweb_server_auth) {
- print "<tr><td><font color=\"red\"><b>User Name</b></font>:</td><td>",
+ print "<tr><td class=\"login_field\"><span class=\"login_field\">User Name:</td><td class=\"login_input\">",
$q->textfield(-name=>'user',
-size=>20,
- -default=>$db_prefs{'user'}),
+ -default=>$db_prefs{'user'},
+ -class=>'login_input'),
"</td>\n</tr>\n";
if ($site_no_gnats_passwords) {
# we're not using gnats passwords, so the password input
@@ -3908,17 +3912,19 @@ sub login_page
# just so other parts of the program don't get confused
print qq*<input type="hidden" name="password" value="not_applicable">*;
} else {
- print "<tr>\n<td>Password:</td>\n<td>",
+ print "<tr>\n<td class=\"login_field\"><span class=\"login_field\">Password:</span></td>\n<td class=\"login_input\">",
$q->password_field(-name=>'password',
-value=>$db_prefs{'password'},
- -size=>20),
+ -size=>20,
+ -class=>'login_input'),
"</td>\n</tr>\n";
}
}
- print "<tr>\n<td>Database:</td>\n<td>",
+ print "<tr>\n<td class=\"login_input\"><span class=\"login_field\">Database:</span></td>\n<td class=\"login_input\">",
$q->popup_menu(-name=>'database',
-values=>\@dbs,
- -default=>$global_prefs{'database'}),
+ -default=>$global_prefs{'database'},
+ -class=>'login_input'),
"</td>\n</tr>\n",
"</table>\n";
if (defined($return_url))
[-- Attachment #3: gnatsweb-site.pl.patch --]
[-- Type: text/plain, Size: 580 bytes --]
--- gnatsweb-site.orig.pl Sun Apr 13 15:11:27 2003
+++ gnatsweb-site.css.pl Sun Apr 13 15:12:13 2003
@@ -11,3 +11,10 @@ $site_gnats_host = 'localhost';
# The port which the GNATS server is running on.
# Default installations of GNATS run on port 1529.
$site_gnats_port = '1529';
+
+#When this variable is set to point to a CSS stylesheet, all Gnatsweb
+#pages are linked to this stylesheet. You can either specify an
+#absolute URL like 'http://gnats.example.com/stylesheet.css' or a URL
+#relative to the document root of your web server.
+$site_stylesheet = 'common.css';
+
[-- Attachment #4: CUSTOMIZE.vars.patch --]
[-- Type: text/plain, Size: 1163 bytes --]
--- CUSTOMIZE.vars Sun Apr 13 15:08:10 2003
+++ CUSTOMIZEcss.vars Sun Apr 13 15:09:15 2003
@@ -128,14 +128,6 @@ relative to the directory where gnatsweb
$site_banner_text = 'GNU Gnatsweb';
-$site_banner_background = '#000000';
-$site_banner_foreground = '#ffffff';
-$site_button_background = '#000000';
-$site_button_foreground = '#ffffff';
-These variables control the name that will be shown in the banner on
-top of each page in addition to the database name, and the foreground
-and background colors of the banner and the associated button bar.
-
$site_stylesheet = undef;
When this variable is set to point to a CSS stylesheet, all Gnatsweb
@@ -161,17 +153,6 @@ Specifies the default size for scrolling
is overridden for some fields.
-$site_background = undef;
-The default background color for all Gnatsweb pages. If no value is
-given, Gnatsweb leaves it up to the browser to decide which background
-color to use.
-
-
-$site_required_field_color = '#ff0000';
-Color to use for marking the names of required fields on the Create PR
-page. Default is pure red.
-
-
%mark_urls = (
'urls' => 1,
'emails' => 1,
[-- Attachment #5: common.css --]
[-- Type: text/css, Size: 15455 bytes --]
/*********************************************************************
* common.css
*
* Copyright 1998, 1999, 2001, 2002
* - The Free Software Foundation Inc.
*
* GNU Gnatsweb is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2, or (at your option)
* any later version.
*
* GNU Gnatsweb is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with Gnatsweb; see the file COPYING. If not, write to the Free
* Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*
* $Id$
*
**********************************************************************/
/*********************************************************************
Generic settings (most of these are overridden below)
**********************************************************************/
BODY {
background-color: #FFFFFF;
}
P,LI,TD,TH,DT,DD { /* Set font for most things */
font-size: 10pt;
font-family: Verdana, Helvetica, sans-serif;
}
TABLE { /* Default settings for tables */
background-color: #CCCCCC; /* this makes between cell area grey */
}
TD { /* Default settings for stuff in table cells */
background-color: #DDDDFF;
vertical-align: middle;
}
TH { /* Default settings for stuff in table headings */
background-color: #000000;
color: #FFFFFF;
}
H1 { /* Generic Headings */
font-family: Verdana, Helvetica, sans-serif;
font-size: 16pt;
font-style: normal;
font-weight: bold;
color: #000000;
}
H2 {
font-family: Verdana, Helvetica, sans-serif;
font-size: 12pt;
font-style: normal;
font-weight: bold;
color: #000000;
}
H3 {
font-family: Verdana, Helvetica, sans-serif;
font-size: 12pt;
font-style: normal;
font-weight: bold;
}
/* Generic Horiz. Rules */
HR {
color: #000000;
background-color: #000000;
height: 4px;
}
A:link { color: #000099; } /* Generic Link Colors */
A:active { color: #EE0000; }
A:visited { color: #000099; }
A:hover { color: #EE0000; }
TH A:link { color: #DDDDFF; } /* Links in TH are different colors */
TH A:visited { color: #DDDDDD; }
TH A:hover { color: #FF0000; }
TH A:active { color: #FFFFFF; }
H1.pagetitle { /* the page title format */
color: #000000;
font-family: Verdana, Helvetica, sans-serif;
font-size: 14pt;
font-weight: bold;
}
/*********************************************************************
Header
-- the top of the page
**********************************************************************/
TABLE.header {
background-color: #DDDDFF; /* this makes between cell area grey */
}
TD.header_leftbox { /* the left title */
background-color: #DDDDFF;
padding-right: 6px;
padding-left: 6px;
vertical-align: middle;
text-align: left;
}
SPAN.header_lefttitle {
color: #000000;
font-family: Verdana, Helvetica, sans-serif;
font-size: 12pt;
font-weight: bold;
}
SPAN.header_userinfo { /* the user: mike, access: edit part */
color: #000000;
font-family: Verdana, Helvetica, sans-serif;
font-size: 8pt;
font-style: italic;
}
TD.header_rightbox { /* the right title */
background-color: #DDDDFF;
padding-right: 6px;
padding-left: 6px;
vertical-align: middle;
text-align: right;
}
SPAN.header_righttitle {
color: #000000;
font-family: Verdana, Helvetica, sans-serif;
font-size: 12pt;
font-weight: bold;
}
A.header_righttitle { /* the right title is a link... */
color: #000000;
font-family: Verdana, Helvetica, sans-serif;
font-size: 12pt;
font-weight: bold;
text-decoration: none;
}
A.header_righttitle:link { /* the right title is a link... */
color: #000000;
}
A.header_righttitle:hover { /* the right title is a link... */
color: #000000;
}
A.header_righttitle:visited { /* the right title is a link... */
color: #000000;
}
A.header_righttitle:active { /* the right title is a link... */
color: #000000;
}
/*********************************************************************
Navigation Buttons
-the row of navigation buttons beneath the header
**********************************************************************/
TABLE.navbutton {
background-color: #DDDDDD;
}
TD.navbutton { /* the cell containing the link */
background-color: #000000;
vertical-align: middle;
padding-right: 6px;
padding-left: 6px;
padding-bottom: 4px;
}
A.navbutton { /* the link iteself */
font-family: Verdana, Helvetica, sans-serif;
font-size: 9pt;
font-weight: bold;
text-transform: lowercase; /* if want nav in uppercase, change this */
}
A.navbutton:link { color: #DDDDFF; }
A.navbutton:visited { color: #DDDDFF; }
A.navbutton:hover { color: #FF0000; }
A.navbutton:active { color: #DDDDFF; }
/*********************************************************************
Main page
- the first page that comes up after login
**********************************************************************/
TABLE.mainpage {
background-color: #999999; /* this makes between cell area grey */
}
TD.mainpage_field { /* the left sides of the table */
background-color: #DDDDFF;
padding-right: 6px;
vertical-align: middle;
text-align: right;
}
SPAN.mainpage_field { /* the left sides of the table */
color: #000000;
font-family: Verdana, Helvetica, sans-serif;
font-size: 10pt;
font-weight: bold;
}
TD.mainpage_input { /* the right sides of the table */
background-color: #DDDDFF;
padding-left: 6px;
vertical-align: middle;
text-align: left;
}
INPUT.mainpage_input { /* styles for form input */
font-family: Verdana, Helvetica, sans-serif;
background-color: #EEEEFF;
}
SELECT.mainpage_input { /* styles for form input */
font-family: Verdana, Helvetica, sans-serif;
background-color: #EEEEFF;
}
TEXTAREA.mainpage_input { /* styles for form input */
font-family: Verdana, Helvetica, sans-serif;
background-color: #EEEEFF;
}
/*********************************************************************
The Query & Advanced Query Pages
--same styles for both query and adv query page
**********************************************************************/
TABLE.query {
background-color: #999999; /* this makes between cell area grey */
}
TABLE.query CAPTION { /* on adv query, there are captions above tables */
font-size: 12pt;
font-family: Verdana, Helvetica, sans-serif;
color: #000000;
font-weight: bold;
}
TABLE.query TH { /* and table headings */
font-size: 10pt;
font-family: Verdana, Helvetica, sans-serif;
background-color: #000000;
padding-bottom: 4px;
}
TD.query_field { /* the left side of the query boxes */
background-color: #DDDDFF;
padding-right: 6px;
vertical-align: middle;
text-align: right;
}
SPAN.query_field { /* the left side of the query boxes */
color: #000000;
font-family: Verdana, Helvetica, sans-serif;
font-size: 10pt;
font-weight: bold;
}
TD.query_input { /* the right side of the query boxes */
background-color: #DDDDFF;
padding-left: 6px;
vertical-align: middle;
text-align: left;
}
INPUT.query_input { /* styles for form input */
font-family: Verdana, Helvetica, sans-serif;
background-color: #EEEEFF;
}
SELECT.query_input { /* styles for form input */
font-family: Verdana, Helvetica, sans-serif;
background-color: #EEEEFF;
}
TEXTAREA.query_input { /* styles for form input */
font-family: Verdana, Helvetica, sans-serif;
background-color: #EEEEFF;
}
/*********************************************************************
Query Results Page
--the list of pr results you get after a query
**********************************************************************/
TABLE.queryresults {
background-color: #999999; /* this makes between cell area grey */
}
TH.queryresults { /* the column headers */
font-size: 10pt;
font-family: Verdana, Helvetica, sans-serif;
background-color: #000000;
padding-bottom: 4px;
}
TH.queryresults A:link { /* text in headers are links */
color: #DDDDFF;
}
TH.queryresults A:visited {
color: #DDDDFF;
}
TH.queryresults A:hover {
color: #FF0000;
}
TH.queryresults A:active {
color: #FF0000;
}
TD.queryresults { /* a cell containing pr values */
font-size: 9pt;
font-family: Verdana, Helvetica, sans-serif;
background-color: #EEEEFF;
padding-bottom: 4px;
}
TD.queryresults A:link { /* there can be links in there */
color: #0000FF;
}
TD.queryresults A:visited {
color: #0000FF;
}
TD.queryresults A:hover {
color: #FF0000;
}
TD.queryresults A:active {
color: #FF0000;
}
/*********************************************************************
The Create PR Page
-creating a new pr page
**********************************************************************/
TABLE.createpr {
background-color: #999999; /* this makes between cell area grey */
}
TD.createpr_field { /* the left side of query boxes */
color: #FFFF00;
background-color: #DDDDFF;
padding-right: 6px;
vertical-align: middle;
text-align: right;
}
SPAN.createpr_fieldname { /* the left side of query boxes */
color: #000000;
font-family: Verdana, Helvetica, sans-serif;
font-size: 10pt;
font-weight: bold;
}
SPAN.createpr_fieldrequired { /* if a field is required */
color: #FF0000;
font-family: Verdana, Helvetica, sans-serif;
font-size: 10pt;
font-weight: bold;
}
SPAN.createpr_fielddesc { /* the little descriptions of fields */
color: #000000;
font-family: Verdana, Helvetica, sans-serif;
font-size: 8pt;
font-style: italic;
}
TD.createpr_input { /* the right side of query boxes */
background-color: #DDDDFF;
padding-left: 6px;
vertical-align: middle;
text-align: left;
}
INPUT.createpr_input { /* form input style */
font-family: Verdana, Helvetica, sans-serif;
background-color: #EEEEFF;
}
SELECT.createpr_input { /* form input style */
font-family: Verdana, Helvetica, sans-serif;
background-color: #EEEEFF;
}
TEXTAREA.createpr_input { /* form input style */
font-family: Verdana, Helvetica, sans-serif;
background-color: #EEEEFF;
}
/* the following four format the attachments box on create pr only */
TABLE.createpr TR TD.attachments_fieldname {
color: #FFFF00;
background-color: #DDDDFF;
padding-right: 6px;
vertical-align: middle;
text-align: right;
}
TABLE.createpr TR TD SPAN.attachments_fieldname {
color: #000000;
font-family: Verdana, Helvetica, sans-serif;
font-size: 10pt;
font-weight: bold;
}
TABLE.createpr TR TD.attachments_fieldvalue {
color: #000000;
background-color: #DDDDFF;
padding-left: 6px;
vertical-align: middle;
text-align: left;
}
TABLE.createpr TR TD INPUT.attachments_add {
font-family: Verdana, Helvetica, sans-serif;
background-color: #EEEEFF;
}
/*********************************************************************
The Edit PR Page
--editing an existing pr page
**********************************************************************/
TABLE.editpr {
background-color: #999999; /* this makes between cell area grey */
}
TD.editpr_field { /* the left side of query boxes */
color: #FFFF00;
background-color: #DDDDFF;
padding-right: 6px;
vertical-align: middle;
text-align: right;
}
SPAN.editpr_fieldname { /* the left side of query boxes */
color: #000000;
font-family: Verdana, Helvetica, sans-serif;
font-size: 10pt;
font-weight: bold;
}
SPAN.editpr_fielddesc { /* the little descriptions of fields */
color: #000000;
font-family: Verdana, Helvetica, sans-serif;
font-size: 8pt;
font-weight: normal;
font-style: italic;
}
TD.editpr_input { /* the right side of query boxes */
background-color: #DDDDFF;
padding-left: 6px;
vertical-align: middle;
text-align: left;
}
INPUT.editpr_input { /* the right side of query boxes */
font-family: Verdana, Helvetica, sans-serif;
background-color: #EEEEFF;
}
SELECT.editpr_input { /* the right side of query boxes */
font-family: Verdana, Helvetica, sans-serif;
background-color: #EEEEFF;
}
TEXTAREA.editpr_input { /* the right side of query boxes */
font-family: Verdana, Helvetica, sans-serif;
background-color: #EEEEFF;
}
/* the following four format the attachments box on edit pr only */
TABLE.editpr TR TD.attachments_fieldname {
color: #FFFF00;
background-color: #DDDDFF;
padding-right: 6px;
vertical-align: middle;
text-align: right;
}
TABLE.editpr TR TD SPAN.attachments_fieldname {
color: #000000;
font-family: Verdana, Helvetica, sans-serif;
font-size: 10pt;
font-weight: bold;
}
TABLE.editpr TR TD.attachments_fieldvalue {
color: #000000;
background-color: #DDDDFF;
padding-left: 6px;
vertical-align: middle;
text-align: left;
}
TABLE.editpr TR TD INPUT.attachments_add {
font-family: Verdana, Helvetica, sans-serif;
background-color: #EEEEFF;
}
/*********************************************************************
Stored queries
--the list of stored queries that shows up on bottom of page
--the list of stored queries that shows up on bottom of page
--the list of stored queries that shows up on bottom of page
--the list of stored queries that shows up on bottom of page
*********************************************************************/
TABLE.storedqueries {
background-color: #999999; /* this makes between cell area grey */
vertical-align: middle;
}
TD.storedqueries_submit { /* the cell containing the submit query stuff */
color: #FFFF00;
background-color: #DDDDFF;
padding-left: 6px;
padding-right: 6px;
vertical-align: middle; /* doesn't work, maybe cause of <form> in td */
text-align: center;
}
TD.storedqueries_delete { /* the cell containing delete query stuff */
color: #FFFF00;
background-color: #DDDDFF;
padding-left: 6px;
padding-right: 6px;
vertical-align: middle; /* doesn't work, maybe cause of <form> in td */
text-align: center;
}
SELECT.storedqueries_submit { /* form input for submit query list */
font-family: Verdana, Helvetica, sans-serif;
background-color: #EEEEFF;
}
SELECT.storedqueries_delete { /* form input for delete query list */
font-family: Verdana, Helvetica, sans-serif;
background-color: #EEEEFF;
}
/*********************************************************************
Login Page
-- the login page
*********************************************************************/
TABLE.login {
background-color: #999999; /* this makes between cell area grey */
vertical-align: middle;
}
TD.login_field { /* the left side of login table */
color: #FFFF00;
background-color: #DDDDFF;
padding-right: 6px;
vertical-align: middle;
text-align: right;
}
SPAN.login_field { /* the left side of login table */
color: #000000;
font-family: Verdana, Helvetica, sans-serif;
font-size: 10pt;
font-weight: bold;
}
TD.login_input { /* right side of login table */
color: #FFFF00;
background-color: #DDDDFF;
padding-left: 6px;
vertical-align: middle;
text-align: left;
}
SELECT.login_input { /* form input on login page */
font-family: Verdana, Helvetica, sans-serif;
background-color: #EEEEFF;
}
INPUT.login_input { /* form input on login page */
font-family: Verdana, Helvetica, sans-serif;
background-color: #EEEEFF;
}
[-- Attachment #6: Type: text/plain, Size: 139 bytes --]
_______________________________________________
Help-gnats mailing list
Help-gnats@gnu.org
http://mail.gnu.org/mailman/listinfo/help-gnats
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: CSS patch for gnatsweb
2003-04-13 19:46 CSS patch for gnatsweb Mike Hoolehan
@ 2003-04-15 13:16 ` Yngve Svendsen
0 siblings, 0 replies; 2+ messages in thread
From: Yngve Svendsen @ 2003-04-15 13:16 UTC (permalink / raw)
To: Mike Hoolehan, help-gnats
At 15:17 13.04.2003 -0400, Mike Hoolehan wrote:
>Hello,
>
>please review the following patchfiles to gnatsweb.pl, CUSTOMIZE.vars, and
>gnatsweb-site.pl, which together provide for CSS formatting of most gnatsweb
>elements from a single CSS stylesheet.
>
>I have modified gnatsweb.pl to place 'class' tags on most elements and text,
>modified gnats-site.pl to link to a css page by default, and modified
>CUSTOMIZE.vars to eliminate mention of the various colors and style
>formatting which have been superseded by CSS formatting. Finally, I
>included a new css sheet that contains all the new styles, which the user
>may modify to make his or her own look (though the default look I provided
>looks pretty good, I think).
Thanks. I will have a look at this for Gnatsweb 4.1, but I can't promise
that it will be soon.
Yngve Svendsen
Gnatsweb maintainer
_______________________________________________
Help-gnats mailing list
Help-gnats@gnu.org
http://mail.gnu.org/mailman/listinfo/help-gnats
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2003-04-15 13:16 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-04-13 19:46 CSS patch for gnatsweb Mike Hoolehan
2003-04-15 13:16 ` Yngve Svendsen
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).