]> _ Git - fluidbook-toolbox.git/commitdiff
wip #4465 @1.5
authorVincent Vanwaelscappel <vincent@cubedesigners.com>
Tue, 11 May 2021 19:35:50 +0000 (21:35 +0200)
committerVincent Vanwaelscappel <vincent@cubedesigners.com>
Tue, 11 May 2021 19:35:50 +0000 (21:35 +0200)
16 files changed:
app/Console/Commands/WorkshopMigration.php
app/Http/Controllers/Admin/CompanyCrudController.php
app/Http/Controllers/Admin/FluidbookPublicationCrudController.php [new file with mode: 0644]
app/Http/Controllers/Admin/FluidbookQuoteCrudController.php
app/Http/Controllers/Admin/FluidbookThemeCrudController.php [new file with mode: 0644]
app/Http/Controllers/Admin/LocaleCrudController.php
app/Http/Controllers/Admin/QuizCrudController.php
app/Http/Controllers/Admin/QuizatttemptCrudController.php
app/Http/Controllers/Admin/QuiztranslationCrudController.php
app/Http/Controllers/Admin/SettingsCrudController.php
app/Http/Controllers/Admin/SignatureCrudController.php
app/Http/Controllers/Admin/ToolboxTranslateCrudController.php
app/Http/Controllers/Admin/UsersCrudController.php
app/Models/FluidbookTheme.php
routes/backpack/custom.php
routes/console.php

index 7e3564fc3498d213628b69ecfadbd099d0c3e7c2..44cd67b352fa220a6266805529200b9f2b241f54 100644 (file)
@@ -97,10 +97,6 @@ class WorkshopMigration extends CubistCommand
             }
             $c->save();
 
-            $storage = storage_path('themes/' . $e->theme_id . '/');
-            if (!file_exists($storage)) {
-                mkdir($storage, 0777, true);
-            }
 
             $s = $this->_unserialize($e->parametres);
 
@@ -110,23 +106,10 @@ class WorkshopMigration extends CubistCommand
                 }
                 $f = $c->getField($k);
                 if ($f instanceof Files) {
-                    if ($data) {
-                        $file = $oldRoot . $data;
-                        if (file_exists($file)) {
-                            $copy = $storage . $data;
-                            if (!file_exists($copy)) {
-                                copy($file, $copy);
-                            }
-                            try {
-                                $c->addMediaToField($k, $copy);
-                            } catch (\Exception $e) {
-                                echo $copy . "\n";
-                            }
-                        }
-                    }
+                    $c->_handleWS2File($f, $data, $oldRoot);
                 } else {
                     if ($f instanceof Color) {
-
+                        $data = FluidbookTheme::_colorToWS3($data);
                     }
                     $c->setAttribute($k, $data);
                 }
index 08ed7bdfaab4d7825f5c62c5edf5f9c1f8bb7d33..f397a4cd1d7d89531a84406e9ae47ce7a17583d6 100644 (file)
@@ -4,25 +4,20 @@ namespace App\Http\Controllers\Admin;
 
 class CompanyCrudController extends \Cubist\Backpack\Magic\Controllers\CubistMagicController
 {
-    use \Backpack\CRUD\app\Http\Controllers\Operations\CreateOperation;
-       use \Backpack\CRUD\app\Http\Controllers\Operations\UpdateOperation;
-       use \Cubist\Backpack\Http\Controllers\Operations\BulkPublishOperation;
-       use \Backpack\CRUD\app\Http\Controllers\Operations\CloneOperation;
-       use \Backpack\CRUD\app\Http\Controllers\Operations\BulkCloneOperation;
-       use \Backpack\CRUD\app\Http\Controllers\Operations\DeleteOperation;
-       use \Backpack\CRUD\app\Http\Controllers\Operations\BulkDeleteOperation;
+    use \Cubist\Backpack\Magic\Operations\CreateOperation;
+       use \Cubist\Backpack\Magic\Operations\UpdateOperation;
        use \Cubist\Backpack\Http\Controllers\Operations\ReviseOperation;
        
 
 
     /*
-       __('company')
-       __('companies')
+       __('client')
+       __('clients')
        */
 
     protected $_modelNamespace = 'App\Models\Company';
     protected $_routeURL = 'company';
-    protected $_singular = 'company';
-    protected $_plural = 'companies';
+    protected $_singular = 'client';
+    protected $_plural = 'clients';
     protected $_oneInstance= false;
 }
