]> _ Git - psq.git/commitdiff
wait #7439 @6
authorVincent Vanwaelscappel <vincent@cubedesigners.com>
Wed, 17 Dec 2025 17:02:38 +0000 (18:02 +0100)
committerVincent Vanwaelscappel <vincent@cubedesigners.com>
Wed, 17 Dec 2025 17:02:38 +0000 (18:02 +0100)
.docker/production/docker-compose.yml
app/Console/Commands/Migration.php
app/Http/Controllers/Admin/PublishController.php
app/Jobs/ProcessEmailBatch.php
config/app.php
public/.htaccess
resources/views/vendor/nova/partials/meta.blade.php
resources/views/vendor/twill/partials/head.blade.php

index e09a34f9d3b96c0efafd79d98942623ddd90bb92..6559a3991873e77de3965ffe1740882772047289 100644 (file)
@@ -10,6 +10,8 @@ services:
       - './www/public:/usr/local/apache2/htdocs'
       - './www/:/application/'
       - './www/.docker/config/httpd/httpd.conf:/usr/local/apache2/conf/httpd.conf'
+      - './www/storage/s3/public/:/usr/local/apache2/htdocs/s3/'
+      - './www/storage/s3/public/:/application/public/s3/'
     environment:
       VIRTUAL_HOST: admin.dev.prescription-quotidien.com,dev.prescription-quotidien.com
       LETSENCRYPT_HOST: admin.dev.prescription-quotidien.com,dev.prescription-quotidien.com
@@ -57,6 +59,8 @@ services:
       - './www/.env.production:/application/.env'
       # Web path
       - './www:/application'
+      # S3
+      - './www/storage/s3/public/:/application/public/s3/'
     ports:
       - '43441:22'
     networks:
index 236ef78ba0dcb985bcdd47ef2492d227ae6b8801..5a730f84d05528f0407abe1404ea7969208f075a 100644 (file)
@@ -69,6 +69,7 @@ class Migration extends Command
         // Sync S3
         `rclone sync olds3:prescription-sante s3:presquot`;
         `rclone sync olds3:prescription-sante/flowpaper/ /application/storage/app/flowpaper/`;
+        `rclone sync olds3:prescription-sante /application/storage/s3/`;
 
         Artisan::call('psq:fluidbook:archives');
         Artisan::call('optimize:clear');
index 4d041c96c2e0b9c8c33927ff6291c05c952e1e16..008e74fbb591f1ab7696093a1fe1347717287e51 100644 (file)
@@ -54,13 +54,13 @@ class PublishController extends Controller
 
         $batch = EmailBatch::createFromRequest($data);
         $processEmailBatch = new ProcessEmailBatch($batch, $usersBuilder);
-        dispatch($processEmailBatch);
+        dispatch_sync($processEmailBatch);
 
-        if ($pdfBatch = EmailBatch::createAttachmentMailFromRequest($data)) {
-            $userReceivesPdfBuilder->subscriber()->receivesPdf();
-            $pdfProcessEmailBatch = new ProcessEmailBatch($pdfBatch, $userReceivesPdfBuilder);
-            dispatch($pdfProcessEmailBatch->withFile());
-        }
+//        if ($pdfBatch = EmailBatch::createAttachmentMailFromRequest($data)) {
+//            $userReceivesPdfBuilder->subscriber()->receivesPdf();
+//            $pdfProcessEmailBatch = new ProcessEmailBatch($pdfBatch, $userReceivesPdfBuilder);
+//            dispatch($pdfProcessEmailBatch->withFile());
+//        }
 
         return ['data' => $batch->id];
     }
index 1d2321fed03088cbe519d0146a4d0636b250a08e..169509a872d28c0410100f9da30600db314b1046 100644 (file)
@@ -147,13 +147,11 @@ class ProcessEmailBatch implements ShouldQueue
         $this->html = $this->batch->render();
         $this->templateVariables = $this->processVariablesForMailer();
 
