]> _ Git - fluidbook-toolbox.git/commitdiff
wip #6487 @2
authorVincent Vanwaelscappel <vincent@cubedesigners.com>
Mon, 20 Nov 2023 16:37:01 +0000 (17:37 +0100)
committerVincent Vanwaelscappel <vincent@cubedesigners.com>
Mon, 20 Nov 2023 16:37:01 +0000 (17:37 +0100)
app/Http/Controllers/Admin/Operations/ChangestatusOperation.php
app/Http/Controllers/Admin/Operations/FluidbookCollection/DownloadOperation.php
app/Http/Controllers/Admin/Operations/FluidbookPublication/DownloadOperation.php
app/Models/Base/ToolboxStatusModel.php
app/Models/FluidbookCollection.php
resources/views/vendor/backpack/crud/buttons/fluidbook_collection/download.blade.php
resources/views/vendor/backpack/crud/buttons/fluidbook_publication/download.blade.php

index 074b9f62aed4d691c28321c9e499588ae0dea6d3..5b1ddcd8d0baa3b0f37755ddcbf760c2ff79bf4e 100644 (file)
@@ -24,13 +24,13 @@ trait ChangestatusOperation
         if (!$class::hasPermission($id)) {
             abort(401);
         }
-        $instant = $class::find($id);
-        if (!$instant || !$instant->allowsEdit()) {
+        $instance = $class::find($id);
+        if (!$instance || !$instance->allowsEdit()) {
             abort(404);
         }
-        if ($instant->status != $newStatus) {
-            $instant->status = $newStatus;
-            $instant->save();
+        if ($instance->status != $newStatus) {
+            $instance->setStatus($newStatus);
+            $instance->save();
         }
         Alert::add('success', __('Status modifié'))->flash();
         return back();
index 18f9fc8209a95b5499e8c560b1eb30c9002fb492..21f4cfa5ee9da4473b4707eecc35db4b5519c167 100644 (file)
@@ -26,7 +26,15 @@ trait DownloadOperation
 
     protected function download($id, $action)
     {
-        FluidbookCollectionDownload::dispatch(FluidbookCollection::find($id), $action, backpack_user())->onQueue('download');
+        $collection = FluidbookCollection::withoutGlobalScopes()->find($id);
+        FluidbookCollectionDownload::dispatch($collection, $action, backpack_user())->onQueue('download');
+
+        // Mark the fluidbook as downloaded when status is ready and user is not an admin
+        if ($collection->status == 1 && !can('fluidbook-publication:admin')) {
+            $collection->setStatus(2);
+            $collection->save();
+        }
+
         Alert::add('success', __('La compilation a été placée en file d\'attente. Vous recevrez un email lorsqu\'elle sera terminée.'))->flash();
         return redirect(backpack_url('fluidbook-collection'));
     }
index ef13c4f5ec6fb89a225713e0ed8348e70e4af7c2..43ddc7da33f9b1c17773c43a4adcf74ca05bc52e 100644 (file)
@@ -103,7 +103,7 @@ trait DownloadOperation
 
         // Mark the fluidbook as downloaded when status is ready and user is not an admin
         if ($fluidbook->status == 1 && !can('fluidbook-publication:admin')) {
-            $fluidbook->status = 2;
+            $fluidbook->setStatus( 2);
             $fluidbook->save();
         }
 
index bec1af3791c68410cab197f0a3ff2435236c1521..69f1786a0c8a8090b8528a973b432746d0856d61 100644 (file)
@@ -24,6 +24,11 @@ class ToolboxStatusModel extends ToolboxModel
         }
     }
 
+    public function setStatus($newStatus)
+    {
+        $this->status = $newStatus;
+    }
+
     public function allowsDelete()
     {
         if (!parent::allowsDelete()) {
index 918b3d9b6d2b1231abbdd898adc2ad2dd0e09d40..2194cc2b7212235727b93827e7c3a857a3974aec 100644 (file)
@@ -113,4 +113,16 @@ class FluidbookCollection extends ToolboxStatusModel
             }
         }
     }
+
+    public function setStatus($newStatus)
+    {
+        parent::setStatus($newStatus);
+
+
+        foreach ($this->getPageData()->publications as $publication) {
+            $fb = FluidbookPublication::withoutGlobalScopes()->find($publication['fluidbook']);
+            $fb->setStatus($newStatus);
+            $fb->save();
+        }
+    }
 }
index cca55965e8a18584488b1991dc3185aa93e85429..c523369158e6559ac6a262b384d2abea88ff4d92 100644 (file)
             }
         }
     }
+
+        $confirm=[
+        'title'=>'',
+        'text'=>__('En téléchargeant la collection, vous confirmez que vous l\'avez testée et validée. Elle vous sera donc facturée selon les conditions stipulées dans votre contrat.'),
+        'confirm'=>__('Confirmer'),
+        'cancel'=>__('Annuler')
+    ];
 @endphp
 <a class="btn btn-sm btn-link exportcollection" href="#"
    data-toggle="tooltip"
    title="{{__('Exporter la collection')}}"
+   @if($entry->status==1 && !can('fluidbook-collection:admin'))
+       data-context-confirm="{{json_encode($confirm)}}"
+   @endif
    data-context-actions="{{json_encode($actions)}}"
    data-context-route="{{$crud->route}}/$id/download/$action"
    data-context-id="{{$entry->getKey()}}"
index e56bab66ab5d87ed17add00159d37d9fd071cd1d..acb9e693d1498eef045769d0640920c32e580c91 100644 (file)
@@ -67,7 +67,7 @@
 
     $confirm=[
         'title'=>'',
-        'text'=>__('En téléchargeant la publication, vous confirmez que vous l\'avez testé et validé. Elle vous sera donc facturée selon les conditions stipulées dans votre contrat.'),
+        'text'=>__('En téléchargeant la publication, vous confirmez que vous l\'avez testée et validée. Elle vous sera donc facturée selon les conditions stipulées dans votre contrat.'),
         'confirm'=>__('Confirmer'),
         'cancel'=>__('Annuler')
     ];