From 2c054b9b794d421c3c1a17d8591fe0c147254968 Mon Sep 17 00:00:00 2001 From: Romulus21 Date: Sun, 9 Aug 2020 17:37:16 +0200 Subject: [PATCH 01/10] fix psr2 --- app/Http/Controllers/AuthUserController.php | 2 +- app/Http/Controllers/BookmarkController.php | 10 +++++----- app/Http/Controllers/EventCategoryController.php | 2 +- app/Http/Controllers/ImageController.php | 4 ++-- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/app/Http/Controllers/AuthUserController.php b/app/Http/Controllers/AuthUserController.php index 970dd33..db62bdc 100644 --- a/app/Http/Controllers/AuthUserController.php +++ b/app/Http/Controllers/AuthUserController.php @@ -9,6 +9,6 @@ class AuthUserController extends Controller { public function show() { - return New UserResource(auth()->user()); + return new UserResource(auth()->user()); } } diff --git a/app/Http/Controllers/BookmarkController.php b/app/Http/Controllers/BookmarkController.php index 11b91b0..869c2aa 100644 --- a/app/Http/Controllers/BookmarkController.php +++ b/app/Http/Controllers/BookmarkController.php @@ -66,17 +66,17 @@ class BookmarkController extends Controller $promise = $client->requestAsync('GET', $url); $response = $promise->wait(); $page = $response->getBody()->getContents(); - preg_match("/\(.*)\<\/title\>/i",$page,$title); + preg_match("/\(.*)\<\/title\>/i", $page, $title); $metas['title'] = $title[1]; - preg_match('/\/i',$page,$favicon); - if(isset($favicon[1])) { - preg_match('/href="(.*)/i',$favicon[1],$favicon); + preg_match('/\/i', $page, $favicon); + if (isset($favicon[1])) { + preg_match('/href="(.*)/i', $favicon[1], $favicon); $metas['favicon'] = $favicon[1]; preg_match('/http/', $metas['favicon'], $matches); - if(empty($matches)) { + if (empty($matches)) { $metas['favicon'] = parse_url($url, PHP_URL_SCHEME).'://'.parse_url($url, PHP_URL_HOST).$metas['favicon']; } //dd($metas['favicon'], $matches, !isset($matches[1]), empty($matches)); diff --git a/app/Http/Controllers/EventCategoryController.php b/app/Http/Controllers/EventCategoryController.php index d0f552a..81c6d18 100644 --- a/app/Http/Controllers/EventCategoryController.php +++ b/app/Http/Controllers/EventCategoryController.php @@ -75,7 +75,7 @@ class EventCategoryController extends Controller */ public function destroy(EventCategory $category) { - if(auth()->user()->isAdmin()) { + if (auth()->user()->isAdmin()) { $category->delete(); return response()->json([], 204); } else { diff --git a/app/Http/Controllers/ImageController.php b/app/Http/Controllers/ImageController.php index 483057d..8db32b5 100644 --- a/app/Http/Controllers/ImageController.php +++ b/app/Http/Controllers/ImageController.php @@ -14,7 +14,7 @@ class ImageController extends Controller public function users(User $user) { foreach (auth()->user()->images as $image) { - if(File::exists(storage_path('app/public/'.$image->path))) { + if (File::exists(storage_path('app/public/'.$image->path))) { File::delete(storage_path('app/public/'.$image->path)); auth()->user()->images()->where('id', $image->id)->delete(); } @@ -39,7 +39,7 @@ class ImageController extends Controller public function memos(Memo $memo) { foreach ($memo->images as $image) { - if(File::exists(storage_path('app/public/'.$image->path))) { + if (File::exists(storage_path('app/public/'.$image->path))) { File::delete(storage_path('app/public/'.$image->path)); $memo->images()->where('id', $image->id)->delete(); } From 885779911c9f5fce7c11bd34b5acd1ecf2eb223c Mon Sep 17 00:00:00 2001 From: Romulus21 Date: Mon, 10 Aug 2020 08:19:29 +0200 Subject: [PATCH 02/10] fix some psr2 code --- app/Http/Controllers/BookmarkController.php | 3 ++- app/Http/Controllers/MeteoController.php | 1 - app/Http/Controllers/ToDoController.php | 2 +- app/Http/Controllers/UserController.php | 6 +++--- app/Mail/{newUserInvitation.php => NewUserInvitation.php} | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) rename app/Mail/{newUserInvitation.php => NewUserInvitation.php} (94%) diff --git a/app/Http/Controllers/BookmarkController.php b/app/Http/Controllers/BookmarkController.php index 869c2aa..24d6d72 100644 --- a/app/Http/Controllers/BookmarkController.php +++ b/app/Http/Controllers/BookmarkController.php @@ -77,7 +77,8 @@ class BookmarkController extends Controller preg_match('/http/', $metas['favicon'], $matches); if (empty($matches)) { - $metas['favicon'] = parse_url($url, PHP_URL_SCHEME).'://'.parse_url($url, PHP_URL_HOST).$metas['favicon']; + $url = parse_url($url, PHP_URL_SCHEME).'://'.parse_url($url, PHP_URL_HOST); + $metas['favicon'] = $url.$metas['favicon']; } //dd($metas['favicon'], $matches, !isset($matches[1]), empty($matches)); } else { diff --git a/app/Http/Controllers/MeteoController.php b/app/Http/Controllers/MeteoController.php index 00c8ffd..f51e4bf 100644 --- a/app/Http/Controllers/MeteoController.php +++ b/app/Http/Controllers/MeteoController.php @@ -18,6 +18,5 @@ class MeteoController extends Controller $response = $promise->wait(); return $response->getBody()->getContents(); - } } diff --git a/app/Http/Controllers/ToDoController.php b/app/Http/Controllers/ToDoController.php index 94f29d2..5d2e4d1 100644 --- a/app/Http/Controllers/ToDoController.php +++ b/app/Http/Controllers/ToDoController.php @@ -63,7 +63,7 @@ class ToDoController extends Controller { $this->authorize('update', $toDoList); - ($toDo->checked_at) ? $toDo->checked_at = NULL : $toDo->checked_at = now(); + ($toDo->checked_at) ? $toDo->checked_at = null : $toDo->checked_at = now(); $toDo->save(); return (new ToDoResource($toDo)) diff --git a/app/Http/Controllers/UserController.php b/app/Http/Controllers/UserController.php index 72c0b68..2376322 100644 --- a/app/Http/Controllers/UserController.php +++ b/app/Http/Controllers/UserController.php @@ -2,7 +2,7 @@ namespace App\Http\Controllers; -use App\Mail\newUserInvitation; +use App\Mail\NewUserInvitation; use App\User; use App\Http\Resources\User as UserResource; use Illuminate\Http\Request; @@ -27,7 +27,7 @@ class UserController extends Controller request()['password'] = Hash::make(Str::random(30)); $user = User::create($this->validateData()); - Mail::to($user->email)->send(new newUserInvitation($user)); + Mail::to($user->email)->send(new NewUserInvitation($user)); return (new UserResource($user)) ->response() @@ -36,7 +36,7 @@ class UserController extends Controller public function show(User $user) { - return New UserResource($user); + return new UserResource($user); } private function validateData() diff --git a/app/Mail/newUserInvitation.php b/app/Mail/NewUserInvitation.php similarity index 94% rename from app/Mail/newUserInvitation.php rename to app/Mail/NewUserInvitation.php index 6bfb574..4aa3acc 100644 --- a/app/Mail/newUserInvitation.php +++ b/app/Mail/NewUserInvitation.php @@ -8,7 +8,7 @@ use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Mail\Mailable; use Illuminate\Queue\SerializesModels; -class newUserInvitation extends Mailable +class NewUserInvitation extends Mailable { use Queueable, SerializesModels; From 8888b2d7dff945215642f34244a9985fa3f483a0 Mon Sep 17 00:00:00 2001 From: Romulus21 Date: Mon, 10 Aug 2020 08:21:42 +0200 Subject: [PATCH 03/10] test to fix storage test error --- .gitlab-ci.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index d416eb4..3c9f9ce 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -28,6 +28,8 @@ composer: script: - composer install --prefer-dist --no-ansi --no-interaction --no-progress --no-scripts - cp .env.example .env + - chown -R $USER:www-data storage/ + - chmod -R g+w storage/ - php artisan key:generate artifacts: expire_in: 1 month From ee1003383a2494b44bc5b37f880f6c620b664bf4 Mon Sep 17 00:00:00 2001 From: Romulus21 Date: Mon, 10 Aug 2020 08:26:45 +0200 Subject: [PATCH 04/10] fix test storage image --- .gitlab-ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 3c9f9ce..746651c 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -28,8 +28,6 @@ composer: script: - composer install --prefer-dist --no-ansi --no-interaction --no-progress --no-scripts - cp .env.example .env - - chown -R $USER:www-data storage/ - - chmod -R g+w storage/ - php artisan key:generate artifacts: expire_in: 1 month @@ -64,4 +62,6 @@ phpunit: dependencies: - composer script: + - chown -R $USER:www-data storage/ + - chmod -R g+w storage/ - phpunit --coverage-text --colors=never From b514020ca3bf16769284ca86c4e898ff6c99873e Mon Sep 17 00:00:00 2001 From: Romulus21 Date: Mon, 10 Aug 2020 12:05:57 +0200 Subject: [PATCH 05/10] test mkdir on gitlabCI --- .gitlab-ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 746651c..1b71391 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -62,6 +62,7 @@ phpunit: dependencies: - composer script: + - mkdir storage/images - chown -R $USER:www-data storage/ - chmod -R g+w storage/ - phpunit --coverage-text --colors=never From e8740a701a61bfc5574011d2cd0fea222cea2b28 Mon Sep 17 00:00:00 2001 From: Romulus21 Date: Mon, 10 Aug 2020 12:09:40 +0200 Subject: [PATCH 06/10] test mkdir on gitlabCI --- .gitlab-ci.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 1b71391..d3337d0 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -62,6 +62,8 @@ phpunit: dependencies: - composer script: + - ls + - pwd - mkdir storage/images - chown -R $USER:www-data storage/ - chmod -R g+w storage/ From 672d20443dbe22e243f8a2780f9933ae05932e8a Mon Sep 17 00:00:00 2001 From: Romulus21 Date: Mon, 10 Aug 2020 12:12:39 +0200 Subject: [PATCH 07/10] test mkdir on gitlabCI --- .gitlab-ci.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index d3337d0..ed5a9f8 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -62,9 +62,8 @@ phpunit: dependencies: - composer script: - - ls - - pwd - - mkdir storage/images + - mkdir storage/public/images + - mkdir storage/public/thumbnail - chown -R $USER:www-data storage/ - chmod -R g+w storage/ - phpunit --coverage-text --colors=never From 3c35d688b75dc5e91ab5db4fb226e19841c72209 Mon Sep 17 00:00:00 2001 From: Romulus21 Date: Mon, 10 Aug 2020 12:15:49 +0200 Subject: [PATCH 08/10] test mkdir on gitlabCI --- .gitlab-ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index ed5a9f8..c321a8c 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -62,6 +62,7 @@ phpunit: dependencies: - composer script: + - mkdir storage/public - mkdir storage/public/images - mkdir storage/public/thumbnail - chown -R $USER:www-data storage/ From 551cdc5dfcf4684ef47096c4c85ecb521c9b9702 Mon Sep 17 00:00:00 2001 From: Romulus21 Date: Fri, 14 Aug 2020 23:32:44 +0200 Subject: [PATCH 09/10] add job to send mail to new user --- app/Http/Controllers/UserController.php | 6 +-- app/Jobs/SendMailNewUserJob.php | 39 +++++++++++++++++++ .../2020_08_14_212453_create_jobs_table.php | 36 +++++++++++++++++ ..._081942_create_event_categories_table.php} | 0 ...2020_08_15_085105_create_events_table.php} | 0 5 files changed, 77 insertions(+), 4 deletions(-) create mode 100644 app/Jobs/SendMailNewUserJob.php create mode 100644 database/migrations/2020_08_14_212453_create_jobs_table.php rename database/migrations/{2020_07_19_081942_create_event_categories_table.php => 2020_08_15_081942_create_event_categories_table.php} (100%) rename database/migrations/{2020_07_19_085105_create_events_table.php => 2020_08_15_085105_create_events_table.php} (100%) diff --git a/app/Http/Controllers/UserController.php b/app/Http/Controllers/UserController.php index 2376322..efb04e1 100644 --- a/app/Http/Controllers/UserController.php +++ b/app/Http/Controllers/UserController.php @@ -2,12 +2,10 @@ namespace App\Http\Controllers; -use App\Mail\NewUserInvitation; +use App\Jobs\SendMailNewUserJob; use App\User; use App\Http\Resources\User as UserResource; -use Illuminate\Http\Request; use Illuminate\Support\Facades\Hash; -use Illuminate\Support\Facades\Mail; use Illuminate\Support\Str; use Symfony\Component\HttpFoundation\Response; @@ -27,7 +25,7 @@ class UserController extends Controller request()['password'] = Hash::make(Str::random(30)); $user = User::create($this->validateData()); - Mail::to($user->email)->send(new NewUserInvitation($user)); + SendMailNewUserJob::dispatch($user); return (new UserResource($user)) ->response() diff --git a/app/Jobs/SendMailNewUserJob.php b/app/Jobs/SendMailNewUserJob.php new file mode 100644 index 0000000..db18734 --- /dev/null +++ b/app/Jobs/SendMailNewUserJob.php @@ -0,0 +1,39 @@ +user = $user; + } + + /** + * Execute the job. + * + * @return void + */ + public function handle() + { + Mail::to($this->user->email)->send(new NewUserInvitation($this->user)); + } +} diff --git a/database/migrations/2020_08_14_212453_create_jobs_table.php b/database/migrations/2020_08_14_212453_create_jobs_table.php new file mode 100644 index 0000000..1be9e8a --- /dev/null +++ b/database/migrations/2020_08_14_212453_create_jobs_table.php @@ -0,0 +1,36 @@ +bigIncrements('id'); + $table->string('queue')->index(); + $table->longText('payload'); + $table->unsignedTinyInteger('attempts'); + $table->unsignedInteger('reserved_at')->nullable(); + $table->unsignedInteger('available_at'); + $table->unsignedInteger('created_at'); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('jobs'); + } +} diff --git a/database/migrations/2020_07_19_081942_create_event_categories_table.php b/database/migrations/2020_08_15_081942_create_event_categories_table.php similarity index 100% rename from database/migrations/2020_07_19_081942_create_event_categories_table.php rename to database/migrations/2020_08_15_081942_create_event_categories_table.php diff --git a/database/migrations/2020_07_19_085105_create_events_table.php b/database/migrations/2020_08_15_085105_create_events_table.php similarity index 100% rename from database/migrations/2020_07_19_085105_create_events_table.php rename to database/migrations/2020_08_15_085105_create_events_table.php From 08c93b569d9742a321436de23332d2f68a67290a Mon Sep 17 00:00:00 2001 From: Romulus21 Date: Fri, 14 Aug 2020 23:58:01 +0200 Subject: [PATCH 10/10] add vendor mail with new logo --- .../views/vendor/mail/html/button.blade.php | 19 ++ .../views/vendor/mail/html/footer.blade.php | 11 + .../views/vendor/mail/html/header.blade.php | 11 + .../views/vendor/mail/html/layout.blade.php | 54 ++++ .../views/vendor/mail/html/message.blade.php | 27 ++ .../views/vendor/mail/html/panel.blade.php | 14 + .../views/vendor/mail/html/subcopy.blade.php | 7 + .../views/vendor/mail/html/table.blade.php | 3 + .../views/vendor/mail/html/themes/default.css | 289 ++++++++++++++++++ .../views/vendor/mail/text/button.blade.php | 1 + .../views/vendor/mail/text/footer.blade.php | 1 + .../views/vendor/mail/text/header.blade.php | 1 + .../views/vendor/mail/text/layout.blade.php | 9 + .../views/vendor/mail/text/message.blade.php | 27 ++ .../views/vendor/mail/text/panel.blade.php | 1 + .../views/vendor/mail/text/subcopy.blade.php | 1 + .../views/vendor/mail/text/table.blade.php | 1 + 17 files changed, 477 insertions(+) create mode 100644 resources/views/vendor/mail/html/button.blade.php create mode 100644 resources/views/vendor/mail/html/footer.blade.php create mode 100644 resources/views/vendor/mail/html/header.blade.php create mode 100644 resources/views/vendor/mail/html/layout.blade.php create mode 100644 resources/views/vendor/mail/html/message.blade.php create mode 100644 resources/views/vendor/mail/html/panel.blade.php create mode 100644 resources/views/vendor/mail/html/subcopy.blade.php create mode 100644 resources/views/vendor/mail/html/table.blade.php create mode 100644 resources/views/vendor/mail/html/themes/default.css create mode 100644 resources/views/vendor/mail/text/button.blade.php create mode 100644 resources/views/vendor/mail/text/footer.blade.php create mode 100644 resources/views/vendor/mail/text/header.blade.php create mode 100644 resources/views/vendor/mail/text/layout.blade.php create mode 100644 resources/views/vendor/mail/text/message.blade.php create mode 100644 resources/views/vendor/mail/text/panel.blade.php create mode 100644 resources/views/vendor/mail/text/subcopy.blade.php create mode 100644 resources/views/vendor/mail/text/table.blade.php diff --git a/resources/views/vendor/mail/html/button.blade.php b/resources/views/vendor/mail/html/button.blade.php new file mode 100644 index 0000000..e74fe55 --- /dev/null +++ b/resources/views/vendor/mail/html/button.blade.php @@ -0,0 +1,19 @@ + + + + + diff --git a/resources/views/vendor/mail/html/footer.blade.php b/resources/views/vendor/mail/html/footer.blade.php new file mode 100644 index 0000000..3ff41f8 --- /dev/null +++ b/resources/views/vendor/mail/html/footer.blade.php @@ -0,0 +1,11 @@ + + + + + + + + + diff --git a/resources/views/vendor/mail/html/header.blade.php b/resources/views/vendor/mail/html/header.blade.php new file mode 100644 index 0000000..77369e2 --- /dev/null +++ b/resources/views/vendor/mail/html/header.blade.php @@ -0,0 +1,11 @@ + + + +@if (trim($slot) === 'Laravel') + +@else +{{ $slot }} +@endif + + + diff --git a/resources/views/vendor/mail/html/layout.blade.php b/resources/views/vendor/mail/html/layout.blade.php new file mode 100644 index 0000000..02a54e2 --- /dev/null +++ b/resources/views/vendor/mail/html/layout.blade.php @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + diff --git a/resources/views/vendor/mail/html/message.blade.php b/resources/views/vendor/mail/html/message.blade.php new file mode 100644 index 0000000..9779f2f --- /dev/null +++ b/resources/views/vendor/mail/html/message.blade.php @@ -0,0 +1,27 @@ +@component('mail::layout') +{{-- Header --}} +@slot('header') +@component('mail::header', ['url' => config('app.url')]) + +@endcomponent +@endslot + +{{-- Body --}} +{{ $slot }} + +{{-- Subcopy --}} +@isset($subcopy) +@slot('subcopy') +@component('mail::subcopy') +{{ $subcopy }} +@endcomponent +@endslot +@endisset + +{{-- Footer --}} +@slot('footer') +@component('mail::footer') +© {{ date('Y') }} {{ config('app.name') }}. @lang('All rights reserved.') +@endcomponent +@endslot +@endcomponent diff --git a/resources/views/vendor/mail/html/panel.blade.php b/resources/views/vendor/mail/html/panel.blade.php new file mode 100644 index 0000000..2975a60 --- /dev/null +++ b/resources/views/vendor/mail/html/panel.blade.php @@ -0,0 +1,14 @@ + + + + + + diff --git a/resources/views/vendor/mail/html/subcopy.blade.php b/resources/views/vendor/mail/html/subcopy.blade.php new file mode 100644 index 0000000..790ce6c --- /dev/null +++ b/resources/views/vendor/mail/html/subcopy.blade.php @@ -0,0 +1,7 @@ + + + + + diff --git a/resources/views/vendor/mail/html/table.blade.php b/resources/views/vendor/mail/html/table.blade.php new file mode 100644 index 0000000..a5f3348 --- /dev/null +++ b/resources/views/vendor/mail/html/table.blade.php @@ -0,0 +1,3 @@ +
+{{ Illuminate\Mail\Markdown::parse($slot) }} +
diff --git a/resources/views/vendor/mail/html/themes/default.css b/resources/views/vendor/mail/html/themes/default.css new file mode 100644 index 0000000..350fb83 --- /dev/null +++ b/resources/views/vendor/mail/html/themes/default.css @@ -0,0 +1,289 @@ +/* Base */ + +body, +body *:not(html):not(style):not(br):not(tr):not(code) { + box-sizing: border-box; + font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, + 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'; + position: relative; +} + +body { + -webkit-text-size-adjust: none; + background-color: #ffffff; + color: #718096; + height: 100%; + line-height: 1.4; + margin: 0; + padding: 0; + width: 100% !important; +} + +p, +ul, +ol, +blockquote { + line-height: 1.4; + text-align: left; +} + +a { + color: #3869d4; +} + +a img { + border: none; +} + +/* Typography */ + +h1 { + color: #3d4852; + font-size: 18px; + font-weight: bold; + margin-top: 0; + text-align: left; +} + +h2 { + font-size: 16px; + font-weight: bold; + margin-top: 0; + text-align: left; +} + +h3 { + font-size: 14px; + font-weight: bold; + margin-top: 0; + text-align: left; +} + +p { + font-size: 16px; + line-height: 1.5em; + margin-top: 0; + text-align: left; +} + +p.sub { + font-size: 12px; +} + +img { + max-width: 100%; +} + +/* Layout */ + +.wrapper { + -premailer-cellpadding: 0; + -premailer-cellspacing: 0; + -premailer-width: 100%; + background-color: #edf2f7; + margin: 0; + padding: 0; + width: 100%; +} + +.content { + -premailer-cellpadding: 0; + -premailer-cellspacing: 0; + -premailer-width: 100%; + margin: 0; + padding: 0; + width: 100%; +} + +/* Header */ + +.header { + padding: 25px 0; + text-align: center; +} + +.header a { + color: #3d4852; + font-size: 19px; + font-weight: bold; + text-decoration: none; +} + +/* Logo */ + +.logo { + height: 75px; + width: 75px; +} + +/* Body */ + +.body { + -premailer-cellpadding: 0; + -premailer-cellspacing: 0; + -premailer-width: 100%; + background-color: #edf2f7; + border-bottom: 1px solid #edf2f7; + border-top: 1px solid #edf2f7; + margin: 0; + padding: 0; + width: 100%; +} + +.inner-body { + -premailer-cellpadding: 0; + -premailer-cellspacing: 0; + -premailer-width: 570px; + background-color: #ffffff; + border-color: #e8e5ef; + border-radius: 2px; + border-width: 1px; + box-shadow: 0 2px 0 rgba(0, 0, 150, 0.025), 2px 4px 0 rgba(0, 0, 150, 0.015); + margin: 0 auto; + padding: 0; + width: 570px; +} + +/* Subcopy */ + +.subcopy { + border-top: 1px solid #e8e5ef; + margin-top: 25px; + padding-top: 25px; +} + +.subcopy p { + font-size: 14px; +} + +/* Footer */ + +.footer { + -premailer-cellpadding: 0; + -premailer-cellspacing: 0; + -premailer-width: 570px; + margin: 0 auto; + padding: 0; + text-align: center; + width: 570px; +} + +.footer p { + color: #b0adc5; + font-size: 12px; + text-align: center; +} + +.footer a { + color: #b0adc5; + text-decoration: underline; +} + +/* Tables */ + +.table table { + -premailer-cellpadding: 0; + -premailer-cellspacing: 0; + -premailer-width: 100%; + margin: 30px auto; + width: 100%; +} + +.table th { + border-bottom: 1px solid #edeff2; + margin: 0; + padding-bottom: 8px; +} + +.table td { + color: #74787e; + font-size: 15px; + line-height: 18px; + margin: 0; + padding: 10px 0; +} + +.content-cell { + max-width: 100vw; + padding: 32px; +} + +/* Buttons */ + +.action { + -premailer-cellpadding: 0; + -premailer-cellspacing: 0; + -premailer-width: 100%; + margin: 30px auto; + padding: 0; + text-align: center; + width: 100%; +} + +.button { + -webkit-text-size-adjust: none; + border-radius: 4px; + color: #fff; + display: inline-block; + overflow: hidden; + text-decoration: none; +} + +.button-blue, +.button-primary { + background-color: #2d3748; + border-bottom: 8px solid #2d3748; + border-left: 18px solid #2d3748; + border-right: 18px solid #2d3748; + border-top: 8px solid #2d3748; +} + +.button-green, +.button-success { + background-color: #48bb78; + border-bottom: 8px solid #48bb78; + border-left: 18px solid #48bb78; + border-right: 18px solid #48bb78; + border-top: 8px solid #48bb78; +} + +.button-red, +.button-error { + background-color: #e53e3e; + border-bottom: 8px solid #e53e3e; + border-left: 18px solid #e53e3e; + border-right: 18px solid #e53e3e; + border-top: 8px solid #e53e3e; +} + +/* Panels */ + +.panel { + border-left: #2d3748 solid 4px; + margin: 21px 0; +} + +.panel-content { + background-color: #edf2f7; + color: #718096; + padding: 16px; +} + +.panel-content p { + color: #718096; +} + +.panel-item { + padding: 0; +} + +.panel-item p:last-of-type { + margin-bottom: 0; + padding-bottom: 0; +} + +/* Utilities */ + +.break-all { + word-break: break-all; +} diff --git a/resources/views/vendor/mail/text/button.blade.php b/resources/views/vendor/mail/text/button.blade.php new file mode 100644 index 0000000..97444eb --- /dev/null +++ b/resources/views/vendor/mail/text/button.blade.php @@ -0,0 +1 @@ +{{ $slot }}: {{ $url }} diff --git a/resources/views/vendor/mail/text/footer.blade.php b/resources/views/vendor/mail/text/footer.blade.php new file mode 100644 index 0000000..3338f62 --- /dev/null +++ b/resources/views/vendor/mail/text/footer.blade.php @@ -0,0 +1 @@ +{{ $slot }} diff --git a/resources/views/vendor/mail/text/header.blade.php b/resources/views/vendor/mail/text/header.blade.php new file mode 100644 index 0000000..aaa3e57 --- /dev/null +++ b/resources/views/vendor/mail/text/header.blade.php @@ -0,0 +1 @@ +[{{ $slot }}]({{ $url }}) diff --git a/resources/views/vendor/mail/text/layout.blade.php b/resources/views/vendor/mail/text/layout.blade.php new file mode 100644 index 0000000..9378baa --- /dev/null +++ b/resources/views/vendor/mail/text/layout.blade.php @@ -0,0 +1,9 @@ +{!! strip_tags($header) !!} + +{!! strip_tags($slot) !!} +@isset($subcopy) + +{!! strip_tags($subcopy) !!} +@endisset + +{!! strip_tags($footer) !!} diff --git a/resources/views/vendor/mail/text/message.blade.php b/resources/views/vendor/mail/text/message.blade.php new file mode 100644 index 0000000..1ae9ed8 --- /dev/null +++ b/resources/views/vendor/mail/text/message.blade.php @@ -0,0 +1,27 @@ +@component('mail::layout') + {{-- Header --}} + @slot('header') + @component('mail::header', ['url' => config('app.url')]) + {{ config('app.name') }} + @endcomponent + @endslot + + {{-- Body --}} + {{ $slot }} + + {{-- Subcopy --}} + @isset($subcopy) + @slot('subcopy') + @component('mail::subcopy') + {{ $subcopy }} + @endcomponent + @endslot + @endisset + + {{-- Footer --}} + @slot('footer') + @component('mail::footer') + © {{ date('Y') }} {{ config('app.name') }}. @lang('All rights reserved.') + @endcomponent + @endslot +@endcomponent diff --git a/resources/views/vendor/mail/text/panel.blade.php b/resources/views/vendor/mail/text/panel.blade.php new file mode 100644 index 0000000..3338f62 --- /dev/null +++ b/resources/views/vendor/mail/text/panel.blade.php @@ -0,0 +1 @@ +{{ $slot }} diff --git a/resources/views/vendor/mail/text/subcopy.blade.php b/resources/views/vendor/mail/text/subcopy.blade.php new file mode 100644 index 0000000..3338f62 --- /dev/null +++ b/resources/views/vendor/mail/text/subcopy.blade.php @@ -0,0 +1 @@ +{{ $slot }} diff --git a/resources/views/vendor/mail/text/table.blade.php b/resources/views/vendor/mail/text/table.blade.php new file mode 100644 index 0000000..3338f62 --- /dev/null +++ b/resources/views/vendor/mail/text/table.blade.php @@ -0,0 +1 @@ +{{ $slot }}