diff --git a/src/DependencyInjection/Compiler/ExportServiceCompilerPass.php b/src/DependencyInjection/Compiler/ExportServiceCompilerPass.php index 55e25aa3..2b2d98e3 100644 --- a/src/DependencyInjection/Compiler/ExportServiceCompilerPass.php +++ b/src/DependencyInjection/Compiler/ExportServiceCompilerPass.php @@ -11,6 +11,7 @@ namespace App\DependencyInjection\Compiler; use App\Export\Renderer\HtmlRenderer; use App\Export\Renderer\HtmlRendererFactory; +use App\Export\Renderer\PDFRenderer; use App\Export\Renderer\PdfRendererFactory; use App\Export\ServiceExport; use App\Kernel; @@ -72,7 +73,7 @@ class ExportServiceCompilerPass implements CompilerPassInterface $serviceId = 'exporter_renderer.' . str_replace('.', '_', $tplName); - $factoryDefinition = new Definition(HtmlRenderer::class); + $factoryDefinition = new Definition(PDFRenderer::class); $factoryDefinition->addArgument($tplName); $factoryDefinition->addArgument($tplName); $factoryDefinition->setFactory([new Reference(PdfRendererFactory::class), 'create']); diff --git a/src/Export/Base/HtmlRenderer.php b/src/Export/Base/HtmlRenderer.php index 884e18c5..f147e960 100644 --- a/src/Export/Base/HtmlRenderer.php +++ b/src/Export/Base/HtmlRenderer.php @@ -108,6 +108,8 @@ class HtmlRenderer 'query' => $query, 'summaries' => $summary, 'budgets' => $this->calculateProjectBudget($timesheets, $query, $this->projectRepository), + // @deprecated since 1.3, will be removed with 2.0 + 'metaColumns' => $timesheetMetaFields, 'timesheetMetaFields' => $timesheetMetaFields, 'customerMetaFields' => $customerMetaFields, 'projectMetaFields' => $projectMetaFields, diff --git a/src/Export/Timesheet/HtmlRenderer.php b/src/Export/Timesheet/HtmlRenderer.php index c5bf9579..e0206af3 100644 --- a/src/Export/Timesheet/HtmlRenderer.php +++ b/src/Export/Timesheet/HtmlRenderer.php @@ -9,73 +9,14 @@ namespace App\Export\Timesheet; -use App\Entity\Timesheet; -use App\Event\TimesheetMetaDisplayEvent; +use App\Export\Base\HtmlRenderer as BaseHtmlRenderer; use App\Export\TimesheetExportInterface; -use App\Repository\Query\TimesheetQuery; -use Symfony\Component\EventDispatcher\EventDispatcherInterface; -use Symfony\Component\HttpFoundation\Response; -use Twig\Environment; -final class HtmlRenderer implements TimesheetExportInterface +final class HtmlRenderer extends BaseHtmlRenderer implements TimesheetExportInterface { - /** - * @var Environment - */ - private $twig; - /** - * @var EventDispatcherInterface - */ - private $dispatcher; - - public function __construct(Environment $twig, EventDispatcherInterface $dispatcher) + protected function getTemplate(): string { - $this->twig = $twig; - $this->dispatcher = $dispatcher; - } - - private function getOptions(TimesheetQuery $query): array - { - $decimal = false; - if (null !== $query->getCurrentUser()) { - $decimal = (bool) $query->getCurrentUser()->getPreferenceValue('timesheet.export_decimal', $decimal); - } elseif (null !== $query->getUser()) { - $decimal = (bool) $query->getUser()->getPreferenceValue('timesheet.export_decimal', $decimal); - } - - return ['decimal' => $decimal]; - } - - /** - * @param Timesheet[] $timesheets - * @param TimesheetQuery $query - * @return Response - * @throws \Twig\Error\LoaderError - * @throws \Twig\Error\RuntimeError - * @throws \Twig\Error\SyntaxError - */ - public function render(array $timesheets, TimesheetQuery $query): Response - { - $metaLocation = TimesheetMetaDisplayEvent::TEAM_TIMESHEET_EXPORT; - if (null !== $query->getUser()) { - $metaLocation = TimesheetMetaDisplayEvent::EXPORT; - } - - $event = new TimesheetMetaDisplayEvent($query, $metaLocation); - $this->dispatcher->dispatch($event); - $timesheetMetaFields = $event->getFields(); - - $content = $this->twig->render('timesheet/export.html.twig', array_merge([ - 'entries' => $timesheets, - 'query' => $query, - 'metaColumns' => $timesheetMetaFields, - 'decimal' => false, - ], $this->getOptions($query))); - - $response = new Response(); - $response->setContent($content); - - return $response; + return 'timesheet/export.html.twig'; } /** diff --git a/templates/timesheet/export.html.twig b/templates/timesheet/export.html.twig index c0d88476..1f2a1b80 100644 --- a/templates/timesheet/export.html.twig +++ b/templates/timesheet/export.html.twig @@ -43,7 +43,7 @@