Listenansicht in BackgroundJobHistory-Controller sortierbar gemacht
[kivitendo-erp.git] / SL / Controller / BackgroundJobHistory.pm
1 package SL::Controller::BackgroundJobHistory;
2
3 use strict;
4
5 use parent qw(SL::Controller::Base);
6
7 use SL::Controller::Helper::GetModels;
8 use SL::Controller::Helper::Sorted;
9 use SL::DB::BackgroundJobHistory;
10 use SL::Helper::Flash;
11 use SL::System::TaskServer;
12
13 use Rose::Object::MakeMethods::Generic
14 (
15   scalar                  => [ qw(history) ],
16   'scalar --get_set_init' => [ qw(task_server) ],
17 );
18
19 __PACKAGE__->run_before('check_auth');
20 __PACKAGE__->run_before('add_stylesheet');
21 __PACKAGE__->run_before('check_task_server');
22
23 __PACKAGE__->make_sorted(
24   DEFAULT_BY   => 'run_at',
25   DEFAULT_DIR  => 1,
26   MODEL        => 'BackgroundJobHistory',
27   FORM_PARAMS  => [ qw(sort_by sort_dir) ],
28   ONLY         => [ qw(list) ],
29
30   package_name => $::locale->text('Package name'),
31   run_at       => $::locale->text('Run at'),
32   status       => $::locale->text('Execution status'),
33   result       => $::locale->text('Result'),
34   error        => $::locale->text('Error'),
35 );
36
37 #
38 # actions
39 #
40
41 sub action_list {
42   my ($self) = @_;
43
44   $self->render('background_job_history/list',
45                 title   => $::locale->text('Background job history'),
46                 ENTRIES => $self->get_models);
47 }
48
49 sub action_show {
50   my ($self) = @_;
51
52   my $back_to = $::form->{back_to} || $self->url_for(action => 'list');
53
54   $self->history(SL::DB::BackgroundJobHistory->new(id => $::form->{id})->load);
55   $self->render('background_job_history/show',
56                 title   => $::locale->text('View background job execution result'),
57                 back_to => $back_to);
58 }
59
60 #
61 # filters
62 #
63
64 sub check_auth {
65   $::auth->assert('admin');
66 }
67
68 #
69 # helpers
70 #
71
72 sub init_task_server {
73   return SL::System::TaskServer->new;
74 }
75
76 sub check_task_server {
77   my ($self) = @_;
78   flash('warning', $::locale->text('The task server does not appear to be running.')) if !$self->task_server->is_running;
79 }
80
81 sub add_stylesheet {
82   $::form->use_stylesheet('lx-office-erp/background_jobs.css');
83 }
84
85 1;