From: Vincent Vanwaelscappel Date: Tue, 14 Mar 2023 09:50:13 +0000 (+0100) Subject: wip #5802 @2 X-Git-Url: http://git.cubedesigners.com/?a=commitdiff_plain;h=ced5e48afc181cf79ba8e1ed94c973f88afd9a2c;p=fluidbook-toolbox.git wip #5802 @2 --- diff --git a/app/Http/Controllers/Admin/Operations/ChangeownerOperation.php b/app/Http/Controllers/Admin/Operations/ChangeownerOperation.php new file mode 100644 index 000000000..a6fc466b2 --- /dev/null +++ b/app/Http/Controllers/Admin/Operations/ChangeownerOperation.php @@ -0,0 +1,30 @@ +getModelInstance(); + if (!$this->getModelInstance()->canAdmin(backpack_user())) { + abort(401); + } + $instance = $class::find($id); + $instance->owner = $owner; + $instance->save(); + Alert::add('success', __('Propriétaire modifié'))->flash(); + return redirect(backpack_url($instance->getOption('name'))); + } +} diff --git a/app/Models/ELearningMedia.php b/app/Models/ELearningMedia.php index a9cd61e82..3bda56cca 100644 --- a/app/Models/ELearningMedia.php +++ b/app/Models/ELearningMedia.php @@ -3,6 +3,7 @@ namespace App\Models; use App\Fields\SCORMVersion; +use App\Http\Controllers\Admin\Operations\ChangeownerOperation; use App\Http\Controllers\Admin\Operations\ELearningMedia\ImportOperation; use App\Http\Controllers\Admin\Operations\ELearningMedia\PreviewOperation; use App\Http\Controllers\Admin\Operations\ELearningMedia\DownloadOperation; @@ -31,7 +32,7 @@ class ELearningMedia extends ToolboxModel public const MEDIA_TYPES = ['audio/mpeg', 'video/mp4', 'application/pdf']; - protected $_operations = [ImportOperation::class, PreviewOperation::class, DownloadOperation::class]; + protected $_operations = [ImportOperation::class, PreviewOperation::class, DownloadOperation::class,ChangeownerOperation::class]; public function setFields() { diff --git a/app/Models/ELearningPackage.php b/app/Models/ELearningPackage.php index d1f2c9fc4..803e39fda 100644 --- a/app/Models/ELearningPackage.php +++ b/app/Models/ELearningPackage.php @@ -3,6 +3,7 @@ namespace App\Models; use App\Fields\SCORMVersion; +use App\Http\Controllers\Admin\Operations\ChangeownerOperation; use App\Http\Controllers\Admin\Operations\ELearningPackage\ImportOperation; use App\Http\Controllers\Admin\Operations\ELearningPackage\PreviewOperation; use App\Http\Controllers\Admin\Operations\ELearningPackage\DownloadOperation; @@ -32,7 +33,7 @@ class ELearningPackage extends ToolboxModel protected static $_permissionBase = 'elearning-package'; - protected $_operations = [ImportOperation::class, PreviewOperation::class, DownloadOperation::class]; + protected $_operations = [ImportOperation::class, PreviewOperation::class, DownloadOperation::class,ChangeownerOperation::class]; public function setFields() { diff --git a/app/Models/FluidbookPublication.php b/app/Models/FluidbookPublication.php index 7e235082b..8f68c0a1b 100644 --- a/app/Models/FluidbookPublication.php +++ b/app/Models/FluidbookPublication.php @@ -11,6 +11,7 @@ use App\Fields\FluidbookStatus; use App\Fields\User; use App\Fluidbook\Farm; use App\Fluidbook\Links; +use App\Http\Controllers\Admin\Operations\ChangeownerOperation; use App\Http\Controllers\Admin\Operations\FluidbookPublication\CloneOperation; use App\Http\Controllers\Admin\Operations\FluidbookPublication\CompositionOperation; use App\Http\Controllers\Admin\Operations\FluidbookPublication\DeletefbOperation; @@ -55,7 +56,7 @@ class FluidbookPublication extends ToolboxSettingsModel protected static $_docs = []; - protected $_operations = [CreateOperation::class, PreviewOperation::class, LinksOperation::class, CompositionOperation::class, StatsOperation::class, DownloadOperation::class, CloneOperation::class, DeletefbOperation::class, EditOperation::class]; + protected $_operations = [CreateOperation::class, PreviewOperation::class, LinksOperation::class, CompositionOperation::class, StatsOperation::class, DownloadOperation::class, CloneOperation::class, DeletefbOperation::class, EditOperation::class,ChangeownerOperation::class]; protected $casts = ['composition' => 'array']; diff --git a/app/Models/FluidbookTheme.php b/app/Models/FluidbookTheme.php index 2d8487ca9..ed8f78ea3 100644 --- a/app/Models/FluidbookTheme.php +++ b/app/Models/FluidbookTheme.php @@ -4,6 +4,7 @@ namespace App\Models; use App\Fields\FluidbookThemeImage; +use App\Http\Controllers\Admin\Operations\ChangeownerOperation; use App\Jobs\GenerateThemePreview; use App\Jobs\UpdateWS2ThemeTable; use App\Models\Base\ToolboxSettingsModel; @@ -48,6 +49,8 @@ class FluidbookTheme extends ToolboxSettingsModel public static $updateWS2ViewOnChange = true; public static $updateWS2SyncViewOnChange = false; + protected $_operations = [ChangeownerOperation::class]; + public function setFields() { parent::setFields(); diff --git a/app/Models/Quiz.php b/app/Models/Quiz.php index 24fdb6e71..5de3dd234 100644 --- a/app/Models/Quiz.php +++ b/app/Models/Quiz.php @@ -3,6 +3,7 @@ namespace App\Models; use App\Fields\SCORMVersion; +use App\Http\Controllers\Admin\Operations\ChangeownerOperation; use App\Http\Controllers\Admin\Operations\Quiz\DownloadOperation; use App\Http\Controllers\Admin\Operations\Quiz\ImportOperation; use App\Http\Controllers\Admin\Operations\Quiz\LogOperation; @@ -32,7 +33,7 @@ class Quiz extends ToolboxModel public $registerMediaConversionsUsingModelInstance = false; - protected $_operations = [PreviewOperation::class, DownloadOperation::class, LogOperation::class, ReportOperation::class, ImportOperation::class]; + protected $_operations = [PreviewOperation::class, DownloadOperation::class, LogOperation::class, ReportOperation::class, ImportOperation::class,ChangeownerOperation::class]; use SCORMVersionTrait; diff --git a/config/backpack/base.php b/config/backpack/base.php index b9e6126f2..ab1193226 100644 --- a/config/backpack/base.php +++ b/config/backpack/base.php @@ -50,6 +50,8 @@ return [ 'https://cdnjs.cloudflare.com/ajax/libs/jquery-contextmenu/2.9.2/jquery.contextMenu.min.css', 'https://cdnjs.cloudflare.com/ajax/libs/sweetalert2/11.7.3/sweetalert2.min.css', + 'https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.13/css/select2.min.css', + 'https://cdnjs.cloudflare.com/ajax/libs/select2-bootstrap-theme/0.1.0-beta.10/select2-bootstrap.min.css', // Here's what's inside the bundle: // 'packages/@digitallyhappy/backstrap/css/style.min.css', @@ -138,7 +140,7 @@ return [ "https://cdnjs.cloudflare.com/ajax/libs/jquery-contextmenu/2.9.2/jquery.contextMenu.min.js", "https://cdnjs.cloudflare.com/ajax/libs/jquery-contextmenu/2.9.2/jquery.ui.position.min.js", 'https://cdnjs.cloudflare.com/ajax/libs/gsap/3.11.4/gsap.min.js', - + 'https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.13/js/select2.min.js', 'https://cdnjs.cloudflare.com/ajax/libs/sweetalert2/11.7.3/sweetalert2.all.js', // examples (everything inside the bundle, loaded from CDN) diff --git a/resources/views/columns/owner.blade.php b/resources/views/columns/owner.blade.php index e7d59aee9..2f35f711c 100644 --- a/resources/views/columns/owner.blade.php +++ b/resources/views/columns/owner.blade.php @@ -1,28 +1,25 @@ @php $values = data_get($entry, $column['name']); $v=$column['options'][$values]; + @endphp @if(!isset($crud->seenOwnersList)) @php $crud->seenOwnersList=true; - $ajax=\Cubist\Backpack\Magic\Fields\SelectFromArray::hashOptions($column['options']); + $crud->ajaxOwnerList=\Cubist\Backpack\Magic\Fields\SelectFromArray::hashOptions($column['options']); @endphp -
- -
+