]> _ Git - fluidbook-toolbox.git/commitdiff
wait #6836 @1.5
authorVincent Vanwaelscappel <vincent@cubedesigners.com>
Tue, 2 Apr 2024 12:38:59 +0000 (14:38 +0200)
committerVincent Vanwaelscappel <vincent@cubedesigners.com>
Tue, 2 Apr 2024 12:38:59 +0000 (14:38 +0200)
app/Http/Controllers/Admin/Operations/FluidbookPublication/DownloadOperation.php
app/Http/Controllers/Admin/Operations/FluidbookPublication/PreviewOperation.php
resources/views/fluidbook_publication/delivery/index.blade.php

index 92e576d1417b6112f903ee149e350618ed9ee379..38b61ead386e004b03b8118f6e32e5030c1b08f7 100644 (file)
@@ -31,6 +31,7 @@ trait DownloadOperation
 
     protected function delivery($id)
     {
+        start_measure('Delivery action');
         if (!FluidbookPublication::hasPermission($id, 'read')) {
             abort(401);
         }
@@ -38,11 +39,16 @@ trait DownloadOperation
         if ($fluidbook->getPagesNumber() === 0) {
             abort(404, __('Cette publication ne comporte aucune page'));
         }
-        return view('fluidbook_publication.delivery.index', ['fluidbook' => $fluidbook]);
+        start_measure('Render delivery view');
+        $res= view('fluidbook_publication.delivery.index', ['fluidbook' => $fluidbook]);
+        stop_measure('Render delivery view');
+        stop_measure('Delivery action');
+        return $res;
     }
 
     protected function deliveryThumb($id, $type)
     {
+
         $typeAvailable = ['desktop', 'mobile'];
         if (!FluidbookPublication::hasPermission($id, 'read')) {
             abort(401);
index d72836c99edae8f5ae03acd946b14b44cb0dd0c0..7fbae2a6fe75fd11c75713da0491a49055b191dd 100644 (file)
@@ -55,6 +55,7 @@ trait PreviewOperation
         }
         $nointerface = !!request('nointerface', false);
         $shortLoading = !!request('shortLoading', false);
+        $skipCompile = $shortLoading || !$time;
 
         self::_getFluidbookAndTheme($id, $hash, $fluidbook, $theme);
 
@@ -64,12 +65,14 @@ trait PreviewOperation
         }
 
         if (null === $time || ((null === $path || $path === 'index.html') && $time > 0 && $time < (time() - 60) && !$nointerface && !$shortLoading)) {
-            $v = ($version === 'online') ? '' : $version . '/';
-            $url = backpack_url($segment . '/preview/' . $v . $id . '_' . $hash . '_' . time()) . '/' . $q;
+            if (!$version) {
+                $version = 'online';
+            }
+            $url = backpack_url($segment . '/preview/' . $version . '/' . $id . '_' . $hash . '_' . time()) . '/' . $q;
             return $this->loadingCompile($url, $id, $hash);
         }
 
-        return $this->preview($version, $fluidbook, $theme, $path);
+        return $this->preview($version, $fluidbook, $theme, $path, $skipCompile);
     }
 
     /**
@@ -117,7 +120,7 @@ trait PreviewOperation
      * @return \Illuminate\Contracts\Foundation\Application|\Illuminate\Contracts\Routing\ResponseFactory|\Illuminate\Http\Response|object
      * @throws \Exception
      */
-    public function preview($version, $fluidbook, $theme, $path = 'index.html')
+    public function preview($version, $fluidbook, $theme, $path = 'index.html', $skipCompile = false)
     {
         PHP::neverStop(false);
 
@@ -130,8 +133,10 @@ trait PreviewOperation
         $dest = $fluidbook->getFinalPath($theme, $isScorm);
         if ($path === 'index.html') {
             $fluidbook->incrementPreviewVisit();
-            $compiler = new Compiler($fluidbook, $isScorm, theme: $theme);
-            $compiler->handle();
+            if (!$skipCompile) {
+                $compiler = new Compiler($fluidbook, $isScorm, theme: $theme);
+                $compiler->handle();
+            }
         }
 
         $relayPath = $dest . '/' . $path;
index 3628a99d9c9b0abd44143b806d642143da41f235..50de4905e5bae5efd2fb703b058ac2465cce2174 100644 (file)
@@ -6,18 +6,23 @@
         trans('backpack::base.my_account') => false,
     ];
     $statusText = $fluidbook->status ? __('prêt') : __('en cours de production');
