about summary refs log tree commit diff
path: root/lib
diff options
context:
space:
mode:
authorfranck cuny <franck@lumberjaph.net>2011-02-13 14:15:23 +0100
committerfranck cuny <franck@lumberjaph.net>2011-02-13 14:15:23 +0100
commit412587ddac4ba483d06bef9a8a89c07b4d3cf44b (patch)
tree3b58b44657d4e3c2817228a7984f2436e90f1244 /lib
parentMerge branch 'refactor_builder' (diff)
parentupdate templates to show informations about running tasks (diff)
downloadjitterbug-412587ddac4ba483d06bef9a8a89c07b4d3cf44b.tar.gz
resolve merge conflict
Diffstat (limited to 'lib')
-rw-r--r--lib/jitterbug.pm32
-rw-r--r--lib/jitterbug/Schema.pm2
-rw-r--r--lib/jitterbug/Schema/Result/Task.pm10
-rw-r--r--lib/jitterbug/Task.pm2
4 files changed, 42 insertions, 4 deletions
diff --git a/lib/jitterbug.pm b/lib/jitterbug.pm
index c876cb6..1bf3aab 100644
--- a/lib/jitterbug.pm
+++ b/lib/jitterbug.pm
@@ -9,9 +9,17 @@ our $VERSION = '0.1';
 load_app 'jitterbug::Hook',       prefix => '/hook';
 load_app 'jitterbug::Project',    prefix => '/project';
 load_app 'jitterbug::WebService', prefix => '/api';
-#load_app 'jitterbug::Task',       prefix => '/task';
+load_app 'jitterbug::Task',       prefix => '/task';
 
 get '/' => sub {
+    my $projects = _get_projects();
+    my ( $builds, $runnings ) = _get_builds();
+
+    template 'index',
+      { projects => $projects, builds => $builds, runnings => $runnings };
+};
+
+sub _get_projects {
 
     my @projects = ();
 
@@ -41,7 +49,25 @@ get '/' => sub {
       sort { $b->{last_build}->{timestamp} cmp $a->{last_build}->{timestamp} }
       @projects;
 
-    template 'index', {projects => \@projects};
-};
+    return \@projects;
+}
+
+sub _get_builds {
+
+    my @builds   = ();
+    my @runnings = ();
+
+    my $builds = schema->resultset('Task')->search();
+    while ( my $build = $builds->next ) {
+        my $build_desc = {
+            project => $build->project->name,
+            id      => $build->id,
+            running => $build->running,
+        };
+        $build->running ? push @runnings, $build_desc : push @builds,
+          $build_desc;
+    }
+    return ( \@builds, \@runnings );
+}
 
 true;
diff --git a/lib/jitterbug/Schema.pm b/lib/jitterbug/Schema.pm
index 5014c12..f47d7e9 100644
--- a/lib/jitterbug/Schema.pm
+++ b/lib/jitterbug/Schema.pm
@@ -1,6 +1,8 @@
 package jitterbug::Schema;
 use base qw/DBIx::Class::Schema/;
 
+our $VERSION = '3';
+
 __PACKAGE__->load_namespaces();
 
 1;
diff --git a/lib/jitterbug/Schema/Result/Task.pm b/lib/jitterbug/Schema/Result/Task.pm
index e63e101..2eaed62 100644
--- a/lib/jitterbug/Schema/Result/Task.pm
+++ b/lib/jitterbug/Schema/Result/Task.pm
@@ -2,6 +2,7 @@ package jitterbug::Schema::Result::Task;
 use base qw/DBIx::Class::Core/;
 
 __PACKAGE__->table('task');
+__PACKAGE__->load_components(qw/InflateColumn::DateTime/);
 __PACKAGE__->add_columns(
     taskid => {
         data_type         => 'int',
@@ -12,6 +13,15 @@ __PACKAGE__->add_columns(
         data_type      => 'int',
         is_foreign_key => 1,
     },
+    running => {
+        data_type     => 'bool',
+        default_value => 0,
+    },
+    started_when => {
+        data_type                 => 'datetime',
+        is_nullable               => 1,
+        datetime_undef_if_invalid => 1
+    },
 );
 
 __PACKAGE__->set_primary_key('taskid');
diff --git a/lib/jitterbug/Task.pm b/lib/jitterbug/Task.pm
index f14a9c6..998e9e4 100644
--- a/lib/jitterbug/Task.pm
+++ b/lib/jitterbug/Task.pm
@@ -7,7 +7,7 @@ use jitterbug::Plugin::Template;
 get '/:task_id' => sub {
     my $task_id = params->{task_id};
 
-    my $task = schema->resultset('Task')->search($task_id);
+    my $task = schema->resultset('Task')->find($task_id);
 
     if (!$task) {
         render_error("task doesn't exists", 404);