diff --git a/Web/lib/MJB/Web.pm b/Web/lib/MJB/Web.pm index 50a7b78..9bbf9b1 100644 --- a/Web/lib/MJB/Web.pm +++ b/Web/lib/MJB/Web.pm @@ -223,6 +223,9 @@ sub startup ($self) { $admin->get ( '/admin/invites' )->to('Admin#invites' )->name('show_admin_invites' ); $admin->post( '/admin/invite' )->to('Admin#do_invite' )->name('do_admin_invite' ); $admin->post( '/admin/invite/remove' )->to('Admin#do_invite_remove' )->name('do_admin_invite_remove' ); + $admin->get ( '/admin/alerts' )->to('Admin#alerts' )->name('show_admin_alerts' ); + $admin->post( '/admin/alert/:id' )->to('Admin#do_alert_read' )->name('do_admin_alert_read' ); + $admin->get ( '/admin/jobs' )->to('Admin#jobs' )->name('show_admin_jobs' ); } diff --git a/Web/templates/admin/_nav.html.ep b/Web/templates/admin/_nav.html.ep index 94f7b98..cf9df54 100644 --- a/Web/templates/admin/_nav.html.ep +++ b/Web/templates/admin/_nav.html.ep @@ -30,6 +30,12 @@
+ + diff --git a/Web/templates/admin/alerts.html.ep b/Web/templates/admin/alerts.html.ep new file mode 100644 index 0000000..cd02772 --- /dev/null +++ b/Web/templates/admin/alerts.html.ep @@ -0,0 +1,13 @@ +% layout 'standard', title => 'Dashboard', sb_active => 'admin'; + +%= include 'admin/_nav', page => 'alerts' + +%= include '_base/status_window'; + +% for my $alert ( $c->db->system_notes( { is_read => 0 } )->all ) { + +% } + diff --git a/Web/templates/admin/jobs.html.ep b/Web/templates/admin/jobs.html.ep new file mode 100644 index 0000000..4e5c668 --- /dev/null +++ b/Web/templates/admin/jobs.html.ep @@ -0,0 +1,152 @@ +% 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} ) { + +% } + +% if ( $c->stash->{errors} ) { + +% } + +%# 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' ) { +
+
+ %= include '_svg/checkmark' + Build job <%= $build->{id} %>/<%= $job->{task} %> completed successfully. (Queued: <%= $build->{date} %>) + +
+
+ + %= 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' }; + +
+ + + +
+
+
+                            % for my $line ( @{$job->{notes}{logs}} ) {
+                                <%= "$line\n" =%>
+                            % }
+                        
+
+
+
+ % } elsif ( $job->{state} eq 'inactive' ) { +
+
+
+ Waiting... +
+ Build <%= $build->{id} %> pending build. (Queued: <%= $build->{date} %>) +
+
+ + % } elsif ( $job->{state} eq 'failed' ) { +
+
+ %= include '_svg/failed' + Build <%= $build->{id} %> failed. (Queued: <%= $build->{date} %>) + +
+
+ + %= 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' }; + +
+ + % if ( ! ref $job->{result} ) { +

System Error: <%= $job->{result} %>

+ % } else { +

Error: <%= $job->{result}{error} %>

+ % } + + + +
+
+
+                            % for my $line ( @{$job->{notes}{logs}} ) {
+                                <%= "$line\n" =%>
+                            % }
+                        
+
+
+
+ + % } elsif ( $job->{state} eq 'active' ) { +
+
+
+ Building... +
+ + Building job <%= $build->{id} %>/<%= $job->{task} %>... (Queued: <%= $build->{date} %>) + +
+
+ + %= 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' }; + +
+ +
+
+
+                            % for my $line ( @{$job->{notes}{logs}} ) {
+                                <%= "$line\n" =%>
+                            % }
+                        
+
+
+
+ + % } else { + Job in unknown state: <%= $build->{job_id} %> + %= $job->{state} + % } + % } else { + Job not found: <%= $build->{job_id} %> + % } +% }