From: Jakub Narebski <jnareb@gmail.com>
To: git@vger.kernel.org
Cc: Lea Wiemann <LeWiemann@gmail.com>
Subject: [PATCH 1/2] gitweb: Separate filling list of projects info
Date: Tue, 10 Jun 2008 19:21:01 +0200 [thread overview]
Message-ID: <200806101921.02156.jnareb@gmail.com> (raw)
In-Reply-To: <200806101919.24242.jnareb@gmail.com>
Extract filling project list info, i.e. adding age, description, owner
and forks information, into fill_project_list_info() subroutine. This
is preparation for smart pagination and smart searching (to make it
possible to calculate/generate info only for those projects which will
be shown).
Small changes compared to original version to improve readability
(comments, names of variables, named loops).
Additionally, store both full ('descr_long') and shortened ('descr')
project description in Perl's internal form (using to_utf8).
Signed-off-by: Jakub Narebski <jnareb@gmail.com>
---
It is meant to be minimally intrusive patch, although it corrects
some code (variable naming, ensuring storing data in Perl internal
form, comments, etc.).
gitweb/gitweb.perl | 35 +++++++++++++++++++++++------------
1 files changed, 23 insertions(+), 12 deletions(-)
diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl
index 198772c..d7a9809 100755
--- a/gitweb/gitweb.perl
+++ b/gitweb/gitweb.perl
@@ -3559,21 +3559,24 @@ sub git_patchset_body {
# . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
-sub git_project_list_body {
- my ($projlist, $order, $from, $to, $extra, $no_header) = @_;
-
- my ($check_forks) = gitweb_check_feature('forks');
-
+# fills project list info (age, description, owner, forks) for each
+# project in the list, removing invalid projects from returned list
+# NOTE: modifies $projlist, but does not remove entries from it
+sub fill_project_list_info {
+ my ($projlist, $check_forks) = @_;
my @projects;
+
+ PROJECT:
foreach my $pr (@$projlist) {
- my (@aa) = git_get_last_activity($pr->{'path'});
- unless (@aa) {
- next;
+ my (@activity) = git_get_last_activity($pr->{'path'});
+ unless (@activity) {
+ next PROJECT;
}
- ($pr->{'age'}, $pr->{'age_string'}) = @aa;
+ ($pr->{'age'}, $pr->{'age_string'}) = @activity;
if (!defined $pr->{'descr'}) {
my $descr = git_get_project_description($pr->{'path'}) || "";
- $pr->{'descr_long'} = to_utf8($descr);
+ $descr = to_utf8($descr);
+ $pr->{'descr_long'} = $descr;
$pr->{'descr'} = chop_str($descr, $projects_list_description_width, 5);
}
if (!defined $pr->{'owner'}) {
@@ -3585,14 +3588,22 @@ sub git_project_list_body {
($pname !~ /\/$/) &&
(-d "$projectroot/$pname")) {
$pr->{'forks'} = "-d $projectroot/$pname";
- }
- else {
+ } else {
$pr->{'forks'} = 0;
}
}
push @projects, $pr;
}
+ return @projects;
+}
+
+sub git_project_list_body {
+ my ($projlist, $order, $from, $to, $extra, $no_header) = @_;
+
+ my ($check_forks) = gitweb_check_feature('forks');
+ my @projects = fill_project_list_info($projlist, $check_forks);
+
$order ||= $default_projects_order;
$from = 0 unless defined $from;
$to = $#projects if (!defined $to || $#projects < $to);
--
1.5.5.3
next prev parent reply other threads:[~2008-06-10 17:30 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-06-10 17:19 [PATCH 0/2] gitweb: Refactor projects_list generation Jakub Narebski
2008-06-10 17:21 ` Jakub Narebski [this message]
2008-06-10 17:21 ` [PATCH 2/2] gitweb: Separate generating 'sort by' table header Jakub Narebski
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=200806101921.02156.jnareb@gmail.com \
--to=jnareb@gmail.com \
--cc=LeWiemann@gmail.com \
--cc=git@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.