]> _ Git - fluidbook-toolbox.git/commitdiff
wip #5397 @3
authorVincent Vanwaelscappel <vincent@cubedesigners.com>
Fri, 13 Jan 2023 12:47:44 +0000 (13:47 +0100)
committerVincent Vanwaelscappel <vincent@cubedesigners.com>
Fri, 13 Jan 2023 12:47:44 +0000 (13:47 +0100)
app/Console/Kernel.php
app/Fluidbook/Links.php
app/Fluidbook/PDF.php
app/Models/Traits/PublicationSettings.php
resources/views/vendor/backpack/crud/buttons/fluidbook_publication/download.blade.php

index 2106f1a8b74efd5954c312a801699cea85c0327f..0be0d13be9fcefd0db0d78f7cd4d83dcd1271f4f 100644 (file)
@@ -24,13 +24,13 @@ class Kernel extends \Cubist\Backpack\Console\Kernel
      */
     protected function schedule(Schedule $schedule)
     {
-
         parent::schedule($schedule);
+
         $schedule->command('cubist:magic:precache')->everyFiveMinutes();
         $schedule->command('job:dispatch ProcessTotals')->everyTwoHours();
         $schedule->command('fluidbook:farm:ping')->everyMinute();
         $schedule->command('fluidbook:player:updatesources')->everyTwoHours();
-
+        $schedule->command('ws:migrate --publications=v2 --documents=missing')->dailyAt('1:00');
     }
 
     /**
index e63e59307263a1a80820fc630f43d7971a6b30d4..8943c5a8459cdbcbd72da64634ecd5dc0de32a75 100644 (file)
@@ -142,7 +142,7 @@ class Links
         }
         $dir = self::getLinksDir($book_id);
 
-        $file = $dir . '/' . $time . '.links3.gz';
+        $file = Files::firstThatExists($dir . '/' . $time . '.links3.gz', $dir . '/' . $time . '.links.gz');
         if ($time === 'latest' && !file_exists($file)) {
             $versions = self::getLinksVersions($book_id);
             foreach ($versions as $version => $m) {
index 36a1bc2b0846a16663838e97c95a26b77b0d6d07..8a1523061a43b336465ef81b82a4c555c41a54ad 100644 (file)
@@ -172,7 +172,7 @@ class PDF
                     $pdftk = new CommandLine('pdftk');
                     $pdftk->setManualArg($args);
                     $pdftk->execute();
-                    self::copy($normalPDF, $cached, false);
+                    self::copy($originalPDF, $cached, false);
                 }
             }
         }
index 1f7322c7aea2d0def2f579008ff154ef14583f32..88b9b76ef90ce1f50ee3dd462e119bb4d090d6f3 100644 (file)
@@ -24,6 +24,25 @@ use Cubist\Backpack\Magic\Fields\Textarea;
  */
 trait PublicationSettings
 {
+    /**
+     * @return array[]
+     */
+    public static function getDownloadVersions()
+    {
+        return [
+            'online' => ['label' => __('Version online - Version par défaut'), 'default' => true],
+            'sharepoint' => ['label' => __('Version Sharepoint - Version par défaut'), 'default' => false],
+            'scorm' => ['label' => __('Version SCORM - Version par défaut'), 'default' => false],
+            'win_inss_html' => ['label' => __('Version offline - Executable Windows'), 'default' => false],
+            'win_ins_html' => ['label' => __('Version offline - Installeur Auto-executable Windows'), 'default' => false],
+            'win_exe_html' => ['label' => __('Version offline - ZIP Windows'), 'default' => false],
+            'mac_exe_html' => ['label' => __('Version offline - Exécutable Mac OS X'), 'default' => false],
+            'win_cd_html' => ['label' => __('Version offline - CD-ROM / Clé USB'), 'default' => false],
+            'win_html' => ['label' => __('Version offline - HTML (Non adaptée à l\'installation sur un serveur web)'), 'default' => false],
+            'precompiled' => ['label' => __('Version precompilée'), 'default' => false],
+        ];
+    }
+
     public function setSettingsFields()
     {
         $acceptImages = ['.svg', '.jpg', '.jpeg', '.png', '.gif'];
@@ -2953,76 +2972,16 @@ L,index',
         ]);
 
         $this->addField('section_downloads', FormSection::class, $this->__('Versions disponibles au téléchargement'));
