summaryrefslogtreecommitdiffstats
path: root/apis
diff options
context:
space:
mode:
authorSimon Rettberg2014-12-02 19:22:48 +0100
committerSimon Rettberg2014-12-02 19:22:48 +0100
commitba2a49e9875eda489385e370bb9f2259779caa7b (patch)
tree2654d7b4a6bf99d584e146f7708c75a5b8beaeac /apis
parentFix wrong event type when displaying event log (diff)
downloadslx-admin-ba2a49e9875eda489385e370bb9f2259779caa7b.tar.gz
slx-admin-ba2a49e9875eda489385e370bb9f2259779caa7b.tar.xz
slx-admin-ba2a49e9875eda489385e370bb9f2259779caa7b.zip
Tweaks and fixes
Diffstat (limited to 'apis')
-rw-r--r--apis/taskmanager.inc.php14
1 files changed, 13 insertions, 1 deletions
diff --git a/apis/taskmanager.inc.php b/apis/taskmanager.inc.php
index 8365aac7..102352d2 100644
--- a/apis/taskmanager.inc.php
+++ b/apis/taskmanager.inc.php
@@ -7,15 +7,27 @@ if (!is_array($_POST['ids'])) {
die('{"error" : "No Task ids given in POST data."}');
}
+$callbacks = false;
+
$return = array();
foreach ($_POST['ids'] as $id) {
+ // Get task status
$status = Taskmanager::status($id);
if ($status === false) {
$return[] = array('id' => $id, 'error' => 'No connection to TaskManager');
continue;
}
$return[] = $status;
- if (!isset($status['statusCode']) || ($status['statusCode'] !== TASK_WAITING && $status['statusCode'] !== TASK_PROCESSING)) {
+ // Handle callbacks (if any)
+ if ($callbacks === false)
+ $callbacks = TaskmanagerCallback::getPendingCallbacks();
+ if (isset($callbacks[$id])) {
+ foreach ($callbacks[$id] as $callback) {
+ TaskmanagerCallback::handleCallback($callback, $status);
+ }
+ }
+ // Release task if done
+ if (Taskmanager::isFailed($status) || Taskmanager::isFinished($status)) {
Taskmanager::release($id);
}
}