From d500be452066686b1ed8d5eaaf56bce0c98e70dc Mon Sep 17 00:00:00 2001 From: wychoong <67364036+wychoong@users.noreply.github.com> Date: Mon, 9 Sep 2024 23:01:13 +0800 Subject: [PATCH 1/7] Update MakeResourceCommand.php --- .../panels/src/Commands/MakeResourceCommand.php | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/packages/panels/src/Commands/MakeResourceCommand.php b/packages/panels/src/Commands/MakeResourceCommand.php index eaee587124..ebf7ba3b4e 100644 --- a/packages/panels/src/Commands/MakeResourceCommand.php +++ b/packages/panels/src/Commands/MakeResourceCommand.php @@ -102,18 +102,24 @@ class MakeResourceCommand extends Command )] : Arr::first($panels); } - $resourceDirectories = $panel->getResourceDirectories(); - $resourceNamespaces = $panel->getResourceNamespaces(); + $resourceDirectories = [ + app_path('Filament/Resources/'), + ...$panel->getResourceDirectories(), + ]; + $resourceNamespaces = [ + 'App\\Filament\\Resources', + ...$panel->getResourceNamespaces(), + ]; $namespace = (count($resourceNamespaces) > 1) ? select( label: 'Which namespace would you like to create this in?', options: $resourceNamespaces ) : - (Arr::first($resourceNamespaces) ?? 'App\\Filament\\Resources'); + Arr::first($resourceNamespaces); $path = (count($resourceDirectories) > 1) ? $resourceDirectories[array_search($namespace, $resourceNamespaces)] : - (Arr::first($resourceDirectories) ?? app_path('Filament/Resources/')); + Arr::first($resourceDirectories); $resource = "{$model}Resource"; $resourceClass = "{$modelClass}Resource"; From b6449c998596e219a95e8ca8f1fb765f5864c654 Mon Sep 17 00:00:00 2001 From: wychoong <67364036+wychoong@users.noreply.github.com> Date: Mon, 9 Sep 2024 23:02:51 +0800 Subject: [PATCH 2/7] Update MakeRelationManagerCommand.php --- .../src/Commands/MakeRelationManagerCommand.php | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/packages/panels/src/Commands/MakeRelationManagerCommand.php b/packages/panels/src/Commands/MakeRelationManagerCommand.php index 17bef965bc..1c6b4fedbd 100644 --- a/packages/panels/src/Commands/MakeRelationManagerCommand.php +++ b/packages/panels/src/Commands/MakeRelationManagerCommand.php @@ -79,18 +79,24 @@ class MakeRelationManagerCommand extends Command )] : Arr::first($panels); } - $resourceDirectories = $panel->getResourceDirectories(); - $resourceNamespaces = $panel->getResourceNamespaces(); + $resourceDirectories = [ + app_path('Filament/Resources/'), + ...$panel->getResourceDirectories(), + ]; + $resourceNamespaces = [ + 'App\\Filament\\Resources', + ...$panel->getResourceNamespaces(), + ]; $resourceNamespace = (count($resourceNamespaces) > 1) ? select( label: 'Which namespace would you like to create this in?', options: $resourceNamespaces ) : - (Arr::first($resourceNamespaces) ?? 'App\\Filament\\Resources'); + Arr::first($resourceNamespaces); $resourcePath = (count($resourceDirectories) > 1) ? $resourceDirectories[array_search($resourceNamespace, $resourceNamespaces)] : - (Arr::first($resourceDirectories) ?? app_path('Filament/Resources/')); + Arr::first($resourceDirectories); $path = (string) str($managerClass) ->prepend("{$resourcePath}/{$resource}/RelationManagers/") From 3589fb6efd6781235a2292d079ec5fb14927e3c6 Mon Sep 17 00:00:00 2001 From: wychoong <67364036+wychoong@users.noreply.github.com> Date: Mon, 9 Sep 2024 23:03:41 +0800 Subject: [PATCH 3/7] Update MakePageCommand.php --- packages/panels/src/Commands/MakePageCommand.php | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/packages/panels/src/Commands/MakePageCommand.php b/packages/panels/src/Commands/MakePageCommand.php index eba4718fed..458b46e264 100644 --- a/packages/panels/src/Commands/MakePageCommand.php +++ b/packages/panels/src/Commands/MakePageCommand.php @@ -205,18 +205,24 @@ class MakePageCommand extends Command $pageDirectories[array_search($namespace, $pageNamespaces)] : (Arr::first($pageDirectories) ?? app_path('Filament/Pages/')); } else { - $resourceDirectories = $panel->getResourceDirectories(); - $resourceNamespaces = $panel->getResourceNamespaces(); + $resourceDirectories = [ + app_path('Filament/Resources/'), + ...$panel->getResourceDirectories(), + ]; + $resourceNamespaces = [ + 'App\\Filament\\Resources', + ...$panel->getResourceNamespaces(), + ]; $resourceNamespace = (count($resourceNamespaces) > 1) ? select( label: 'Which namespace would you like to create this in?', options: $resourceNamespaces ) : - (Arr::first($resourceNamespaces) ?? 'App\\Filament\\Resources'); + Arr::first($resourceNamespaces); $resourcePath = (count($resourceDirectories) > 1) ? $resourceDirectories[array_search($resourceNamespace, $resourceNamespaces)] : - (Arr::first($resourceDirectories) ?? app_path('Filament/Resources/')); + Arr::first($resourceDirectories); } $view = str($page) From 1c07c85f5ec3d0490dcacd09014a8e435c6e8d10 Mon Sep 17 00:00:00 2001 From: wychoong <67364036+wychoong@users.noreply.github.com> Date: Mon, 9 Sep 2024 23:22:59 +0800 Subject: [PATCH 4/7] Update MakeWidgetCommand.php --- .../widgets/src/Commands/MakeWidgetCommand.php | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/packages/widgets/src/Commands/MakeWidgetCommand.php b/packages/widgets/src/Commands/MakeWidgetCommand.php index d44ec4d716..7f7a4bb7ee 100644 --- a/packages/widgets/src/Commands/MakeWidgetCommand.php +++ b/packages/widgets/src/Commands/MakeWidgetCommand.php @@ -124,18 +124,24 @@ class MakeWidgetCommand extends Command $widgetDirectories[array_search($namespace, $widgetNamespaces)] : (Arr::first($widgetDirectories) ?? app_path('Filament/Widgets/')); } else { - $resourceDirectories = $panel->getResourceDirectories(); - $resourceNamespaces = $panel->getResourceNamespaces(); + $resourceDirectories = [ + app_path('Filament/Resources/'), + ...$panel->getResourceDirectories(), + ]; + $resourceNamespaces = [ + 'App\\Filament\\Resources', + ...$panel->getResourceNamespaces(), + ]; $resourceNamespace = (count($resourceNamespaces) > 1) ? select( label: 'Which namespace would you like to create this in?', options: $resourceNamespaces, ) : - (Arr::first($resourceNamespaces) ?? 'App\\Filament\\Resources'); + Arr::first($resourceNamespaces); $resourcePath = (count($resourceDirectories) > 1) ? $resourceDirectories[array_search($resourceNamespace, $resourceNamespaces)] : - (Arr::first($resourceDirectories) ?? app_path('Filament/Resources/')); + Arr::first($resourceDirectories); } $view = str($widget)->prepend( From 86668060ed59d119f4cb8ad2627a04216169df58 Mon Sep 17 00:00:00 2001 From: wychoong <67364036+wychoong@users.noreply.github.com> Date: Mon, 9 Sep 2024 23:25:47 +0800 Subject: [PATCH 5/7] filter vendor path --- .../panels/src/Commands/MakePageCommand.php | 21 ++++++++++--------- .../Commands/MakeRelationManagerCommand.php | 21 ++++++++++--------- .../src/Commands/MakeResourceCommand.php | 21 ++++++++++--------- .../src/Commands/MakeWidgetCommand.php | 21 ++++++++++--------- 4 files changed, 44 insertions(+), 40 deletions(-) diff --git a/packages/panels/src/Commands/MakePageCommand.php b/packages/panels/src/Commands/MakePageCommand.php index 458b46e264..986df8876d 100644 --- a/packages/panels/src/Commands/MakePageCommand.php +++ b/packages/panels/src/Commands/MakePageCommand.php @@ -205,24 +205,25 @@ class MakePageCommand extends Command $pageDirectories[array_search($namespace, $pageNamespaces)] : (Arr::first($pageDirectories) ?? app_path('Filament/Pages/')); } else { - $resourceDirectories = [ - app_path('Filament/Resources/'), - ...$panel->getResourceDirectories(), - ]; - $resourceNamespaces = [ - 'App\\Filament\\Resources', - ...$panel->getResourceNamespaces(), - ]; + $resourceDirectories = $panel->getResourceDirectories(); + $resourceNamespaces = $panel->getResourceNamespaces(); + + foreach ($resourceDirectories as $resourceIndex => $resourceDirectory) { + if (mb_strpos($resourceDirectory, base_path('vendor')) === 0) { + unset($resourceDirectories[$resourceIndex]); + unset($resourceNamespaces[$resourceIndex]); + } + } $resourceNamespace = (count($resourceNamespaces) > 1) ? select( label: 'Which namespace would you like to create this in?', options: $resourceNamespaces ) : - Arr::first($resourceNamespaces); + (Arr::first($resourceNamespaces) ?? 'App\\Filament\\Resources'); $resourcePath = (count($resourceDirectories) > 1) ? $resourceDirectories[array_search($resourceNamespace, $resourceNamespaces)] : - Arr::first($resourceDirectories); + (Arr::first($resourceDirectories) ?? app_path('Filament/Resources/')); } $view = str($page) diff --git a/packages/panels/src/Commands/MakeRelationManagerCommand.php b/packages/panels/src/Commands/MakeRelationManagerCommand.php index 1c6b4fedbd..69c15b2284 100644 --- a/packages/panels/src/Commands/MakeRelationManagerCommand.php +++ b/packages/panels/src/Commands/MakeRelationManagerCommand.php @@ -79,24 +79,25 @@ class MakeRelationManagerCommand extends Command )] : Arr::first($panels); } - $resourceDirectories = [ - app_path('Filament/Resources/'), - ...$panel->getResourceDirectories(), - ]; - $resourceNamespaces = [ - 'App\\Filament\\Resources', - ...$panel->getResourceNamespaces(), - ]; + $resourceDirectories = $panel->getResourceDirectories(); + $resourceNamespaces = $panel->getResourceNamespaces(); + + foreach ($resourceDirectories as $resourceIndex => $resourceDirectory) { + if (mb_strpos($resourceDirectory, base_path('vendor')) === 0) { + unset($resourceDirectories[$resourceIndex]); + unset($resourceNamespaces[$resourceIndex]); + } + } $resourceNamespace = (count($resourceNamespaces) > 1) ? select( label: 'Which namespace would you like to create this in?', options: $resourceNamespaces ) : - Arr::first($resourceNamespaces); + (Arr::first($resourceNamespaces) ?? 'App\\Filament\\Resources'); $resourcePath = (count($resourceDirectories) > 1) ? $resourceDirectories[array_search($resourceNamespace, $resourceNamespaces)] : - Arr::first($resourceDirectories); + (Arr::first($resourceDirectories) ?? app_path('Filament/Resources/')); $path = (string) str($managerClass) ->prepend("{$resourcePath}/{$resource}/RelationManagers/") diff --git a/packages/panels/src/Commands/MakeResourceCommand.php b/packages/panels/src/Commands/MakeResourceCommand.php index ebf7ba3b4e..644f5c2e97 100644 --- a/packages/panels/src/Commands/MakeResourceCommand.php +++ b/packages/panels/src/Commands/MakeResourceCommand.php @@ -102,24 +102,25 @@ class MakeResourceCommand extends Command )] : Arr::first($panels); } - $resourceDirectories = [ - app_path('Filament/Resources/'), - ...$panel->getResourceDirectories(), - ]; - $resourceNamespaces = [ - 'App\\Filament\\Resources', - ...$panel->getResourceNamespaces(), - ]; + $resourceDirectories = $panel->getResourceDirectories(); + $resourceNamespaces = $panel->getResourceNamespaces(); + + foreach ($resourceDirectories as $resourceIndex => $resourceDirectory) { + if (mb_strpos($resourceDirectory, base_path('vendor')) === 0) { + unset($resourceDirectories[$resourceIndex]); + unset($resourceNamespaces[$resourceIndex]); + } + } $namespace = (count($resourceNamespaces) > 1) ? select( label: 'Which namespace would you like to create this in?', options: $resourceNamespaces ) : - Arr::first($resourceNamespaces); + (Arr::first($resourceNamespaces) ?? 'App\\Filament\\Resources'); $path = (count($resourceDirectories) > 1) ? $resourceDirectories[array_search($namespace, $resourceNamespaces)] : - Arr::first($resourceDirectories); + (Arr::first($resourceDirectories) ?? app_path('Filament/Resources/')); $resource = "{$model}Resource"; $resourceClass = "{$modelClass}Resource"; diff --git a/packages/widgets/src/Commands/MakeWidgetCommand.php b/packages/widgets/src/Commands/MakeWidgetCommand.php index 7f7a4bb7ee..c7f5604e00 100644 --- a/packages/widgets/src/Commands/MakeWidgetCommand.php +++ b/packages/widgets/src/Commands/MakeWidgetCommand.php @@ -124,24 +124,25 @@ class MakeWidgetCommand extends Command $widgetDirectories[array_search($namespace, $widgetNamespaces)] : (Arr::first($widgetDirectories) ?? app_path('Filament/Widgets/')); } else { - $resourceDirectories = [ - app_path('Filament/Resources/'), - ...$panel->getResourceDirectories(), - ]; - $resourceNamespaces = [ - 'App\\Filament\\Resources', - ...$panel->getResourceNamespaces(), - ]; + $resourceDirectories = $panel->getResourceDirectories(); + $resourceNamespaces = $panel->getResourceNamespaces(); + + foreach ($resourceDirectories as $resourceIndex => $resourceDirectory) { + if (mb_strpos($resourceDirectory, base_path('vendor')) === 0) { + unset($resourceDirectories[$resourceIndex]); + unset($resourceNamespaces[$resourceIndex]); + } + } $resourceNamespace = (count($resourceNamespaces) > 1) ? select( label: 'Which namespace would you like to create this in?', options: $resourceNamespaces, ) : - Arr::first($resourceNamespaces); + (Arr::first($resourceNamespaces) ?? 'App\\Filament\\Resources'); $resourcePath = (count($resourceDirectories) > 1) ? $resourceDirectories[array_search($resourceNamespace, $resourceNamespaces)] : - Arr::first($resourceDirectories); + (Arr::first($resourceDirectories) ?? app_path('Filament/Resources/')); } $view = str($widget)->prepend( From c051e46175e0c5dcd3999ef93bc579a1db0f2a5a Mon Sep 17 00:00:00 2001 From: wychoong <67364036+wychoong@users.noreply.github.com> Date: Tue, 17 Sep 2024 16:02:10 +0800 Subject: [PATCH 6/7] wip --- packages/panels/src/Commands/MakePageCommand.php | 2 +- packages/panels/src/Commands/MakeRelationManagerCommand.php | 2 +- packages/panels/src/Commands/MakeResourceCommand.php | 2 +- packages/widgets/src/Commands/MakeWidgetCommand.php | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/panels/src/Commands/MakePageCommand.php b/packages/panels/src/Commands/MakePageCommand.php index 986df8876d..e907e2dacd 100644 --- a/packages/panels/src/Commands/MakePageCommand.php +++ b/packages/panels/src/Commands/MakePageCommand.php @@ -209,7 +209,7 @@ class MakePageCommand extends Command $resourceNamespaces = $panel->getResourceNamespaces(); foreach ($resourceDirectories as $resourceIndex => $resourceDirectory) { - if (mb_strpos($resourceDirectory, base_path('vendor')) === 0) { + if (str($resourceDirectory)->startsWith(base_path('vendor'))) { unset($resourceDirectories[$resourceIndex]); unset($resourceNamespaces[$resourceIndex]); } diff --git a/packages/panels/src/Commands/MakeRelationManagerCommand.php b/packages/panels/src/Commands/MakeRelationManagerCommand.php index 69c15b2284..81211079cf 100644 --- a/packages/panels/src/Commands/MakeRelationManagerCommand.php +++ b/packages/panels/src/Commands/MakeRelationManagerCommand.php @@ -83,7 +83,7 @@ class MakeRelationManagerCommand extends Command $resourceNamespaces = $panel->getResourceNamespaces(); foreach ($resourceDirectories as $resourceIndex => $resourceDirectory) { - if (mb_strpos($resourceDirectory, base_path('vendor')) === 0) { + if (str($resourceDirectory)->startsWith(base_path('vendor'))) { unset($resourceDirectories[$resourceIndex]); unset($resourceNamespaces[$resourceIndex]); } diff --git a/packages/panels/src/Commands/MakeResourceCommand.php b/packages/panels/src/Commands/MakeResourceCommand.php index 644f5c2e97..76bafcc837 100644 --- a/packages/panels/src/Commands/MakeResourceCommand.php +++ b/packages/panels/src/Commands/MakeResourceCommand.php @@ -106,7 +106,7 @@ class MakeResourceCommand extends Command $resourceNamespaces = $panel->getResourceNamespaces(); foreach ($resourceDirectories as $resourceIndex => $resourceDirectory) { - if (mb_strpos($resourceDirectory, base_path('vendor')) === 0) { + if (str($resourceDirectory)->startsWith(base_path('vendor'))) { unset($resourceDirectories[$resourceIndex]); unset($resourceNamespaces[$resourceIndex]); } diff --git a/packages/widgets/src/Commands/MakeWidgetCommand.php b/packages/widgets/src/Commands/MakeWidgetCommand.php index c7f5604e00..1fcaa408ff 100644 --- a/packages/widgets/src/Commands/MakeWidgetCommand.php +++ b/packages/widgets/src/Commands/MakeWidgetCommand.php @@ -128,7 +128,7 @@ class MakeWidgetCommand extends Command $resourceNamespaces = $panel->getResourceNamespaces(); foreach ($resourceDirectories as $resourceIndex => $resourceDirectory) { - if (mb_strpos($resourceDirectory, base_path('vendor')) === 0) { + if (str($resourceDirectory)->startsWith(base_path('vendor'))) { unset($resourceDirectories[$resourceIndex]); unset($resourceNamespaces[$resourceIndex]); } From 3c4ecf74315aed26e7bcd9b95c5fcde34f04c46f Mon Sep 17 00:00:00 2001 From: wychoong <67364036+wychoong@users.noreply.github.com> Date: Tue, 17 Sep 2024 17:43:02 +0800 Subject: [PATCH 7/7] wip --- .../src/Commands/MakeClusterCommand.php | 7 +++++++ .../panels/src/Commands/MakePageCommand.php | 19 ++++++++++++++++++- .../src/Commands/MakeSettingsPageCommand.php | 7 +++++++ .../src/Commands/MakeWidgetCommand.php | 7 +++++++ 4 files changed, 39 insertions(+), 1 deletion(-) diff --git a/packages/panels/src/Commands/MakeClusterCommand.php b/packages/panels/src/Commands/MakeClusterCommand.php index ba605f2e79..3e8891945f 100644 --- a/packages/panels/src/Commands/MakeClusterCommand.php +++ b/packages/panels/src/Commands/MakeClusterCommand.php @@ -65,6 +65,13 @@ class MakeClusterCommand extends Command $clusterDirectories = $panel->getClusterDirectories(); $clusterNamespaces = $panel->getClusterNamespaces(); + foreach ($clusterDirectories as $clusterIndex => $clusterDirectory) { + if (str($clusterDirectory)->startsWith(base_path('vendor'))) { + unset($clusterDirectories[$clusterIndex]); + unset($clusterNamespaces[$clusterIndex]); + } + } + $namespace = (count($clusterNamespaces) > 1) ? select( label: 'Which namespace would you like to create this in?', diff --git a/packages/panels/src/Commands/MakePageCommand.php b/packages/panels/src/Commands/MakePageCommand.php index e907e2dacd..88d8ce1c95 100644 --- a/packages/panels/src/Commands/MakePageCommand.php +++ b/packages/panels/src/Commands/MakePageCommand.php @@ -70,10 +70,20 @@ class MakePageCommand extends Command )] : Arr::first($panels); } + $resourceDirectories = $panel->getResourceDirectories(); + $resourceNamespaces = $panel->getResourceNamespaces(); + + foreach ($resourceDirectories as $resourceIndex => $resourceDirectory) { + if (str($resourceDirectory)->startsWith(base_path('vendor'))) { + unset($resourceDirectories[$resourceIndex]); + unset($resourceNamespaces[$resourceIndex]); + } + } + $resourceInput = $this->option('resource') ?? suggest( label: 'Which resource would you like to create this in?', options: collect($panel->getResources()) - ->filter(fn (string $namespace): bool => str($namespace)->contains('\\Resources\\')) + ->filter(fn (string $namespace): bool => str($namespace)->contains('\\Resources\\') && str($namespace)->startsWith($resourceNamespaces)) ->map( fn (string $namespace): string => (string) str($namespace) ->afterLast('\\Resources\\') @@ -195,6 +205,13 @@ class MakePageCommand extends Command $pageDirectories = $panel->getPageDirectories(); $pageNamespaces = $panel->getPageNamespaces(); + foreach ($pageDirectories as $pageIndex => $pageDirectory) { + if (str($pageDirectory)->startsWith(base_path('vendor'))) { + unset($pageDirectories[$pageIndex]); + unset($pageNamespaces[$pageIndex]); + } + } + $namespace = (count($pageNamespaces) > 1) ? select( label: 'Which namespace would you like to create this in?', diff --git a/packages/spatie-laravel-settings-plugin/src/Commands/MakeSettingsPageCommand.php b/packages/spatie-laravel-settings-plugin/src/Commands/MakeSettingsPageCommand.php index a4a6f15494..c482b384de 100644 --- a/packages/spatie-laravel-settings-plugin/src/Commands/MakeSettingsPageCommand.php +++ b/packages/spatie-laravel-settings-plugin/src/Commands/MakeSettingsPageCommand.php @@ -70,6 +70,13 @@ class MakeSettingsPageCommand extends Command $pageDirectories = $panel->getPageDirectories(); $pageNamespaces = $panel->getPageNamespaces(); + foreach ($pageDirectories as $pageIndex => $pageDirectory) { + if (str($pageDirectory)->startsWith(base_path('vendor'))) { + unset($pageDirectories[$pageIndex]); + unset($pageNamespaces[$pageIndex]); + } + } + $namespace = (count($pageNamespaces) > 1) ? select( label: 'Which namespace would you like to create this in?', diff --git a/packages/widgets/src/Commands/MakeWidgetCommand.php b/packages/widgets/src/Commands/MakeWidgetCommand.php index 1fcaa408ff..677abf62ae 100644 --- a/packages/widgets/src/Commands/MakeWidgetCommand.php +++ b/packages/widgets/src/Commands/MakeWidgetCommand.php @@ -114,6 +114,13 @@ class MakeWidgetCommand extends Command $widgetDirectories = $panel->getWidgetDirectories(); $widgetNamespaces = $panel->getWidgetNamespaces(); + foreach ($widgetDirectories as $widgetIndex => $widgetDirectory) { + if (str($widgetDirectory)->startsWith(base_path('vendor'))) { + unset($widgetDirectories[$widgetIndex]); + unset($widgetNamespaces[$widgetIndex]); + } + } + $namespace = (count($widgetNamespaces) > 1) ? select( label: 'Which namespace would you like to create this in?',