From 1a6b352052d17eff5027ff20fe4f204f08893ec3 Mon Sep 17 00:00:00 2001 From: Nik Okuntseff Date: Sat, 24 Nov 2018 16:35:52 +0000 Subject: [PATCH] Refactored import by recycling all maps in the group element handler. --- WEB-INF/lib/ttOrgImportHelper.class.php | 91 ++++--------------------- WEB-INF/templates/footer.tpl | 2 +- 2 files changed, 13 insertions(+), 80 deletions(-) diff --git a/WEB-INF/lib/ttOrgImportHelper.class.php b/WEB-INF/lib/ttOrgImportHelper.class.php index 1bfa07c7..ec5593c2 100644 --- a/WEB-INF/lib/ttOrgImportHelper.class.php +++ b/WEB-INF/lib/ttOrgImportHelper.class.php @@ -137,14 +137,19 @@ class ttOrgImportHelper { } // Add self to parent stack. array_push($this->parents, $this->current_group_id); - return; - } - if ($name == 'ROLES') { - // If we get here, we have to recycle $currentGroupRoleMap. - unset($this->currentGroupRoleMap); - $this->currentGroupRoleMap = array(); - // Role map is reconstructed after processing elements in XML. See below. + // Recycle all maps as we are starting to work on new group. + // Note that for this to work properly all nested groups must be last entries in xml for each group. + unset($this->currentGroupRoleMap); $this->currentGroupRoleMap = array(); + unset($this->currentGroupTaskMap); $this->currentGroupTaskMap = array(); + unset($this->currentGroupProjectMap); $this->currentGroupProjectMap = array(); + unset($this->currentGroupClientMap); $this->currentGroupClientMap = array(); + unset($this->currentGroupUserMap); $this->currentGroupUserMap = array(); + unset($this->currentGroupInvoiceMap); $this->currentGroupInvoiceMap = array(); + unset($this->currentGroupLogMap); $this->currentGroupLogMap = array(); + unset($this->currentGroupCustomFieldMap); $this->currentGroupCustomFieldMap = array(); + unset($this->currentGroupCustomFieldOptionMap); $this->currentGroupCustomFieldOptionMap = array(); + unset($this->currentGroupFavReportMap); $this->currentGroupCustomFavReportMap = array(); return; } @@ -165,14 +170,6 @@ class ttOrgImportHelper { return; } - if ($name == 'TASKS') { - // If we get here, we have to recycle $currentGroupTaskMap. - unset($this->currentGroupTaskMap); - $this->currentGroupTaskMap = array(); - // Task map is reconstructed after processing elements in XML. See below. - return; - } - if ($name == 'TASK') { // We get here when processing tags for the current group. $task_id = ttTaskHelper::insert(array( @@ -188,14 +185,6 @@ class ttOrgImportHelper { return; } - if ($name == 'PROJECTS') { - // If we get here, we have to recycle $currentGroupProjectMap. - unset($this->currentGroupProjectMap); - $this->currentGroupProjectMap = array(); - // Project map is reconstructed after processing elements in XML. See below. - return; - } - if ($name == 'PROJECT') { // We get here when processing tags for the current group. @@ -220,14 +209,6 @@ class ttOrgImportHelper { return; } - if ($name == 'CLIENTS') { - // If we get here, we have to recycle $currentGroupClientMap. - unset($this->currentGroupClientMap); - $this->currentGroupClientMap = array(); - // Client map is reconstructed after processing elements in XML. See below. - return; - } - if ($name == 'CLIENT') { // We get here when processing tags for the current group. @@ -253,14 +234,6 @@ class ttOrgImportHelper { return; } - if ($name == 'USERS') { - // If we get here, we have to recycle $currentGroupUserMap. - unset($this->currentGroupUserMap); - $this->currentGroupUserMap = array(); - // User map is reconstructed after processing elements in XML. See below. - return; - } - if ($name == 'USER') { // We get here when processing tags for the current group. @@ -297,14 +270,6 @@ class ttOrgImportHelper { return; } - if ($name == 'INVOICES') { - // If we get here, we have to recycle $currentGroupInvoiceMap. - unset($this->currentGroupInvoiceMap); - $this->currentGroupInvoiceMap = array(); - // Invoice map is reconstructed after processing elements in XML. See below. - return; - } - if ($name == 'INVOICE') { // We get here when processing tags for the current group. $invoice_id = ttInvoiceHelper::insert(array( @@ -321,14 +286,6 @@ class ttOrgImportHelper { return; } - if ($name == 'LOG') { - // If we get here, we have to recycle $currentGroupLogMap. - unset($this->currentGroupLogMap); - $this->currentGroupLogMap = array(); - // Log map is reconstructed after processing elements in XML. See below. - return; - } - if ($name == 'LOG_ITEM') { // We get here when processing tags for the current group. $log_item_id = $this->insertLogEntry(array( @@ -354,14 +311,6 @@ class ttOrgImportHelper { return; } - if ($name == 'CUSTOM_FIELDS') { - // If we get here, we have to recycle $currentGroupCustomFieldMap. - unset($this->currentGroupCustomFieldMap); - $this->currentGroupCustomFieldMap = array(); - // Custom field map is reconstructed after processing elements in XML. See below. - return; - } - if ($name == 'CUSTOM_FIELD') { // We get here when processing tags for the current group. $custom_field_id = $this->insertCustomField(array( @@ -378,14 +327,6 @@ class ttOrgImportHelper { return; } - if ($name == 'CUSTOM_FIELD_OPTIONS') { - // If we get here, we have to recycle $currentGroupCustomFieldOptionMap. - unset($this->currentGroupCustomFieldOptionMap); - $this->currentGroupCustomFieldOptionMap = array(); - // Custom field option map is reconstructed after processing elements in XML. See below. - return; - } - if ($name == 'CUSTOM_FIELD_OPTION') { // We get here when processing tags for the current group. $custom_field_option_id = $this->insertCustomFieldOption(array( @@ -456,14 +397,6 @@ class ttOrgImportHelper { return; } - if ($name == 'FAV_REPORTS') { - // If we get here, we have to recycle $currentGroupFavReportMap. - unset($this->currentGroupFavReportMap); - $this->currentGroupFavReportMap = array(); - // Favorite report map is reconstructed after processing elements in XML. See below. - return; - } - if ($name == 'FAV_REPORT') { $user_list = ''; if (strlen($attrs['USERS']) > 0) { diff --git a/WEB-INF/templates/footer.tpl b/WEB-INF/templates/footer.tpl index 25340ba9..c4db5512 100644 --- a/WEB-INF/templates/footer.tpl +++ b/WEB-INF/templates/footer.tpl @@ -12,7 +12,7 @@
-
 Anuko Time Tracker 1.18.28.4509 | Copyright © Anuko | +  Anuko Time Tracker 1.18.28.4510 | Copyright © Anuko | {$i18n.footer.credits} | {$i18n.footer.license} | {$i18n.footer.improve} -- 2.20.1