-        dd($this->html);
-
         foreach ($this->users as $user) {
-            Mail::send([],[], function ($message) use ($user) {
+            Mail::send([], [], function ($message) use ($user) {
                 $message->from(config('mail.from.address'), config('mail.from_name'));
                 $message->subject($this->batch->subject);
-                $message->setBody($this->html,'text/html');
+                $message->setBody($this->html, 'text/html');
                 $message->to($user->email);
                 $message->replyTo(env('MAIL_REPLYTO'));
             });
index a817e290a78d7c5e78615f2a4b14452d63d46a60..1f50653e89efeedf319e8bc739a1b9b4719dcb33 100644 (file)
@@ -123,7 +123,7 @@ return [
 
     'cipher' => 'AES-256-CBC',
 
-    'aws_s3_url' => 'https://prescription-sante.s3.eu-west-3.amazonaws.com',
+    'aws_s3_url' => env('AWS_URL'),
 
     'version' => '1.0.0',
 
index c65d98cc66367dd4253972900a21464ec0fc1327..63a486931a849aa22b32bbe2c5387996e55515b6 100644 (file)
@@ -14,6 +14,8 @@
 #    RewriteCond %{REQUEST_URI} (.+)/$
 #    RewriteRule ^ %1 [L,R=301]
 
+    RewriteRule ^s3 - [L]
+
     # Send Requests To Front Controller...
     RewriteCond %{REQUEST_FILENAME} !-d
     RewriteCond %{REQUEST_FILENAME} !-f
index e6ea596003b19b5a725d5f3ae6a371d22c8fa4f1..82a8fa2f7b8602a9ea46dcb6a98c45237d0ab9ef 100644 (file)
@@ -1,22 +1,22 @@
 {{-- <link rel="icon" type="image/png" href="{{ asset('/img/favicon.png') }} "> --}}
  @if(app()->isProduction())
-    <link rel="apple-touch-icon" sizes="180x180" href="https://prescription-sante.s3.eu-west-3.amazonaws.com/public/favicon/admin/apple-touch-icon.png">
-    <link rel="icon" type="image/png" sizes="32x32" href="https://prescription-sante.s3.eu-west-3.amazonaws.com/public/favicon/admin/favicon-32x32.png">
-    <link rel="icon" type="image/png" sizes="16x16" href="https://prescription-sante.s3.eu-west-3.amazonaws.com/public/favicon/admin/favicon-16x16.png">
-    <link rel="manifest" href="https://prescription-sante.s3.eu-west-3.amazonaws.com/public/favicon/admin/site.webmanifest">
-    <link rel="mask-icon" href="https://prescription-sante.s3.eu-west-3.amazonaws.com/public/favicon/admin/safari-pinned-tab.svg" color="#d04d4a">
-    <link rel="shortcut icon" href="https://prescription-sante.s3.eu-west-3.amazonaws.com/public/favicon/admin/favicon.ico">
+    <link rel="apple-touch-icon" sizes="180x180" href="{{url('/s3/favicon/admin/apple-touch-icon.png')}}">
+    <link rel="icon" type="image/png" sizes="32x32" href="{{url('/s3/favicon/admin/favicon-32x32.png')}}">
+    <link rel="icon" type="image/png" sizes="16x16" href="{{url('/s3/favicon/admin/favicon-16x16.png')}}">
+    <link rel="manifest" href="{{url('/s3/favicon/admin/site.webmanifest')}}">
+    <link rel="mask-icon" href="{{url('/s3/favicon/admin/safari-pinned-tab.svg" color="#d04d4a')}}">
+    <link rel="shortcut icon" href="{{url('/s3/favicon/admin/favicon.ico')}}">
     <meta name="msapplication-TileColor" content="#da532c">
-    <meta name="msapplication-config" content="https://prescription-sante.s3.eu-west-3.amazonaws.com/public/favicon/admin/browserconfig.xml">
+    <meta name="msapplication-config" content="{{url('/s3/favicon/admin/browserconfig.xml')}}">
     <meta name="theme-color" content="#ffffff">
 @else
-    <link rel="apple-touch-icon" sizes="180x180" href="https://prescription-sante.s3.eu-west-3.amazonaws.com/public/favicon/local-admin/apple-touch-icon.png">
-    <link rel="icon" type="image/png" sizes="32x32" href="https://prescription-sante.s3.eu-west-3.amazonaws.com/public/favicon/local-admin/favicon-32x32.png">
-    <link rel="icon" type="image/png" sizes="16x16" href="https://prescription-sante.s3.eu-west-3.amazonaws.com/public/favicon/local-admin/favicon-16x16.png">
-    <link rel="manifest" href="https://prescription-sante.s3.eu-west-3.amazonaws.com/public/favicon/local-admin/site.webmanifest">
-    <link rel="mask-icon" href="https://prescription-sante.s3.eu-west-3.amazonaws.com/public/favicon/local-admin/safari-pinned-tab.svg" color="#41bd53">
-    <link rel="shortcut icon" href="https://prescription-sante.s3.eu-west-3.amazonaws.com/public/favicon/local-admin/favicon.ico">
+    <link rel="apple-touch-icon" sizes="180x180" href="{{url('/s3/favicon/local-admin/apple-touch-icon.png')}}">
+    <link rel="icon" type="image/png" sizes="32x32" href="{{url('/s3/favicon/local-admin/favicon-32x32.png')}}">
+    <link rel="icon" type="image/png" sizes="16x16" href="{{url('/s3/favicon/local-admin/favicon-16x16.png')}}">
+    <link rel="manifest" href="{{url('/s3/favicon/local-admin/site.webmanifest')}}">
+    <link rel="mask-icon" href="{{url('/s3/favicon/local-admin/safari-pinned-tab.svg" color="#41bd53')}}">
+    <link rel="shortcut icon" href="{{url('/s3/favicon/local-admin/favicon.ico')}}">
     <meta name="msapplication-TileColor" content="#da532c">
-    <meta name="msapplication-config" content="https://prescription-sante.s3.eu-west-3.amazonaws.com/public/favicon/local-admin/browserconfig.xml">
+    <meta name="msapplication-config" content="{{url('/s3/favicon/local-admin/browserconfig.xml')}}">
     <meta name="theme-color" content="#ffffff">
 @endif
index 388d1acb75f811ad2c240087df1ca1998288d51a..516c318ca8902b108a5ae6f523d27f7c7af88ecc 100644 (file)
@@ -1,10 +1,10 @@
 <meta charset="utf-8">
-<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no" />
+<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no"/>
 <meta http-equiv="X-UA-Compatible" content="IE=Edge">
-<meta name="robots" content="noindex,nofollow" />
+<meta name="robots" content="noindex,nofollow"/>
 
 <title>{{ config('app.name') }} {{ config('twill.admin_app_title_suffix') }}</title>
-        <link href="{{ App\Helpers\Asset::assetVersion('admin/css/admin.css') }}" rel="stylesheet">
+<link href="{{ App\Helpers\Asset::assetVersion('admin/css/admin.css') }}" rel="stylesheet">
 
 <!-- Fonts -->
 @if(app()->isProduction())
 
 <!-- Favicon -->
 
- @if(app()->isProduction())
-    <link rel="apple-touch-icon" sizes="180x180" href="https://prescription-sante.s3.eu-west-3.amazonaws.com/public/favicon/admin/apple-touch-icon.png">
-    <link rel="icon" type="image/png" sizes="32x32" href="https://prescription-sante.s3.eu-west-3.amazonaws.com/public/favicon/admin/favicon-32x32.png">
-    <link rel="icon" type="image/png" sizes="16x16" href="https://prescription-sante.s3.eu-west-3.amazonaws.com/public/favicon/admin/favicon-16x16.png">
-    <link rel="manifest" href="https://prescription-sante.s3.eu-west-3.amazonaws.com/public/favicon/admin/site.webmanifest">
-    <link rel="mask-icon" href="https://prescription-sante.s3.eu-west-3.amazonaws.com/public/favicon/admin/safari-pinned-tab.svg" color="#d04d4a">
-    <link rel="shortcut icon" href="https://prescription-sante.s3.eu-west-3.amazonaws.com/public/favicon/admin/favicon.ico">
+@if(app()->isProduction())
+    <link rel="apple-touch-icon" sizes="180x180" href="{{url('/s3/favicon/admin/apple-touch-icon.png')}}">
+    <link rel="icon" type="image/png" sizes="32x32" href="{{url('/s3/favicon/admin/favicon-32x32.png')}}">
+    <link rel="icon" type="image/png" sizes="16x16" href="{{url('/s3/favicon/admin/favicon-16x16.png')}}">
+    <link rel="manifest" href="{{url('/s3/favicon/admin/site.webmanifest')}}">
+    <link rel="mask-icon" href="{{url('/s3/favicon/admin/safari-pinned-tab.svg" color="#d04d4a')}}">
+    <link rel="shortcut icon" href="{{url('/s3/favicon/admin/favicon.ico')}}">
     <meta name="msapplication-TileColor" content="#da532c">
-    <meta name="msapplication-config" content="https://prescription-sante.s3.eu-west-3.amazonaws.com/public/favicon/admin/browserconfig.xml">
+    <meta name="msapplication-config" content="{{url('/s3/favicon/admin/browserconfig.xml')}}">
     <meta name="theme-color" content="#ffffff">
 @else
-    <link rel="apple-touch-icon" sizes="180x180" href="https://prescription-sante.s3.eu-west-3.amazonaws.com/public/favicon/local-admin/apple-touch-icon.png">
-    <link rel="icon" type="image/png" sizes="32x32" href="https://prescription-sante.s3.eu-west-3.amazonaws.com/public/favicon/local-admin/favicon-32x32.png">
-    <link rel="icon" type="image/png" sizes="16x16" href="https://prescription-sante.s3.eu-west-3.amazonaws.com/public/favicon/local-admin/favicon-16x16.png">
-    <link rel="manifest" href="https://prescription-sante.s3.eu-west-3.amazonaws.com/public/favicon/local-admin/site.webmanifest">
-    <link rel="mask-icon" href="https://prescription-sante.s3.eu-west-3.amazonaws.com/public/favicon/local-admin/safari-pinned-tab.svg" color="#41bd53">
-    <link rel="shortcut icon" href="https://prescription-sante.s3.eu-west-3.amazonaws.com/public/favicon/local-admin/favicon.ico">
+    <link rel="apple-touch-icon" sizes="180x180" href="{{url('/s3/favicon/local-admin/apple-touch-icon.png')}}">
+    <link rel="icon" type="image/png" sizes="32x32" href="{{url('/s3/favicon/local-admin/favicon-32x32.png')}}">
+    <link rel="icon" type="image/png" sizes="16x16" href="{{url('/s3/favicon/local-admin/favicon-16x16.png')}}">
+    <link rel="manifest" href="{{url('/s3/favicon/local-admin/site.webmanifest')}}">
+    <link rel="mask-icon" href="{{url('/s3/favicon/local-admin/safari-pinned-tab.svg" color="#41bd53')}}">
+    <link rel="shortcut icon" href="{{url('/s3/favicon/local-admin/favicon.ico')}}">
     <meta name="msapplication-TileColor" content="#da532c">
-    <meta name="msapplication-config" content="https://prescription-sante.s3.eu-west-3.amazonaws.com/public/favicon/local-admin/browserconfig.xml">
+    <meta name="msapplication-config" content="{{url('/s3/favicon/local-admin/browserconfig.xml')}}">
     <meta name="theme-color" content="#ffffff">
 @endif
 
 
 <!-- head.js -->
 <script>
-    !function(e){function t(){if(/in/.test(e.readyState))setTimeout(t,9);else for(var c=0;c<e.styleSheets.length;c++){var s=e.styleSheets[c];"html4css"!==s.title&&(s.disabled=!0)}}function c(){!e.readyState&&e.addEventListener&&(e.body?setTimeout(function(){e.readyState="complete"},500):setTimeout(c,9))}var s,i=window.A17||{},n=e.documentElement,l=window,o=e.getElementsByTagName("head")[0];i.browserSpec="addEventListener"in l&&l.history.pushState&&e.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")?"html5":"html4",i.touch=!!("ontouchstart"in l||l.documentTouch&&e instanceof DocumentTouch),i.objectFit="objectFit"in n.style,window.A17=i,n.className=n.className.replace(/\bno-js\b/," js "+i.browserSpec+(i.touch?" touch":" no-touch")+(i.objectFit?" objectFit":" no-objectFit")),"html4"===i.browserSpec?(s=e.createElement("link"),s.rel="stylesheet",s.title="html4css",s.href="static/styles/html4css.css",o.appendChild(s),s=e.createElement("script"),s.src="//legacypicturefill.s3.amazonaws.com/legacypicturefill.min.js",o.appendChild(s),c(),t()):(s=e.createElement("script"),s.src="//cdnjs.cloudflare.com/ajax/libs/picturefill/3.0.2/picturefill.min.js",o.appendChild(s))}(document);
+    !function (e) {
+        function t() {
+            if (/in/.test(e.readyState)) setTimeout(t, 9); else for (var c = 0; c < e.styleSheets.length; c++) {
+                var s = e.styleSheets[c];
+                "html4css" !== s.title && (s.disabled = !0)
+            }
+        }
+
+        function c() {
+            !e.readyState && e.addEventListener && (e.body ? setTimeout(function () {
+                e.readyState = "complete"
+            }, 500) : setTimeout(c, 9))
+        }
+
+        var s, i = window.A17 || {}, n = e.documentElement, l = window, o = e.getElementsByTagName("head")[0];
+        i.browserSpec = "addEventListener" in l && l.history.pushState && e.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure", "1.1") ? "html5" : "html4", i.touch = !!("ontouchstart" in l || l.documentTouch && e instanceof DocumentTouch), i.objectFit = "objectFit" in n.style, window.A17 = i, n.className = n.className.replace(/\bno-js\b/, " js " + i.browserSpec + (i.touch ? " touch" : " no-touch") + (i.objectFit ? " objectFit" : " no-objectFit")), "html4" === i.browserSpec ? (s = e.createElement("link"), s.rel = "stylesheet", s.title = "html4css", s.href = "static/styles/html4css.css", o.appendChild(s), s = e.createElement("script"), s.src = "//legacypicturefill.s3.amazonaws.com/legacypicturefill.min.js", o.appendChild(s), c(), t()) : (s = e.createElement("script"), s.src = "//cdnjs.cloudflare.com/ajax/libs/picturefill/3.0.2/picturefill.min.js", o.appendChild(s))
+    }(document);
 </script>
 
 @stack('extra_css')