parent
68323a2d0c
commit
d0484b25f3
9 changed files with 255 additions and 88 deletions
@ -0,0 +1,205 @@ |
||||
% layout 'standard', title => 'Dashboard', sb_active => 'dashboard'; |
||||
|
||||
%= include 'dashboard/_blog_nav', page => 'builds' |
||||
|
||||
% if ( my $confirmation = flash 'confirmation' ) { |
||||
<div style="margin-top: 2em" class="alert alert-success" role="alert"> |
||||
<%== $confirmation %> |
||||
</div> |
||||
% } |
||||
|
||||
% if ( $c->stash->{success} ) { |
||||
<div style="margin-top: 2em" class="alert alert-success" role="alert"> |
||||
<%= $c->stash->{success_message} %> |
||||
</div> |
||||
% } |
||||
|
||||
% if ( $c->stash->{errors} ) { |
||||
<div style="margin-top: 2em" class="alert alert-danger" role="alert"> |
||||
There were errors with your request that could not be resolved: |
||||
<ul> |
||||
% for my $error ( @{$c->stash->{errors}} ) { |
||||
<li><%= $error %></li> |
||||
% } |
||||
</ul> |
||||
</div> |
||||
% } |
||||
|
||||
%# Job Rejection Panel |
||||
% if ( $c->param('reject_job') ) { |
||||
<div class="card mb-4 alert alert-danger"> |
||||
<div class="card-header"> |
||||
%= include '_svg/failed' |
||||
Build Rejected |
||||
</div> |
||||
<div class="card-body"> |
||||
% my $sba = $blog->get_build_allowance; |
||||
<p>Rules</p> |
||||
<ul> |
||||
<li>Must wait <%= $sba->{wait_minutes}{required} %> between builds. You have waited <%= $sba->{wait_minutes}{current} %> minutes.</li> |
||||
<li>In one hour, <%= $sba->{builds_over_hour}{allowed} %> builds are allowed. You have built <%= $sba->{builds_over_hour}{used} %> times in that time.</li> |
||||
<li>In one day, <%= $sba->{builds_over_day}{allowed} %> builds are allowed. You have built <%= $sba->{builds_over_day}{used} %> times in that time.</li> |
||||
</ul> |
||||
</div> |
||||
</div> |
||||
% } |
||||
|
||||
% if ( $c->stash->{success} ) { |
||||
<div style="margin-top: 2em" class="alert alert-success" role="alert"> |
||||
<%= $c->stash->{success_message} %> |
||||
</div> |
||||
% } |
||||
|
||||
% if ( $c->stash->{errors} ) { |
||||
<div style="margin-top: 2em" class="alert alert-danger" role="alert"> |
||||
There were errors with your request that could not be resolved: |
||||
<ul> |
||||
% for my $error ( @{$c->stash->{errors}} ) { |
||||
<li><%= $error %></li> |
||||
% } |
||||
</ul> |
||||
</div> |
||||
% } |
||||
|
||||
%= include 'dashboard/_website/information' |
||||
|
||||
<ul class="nav nav-tabs"> |
||||
<li class="nav-item"> |
||||
<a class="nav-link active" aria-current="page" href="<%= $c->url_for( 'show_dashboard_website' ) %>">Jobs</a> |
||||
</li> |
||||
<li class="nav-item"> |
||||
<a class="nav-link" href="<%= $c->url_for( 'show_dashboard_website_limits' ) %>">Limits</a> |
||||
</li> |
||||
<li class="nav-item"> |
||||
<a class="nav-link" href="<%= $c->url_for( 'show_dashboard_website_settings' ) %>">Settings</a> |
||||
</li> |
||||
<li class="nav-item"> |
||||
<a class="nav-link" href="<%= $c->url_for( 'show_dashboard_website_hooks' ) %>">Hooks</a> |
||||
</li> |
||||
</ul> |
||||
|
||||
%# Job Panel % |
||||
% my $index = 0; |
||||
% foreach my $build ( @{$blog->get_builds} ) { |
||||
% $index++; |
||||
% if ( my $build_job = $c->minion->job( $build->{job_id} ) ) { |
||||
% my $job = $build_job->info; |
||||
|
||||
% if ( $job->{state} eq 'finished' ) { |
||||
<div class="card mt-4"> |
||||
<div class="card-header alert-success"> |
||||
%= include '_svg/checkmark' |
||||
Build <%= $build->{id} %> completed successfully. (Queued: <%= $build->{date} %>) |
||||
<button class="btn" data-bs-toggle="collapse" data-bs-target="#job_window_<%= $job->{id} %>"> |
||||
%= include '_svg/chevron' |
||||
</button> |
||||
</div> |
||||
<div id="job_window_<%= $job->{id} %>" class="card-body <%= $index == 1 ? '' : 'collapse' %>"> |
||||
|
||||
%= include 'dashboard/_website/milestone', milestone => { is_complete => $job->{notes}->{is_deploy_complete}, text => 'Deploy to Webserver' }; |
||||
|
||||
%= include 'dashboard/_website/milestone', milestone => { is_complete => $job->{notes}->{is_build_complete}, text => 'Build Website' }; |
||||
|
||||
%= include 'dashboard/_website/milestone', milestone => { is_complete => $job->{notes}->{is_clone_complete}, text => 'Clone Repo & Check Settings' }; |
||||
|
||||
<hr /> |
||||
|
||||
<button class="btn" data-bs-toggle="collapse" data-bs-target="#job_log_window_<%= $job->{id} %>">View Logs</button> |
||||
|
||||
<div id="job_log_window_<%= $job->{id} %>" class="card-body collapse"> |
||||
<hr /> |
||||
<pre> |
||||
% for my $line ( @{$job->{notes}{logs}} ) { |
||||
<%= "$line\n" =%> |
||||
% } |
||||
</pre> |
||||
</div> |
||||
</div> |
||||
</div> |
||||
% } elsif ( $job->{state} eq 'inactive' ) { |
||||
<div class="card mb-4 alert-warning"> |
||||
<div class="card-header"> |
||||
<div class="spinner-grow spinner-grow-sm" role="status"> |
||||
<span class="visually-hidden">Waiting...</span> |
||||
</div> |
||||
Build <%= $build->{id} %> pending build. (Queued: <%= $build->{date} %>) |
||||
</div> |
||||
</div> |
||||
|
||||
% } elsif ( $job->{state} eq 'failed' ) { |
||||
<div class="card mt-4"> |
||||
<div class="card-header alert-warning"> |
||||
%= include '_svg/failed' |
||||
Build <%= $build->{id} %> failed. (Queued: <%= $build->{date} %>) |
||||
<button class="btn" data-bs-toggle="collapse" data-bs-target="#job_window_<%= $job->{id} %>"> |
||||
%= include '_svg/chevron' |
||||
</button> |
||||
</div> |
||||
<div id="job_window_<%= $job->{id} %>" class="card-body <%= $index == 1 ? '' : 'collapse' %>"> |
||||
|
||||
%= include 'dashboard/_website/milestone', milestone => { is_complete => $job->{notes}->{is_deploy_complete}, text => 'Deploy to Webserver' }; |
||||
|
||||
%= include 'dashboard/_website/milestone', milestone => { is_complete => $job->{notes}->{is_build_complete}, text => 'Build Website' }; |
||||
|
||||
%= include 'dashboard/_website/milestone', milestone => { is_complete => $job->{notes}->{is_clone_complete}, text => 'Clone Repo & Check Settings' }; |
||||
|
||||
<hr /> |
||||
|
||||
% if ( ! ref $job->{result} ) { |
||||
<p class="text-danger"><strong>System Error: <%= $job->{result} %></strong></p> |
||||
% } else { |
||||
<p class="text-danger"><strong>Error: <%= $job->{result}{error} %></strong></p> |
||||
% } |
||||
|
||||
<button class="btn" data-bs-toggle="collapse" data-bs-target="#job_log_window_<%= $job->{id} %>">View Logs</button> |
||||
|
||||
<div id="job_log_window_<%= $job->{id} %>" class="card-body collapse"> |
||||
<hr /> |
||||
<pre> |
||||
% for my $line ( @{$job->{notes}{logs}} ) { |
||||
<%= "$line\n" =%> |
||||
% } |
||||
</pre> |
||||
</div> |
||||
</div> |
||||
</div> |
||||
|
||||
% } elsif ( $job->{state} eq 'active' ) { |
||||
<div class="card mt-4"> |
||||
<div class="card-header alert-warning"> |
||||
<div class="spinner-grow spinner-grow-sm" role="status"> |
||||
<span class="visually-hidden">Building...</span> |
||||
</div> |
||||
|
||||
Building <%= $build->{id} %>... (Queued: <%= $build->{date} %>) |
||||
|
||||
</div> |
||||
<div id="job_window_<%= $job->{id} %>" class="card-body"> |
||||
|
||||
%= include 'dashboard/_website/milestone', milestone => { is_complete => $job->{notes}->{is_deploy_complete}, text => 'Deploy to Webserver' }; |
||||
|
||||
%= include 'dashboard/_website/milestone', milestone => { is_complete => $job->{notes}->{is_build_complete}, text => 'Build Website' }; |
||||
|
||||
%= include 'dashboard/_website/milestone', milestone => { is_complete => $job->{notes}->{is_clone_complete}, text => 'Clone Repo & Check Settings' }; |
||||
|
||||
<hr /> |
||||
|
||||
<div id="job_log_window_<%= $job->{id} %>" class="card-body"> |
||||
<hr /> |
||||
<pre> |
||||
% for my $line ( @{$job->{notes}{logs}} ) { |
||||
<%= "$line\n" =%> |
||||
% } |
||||
</pre> |
||||
</div> |
||||
</div> |
||||
</div> |
||||
|
||||
% } else { |
||||
Job in unknown state: <%= $build->{job_id} %> |
||||
%= $job->{state} |
||||
% } |
||||
% } else { |
||||
Job not found: <%= $build->{job_id} %> |
||||
% } |
||||
% } |
||||
Loading…
Reference in new issue