about summary refs log tree commit diff
path: root/lib/jitterbug.pm
diff options
context:
space:
mode:
authorfranck cuny <franck@lumberjaph.net>2010-09-26 10:26:16 +0200
committerfranck cuny <franck@lumberjaph.net>2010-09-26 10:26:16 +0200
commit19d42a8de444a6447f05ed63523becf47b61fe86 (patch)
tree37eb4491496cb869cd1e80b1f122aa990cd90282 /lib/jitterbug.pm
parentdisplay builds by day + layout to toggle days (diff)
downloadjitterbug-19d42a8de444a6447f05ed63523becf47b61fe86.tar.gz
more css; display a nicer list of projects on main page
Diffstat (limited to 'lib/jitterbug.pm')
-rw-r--r--lib/jitterbug.pm27
1 files changed, 24 insertions, 3 deletions
diff --git a/lib/jitterbug.pm b/lib/jitterbug.pm
index 8110def..e4ebab2 100644
--- a/lib/jitterbug.pm
+++ b/lib/jitterbug.pm
@@ -12,9 +12,30 @@ load_app 'jitterbug::WebService', prefix => '/api';
 load_app 'jitterbug::Task',       prefix => '/task';
 
 get '/' => sub {
-    my @projects = redis->smembers(key_projects);
-    my @builds = redis->smembers(key_tasks);
-    template 'index', {projects => \@projects, builds => \@builds};
+
+    my @proj_name = redis->smembers(key_projects);
+    my @projects  = ();
+
+    foreach (@proj_name) {
+        my $proj = redis->get(key_project($_));
+        next unless $proj;
+        debug("on a $proj");
+        my $desc = from_json($proj);
+        my @ids  = redis->smembers( key_builds_project($_) );
+        my $res  = redis->get( pop @ids );
+        if ($res) {
+            my $last_build = from_json($res);
+            $desc->{last_build} = $last_build;
+        }
+        push @projects, $desc;
+    }
+
+    @projects =
+      sort { $b->{last_build}->{timestamp} cmp $a->{last_build}->{timestamp} }
+      @projects;
+
+    my @tasks = redis->smembers(key_tasks);
+    template 'index', {projects => \@projects, tasks => \@tasks};
 };
 
 true;