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 b688297..3e89ecc 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 3cd0da2..1992210 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 b567d36..10e319b 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;