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();
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'));
}
// 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();
}
}
}
+ public function setStatus($newStatus)
+ {
+ $this->status = $newStatus;
+ }
+
public function allowsDelete()
{
if (!parent::allowsDelete()) {
}
}
}
+
+ public function setStatus($newStatus)
+ {
+ parent::setStatus($newStatus);
+
+
+ foreach ($this->getPageData()->publications as $publication) {
+ $fb = FluidbookPublication::withoutGlobalScopes()->find($publication['fluidbook']);
+ $fb->setStatus($newStatus);
+ $fb->save();
+ }
+ }
}
}
}
}
+
+ $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()}}"
$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')
];