From: Vincent Vanwaelscappel Date: Tue, 21 Mar 2023 11:06:45 +0000 (+0100) Subject: wip #5817 @2 X-Git-Url: http://git.cubedesigners.com/?a=commitdiff_plain;h=67e1b8b426bb0095ca39f3643d952a29b780b988;p=fluidbook-toolbox.git wip #5817 @2 --- diff --git a/app/Fields/FluidbookID.php b/app/Fields/FluidbookID.php index db6f0f80c..db1ac9926 100644 --- a/app/Fields/FluidbookID.php +++ b/app/Fields/FluidbookID.php @@ -2,7 +2,9 @@ namespace App\Fields; +use App\Models\FluidbookPublication; use Cubist\Backpack\Magic\Fields\SelectFromArray; +use Cubist\Util\PHP; use Illuminate\Support\Facades\Cache; use Illuminate\Support\Facades\DB; @@ -12,14 +14,18 @@ class FluidbookID extends SelectFromArray { $u = backpack_user(); if ($u) { - return Cache::remember('fluidbok_id_' . $u->id, 600, function () use ($u) { + $cacheKey = 'fluidbok_id_' . $u->id; + return Cache::remember($cacheKey, 600, function () use ($u) { $res = []; - $q = DB::table('extranet_clean.books'); + + $q = DB::table('fluidbook_publication')->where('created_ok', '1')->orderBy('id', 'desc'); if (!$u->hasPermissionTo('fluidbook-publication:admin')) { - $q->whereIn('proprietaire', explode(',', $u->e1_ws_rights)); + $q->whereIn('owner', explode(',', $u->e1_ws_rights)); } - foreach ($q->orderByDesc('book_id')->get() as $book) { - $res[$book->book_id] = $book->book_id . ' - ' . $book->nom; + $books = $q->get(); + + foreach ($books as $book) { + $res[$book->id] = $book->id . ' - ' . $book->c_title; } return $res; }); diff --git a/app/Models/FluidbookCollection.php b/app/Models/FluidbookCollection.php index db31345ab..61932e830 100644 --- a/app/Models/FluidbookCollection.php +++ b/app/Models/FluidbookCollection.php @@ -9,8 +9,10 @@ use App\SubForms\CollectionPublication; use App\SubForms\Fluidbook_Setting; use Cubist\Backpack\Magic\Fields\BunchOfFieldsMultiple; use Cubist\Backpack\Magic\Fields\Checkbox; +use Cubist\Backpack\Magic\Fields\ExternalPath; use Cubist\Backpack\Magic\Fields\SelectFromArray; use Cubist\Backpack\Magic\Fields\Text; + // __('!! Collections de fluidbooks') class FluidbookCollection extends ToolboxModel { @@ -35,6 +37,7 @@ class FluidbookCollection extends ToolboxModel $this->addField('locale_switch', Checkbox::class, __('Permettre le changement de langue'), ['when' => ['type' => ['scorm_multilang', 'export_multilang']], 'default' => true]); $this->addField('version', FluidbookExportVersion::class, __('Version'), ['when' => ['type' => 'export']]); $this->addField('publications', BunchOfFieldsMultiple::class, __('Publications'), ['bunch' => CollectionPublication::class, 'edit_label' => '%fluidbook > %dir']); + $this->addField('install', ExternalPath::class, 'Installer sur un serveur externe', ['default' => '', 'fake' => true, 'translatable' => false, 'store_in' => 'settings', 'servers_model' => FluidbookExternalInstallServer::class]); $this->addField('override_settings', BunchOfFieldsMultiple::class, __('Redéfinir les paramètres lors de l\'export'), ['bunch' => Fluidbook_Setting::class]); } diff --git a/resources/views/vendor/backpack/crud/buttons/delete.blade.php b/resources/views/vendor/backpack/crud/buttons/delete.blade.php new file mode 100644 index 000000000..3e977d107 --- /dev/null +++ b/resources/views/vendor/backpack/crud/buttons/delete.blade.php @@ -0,0 +1,95 @@ +@if ($crud->hasAccess('delete')) + {{ trans('backpack::crud.delete') }} +@endif + +{{-- Button Javascript --}} +{{-- - used right away in AJAX operations (ex: List) --}} +{{-- - pushed to the end of the page, after jQuery is loaded, for non-AJAX operations (ex: Show) --}} +@push('after_scripts') @if (request()->ajax()) @endpush @endif + +@if (!request()->ajax()) @endpush @endif diff --git a/resources/views/vendor/backpack/crud/buttons/fluidbook_collection/download.blade.php b/resources/views/vendor/backpack/crud/buttons/fluidbook_collection/download.blade.php index e9a187683..5cd9b4550 100644 --- a/resources/views/vendor/backpack/crud/buttons/fluidbook_collection/download.blade.php +++ b/resources/views/vendor/backpack/crud/buttons/fluidbook_collection/download.blade.php @@ -1,8 +1,19 @@ {{-- __('!! Collections de fluidbooks') --}} @php $v=$entry->version?:'online'; + $servers=\App\Models\FluidbookExternalInstallServer::getAllServers(); $vname=\App\Fields\FluidbookExportVersion::getVersions()[$v]['short']; - $actions=['download'=>__('Télécharger la version :version',['version'=>$vname]),'install_hosting'=>__('Installer la version online sur hosting')]; + $actions=['download'=>__('Télécharger la version :version',['version'=>$vname])]; + + if($entry->install && $entry->install->server && isset($servers[$entry->install->server])){ + $server=$servers[$entry->install->server]; + if($entry->install->path || $server['allows_root']){ + $actions['install']=[ + 'label'=>__('Installer sur le serveur :server',['server'=>''.$server['name'].'']).' '.$server['base_url'].''.$entry->install->path.'', + ]; + } + } + if($entry->type==='scorm_multilang'){ $actions['scormcloud']=__('Tester sur Scorm Cloud'); }