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;
}
*/
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();
+ }
}
$colorFields[] = $name;
}
}
-
-
}
$ignore = ['id', 'name', 'owner', 'created_at', 'deleted_at', 'updated_at', 'slug'];
} 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;
$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();
return $res;
}
- public function onAfterSave()
+
+ public function postSave()
{
- parent::onAfterSave();
+ parent::postSave();
+ $this->updateWS2Table();
+ }
+
+ public function postDelete()
+ {
+ parent::postDelete();
$this->updateWS2Table();
}
$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";
}
<li class='nav-item nav-dropdown open'><a class='nav-link nav-dropdown-toggle' href='#'><i
class="nav-icon la"><img src="/images/icons/icon-fluidbook.svg"/></i>{{__('Fluidbook')}}</a>
<ul class='nav-dropdown-items'>
+ @can('fluidbook-theme:read')
+ <li class="nav-item"><a class="nav-link" href="{{ backpack_url('fluidbook-theme') }}"><i
+ class="la la-palette nav-icon"></i> {{__('Thèmes')}}</a></li>
+ @endcan
@can('signature:read')
<li class="nav-item"><a class="nav-link" href="{{ backpack_url('signature') }}"><i
class="la la-signature nav-icon"></i> {{__('Signatures')}}</a></li>
|
*/
-Route::middleware('auth:api')->group( function () {
+Route::group([
+ 'middleware' => ['auth:api'],
+ 'excluded_middleware' => ['verifycsrftoken']
+], function () {
Route::post('fluidbook-theme', [\App\Http\Controllers\API\FluidbookThemeAPIController::class, 'createfromws2']);
Route::put('fluidbook-theme/{id}', [\App\Http\Controllers\API\FluidbookThemeAPIController::class, 'updatefromws2']);
+ Route::delete('fluidbook-theme/{id}', [\App\Http\Controllers\API\FluidbookThemeAPIController::class, 'deletefromws2']);
});