From 8d79e78a49803d07856cd68ab733157dfed6f793 Mon Sep 17 00:00:00 2001 From: Nik Okuntseff Date: Sat, 17 Mar 2018 18:59:50 +0000 Subject: [PATCH] Fixed team export to include revamped roles. --- WEB-INF/lib/ttExportHelper.class.php | 58 ++++++++++++++++++++-------- WEB-INF/lib/ttImportHelper.class.php | 2 +- WEB-INF/templates/footer.tpl | 2 +- 3 files changed, 43 insertions(+), 19 deletions(-) diff --git a/WEB-INF/lib/ttExportHelper.class.php b/WEB-INF/lib/ttExportHelper.class.php index ef13e2ee..0c8084e2 100644 --- a/WEB-INF/lib/ttExportHelper.class.php +++ b/WEB-INF/lib/ttExportHelper.class.php @@ -36,6 +36,7 @@ class ttExportHelper { // The following arrays are maps between entity ids in the file versus the database. // We write to the file sequentially (1,2,3...) while in the database the entities have different ids. var $userMap = array(); // User ids. + var $roleMap = array(); // Role ids. var $projectMap = array(); // Project ids. var $taskMap = array(); // Task ids. var $clientMap = array(); // Client ids. @@ -71,8 +72,13 @@ class ttExportHelper { fwrite($file, " team."]]>\n"); fwrite($file, "\n"); + // Prepare role map. + $roles = ttTeamHelper::getAllRoles($user->team_id); + foreach ($roles as $key=>$role_item) + $this->roleMap[$role_item['id']] = $key + 1; + // Prepare user map. - $users = ttTeamHelper::getAllUsers($user->team_id, true); + $users = ttExportHelper::getAllUsers(); foreach ($users as $key=>$user_item) $this->userMap[$user_item['id']] = $key + 1; @@ -106,10 +112,22 @@ class ttExportHelper { foreach ($custom_field_options as $key=>$option) $this->customFieldOptionMap[$option['id']] = $key + 1; + // Write roles. + fwrite($file, "\n"); + $roles = ttTeamHelper::getAllRoles($user->team_id); + foreach ($roles as $role) { + fwrite($file, " roleMap[$role['id']]."\" rank=\"".$role['rank']."\"". + " rights=\"".$role['rights']."\">\n"); + fwrite($file, " \n"); + fwrite($file, " \n"); + } + fwrite($file, "\n"); + unset($roles); + // Write users. fwrite($file, "\n"); foreach ($users as $user_item) { - fwrite($file, " userMap[$user_item['id']]."\" login=\"".htmlentities($user_item['login'])."\" password=\"".$user_item['password']."\" role=\"".$user_item['role']."\" client_id=\"".$this->clientMap[$user_item['client_id']]."\" rate=\"".$user_item['rate']."\" email=\"".$user_item['email']."\" status=\"".$user_item['status']."\">\n"); + fwrite($file, " userMap[$user_item['id']]."\" login=\"".htmlentities($user_item['login'])."\" password=\"".$user_item['password']."\" role_id=\"".$this->roleMap[$user_item['role_id']]."\" client_id=\"".$this->clientMap[$user_item['client_id']]."\" rate=\"".$user_item['rate']."\" email=\"".$user_item['email']."\" status=\"".$user_item['status']."\">\n"); fwrite($file, " \n"); fwrite($file, " \n"); } @@ -261,7 +279,7 @@ class ttExportHelper { $user_list .= (strlen($user_list) == 0? '' : ',').$this->userMap[$v]; } } - fwrite($file, "\tuserMap[$fav_report['user_id']]."\"". + fwrite($file, " userMap[$fav_report['user_id']]."\"". " client_id=\"".$this->clientMap[$fav_report['client_id']]."\"". " cf_1_option_id=\"".$this->customFieldOptionMap[$fav_report['cf_1_option_id']]."\"". " project_id=\"".$this->projectMap[$fav_report['project_id']]."\"". @@ -283,26 +301,15 @@ class ttExportHelper { " show_custom_field_1=\"".$fav_report['show_custom_field_1']."\"". " group_by=\"".$fav_report['group_by']."\"". " show_totals_only=\"".$fav_report['show_totals_only']."\">\n"); - fwrite($file, "\t\t\n"); - fwrite($file, "\t\n"); + fwrite($file, " \n"); + fwrite($file, " \n"); } fwrite($file, "\n"); unset($fav_reports); - // Write roles. - fwrite($file, "\n"); - $roles = ttTeamHelper::getAllRoles($user->team_id); - foreach ($roles as $role) { - fwrite($file, "\t\n"); - fwrite($file, "\t\t\n"); - fwrite($file, "\t\n"); - } - fwrite($file, "\n"); - unset($roles); - // Cleanup. unset($users); + $this->roleMap = array(); $this->userMap = array(); $this->projectMap = array(); $this->taskMap = array(); @@ -348,4 +355,21 @@ class ttExportHelper { fclose ($in_file); return true; } + + // The getAllUsers obtains all users in team. + static function getAllUsers() { + global $user; + $mdb2 = getConnection(); + + $sql = "select * from tt_users where team_id = $user->team_id order by upper(name)"; // Note: deleted users are included. + $res = $mdb2->query($sql); + $result = array(); + if (!is_a($res, 'PEAR_Error')) { + while ($val = $res->fetchRow()) { + $result[] = $val; + } + return $result; + } + return false; + } } diff --git a/WEB-INF/lib/ttImportHelper.class.php b/WEB-INF/lib/ttImportHelper.class.php index 9ce34ff7..5bc7d77a 100644 --- a/WEB-INF/lib/ttImportHelper.class.php +++ b/WEB-INF/lib/ttImportHelper.class.php @@ -52,8 +52,8 @@ class ttImportHelper { // The following arrays are maps between entity ids in the file versus the database. // In the file they are sequential (1,2,3...) while in the database the entities have different ids. - var $userMap = array(); // User ids. var $roleMap = array(); // Role ids. + var $userMap = array(); // User ids. var $projectMap = array(); // Project ids. var $taskMap = array(); // Task ids. var $clientMap = array(); // Client ids. diff --git a/WEB-INF/templates/footer.tpl b/WEB-INF/templates/footer.tpl index ce0ad4c4..f1d31481 100644 --- a/WEB-INF/templates/footer.tpl +++ b/WEB-INF/templates/footer.tpl @@ -12,7 +12,7 @@
-
 Anuko Time Tracker 1.17.51.4092 | Copyright © Anuko | +  Anuko Time Tracker 1.17.51.4093 | Copyright © Anuko | {$i18n.footer.credits} | {$i18n.footer.license} | {$i18n.footer.improve} -- 2.20.1