From 20e8640e777f912b135b9acfe973ad193988c295 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 8 Jul 2024 10:19:41 +0000 Subject: [PATCH 1/6] build(deps): bump dependabot/fetch-metadata from 2.1.0 to 2.2.0 Bumps [dependabot/fetch-metadata](https://github.com/dependabot/fetch-metadata) from 2.1.0 to 2.2.0. - [Release notes](https://github.com/dependabot/fetch-metadata/releases) - [Commits](https://github.com/dependabot/fetch-metadata/compare/v2.1.0...v2.2.0) --- updated-dependencies: - dependency-name: dependabot/fetch-metadata dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- .github/workflows/dependabot-auto-merge.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/dependabot-auto-merge.yml b/.github/workflows/dependabot-auto-merge.yml index 5edd48c..528fa16 100644 --- a/.github/workflows/dependabot-auto-merge.yml +++ b/.github/workflows/dependabot-auto-merge.yml @@ -13,7 +13,7 @@ jobs: - name: Dependabot metadata id: metadata - uses: dependabot/fetch-metadata@v2.1.0 + uses: dependabot/fetch-metadata@v2.2.0 with: github-token: "${{ secrets.GITHUB_TOKEN }}" From f98d649bac18602349b523c214d35d61503e23f4 Mon Sep 17 00:00:00 2001 From: Craig Smith <952595+phpsa@users.noreply.github.com> Date: Sun, 22 Dec 2024 18:58:10 +1300 Subject: [PATCH 2/6] Allow layout live switching (#188) --- src/Resources/PageResource.php | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Resources/PageResource.php b/src/Resources/PageResource.php index 776bedb..c13e5ea 100644 --- a/src/Resources/PageResource.php +++ b/src/Resources/PageResource.php @@ -100,6 +100,7 @@ public static function form(Form $form): Form ->label(__('filament-fabricator::page-resource.labels.layout')) ->options(FilamentFabricator::getLayouts()) ->default(fn () => FilamentFabricator::getDefaultLayoutName()) + ->live() ->required(), Select::make('parent_id') From e6eae3fcb51bbb9936aae5407bfafd638518a902 Mon Sep 17 00:00:00 2001 From: yolanmees Date: Sun, 22 Dec 2024 06:58:31 +0100 Subject: [PATCH 3/6] Add exception for runningInConsole in FilamentFabricatorServiceProvider.php (#160) --- src/FilamentFabricatorServiceProvider.php | 56 ++++++++++++----------- 1 file changed, 29 insertions(+), 27 deletions(-) diff --git a/src/FilamentFabricatorServiceProvider.php b/src/FilamentFabricatorServiceProvider.php index 6740828..e06e9be 100644 --- a/src/FilamentFabricatorServiceProvider.php +++ b/src/FilamentFabricatorServiceProvider.php @@ -71,33 +71,35 @@ public function packageRegistered(): void public function bootingPackage(): void { - Route::bind('filamentFabricatorPage', function ($value) { - $pageModel = FilamentFabricator::getPageModel(); - - $pageUrls = FilamentFabricator::getPageUrls(); - - $value = Str::start($value, '/'); - - $pageId = array_search($value, $pageUrls); - - return $pageModel::query() - ->where('id', $pageId) - ->firstOrFail(); - }); - - $this->registerComponentsFromDirectory( - Layout::class, - config('filament-fabricator.layouts.register'), - config('filament-fabricator.layouts.path'), - config('filament-fabricator.layouts.namespace') - ); - - $this->registerComponentsFromDirectory( - PageBlock::class, - config('filament-fabricator.page-blocks.register'), - config('filament-fabricator.page-blocks.path'), - config('filament-fabricator.page-blocks.namespace') - ); + if (! $this->app->runningInConsole()) { + Route::bind('filamentFabricatorPage', function ($value) { + $pageModel = FilamentFabricator::getPageModel(); + + $pageUrls = FilamentFabricator::getPageUrls(); + + $value = Str::start($value, '/'); + + $pageId = array_search($value, $pageUrls); + + return $pageModel::query() + ->where('id', $pageId) + ->firstOrFail(); + }); + + $this->registerComponentsFromDirectory( + Layout::class, + config('filament-fabricator.layouts.register'), + config('filament-fabricator.layouts.path'), + config('filament-fabricator.layouts.namespace') + ); + + $this->registerComponentsFromDirectory( + PageBlock::class, + config('filament-fabricator.page-blocks.register'), + config('filament-fabricator.page-blocks.path'), + config('filament-fabricator.page-blocks.namespace') + ); + } } protected function registerComponentsFromDirectory(string $baseClass, array $register, ?string $directory, ?string $namespace): void From e72314b1a5777f20e28e53a1eb1ae945c9642855 Mon Sep 17 00:00:00 2001 From: Z3d0X Date: Sun, 22 Dec 2024 05:58:47 +0000 Subject: [PATCH 4/6] Fix styling --- bootstrap/app.php | 2 +- src/FilamentFabricatorServiceProvider.php | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/bootstrap/app.php b/bootstrap/app.php index a4e3c34..2732183 100644 --- a/bootstrap/app.php +++ b/bootstrap/app.php @@ -7,7 +7,7 @@ use Orchestra\Testbench\Foundation\Application; use Z3d0X\FilamentFabricator\FilamentFabricatorServiceProvider; -$basePathLocator = new class() +$basePathLocator = new class { use CreatesApplication; }; diff --git a/src/FilamentFabricatorServiceProvider.php b/src/FilamentFabricatorServiceProvider.php index e06e9be..cbbd638 100644 --- a/src/FilamentFabricatorServiceProvider.php +++ b/src/FilamentFabricatorServiceProvider.php @@ -65,7 +65,7 @@ public function packageRegistered(): void parent::packageRegistered(); $this->app->singleton('filament-fabricator', function () { - return new FilamentFabricatorManager(); + return new FilamentFabricatorManager; }); } @@ -74,25 +74,25 @@ public function bootingPackage(): void if (! $this->app->runningInConsole()) { Route::bind('filamentFabricatorPage', function ($value) { $pageModel = FilamentFabricator::getPageModel(); - + $pageUrls = FilamentFabricator::getPageUrls(); - + $value = Str::start($value, '/'); - + $pageId = array_search($value, $pageUrls); - + return $pageModel::query() ->where('id', $pageId) ->firstOrFail(); }); - + $this->registerComponentsFromDirectory( Layout::class, config('filament-fabricator.layouts.register'), config('filament-fabricator.layouts.path'), config('filament-fabricator.layouts.namespace') ); - + $this->registerComponentsFromDirectory( PageBlock::class, config('filament-fabricator.page-blocks.register'), From 91aeb562dd52cba7c4704c35facc6e34d39bbc86 Mon Sep 17 00:00:00 2001 From: Voltra Date: Sun, 22 Dec 2024 07:02:19 +0100 Subject: [PATCH 5/6] Add a hook to allow mass-preload of related data when rendering a page's blocks (#166) --- .../views/components/page-blocks.blade.php | 23 +++++++++++++++---- src/Helpers.php | 23 +++++++++++++++++++ src/PageBlocks/PageBlock.php | 12 ++++++++++ 3 files changed, 53 insertions(+), 5 deletions(-) create mode 100644 src/Helpers.php diff --git a/resources/views/components/page-blocks.blade.php b/resources/views/components/page-blocks.blade.php index fddfba3..fe2a37d 100644 --- a/resources/views/components/page-blocks.blade.php +++ b/resources/views/components/page-blocks.blade.php @@ -1,14 +1,27 @@ +@aware(['page']) @props(['blocks' => []]) +@php + $groups = \Z3d0X\FilamentFabricator\Helpers::arrayRefsGroupBy($blocks, 'type'); + + foreach ($groups as $blockType => &$group) { + /** + * @var class-string<\Z3d0X\FilamentFabricator\PageBlocks\PageBlock> $blockClass + */ + $blockClass = FilamentFabricator::getPageBlockFromName($blockType); + + if (!empty($blockClass)) { + $blockClass::preloadRelatedData($page, $group); + } + } +@endphp + @foreach ($blocks as $blockData) @php - $pageBlock = \Z3d0X\FilamentFabricator\Facades\FilamentFabricator::getPageBlockFromName($blockData['type']) + $pageBlock = \Z3d0X\FilamentFabricator\Facades\FilamentFabricator::getPageBlockFromName($blockData['type']); @endphp @isset($pageBlock) - + @endisset @endforeach diff --git a/src/Helpers.php b/src/Helpers.php new file mode 100644 index 0000000..cca0ee2 --- /dev/null +++ b/src/Helpers.php @@ -0,0 +1,23 @@ + Date: Sun, 22 Dec 2024 06:03:34 +0000 Subject: [PATCH 6/6] Update CHANGELOG --- CHANGELOG.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index f4b64e5..2746c4a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,21 @@ All notable changes to `filament-fabricator` will be documented in this file. +## v2.3.0 - 2024-12-22 + +### What's Changed + +* allow layout live switching by @phpsa in https://github.com/Z3d0X/filament-fabricator/pull/188 +* Add exception for runningInConsole in FilamentFabricatorServiceProvid… by @yolanmees in https://github.com/Z3d0X/filament-fabricator/pull/160 +* Add a hook to allow mass-preload/batch-load of related data when rendering a page's blocks by @Voltra in https://github.com/Z3d0X/filament-fabricator/pull/166 + +### New Contributors + +* @phpsa made their first contribution in https://github.com/Z3d0X/filament-fabricator/pull/188 +* @yolanmees made their first contribution in https://github.com/Z3d0X/filament-fabricator/pull/160 + +**Full Changelog**: https://github.com/Z3d0X/filament-fabricator/compare/v2.2.2...v2.3.0 + ## v2.2.2 - 2024-05-12 ### What's Changed