diff --git a/app/Http/Controllers/Admin/FluidbookPublicationCrudController.php b/app/Http/Controllers/Admin/FluidbookPublicationCrudController.php
new file mode 100644 (file)
index 0000000..a3cd201
--- /dev/null
@@ -0,0 +1,25 @@
+<?php
+
+namespace App\Http\Controllers\Admin;
+
+class FluidbookPublicationCrudController extends \Cubist\Backpack\Magic\Controllers\CubistMagicController
+{
+    use \Cubist\Backpack\Magic\Operations\CreateOperation;
+       use \Cubist\Backpack\Magic\Operations\UpdateOperation;
+       use \Backpack\CRUD\app\Http\Controllers\Operations\CloneOperation;
+       use \Backpack\CRUD\app\Http\Controllers\Operations\DeleteOperation;
+       use \Cubist\Backpack\Http\Controllers\Operations\ReviseOperation;
+       
+
+
+    /*
+       __('publication')
+       __('publications')
+       */
+
+    protected $_modelNamespace = 'App\Models\FluidbookPublication';
+    protected $_routeURL = 'fluidbook-publication';
+    protected $_singular = 'publication';
+    protected $_plural = 'publications';
+    protected $_oneInstance= false;
+}
index 5f4627faccc5e63db3b1188cc5a384f5fa1a42e6..97b5d879d9669880873366176fad7614521da91e 100644 (file)
@@ -4,12 +4,11 @@ namespace App\Http\Controllers\Admin;
 
 class FluidbookQuoteCrudController extends \Cubist\Backpack\Magic\Controllers\CubistMagicController
 {
-    use \Cubist\Backpack\Http\Controllers\Operations\ShowOperation;
-       use \App\Http\Controllers\Admin\Operations\FluidbookQuote\AssignOperation;
+    use \App\Http\Controllers\Admin\Operations\FluidbookQuote\AssignOperation;
        use \App\Http\Controllers\Admin\Operations\FluidbookQuote\CreateFromWebsite;
        use \App\Http\Controllers\Admin\Operations\FluidbookQuote\ConfirmAssignmentOperation;
-       use \Backpack\CRUD\app\Http\Controllers\Operations\UpdateOperation;
-       use \Cubist\Backpack\Http\Controllers\Operations\BulkPublishOperation;
+       use \Cubist\Backpack\Magic\Operations\UpdateOperation;
+       use \Backpack\CRUD\app\Http\Controllers\Operations\DeleteOperation;
        use \Cubist\Backpack\Http\Controllers\Operations\ReviseOperation;
        
 
diff --git a/app/Http/Controllers/Admin/FluidbookThemeCrudController.php b/app/Http/Controllers/Admin/FluidbookThemeCrudController.php
new file mode 100644 (file)
index 0000000..d7ef37e
--- /dev/null
@@ -0,0 +1,28 @@
+<?php
+
+namespace App\Http\Controllers\Admin;
+
+class FluidbookThemeCrudController extends \Cubist\Backpack\Magic\Controllers\CubistMagicController
+{
+    use \Cubist\Backpack\Magic\Operations\CreateOperation;
+       use \Cubist\Backpack\Magic\Operations\UpdateOperation;
+       use \Cubist\Backpack\Http\Controllers\Operations\BulkPublishOperation;
+       use \Backpack\CRUD\app\Http\Controllers\Operations\CloneOperation;
+       use \Backpack\CRUD\app\Http\Controllers\Operations\BulkCloneOperation;
+       use \Backpack\CRUD\app\Http\Controllers\Operations\DeleteOperation;
+       use \Backpack\CRUD\app\Http\Controllers\Operations\BulkDeleteOperation;
+       use \Cubist\Backpack\Http\Controllers\Operations\ReviseOperation;
+       
+
+
+    /*
+       __('theme')
+       __('themes')
+       */
+
+    protected $_modelNamespace = 'App\Models\FluidbookTheme';
+    protected $_routeURL = 'fluidbook-theme';
+    protected $_singular = 'theme';
+    protected $_plural = 'themes';
+    protected $_oneInstance= false;
+}
index d62b0ec7eff77572da686959975516aefbcbf265..77182f157aa871e60980fe0c2661611c2eb6d76f 100644 (file)
@@ -4,8 +4,8 @@ namespace App\Http\Controllers\Admin;
 
 class LocaleCrudController extends \Cubist\Backpack\Magic\Controllers\CubistMagicController
 {
-    use \Backpack\CRUD\app\Http\Controllers\Operations\CreateOperation;
-       use \Backpack\CRUD\app\Http\Controllers\Operations\UpdateOperation;
+    use \Cubist\Backpack\Magic\Operations\CreateOperation;
+       use \Cubist\Backpack\Magic\Operations\UpdateOperation;
        use \Cubist\Backpack\Http\Controllers\Operations\BulkPublishOperation;
        use \Backpack\CRUD\app\Http\Controllers\Operations\CloneOperation;
        use \Backpack\CRUD\app\Http\Controllers\Operations\BulkCloneOperation;
index 3967888044dc8e9fa2bb0d300f635be2ae96c606..41ffba72f7e08acf031ce19deaca841afb161543 100644 (file)
@@ -4,13 +4,10 @@ namespace App\Http\Controllers\Admin;
 
 class QuizCrudController extends \App\Http\Controllers\Admin\Base\QuizController
 {
-    use \Backpack\CRUD\app\Http\Controllers\Operations\CreateOperation;
-       use \Backpack\CRUD\app\Http\Controllers\Operations\UpdateOperation;
-       use \Cubist\Backpack\Http\Controllers\Operations\BulkPublishOperation;
+    use \Cubist\Backpack\Magic\Operations\CreateOperation;
+       use \Cubist\Backpack\Magic\Operations\UpdateOperation;
        use \Backpack\CRUD\app\Http\Controllers\Operations\CloneOperation;
-       use \Backpack\CRUD\app\Http\Controllers\Operations\BulkCloneOperation;
        use \Backpack\CRUD\app\Http\Controllers\Operations\DeleteOperation;
-       use \Backpack\CRUD\app\Http\Controllers\Operations\BulkDeleteOperation;
        use \Cubist\Backpack\Http\Controllers\Operations\ReviseOperation;
        
 
index 1dcf09956bee8dd4102291bc20f0f86ae5bd6ed5..ed29dd62b7e053de893818d0788dd3abaa26e0b5 100644 (file)
@@ -4,8 +4,8 @@ namespace App\Http\Controllers\Admin;
 
 class QuizatttemptCrudController extends \Cubist\Backpack\Magic\Controllers\CubistMagicController
 {
-    use \Backpack\CRUD\app\Http\Controllers\Operations\CreateOperation;
-       use \Backpack\CRUD\app\Http\Controllers\Operations\UpdateOperation;
+    use \Cubist\Backpack\Magic\Operations\CreateOperation;
+       use \Cubist\Backpack\Magic\Operations\UpdateOperation;
        use \Cubist\Backpack\Http\Controllers\Operations\BulkPublishOperation;
        use \Backpack\CRUD\app\Http\Controllers\Operations\CloneOperation;
        use \Backpack\CRUD\app\Http\Controllers\Operations\BulkCloneOperation;
index 733aed81a457e44b15f61fd035ed1802f3b30f6f..ecaf1ef1261127718d9381527f447a229c174196 100644 (file)
@@ -4,8 +4,8 @@ namespace App\Http\Controllers\Admin;
 
 class QuiztranslationCrudController extends \Cubist\Backpack\Magic\Controllers\CubistMagicController
 {
-    use \Backpack\CRUD\app\Http\Controllers\Operations\CreateOperation;
-       use \Backpack\CRUD\app\Http\Controllers\Operations\UpdateOperation;
+    use \Cubist\Backpack\Magic\Operations\CreateOperation;
+       use \Cubist\Backpack\Magic\Operations\UpdateOperation;
        use \Cubist\Backpack\Http\Controllers\Operations\BulkPublishOperation;
        use \Backpack\CRUD\app\Http\Controllers\Operations\CloneOperation;
        use \Backpack\CRUD\app\Http\Controllers\Operations\BulkCloneOperation;
index 9288456b05e4008ef242b1b2166126177f1eab7e..090c8ebac53c993a8ff84882affa97dca46340cc 100644 (file)
@@ -4,8 +4,8 @@ namespace App\Http\Controllers\Admin;
 
 class SettingsCrudController extends \Cubist\Backpack\Magic\Controllers\CubistMagicController
 {
-    use \Backpack\CRUD\app\Http\Controllers\Operations\CreateOperation;
-       use \Backpack\CRUD\app\Http\Controllers\Operations\UpdateOperation;
+    use \Cubist\Backpack\Magic\Operations\CreateOperation;
+       use \Cubist\Backpack\Magic\Operations\UpdateOperation;
        use \Cubist\Backpack\Http\Controllers\Operations\BulkPublishOperation;
        use \Backpack\CRUD\app\Http\Controllers\Operations\CloneOperation;
        use \Backpack\CRUD\app\Http\Controllers\Operations\BulkCloneOperation;
index f84e1e27ed773d57fbbb34313d15d0a35d207df9..723e1752da0e5973ca7ec07da44222dccf7b161d 100644 (file)
@@ -4,13 +4,10 @@ namespace App\Http\Controllers\Admin;
 
 class SignatureCrudController extends \Cubist\Backpack\Magic\Controllers\CubistMagicController
 {
-    use \Backpack\CRUD\app\Http\Controllers\Operations\CreateOperation;
-       use \Backpack\CRUD\app\Http\Controllers\Operations\UpdateOperation;
-       use \Cubist\Backpack\Http\Controllers\Operations\BulkPublishOperation;
+    use \Cubist\Backpack\Magic\Operations\CreateOperation;
+       use \Cubist\Backpack\Magic\Operations\UpdateOperation;
        use \Backpack\CRUD\app\Http\Controllers\Operations\CloneOperation;
-       use \Backpack\CRUD\app\Http\Controllers\Operations\BulkCloneOperation;
        use \Backpack\CRUD\app\Http\Controllers\Operations\DeleteOperation;
-       use \Backpack\CRUD\app\Http\Controllers\Operations\BulkDeleteOperation;
        use \Cubist\Backpack\Http\Controllers\Operations\ReviseOperation;
        
 
index e9d998e7115aa4ae943b8f07dfe650b0f374c453..aaf3d306bd23d5633d951459813de033f794ef78 100644 (file)
@@ -4,8 +4,8 @@ namespace App\Http\Controllers\Admin;
 
 class ToolboxTranslateCrudController extends \Cubist\Backpack\Magic\Controllers\CubistMagicController
 {
-    use \Backpack\CRUD\app\Http\Controllers\Operations\CreateOperation;
-       use \Backpack\CRUD\app\Http\Controllers\Operations\UpdateOperation;
+    use \Cubist\Backpack\Magic\Operations\CreateOperation;
+       use \Cubist\Backpack\Magic\Operations\UpdateOperation;
        use \Cubist\Backpack\Http\Controllers\Operations\BulkPublishOperation;
        use \Backpack\CRUD\app\Http\Controllers\Operations\CloneOperation;
        use \Backpack\CRUD\app\Http\Controllers\Operations\BulkCloneOperation;
index fa57865c0f367eb74e49f2fba3b03180917bc26c..35f235cd4969d44b1b2f0659c6ea8f0188f5d65b 100644 (file)
@@ -5,25 +5,21 @@ namespace App\Http\Controllers\Admin;
 class UsersCrudController extends \Cubist\Backpack\Magic\Controllers\CubistMagicController
 {
     use \Cubedesigners\UserDatabase\Operations\LoginasOperation;
-       use \Backpack\CRUD\app\Http\Controllers\Operations\CreateOperation;
-       use \Backpack\CRUD\app\Http\Controllers\Operations\UpdateOperation;
-       use \Cubist\Backpack\Http\Controllers\Operations\BulkPublishOperation;
-       use \Backpack\CRUD\app\Http\Controllers\Operations\CloneOperation;
-       use \Backpack\CRUD\app\Http\Controllers\Operations\BulkCloneOperation;
-       use \Backpack\CRUD\app\Http\Controllers\Operations\DeleteOperation;
-       use \Backpack\CRUD\app\Http\Controllers\Operations\BulkDeleteOperation;
+       use \Cubedesigners\UserDatabase\Operations\CreateFromCompany;
+       use \Cubist\Backpack\Magic\Operations\CreateOperation;
+       use \Cubist\Backpack\Magic\Operations\UpdateOperation;
        use \Cubist\Backpack\Http\Controllers\Operations\ReviseOperation;
        
 
 
     /*
-       __('user')
-       __('users')
+       __('utilisateur')
+       __('utilisateurs')
        */
 
     protected $_modelNamespace = 'App\Models\User';
     protected $_routeURL = 'users';
-    protected $_singular = 'user';
-    protected $_plural = 'users';
+    protected $_singular = 'utilisateur';
+    protected $_plural = 'utilisateurs';
     protected $_oneInstance= false;
 }
index 9dfa2bce7d7f2bcc6684347f330e6855deeb9f40..40cd17fde9c8f034765f0416ecc54c1e092faa07 100644 (file)
@@ -20,6 +20,7 @@ class FluidbookTheme extends CubistMagicAbstractModel
 
     protected static $_colorToWS2Cache = [];
     protected static $_colorAlphaToWS2Cache = [];
+    protected $_oldRoot = '/home/extranet/www/fluidbook/';
 
     public function setFields()
     {
@@ -983,4 +984,88 @@ class FluidbookTheme extends CubistMagicAbstractModel
         parent::onAfterSave();
         $this->updateWS2Table();
     }
+
+    public function fromWS2($data)
+    {
+        $map = ['theme_id' => 'id',
+            'nom' => 'name',
+            'proprietaire' => 'owner',
+            'date' => 'created_at',];
+
+        $ignore = ['extraXSpace', 'extraYSpace'];
+
+        $oldRoot = $this->_oldRoot . 'themes/' . $data->theme_id . '/';
+
+        foreach ($map as $old => $new) {
+            $v = $data->$old;
+            if ($old === 'date') {
+                $date = new \DateTime();
+                $date->setTimestamp($v);
+                $v = $date;
+            }
+            $this->setAttribute($new, $v);
+        }
+        $this->save();
+
+
+        $s = self::_unserialize($data->parametres);
+
+        foreach ($s->datas as $k => $v) {
+            if (in_array($k, $ignore)) {
+                continue;
+            }
+            $f = $this->getField($k);
+            if ($f instanceof Files) {
+                $this->_handleWS2File($f, $v, $oldRoot);
+            } else {
+                if ($f instanceof Color) {
+                    $data = self::_colorToWS3($data);
+                }
+                $this->setAttribute($k, $v);
+            }
+        }
+        $this->save();
+        return $this;
+    }
+
+    public function getStorage()
+    {
+        $storage = storage_path('themes/' . $this->getAttribute('id') . '/');
+        if (!file_exists($storage)) {
+            mkdir($storage, 0777, true);
+        }
+        return $storage;
+    }
+
+    /**
+     * @param $field Files
+     * @param $data string
+     * @param $oldRoot string
+     */
+    public function _handleWS2File($field, $data, $oldRoot)
+    {
+        if ($data) {
+            $file = $oldRoot . $data;
+            if (file_exists($file)) {
+
+                $copy = $this->getStorage() . $data;
+                if (!file_exists($copy)) {
+                    copy($file, $copy);
+                }
+                try {
+                    $this->addMediaToField($field->getName(), $copy);
+                } catch (\Exception $e) {
+                    echo $copy . "\n";
+                }
+            }
+        }
+    }
+
+    protected static function _unserialize($str)
+    {
+        $class = 'stdClass';
+        $str = preg_replace('/^O:\d+:"[^"]++"/', 'O:' . strlen($class) . ':"' . $class . '"', $str);
+        $str = str_replace("s:8:\"\0*\0datas\"", 's:5:"datas"', $str);
+        return unserialize($str);
+    }
 }
index 07c835c919e6d36b6862a2769b568f355c4bb2b9..2f11bb8c550898723972c6db97556bd0a6b1ec28 100644 (file)
@@ -1,22 +1,24 @@
 <?php
 Route::group([
-    'prefix'     => config('backpack.base.route_prefix', 'admin'),
+    'prefix' => config('backpack.base.route_prefix', 'admin'),
     'middleware' => ['web', config('backpack.base.middleware_key', 'admin')],
-    'namespace'  => 'App\Http\Controllers\Admin',
+    'namespace' => 'App\Http\Controllers\Admin',
 ], function () { // custom admin routes
     try {
-         Route::crud('users', 'UsersCrudController');
-     Route::crud('company', 'CompanyCrudController');
-     Route::crud('fluidbook-quote', 'FluidbookQuoteCrudController');
-     Route::crud('locale', 'LocaleCrudController');
-     Route::crud('quiz', 'QuizCrudController');
-     Route::crud('quizatttempt', 'QuizatttemptCrudController');
-     Route::crud('quiztranslation', 'QuiztranslationCrudController');
-     Route::crud('settings', 'SettingsCrudController');
-     Route::crud('signature', 'SignatureCrudController');
-     Route::crud('toolbox-translate', 'ToolboxTranslateCrudController');
-     Route::crud('users', 'UsersCrudController');
-    } catch(\Throwable $e) {
+        Route::crud('locale', 'LocaleCrudController');
+        Route::crud('settings', 'SettingsCrudController');
+        Route::crud('quiztranslation', 'QuiztranslationCrudController');
+        Route::crud('fluidbook-theme', 'FluidbookThemeCrudController');
+        Route::crud('fluidbook-quote', 'FluidbookQuoteCrudController');
+        Route::crud('quizatttempt', 'QuizatttemptCrudController');
+        Route::crud('toolbox-translate', 'ToolboxTranslateCrudController');
+        Route::crud('fluidbook-publication', 'FluidbookPublicationCrudController');
+        Route::crud('quiz', 'QuizCrudController');
+        Route::crud('signature', 'SignatureCrudController');
+        Route::crud('users', 'UsersCrudController');
+        Route::crud('company', 'CompanyCrudController');
+        Route::crud('users', 'UsersCrudController');
+    } catch (\Throwable $e) {
 
     }
 });
index 75dd0cdedbe262bacc85395e4155d35f20d7db99..68d395f167c9b644b55a9a4179456c1e624167c5 100644 (file)
@@ -13,6 +13,3 @@ use Illuminate\Foundation\Inspiring;
 |
 */
 
-Artisan::command('inspire', function () {
-    $this->comment(Inspiring::quote());
-})->describe('Display an inspiring quote');