diff --git a/pmd-web/src/PMD/Project.pm b/pmd-web/src/PMD/Project.pm
index 6bc155b66c..ef3c3f473e 100644
--- a/pmd-web/src/PMD/Project.pm
+++ b/pmd-web/src/PMD/Project.pm
@@ -13,6 +13,7 @@ push @EXPORT, '&getJobsFile';
push @EXPORT, '&getRptFile';
push @EXPORT, '&getRptURL';
push @EXPORT, '&getLines';
+push @EXPORT, '&getLocation';
sub new {
my $self = {};
diff --git a/pmd-web/src/webpmd.pl b/pmd-web/src/webpmd.pl
index 727a956653..7bff9acc2d 100644
--- a/pmd-web/src/webpmd.pl
+++ b/pmd-web/src/webpmd.pl
@@ -78,7 +78,7 @@ sub getTimeUntil() {
}
sub loadProjectList() {
- my $result="
Project | | Home page | Problems found |
";
+ my @projects = ();
opendir(DIR, "jobs/") or return "can't open jobs directory!";
while (defined($file=readdir(DIR))) {
if ($file =~ /txt/) {
@@ -86,13 +86,20 @@ sub loadProjectList() {
my $jobdata=;
close(FILE);
my $project = PMD::Project->new($jobdata);
- my $jobtext=$project->getTitle();
- if (-e $project->getRptFile()) {
- $jobtext="getRptURL]}\">@{[$project->getTitle()]}";
- }
- $result="${result}${jobtext} | | @{[$project->getHomePage()]} | @{[$project->getLines()]} | ";
+ push(@projects, $project);
}
}
+
+ @newprojects = sort { $a->getLocation() cmp $b->getLocation() || $a->getTitle() cmp $b->getTitle() } @projects;
+
+ my $result="Project | | Home page | Problems found |
";
+ foreach $project (@newprojects) {
+ my $jobtext=$project->getTitle();
+ if (-e $project->getRptFile()) {
+ $jobtext="getRptURL]}\">@{[$project->getTitle()]}";
+ }
+ $result="${result}${jobtext} | | @{[$project->getHomePage()]} | @{[$project->getLines()]} | ";
+ }
$result = "${result}
";
return $result;
}