From: Louis Jeckel Date: Wed, 29 Apr 2020 18:30:19 +0000 (+0200) Subject: new emai design X-Git-Url: http://git.cubedesigners.com/?a=commitdiff_plain;h=ce752d563d41890271b01b8b027dfa3ed73668e8;p=psq.git new emai design --- diff --git a/.idea/lettre-pharma.iml b/.idea/lettre-pharma.iml index 1e1469b..e91b2f6 100644 --- a/.idea/lettre-pharma.iml +++ b/.idea/lettre-pharma.iml @@ -15,20 +15,26 @@ + + + + + + @@ -40,10 +46,12 @@ + + diff --git a/.idea/php.xml b/.idea/php.xml index 70e1553..748259a 100644 --- a/.idea/php.xml +++ b/.idea/php.xml @@ -185,6 +185,14 @@ + + + + + + + + diff --git a/app/Facades/Html2Markdown.php b/app/Facades/Html2Markdown.php new file mode 100644 index 0000000..cd357b2 --- /dev/null +++ b/app/Facades/Html2Markdown.php @@ -0,0 +1,18 @@ + \App\User::subscribed()->count()]; + return ['data' => \App\User::recievesEmails()->count()]; } /** @@ -98,15 +99,18 @@ class PublishController extends Controller } - - /** * @param Request $request - * @return \Illuminate\View\View + * @return string + * @throws \ReflectionException */ public function previewEmail(Request $request) { - return view('emails.batch', $request->toArray()); + return (new BatchMail( + $request->input('content'), + $request->input('subject'), + $request->input('link') + ))->render(); } diff --git a/app/Jobs/ProcessEmailBatch.php b/app/Jobs/ProcessEmailBatch.php index 72abddb..6eec3b4 100644 --- a/app/Jobs/ProcessEmailBatch.php +++ b/app/Jobs/ProcessEmailBatch.php @@ -5,6 +5,7 @@ namespace App\Jobs; use App\EmailBatch; use App\Events\ProcessBatch; use App\Facades\Mailgun; +use App\Mail\BatchMail; use App\User; use Illuminate\Bus\Queueable; use Illuminate\Contracts\Queue\ShouldQueue; @@ -52,7 +53,7 @@ class ProcessEmailBatch implements ShouldQueue public function handle() { /** @var Collection $users */ - $users = User::subscribed()->get(); + $users = User::recievesEmails()->get(); $size = env('MAILGUN_CHUNK_SIZE', 200); $chunks = $users->chunk($size); @@ -66,18 +67,20 @@ class ProcessEmailBatch implements ShouldQueue foreach($chunks as $chunk) { - $variables = json_encode($chunk->mapWithKeys(function(User $user) { + $variables = json_encode($chunk->mapWithKeys(function (User $user) { return [$user->email => [ 'id' => $user->id, 'name' => $user->name, 'file_url' => $this->batch->file->getUrlWithToken($user), ]]; - })); + }), JSON_THROW_ON_ERROR, 512); + + $view = (new BatchMail( + $this->batch->content['body'], + $this->batch->subject, + ))->render(); + - $view = view('emails.batch', [ - 'subject' => $this->batch->subject, - 'content' => $this->batch->content['body'], - ])->render(); $params = [ 'from' => env('MAIL_FROM_NAME').' <'.env('MAIL_FROM_ADDRESS').'>', @@ -85,7 +88,7 @@ class ProcessEmailBatch implements ShouldQueue 'subject' => $this->batch->subject, 'recipient-variables' => $variables, 'html' => $view, - 'o:tag' => [$this->batch->getTag(), env('APP_ENV'), 'batch'], + 'o:tag' => [$this->batch->getTag(), env('APP_ENV').'_batch'], 'o:testmode' => env('MAILGUN_TEST_MODE', 'yes'), ]; diff --git a/app/Mail/BatchMail.php b/app/Mail/BatchMail.php new file mode 100644 index 0000000..6636574 --- /dev/null +++ b/app/Mail/BatchMail.php @@ -0,0 +1,45 @@ +content = Html2Markdown::convert($content); + $this->subject = $subject; + $this->link = $link; + } + + /** + * Build the message. + * + * @return $this + */ + public function build() + { + return $this->markdown('emails.batch')->with(['subject' => $this->subject]); + } +} diff --git a/app/Notifications/RegistrationComplete.php b/app/Notifications/RegistrationComplete.php index 05a80ce..0c3dac1 100644 --- a/app/Notifications/RegistrationComplete.php +++ b/app/Notifications/RegistrationComplete.php @@ -41,7 +41,6 @@ class RegistrationComplete extends Notification implements ShouldQueue public function toMail($notifiable) { return (new MailMessage) - ->markdown('emails.notification') ->subject('Activation réussie') ->line("Votre compte à bien été activé !") ->line("Vous allez pouvoir recevoir tous les prochains numéros de *Prescription Santé : Le Quotidien*") diff --git a/app/PdfFile.php b/app/PdfFile.php index e775d73..35dfc67 100644 --- a/app/PdfFile.php +++ b/app/PdfFile.php @@ -118,9 +118,9 @@ class PdfFile extends TwillModel implements Sortable $this->makeJson(); $this->makeCover(); - $this->makeSearchable(); - if(!env('APP_ENV') === 'local') - $this->shortenLinks(); +// $this->makeSearchable(); +// if(!env('APP_ENV') === 'local') +// $this->shortenLinks(); $this->saveToCloud(); } diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php index a203ee8..3280f56 100644 --- a/app/Providers/AppServiceProvider.php +++ b/app/Providers/AppServiceProvider.php @@ -8,6 +8,7 @@ use App\PdfFile; use App\User; use Illuminate\Database\Eloquent\Relations\Relation; use Illuminate\Support\ServiceProvider; +use League\HTMLToMarkdown\HtmlConverter; use Mailgun\Mailgun; use Vaites\ApacheTika\Client; @@ -31,6 +32,10 @@ class AppServiceProvider extends ServiceProvider ); }); + $this->app->bind(HtmlConverter::class, function($app) { + return new HtmlConverter(['header_style'=>'atx']); + }); + diff --git a/app/User.php b/app/User.php index 836da12..9b9b420 100644 --- a/app/User.php +++ b/app/User.php @@ -2,11 +2,15 @@ namespace App; + use Illuminate\Contracts\Auth\MustVerifyEmail; use Illuminate\Database\Eloquent\Builder; use Illuminate\Database\Eloquent\Relations\BelongsTo; +use Illuminate\Database\Eloquent\Relations\HasMany; use Illuminate\Foundation\Auth\User as Authenticatable; use Illuminate\Notifications\Notifiable; +use Illuminate\Support\Carbon; +use Laravel\Cashier\Billable; use Laravel\Scout\Searchable; /** @@ -19,11 +23,13 @@ use Laravel\Scout\Searchable; * @property Organization $organization * @property string $position * @property bool $isSubscribed + * @property Carbon $trial_ends_at */ class User extends Authenticatable { use Notifiable; use Searchable; + use Billable; /** * The attributes that are mass assignable. @@ -62,8 +68,11 @@ class User extends Authenticatable 'email_verified_at' => 'datetime', 'subscription_active' => 'bool', 'reg_complete' => 'bool', + 'trial_until' => 'datetime', + 'active_until' => 'datetime', ]; + public function toSearchableArray() { return [ @@ -74,6 +83,8 @@ class User extends Authenticatable ]; } + public int $trialDurationDays = 14; + /** * @return BelongsTo */ @@ -94,11 +105,21 @@ class User extends Authenticatable return false; } + /** + * @return HasMany + */ public function loginTokens() { return $this->hasMany(LoginToken::class); } + /** + * @param $route + * @param array $params + * @param null $validUntil + * @param bool $absolute + * @return string + */ public function routeWithToken($route, $params = [], $validUntil = null, $absolute = true) { $token = [ 'token' => LoginToken::generateToken($this, $validUntil)->token ]; @@ -108,14 +129,22 @@ class User extends Authenticatable /** * @param Builder $builder */ - public function scopeSubscribed(Builder $builder) + public function scopeRecievesEmails(Builder $builder): void + { + $builder->whereHas('organization', fn($builder) => $builder->subscribed()) + ->orWhereDate('trial_ends_at', '>', now()); + } + + /** + * Starts trial period + */ + public function startTrial(): void { - $builder->whereHas('organization', function(Builder $builder) { - $builder->subscribed(); - }); + $this->trial_ends_at = now()->addDays($this->trialDurationDays); } + /** * @return string|null */ @@ -129,6 +158,13 @@ class User extends Authenticatable } + /** + * @return bool + */ + public function getIsIndividualAttribute(): bool + { + return $this->organization === null; + } diff --git a/composer.json b/composer.json index b25cbf7..203d856 100644 --- a/composer.json +++ b/composer.json @@ -22,11 +22,13 @@ "itsgoingd/clockwork": "^4.1", "kriswallsmith/buzz": "^1.1", "kub-at/php-simple-html-dom-parser": "^1.9", + "laravel/cashier": "^11.2", "laravel/framework": "^7.0", "laravel/horizon": "^4.2", "laravel/nova": "~3.0", "laravel/scout": "^8.0", "laravel/tinker": "^2.0", + "league/html-to-markdown": "^4.9", "mailgun/mailgun-php": "^3.0", "nyholm/psr7": "^1.2", "pusher/pusher-php-server": "~4.0", diff --git a/composer.lock b/composer.lock index 658a96a..6437f37 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "5c7ff2cb508ab34b1acf5cdff253d1c0", + "content-hash": "dd380938d2af9ce010a6b0c03d32998e", "packages": [ { "name": "algolia/algoliasearch-client-php", @@ -1248,6 +1248,72 @@ ], "time": "2019-10-30T14:39:59+00:00" }, + { + "name": "dompdf/dompdf", + "version": "v0.8.5", + "source": { + "type": "git", + "url": "https://github.com/dompdf/dompdf.git", + "reference": "6782abfc090b132134cd6cea0ec6d76f0fce2c56" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/dompdf/dompdf/zipball/6782abfc090b132134cd6cea0ec6d76f0fce2c56", + "reference": "6782abfc090b132134cd6cea0ec6d76f0fce2c56", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-mbstring": "*", + "phenx/php-font-lib": "^0.5.1", + "phenx/php-svg-lib": "^0.3.3", + "php": "^7.1" + }, + "require-dev": { + "phpunit/phpunit": "^7.5", + "squizlabs/php_codesniffer": "^3.5" + }, + "suggest": { + "ext-gd": "Needed to process images", + "ext-gmagick": "Improves image processing performance", + "ext-imagick": "Improves image processing performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-develop": "0.7-dev" + } + }, + "autoload": { + "psr-4": { + "Dompdf\\": "src/" + }, + "classmap": [ + "lib/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-2.1" + ], + "authors": [ + { + "name": "Fabien Ménager", + "email": "fabien.menager@gmail.com" + }, + { + "name": "Brian Sweeney", + "email": "eclecticgeek@gmail.com" + }, + { + "name": "Gabriel Bull", + "email": "me@gabrielbull.com" + } + ], + "description": "DOMPDF is a CSS 2.1 compliant HTML to PDF converter", + "homepage": "https://github.com/dompdf/dompdf", + "time": "2020-02-20T03:52:51+00:00" + }, { "name": "dragonmantank/cron-expression", "version": "v2.3.0", @@ -2237,6 +2303,80 @@ ], "time": "2019-10-25T12:34:43+00:00" }, + { + "name": "laravel/cashier", + "version": "v11.2.2", + "source": { + "type": "git", + "url": "https://github.com/laravel/cashier.git", + "reference": "329f4e0bd93bef837e9291b2d09915009bda578f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/laravel/cashier/zipball/329f4e0bd93bef837e9291b2d09915009bda578f", + "reference": "329f4e0bd93bef837e9291b2d09915009bda578f", + "shasum": "" + }, + "require": { + "dompdf/dompdf": "^0.8.0", + "ext-json": "*", + "illuminate/contracts": "^6.0|^7.0", + "illuminate/database": "^6.0|^7.0", + "illuminate/http": "^6.0|^7.0", + "illuminate/log": "^6.0|^7.0", + "illuminate/notifications": "^6.0|^7.0", + "illuminate/routing": "^6.0|^7.0", + "illuminate/support": "^6.0|^7.0", + "illuminate/view": "^6.0|^7.0", + "moneyphp/money": "^3.2", + "nesbot/carbon": "^2.0", + "php": "^7.2", + "stripe/stripe-php": "^7.0", + "symfony/http-kernel": "^4.3|^5.0", + "symfony/intl": "^4.3|^5.0" + }, + "require-dev": { + "mockery/mockery": "^1.0", + "orchestra/testbench": "^4.0|^5.0", + "phpunit/phpunit": "^8.0|^9.0" + }, + "suggest": { + "ext-intl": "Allows for more locales besides the default \"en\" when formatting money values." + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "11.x-dev" + }, + "laravel": { + "providers": [ + "Laravel\\Cashier\\CashierServiceProvider" + ] + } + }, + "autoload": { + "psr-4": { + "Laravel\\Cashier\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Taylor Otwell", + "email": "taylorotwell@gmail.com" + } + ], + "description": "Laravel Cashier provides an expressive, fluent interface to Stripe's subscription billing services.", + "keywords": [ + "billing", + "laravel", + "stripe" + ], + "time": "2020-04-28T15:44:32+00:00" + }, { "name": "laravel/framework", "version": "v7.4.0", @@ -3175,6 +3315,70 @@ "homepage": "http://glide.thephpleague.com", "time": "2020-03-05T12:38:10+00:00" }, + { + "name": "league/html-to-markdown", + "version": "4.9.1", + "source": { + "type": "git", + "url": "https://github.com/thephpleague/html-to-markdown.git", + "reference": "1dcd0f85de786f46a7f224a27cc3d709ddd2a68c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/thephpleague/html-to-markdown/zipball/1dcd0f85de786f46a7f224a27cc3d709ddd2a68c", + "reference": "1dcd0f85de786f46a7f224a27cc3d709ddd2a68c", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-xml": "*", + "php": ">=5.3.3" + }, + "require-dev": { + "mikehaertl/php-shellcommand": "~1.1.0", + "phpunit/phpunit": "^4.8|^5.7", + "scrutinizer/ocular": "~1.1" + }, + "bin": [ + "bin/html-to-markdown" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.10-dev" + } + }, + "autoload": { + "psr-4": { + "League\\HTMLToMarkdown\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Colin O'Dell", + "email": "colinodell@gmail.com", + "homepage": "https://www.colinodell.com", + "role": "Lead Developer" + }, + { + "name": "Nick Cernis", + "email": "nick@cern.is", + "homepage": "http://modernnerd.net", + "role": "Original Author" + } + ], + "description": "An HTML-to-markdown conversion helper for PHP", + "homepage": "https://github.com/thephpleague/html-to-markdown", + "keywords": [ + "html", + "markdown" + ], + "time": "2019-12-28T01:32:28+00:00" + }, { "name": "league/oauth1-client", "version": "1.7.0", @@ -3669,6 +3873,88 @@ ], "time": "2020-01-02T07:15:54+00:00" }, + { + "name": "moneyphp/money", + "version": "v3.3.1", + "source": { + "type": "git", + "url": "https://github.com/moneyphp/money.git", + "reference": "122664c2621a95180a13c1ac81fea1d2ef20781e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/moneyphp/money/zipball/122664c2621a95180a13c1ac81fea1d2ef20781e", + "reference": "122664c2621a95180a13c1ac81fea1d2ef20781e", + "shasum": "" + }, + "require": { + "ext-json": "*", + "php": ">=5.6" + }, + "require-dev": { + "cache/taggable-cache": "^0.4.0", + "doctrine/instantiator": "^1.0.5", + "ext-bcmath": "*", + "ext-gmp": "*", + "ext-intl": "*", + "florianv/exchanger": "^1.0", + "florianv/swap": "^3.0", + "friends-of-phpspec/phpspec-code-coverage": "^3.1.1 || ^4.3", + "moneyphp/iso-currencies": "^3.2.1", + "php-http/message": "^1.4", + "php-http/mock-client": "^1.0.0", + "phpspec/phpspec": "^3.4.3", + "phpunit/phpunit": "^5.7.27 || ^6.5.14 || ^7.5.18 || ^8.5", + "psr/cache": "^1.0", + "symfony/phpunit-bridge": "^4" + }, + "suggest": { + "ext-bcmath": "Calculate without integer limits", + "ext-gmp": "Calculate without integer limits", + "ext-intl": "Format Money objects with intl", + "florianv/exchanger": "Exchange rates library for PHP", + "florianv/swap": "Exchange rates library for PHP", + "psr/cache-implementation": "Used for Currency caching" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Money\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mathias Verraes", + "email": "mathias@verraes.net", + "homepage": "http://verraes.net" + }, + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com" + }, + { + "name": "Frederik Bosch", + "email": "f.bosch@genkgo.nl" + } + ], + "description": "PHP implementation of Fowler's Money pattern", + "homepage": "http://moneyphp.org", + "keywords": [ + "Value Object", + "money", + "vo" + ], + "time": "2020-03-18T17:49:59+00:00" + }, { "name": "monolog/monolog", "version": "2.0.2", @@ -4339,6 +4625,83 @@ ], "time": "2020-03-20T21:48:09+00:00" }, + { + "name": "phenx/php-font-lib", + "version": "0.5.2", + "source": { + "type": "git", + "url": "https://github.com/PhenX/php-font-lib.git", + "reference": "ca6ad461f032145fff5971b5985e5af9e7fa88d8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/PhenX/php-font-lib/zipball/ca6ad461f032145fff5971b5985e5af9e7fa88d8", + "reference": "ca6ad461f032145fff5971b5985e5af9e7fa88d8", + "shasum": "" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35 || ^5 || ^6 || ^7" + }, + "type": "library", + "autoload": { + "psr-4": { + "FontLib\\": "src/FontLib" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-3.0" + ], + "authors": [ + { + "name": "Fabien Ménager", + "email": "fabien.menager@gmail.com" + } + ], + "description": "A library to read, parse, export and make subsets of different types of font files.", + "homepage": "https://github.com/PhenX/php-font-lib", + "time": "2020-03-08T15:31:32+00:00" + }, + { + "name": "phenx/php-svg-lib", + "version": "v0.3.3", + "source": { + "type": "git", + "url": "https://github.com/PhenX/php-svg-lib.git", + "reference": "5fa61b65e612ce1ae15f69b3d223cb14ecc60e32" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/PhenX/php-svg-lib/zipball/5fa61b65e612ce1ae15f69b3d223cb14ecc60e32", + "reference": "5fa61b65e612ce1ae15f69b3d223cb14ecc60e32", + "shasum": "" + }, + "require": { + "sabberworm/php-css-parser": "^8.3" + }, + "require-dev": { + "phpunit/phpunit": "^5.5|^6.5" + }, + "type": "library", + "autoload": { + "psr-4": { + "Svg\\": "src/Svg" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-3.0" + ], + "authors": [ + { + "name": "Fabien Ménager", + "email": "fabien.menager@gmail.com" + } + ], + "description": "A library to read, parse and export to PDF SVG files.", + "homepage": "https://github.com/PhenX/php-svg-lib", + "time": "2019-09-11T20:02:13+00:00" + }, { "name": "php-http/client-common", "version": "2.1.0", @@ -5853,6 +6216,51 @@ ], "time": "2020-03-29T20:13:32+00:00" }, + { + "name": "sabberworm/php-css-parser", + "version": "8.3.0", + "source": { + "type": "git", + "url": "https://github.com/sabberworm/PHP-CSS-Parser.git", + "reference": "91bcc3e3fdb7386c9a2e0e0aa09ca75cc43f121f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sabberworm/PHP-CSS-Parser/zipball/91bcc3e3fdb7386c9a2e0e0aa09ca75cc43f121f", + "reference": "91bcc3e3fdb7386c9a2e0e0aa09ca75cc43f121f", + "shasum": "" + }, + "require": { + "php": ">=5.3.2" + }, + "require-dev": { + "codacy/coverage": "^1.4", + "phpunit/phpunit": "~4.8" + }, + "type": "library", + "autoload": { + "psr-0": { + "Sabberworm\\CSS": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Raphael Schweikert" + } + ], + "description": "Parser for CSS Files written in PHP", + "homepage": "http://www.sabberworm.com/blog/2010/6/10/php-css-parser", + "keywords": [ + "css", + "parser", + "stylesheet" + ], + "time": "2019-02-22T07:42:52+00:00" + }, { "name": "spatie/laravel-activitylog", "version": "3.14.1", @@ -6146,6 +6554,63 @@ ], "time": "2020-03-11T17:11:25+00:00" }, + { + "name": "stripe/stripe-php", + "version": "v7.29.0", + "source": { + "type": "git", + "url": "https://github.com/stripe/stripe-php.git", + "reference": "657c8ec888d8bcb58dd8f4fa227809108b406a44" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/stripe/stripe-php/zipball/657c8ec888d8bcb58dd8f4fa227809108b406a44", + "reference": "657c8ec888d8bcb58dd8f4fa227809108b406a44", + "shasum": "" + }, + "require": { + "ext-curl": "*", + "ext-json": "*", + "ext-mbstring": "*", + "php": ">=5.6.0" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "2.16.1", + "php-coveralls/php-coveralls": "^2.1", + "phpunit/phpunit": "^5.7", + "squizlabs/php_codesniffer": "^3.3", + "symfony/process": "~3.4" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "autoload": { + "psr-4": { + "Stripe\\": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Stripe and contributors", + "homepage": "https://github.com/stripe/stripe-php/contributors" + } + ], + "description": "Stripe PHP Library", + "homepage": "https://stripe.com/", + "keywords": [ + "api", + "payment processing", + "stripe" + ], + "time": "2020-04-22T19:35:10+00:00" + }, { "name": "swiftmailer/swiftmailer", "version": "v6.2.3", diff --git a/config/twill.php b/config/twill.php index 16649dc..5dc4373 100644 --- a/config/twill.php +++ b/config/twill.php @@ -42,6 +42,17 @@ return [ ], 'max_items' => 10, ], + 'home_other_features' => [ + 'name' => 'Home other features', + 'bucketables' => [ + [ + 'module' => 'PdfFiles', + 'name' => 'Guides', + 'scopes' => ['published' => true], + ], + ], + 'max_items' => 5, + ], ], ], ], diff --git a/package-lock.json b/package-lock.json index 4033d21..237c582 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1441,6 +1441,7 @@ "version": "6.12.0", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz", "integrity": "sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==", + "dev": true, "requires": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -1457,7 +1458,8 @@ "ajv-keywords": { "version": "3.4.1", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.1.tgz", - "integrity": "sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ==" + "integrity": "sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ==", + "dev": true }, "algoliasearch": { "version": "4.1.0", @@ -1883,7 +1885,8 @@ "big.js": { "version": "5.2.2", "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", - "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==" + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true }, "binary-extensions": { "version": "1.13.1", @@ -3367,7 +3370,8 @@ "emojis-list": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==" + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true }, "encodeurl": { "version": "1.0.2", @@ -3848,7 +3852,8 @@ "fast-deep-equal": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz", - "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==" + "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==", + "dev": true }, "fast-glob": { "version": "2.2.7", @@ -3867,7 +3872,8 @@ "fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true }, "fastparse": { "version": "1.1.2", @@ -5760,7 +5766,8 @@ "json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true }, "json3": { "version": "3.3.3", @@ -6007,6 +6014,7 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "dev": true, "requires": { "big.js": "^5.2.2", "emojis-list": "^3.0.0", @@ -6017,6 +6025,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, "requires": { "minimist": "^1.2.0" } @@ -6390,7 +6399,8 @@ "minimist": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true }, "minipass": { "version": "3.1.1", @@ -12144,7 +12154,8 @@ "punycode": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true }, "pusher-js": { "version": "5.1.1", @@ -12640,6 +12651,7 @@ "version": "2.6.5", "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.6.5.tgz", "integrity": "sha512-5KXuwKziQrTVHh8j/Uxz+QUbxkaLW9X/86NBlx/gnKgtsZA2GIVMUn17qWhRFwF8jdYb3Dig5hRO/W5mZqy6SQ==", + "dev": true, "requires": { "ajv": "^6.12.0", "ajv-keywords": "^3.4.1" @@ -13933,6 +13945,7 @@ "version": "4.2.2", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", + "dev": true, "requires": { "punycode": "^2.1.0" } @@ -14131,20 +14144,6 @@ "resolved": "https://registry.npmjs.org/vue-upload-component/-/vue-upload-component-2.8.20.tgz", "integrity": "sha512-zrnJvULu4rnZe36Ib2/AZrI/h/mmNbUJZ+acZD652PyumzbvjCOQeYHe00sGifTdYjzzS66CwhTT+ubZ2D0Aow==" }, - "vuetify-loader": { - "version": "file:vuetify-loader", - "dependencies": { - "file-loader": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-4.3.0.tgz", - "integrity": "sha512-aKrYPYjF1yG3oX0kWRrqrSMfgftm7oJW5M+m4owoldH5C51C0RkIwB++JbRvEW3IU6/ZG5n8UvEcdgwOt2UOWA==", - "requires": { - "loader-utils": "^1.2.3", - "schema-utils": "^2.5.0" - } - } - } - }, "watchpack": { "version": "1.6.1", "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.6.1.tgz", diff --git a/package.json b/package.json index 156e59b..ba56f95 100644 --- a/package.json +++ b/package.json @@ -48,7 +48,6 @@ "vue-material": "^1.0.0-beta-11", "vue-simple-progress": "^1.1.1", "vue-stepper": "^1.4.2", - "vue-upload-component": "^2.8.20", - "vuetify-loader": "file:vuetify-loader" + "vue-upload-component": "^2.8.20" } } diff --git a/resources/js/components/Publish/Step2PrepareMail.vue b/resources/js/components/Publish/Step2PrepareMail.vue index 577b2d2..2129884 100644 --- a/resources/js/components/Publish/Step2PrepareMail.vue +++ b/resources/js/components/Publish/Step2PrepareMail.vue @@ -56,6 +56,7 @@