]> _ Git - fluidbook-toolbox.git/commitdiff
wait #6748 @8:30
authorsoufiane <soufiane@cubedesigners.com>
Thu, 29 Feb 2024 11:03:16 +0000 (12:03 +0100)
committersoufiane <soufiane@cubedesigners.com>
Thu, 29 Feb 2024 11:03:16 +0000 (12:03 +0100)
app/Http/Controllers/Admin/Operations/Tools/ImportFluidbookSettings.php
app/Jobs/FluidbookSettingsExport.php

index b183d638cd26038276c7cd191e7c71955d4876be..5aadf3cd42005e5732647bce168379e12badfb41 100644 (file)
@@ -3,9 +3,11 @@
 namespace App\Http\Controllers\Admin\Operations\Tools;
 
 use App\Http\Controllers\Admin\Operations\FluidbookPublication\SettingsExportOperation;
+use App\Models\FluidbookPublication;
 use Cubist\Backpack\Magic\Fields\StandardFile;
 use Cubist\Backpack\Magic\Form;
 use Cubist\Excel\ExcelToArray;
+use Prologue\Alerts\Facades\Alert;
 
 trait ImportFluidbookSettings
 {
@@ -20,16 +22,46 @@ trait ImportFluidbookSettings
         return view('tools.form', ['form' => $form]);
     }
 
+    /**
+     * @throws \JsonException
+     */
     public function doimportfluidbooksettings() {
         $file = request()->file('file');
 
         ExcelToArray::setCache(protected_path('tools/importfluidbooksettings'));
-        $res = ExcelToArray::excelToArrayKeyVars($file->getPathname(), request()->input('sheet', ''));
+        $res = ExcelToArray::excelToArrayKeyVars($file->getPathname(),null, false, false, false);
 
         //
-        $ids = implode(',',array_keys($res));
-        $this->sendLinkForDownload($ids);
+        $ids = array_keys($res);
 
-        //dd($res);
+        foreach ($ids as $id) {
+            $f = FluidbookPublication::find($id);
+            $settings = array_map(function($n) {
+                return $n;
+            },json_decode($f->settings, true));
+
+            $settings['title'] = 'Test loutres 56';
+
+            $intersect = array_intersect_key($settings,$res[$id]);
+            $settingsJson = json_encode($intersect);
+
+            $diff = array_diff_key($res[$id], $settings);
+            $diff['settings'] = $settingsJson;
+
+            foreach ($diff as $k => &$value) {
+                if(!in_array($k, ['export_data','settings'])) {
+                    $decode = json_decode($value,true);
+                    if(is_array($decode)) {
+                        $value = $decode;
+                    }
+                }
+            }
+
+            $f->update($diff);
+            $f->save();
+        }
+
+        Alert::add('success', __('Les données ont été mise à jour avec succès.'))->flash();
+        return back();
     }
 }
index b429f02539924162176ae925b041aadc40fedc11..0f75f620ec9674c861fbc7d66cc72697df21332c 100644 (file)
@@ -51,17 +51,17 @@ class FluidbookSettingsExport extends Base
         ];
 
         $instance = new FluidbookPublication();
+
         foreach ($instance->getFields() as $field) {
             $name = $field->getName();
             /** @var $field Field */
-            if ($field instanceof UnstoredField || in_array($name, ['deleted_at', 'videoPath'])) {
+            if ($field instanceof UnstoredField || in_array($name, ['deleted_at', 'videoPath', 'created_at', 'composition', 'composition_updated_at', 'status_date', 'compilation_date', 'compilation_date'])) {
                 continue;
             }
             $fields[$name] = [
                 'default' => $field->getAttribute('default'),
                 'noteditable' => $field instanceof Hidden
             ];
-
         }
 
         $keys = array_keys($fields);
@@ -99,6 +99,7 @@ class FluidbookSettingsExport extends Base
 
         $maxColSize = [];
 
+
         for ($i = 0; $i < sizeof($settings); $i++) {
             $c = 1;
             $line++;