From 67c8fa59139659b2da15c560dd10d18601ab311f Mon Sep 17 00:00:00 2001 From: Nik Okuntseff Date: Sun, 11 Nov 2018 15:56:52 +0000 Subject: [PATCH] Added fav reports to new export-import. --- WEB-INF/lib/ttGroupExportHelper.class.php | 46 +++++++++++++++++++++++ WEB-INF/lib/ttOrgImportHelper.class.php | 40 ++++++++++++++++++++ WEB-INF/templates/footer.tpl | 2 +- 3 files changed, 87 insertions(+), 1 deletion(-) diff --git a/WEB-INF/lib/ttGroupExportHelper.class.php b/WEB-INF/lib/ttGroupExportHelper.class.php index b1aa35c0..17d40435 100644 --- a/WEB-INF/lib/ttGroupExportHelper.class.php +++ b/WEB-INF/lib/ttGroupExportHelper.class.php @@ -457,6 +457,52 @@ class ttGroupExportHelper { } fwrite($this->file, $this->indentation." \n"); + // Write fav reports. + $fav_reports = ttTeamHelper::getFavReports($this->group_id); + fwrite($this->file, $this->indentation." \n"); + foreach ($fav_reports as $fav_report) { + $user_list = ''; + if (strlen($fav_report['users']) > 0) { + $arr = explode(',', $fav_report['users']); + foreach ($arr as $k=>$v) { + if (array_key_exists($arr[$k], $this->userMap)) + $user_list .= (strlen($user_list) == 0? '' : ',').$this->userMap[$v]; + } + } + $fav_report_part = $this->indentation.' '."userMap[$fav_report['user_id']]."\""; + $fav_report_part .= " name=\"".htmlentities($fav_report['name'])."\""; + $fav_report_part .= " client_id=\"".$this->clientMap[$fav_report['client_id']]."\""; + $fav_report_part .= " cf_1_option_id=\"".$this->customFieldOptionMap[$fav_report['cf_1_option_id']]."\""; + $fav_report_part .= " project_id=\"".$this->projectMap[$fav_report['project_id']]."\""; + $fav_report_part .= " task_id=\"".$this->taskMap[$fav_report['task_id']]."\""; + $fav_report_part .= " billable=\"".$fav_report['billable']."\""; + $fav_report_part .= " users=\"".$user_list."\""; + $fav_report_part .= " period=\"".$fav_report['period']."\""; + $fav_report_part .= " period_start=\"".$fav_report['period_start']."\""; + $fav_report_part .= " period_end=\"".$fav_report['period_end']."\""; + $fav_report_part .= " show_client=\"".$fav_report['show_client']."\""; + $fav_report_part .= " show_invoice=\"".$fav_report['show_invoice']."\""; + $fav_report_part .= " show_paid=\"".$fav_report['show_paid']."\""; + $fav_report_part .= " show_ip=\"".$fav_report['show_ip']."\""; + $fav_report_part .= " show_project=\"".$fav_report['show_project']."\""; + $fav_report_part .= " show_start=\"".$fav_report['show_start']."\""; + $fav_report_part .= " show_duration=\"".$fav_report['show_duration']."\""; + $fav_report_part .= " show_cost=\"".$fav_report['show_cost']."\""; + $fav_report_part .= " show_task=\"".$fav_report['show_task']."\""; + $fav_report_part .= " show_end=\"".$fav_report['show_end']."\""; + $fav_report_part .= " show_note=\"".$fav_report['show_note']."\""; + $fav_report_part .= " show_custom_field_1=\"".$fav_report['show_custom_field_1']."\""; + $fav_report_part .= " show_work_units=\"".$fav_report['show_work_units']."\""; + $fav_report_part .= " group_by1=\"".$fav_report['group_by1']."\""; + $fav_report_part .= " group_by2=\"".$fav_report['group_by2']."\""; + $fav_report_part .= " group_by3=\"".$fav_report['group_by3']."\""; + $fav_report_part .= " show_totals_only=\"".$fav_report['show_totals_only']."\""; + $fav_report_part .= ">\n"; + fwrite($this->file, $fav_report_part); + } + fwrite($this->file, $this->indentation." \n"); + unset($fav_reports); + // Call self recursively for all subgroups. foreach ($this->subgroups as $subgroup) { $subgroup_helper = new ttGroupExportHelper($subgroup['id'], $this->file, $this->indentation.' '); diff --git a/WEB-INF/lib/ttOrgImportHelper.class.php b/WEB-INF/lib/ttOrgImportHelper.class.php index cc632f18..80dc8a19 100644 --- a/WEB-INF/lib/ttOrgImportHelper.class.php +++ b/WEB-INF/lib/ttOrgImportHelper.class.php @@ -34,6 +34,7 @@ import('ttClientHelper'); import('ttInvoiceHelper'); import('ttCustomFieldHelper'); import('ttExpenseHelper'); +import('ttFavReportHelper'); // ttOrgImportHelper - this class is a future replacement for ttImportHelper. // Currently, it is work in progress. @@ -398,6 +399,45 @@ class ttOrgImportHelper { $this->errors->add($i18n->get('error.db')); } } + + if ($name == 'FAV_REPORT') { + $user_list = ''; + if (strlen($attrs['USERS']) > 0) { + $arr = explode(',', $attrs['USERS']); + foreach ($arr as $v) + $user_list .= (strlen($user_list) == 0 ? '' : ',').$this->currentGroupUserMap[$v]; + } + $fav_report_id = ttFavReportHelper::insertReport(array( + 'name' => $attrs['NAME'], + 'user_id' => $this->currentGroupUserMap[$attrs['USER_ID']], + 'client' => $this->currentGroupClientMap[$attrs['CLIENT_ID']], + 'option' => $this->currentGroupCustomFieldOptionMap[$attrs['CF_1_OPTION_ID']], + 'project' => $this->currentGroupProjectMap[$attrs['PROJECT_ID']], + 'task' => $this->currentGroupTaskMap[$attrs['TASK_ID']], + 'billable' => $attrs['BILLABLE'], + 'users' => $user_list, + 'period' => $attrs['PERIOD'], + 'from' => $attrs['PERIOD_START'], + 'to' => $attrs['PERIOD_END'], + 'chclient' => (int) $attrs['SHOW_CLIENT'], + 'chinvoice' => (int) $attrs['SHOW_INVOICE'], + 'chpaid' => (int) $attrs['SHOW_PAID'], + 'chip' => (int) $attrs['SHOW_IP'], + 'chproject' => (int) $attrs['SHOW_PROJECT'], + 'chstart' => (int) $attrs['SHOW_START'], + 'chduration' => (int) $attrs['SHOW_DURATION'], + 'chcost' => (int) $attrs['SHOW_COST'], + 'chtask' => (int) $attrs['SHOW_TASK'], + 'chfinish' => (int) $attrs['SHOW_END'], + 'chnote' => (int) $attrs['SHOW_NOTE'], + 'chcf_1' => (int) $attrs['SHOW_CUSTOM_FIELD_1'], + 'chunits' => (int) $attrs['SHOW_WORK_UNITS'], + 'group_by1' => $attrs['GROUP_BY1'], + 'group_by2' => $attrs['GROUP_BY2'], + 'group_by3' => $attrs['GROUP_BY3'], + 'chtotalsonly' => (int) $attrs['SHOW_TOTALS_ONLY'])); + if (!$fav_report_id) $this->errors->add($i18n->get('error.db')); + } } } diff --git a/WEB-INF/templates/footer.tpl b/WEB-INF/templates/footer.tpl index 338b37b4..38980481 100644 --- a/WEB-INF/templates/footer.tpl +++ b/WEB-INF/templates/footer.tpl @@ -12,7 +12,7 @@
-
 Anuko Time Tracker 1.18.12.4416 | Copyright © Anuko | +  Anuko Time Tracker 1.18.12.4417 | Copyright © Anuko | {$i18n.footer.credits} | {$i18n.footer.license} | {$i18n.footer.improve} -- 2.20.1