A hosting service for Jekyll Blogs
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

152 lines
6.6 KiB

% layout 'standard', title => 'Dashboard', sb_active => 'admin';
%# if ( $c->minion->jobs({ states => [ 'inactive', 'active' ], notes => [ '_bid_' . $blog->id ] } )->total >= 1 ) {
%# $c->stash->{http_refresh} = 5;
%# }
%= include 'admin/_nav', page => 'jobs'
%= include '_base/status_window';
% 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 Panel %
% my $index = 0;
% foreach my $build ( $c->db->admin_jobs->all ) {
% $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 job <%= $build->{id} %>/<%= $job->{task} %> 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/_milestone', milestone => { is_complete => $job->{notes}->{is_deploy_complete}, text => 'Deploy to Webserver' };
%= include 'dashboard/_milestone', milestone => { is_complete => $job->{notes}->{is_build_complete}, text => 'Build Website' };
%= include 'dashboard/_milestone', milestone => { is_complete => $job->{notes}->{is_clone_complete}, text => 'Clone Repo & Check Settings' };
<hr />
<button class="btn btn-sm btn-primary" 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 job <%= $build->{id} %>/<%= $job->{task} %>... (Queued: <%= $build->{date} %>)
</div>
<div id="job_window_<%= $job->{id} %>" class="card-body">
%= include 'dashboard/_milestone', milestone => { is_complete => $job->{notes}->{is_deploy_complete}, text => 'Deploy to Webserver' };
%= include 'dashboard/_milestone', milestone => { is_complete => $job->{notes}->{is_build_complete}, text => 'Build Website' };
%= include 'dashboard/_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} %>
% }
% }