From d7c1e65504f7da51e26b666ff3628df25302480f Mon Sep 17 00:00:00 2001 From: Vincent Vanwaelscappel Date: Fri, 14 May 2021 21:02:48 +0200 Subject: [PATCH] wip #4464 @2 --- .../API/FluidbookThemeAPIController.php | 33 ++++++++++++++++--- app/Models/FluidbookTheme.php | 24 +++++++------- .../base/inc/sidebar_content.blade.php | 4 +++ routes/api.php | 6 +++- 4 files changed, 51 insertions(+), 16 deletions(-) diff --git a/app/Http/Controllers/API/FluidbookThemeAPIController.php b/app/Http/Controllers/API/FluidbookThemeAPIController.php index 05db41035..9f0b96844 100644 --- a/app/Http/Controllers/API/FluidbookThemeAPIController.php +++ b/app/Http/Controllers/API/FluidbookThemeAPIController.php @@ -19,11 +19,28 @@ class FluidbookThemeAPIController extends Controller public function createfromws2(Request $request) { $theme = new FluidbookTheme(); - $data = $request->get('theme'); - foreach ($data as $k => $v) { + self::_prepareData($theme, $request->get('theme')); + $theme->save(); + } + + /** + * @param $theme FluidbookTheme + * @param $data array + * @return FluidbookTheme + */ + public static function _prepareData($theme, $data) + { + $map = ['theme_id' => 'id', 'proprietaire' => 'owner', 'nom' => 'name']; + foreach ($map as $former => $new) { + if (!isset($data[$former])) { + continue; + } + $theme->setAttribute($new, $data[$former]); + } + foreach ($data['parametres'] as $k => $v) { $theme->setAttribute($k, $v); } - $theme->save(); + return $theme; } @@ -36,7 +53,15 @@ class FluidbookThemeAPIController extends Controller */ public function updatefromws2(Request $request, $id) { - // + $theme = FluidbookTheme::find($id); + self::_prepareData($theme, $request->get('theme')); + $theme->save(); } + public function deletefromws2(Request $request, $id) + { + /** @var FluidbookTheme $theme */ + $theme = FluidbookTheme::find($id); + $theme->delete(); + } } diff --git a/app/Models/FluidbookTheme.php b/app/Models/FluidbookTheme.php index 40cd17fde..268e7611d 100644 --- a/app/Models/FluidbookTheme.php +++ b/app/Models/FluidbookTheme.php @@ -868,8 +868,6 @@ class FluidbookTheme extends CubistMagicAbstractModel $colorFields[] = $name; } } - - } $ignore = ['id', 'name', 'owner', 'created_at', 'deleted_at', 'updated_at', 'slug']; @@ -891,7 +889,9 @@ class FluidbookTheme extends CubistMagicAbstractModel } else if (in_array($k, $fileFields)) { /** @var Media $media */ $media = $theme->getMedia($v)->get(0); - $v = $media->getAttribute('file_name'); + if (null !== $media) { + $v = $media->getAttribute('file_name'); + } } if (null === $v) { continue; @@ -899,7 +899,6 @@ class FluidbookTheme extends CubistMagicAbstractModel $settings[$k] = $v; } $data[] = ['theme_id' => $theme->id, 'signature' => 0, 'nom' => $theme->name, 'proprietaire' => $theme->owner, 'icones' => $theme->iconSet, 'date' => strtotime($theme->creation_date), 'parametres' => json_encode($settings)]; - } $t = DB::table('extranet_clean.ws3_theme'); $t->truncate(); @@ -979,9 +978,16 @@ class FluidbookTheme extends CubistMagicAbstractModel return $res; } - public function onAfterSave() + + public function postSave() { - parent::onAfterSave(); + parent::postSave(); + $this->updateWS2Table(); + } + + public function postDelete() + { + parent::postDelete(); $this->updateWS2Table(); } @@ -1048,12 +1054,8 @@ class FluidbookTheme extends CubistMagicAbstractModel $file = $oldRoot . $data; if (file_exists($file)) { - $copy = $this->getStorage() . $data; - if (!file_exists($copy)) { - copy($file, $copy); - } try { - $this->addMediaToField($field->getName(), $copy); + $this->addMediaToField($field->getName(), $file, true); } catch (\Exception $e) { echo $copy . "\n"; } diff --git a/resources/views/vendor/backpack/base/inc/sidebar_content.blade.php b/resources/views/vendor/backpack/base/inc/sidebar_content.blade.php index efc0de2d6..621d4157e 100644 --- a/resources/views/vendor/backpack/base/inc/sidebar_content.blade.php +++ b/resources/views/vendor/backpack/base/inc/sidebar_content.blade.php @@ -22,6 +22,10 @@