+    start_measure('Generate QR code');
     $qrCodeMobile = QrCode::size(311)->color(27, 42, 78)->generate($fluidbook->getPreviewURL());
+    stop_measure('Generate QR code');
 
     $fluidbookDesktopPreview = route('deliveryThumb', ['id' => $fluidbook->id, 'type' => 'desktop']);
     $fluidbookMobilePreview = route('deliveryThumb', ['id' => $fluidbook->id, 'type' => 'mobile']);
 
+    start_measure('Generate Mobile First QR code');
     $fluidbookMobileFirstId = $fluidbook->mobilefirstFluidbookId;
     if($fluidbookMobileFirstId){
         $previewMobileFirstUrl = App\Models\FluidbookPublication::find($fluidbookMobileFirstId)->getPreviewURL();
         $qrCodeMobileFirst = QrCode::size(311)->color(27, 42, 78)->generate($previewMobileFirstUrl);
         $fluidbookMobileFirstPreview = route('deliveryThumb', ['id' => $fluidbookMobileFirstId, 'type' => 'mobile']);
     }
+    stop_measure('Generate Mobile First QR code');
 
+    start_measure('Find settings');
     $totalPages = $fluidbook->getPagesNumber();
     $settings = [
         __('Titre') => $fluidbook->title,
@@ -32,6 +37,7 @@
         'Google Analytics' => $fluidbook->googleAnalytics ? $fluidbook->googleTagManager : __('Désactivé')
     ];
 
