gitweb: Option to omit column with time of the last change

Generating information about last change for a large number of git
repositories can be very time consuming. This commit add an option to
omit 'Last Change' column when presenting the list of repositories.

Signed-off-by: Kacper Kornet <draenog@pld-linux.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Kacper Kornet 2012-04-24 19:39:15 +02:00 committed by Junio C Hamano
parent 75e0dffef0
commit 5710be46d8
2 changed files with 15 additions and 5 deletions

View file

@ -499,6 +499,10 @@ $maxload::
Set `$maxload` to undefined value (`undef`) to turn this feature off.
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.
$per_request_config::
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.

View file

@ -133,6 +133,9 @@ sub evaluate_uri {
# (only effective if this variable evaluates to true)
our $export_ok = "++GITWEB_EXPORT_OK++";
# don't generate age column on the projects list page
our $omit_age_column = 0;
# show repository only if this subroutine returns true
# when given the path to the project, for example:
# sub { return -e "$_[0]/git-daemon-export-ok"; }
@ -5464,9 +5467,11 @@ sub git_project_list_rows {
: esc_html($pr->{'descr'})) .
"</td>\n" .
"<td><i>" . chop_and_escape_str($pr->{'owner'}, 15) . "</i></td>\n";
print "<td class=\"". age_class($pr->{'age'}) . "\">" .
(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=>"shortlog")}, "shortlog") . " | " .
$cgi->a({-href => href(project=>$pr->{'path'}, action=>"log")}, "log") . " | " .
@ -5497,7 +5502,8 @@ sub git_project_list_body {
'tagfilter' => $tagfilter)
if ($tagfilter || $search_regexp);
# fill the rest
@projects = fill_project_list_info(\@projects);
my @all_fields = $omit_age_column ? ('descr', 'descr_long', 'owner', 'ctags', 'category') : ();
@projects = fill_project_list_info(\@projects, @all_fields);
$order ||= $default_projects_order;
$from = 0 unless defined $from;
@ -5529,7 +5535,7 @@ sub git_project_list_body {
print_sort_th('project', $order, 'Project');
print_sort_th('descr', $order, 'Description');
print_sort_th('owner', $order, '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
"</tr>\n";
}