From f39296de049035f31a68620497b88260376e9268 Mon Sep 17 00:00:00 2001 From: Mathieu De Keyzer Date: Tue, 10 Oct 2023 23:26:51 +0200 Subject: [PATCH] feat: core-mstile --- .../ContentManagement/FileController.php | 4 ++-- .../src/Resources/config/routing/icons.xml | 7 +++++++ elasticms-admin/config/packages/security.yaml | 1 + elasticms-admin/public/mstile-150x150.png | Bin 19344 -> 0 bytes 4 files changed, 10 insertions(+), 2 deletions(-) delete mode 100644 elasticms-admin/public/mstile-150x150.png diff --git a/EMS/core-bundle/src/Controller/ContentManagement/FileController.php b/EMS/core-bundle/src/Controller/ContentManagement/FileController.php index 79257ba1f..a690fef5d 100644 --- a/EMS/core-bundle/src/Controller/ContentManagement/FileController.php +++ b/EMS/core-bundle/src/Controller/ContentManagement/FileController.php @@ -172,7 +172,7 @@ public function indexImagesAction(): Response ]); } - public function icon(Request $request, int $width, int $height): Response + public function icon(Request $request, int $width, int $height, string $background = null): Response { if ($width !== $height) { throw new NotFoundHttpException('File not found'); @@ -184,7 +184,7 @@ public function icon(Request $request, int $width, int $height): Response EmsFields::ASSET_CONFIG_WIDTH => $width, EmsFields::ASSET_CONFIG_HEIGHT => $height, EmsFields::ASSET_CONFIG_QUALITY => 0, - EmsFields::ASSET_CONFIG_BACKGROUND => "ems-$this->themeColor", + EmsFields::ASSET_CONFIG_BACKGROUND => $background ?? "ems-$this->themeColor", EmsFields::ASSET_CONFIG_RADIUS => $width / 6, EmsFields::ASSET_CONFIG_BORDER_COLOR => '#000000FF', ]); diff --git a/EMS/core-bundle/src/Resources/config/routing/icons.xml b/EMS/core-bundle/src/Resources/config/routing/icons.xml index a89a0f797..cd65343f4 100644 --- a/EMS/core-bundle/src/Resources/config/routing/icons.xml +++ b/EMS/core-bundle/src/Resources/config/routing/icons.xml @@ -28,6 +28,13 @@ 192|256|512 192|256|512 + + 150 + 150 + 000000FF + diff --git a/elasticms-admin/config/packages/security.yaml b/elasticms-admin/config/packages/security.yaml index cbd1b97b8..a4da61ce6 100644 --- a/elasticms-admin/config/packages/security.yaml +++ b/elasticms-admin/config/packages/security.yaml @@ -61,6 +61,7 @@ security: - { path: ^/favicon.ico$, role: PUBLIC_ACCESS } - { path: ^/apple\-touch\-icon\.png$, role: PUBLIC_ACCESS } - { path: ^/favicon\-(16|32|48|64|128|256)x(16|32|48|64|128|256)\.png$, role: PUBLIC_ACCESS } + - { path: ^/mstile\-(150)x(150)\.png$, role: PUBLIC_ACCESS } - { path: ^/android\-chrome\-(192|256|512)x(192|256|512).png$, role: PUBLIC_ACCESS } - { path: ^/browserconfig\.xml$, role: PUBLIC_ACCESS } - { path: ^/site\.webmanifest, role: PUBLIC_ACCESS } diff --git a/elasticms-admin/public/mstile-150x150.png b/elasticms-admin/public/mstile-150x150.png deleted file mode 100644 index f08a9d673b0d3fb6a11353bf78893ea57cbbcc49..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19344 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