]> wagnertech.de Git - kivitendo-erp.git/commitdiff
BackgroundJobs optional als json ausliefern
authorSven Schöling <s.schoeling@linet-services.de>
Mon, 30 Mar 2015 09:32:55 +0000 (11:32 +0200)
committerSven Schöling <s.schoeling@linet-services.de>
Mon, 30 Mar 2015 09:32:55 +0000 (11:32 +0200)
SL/Controller/BackgroundJob.pm
SL/Controller/CsvImport.pm
SL/DB/BackgroundJob.pm

index b688297971b088d392a8f0fb332c09bb545d4c5f..3e89ecc02ec395130e618108666215d4993932fb 100644 (file)
@@ -19,7 +19,7 @@ use Rose::Object::MakeMethods::Generic
 
 __PACKAGE__->run_before('check_auth');
 __PACKAGE__->run_before('check_task_server');
-__PACKAGE__->run_before('load_background_job', only => [ qw(edit update destroy execute) ]);
+__PACKAGE__->run_before('load_background_job', only => [ qw(edit update destroy execute show) ]);
 
 #
 # actions
@@ -51,6 +51,16 @@ sub action_edit {
                 JOB_CLASSES => [ SL::BackgroundJob::Base->get_known_job_classes ]);
 }
 
+sub action_show {
+  my ($self) = @_;
+
+  if ($::request->type eq 'json') {
+    $self->render(\ SL::JSON::to_json($self->background_job->as_tree), { type => 'json' });
+  } else {
+    $self->action_edit;
+  }
+}
+
 sub action_create {
   my ($self) = @_;
 
index 3cd0da24f741e9c54852cef3f3ce07c4e6ba9951..19922109fc487b8e4fe76ac5460a841f84cf427a 100644 (file)
@@ -17,6 +17,7 @@ use SL::Controller::CsvImport::Inventory;
 use SL::Controller::CsvImport::Shipto;
 use SL::Controller::CsvImport::Project;
 use SL::Controller::CsvImport::Order;
+use SL::JSON;
 use SL::BackgroundJob::CsvImport;
 use SL::System::TaskServer;
 
@@ -318,7 +319,11 @@ sub test_and_import_deferred {
 
   $self->{deferred} = 1;
 
-  $self->render_inputs;
+  if ($::request->type eq 'json') {
+    $self->render(\ SL::JSON::to_json($self->{background_job}->as_tree), { type => 'json' })
+  } else {
+    $self->render_inputs;
+  }
 }
 
 sub test_and_import {
index b567d364e8bcdaf4c8e7c7dc993288c235e78566..10e319ba396de6ef8cd7a38c3b28e8f41e5e3250 100644 (file)
@@ -5,6 +5,8 @@ use strict;
 use DateTime::Event::Cron;
 use English qw(-no_match_vars);
 
+use Rose::DB::Object::Helpers qw(as_tree);
+
 use SL::DB::MetaSetup::BackgroundJob;
 use SL::DB::Manager::BackgroundJob;