X-Git-Url: http://wagnertech.de/git?a=blobdiff_plain;f=WEB-INF%2Flib%2FttGroupExportHelper.class.php;h=9490f075743065158caf124e4993c274c6bc7600;hb=b9450dc964f5b244713dc5c799a81a660269f22b;hp=cf64cede780ef01fe6912c058a1a6c239e999ac4;hpb=e8612865ad9644fad85cd0d6fef32ea07c8acdf9;p=timetracker.git diff --git a/WEB-INF/lib/ttGroupExportHelper.class.php b/WEB-INF/lib/ttGroupExportHelper.class.php index cf64cede..9490f075 100644 --- a/WEB-INF/lib/ttGroupExportHelper.class.php +++ b/WEB-INF/lib/ttGroupExportHelper.class.php @@ -28,9 +28,6 @@ // ttGroupExportHelper - this class is used to write data for a single group // to a file. When group contains other groups, it reuses itself recursively. -// -// Currently, it is work in progress. -// When done, it should handle export of organizations containing multiple groups. class ttGroupExportHelper { var $group_id = null; // Group we are exporting. @@ -71,8 +68,8 @@ class ttGroupExportHelper { } } - // getGroupData obtains group attributes for export. - function getGroupData() { + // getGroupAttrs obtains group attributes for export. + private function getGroupAttrs() { global $user; $mdb2 = getConnection(); @@ -86,10 +83,9 @@ class ttGroupExportHelper { } // The getUsers obtains all users in group for the purpose of export. - function getUsers() { + private function getUsers() { global $user; $mdb2 = getConnection(); - $sql = "select u.*, r.rank from tt_users u left join tt_roles r on (u.role_id = r.id)". " where u.group_id = $this->group_id and u.org_id = $user->org_id order by upper(u.name)"; // Note: deleted users are included. $res = $mdb2->query($sql); @@ -103,124 +99,13 @@ class ttGroupExportHelper { return false; } - // TODO: write a generic (private?) get function for exclusive use in this class, that obtains - // all fields from a given table. - - // getRoles - obtains all roles defined for group. - function getRoles() { - global $user; - $mdb2 = getConnection(); - - $result = array(); - $sql = "select * from tt_roles where group_id = $this->group_id and org_id = $user->org_id"; - $res = $mdb2->query($sql); - $result = array(); - if (!is_a($res, 'PEAR_Error')) { - while ($val = $res->fetchRow()) { - $result[] = $val; - } - return $result; - } - return false; - } - - // getTasks - obtains all tasks defined for group. - function getTasks() { - global $user; - $mdb2 = getConnection(); - - $result = array(); - $sql = "select * from tt_tasks where group_id = $this->group_id and org_id = $user->org_id"; - $res = $mdb2->query($sql); - $result = array(); - if (!is_a($res, 'PEAR_Error')) { - while ($val = $res->fetchRow()) { - $result[] = $val; - } - return $result; - } - return false; - } - - // getProjects - obtains all projects defined for group. - function getProjects() { - global $user; - $mdb2 = getConnection(); - - $result = array(); - $sql = "select * from tt_projects where group_id = $this->group_id and org_id = $user->org_id"; - $res = $mdb2->query($sql); - $result = array(); - if (!is_a($res, 'PEAR_Error')) { - while ($val = $res->fetchRow()) { - $result[] = $val; - } - return $result; - } - return false; - } - - // getClients - obtains all clients defined for group. - function getClients() { + // getRecordsFromTable - obtains all fields from a given table for a group. + function getRecordsFromTable($table_name) { global $user; $mdb2 = getConnection(); $result = array(); - $sql = "select * from tt_clients where group_id = $this->group_id and org_id = $user->org_id"; - $res = $mdb2->query($sql); - $result = array(); - if (!is_a($res, 'PEAR_Error')) { - while ($val = $res->fetchRow()) { - $result[] = $val; - } - return $result; - } - return false; - } - - // getFavReports - obtains all favorite reports defined for group. - function getFavReports() { - global $user; - $mdb2 = getConnection(); - - $result = array(); - $sql = "select * from tt_fav_reports where group_id = $this->group_id and org_id = $user->org_id"; - $res = $mdb2->query($sql); - $result = array(); - if (!is_a($res, 'PEAR_Error')) { - while ($val = $res->fetchRow()) { - $result[] = $val; - } - return $result; - } - return false; - } - - // getPredefinedExpenses - obtains all predefined expenses for group. - function getPredefinedExpenses() { - global $user; - $mdb2 = getConnection(); - - $result = array(); - $sql = "select * from tt_predefined_expenses where group_id = $this->group_id and org_id = $user->org_id"; - $res = $mdb2->query($sql); - $result = array(); - if (!is_a($res, 'PEAR_Error')) { - while ($val = $res->fetchRow()) { - $result[] = $val; - } - return $result; - } - return false; - } - - // getNotifications - obtains all notifications defined for group. - function getNotifications() { - global $user; - $mdb2 = getConnection(); - - $result = array(); - $sql = "select * from tt_cron where group_id = $this->group_id and org_id = $user->org_id"; + $sql = "select * from $table_name where group_id = $this->group_id and org_id = $user->org_id"; $res = $mdb2->query($sql); $result = array(); if (!is_a($res, 'PEAR_Error')) { @@ -236,8 +121,9 @@ class ttGroupExportHelper { function writeData() { // Write group info. - $group = $this->getGroupData(); + $group = $this->getGroupAttrs(); $group_part = "userMap[$user_item['id']] = $key + 1; // Prepare role map. - $roles = $this->getRoles(); + $roles = $this->getRecordsFromTable('tt_roles'); foreach ($roles as $key=>$role_item) $this->roleMap[$role_item['id']] = $key + 1; // Prepare task map. - $tasks = $this->getTasks(); + $tasks = $this->getRecordsFromTable('tt_tasks'); foreach ($tasks as $key=>$task_item) $this->taskMap[$task_item['id']] = $key + 1; // Prepare project map. - $projects = $this->getProjects(); + $projects = $this->getRecordsFromTable('tt_projects'); foreach ($projects as $key=>$project_item) $this->projectMap[$project_item['id']] = $key + 1; // Prepare client map. - $clients = $this->getClients(); + $clients = $this->getRecordsFromTable('tt_clients'); foreach ($clients as $key=>$client_item) $this->clientMap[$client_item['id']] = $key + 1; @@ -304,7 +190,7 @@ class ttGroupExportHelper { $this->customFieldOptionMap[$option['id']] = $key + 1; // Prepare favorite report map. - $fav_reports = $this->getFavReports(); + $fav_reports = $this->getRecordsFromTable('tt_fav_reports'); foreach ($fav_reports as $key=>$fav_report) $this->favReportMap[$fav_report['id']] = $key + 1; @@ -532,7 +418,7 @@ class ttGroupExportHelper { unset($expense_item_part); // Write predefined expenses. - $predefined_expenses = $this->getPredefinedExpenses(); + $predefined_expenses = $this->getRecordsFromTable('tt_predefined_expenses'); fwrite($this->file, $this->indentation." \n"); foreach ($predefined_expenses as $predefined_expense) { $predefined_expense_part = $this->indentation.' '."getFavReports(); fwrite($this->file, $this->indentation." \n"); foreach ($fav_reports as $fav_report) { $user_list = ''; @@ -607,7 +492,7 @@ class ttGroupExportHelper { unset($fav_report_part); // Write notifications. - $notifications = $this->getNotifications(); + $notifications = $this->getRecordsFromTable('tt_cron'); fwrite($this->file, $this->indentation." \n"); foreach ($notifications as $notification) { $notification_part = $this->indentation.' '."getRecordsFromTable('tt_config'); + fwrite($this->file, $this->indentation." \n"); + foreach ($user_params as $user_param) { + $user_param_part = $this->indentation.' '."userMap[$user_param['user_id']]."\""; + $user_param_part .= " param_name=\"".htmlspecialchars($user_param['param_name'])."\""; + $user_param_part .= " param_value=\"".htmlspecialchars($user_param['param_value'])."\""; + $user_param_part .= ">\n"; + fwrite($this->file, $user_param_part); + } + fwrite($this->file, $this->indentation." \n"); + unset($user_params); + unset($user_param_part); + // We are mostly done with writing this group data, destroy all maps. unset($this->roleMap); unset($this->userMap);