From 90c1ed019dbd4fcaa47e9b431983b715b9566fb5 Mon Sep 17 00:00:00 2001 From: Betsy Castro <5490820+betsyecastro@users.noreply.github.com> Date: Mon, 14 Apr 2025 14:33:56 -0500 Subject: [PATCH 1/7] Updates bg colors and styles footer --- .../views/emails/reviewstudents.blade.php | 2 +- resources/views/emails/template.blade.php | 20 +++++++++++++++---- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/resources/views/emails/reviewstudents.blade.php b/resources/views/emails/reviewstudents.blade.php index e3b7042b..725c15da 100644 --- a/resources/views/emails/reviewstudents.blade.php +++ b/resources/views/emails/reviewstudents.blade.php @@ -1,7 +1,7 @@ @extends('emails.template') @php - $primary_color = $settings['primary_color'] ?? '#008542'; + $primary_color = $settings['primary_color'] ?? '#154734'; @endphp @section('message') diff --git a/resources/views/emails/template.blade.php b/resources/views/emails/template.blade.php index 61e03a44..f683a9a8 100644 --- a/resources/views/emails/template.blade.php +++ b/resources/views/emails/template.blade.php @@ -2,9 +2,9 @@ @php - $bg_primary = $settings['primary_color'] ?? '#008542'; - $bg_secondary = $settings['secondary_color'] ?? '#008542'; - $bg_tertiary = $settings['tertiary_color'] ?? '#69BE28'; + $bg_primary = $settings['primary_color'] ?? '#154734'; + $bg_secondary = $settings['secondary_color'] ?? '#C95100'; + $bg_tertiary = $settings['tertiary_color'] ?? '#34827A'; @endphp @@ -60,7 +60,7 @@ - + @if(isset($settings['footer'])) {!! $settings['footer'] !!} @@ -73,4 +73,16 @@ + + \ No newline at end of file From 2634d1dea771df0938d048133192bdb00fec0f06 Mon Sep 17 00:00:00 2001 From: Betsy Castro <5490820+betsyecastro@users.noreply.github.com> Date: Mon, 21 Apr 2025 09:09:28 -0500 Subject: [PATCH 2/7] Updates purify config and adds custom setting for email sections edited with trix for HTLM sanitization --- config/purify.php | 207 +++++++++------------- resources/views/emails/template.blade.php | 113 ++++++------ 2 files changed, 134 insertions(+), 186 deletions(-) diff --git a/config/purify.php b/config/purify.php index de6f0a9e..4792a4ce 100644 --- a/config/purify.php +++ b/config/purify.php @@ -1,148 +1,101 @@ 'default', + + /* + |-------------------------------------------------------------------------- + | Config sets + |-------------------------------------------------------------------------- | - | Feel free to add / remove / customize these attributes as you wish. + | Here you may configure various sets of configuration for differentiated use of HTMLPurifier. + | A specific set of configuration can be applied by calling the "config($name)" method on + | a Purify instance. Feel free to add/remove/customize these attributes as you wish. | | Documentation: http://htmlpurifier.org/live/configdoc/plain.html | + | Core.Encoding The encoding to convert input to. + | HTML.Doctype Doctype to use during filtering. + | HTML.Allowed The allowed HTML Elements with their allowed attributes. + | HTML.ForbiddenElements The forbidden HTML elements. Elements that are listed in this + | string will be removed, however their content will remain. + | CSS.AllowedProperties The Allowed CSS properties. + | AutoFormat.AutoParagraph Newlines are converted in to paragraphs whenever possible. + | AutoFormat.RemoveEmpty Remove empty elements that contribute no semantic information to the document. + | */ - 'settings' => [ - - /* - |-------------------------------------------------------------------------- - | Core.Encoding - |-------------------------------------------------------------------------- - | - | The encoding to convert input to. - | - | http://htmlpurifier.org/live/configdoc/plain.html#Core.Encoding - | - */ - - 'Core.Encoding' => 'utf-8', - - /* - |-------------------------------------------------------------------------- - | Cache.SerializerPath - |-------------------------------------------------------------------------- - | - | The HTML purifier serializer cache path. - | - | http://htmlpurifier.org/live/configdoc/plain.html#Cache.SerializerPath - | - */ - - 'Cache.SerializerPath' => storage_path('app/purify'), - - /* - |-------------------------------------------------------------------------- - | Cache.SerializerPermissions - |-------------------------------------------------------------------------- - | - | The HTML purifier serializer cache path. - | - | http://htmlpurifier.org/live/configdoc/plain.html#Cache.SerializerPermissions - | - */ - - 'Cache.SerializerPermissions' => env('PURIFY_CACHE_PERMISSIONS', null), - - /* - |-------------------------------------------------------------------------- - | HTML.Doctype - |-------------------------------------------------------------------------- - | - | Doctype to use during filtering. - | - | http://htmlpurifier.org/live/configdoc/plain.html#HTML.Doctype - | - */ - - 'HTML.Doctype' => 'XHTML 1.0 Strict', - - /* - |-------------------------------------------------------------------------- - | HTML.Allowed - |-------------------------------------------------------------------------- - | - | The allowed HTML Elements with their allowed attributes. - | - | http://htmlpurifier.org/live/configdoc/plain.html#HTML.Allowed - | - */ - - 'HTML.Allowed' => 'h1,h2,h3,h4,h5,h6,b,strong,i,em,a[href|title],ul,ol,li,p[style],br,span,sup,sub,img[width|height|alt|src]', - - /* - |-------------------------------------------------------------------------- - | HTML.ForbiddenElements - |-------------------------------------------------------------------------- - | - | The forbidden HTML elements. Elements that are listed in - | this string will be removed, however their content will remain. - | - | For example if 'p' is inside the string, the string: '

Test

', - | - | Will be cleaned to: 'Test' - | - | http://htmlpurifier.org/live/configdoc/plain.html#HTML.ForbiddenElements - | - */ + 'configs' => [ + + 'default' => [ + 'Core.Encoding' => 'utf-8', + 'HTML.Doctype' => 'HTML 4.01 Transitional', + 'Cache.SerializerPermissions' => env('PURIFY_CACHE_PERMISSIONS', null), + 'HTML.Allowed' => 'h1,h2,h3,h4,h5,h6,b,strong,i,em,a[href|title],ul,ol,li,p[style],br,span,sup,sub,img[width|height|alt|src]', + 'HTML.ForbiddenElements' => '', + 'CSS.AllowedProperties' => 'font,font-size,font-weight,font-style,font-family,text-decoration,padding-left,color,background-color,text-align', + 'AutoFormat.AutoParagraph' => false, + 'AutoFormat.RemoveEmpty' => false, + ], + + 'trix_email' => [ + 'HTML.Doctype' => 'HTML 4.01 Transitional', + 'HTML.AllowedElements' => 'a,span', + 'HTML.AllowedAttributes' => 'a.href,a.style,span.style', + 'AutoFormat.RemoveEmpty' => true, + 'AutoFormat.RemoveEmpty.RemoveNbsp' => true, + 'CSS.AllowedProperties' => 'color,text-decoration', + 'Output.TidyFormat' => true, + 'HTML.Nofollow' => false, + 'Core.NormalizeNewlines' => true, + 'AutoFormat.AutoParagraph' => false, + 'AutoFormat.RemoveSpansWithoutAttributes' => true, + ], - 'HTML.ForbiddenElements' => '', - - /* - |-------------------------------------------------------------------------- - | CSS.AllowedProperties - |-------------------------------------------------------------------------- - | - | The Allowed CSS properties. - | - | http://htmlpurifier.org/live/configdoc/plain.html#CSS.AllowedProperties - | - */ - - 'CSS.AllowedProperties' => 'font,font-size,font-weight,font-style,font-family,text-decoration,padding-left,color,background-color,text-align', - - /* - |-------------------------------------------------------------------------- - | AutoFormat.AutoParagraph - |-------------------------------------------------------------------------- - | - | The Allowed CSS properties. - | - | This directive turns on auto-paragraphing, where double - | newlines are converted in to paragraphs whenever possible. - | - | http://htmlpurifier.org/live/configdoc/plain.html#AutoFormat.AutoParagraph - | - */ + ], - 'AutoFormat.AutoParagraph' => false, + /* + |-------------------------------------------------------------------------- + | HTMLPurifier definitions + |-------------------------------------------------------------------------- + | + | Here you may specify a class that augments the HTML definitions used by + | HTMLPurifier. Additional HTML5 definitions are provided out of the box. + | When specifying a custom class, make sure it implements the interface: + | + | \Stevebauman\Purify\Definitions\Definition + | + | Note that these definitions are applied to every Purifier instance. + | + | Documentation: http://htmlpurifier.org/docs/enduser-customize.html + | + */ - /* - |-------------------------------------------------------------------------- - | AutoFormat.RemoveEmpty - |-------------------------------------------------------------------------- - | - | When enabled, HTML Purifier will attempt to remove empty - | elements that contribute no semantic information to the document. - | - | http://htmlpurifier.org/live/configdoc/plain.html#AutoFormat.RemoveEmpty - | - */ + 'definitions' => Html5Definition::class, - 'AutoFormat.RemoveEmpty' => false, + /* + |-------------------------------------------------------------------------- + | Serializer location + |-------------------------------------------------------------------------- + | + | The location where HTMLPurifier can store its temporary serializer files. + | The filepath should be accessible and writable by the web server. + | A good place for this is in the framework's own storage path. + | + */ - ], + 'serializer' => storage_path('app/purify'), ]; diff --git a/resources/views/emails/template.blade.php b/resources/views/emails/template.blade.php index f683a9a8..835409e0 100644 --- a/resources/views/emails/template.blade.php +++ b/resources/views/emails/template.blade.php @@ -2,6 +2,8 @@ @php + use Stevebauman\Purify\Facades\Purify; + $bg_primary = $settings['primary_color'] ?? '#154734'; $bg_secondary = $settings['secondary_color'] ?? '#C95100'; $bg_tertiary = $settings['tertiary_color'] ?? '#34827A'; @@ -18,71 +20,64 @@ a[href], a[href]:visited { color: {{ $bg_primary }}; } .footer a[href], .footer a[href]:visited { color: #fff; } + td.footer-cell a[href] { color: #fff !important; font-size: 16px; text-decoration: underline; } - - - - - - - - - - - - - - - - - - - - - - - +
- - @if(isset($settings['logo'])) - - @endif - {{ $settings['site_title'] ?? 'Profiles' }} - -
- - - - @yield('message') - -
- -

This is an automated message from the {{ $settings['site_title'] ?? 'Profiles' }} website.

- -
-
+ + +
+ + + + + + + + + + + + + + + + + + + +
+ + + + @if(isset($settings['logo'])) + + @endif + + +
+ Logo + + {{ $settings['site_title'] ?? 'Profiles' }} +
+
+
+ + @yield('message') +
+

This is an automated message from the {{ $settings['site_title'] ?? 'Profiles' }} website.

+
+
- - \ No newline at end of file From 5ec746d64ad91d9ba8b0ca8ecc39ca9d0824529c Mon Sep 17 00:00:00 2001 From: Betsy Castro <5490820+betsyecastro@users.noreply.github.com> Date: Mon, 21 Apr 2025 13:47:05 -0500 Subject: [PATCH 3/7] Adjusts styles for MS Outlook on Windows --- resources/views/emails/template.blade.php | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/resources/views/emails/template.blade.php b/resources/views/emails/template.blade.php index 835409e0..0e0316d1 100644 --- a/resources/views/emails/template.blade.php +++ b/resources/views/emails/template.blade.php @@ -32,14 +32,14 @@ - +
- + @if(isset($settings['logo'])) @endif - + - @endif
- Logo + Logo @@ -63,12 +63,17 @@
+ @if(isset($settings['footer'])) - {!! Purify::config('trix_email')->clean($settings['footer']); !!} + @php + $footer = Purify::config('trix_email')->clean($settings['footer']); + $footer = str_replace('Check our FAQ or contact us. @endif From a1b567dbc9af6044c087f40e306e62889c9e32d1 Mon Sep 17 00:00:00 2001 From: Betsy Castro <5490820+betsyecastro@users.noreply.github.com> Date: Tue, 22 Apr 2025 16:32:41 -0500 Subject: [PATCH 4/7] =?UTF-8?q?Fixes=20styling=20for=20the=20"Review=20Und?= =?UTF-8?q?ergraduate=20Student=20Research=20Applications=20=E2=86=92"=20b?= =?UTF-8?q?utton=20to=20ensure=20proper=20padding=20display=20in=20Windows?= =?UTF-8?q?=20Outlook?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../views/emails/reviewstudents.blade.php | 28 +++++++++++++------ 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/resources/views/emails/reviewstudents.blade.php b/resources/views/emails/reviewstudents.blade.php index 725c15da..8ae2d3af 100644 --- a/resources/views/emails/reviewstudents.blade.php +++ b/resources/views/emails/reviewstudents.blade.php @@ -15,12 +15,24 @@

If you would like to review these undergraduate student research applications, please visit the following page. On this page, you will also be able to delegate review of the applications to another person or indicate if you're not accepting students.

-

- - Review Undergraduate Student Research Applications → - -

+ + + + +
+ + Review Undergraduate Student Research Applications → + +
@stop From 8ad91a2b980ba19dbdb1e0c1cef254769d075c3d Mon Sep 17 00:00:00 2001 From: Betsy Castro <5490820+betsyecastro@users.noreply.github.com> Date: Tue, 22 Apr 2025 16:35:32 -0500 Subject: [PATCH 5/7] Adds PNG logo to ensure correct display in Windows Outlook clients --- public/img/monogram-solid-rgb-full.png | Bin 0 -> 7913 bytes resources/views/emails/template.blade.php | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 public/img/monogram-solid-rgb-full.png diff --git a/public/img/monogram-solid-rgb-full.png b/public/img/monogram-solid-rgb-full.png new file mode 100644 index 0000000000000000000000000000000000000000..89f5205f3b8c3ead6d6715f6c71fbbb7b2df7eaf GIT binary patch literal 7913 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 eX{powA4W??#Nt6a5h|tuKt)j#@ @if(isset($settings['logo']))
- Logo + UT Dallas logo From 90ad2f36e45cc97a95cbf6533fbec7acf67e4387 Mon Sep 17 00:00:00 2001 From: Wun Chiou Date: Thu, 7 May 2026 01:10:02 -0500 Subject: [PATCH 6/7] Adds PNG conversions for SVG site logos --- .gitignore | 1 + app/Conversions/Svg.php | 44 +++++++++++++++++++++ app/Http/Controllers/SettingsController.php | 18 +++++++-- app/Setting.php | 1 + config/media-library.php | 4 +- 5 files changed, 62 insertions(+), 6 deletions(-) create mode 100644 app/Conversions/Svg.php diff --git a/.gitignore b/.gitignore index ae3c8a3f..9038d41e 100644 --- a/.gitignore +++ b/.gitignore @@ -3,6 +3,7 @@ /public/storage /storage/*.key /storage/medialibrary +/storage/media-library /vendor /.idea /.vagrant diff --git a/app/Conversions/Svg.php b/app/Conversions/Svg.php new file mode 100644 index 00000000..76d5b3c3 --- /dev/null +++ b/app/Conversions/Svg.php @@ -0,0 +1,44 @@ +setBackgroundColor(new ImagickPixel('transparent')); // set bg BEFORE reading file to preserve transparency + $image->readImage($file); + $image->setImageFormat('png'); + + file_put_contents($imageFile, $image->getImageBlob()); + + return $imageFile; + } + + public function requirementsAreInstalled(): bool + { + return class_exists(\Imagick::class); + } + + public function supportedExtensions(): Collection + { + return collect(['svg']); + } + + public function supportedMimeTypes(): Collection + { + return collect(['image/svg+xml']); + } +} diff --git a/app/Http/Controllers/SettingsController.php b/app/Http/Controllers/SettingsController.php index c0c8976f..a6842ca8 100644 --- a/app/Http/Controllers/SettingsController.php +++ b/app/Http/Controllers/SettingsController.php @@ -56,12 +56,22 @@ public function updateImage(Request $request, string $setting_name): RedirectRes if ($request->hasFile($setting_name)) { $setting = Setting::firstOrCreate(['name' => $setting_name]); $setting->addMedia($request->file($setting_name))->toMediaCollection($setting_name); - // $message = $setting->processImage($request->file($image_name), 'settings'); - // $url = $setting->getFullImageUrlAttribute(); - $setting->value = url($setting->getFirstMediaUrl($setting_name) ?: '/img/default.png'); + $image = $setting->getFirstMedia($setting_name); + + $setting->update([ + 'value' => url($image?->getUrl() ?: '/img/default.png'), + ]); + + foreach (['thumb', 'medium', 'large'] as $conversion) { + if ($image->hasGeneratedConversion($conversion)) { + Setting::updateOrCreate( + ['name' => "{$setting_name}_{$conversion}"], + ['value' => $image->getUrl($conversion)] + ); + } + } - $setting->save(); $message = 'Settings image has been updated.'; } else { $message = 'Cannot update settings image.'; diff --git a/app/Setting.php b/app/Setting.php index 6f3a7eee..2f4784f9 100644 --- a/app/Setting.php +++ b/app/Setting.php @@ -58,6 +58,7 @@ protected function registerImageThumbnails(Media $media = null, $name, $width, $ ->width($width) ->height($height) ->crop(Manipulations::CROP_TOP, $width, $height) + ->format(Manipulations::FORMAT_PNG) ->performOnCollections('logo'); } diff --git a/config/media-library.php b/config/media-library.php index 002d5e1f..8238ef04 100644 --- a/config/media-library.php +++ b/config/media-library.php @@ -126,13 +126,13 @@ Spatie\MediaLibrary\Conversions\ImageGenerators\Image::class, Spatie\MediaLibrary\Conversions\ImageGenerators\Webp::class, Spatie\MediaLibrary\Conversions\ImageGenerators\Pdf::class, - Spatie\MediaLibrary\Conversions\ImageGenerators\Svg::class, Spatie\MediaLibrary\Conversions\ImageGenerators\Video::class, + App\Conversions\Svg::class, ], /* * The path where to store temporary files while performing image conversions. - * If set to null, storage_path('medialibrary/temp') will be used. + * If set to null, storage_path('media-library/temp') will be used. */ 'temporary_directory_path' => null, From f2aaed447c434a2aaa8fcd020d9732f26feb341f Mon Sep 17 00:00:00 2001 From: Wun Chiou Date: Thu, 7 May 2026 01:11:49 -0500 Subject: [PATCH 7/7] Use uploaded SVG logo conversion for mail template instead of hard-coded image. The conversion will be PNG for Outlook compatibility. --- public/img/monogram-solid-rgb-full.png | Bin 7913 -> 0 bytes resources/views/emails/reviewstudents.blade.php | 11 +++++------ resources/views/emails/template.blade.php | 6 +++--- 3 files changed, 8 insertions(+), 9 deletions(-) delete mode 100644 public/img/monogram-solid-rgb-full.png diff --git a/public/img/monogram-solid-rgb-full.png b/public/img/monogram-solid-rgb-full.png deleted file mode 100644 index 89f5205f3b8c3ead6d6715f6c71fbbb7b2df7eaf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7913 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 eX{powA4W??#Nt6a5h|tuKt)j#@If you would like to review these undergraduate student research applications, please visit the following page. On this page, you will also be able to delegate review of the applications to another person or indicate if you're not accepting students.

- +
-
+ Review Undergraduate Student Research Applications → diff --git a/resources/views/emails/template.blade.php b/resources/views/emails/template.blade.php index f747761d..b79bffba 100644 --- a/resources/views/emails/template.blade.php +++ b/resources/views/emails/template.blade.php @@ -37,11 +37,11 @@ - @if(isset($settings['logo'])) + @isset($settings['logo_thumb']) - @endif + @endisset
- UT Dallas logo + {{ $settings['site_title'] ?? 'Profiles' }} logo {{ $settings['site_title'] ?? 'Profiles' }}