-        $this->addField('download_online', Checkbox::class, $this->__('Version online - Version par défaut'), [
-            'v2' => '{"type":"boolean","editable":true,"default":true,"label":"\\u00a7!\\u00a7Version online - Version par d\\u00e9faut!\\u00a7!","grade":3}',
-            'default' => true,
-            'fake' => true,
-            'store_in' => 'settings',
-            'translatable' => false,
-        ]);
-        $this->addField('download_sharepoint', Checkbox::class, $this->__('Version Sharepoint - Version par défaut'), [
-            'v2' => '{"type":"boolean","editable":true,"default":false,"label":"\\u00a7!\\u00a7Version Sharepoint - Version par d\\u00e9faut!\\u00a7!","grade":3}',
-            'default' => false,
-            'fake' => true,
-            'store_in' => 'settings',
-            'translatable' => false,
-        ]);
-        $this->addField('download_scorm', Checkbox::class, $this->__('Version SCORM - Version par défaut'), [
-            'v2' => '{"type":"boolean","editable":true,"default":false,"label":"\\u00a7!\\u00a7Version SCORM - Version par d\\u00e9faut!\\u00a7!","grade":3}',
-            'default' => false,
-            'fake' => true,
-            'store_in' => 'settings',
-            'translatable' => false,
-        ]);
-        $this->addField('download_win_inss_html', Checkbox::class, $this->__('Version offline - Executable Windows'), [
-            'v2' => '{"type":"boolean","editable":true,"default":false,"label":"\\u00a7!\\u00a7Version offline - Executable Windows!\\u00a7!","grade":3}',
-            'default' => false,
-            'fake' => true,
-            'store_in' => 'settings',
-            'translatable' => false,
-        ]);
-        $this->addField('download_win_ins_html', Checkbox::class, $this->__('Version offline - Installeur Auto-executable Windows'), [
-            'v2' => '{"type":"boolean","editable":true,"default":false,"label":"\\u00a7!\\u00a7Version offline - Installeur Auto-executable Windows!\\u00a7!","grade":3}',
-            'default' => false,
-            'fake' => true,
-            'store_in' => 'settings',
-            'translatable' => false,
-        ]);
-        $this->addField('download_win_exe_html', Checkbox::class, $this->__('Version offline - ZIP Windows'), [
-            'v2' => '{"type":"boolean","editable":true,"default":false,"label":"\\u00a7!\\u00a7Version offline - ZIP Windows!\\u00a7!","grade":3}',
-            'default' => false,
-            'fake' => true,
-            'store_in' => 'settings',
-            'translatable' => false,
-        ]);
-        $this->addField('download_mac_exe_html', Checkbox::class, $this->__('Version offline - Exécutable Mac OS X'), [
-            'v2' => '{"type":"boolean","editable":true,"default":false,"label":"\\u00a7!\\u00a7Version offline - Ex\\u00e9cutable Mac OS X!\\u00a7!","grade":3}',
-            'default' => false,
-            'fake' => true,
-            'store_in' => 'settings',
-            'translatable' => false,
-        ]);
-        $this->addField('download_win_cd_html', Checkbox::class, $this->__('Version offline - CD-ROM / Clé USB'), [
-            'v2' => '{"type":"boolean","editable":true,"default":false,"label":"\\u00a7!\\u00a7Version offline - CD-ROM \\/ Cl\\u00e9 USB!\\u00a7!","grade":3}',
-            'default' => false,
-            'fake' => true,
-            'store_in' => 'settings',
-            'translatable' => false,
-        ]);
-        $this->addField('download_win_html', Checkbox::class, $this->__('Version offline - HTML (Non adaptée à l\'installation sur un serveur web)'), [
-            'v2' => '{"type":"boolean","editable":true,"default":false,"label":"\\u00a7!\\u00a7Version offline - HTML (Non adapt\\u00e9e \\u00e0 l\'installation sur un serveur web)!\\u00a7!","grade":3}',
-            'default' => false,
-            'fake' => true,
-            'store_in' => 'settings',
-            'translatable' => false,
-        ]);
-        $this->addField('download_precompiled', Checkbox::class, $this->__('Version precompilée'), [
-            'v2' => '{"type":"boolean","editable":true,"default":false,"label":"\\u00a7!\\u00a7Version precompil\\u00e9e!\\u00a7!","grade":3}',
-            'default' => false,
-            'fake' => true,
-            'store_in' => 'settings',
-            'translatable' => false,
-        ]);
+
+        foreach (self::getDownloadVersions() as $name=>$downloadVersion) {
+            $this->addField('download_'.$name, Checkbox::class, $downloadVersion['label'], [
+                'v2' => json_encode(['type'=>'boolean','editable'=>true,'default'=>$downloadVersion['default'],'label'=>$downloadVersion['label'],'grade'=>3]),
+                'default' => $downloadVersion['default'],
+                'fake' => true,
+                'store_in' => 'settings',
+                'translatable' => false,
+            ]);
+        }
 
         $this->addField('section_elearning', FormSuperSection::class, __('E-Learning'));
         $this->addField('section_gamify', FormSection::class, $this->__('Gamification'));
index 06d54e4fb9fc0e44dcc1ec4b4a437487fa1a2d96..33e1e9fe3c7ae31feabcba12a043bad82ce15e5f 100644 (file)
@@ -1,4 +1,23 @@
-<a class="btn btn-sm btn-link" target="_blank" href="{{$crud->route}}/delivery/{{$entry->id}}_{{$entry->hash}}"
+@php
+    $actions=[
+        'delivery'=>
+            [
+                'label'=>__('Page de téléchargement'),
+                'url'=>$crud->route.'/delivery/'.$entry->id.'_'.$entry->hash,
+                ],
+        ];
+    foreach (\App\Models\FluidbookPublication::getDownloadVersions() as $k=>$v) {
+        if(can('fluidbook-publication:download:all-versions') || $entry->{'download_'.$k}){
+            $actions['download_'.$k]=['label'=>$v['label'],'url'=>$crud->route.'/download/'.$entry->id.'/'.$k];
+        }
+    }
+
+@endphp
+
+<a class="btn btn-sm btn-link" href="#"
    data-toggle="tooltip"
-   title="{{__('Télécharger la publication')}}"><i class="la la-arrow-circle-down"></i> {{__('Télécharger')}}
-</a>
+   title="{{__('Télécharger la publication')}}"
+   data-context-actions="{{json_encode($actions)}}"
+   data-context-route="{{$crud->route}}/$id/edit/$action"
+   data-context-id="{{$entry->getKey()}}"
+><i class="la la-arrow-circle-down"></i> {{__('Télécharger')}}</a>