Merge branch 'kk/gitweb-omit-expensive'

"gitweb" learned to optionally omit output of fields that are expensive
to generate.

By Kacper Kornet
* kk/gitweb-omit-expensive:
  gitweb: Option to not display information about owner
  gitweb: Option to omit column with time of the last change
This commit is contained in:
Junio C Hamano 2012-04-29 17:52:00 -07:00
commit 55375e9473
2 changed files with 32 additions and 10 deletions

View File

@ -499,6 +499,13 @@ $maxload::
Set `$maxload` to undefined value (`undef`) to turn this feature off. Set `$maxload` to undefined value (`undef`) to turn this feature off.
The default value is 300. The default value is 300.
$omit_age_column::
If true, omit the column with date of the most current commit on the
projects list page. It can save a bit of I/O and a fork per repository.
$omit_owner::
If true prevents displaying information about repository owner.
$per_request_config:: $per_request_config::
If this is set to code reference, it will be run once for each request. If this is set to code reference, it will be run once for each request.
You can set parts of configuration that change per session this way. You can set parts of configuration that change per session this way.

View File

@ -133,6 +133,12 @@ our $default_projects_order = "project";
# (only effective if this variable evaluates to true) # (only effective if this variable evaluates to true)
our $export_ok = "++GITWEB_EXPORT_OK++"; our $export_ok = "++GITWEB_EXPORT_OK++";
# don't generate age column on the projects list page
our $omit_age_column = 0;
# don't generate information about owners of repositories
our $omit_owner=0;
# show repository only if this subroutine returns true # show repository only if this subroutine returns true
# when given the path to the project, for example: # when given the path to the project, for example:
# sub { return -e "$_[0]/git-daemon-export-ok"; } # sub { return -e "$_[0]/git-daemon-export-ok"; }
@ -5612,11 +5618,15 @@ sub git_project_list_rows {
? esc_html_match_hl_chopped($pr->{'descr_long'}, ? esc_html_match_hl_chopped($pr->{'descr_long'},
$pr->{'descr'}, $search_regexp) $pr->{'descr'}, $search_regexp)
: esc_html($pr->{'descr'})) . : esc_html($pr->{'descr'})) .
"</td>\n" . "</td>\n";
"<td><i>" . chop_and_escape_str($pr->{'owner'}, 15) . "</i></td>\n"; unless ($omit_owner) {
print "<td class=\"". age_class($pr->{'age'}) . "\">" . print "<td><i>" . chop_and_escape_str($pr->{'owner'}, 15) . "</i></td>\n";
(defined $pr->{'age_string'} ? $pr->{'age_string'} : "No commits") . "</td>\n" . }
"<td class=\"link\">" . unless ($omit_age_column) {
print "<td class=\"". age_class($pr->{'age'}) . "\">" .
(defined $pr->{'age_string'} ? $pr->{'age_string'} : "No commits") . "</td>\n";
}
print"<td class=\"link\">" .
$cgi->a({-href => href(project=>$pr->{'path'}, action=>"summary")}, "summary") . " | " . $cgi->a({-href => href(project=>$pr->{'path'}, action=>"summary")}, "summary") . " | " .
$cgi->a({-href => href(project=>$pr->{'path'}, action=>"shortlog")}, "shortlog") . " | " . $cgi->a({-href => href(project=>$pr->{'path'}, action=>"shortlog")}, "shortlog") . " | " .
$cgi->a({-href => href(project=>$pr->{'path'}, action=>"log")}, "log") . " | " . $cgi->a({-href => href(project=>$pr->{'path'}, action=>"log")}, "log") . " | " .
@ -5647,7 +5657,10 @@ sub git_project_list_body {
'tagfilter' => $tagfilter) 'tagfilter' => $tagfilter)
if ($tagfilter || $search_regexp); if ($tagfilter || $search_regexp);
# fill the rest # fill the rest
@projects = fill_project_list_info(\@projects); my @all_fields = ('descr', 'descr_long', 'ctags', 'category');
push @all_fields, ('age', 'age_string') unless($omit_age_column);
push @all_fields, 'owner' unless($omit_owner);
@projects = fill_project_list_info(\@projects, @all_fields);
$order ||= $default_projects_order; $order ||= $default_projects_order;
$from = 0 unless defined $from; $from = 0 unless defined $from;
@ -5678,8 +5691,8 @@ sub git_project_list_body {
} }
print_sort_th('project', $order, 'Project'); print_sort_th('project', $order, 'Project');
print_sort_th('descr', $order, 'Description'); print_sort_th('descr', $order, 'Description');
print_sort_th('owner', $order, 'Owner'); print_sort_th('owner', $order, 'Owner') unless $omit_owner;
print_sort_th('age', $order, 'Last Change'); print_sort_th('age', $order, 'Last Change') unless $omit_age_column;
print "<th></th>\n" . # for links print "<th></th>\n" . # for links
"</tr>\n"; "</tr>\n";
} }
@ -6432,8 +6445,10 @@ sub git_summary {
print "<div class=\"title\">&nbsp;</div>\n"; print "<div class=\"title\">&nbsp;</div>\n";
print "<table class=\"projects_list\">\n" . print "<table class=\"projects_list\">\n" .
"<tr id=\"metadata_desc\"><td>description</td><td>" . esc_html($descr) . "</td></tr>\n" . "<tr id=\"metadata_desc\"><td>description</td><td>" . esc_html($descr) . "</td></tr>\n";
"<tr id=\"metadata_owner\"><td>owner</td><td>" . esc_html($owner) . "</td></tr>\n"; unless ($omit_owner) {
print "<tr id=\"metadata_owner\"><td>owner</td><td>" . esc_html($owner) . "</td></tr>\n";
}
if (defined $cd{'rfc2822'}) { if (defined $cd{'rfc2822'}) {
print "<tr id=\"metadata_lchange\"><td>last change</td>" . print "<tr id=\"metadata_lchange\"><td>last change</td>" .
"<td>".format_timestamp_html(\%cd)."</td></tr>\n"; "<td>".format_timestamp_html(\%cd)."</td></tr>\n";