From dda391bb3a18e4cc7597c8945ce70a4bcdd9e45c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Benjamin=20Beganovi=C4=87?= Date: Wed, 27 Oct 2021 14:51:43 +0200 Subject: [PATCH 1/5] Resolving fonts --- app/Utils/Helpers.php | 25 +++++++++++++++++++++++ app/Utils/HtmlEngine.php | 2 ++ tests/Unit/HelpersTest.php | 41 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 68 insertions(+) create mode 100644 tests/Unit/HelpersTest.php diff --git a/app/Utils/Helpers.php b/app/Utils/Helpers.php index 07966956a2c0..27fe7eb0fe5d 100644 --- a/app/Utils/Helpers.php +++ b/app/Utils/Helpers.php @@ -264,4 +264,29 @@ class Helpers return $value; } + + /** + * Resolve the font from the supported fonts array. + * + * @param string $font + * @return array + */ + public static function resolveFont(string $font = 'Arial'): array + { + $fonts = [ + 'Arial' => '', + 'Inter' => 'https://fonts.googleapis.com/css2?family=Inter:wght@400;600&display=swap', + 'Roboto' => 'https://fonts.googleapis.com/css2?family=Roboto:wght@400;700&display=swap', + 'Irish Grover' => 'https://fonts.googleapis.com/css2?family=Irish+Grover&display=swap', + ]; + + if (array_key_exists($font, $fonts)) { + return [ + 'name' => $font, + 'url' => $fonts[$font], + ]; + } + + return ['name' => 'Arial', 'url' => $fonts['Arial']]; + } } diff --git a/app/Utils/HtmlEngine.php b/app/Utils/HtmlEngine.php index d5bd8020bfeb..4b64aa4d7e1e 100644 --- a/app/Utils/HtmlEngine.php +++ b/app/Utils/HtmlEngine.php @@ -445,6 +445,8 @@ class HtmlEngine $data['_rate3'] = ['value' => '', 'label' => ctrans('texts.tax')]; $data['$font_size'] = ['value' => $this->settings->font_size . 'px', 'label' => '']; + $data['$font_name'] = ['value' => Helpers::resolveFont()['name'], 'label' => '']; + $data['$font_url'] = ['value' => Helpers::resolveFont()['url'], 'label' => '']; $data['$invoiceninja.whitelabel'] = ['value' => 'https://raw.githubusercontent.com/invoiceninja/invoiceninja/v5-develop/public/images/new_logo.png', 'label' => '']; diff --git a/tests/Unit/HelpersTest.php b/tests/Unit/HelpersTest.php new file mode 100644 index 000000000000..1516ef513adb --- /dev/null +++ b/tests/Unit/HelpersTest.php @@ -0,0 +1,41 @@ +assertArrayHasKey('name', $font); + $this->assertArrayHasKey('url', $font); + } + + public function testResolvingFont(): void + { + $font = Helpers::resolveFont('Inter'); + + $this->assertEquals('Inter', $font['name']); + } + + public function testDefaultFontIsArial(): void + { + $font = Helpers::resolveFont(); + + $this->assertEquals('Arial', $font['name']); + } +} From 0059e87794a346fcf60f0ddf10a8a28ac3906979 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Benjamin=20Beganovi=C4=87?= Date: Wed, 27 Oct 2021 14:53:46 +0200 Subject: [PATCH 2/5] Update designs --- resources/views/pdf-designs/bold.html | 4 +++- resources/views/pdf-designs/business.html | 4 +++- resources/views/pdf-designs/clean.html | 4 +++- resources/views/pdf-designs/creative.html | 4 +++- resources/views/pdf-designs/elegant.html | 4 +++- resources/views/pdf-designs/hipster.html | 4 +++- resources/views/pdf-designs/modern.html | 4 +++- resources/views/pdf-designs/plain.html | 4 +++- resources/views/pdf-designs/playful.html | 4 +++- resources/views/pdf-designs/tech.html | 4 +++- 10 files changed, 30 insertions(+), 10 deletions(-) diff --git a/resources/views/pdf-designs/bold.html b/resources/views/pdf-designs/bold.html index 8545f2b65c00..245515e97374 100644 --- a/resources/views/pdf-designs/bold.html +++ b/resources/views/pdf-designs/bold.html @@ -1,4 +1,6 @@