diff options
Diffstat (limited to 'modules/local_import')
-rw-r--r-- | modules/local_import/controllers/local_import.php | 18 | ||||
-rw-r--r-- | modules/local_import/js/local_import.js | 14 |
2 files changed, 27 insertions, 5 deletions
diff --git a/modules/local_import/controllers/local_import.php b/modules/local_import/controllers/local_import.php index 138b61b1..2b8248a4 100644 --- a/modules/local_import/controllers/local_import.php +++ b/modules/local_import/controllers/local_import.php @@ -25,7 +25,7 @@ class Local_Import_Controller extends Controller { access::can("local_import", $item); $view = new View("local_import_tree_dialog.html"); - $view->action = url::site("local_import/add/$id"); + $view->action = url::site("local_import/add_photo/$id"); $view->hidden = array("csrf" => access::csrf_token(), "base_url" => url::base(true)); $view->parents = $item->parents(); $view->album_title = $item->title; @@ -55,7 +55,7 @@ class Local_Import_Controller extends Controller { print $tree; } - function add($id) { + function add_photo($id) { access::verify_csrf(); $parent = ORM::factory("item", $id); @@ -65,6 +65,12 @@ class Local_Import_Controller extends Controller { } $path = $this->input->post("path"); + $batch_id = Session::instance()->get("batch_id"); + if (empty($batch_id)) { + $batch_id = mt_rand(); + module::event("start_add_batch", $batch_id); + Session::instance()->set("batch_id", $batch_id); + } $source_path = $path[0]; for ($i = 1; $i < count($path); $i++) { // skip the first path @@ -90,6 +96,14 @@ class Local_Import_Controller extends Controller { } } + public function finish() { + $batch_id = Session::instance()->get_once("batch_id"); + if (!empty($batch_id)) { + module::event("end_add_batch", $batch_id); + } + print json_encode(array("result" => "success")); + } + private function _get_children($path) { $file_list = array(); $files = scandir($path); diff --git a/modules/local_import/js/local_import.js b/modules/local_import/js/local_import.js index 66952d63..0fd37b00 100644 --- a/modules/local_import/js/local_import.js +++ b/modules/local_import/js/local_import.js @@ -45,7 +45,7 @@ function load_children(icon, callback) { var base_url = $("#gLocalImport form :hidden[name='base_url']")[0].value; var parms = "&csrf=" + csrf; var parents = $(icon).parents("li"); - for (i=parents.length - 1; i >= 0; i--) { + for (var i=parents.length - 1; i >= 0; i--) { parms += "&path[]=" + $(parents[i]).children("span").attr("ref"); } $.ajax({async: false, @@ -69,7 +69,15 @@ function do_import(submit, event) { $.each(check_list, function () { process_checkbox(this); }); - document.location.reload(); + var base_url = $("#gLocalImport form :hidden[name='base_url']")[0].value; + $.ajax({async: false, + success: function(data, textStatus) { + document.location.reload(); + }, + dataType: "json", + type: "POST", + url: base_url + "local_import/finish" + }); return false; } @@ -77,7 +85,7 @@ function process_checkbox(checkbox) { var parents = $(checkbox).parents("li"); var csrf = $("#gLocalImport form :hidden[name='csrf']")[0].value; var parms = "&csrf=" + csrf; - for (i=parents.length - 1; i > 0; i--) { + for (var i=parents.length - 1; i > 0; i--) { parms += "&path[]=" + $(parents[i]).children("span").attr("ref"); } parms += "&path[]=" + $(checkbox).val(); |