+
     function renameSettings($v, $fem = false, $plural = false) {
         if($fem){
             if($plural){
     $cid = $fluidbook->cid;
 
     $socialImage = route('social_image',['cid' => $cid]);
+     stop_measure('Find settings');
 
+     start_measure('Find settings 2');
     $installServerUrl = null;
     if($fluidbook->install_online) {
         if($fluidbook->install_online['server']) {
             $serverId = intval($fluidbook->install_online['server']);
             $serverPath = $fluidbook->install_online['path'];
+            start_measure('Find servers');
             $servers=\App\Models\FluidbookExternalInstallServer::getAllServers();
+            stop_measure('Find servers');
             $serverInfos = $servers[$serverId];
             $baseUrl = $serverInfos['base_url'];
             $serverName = $serverInfos['name'];
         }
     }
 
+    start_measure('Download versions');
     $downloadVersions = \App\Models\FluidbookPublication::getDownloadVersions();
     $prefixDownloadUrl = '/fluidbook-publication/'.$fluidbook->id;
     $prefixDownloadUrl = $prefixDownloadUrl.'/package';
         if($key === "online") {
             $downloadVersions[$key]['text'] = __("Standard");
             $downloadVersions[$key]['type'] = __("(Serveur Web)");
-            $downloadVersions[$key]['icon'] = file_get_contents(url('images/icons/icon-standard-server.svg'));
+            $downloadVersions[$key]['icon'] = file_get_contents(public_path('images/icons/icon-standard-server.svg'));
             $downloadVersions[$key]['notice_fr'] = "1j4lEk2vqUnenXZQs2ucNZg51aFTLmTOoHPgYolj46m0";
             $downloadVersions[$key]['notice_en'] = "1CeLq8R8LMhWjZ0caXrO0HcfxRtzqGQkpaKJvDcYt_ZY";
             $downloadVersions[$key]['enabled'] = $fluidbook->download_online;
         }elseif ($key === "scorm") {
             $downloadVersions[$key]['text'] = __("LMS Scorm");
             $downloadVersions[$key]['type'] = __("(LMS / SCORM)");
-            $downloadVersions[$key]['icon'] = file_get_contents(url('images/icons/icon-lms-scorm.svg'));
+            $downloadVersions[$key]['icon'] = file_get_contents(public_path('images/icons/icon-lms-scorm.svg'));
             $downloadVersions[$key]['notice_fr'] = "1cZ_dTdehk2av0ZUGryY1xLF5IQoqSyCmgBXPH1OYPu4"; // Pas de notice en Français
             $downloadVersions[$key]['notice_en'] = "1cZ_dTdehk2av0ZUGryY1xLF5IQoqSyCmgBXPH1OYPu4";
             $downloadVersions[$key]['enabled'] =  $fluidbook->download_scorm && $fluidbook->scorm_enable;
         }elseif ($key === "sharepoint") {
             $downloadVersions[$key]['text'] = __("SharePoint");
-            $downloadVersions[$key]['icon'] = file_get_contents(url('images/icons/icon-sharepoint.svg'));
+            $downloadVersions[$key]['icon'] = file_get_contents(public_path('images/icons/icon-sharepoint.svg'));
             $downloadVersions[$key]['notice_fr'] = "1O5EInYbNmNmcqi0VXq0FU7CqeYV6VJeJ0aI-bbgSlBc";
             $downloadVersions[$key]['notice_en'] = "1YeBLektflXZZz6yU-EKpYxe7i0fL0Oy13pB1vMdwMgw";
             $downloadVersions[$key]['enabled'] =  $fluidbook->download_sharepoint;
         }elseif ($key === "mac_exe_html") {
             $downloadVersions[$key]['text'] = __("Version Offline");
             $downloadVersions[$key]['type'] = __("(Application MacOS)");
-            $downloadVersions[$key]['icon'] = file_get_contents(url('images/icons/icon-mac-app.svg'), true);
+            $downloadVersions[$key]['icon'] = file_get_contents(public_path('images/icons/icon-mac-app.svg'), true);
             $downloadVersions[$key]['enabled'] =  $fluidbook->download_mac_exe_html;
         }elseif ($key === "win_ins_html") {
             $downloadVersions[$key]['text'] = __("Version Offline");
             $downloadVersions[$key]['type'] = __("(Application Windows)");
-            $downloadVersions[$key]['icon'] = file_get_contents(url('images/icons/icon-windows-app.svg'));
+            $downloadVersions[$key]['icon'] = file_get_contents(public_path('images/icons/icon-windows-app.svg'));
              $downloadVersions[$key]['enabled'] =  $fluidbook->download_win_ins_html;
         }elseif ($key === "win_cd_html") {
             $downloadVersions[$key]['text'] = __("Version Offline");
             $downloadVersions[$key]['type'] = __("(CD-ROM / Clé USB)");
-            $downloadVersions[$key]['icon'] = file_get_contents(url('images/icons/icon-cd-usb.svg'));
+            $downloadVersions[$key]['icon'] = file_get_contents(public_path('images/icons/icon-cd-usb.svg'));
             $downloadVersions[$key]['enabled'] =  $fluidbook->download_win_cd_html;
         }
     }
+     stop_measure('Download versions');
 
     $objectMail = "[Fluidbook #".$fluidbook->id."]";
 
                                                                     stroke-linejoin="round" stroke-width="1"/>
                                                         </g>';
 
-
+     stop_measure('Find settings 2');
 @endphp
 
 @section('after_styles')
 @endsection
 
 @section('content')
+    @php
+        start_measure('delivery contents');
+    @endphp
     <div id="svg-container">
         {!! $icons[0]["icons"] !!}
     </div>
                             <div class="col-md-8">
                                 <div class="card">
                                     <div class="card-body">
-                                        <a href="https://www.opengraph.xyz/url/{{ $fluidbook->getPreviewURL(['time'=>0]) }}"
+                                        <a href="https://www.opengraph.xyz/url/{{ rawurlencode($fluidbook->getPreviewURL(['time'=>0]).'/') }}"
                                            class="mb-3 d-inline-block" target="_blank" rel="noopener">
                                             {{ __('Simuler l\'apparence de votre Fluidbook lorsqu\'il est partagé sur les principaux réseaux sociaux') }}
                                         </a>
                             <div class="container-iframe">
                                 <iframe width="677" height="401" frameborder="0" marginheight="0" marginwidth="0"
                                         allowfullscreen="true"
-                                        src="{{$fluidbook->getPreviewUrl()}}/?widget=1&action=fullscreen&nav=auto"></iframe>
+                                        src="{{$fluidbook->getPreviewUrl(['time'=>0])}}/?widget=1&action=fullscreen&nav=auto"></iframe>
                             </div>
                             <div class="mt-2">
                                 <a href="{{ getGoogleDocsURL($noticesUrls[$lang]['widget']) }}"
             </div>
         @endif
     </div>
+    @php
+        stop_measure('delivery contents');
+    @endphp
 @endsection
 
 @push('after_scripts')