From: soufiane Date: Thu, 29 Feb 2024 11:03:16 +0000 (+0100) Subject: wait #6748 @8:30 X-Git-Url: http://git.cubedesigners.com/?a=commitdiff_plain;h=e51b2d8b46a1d24abfb36fc6552ccde886378d09;p=fluidbook-toolbox.git wait #6748 @8:30 --- diff --git a/app/Http/Controllers/Admin/Operations/Tools/ImportFluidbookSettings.php b/app/Http/Controllers/Admin/Operations/Tools/ImportFluidbookSettings.php index b183d638c..5aadf3cd4 100644 --- a/app/Http/Controllers/Admin/Operations/Tools/ImportFluidbookSettings.php +++ b/app/Http/Controllers/Admin/Operations/Tools/ImportFluidbookSettings.php @@ -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(); } } diff --git a/app/Jobs/FluidbookSettingsExport.php b/app/Jobs/FluidbookSettingsExport.php index b429f0253..0f75f620e 100644 --- a/app/Jobs/FluidbookSettingsExport.php +++ b/app/Jobs/FluidbookSettingsExport.php @@ -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++;