diff options
-rw-r--r-- | modules/organize/controllers/organize.php | 2 | ||||
-rw-r--r-- | modules/organize/helpers/organize_task.php | 13 | ||||
-rw-r--r-- | modules/organize/js/organize.js | 21 |
3 files changed, 24 insertions, 12 deletions
diff --git a/modules/organize/controllers/organize.php b/modules/organize/controllers/organize.php index a46b3a02..c4a9665d 100644 --- a/modules/organize/controllers/organize.php +++ b/modules/organize/controllers/organize.php @@ -123,7 +123,7 @@ class Organize_Controller extends Controller { "task" => array("id" => $task->id, "percent_complete" => $task->percent_complete, "type" => $task->get("type"), - "reload" => $task->get("refresh"), + "post_process" => $task->get("post_process"), "status" => $task->status, "state" => $task->state, "done" => $task->done))); diff --git a/modules/organize/helpers/organize_task.php b/modules/organize/helpers/organize_task.php index 1344796a..e66795b8 100644 --- a/modules/organize/helpers/organize_task.php +++ b/modules/organize/helpers/organize_task.php @@ -31,7 +31,7 @@ class organize_task_Core { $target = ORM::factory("item", $context["target"]); $total = count($context["items"]); $stop = min($total - $context["position"], $context["batch"]); - $context["refresh"] = null; + $context["post_process"] = array(); for ($offset = 0; $offset < $stop; $offset++) { $current_id = $context["position"] + $offset; $id = $context["items"][$current_id]; @@ -48,9 +48,15 @@ class organize_task_Core { case "rotateCw": $item = ORM::factory("item", $id); if ($item->is_photo()) { - $context["refresh"] = self:: _do_rotation($item, $taskType == "rotateCcw" ? -90 : 90); + $context["post_process"]["reload"][] = + self:: _do_rotation($item, $taskType == "rotateCcw" ? -90 : 90); } break; + case "delete": + $item = ORM::factory("item", $id); + $item->delete(); + $context["post_process"]["remove"][] = array("id" => $id); + break; default: throw new Exception("Task '$taskType' is not implmented"); } @@ -91,8 +97,7 @@ class organize_task_Core { $margin_top = (90 - $height) / 20; return array("src" => $item->thumb_url() . "?rnd=" . rand(), - "id" => $item->id, "marginTop" => "{$margin_top}em", - "width" => $width, "height" => $height); + "id" => $item->id, "marginTop" => "{$margin_top}em", "width" => $width, "height" => $height); } }
\ No newline at end of file diff --git a/modules/organize/js/organize.js b/modules/organize/js/organize.js index e11c32c4..f40f14e8 100644 --- a/modules/organize/js/organize.js +++ b/modules/organize/js/organize.js @@ -248,13 +248,20 @@ var operationCallback = function (data, textStatus) { success: function(data, textStatus) { $(".gProgressBar").progressbar("value", data.task.percent_complete); done = data.task.done; - if (data.task.reload) { - var selector = "#gMicroThumb-" + data.task.reload.id + " img"; - $(selector).attr("height", data.task.reload.height); - $(selector).attr("width", data.task.reload.width); - $(selector).attr("src", data.task.reload.src); - $(selector).css("margin-top", data.task.reload.marginTop); - } + if (data.task.post_process.reload) { + $.each(data.task.post_process.reload, function() { + var selector = "#gMicroThumb-" + this.id + " img"; + $(selector).attr("height", this.height); + $(selector).attr("width", this.width); + $(selector).attr("src", this.src); + $(selector).css("margin-top", this.marginTop); + }); + } + if (data.task.post_process.remove) { + $.each(data.task.post_process.remove, function() { + $("#thumb_" + this.id).remove(); + }); + } }, error: function(XMLHttpRequest, textStatus, errorThrown) { paused = true; |