From 6e7adcc095432948cab8e5de5bb17c2ad6724c12 Mon Sep 17 00:00:00 2001 From: Dan Brown Date: Sun, 20 May 2018 11:55:23 +0100 Subject: [PATCH] Embedded SVG icons in css/js files Allows removal of hacky /icon endpoint solution. Fixes PDF exports with WKHTML and allows the icon to show in HTML exports. Fixes #796 --- app/Http/Controllers/HomeController.php | 21 ------------------- resources/assets/icons/warning.svg | 2 +- .../assets/js/components/wysiwyg-editor.js | 2 +- resources/assets/sass/_blocks.scss | 8 +++---- routes/web.php | 1 - 5 files changed, 6 insertions(+), 28 deletions(-) diff --git a/app/Http/Controllers/HomeController.php b/app/Http/Controllers/HomeController.php index 02b4789c2..2077f6888 100644 --- a/app/Http/Controllers/HomeController.php +++ b/app/Http/Controllers/HomeController.php @@ -108,27 +108,6 @@ class HomeController extends Controller ]); } - /** - * Get an icon via image request. - * Can provide a 'color' parameter with hex value to color the icon. - * @param $iconName - * @param Request $request - * @return \Illuminate\Contracts\Routing\ResponseFactory|\Symfony\Component\HttpFoundation\Response - */ - public function getIcon($iconName, Request $request) - { - $attrs = []; - if ($request->filled('color')) { - $attrs['fill'] = '#' . $request->get('color'); - } - - $icon = icon($iconName, $attrs); - return response($icon, 200, [ - 'Content-Type' => 'image/svg+xml', - 'Cache-Control' => 'max-age=3600', - ]); - } - /** * Get custom head HTML, Used in ajax calls to show in editor. * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View diff --git a/resources/assets/icons/warning.svg b/resources/assets/icons/warning.svg index dc1aefc25..b1d1ad02c 100644 --- a/resources/assets/icons/warning.svg +++ b/resources/assets/icons/warning.svg @@ -1,4 +1,4 @@ - + \ No newline at end of file diff --git a/resources/assets/js/components/wysiwyg-editor.js b/resources/assets/js/components/wysiwyg-editor.js index 56aa294fa..701a1fec6 100644 --- a/resources/assets/js/components/wysiwyg-editor.js +++ b/resources/assets/js/components/wysiwyg-editor.js @@ -292,7 +292,7 @@ function drawIoPlugin() { editor.addButton('drawio', { tooltip: 'Drawing', - image: window.baseUrl('/icon/drawing.svg?color=000000'), + image: `data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9IiMwMDAwMDAiICB4bWxucz0iaHR0cDovL3d3 dy53My5vcmcvMjAwMC9zdmciPgogICAgPHBhdGggZD0iTTIzIDdWMWgtNnYySDdWMUgxdjZoMnYx MEgxdjZoNnYtMmgxMHYyaDZ2LTZoLTJWN2gyek0zIDNoMnYySDNWM3ptMiAxOEgzdi0yaDJ2Mnpt MTItMkg3di0ySDVWN2gyVjVoMTB2MmgydjEwaC0ydjJ6bTQgMmgtMnYtMmgydjJ6TTE5IDVWM2gy djJoLTJ6bS01LjI3IDloLTMuNDlsLS43MyAySDcuODlsMy40LTloMS40bDMuNDEgOWgtMS42M2wt Ljc0LTJ6bS0zLjA0LTEuMjZoMi42MUwxMiA4LjkxbC0xLjMxIDMuODN6Ii8+CiAgICA8cGF0aCBk PSJNMCAwaDI0djI0SDB6IiBmaWxsPSJub25lIi8+Cjwvc3ZnPg==`, cmd: 'drawio' }); diff --git a/resources/assets/sass/_blocks.scss b/resources/assets/sass/_blocks.scss index b7a8dcc03..c0f02ed7d 100644 --- a/resources/assets/sass/_blocks.scss +++ b/resources/assets/sass/_blocks.scss @@ -138,7 +138,7 @@ display: block; position: relative; &:before { - background-image: url("/icon/info-filled.svg?color=015380"); + background-image: url('data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9IiMwMTUzODAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+ICAgIDxwYXRoIGQ9Ik0wIDBoMjR2MjRIMHoiIGZpbGw9Im5vbmUiLz4gICAgPHBhdGggZD0iTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bTEgMTVoLTJ2LTZoMnY2em0wLThoLTJWN2gydjJ6Ii8+PC9zdmc+'); background-repeat: no-repeat; content: ''; width: 1.2em; @@ -157,7 +157,7 @@ color: darken($positive, 16%); } &.success:before { - background-image: url("/icon/check-circle.svg?color=376c39"); + background-image: url("data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9IiMzNzZjMzkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+ICAgIDxwYXRoIGQ9Ik0wIDBoMjR2MjRIMHoiIGZpbGw9Im5vbmUiLz4gICAgPHBhdGggZD0iTTEyIDJDNi40OCAyIDIgNi40OCAyIDEyczQuNDggMTAgMTAgMTAgMTAtNC40OCAxMC0xMFMxNy41MiAyIDEyIDJ6bS0yIDE1bC01LTUgMS40MS0xLjQxTDEwIDE0LjE3bDcuNTktNy41OUwxOSA4bC05IDl6Ii8+PC9zdmc+"); } &.danger { border-left-color: $negative; @@ -165,7 +165,7 @@ color: darken($negative, 20%); } &.danger:before { - background-image: url("/icon/danger.svg?color=b91818"); + background-image: url("data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9IiNiOTE4MTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+ICAgIDxwYXRoIGQ9Ik0xNS43MyAzSDguMjdMMyA4LjI3djcuNDZMOC4yNyAyMWg3LjQ2TDIxIDE1LjczVjguMjdMMTUuNzMgM3pNMTIgMTcuM2MtLjcyIDAtMS4zLS41OC0xLjMtMS4zIDAtLjcyLjU4LTEuMyAxLjMtMS4zLjcyIDAgMS4zLjU4IDEuMyAxLjMgMCAuNzItLjU4IDEuMy0xLjMgMS4zem0xLTQuM2gtMlY3aDJ2NnoiLz4gICAgPHBhdGggZD0iTTAgMGgyNHYyNEgweiIgZmlsbD0ibm9uZSIvPjwvc3ZnPg=="); } &.info { border-left-color: $info; @@ -178,7 +178,7 @@ color: darken($warning, 16%); } &.warning:before { - background-image: url("/icon/warning.svg?color=b6531c"); + background-image: url("data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9IiNiNjUzMWMiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+ICAgIDxwYXRoIGQ9Ik0wIDBoMjR2MjRIMHoiIGZpbGw9Im5vbmUiLz4gICAgPHBhdGggZD0iTTEgMjFoMjJMMTIgMiAxIDIxem0xMi0zaC0ydi0yaDJ2MnptMC00aC0ydi00aDJ2NHoiLz48L3N2Zz4="); } } diff --git a/routes/web.php b/routes/web.php index 794edfd01..a857bce6c 100644 --- a/routes/web.php +++ b/routes/web.php @@ -1,7 +1,6 @@