diff options
Diffstat (limited to 'modules/organize')
| -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; | 
