summaryrefslogtreecommitdiff
path: root/modules/g2_import/helpers/g2_import_task.php
diff options
context:
space:
mode:
Diffstat (limited to 'modules/g2_import/helpers/g2_import_task.php')
-rw-r--r--modules/g2_import/helpers/g2_import_task.php22
1 files changed, 12 insertions, 10 deletions
diff --git a/modules/g2_import/helpers/g2_import_task.php b/modules/g2_import/helpers/g2_import_task.php
index e0212b33..b1179e22 100644
--- a/modules/g2_import/helpers/g2_import_task.php
+++ b/modules/g2_import/helpers/g2_import_task.php
@@ -19,14 +19,19 @@
*/
class g2_import_task_Core {
static function available_tasks() {
+ $version = '';
g2_import::lower_error_reporting();
if (g2_import::is_configured()) {
g2_import::init();
+ // Guard from common case where the import has been
+ // completed and the original files have been removed.
+ if (class_exists("GalleryCoreApi")) {
+ $version = g2_import::version();
+ }
}
- $version = g2_import::version();
g2_import::restore_error_reporting();
- if (class_exists("GalleryCoreApi")) {
+ if (g2_import::is_initialized()) {
return array(Task_Definition::factory()
->callback("g2_import_task::import")
->name(t("Import from Gallery 2"))
@@ -68,13 +73,8 @@ class g2_import_task_Core {
}
$task->set("done", $done);
- $root_g2_id = g2(GalleryCoreApi::getDefaultAlbumId());
- $root = ORM::factory("g2_map")->where("g2_id", "=", $root_g2_id)->find();
- if (!$root->loaded()) {
- $root->g2_id = $root_g2_id;
- $root->g3_id = 1;
- $root->save();
- }
+ // Ensure G2 ACLs are compacted to speed up import.
+ g2(GalleryCoreApi::compactAccessLists());
}
$modes = array("groups", "users", "albums", "items", "comments", "tags", "highlights", "done");
@@ -123,7 +123,9 @@ class g2_import_task_Core {
case "albums":
if (empty($queue)) {
- $task->set("queue", $queue = g2(GalleryCoreApi::fetchAlbumTree()));
+ $g2_root_id = g2(GalleryCoreApi::getDefaultAlbumId());
+ $tree = g2(GalleryCoreApi::fetchAlbumTree());
+ $task->set("queue", $queue = array($g2_root_id => $tree));
}
$log_message = g2_import::import_album($queue);
if ($log_message) {