summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--modules/organize/controllers/organize.php2
-rw-r--r--modules/organize/helpers/organize_task.php13
-rw-r--r--modules/organize/js/organize.js21
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;