From d7a643b1fcd77d4cb041fae12e7c77f129dbe241 Mon Sep 17 00:00:00 2001 From: Ryan Scherler Date: Thu, 30 Apr 2020 18:44:24 -0700 Subject: [PATCH] Refactor and remove repetitive livewire views. Made dymanic tabbed form view in place of them --- resources/views/components/tabs.blade.php | 16 +++++++------- .../index.blade.php => permissions.blade.php} | 0 .../permissions/create-edit.blade.php | 21 ------------------- .../index.blade.php => roles.blade.php} | 0 .../livewire/roles/create-edit.blade.php | 21 ------------------- .../views/livewire/tabbed-form.blade.php | 10 +++++++++ .../livewire/users/create-edit.blade.php | 21 ------------------- src/Filament.php | 15 +++++++++++++ src/Http/Components/Tabs.php | 10 +-------- src/Http/Fields/Field.php | 11 ++-------- src/Http/Livewire/PermissionCreate.php | 6 +++--- src/Http/Livewire/PermissionEdit.php | 6 +++--- src/Http/Livewire/Permissions.php | 2 +- src/Http/Livewire/RoleCreate.php | 6 +++--- src/Http/Livewire/RoleEdit.php | 6 +++--- src/Http/Livewire/Roles.php | 2 +- src/Http/Livewire/UserCreate.php | 6 +++--- src/Http/Livewire/UserEdit.php | 4 ++-- 18 files changed, 55 insertions(+), 108 deletions(-) rename resources/views/livewire/{permissions/index.blade.php => permissions.blade.php} (100%) delete mode 100644 resources/views/livewire/permissions/create-edit.blade.php rename resources/views/livewire/{roles/index.blade.php => roles.blade.php} (100%) delete mode 100644 resources/views/livewire/roles/create-edit.blade.php create mode 100644 resources/views/livewire/tabbed-form.blade.php delete mode 100644 resources/views/livewire/users/create-edit.blade.php diff --git a/resources/views/components/tabs.blade.php b/resources/views/components/tabs.blade.php index d6a6554b34..5bae4450c5 100644 --- a/resources/views/components/tabs.blade.php +++ b/resources/views/components/tabs.blade.php @@ -1,16 +1,16 @@ -
+
- @foreach ($tabs as $value => $label) + @foreach ($tabs as $tab) @endforeach
diff --git a/resources/views/livewire/permissions/index.blade.php b/resources/views/livewire/permissions.blade.php similarity index 100% rename from resources/views/livewire/permissions/index.blade.php rename to resources/views/livewire/permissions.blade.php diff --git a/resources/views/livewire/permissions/create-edit.blade.php b/resources/views/livewire/permissions/create-edit.blade.php deleted file mode 100644 index 431d66b050..0000000000 --- a/resources/views/livewire/permissions/create-edit.blade.php +++ /dev/null @@ -1,21 +0,0 @@ -
- - - - - - - - - - - - - - - - - - - -
\ No newline at end of file diff --git a/resources/views/livewire/roles/index.blade.php b/resources/views/livewire/roles.blade.php similarity index 100% rename from resources/views/livewire/roles/index.blade.php rename to resources/views/livewire/roles.blade.php diff --git a/resources/views/livewire/roles/create-edit.blade.php b/resources/views/livewire/roles/create-edit.blade.php deleted file mode 100644 index 541609d028..0000000000 --- a/resources/views/livewire/roles/create-edit.blade.php +++ /dev/null @@ -1,21 +0,0 @@ -
- - - - - - - - - - - - - - - - - - - -
\ No newline at end of file diff --git a/resources/views/livewire/tabbed-form.blade.php b/resources/views/livewire/tabbed-form.blade.php new file mode 100644 index 0000000000..96eaed68fa --- /dev/null +++ b/resources/views/livewire/tabbed-form.blade.php @@ -0,0 +1,10 @@ +
+ + @foreach($groupedFields as $key => $fields) + + + + @endforeach + + +
\ No newline at end of file diff --git a/resources/views/livewire/users/create-edit.blade.php b/resources/views/livewire/users/create-edit.blade.php deleted file mode 100644 index 8b07f11660..0000000000 --- a/resources/views/livewire/users/create-edit.blade.php +++ /dev/null @@ -1,21 +0,0 @@ -
- - - - - - - - - - - - - - - - - - - -
\ No newline at end of file diff --git a/src/Filament.php b/src/Filament.php index af61c3b4c9..6a17edc87a 100644 --- a/src/Filament.php +++ b/src/Filament.php @@ -5,6 +5,7 @@ namespace Filament; use Illuminate\Support\Facades\Request; use Illuminate\Support\Facades\Storage; use Illuminate\Support\HtmlString; +use Illuminate\Support\Str; use League\Glide\Urls\UrlBuilderFactory; class Filament { @@ -176,4 +177,18 @@ class Filament { $urlBuilder = UrlBuilderFactory::create(null, config('app.key')); return route('filament.image', ['path' => ltrim($urlBuilder->getUrl($path, $manipulations), '/')]); } + + /** + * Format a label from a given value + * + * @param string $value + * @return string + */ + public function formatLabel(string $value) + { + return Str::of($value) + ->replaceMatches('/[\-_]/', ' ') + ->title() + ->__toString(); + } } diff --git a/src/Http/Components/Tabs.php b/src/Http/Components/Tabs.php index deef95d959..e85588d285 100644 --- a/src/Http/Components/Tabs.php +++ b/src/Http/Components/Tabs.php @@ -6,13 +6,6 @@ use Illuminate\View\Component; class Tabs extends Component { - /** - * The initally selected tab. - * - * @var string - */ - public $tab; - /** * The tabs. * @@ -27,9 +20,8 @@ class Tabs extends Component * @param array $tabs * @return void */ - public function __construct(string $tab, array $tabs) + public function __construct(array $tabs) { - $this->tab = $tab; $this->tabs = $tabs; } diff --git a/src/Http/Fields/Field.php b/src/Http/Fields/Field.php index f0749d5eb7..7d863db2dd 100644 --- a/src/Http/Fields/Field.php +++ b/src/Http/Fields/Field.php @@ -4,6 +4,7 @@ namespace Filament\Http\Fields; use Illuminate\Support\Arr; use Illuminate\Support\Str; +use Filament; class Field { @@ -32,7 +33,7 @@ class Field $this->key = 'form_data.'.$this->name; $this->id = Str::slug($this->key); $this->field_type = $this->getFieldType(); - $this->label = $this->formatLabel($name); + $this->label = Filament::formatLabel($name); } public static function make($name) @@ -147,12 +148,4 @@ class Field $baseName = class_basename(get_called_class()); return Str::of($baseName)->kebab(); } - - protected function formatLabel($value) - { - return Str::of($value) - ->replaceMatches('/[\-_]/', ' ') - ->title() - ->__toString(); - } } diff --git a/src/Http/Livewire/PermissionCreate.php b/src/Http/Livewire/PermissionCreate.php index e086e24512..fd1392ebdc 100644 --- a/src/Http/Livewire/PermissionCreate.php +++ b/src/Http/Livewire/PermissionCreate.php @@ -36,13 +36,13 @@ class PermissionCreate extends Component public function render() { - $fields = $this->fields()->groupBy(function ($field, $key) { + $groupedFields = $this->fields()->groupBy(function ($field, $key) { return $field->group; }); - return view('filament::livewire.permissions.create-edit', [ + return view('filament::livewire.tabbed-form', [ 'title' => __('filament::permissions.create'), - 'fields' => $fields, + 'groupedFields' => $groupedFields, ]); } } diff --git a/src/Http/Livewire/PermissionEdit.php b/src/Http/Livewire/PermissionEdit.php index 23e2e1af00..ef783fb32f 100644 --- a/src/Http/Livewire/PermissionEdit.php +++ b/src/Http/Livewire/PermissionEdit.php @@ -43,13 +43,13 @@ class PermissionEdit extends Component public function render() { - $fields = $this->fields()->groupBy(function ($field, $key) { + $groupedFields = $this->fields()->groupBy(function ($field, $key) { return $field->group; }); - return view('filament::livewire.permissions.create-edit', [ + return view('filament::livewire.tabbed-form', [ 'title' => __('filament::permissions.edit'), - 'fields' => $fields, + 'groupedFields' => $groupedFields, ]); } } diff --git a/src/Http/Livewire/Permissions.php b/src/Http/Livewire/Permissions.php index 587e5bb6a7..8098104105 100644 --- a/src/Http/Livewire/Permissions.php +++ b/src/Http/Livewire/Permissions.php @@ -21,7 +21,7 @@ class Permissions extends Component $customPermissions = Permission::where('is_system', false)->get(); - return view('filament::livewire.permissions.index', [ + return view('filament::livewire.permissions', [ 'title' => __('filament::permissions.index'), 'permissions' => $permissions, 'customPermissions' => $customPermissions, diff --git a/src/Http/Livewire/RoleCreate.php b/src/Http/Livewire/RoleCreate.php index 8567ab874b..cd585ee7b4 100644 --- a/src/Http/Livewire/RoleCreate.php +++ b/src/Http/Livewire/RoleCreate.php @@ -36,13 +36,13 @@ class RoleCreate extends Component public function render() { - $fields = $this->fields()->groupBy(function ($field, $key) { + $groupedFields = $this->fields()->groupBy(function ($field, $key) { return $field->group; }); - return view('filament::livewire.roles.create-edit', [ + return view('filament::livewire.tabbed-form', [ 'title' => __('filament::roles.create'), - 'fields' => $fields, + 'groupedFields' => $groupedFields, ]); } } diff --git a/src/Http/Livewire/RoleEdit.php b/src/Http/Livewire/RoleEdit.php index e84e52fe19..fde08969ec 100644 --- a/src/Http/Livewire/RoleEdit.php +++ b/src/Http/Livewire/RoleEdit.php @@ -43,13 +43,13 @@ class RoleEdit extends Component public function render() { - $fields = $this->fields()->groupBy(function ($field, $key) { + $groupedFields = $this->fields()->groupBy(function ($field, $key) { return $field->group; }); - return view('filament::livewire.roles.create-edit', [ + return view('filament::livewire.tabbed-form', [ 'title' => __('filament::roles.edit'), - 'fields' => $fields, + 'groupedFields' => $groupedFields, ]); } } diff --git a/src/Http/Livewire/Roles.php b/src/Http/Livewire/Roles.php index 278c8b5062..8dfacba29a 100644 --- a/src/Http/Livewire/Roles.php +++ b/src/Http/Livewire/Roles.php @@ -20,7 +20,7 @@ class Roles extends Component $allRoles = Role::all(); - return view('filament::livewire.roles.index', [ + return view('filament::livewire.roles', [ 'title' => __('filament::roles.index'), 'roles' => $roles, 'allRoles' => $allRoles, diff --git a/src/Http/Livewire/UserCreate.php b/src/Http/Livewire/UserCreate.php index 4568d61af8..061ce1a6de 100644 --- a/src/Http/Livewire/UserCreate.php +++ b/src/Http/Livewire/UserCreate.php @@ -32,13 +32,13 @@ class UserCreate extends Component public function render() { - $fields = $this->fields()->groupBy(function ($field, $key) { + $groupedFields = $this->fields()->groupBy(function ($field, $key) { return $field->group; }); - return view('filament::livewire.users.create-edit', [ + return view('filament::livewire.tabbed-form', [ 'title' => __('filament::users.create'), - 'fields' => $fields, + 'groupedFields' => $groupedFields, ]); } } diff --git a/src/Http/Livewire/UserEdit.php b/src/Http/Livewire/UserEdit.php index ac5626be2f..aee5c25155 100644 --- a/src/Http/Livewire/UserEdit.php +++ b/src/Http/Livewire/UserEdit.php @@ -49,10 +49,10 @@ class UserEdit extends Component public function render() { - $fields = $this->fields()->groupBy(function ($field, $key) { + $groupedFields = $this->fields()->groupBy(function ($field, $key) { return $field->group; }); - return view('filament::livewire.users.create-edit', compact('fields')); + return view('filament::livewire.tabbed-form', compact('groupedFields')); } }