From: Vincent Vanwaelscappel Date: Fri, 2 Sep 2022 13:07:37 +0000 (+0200) Subject: wait #5428 @2 X-Git-Url: http://git.cubedesigners.com/?a=commitdiff_plain;h=ceafa5af7bf3d83d60056a9abd251258509de655;p=fluidbook-toolbox.git wait #5428 @2 --- diff --git a/app/Http/Controllers/Admin/FluidbookPublicationCrudController.php b/app/Http/Controllers/Admin/FluidbookPublicationCrudController.php index 09edc1895..5133768fc 100644 --- a/app/Http/Controllers/Admin/FluidbookPublicationCrudController.php +++ b/app/Http/Controllers/Admin/FluidbookPublicationCrudController.php @@ -14,7 +14,7 @@ class FluidbookPublicationCrudController extends \Cubist\Backpack\Magic\Controll use \Backpack\CRUD\app\Http\Controllers\Operations\CloneOperation; use \Backpack\CRUD\app\Http\Controllers\Operations\DeleteOperation; use \Cubist\Backpack\Http\Controllers\Operations\ReviseOperation; - + /* diff --git a/app/Http/Controllers/Admin/Operations/FluidbookPublication/EditOperation.php b/app/Http/Controllers/Admin/Operations/FluidbookPublication/EditOperation.php new file mode 100644 index 000000000..01a8f1c69 --- /dev/null +++ b/app/Http/Controllers/Admin/Operations/FluidbookPublication/EditOperation.php @@ -0,0 +1,27 @@ +crud->addButton('line', 'edit', 'view', 'crud::buttons.fluidbook_publication.edit', 'end'); + $this->crud->operation(['list', 'show'], function () { + $this->crud->removeButton('update'); + }); + } + + public function links($id) + { + return 'Link editor of ' . $id; + } +} diff --git a/app/Models/FluidbookPublication.php b/app/Models/FluidbookPublication.php index bef94b151..6ee9e0e2f 100644 --- a/app/Models/FluidbookPublication.php +++ b/app/Models/FluidbookPublication.php @@ -12,6 +12,7 @@ use App\Http\Controllers\Admin\Operations\FluidbookPublication\CompositionOperat use App\Http\Controllers\Admin\Operations\FluidbookPublication\DownloadOperation; use App\Http\Controllers\Admin\Operations\FluidbookPublication\PreviewOperation; use App\Http\Controllers\Admin\Operations\FluidbookPublication\StatsOperation; +use App\Http\Controllers\Admin\Operations\FluidbookPublication\EditOperation; use App\Models\Base\ToolboxSettingsModel; use App\Models\Traits\PublicationSettings; use App\Models\Traits\SCORMVersionTrait; @@ -38,7 +39,7 @@ class FluidbookPublication extends ToolboxSettingsModel protected static $_docs = []; - protected $_operations = [PreviewOperation::class, CompositionOperation::class, DownloadOperation::class, StatsOperation::class]; + protected $_operations = [PreviewOperation::class, EditOperation::class, CompositionOperation::class, StatsOperation::class, DownloadOperation::class]; protected $casts = ['composition' => 'array']; diff --git a/app/Models/Traits/SCORMVersionTrait.php b/app/Models/Traits/SCORMVersionTrait.php index 5867f4b30..73040d8a2 100644 --- a/app/Models/Traits/SCORMVersionTrait.php +++ b/app/Models/Traits/SCORMVersionTrait.php @@ -6,10 +6,15 @@ trait SCORMVersionTrait { public function getSCORMVersion() { - if ((isset($this->scorm_enable) && !$this->scorm_enable) || !$this->scorm_version) { + if (!$this->isSCORMEnabled()) { return '-'; } $map = ['1.2' => '1.2', '2004' => '2004', '2004.3' => '2004 3rd ed.']; return $map[$this->scorm_version]; } + + public function isSCORMEnabled() + { + return (isset($this->scorm_enable) && $this->scorm_enable) && $this->scorm_version; + } } diff --git a/public/packages/fluidbook/toolbox/js/contextdownload.js b/public/packages/fluidbook/toolbox/js/contextdownload.js index 2b7b90b2b..0c3f32b3f 100644 --- a/public/packages/fluidbook/toolbox/js/contextdownload.js +++ b/public/packages/fluidbook/toolbox/js/contextdownload.js @@ -3,11 +3,27 @@ $(function () { selector: '[data-context-actions]', trigger: 'left', build: function ($trigger, e) { var route = $($trigger).data('context-route'); var id = $($trigger).data('context-id'); - var actions = $($trigger).data('context-actions'); + var rawActions = $($trigger).data('context-actions'); var items = {}; var confirm = $($trigger).data('context-confirm'); - $.each(actions, function (key, name) { - items[key] = {name: name}; + + var actions = {}; + $.each(rawActions, function (key, action) { + if (typeof action === 'string') { + action = {'label': action}; + } + if (action.url === undefined) { + action.url = route; + } + action.url = replaceVariables(action.url, key); + if (action.target === undefined) { + action.target = '_self'; + } + actions[key] = action; + }); + + $.each(actions, function (key, action) { + items[key] = {name: action.label}; }); function replaceVariables(template, action) { @@ -16,18 +32,23 @@ $(function () { return { callback: function (key, options) { - var url = replaceVariables(route, key); + var ok = function () { - window.location = url; + var target = actions[key].target; + var url = actions[key].url; + if (target === '_self') { + window.location = url; + } else { + window.open(url, target); + } return true; } - console.log(confirm); - if (confirm === null || confirm===undefined) { + if (confirm === null || confirm === undefined) { return ok(); } swal({ title: confirm.title, - text: replaceVariables(confirm.text, actions[key]), + text: replaceVariables(confirm.text, actions[key].label), icon: "info", buttons: { cancel: { diff --git a/resources/views/vendor/backpack/crud/buttons/fluidbook_publication/edit.blade.php b/resources/views/vendor/backpack/crud/buttons/fluidbook_publication/edit.blade.php new file mode 100644 index 000000000..86e327a35 --- /dev/null +++ b/resources/views/vendor/backpack/crud/buttons/fluidbook_publication/edit.blade.php @@ -0,0 +1,24 @@ +@php + $actions=[ + 'settings'=> + [ + 'label'=>__('Modifier les paramètres'), + 'url'=>$crud->route.'/$id/edit' + ], + 'links'=> + [ + 'label'=>__('Modifier les liens'), + 'url'=>$crud->route.'/$id/edit/$action', + 'target'=>'_blank' + ] + ]; +@endphp + + {{__('Éditer')}} + diff --git a/resources/views/vendor/backpack/crud/buttons/fluidbook_publication/preview.blade.php b/resources/views/vendor/backpack/crud/buttons/fluidbook_publication/preview.blade.php index 043a0cb53..2891f216a 100644 --- a/resources/views/vendor/backpack/crud/buttons/fluidbook_publication/preview.blade.php +++ b/resources/views/vendor/backpack/crud/buttons/fluidbook_publication/preview.blade.php @@ -1,4 +1,16 @@ -['label'=>__('Version online'),'url'=>$crud->route.'/preview/$id_'.$entry->hash,'target'=>'_blank']]; + if($entry->isSCORMEnabled()){ + $actions['scorm']=['label'=>__('Version SCORM'),'url'=>$crud->route.'/preview/scorm/$id_'.$entry->hash,'target'=>'_blank']; + } +@endphp + +1) + data-context-actions="{{json_encode($actions)}}" + data-context-route="{{$crud->route}}/$id/edit/$action" + data-context-id="{{$entry->getKey()}}" + @endif data-toggle="tooltip" title="{{__('Voir le fluidbook')}}"> {{__('Voir')}}