We could not synchronize checks via GitHub's checks API since Scrutinizer's GitHub App is not installed for this repository.
@@ -29,7 +29,7 @@ discard block |
||
| 29 | 29 | return $this->getPath().$fileName; |
| 30 | 30 | } |
| 31 | 31 | |
| 32 | - if (! $value && CrudPanelFacade::getRequest()->has($this->getNameForRequest()) && $previousFile) { |
|
| 32 | + if (!$value && CrudPanelFacade::getRequest()->has($this->getNameForRequest()) && $previousFile) { |
|
| 33 | 33 | Storage::disk($this->getDisk())->delete($previousFile); |
| 34 | 34 | |
| 35 | 35 | return null; |
@@ -55,10 +55,10 @@ discard block |
||
| 55 | 55 | |
| 56 | 56 | foreach ($previousRepeatableValues as $row => $file) { |
| 57 | 57 | if ($file) { |
| 58 | - if (! isset($orderedFiles[$row])) { |
|
| 58 | + if (!isset($orderedFiles[$row])) { |
|
| 59 | 59 | $orderedFiles[$row] = null; |
| 60 | 60 | } |
| 61 | - if (! in_array($file, $orderedFiles)) { |
|
| 61 | + if (!in_array($file, $orderedFiles)) { |
|
| 62 | 62 | Storage::disk($this->getDisk())->delete($file); |
| 63 | 63 | } |
| 64 | 64 | } |
@@ -11,7 +11,7 @@ |
||
| 11 | 11 | */ |
| 12 | 12 | public function up(): void |
| 13 | 13 | { |
| 14 | - Schema::create('uploaders', function (Blueprint $table) { |
|
| 14 | + Schema::create('uploaders', function(Blueprint $table) { |
|
| 15 | 15 | $table->bigIncrements('id')->unsigned(); |
| 16 | 16 | $table->string('upload')->nullable(); |
| 17 | 17 | $table->string('image')->nullable(); |
@@ -25,7 +25,7 @@ discard block |
||
| 25 | 25 | |
| 26 | 26 | private bool $deleteWhenEntryIsDeleted = true; |
| 27 | 27 | |
| 28 | - private bool|string $attachedToFakeField = false; |
|
| 28 | + private bool | string $attachedToFakeField = false; |
|
| 29 | 29 | |
| 30 | 30 | /** |
| 31 | 31 | * Cloud disks have the ability to generate temporary URLs to files, should we do it? |
@@ -62,7 +62,7 @@ discard block |
||
| 62 | 62 | /******************************* |
| 63 | 63 | * Static methods |
| 64 | 64 | *******************************/ |
| 65 | - public static function for(array $crudObject, array $definition): UploaderInterface |
|
| 65 | + public static function for (array $crudObject, array $definition): UploaderInterface |
|
| 66 | 66 | { |
| 67 | 67 | return new static($crudObject, $definition); |
| 68 | 68 | } |
@@ -102,7 +102,7 @@ discard block |
||
| 102 | 102 | |
| 103 | 103 | public function deleteUploadedFiles(Model $entry): void |
| 104 | 104 | { |
| 105 | - if (! in_array(SoftDeletes::class, class_uses_recursive($entry), true)) { |
|
| 105 | + if (!in_array(SoftDeletes::class, class_uses_recursive($entry), true)) { |
|
| 106 | 106 | $this->performFileDeletion($entry); |
| 107 | 107 | |
| 108 | 108 | return; |
@@ -177,7 +177,7 @@ discard block |
||
| 177 | 177 | |
| 178 | 178 | public function getPreviousFiles(Model $entry): mixed |
| 179 | 179 | { |
| 180 | - if (! $this->attachedToFakeField) { |
|
| 180 | + if (!$this->attachedToFakeField) { |
|
| 181 | 181 | return $this->getOriginalValue($entry); |
| 182 | 182 | } |
| 183 | 183 | $value = $this->getOriginalValue($entry, $this->attachedToFakeField); |
@@ -196,7 +196,7 @@ discard block |
||
| 196 | 196 | return $this->attachedToFakeField !== false; |
| 197 | 197 | } |
| 198 | 198 | |
| 199 | - public function getFakeAttribute(): bool|string |
|
| 199 | + public function getFakeAttribute(): bool | string |
|
| 200 | 200 | { |
| 201 | 201 | return $this->attachedToFakeField; |
| 202 | 202 | } |
@@ -223,7 +223,7 @@ discard block |
||
| 223 | 223 | return $this; |
| 224 | 224 | } |
| 225 | 225 | |
| 226 | - public function fake(bool|string $isFake): self |
|
| 226 | + public function fake(bool | string $isFake): self |
|
| 227 | 227 | { |
| 228 | 228 | $this->attachedToFakeField = $isFake; |
| 229 | 229 | |
@@ -254,7 +254,7 @@ discard block |
||
| 254 | 254 | } |
| 255 | 255 | |
| 256 | 256 | if ($this->handleMultipleFiles) { |
| 257 | - if (! isset($entry->getCasts()[$this->getName()]) && is_string($value)) { |
|
| 257 | + if (!isset($entry->getCasts()[$this->getName()]) && is_string($value)) { |
|
| 258 | 258 | $entry->{$this->getAttributeName()} = json_decode($value, true); |
| 259 | 259 | } |
| 260 | 260 | |
@@ -268,7 +268,7 @@ discard block |
||
| 268 | 268 | |
| 269 | 269 | protected function deleteFiles(Model $entry) |
| 270 | 270 | { |
| 271 | - if (! $this->shouldDeleteFiles()) { |
|
| 271 | + if (!$this->shouldDeleteFiles()) { |
|
| 272 | 272 | return; |
| 273 | 273 | } |
| 274 | 274 | |
@@ -303,7 +303,7 @@ discard block |
||
| 303 | 303 | |
| 304 | 304 | private function performFileDeletion(Model $entry) |
| 305 | 305 | { |
| 306 | - if (! $this->handleRepeatableFiles && $this->deleteWhenEntryIsDeleted) { |
|
| 306 | + if (!$this->handleRepeatableFiles && $this->deleteWhenEntryIsDeleted) { |
|
| 307 | 307 | $this->deleteFiles($entry); |
| 308 | 308 | |
| 309 | 309 | return; |
@@ -332,7 +332,7 @@ discard block |
||
| 332 | 332 | |
| 333 | 333 | $previousValue = $entry->getOriginal($field); |
| 334 | 334 | |
| 335 | - if (! $previousValue) { |
|
| 335 | + if (!$previousValue) { |
|
| 336 | 336 | return $previousValue; |
| 337 | 337 | } |
| 338 | 338 | |
@@ -18,7 +18,7 @@ discard block |
||
| 18 | 18 | { |
| 19 | 19 | public bool $handleRepeatableFiles = false; |
| 20 | 20 | |
| 21 | - public null|string $repeatableContainerName = null; |
|
| 21 | + public null | string $repeatableContainerName = null; |
|
| 22 | 22 | |
| 23 | 23 | /******************************* |
| 24 | 24 | * Setters - fluently configure the uploader |
@@ -35,7 +35,7 @@ discard block |
||
| 35 | 35 | /******************************* |
| 36 | 36 | * Getters |
| 37 | 37 | *******************************/ |
| 38 | - public function getRepeatableContainerName(): null|string |
|
| 38 | + public function getRepeatableContainerName(): null | string |
|
| 39 | 39 | { |
| 40 | 40 | return $this->repeatableContainerName; |
| 41 | 41 | } |
@@ -162,7 +162,7 @@ discard block |
||
| 162 | 162 | foreach (app('UploadersRepository')->getRepeatableUploadersFor($this->getRepeatableContainerName()) as $uploader) { |
| 163 | 163 | $uploadedValues = $uploader->uploadRepeatableFiles($values->pluck($uploader->getAttributeName())->toArray(), $this->getPreviousRepeatableValues($entry, $uploader)); |
| 164 | 164 | |
| 165 | - $values = $values->map(function ($item, $key) use ($uploadedValues, $uploader) { |
|
| 165 | + $values = $values->map(function($item, $key) use ($uploadedValues, $uploader) { |
|
| 166 | 166 | $item[$uploader->getAttributeName()] = $uploadedValues[$key] ?? null; |
| 167 | 167 | |
| 168 | 168 | return $item; |
@@ -193,7 +193,7 @@ discard block |
||
| 193 | 193 | |
| 194 | 194 | $values = $entry->{$this->getRepeatableContainerName()}; |
| 195 | 195 | $values = is_string($values) ? json_decode($values, true) : $values; |
| 196 | - $values = array_map(function ($item) use ($repeatableUploaders) { |
|
| 196 | + $values = array_map(function($item) use ($repeatableUploaders) { |
|
| 197 | 197 | foreach ($repeatableUploaders as $upload) { |
| 198 | 198 | $item[$upload->getAttributeName()] = $this->getValuesWithPathStripped($item, $upload); |
| 199 | 199 | } |
@@ -208,7 +208,7 @@ discard block |
||
| 208 | 208 | |
| 209 | 209 | private function retrieveRepeatableRelationFiles(Model $entry) |
| 210 | 210 | { |
| 211 | - switch($this->getRepeatableRelationType()) { |
|
| 211 | + switch ($this->getRepeatableRelationType()) { |
|
| 212 | 212 | case 'BelongsToMany': |
| 213 | 213 | case 'MorphToMany': |
| 214 | 214 | $pivotClass = app('crud')->getModel()->{$this->getUploaderSubfield()['baseEntity']}()->getPivotClass(); |
@@ -261,12 +261,12 @@ discard block |
||
| 261 | 261 | $repeatableValues ??= collect($entry->{$this->getRepeatableContainerName()}); |
| 262 | 262 | |
| 263 | 263 | foreach (app('UploadersRepository')->getRepeatableUploadersFor($this->getRepeatableContainerName()) as $upload) { |
| 264 | - if (! $upload->shouldDeleteFiles()) { |
|
| 264 | + if (!$upload->shouldDeleteFiles()) { |
|
| 265 | 265 | continue; |
| 266 | 266 | } |
| 267 | 267 | $values = $repeatableValues->pluck($upload->getName())->toArray(); |
| 268 | 268 | foreach ($values as $value) { |
| 269 | - if (! $value) { |
|
| 269 | + if (!$value) { |
|
| 270 | 270 | continue; |
| 271 | 271 | } |
| 272 | 272 | |
@@ -289,7 +289,7 @@ discard block |
||
| 289 | 289 | /** |
| 290 | 290 | * Given two multidimensional arrays/collections, merge them recursively. |
| 291 | 291 | */ |
| 292 | - protected function mergeValuesRecursive(array|Collection $array1, array|Collection $array2): array|Collection |
|
| 292 | + protected function mergeValuesRecursive(array | Collection $array1, array | Collection $array2): array | Collection |
|
| 293 | 293 | { |
| 294 | 294 | $merged = $array1; |
| 295 | 295 | foreach ($array2 as $key => &$value) { |
@@ -311,7 +311,7 @@ discard block |
||
| 311 | 311 | { |
| 312 | 312 | $items = CRUD::getRequest()->input('_order_'.$this->getRepeatableContainerName()) ?? []; |
| 313 | 313 | |
| 314 | - array_walk($items, function (&$key, $value) { |
|
| 314 | + array_walk($items, function(&$key, $value) { |
|
| 315 | 315 | $requestValue = $key[$this->getName()] ?? null; |
| 316 | 316 | $key = $this->handleMultipleFiles ? (is_string($requestValue) ? explode(',', $requestValue) : $requestValue) : $requestValue; |
| 317 | 317 | }); |
@@ -323,22 +323,22 @@ discard block |
||
| 323 | 323 | { |
| 324 | 324 | $previousValues = $entry->getOriginal($uploader->getRepeatableContainerName()); |
| 325 | 325 | |
| 326 | - if (! is_array($previousValues)) { |
|
| 326 | + if (!is_array($previousValues)) { |
|
| 327 | 327 | $previousValues = json_decode($previousValues, true); |
| 328 | 328 | } |
| 329 | 329 | |
| 330 | - if (! empty($previousValues)) { |
|
| 330 | + if (!empty($previousValues)) { |
|
| 331 | 331 | $previousValues = array_column($previousValues, $uploader->getName()); |
| 332 | 332 | } |
| 333 | 333 | |
| 334 | 334 | return $previousValues ?? []; |
| 335 | 335 | } |
| 336 | 336 | |
| 337 | - private function getValuesWithPathStripped(array|string|null $item, UploaderInterface $uploader) |
|
| 337 | + private function getValuesWithPathStripped(array | string | null $item, UploaderInterface $uploader) |
|
| 338 | 338 | { |
| 339 | 339 | $uploadedValues = $item[$uploader->getName()] ?? null; |
| 340 | 340 | if (is_array($uploadedValues)) { |
| 341 | - return array_map(function ($value) use ($uploader) { |
|
| 341 | + return array_map(function($value) use ($uploader) { |
|
| 342 | 342 | return $uploader->getValueWithoutPath($value); |
| 343 | 343 | }, $uploadedValues); |
| 344 | 344 | } |
@@ -348,8 +348,8 @@ discard block |
||
| 348 | 348 | |
| 349 | 349 | private function deleteRelationshipFiles(Model $entry): void |
| 350 | 350 | { |
| 351 | - if (! is_a($entry, Pivot::class, true) && |
|
| 352 | - ! $entry->relationLoaded($this->getRepeatableContainerName()) && |
|
| 351 | + if (!is_a($entry, Pivot::class, true) && |
|
| 352 | + !$entry->relationLoaded($this->getRepeatableContainerName()) && |
|
| 353 | 353 | method_exists($entry, $this->getRepeatableContainerName()) |
| 354 | 354 | ) { |
| 355 | 355 | $entry->loadMissing($this->getRepeatableContainerName()); |
@@ -376,8 +376,8 @@ discard block |
||
| 376 | 376 | $relatedEntries = $entry->{$this->getRepeatableContainerName()} ?? []; |
| 377 | 377 | } |
| 378 | 378 | |
| 379 | - if (! is_a($relatedEntries ?? '', Collection::class, true)) { |
|
| 380 | - $relatedEntries = ! empty($relatedEntries) ? [$relatedEntries] : [$entry]; |
|
| 379 | + if (!is_a($relatedEntries ?? '', Collection::class, true)) { |
|
| 380 | + $relatedEntries = !empty($relatedEntries) ? [$relatedEntries] : [$entry]; |
|
| 381 | 381 | } |
| 382 | 382 | |
| 383 | 383 | foreach ($relatedEntries as $relatedEntry) { |
@@ -385,9 +385,9 @@ discard block |
||
| 385 | 385 | } |
| 386 | 386 | } |
| 387 | 387 | |
| 388 | - protected function deletePivotFiles(Pivot|Model $entry) |
|
| 388 | + protected function deletePivotFiles(Pivot | Model $entry) |
|
| 389 | 389 | { |
| 390 | - if (! is_a($entry, Pivot::class, true)) { |
|
| 390 | + if (!is_a($entry, Pivot::class, true)) { |
|
| 391 | 391 | $pivots = $entry->{$this->getRepeatableContainerName()}; |
| 392 | 392 | foreach ($pivots as $pivot) { |
| 393 | 393 | $this->deletePivotModelFiles($pivot); |
@@ -397,24 +397,24 @@ discard block |
||
| 397 | 397 | } |
| 398 | 398 | |
| 399 | 399 | $pivotAttributes = $entry->getAttributes(); |
| 400 | - $connectedPivot = $entry->pivotParent->{$this->getRepeatableContainerName()}->where(function ($item) use ($pivotAttributes) { |
|
| 400 | + $connectedPivot = $entry->pivotParent->{$this->getRepeatableContainerName()}->where(function($item) use ($pivotAttributes) { |
|
| 401 | 401 | $itemPivotAttributes = $item->pivot->only(array_keys($pivotAttributes)); |
| 402 | 402 | |
| 403 | 403 | return $itemPivotAttributes === $pivotAttributes; |
| 404 | 404 | })->first(); |
| 405 | 405 | |
| 406 | - if (! $connectedPivot) { |
|
| 406 | + if (!$connectedPivot) { |
|
| 407 | 407 | return; |
| 408 | 408 | } |
| 409 | 409 | |
| 410 | 410 | $this->deletePivotModelFiles($connectedPivot); |
| 411 | 411 | } |
| 412 | 412 | |
| 413 | - private function deletePivotModelFiles(Pivot|Model $entry) |
|
| 413 | + private function deletePivotModelFiles(Pivot | Model $entry) |
|
| 414 | 414 | { |
| 415 | 415 | $files = $entry->getOriginal()['pivot_'.$this->getAttributeName()]; |
| 416 | 416 | |
| 417 | - if (! $files) { |
|
| 417 | + if (!$files) { |
|
| 418 | 418 | return; |
| 419 | 419 | } |
| 420 | 420 | |
@@ -115,7 +115,7 @@ discard block |
||
| 115 | 115 | return ['name' => Str::replace(' ', '', $field)]; |
| 116 | 116 | } |
| 117 | 117 | |
| 118 | - if (is_array($field) && ! isset($field['name'])) { |
|
| 118 | + if (is_array($field) && !isset($field['name'])) { |
|
| 119 | 119 | abort(500, 'All fields must have their name defined', ['developer-error-exception']); |
| 120 | 120 | } |
| 121 | 121 | |
@@ -193,7 +193,7 @@ discard block |
||
| 193 | 193 | } |
| 194 | 194 | // if there's a model defined, but no attribute |
| 195 | 195 | // guess an attribute using the identifiableAttribute functionality in CrudTrait |
| 196 | - if (isset($field['model']) && ! isset($field['attribute']) && method_exists($field['model'], 'identifiableAttribute')) { |
|
| 196 | + if (isset($field['model']) && !isset($field['attribute']) && method_exists($field['model'], 'identifiableAttribute')) { |
|
| 197 | 197 | $field['attribute'] = (new $field['model']())->identifiableAttribute(); |
| 198 | 198 | } |
| 199 | 199 | |
@@ -209,7 +209,7 @@ discard block |
||
| 209 | 209 | */ |
| 210 | 210 | protected function makeSureFieldHasLabel($field) |
| 211 | 211 | { |
| 212 | - if (! isset($field['label'])) { |
|
| 212 | + if (!isset($field['label'])) { |
|
| 213 | 213 | $name = str_replace(',', ' ', $field['name']); |
| 214 | 214 | $name = str_replace('_id', '', $name); |
| 215 | 215 | $field['label'] = mb_ucfirst(str_replace('_', ' ', $name)); |
@@ -227,7 +227,7 @@ discard block |
||
| 227 | 227 | */ |
| 228 | 228 | protected function makeSureFieldHasType($field) |
| 229 | 229 | { |
| 230 | - if (! isset($field['type'])) { |
|
| 230 | + if (!isset($field['type'])) { |
|
| 231 | 231 | $field['type'] = isset($field['relation_type']) ? $this->inferFieldTypeFromRelationType($field['relation_type']) : $this->inferFieldTypeFromDbColumnType($field['name']); |
| 232 | 232 | } |
| 233 | 233 | |
@@ -260,16 +260,16 @@ discard block |
||
| 260 | 260 | */ |
| 261 | 261 | protected function makeSureSubfieldsHaveNecessaryAttributes($field) |
| 262 | 262 | { |
| 263 | - if (! isset($field['subfields']) || ! is_array($field['subfields'])) { |
|
| 263 | + if (!isset($field['subfields']) || !is_array($field['subfields'])) { |
|
| 264 | 264 | return $field; |
| 265 | 265 | } |
| 266 | 266 | |
| 267 | - if (! is_multidimensional_array($field['subfields'], true)) { |
|
| 267 | + if (!is_multidimensional_array($field['subfields'], true)) { |
|
| 268 | 268 | abort(500, 'Subfields of «'.$field['name'].'» are malformed. Make sure you provide an array of subfields.', ['developer-error-exception']); |
| 269 | 269 | } |
| 270 | 270 | |
| 271 | 271 | foreach ($field['subfields'] as $key => $subfield) { |
| 272 | - if (empty($subfield) || ! isset($subfield['name'])) { |
|
| 272 | + if (empty($subfield) || !isset($subfield['name'])) { |
|
| 273 | 273 | abort(500, 'A subfield of «'.$field['name'].'» is malformed. Subfield attribute name can\'t be empty.', ['developer-error-exception']); |
| 274 | 274 | } |
| 275 | 275 | |
@@ -284,7 +284,7 @@ discard block |
||
| 284 | 284 | $subfield['baseFieldName'] = is_array($subfield['name']) ? implode(',', $subfield['name']) : $subfield['name']; |
| 285 | 285 | $subfield['baseFieldName'] = Str::afterLast($subfield['baseFieldName'], '.'); |
| 286 | 286 | |
| 287 | - if (! isset($field['model'])) { |
|
| 287 | + if (!isset($field['model'])) { |
|
| 288 | 288 | // we're inside a simple 'repeatable' with no model/relationship, so |
| 289 | 289 | // we assume all subfields are supposed to be text fields |
| 290 | 290 | $subfield['type'] = $subfield['type'] ?? 'text'; |
@@ -309,11 +309,11 @@ discard block |
||
| 309 | 309 | case 'BelongsToMany': |
| 310 | 310 | $pivotSelectorField = static::getPivotFieldStructure($field); |
| 311 | 311 | |
| 312 | - $pivot = Arr::where($field['subfields'], function ($item) use ($pivotSelectorField) { |
|
| 312 | + $pivot = Arr::where($field['subfields'], function($item) use ($pivotSelectorField) { |
|
| 313 | 313 | return $item['name'] === $pivotSelectorField['name']; |
| 314 | 314 | }); |
| 315 | 315 | |
| 316 | - if (! empty($pivot)) { |
|
| 316 | + if (!empty($pivot)) { |
|
| 317 | 317 | break; |
| 318 | 318 | } |
| 319 | 319 | |
@@ -337,11 +337,11 @@ discard block |
||
| 337 | 337 | $entity = isset($field['baseEntity']) ? $field['baseEntity'].'.'.$field['entity'] : $field['entity']; |
| 338 | 338 | $relationInstance = $this->getRelationInstance(['entity' => $entity]); |
| 339 | 339 | |
| 340 | - $localKeyField = Arr::where($field['subfields'], function ($item) use ($relationInstance) { |
|
| 340 | + $localKeyField = Arr::where($field['subfields'], function($item) use ($relationInstance) { |
|
| 341 | 341 | return $item['name'] === $relationInstance->getRelated()->getKeyName(); |
| 342 | 342 | }); |
| 343 | 343 | |
| 344 | - if (! empty($localKeyField)) { |
|
| 344 | + if (!empty($localKeyField)) { |
|
| 345 | 345 | break; |
| 346 | 346 | } |
| 347 | 347 | |
@@ -366,7 +366,7 @@ discard block |
||
| 366 | 366 | { |
| 367 | 367 | // if a tab was mentioned, we should enable it |
| 368 | 368 | if (isset($field['tab'])) { |
| 369 | - if (! $this->tabsEnabled()) { |
|
| 369 | + if (!$this->tabsEnabled()) { |
|
| 370 | 370 | $this->enableTabs(); |
| 371 | 371 | } |
| 372 | 372 | } |
@@ -14,18 +14,18 @@ discard block |
||
| 14 | 14 | private string $crudObjectType; |
| 15 | 15 | |
| 16 | 16 | public function __construct( |
| 17 | - private readonly CrudField|CrudColumn $crudObject, |
|
| 17 | + private readonly CrudField | CrudColumn $crudObject, |
|
| 18 | 18 | private readonly array $uploaderConfiguration, |
| 19 | 19 | private readonly string $macro |
| 20 | 20 | ) { |
| 21 | 21 | $this->crudObjectType = is_a($crudObject, CrudField::class) ? 'field' : (is_a($crudObject, CrudColumn::class) ? 'column' : null); |
| 22 | 22 | |
| 23 | - if (! $this->crudObjectType) { |
|
| 23 | + if (!$this->crudObjectType) { |
|
| 24 | 24 | abort(500, 'Upload handlers only work for CrudField and CrudColumn classes.', ['developer-error-exception']); |
| 25 | 25 | } |
| 26 | 26 | } |
| 27 | 27 | |
| 28 | - public static function handle(CrudField|CrudColumn $crudObject, array $uploaderConfiguration, string $macro, ?array $subfield = null, ?bool $registerModelEvents = true): void |
|
| 28 | + public static function handle(CrudField | CrudColumn $crudObject, array $uploaderConfiguration, string $macro, ?array $subfield = null, ?bool $registerModelEvents = true): void |
|
| 29 | 29 | { |
| 30 | 30 | $instance = new self($crudObject, $uploaderConfiguration, $macro); |
| 31 | 31 | |
@@ -35,9 +35,9 @@ discard block |
||
| 35 | 35 | /******************************* |
| 36 | 36 | * Private methods - implementation |
| 37 | 37 | *******************************/ |
| 38 | - private function registerEvents(array|null $subfield = [], ?bool $registerModelEvents = true): void |
|
| 38 | + private function registerEvents(array | null $subfield = [], ?bool $registerModelEvents = true): void |
|
| 39 | 39 | { |
| 40 | - if (! empty($subfield)) { |
|
| 40 | + if (!empty($subfield)) { |
|
| 41 | 41 | $this->registerSubfieldEvent($subfield, $registerModelEvents); |
| 42 | 42 | |
| 43 | 43 | return; |
@@ -82,7 +82,7 @@ discard block |
||
| 82 | 82 | } |
| 83 | 83 | |
| 84 | 84 | $subfields = collect($this->crudObject->getAttributes()['subfields']); |
| 85 | - $subfields = $subfields->map(function ($item) use ($subfield, $uploader) { |
|
| 85 | + $subfields = $subfields->map(function($item) use ($subfield, $uploader) { |
|
| 86 | 86 | if ($item['name'] === $subfield['name']) { |
| 87 | 87 | $item['upload'] = true; |
| 88 | 88 | $item['disk'] = $uploader->getDisk(); |
@@ -112,7 +112,7 @@ discard block |
||
| 112 | 112 | } |
| 113 | 113 | |
| 114 | 114 | if ($this->crudObjectType === 'field') { |
| 115 | - $model::saving(function ($entry) use ($uploader) { |
|
| 115 | + $model::saving(function($entry) use ($uploader) { |
|
| 116 | 116 | $entry = $uploader->storeUploadedFiles($entry); |
| 117 | 117 | }); |
| 118 | 118 | } |
@@ -125,7 +125,7 @@ discard block |
||
| 125 | 125 | // is not called in pivot models when loading the relations. |
| 126 | 126 | $retrieveModel = $this->getModelForRetrieveEvent($model, $uploader); |
| 127 | 127 | |
| 128 | - $retrieveModel::retrieved(function ($entry) use ($uploader) { |
|
| 128 | + $retrieveModel::retrieved(function($entry) use ($uploader) { |
|
| 129 | 129 | if ($entry->translationEnabled()) { |
| 130 | 130 | $locale = request('_locale', app()->getLocale()); |
| 131 | 131 | if (in_array($locale, array_keys($entry->getAvailableLocales()))) { |
@@ -136,14 +136,14 @@ discard block |
||
| 136 | 136 | }); |
| 137 | 137 | } |
| 138 | 138 | |
| 139 | - $model::deleting(function ($entry) use ($uploader) { |
|
| 139 | + $model::deleting(function($entry) use ($uploader) { |
|
| 140 | 140 | $uploader->deleteUploadedFiles($entry); |
| 141 | 141 | }); |
| 142 | 142 | |
| 143 | 143 | // if the uploader is a relationship and handles repeatable files, we will also register the deleting event on the |
| 144 | 144 | // parent model. that way we can control the deletion of the files when the parent model is deleted. |
| 145 | 145 | if ($uploader->isRelationship() && $uploader->handleRepeatableFiles) { |
| 146 | - app('crud')->model::deleting(function ($entry) use ($uploader) { |
|
| 146 | + app('crud')->model::deleting(function($entry) use ($uploader) { |
|
| 147 | 147 | $uploader->deleteUploadedFiles($entry); |
| 148 | 148 | }); |
| 149 | 149 | } |
@@ -165,18 +165,18 @@ discard block |
||
| 165 | 165 | { |
| 166 | 166 | $hasCustomUploader = isset($uploaderConfiguration['uploader']); |
| 167 | 167 | |
| 168 | - if ($hasCustomUploader && ! is_a($uploaderConfiguration['uploader'], UploaderInterface::class, true)) { |
|
| 168 | + if ($hasCustomUploader && !is_a($uploaderConfiguration['uploader'], UploaderInterface::class, true)) { |
|
| 169 | 169 | throw new Exception('Invalid uploader class provided for '.$this->crudObjectType.' type: '.$crudObject['type']); |
| 170 | 170 | } |
| 171 | 171 | |
| 172 | 172 | if ($hasCustomUploader) { |
| 173 | - return $uploaderConfiguration['uploader']::for($crudObject, $uploaderConfiguration); |
|
| 173 | + return $uploaderConfiguration['uploader']::for ($crudObject, $uploaderConfiguration); |
|
| 174 | 174 | } |
| 175 | 175 | |
| 176 | 176 | $uploader = app('UploadersRepository')->hasUploadFor($crudObject['type'], $this->macro); |
| 177 | 177 | |
| 178 | 178 | if ($uploader) { |
| 179 | - return app('UploadersRepository')->getUploadFor($crudObject['type'], $this->macro)::for($crudObject, $uploaderConfiguration); |
|
| 179 | + return app('UploadersRepository')->getUploadFor($crudObject['type'], $this->macro)::for ($crudObject, $uploaderConfiguration); |
|
| 180 | 180 | } |
| 181 | 181 | |
| 182 | 182 | throw new Exception('Undefined upload type for '.$this->crudObjectType.' type: '.$crudObject['type']); |
@@ -197,7 +197,7 @@ discard block |
||
| 197 | 197 | |
| 198 | 198 | private function getSubfieldModel(array $subfield, UploaderInterface $uploader) |
| 199 | 199 | { |
| 200 | - if (! $uploader->isRelationship()) { |
|
| 200 | + if (!$uploader->isRelationship()) { |
|
| 201 | 201 | return $subfield['baseModel'] ?? get_class(app('crud')->getModel()); |
| 202 | 202 | } |
| 203 | 203 | |
@@ -210,7 +210,7 @@ discard block |
||
| 210 | 210 | |
| 211 | 211 | private function getModelForRetrieveEvent(string $model, UploaderInterface $uploader) |
| 212 | 212 | { |
| 213 | - if (! $uploader->isRelationship()) { |
|
| 213 | + if (!$uploader->isRelationship()) { |
|
| 214 | 214 | return $model; |
| 215 | 215 | } |
| 216 | 216 | |
@@ -27,7 +27,7 @@ discard block |
||
| 27 | 27 | 'operation' => 'list', |
| 28 | 28 | ]); |
| 29 | 29 | |
| 30 | - if (! isset($this->setupDetailsRowRoute) || $this->setupDetailsRowRoute === true) { |
|
| 30 | + if (!isset($this->setupDetailsRowRoute) || $this->setupDetailsRowRoute === true) { |
|
| 31 | 31 | Route::get($segment.'/{id}/details', [ |
| 32 | 32 | 'as' => $routeName.'.showDetailsRow', |
| 33 | 33 | 'uses' => $controller.'@showDetailsRow', |
@@ -43,7 +43,7 @@ discard block |
||
| 43 | 43 | { |
| 44 | 44 | $this->crud->allowAccess('list'); |
| 45 | 45 | |
| 46 | - $this->crud->operation('list', function () { |
|
| 46 | + $this->crud->operation('list', function() { |
|
| 47 | 47 | $this->crud->loadDefaultOperationSettingsFromConfig(); |
| 48 | 48 | $this->crud->setOperationSetting('datatablesUrl', $this->crud->getRoute()); |
| 49 | 49 | }); |
@@ -81,7 +81,7 @@ discard block |
||
| 81 | 81 | $search = request()->input('search'); |
| 82 | 82 | |
| 83 | 83 | // check if length is allowed by developer |
| 84 | - if ($length && ! in_array($length, $this->crud->getPageLengthMenu()[0])) { |
|
| 84 | + if ($length && !in_array($length, $this->crud->getPageLengthMenu()[0])) { |
|
| 85 | 85 | return response()->json([ |
| 86 | 86 | 'error' => 'Unknown page length.', |
| 87 | 87 | ], 400); |
@@ -19,8 +19,8 @@ discard block |
||
| 19 | 19 | * - when true: `address[street]` |
| 20 | 20 | * - when false: `[address][street]` |
| 21 | 21 | */ |
| 22 | -if (! Str::hasMacro('dotsToSquareBrackets')) { |
|
| 23 | - Str::macro('dotsToSquareBrackets', function ($string, $ignore = [], $keyFirst = true) { |
|
| 22 | +if (!Str::hasMacro('dotsToSquareBrackets')) { |
|
| 23 | + Str::macro('dotsToSquareBrackets', function($string, $ignore = [], $keyFirst = true) { |
|
| 24 | 24 | $stringParts = explode('.', $string); |
| 25 | 25 | $result = ''; |
| 26 | 26 | |
@@ -34,8 +34,8 @@ discard block |
||
| 34 | 34 | return $result; |
| 35 | 35 | }); |
| 36 | 36 | } |
| 37 | -if (! CrudColumn::hasMacro('withFiles')) { |
|
| 38 | - CrudColumn::macro('withFiles', function ($uploadDefinition = [], $subfield = null, $registerUploaderEvents = true) { |
|
| 37 | +if (!CrudColumn::hasMacro('withFiles')) { |
|
| 38 | + CrudColumn::macro('withFiles', function($uploadDefinition = [], $subfield = null, $registerUploaderEvents = true) { |
|
| 39 | 39 | /** @var CrudColumn $this */ |
| 40 | 40 | $uploadDefinition = is_array($uploadDefinition) ? $uploadDefinition : []; |
| 41 | 41 | $this->setAttributeValue('withFiles', $uploadDefinition); |
@@ -46,8 +46,8 @@ discard block |
||
| 46 | 46 | }); |
| 47 | 47 | } |
| 48 | 48 | |
| 49 | -if (! CrudField::hasMacro('withFiles')) { |
|
| 50 | - CrudField::macro('withFiles', function ($uploadDefinition = [], $subfield = null, $registerUploaderEvents = true) { |
|
| 49 | +if (!CrudField::hasMacro('withFiles')) { |
|
| 50 | + CrudField::macro('withFiles', function($uploadDefinition = [], $subfield = null, $registerUploaderEvents = true) { |
|
| 51 | 51 | /** @var CrudField $this */ |
| 52 | 52 | $uploadDefinition = is_array($uploadDefinition) ? $uploadDefinition : []; |
| 53 | 53 | $this->setAttributeValue('withFiles', $uploadDefinition); |
@@ -58,8 +58,8 @@ discard block |
||
| 58 | 58 | }); |
| 59 | 59 | } |
| 60 | 60 | |
| 61 | -if (! CrudColumn::hasMacro('linkTo')) { |
|
| 62 | - CrudColumn::macro('linkTo', function (string|array|Closure $routeOrConfiguration, ?array $parameters = []): static { |
|
| 61 | +if (!CrudColumn::hasMacro('linkTo')) { |
|
| 62 | + CrudColumn::macro('linkTo', function(string | array | Closure $routeOrConfiguration, ?array $parameters = []): static { |
|
| 63 | 63 | $wrapper = $this->attributes['wrapper'] ?? []; |
| 64 | 64 | |
| 65 | 65 | // parse the function input to get the actual route and parameters we'll be working with |
@@ -72,7 +72,7 @@ discard block |
||
| 72 | 72 | |
| 73 | 73 | // if the route is a closure, we'll just call it |
| 74 | 74 | if ($route instanceof Closure) { |
| 75 | - $wrapper['href'] = function ($crud, $column, $entry, $related_key) use ($route) { |
|
| 75 | + $wrapper['href'] = function($crud, $column, $entry, $related_key) use ($route) { |
|
| 76 | 76 | return $route($entry, $related_key, $column, $crud); |
| 77 | 77 | }; |
| 78 | 78 | $this->wrapper($wrapper); |
@@ -81,13 +81,13 @@ discard block |
||
| 81 | 81 | } |
| 82 | 82 | |
| 83 | 83 | // if the route doesn't exist, we'll throw an exception |
| 84 | - if (! $routeInstance = Route::getRoutes()->getByName($route)) { |
|
| 84 | + if (!$routeInstance = Route::getRoutes()->getByName($route)) { |
|
| 85 | 85 | throw new Exception("Route [{$route}] not found while building the link for column [{$this->attributes['name']}]."); |
| 86 | 86 | } |
| 87 | 87 | |
| 88 | 88 | // calculate the parameters we'll be using for the route() call |
| 89 | 89 | // (eg. if there's only one parameter and user didn't provide it, we'll assume it's the entry's related key) |
| 90 | - $parameters = (function () use ($parameters, $routeInstance, $route) { |
|
| 90 | + $parameters = (function() use ($parameters, $routeInstance, $route) { |
|
| 91 | 91 | $expectedParameters = $routeInstance->parameterNames(); |
| 92 | 92 | |
| 93 | 93 | if (count($expectedParameters) === 0) { |
@@ -98,7 +98,7 @@ discard block |
||
| 98 | 98 | if (count($autoInferredParameter) > 1) { |
| 99 | 99 | throw new Exception("Route [{$route}] expects parameters [".implode(', ', $expectedParameters)."]. Insufficient parameters provided in column: [{$this->attributes['name']}]."); |
| 100 | 100 | } |
| 101 | - $autoInferredParameter = current($autoInferredParameter) ? [current($autoInferredParameter) => function ($entry, $related_key, $column, $crud) { |
|
| 101 | + $autoInferredParameter = current($autoInferredParameter) ? [current($autoInferredParameter) => function($entry, $related_key, $column, $crud) { |
|
| 102 | 102 | $entity = $crud->isAttributeInRelationString($column) ? Str::before($column['entity'], '.') : $column['entity']; |
| 103 | 103 | |
| 104 | 104 | return $related_key ?? $entry->{$entity}?->getKey(); |
@@ -108,7 +108,7 @@ discard block |
||
| 108 | 108 | })(); |
| 109 | 109 | |
| 110 | 110 | // set up the wrapper href attribute |
| 111 | - $wrapper['href'] = function ($crud, $column, $entry, $related_key) use ($route, $parameters) { |
|
| 111 | + $wrapper['href'] = function($crud, $column, $entry, $related_key) use ($route, $parameters) { |
|
| 112 | 112 | // if the parameter is callable, we'll call it |
| 113 | 113 | $parameters = collect($parameters)->map(fn ($item) => is_callable($item) ? $item($entry, $related_key, $column, $crud) : $item)->toArray(); |
| 114 | 114 | |
@@ -125,17 +125,17 @@ discard block |
||
| 125 | 125 | }); |
| 126 | 126 | } |
| 127 | 127 | |
| 128 | -if (! CrudColumn::hasMacro('linkToShow')) { |
|
| 129 | - CrudColumn::macro('linkToShow', function (): static { |
|
| 128 | +if (!CrudColumn::hasMacro('linkToShow')) { |
|
| 129 | + CrudColumn::macro('linkToShow', function(): static { |
|
| 130 | 130 | $name = $this->attributes['name']; |
| 131 | 131 | $entity = $this->attributes['entity'] ?? null; |
| 132 | 132 | $route = "$entity.show"; |
| 133 | 133 | |
| 134 | - if (! $entity) { |
|
| 134 | + if (!$entity) { |
|
| 135 | 135 | throw new Exception("Entity not found while building the link for column [{$name}]."); |
| 136 | 136 | } |
| 137 | 137 | |
| 138 | - if (! Route::getRoutes()->getByName($route)) { |
|
| 138 | + if (!Route::getRoutes()->getByName($route)) { |
|
| 139 | 139 | throw new Exception("Route '{$route}' not found while building the link for column [{$name}]."); |
| 140 | 140 | } |
| 141 | 141 | |
@@ -146,8 +146,8 @@ discard block |
||
| 146 | 146 | }); |
| 147 | 147 | } |
| 148 | 148 | |
| 149 | -if (! CrudColumn::hasMacro('linkTarget')) { |
|
| 150 | - CrudColumn::macro('linkTarget', function (string $target = '_self'): static { |
|
| 149 | +if (!CrudColumn::hasMacro('linkTarget')) { |
|
| 150 | + CrudColumn::macro('linkTarget', function(string $target = '_self'): static { |
|
| 151 | 151 | $this->wrapper([ |
| 152 | 152 | ...$this->attributes['wrapper'] ?? [], |
| 153 | 153 | 'target' => $target, |
@@ -163,8 +163,8 @@ discard block |
||
| 163 | 163 | * |
| 164 | 164 | * It will go to the given CrudController and get the setupRoutes() method on it. |
| 165 | 165 | */ |
| 166 | -if (! Route::hasMacro('crud')) { |
|
| 167 | - Route::macro('crud', function ($name, $controller) { |
|
| 166 | +if (!Route::hasMacro('crud')) { |
|
| 167 | + Route::macro('crud', function($name, $controller) { |
|
| 168 | 168 | // put together the route name prefix, |
| 169 | 169 | // as passed to the Route::group() statements |
| 170 | 170 | $routeName = ''; |
@@ -10,7 +10,7 @@ discard block |
||
| 10 | 10 | /** |
| 11 | 11 | * Static constructor function. |
| 12 | 12 | */ |
| 13 | - public static function for(array $field, array $configuration): UploaderInterface; |
|
| 13 | + public static function for (array $field, array $configuration): UploaderInterface; |
|
| 14 | 14 | |
| 15 | 15 | /** |
| 16 | 16 | * Default implementation functions. |
@@ -34,7 +34,7 @@ discard block |
||
| 34 | 34 | |
| 35 | 35 | public function relationship(bool $isRelation): self; |
| 36 | 36 | |
| 37 | - public function fake(bool|string $isFake): self; |
|
| 37 | + public function fake(bool | string $isFake): self; |
|
| 38 | 38 | |
| 39 | 39 | /** |
| 40 | 40 | * Getters. |
@@ -51,7 +51,7 @@ discard block |
||
| 51 | 51 | |
| 52 | 52 | public function getExpirationTimeInMinutes(): int; |
| 53 | 53 | |
| 54 | - public function getFileName(string|UploadedFile $file): string; |
|
| 54 | + public function getFileName(string | UploadedFile $file): string; |
|
| 55 | 55 | |
| 56 | 56 | public function getRepeatableContainerName(): ?string; |
| 57 | 57 | |