diff options
Diffstat (limited to '')
-rw-r--r-- | lib/jitterbug.pm | 27 | ||||
-rw-r--r-- | public/css/style.css | 16 | ||||
-rw-r--r-- | views/index.tt | 49 |
3 files changed, 72 insertions, 20 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; diff --git a/public/css/style.css b/public/css/style.css index e3a6e97..37e01a5 100644 --- a/public/css/style.css +++ b/public/css/style.css @@ -29,7 +29,7 @@ text-decoration: none; #page { background-color: #ddd; -width: 750px; +width: 80%; margin: auto; margin-left: auto; padding-left: 0px; @@ -41,7 +41,7 @@ background-color: white; border: 3px solid #aaa; border-top: none; padding: 25px; -width: 750px; +width: 90%; } #sidebar { @@ -235,3 +235,15 @@ font-family:Monaco,"Courier New","DejaVu Sans Mono","Bitstream Vera Sans Mono",m .commit .builds span {font-size:110%;font-weight: bolder;} .commit .builds span .PASS{color:green} .commit .builds span .FAILED{color:red} + +.repo{border:1px solid #d8d8d8;background-color:#f0f0f0;} + +ul.repositories{margin:0;} +ul.repositories>li{list-style-type:none;margin:0 0 10px 0;padding:8px 10px 0 10px;border:1px solid #ddd;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;} +ul.repositories h3{margin:0;font-size:14px;white-space:nowrap;} +ul.repositories p.desc{margin:0 0 3px 0;font-size:12px;color:#444;} +ul.repositories p.updated-at{margin:0;font-size:11px;color:#888;} + + +.columns .first{float:left;width:450px;} +.columns .last{float:right;width:450px;} diff --git a/views/index.tt b/views/index.tt index 58b675a..afebb93 100644 --- a/views/index.tt +++ b/views/index.tt @@ -1,22 +1,41 @@ <div id="page"> + <div id="content"> + <h2>Dashboard</h2> -<div id="content"> -<h2>Dashboard</h2> + <div class="columns"> -<h3>Projects</h3> + <div class="first"> + <h3>Repositories</h3> -<ul> - : for $projects -> $project { - <li><a href="<: $uri_base :>project/<: $project :>"><: $project :></a></li> - : } -</ul> + <ul class="repositories"> + : for $projects -> $project { + <li class="repo"> + <h3><a href="<: $uri_base :>project/<: $project.name :>"><: $project.name :></a></h3> + <div class="repo-body"> + <p class="desc"><: $project.description :></p> + <p class="updated-at">last updated at <: $project.last_build.timestamp :></p> + <div class="last-builds"> + :for $project.last_build.version.keys() -> $version { + <a href="<: $uri_base :>/api/build/<: $project.name :>/<: $project.last_build.commit :>/<: $version :>"><: $version :></a> <span class="<: $project.last_build.version[$version] :>"><: $project.last_build.version[$version] :></span> + :} + </div> + </div> + </li> + : } + </ul> + </div> -<h3>Builds pending</h3> + <div class="last"> + <h3>Builds pending</h3> -<ul> - : for $builds -> $build { - <li><a href="<: $uri_base :>task/<: $build :>"><: $build :></a></li> - : } -</ul> -</div> + <ul> + : for $builds -> $build { + <li><a href="<: $uri_base :>task/<: $build :>"><: $build :></a></li> + : } + </ul> + </div> + + </div> + <div style="clear:both;"></div> + </div> </div> |