X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=SL%2FController%2FBackgroundJob.pm;h=7e16a1772a2753168d70cab732c308042e9fe04e;hb=5a392100ac0460c91f1d231530621fb02878b552;hp=37f2d97558b8c67edbdf6571592e60840590db14;hpb=8101dcde0ec5f33721092c1cb541722f2a9d4c38;p=kivitendo-erp.git diff --git a/SL/Controller/BackgroundJob.pm b/SL/Controller/BackgroundJob.pm index 37f2d9755..7e16a1772 100644 --- a/SL/Controller/BackgroundJob.pm +++ b/SL/Controller/BackgroundJob.pm @@ -13,13 +13,11 @@ use SL::System::TaskServer; use Rose::Object::MakeMethods::Generic ( - scalar => [ qw(background_job) ], - 'scalar --get_set_init' => [ qw(task_server back_to models) ], + 'scalar --get_set_init' => [ qw(task_server back_to models background_job) ], ); __PACKAGE__->run_before('check_auth'); __PACKAGE__->run_before('check_task_server'); -__PACKAGE__->run_before('load_background_job', only => [ qw(edit update destroy execute show) ]); # # actions @@ -38,7 +36,7 @@ sub action_list { sub action_new { my ($self) = @_; - $self->background_job(SL::DB::BackgroundJob->new(cron_spec => '* * * * *', package_name => 'Test')); + $self->background_job(SL::DB::BackgroundJob->new(cron_spec => '* * * * *', package_name => 'Test')) unless $self->background_job; $self->setup_form_action_bar; $self->render('background_job/form', title => $::locale->text('Create a new background job'), @@ -54,6 +52,14 @@ sub action_edit { JOB_CLASSES => [ SL::BackgroundJob::Base->get_known_job_classes ]); } +sub action_edit_as_new { + my ($self) = @_; + + delete $::form->{background_job}->{id}; + $self->background_job(SL::DB::BackgroundJob->new(%{ $::form->{background_job} })); + $self->action_new; +} + sub action_show { my ($self) = @_; @@ -149,9 +155,8 @@ sub create_or_update { $self->redirect_to($self->back_to); } -sub load_background_job { - my ($self) = @_; - $self->background_job(SL::DB::BackgroundJob->new(id => $::form->{id})->load); +sub init_background_job { + return $::form->{id} ? SL::DB::BackgroundJob->new(id => $::form->{id})->load : undef; } sub init_task_server { @@ -225,6 +230,11 @@ sub setup_form_action_bar { t8('Save and execute'), submit => [ '#form', { action => 'BackgroundJob/save_and_execute' } ], ], + action => [ + t8('Use as new'), + submit => [ '#form', { action => 'BackgroundJob/edit_as_new' } ], + disabled => $is_new ? t8('The object has not been saved yet.') : undef, + ], ], # end of combobox "Save" action => [