From ed67717e8932d1dc63d0a6efa16d447277429b66 Mon Sep 17 00:00:00 2001 From: Dan Harrin Date: Sun, 28 Feb 2021 21:11:59 +0000 Subject: [PATCH] wip --- ...ilamentUserFactory.php => UserFactory.php} | 7 +- ..._00_000000_create_filament_users_table.php | 1 + ...000002_create_filament_role_user_table.php | 22 -- .../views/components/multi-select.blade.php | 323 ++++++++++++++++++ .../views/components/select.blade.php | 2 +- .../views/components/tags-input.blade.php | 6 +- packages/forms/src/Components/MultiSelect.php | 43 +++ packages/forms/src/Components/Select.php | 1 - src/Commands/MakeUserCommand.php | 6 +- src/FilamentServiceProvider.php | 4 +- src/Http/Livewire/EditAccount.php | 4 +- src/Models/FilamentRoleUser.php | 17 - src/Models/{FilamentUser.php => User.php} | 17 +- .../Forms/Components/MultiSelect.php | 8 + src/Resources/UserResource.php | 19 +- src/Role.php | 1 - tests/Feature/Auth/LoginTest.php | 6 +- tests/Feature/Auth/LogoutTest.php | 4 +- tests/Feature/Auth/RequestPasswordTest.php | 4 +- tests/Feature/Auth/ResetPasswordTest.php | 8 +- tests/Feature/EditAccount.php | 22 +- 21 files changed, 434 insertions(+), 91 deletions(-) rename database/factories/{FilamentUserFactory.php => UserFactory.php} (79%) delete mode 100644 database/migrations/0000_00_00_000002_create_filament_role_user_table.php create mode 100644 packages/forms/resources/views/components/multi-select.blade.php create mode 100644 packages/forms/src/Components/MultiSelect.php delete mode 100644 src/Models/FilamentRoleUser.php rename src/Models/{FilamentUser.php => User.php} (82%) create mode 100644 src/Resources/Forms/Components/MultiSelect.php diff --git a/database/factories/FilamentUserFactory.php b/database/factories/UserFactory.php similarity index 79% rename from database/factories/FilamentUserFactory.php rename to database/factories/UserFactory.php index a1f7856e50..67ca2e55f7 100644 --- a/database/factories/FilamentUserFactory.php +++ b/database/factories/UserFactory.php @@ -2,13 +2,13 @@ namespace Filament\Database\Factories; -use Filament\Models\FilamentUser; +use Filament\Models\User; use Illuminate\Database\Eloquent\Factories\Factory; use Illuminate\Support\Str; -class FilamentUserFactory extends Factory +class UserFactory extends Factory { - protected $model = FilamentUser::class; + protected $model = User::class; public function definition() { @@ -18,6 +18,7 @@ class FilamentUserFactory extends Factory 'name' => $this->faker->name, 'password' => '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', // password 'remember_token' => Str::random(10), + 'roles' => [], ]; } } diff --git a/database/migrations/0000_00_00_000000_create_filament_users_table.php b/database/migrations/0000_00_00_000000_create_filament_users_table.php index 19b1b2e782..0d20e5565c 100644 --- a/database/migrations/0000_00_00_000000_create_filament_users_table.php +++ b/database/migrations/0000_00_00_000000_create_filament_users_table.php @@ -15,6 +15,7 @@ class CreateFilamentUsersTable extends Migration $table->boolean('is_admin')->default(0); $table->string('name'); $table->string('password'); + $table->json('roles')->nullable(); $table->rememberToken(); $table->timestamps(); }); diff --git a/database/migrations/0000_00_00_000002_create_filament_role_user_table.php b/database/migrations/0000_00_00_000002_create_filament_role_user_table.php deleted file mode 100644 index 86229ec58e..0000000000 --- a/database/migrations/0000_00_00_000002_create_filament_role_user_table.php +++ /dev/null @@ -1,22 +0,0 @@ -id(); - $table->string('role'); - $table->foreignId('user_id')->constrained('filament_users')->cascadeOnDelete(); - }); - } - - public function down() - { - Schema::dropIfExists('filament_role_user'); - } -} diff --git a/packages/forms/resources/views/components/multi-select.blade.php b/packages/forms/resources/views/components/multi-select.blade.php new file mode 100644 index 0000000000..85defe1122 --- /dev/null +++ b/packages/forms/resources/views/components/multi-select.blade.php @@ -0,0 +1,323 @@ +@pushonce('filament-scripts:multi-select-component') + +@endpushonce + + +
id ? "id=\"{$formComponent->id}\"" : null !!} + class="relative" + {!! Filament\format_attributes($formComponent->extraAttributes) !!} + > + @unless (Str::of($formComponent->nameAttribute)->startsWith(['wire:model', 'x-model'])) + name ? "{$formComponent->nameAttribute}=\"{$formComponent->name}\"" : null !!} + type="hidden" + /> + @endif + + @unless($formComponent->disabled) +
+ + {{ __($formComponent->placeholder) }} + + + + + + + +
+ +
+
    + + +
    +
+
+ @endunless + +
+ +
+
+
diff --git a/packages/forms/resources/views/components/select.blade.php b/packages/forms/resources/views/components/select.blade.php index 6c8d3d936e..a7a1dd0d68 100644 --- a/packages/forms/resources/views/components/select.blade.php +++ b/packages/forms/resources/views/components/select.blade.php @@ -117,7 +117,7 @@ if (this.autofocus) this.openListbox() this.$watch('search', (() => { - if (!this.open || this.search === '' || this.search === null) { + if (! this.open || this.search === '' || this.search === null) { this.options = this.initialOptions this.focusedOptionIndex = 0 diff --git a/packages/forms/resources/views/components/tags-input.blade.php b/packages/forms/resources/views/components/tags-input.blade.php index e00050d322..103fbbcbf7 100644 --- a/packages/forms/resources/views/components/tags-input.blade.php +++ b/packages/forms/resources/views/components/tags-input.blade.php @@ -1,6 +1,6 @@ -@pushonce('filament-scripts:tags-component') +@pushonce('filament-scripts:tags-input-component')