From 166e27c7bd323e2231efcfeccf45f0b6abb17b2d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Benjamin=20Beganovi=C4=87?= Date: Mon, 4 Oct 2021 12:33:52 +0200 Subject: [PATCH 1/4] Handle dynamic fields on frontend --- .../portal/ninja2020/auth/register.blade.php | 86 +++++++++++++++++-- 1 file changed, 80 insertions(+), 6 deletions(-) diff --git a/resources/views/portal/ninja2020/auth/register.blade.php b/resources/views/portal/ninja2020/auth/register.blade.php index cd4215f73ef3..806dec49996e 100644 --- a/resources/views/portal/ninja2020/auth/register.blade.php +++ b/resources/views/portal/ninja2020/auth/register.blade.php @@ -12,14 +12,88 @@
@csrf - @include('portal.ninja2020.auth.includes.register.personal_information') - {{ ctrans('texts.more_fields') }} +
+ @foreach($company->client_registration_fields as $field) +
+
+ + + @if($field['required']) +
*
+ @endif +
-
- @include('portal.ninja2020.auth.includes.register.website') - @include('portal.ninja2020.auth.includes.register.personal_address') - @include('portal.ninja2020.auth.includes.register.shipping_address') + @if($field['key'] === 'email') + + @elseif($field['key'] === 'password') + + @elseif($field['key'] === 'country_id') + + @else + + @endif + + @error($field['key']) +
+ {{ $message }} +
+ @enderror +
+ + @if($field['key'] === 'password') +
+
+ + + @if($field['required']) +
*
+ @endif +
+ + +
+ @endif + @endforeach
From 61eddbb7559c9417ac9046f16c531c8b4702dc0d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Benjamin=20Beganovi=C4=87?= Date: Mon, 4 Oct 2021 12:34:00 +0200 Subject: [PATCH 2/4] Handle dynamic fields on backend --- .../Requests/ClientPortal/RegisterRequest.php | 26 +++++++++++++------ 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/app/Http/Requests/ClientPortal/RegisterRequest.php b/app/Http/Requests/ClientPortal/RegisterRequest.php index 2286e31ea736..8b54ccc5488d 100644 --- a/app/Http/Requests/ClientPortal/RegisterRequest.php +++ b/app/Http/Requests/ClientPortal/RegisterRequest.php @@ -25,15 +25,25 @@ class RegisterRequest extends FormRequest * * @return array */ - public function rules() + public function rules(): array { - $rules = [ - 'first_name' => ['required', 'string', 'max:255'], - 'last_name' => ['required', 'string', 'max:255'], - 'phone' => ['required', 'string', 'max:255'], - 'email' => ['required', 'string', 'email:rfc,dns', 'max:255'], - 'password' => ['required', 'string', 'min:6', 'confirmed'], - ]; + $rules = []; + + foreach ($this->company()->client_registration_fields as $field) { + if ($field['required']) { + $rules[$field['key']] = ['required']; + } + } + + foreach ($rules as $field => $properties) { + if ($field === 'email') { + $rules[$field] = array_merge($rules[$field], ['email:rfc,dns', 'max:255']); + } + + if ($field === 'password') { + $rules[$field] = array_merge($rules[$field], ['string', 'min:6', 'confirmed']); + } + } if ($this->company()->settings->client_portal_terms || $this->company()->settings->client_portal_privacy_policy) { $rules['terms'] = ['required']; From 8b6060a8997ef9f6be2475a653ad21467ad2b4ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Benjamin=20Beganovi=C4=87?= Date: Mon, 4 Oct 2021 12:34:25 +0200 Subject: [PATCH 3/4] Clean up --- .../register/personal_address.blade.php | 74 --------------- .../register/personal_information.blade.php | 90 ------------------- .../register/shipping_address.blade.php | 88 ------------------ .../auth/includes/register/website.blade.php | 32 ------- 4 files changed, 284 deletions(-) delete mode 100644 resources/views/portal/ninja2020/auth/includes/register/personal_address.blade.php delete mode 100644 resources/views/portal/ninja2020/auth/includes/register/personal_information.blade.php delete mode 100644 resources/views/portal/ninja2020/auth/includes/register/shipping_address.blade.php delete mode 100644 resources/views/portal/ninja2020/auth/includes/register/website.blade.php diff --git a/resources/views/portal/ninja2020/auth/includes/register/personal_address.blade.php b/resources/views/portal/ninja2020/auth/includes/register/personal_address.blade.php deleted file mode 100644 index bdc4cf5343c0..000000000000 --- a/resources/views/portal/ninja2020/auth/includes/register/personal_address.blade.php +++ /dev/null @@ -1,74 +0,0 @@ - -

{{ ctrans('texts.personal_address') }}

- -

- {{ ctrans('texts.enter_your_personal_address') }} -

- -
-
-
-
- - - @error('address1') -
- {{ $message }} -
- @enderror -
-
- - - @error('address2') -
- {{ $message }} -
- @enderror -
-
- - - @error('city') -
- {{ $message }} -
- @enderror -
-
- - - @error('state') -
- {{ $message }} -
- @enderror -
-
- - - @error('postal_code') -
- {{ $message }} -
- @enderror -
-
- - - @error('country') -
- {{ $message }} -
- @enderror -
-
-
-
diff --git a/resources/views/portal/ninja2020/auth/includes/register/personal_information.blade.php b/resources/views/portal/ninja2020/auth/includes/register/personal_information.blade.php deleted file mode 100644 index 662c103e0fe5..000000000000 --- a/resources/views/portal/ninja2020/auth/includes/register/personal_information.blade.php +++ /dev/null @@ -1,90 +0,0 @@ - -

{{ ctrans('texts.profile') }}

- -

- {{ ctrans('texts.client_information_text') }} -

- -
-
-
-
-
- -
*
-
- - @error('first_name') -
- {{ $message }} -
- @enderror -
- -
-
- -
*
-
- - @error('last_name') -
- {{ $message }} -
- @enderror -
- -
-
- -
*
-
- - @error('email') -
- {{ $message }} -
- @enderror -
- -
-
- -
*
-
- - @error('phone') -
- {{ $message }} -
- @enderror -
- -
-
- -
*
-
- - @error('password') -
- {{ $message }} -
- @enderror -
- -
-
- -
*
-
- - @error('password_confirmation') -
- {{ $message }} -
- @enderror -
-
-
-
\ No newline at end of file diff --git a/resources/views/portal/ninja2020/auth/includes/register/shipping_address.blade.php b/resources/views/portal/ninja2020/auth/includes/register/shipping_address.blade.php deleted file mode 100644 index 2d3109d61f3d..000000000000 --- a/resources/views/portal/ninja2020/auth/includes/register/shipping_address.blade.php +++ /dev/null @@ -1,88 +0,0 @@ - -

{{ ctrans('texts.shipping_address') }}

- -

- {{ ctrans('texts.enter_your_shipping_address') }} -

- -
-
-
-
- - - @error('shipping_address1') -
- {{ $message }} -
- @enderror -
-
- - - @error('shipping_address2') -
- {{ $message }} -
- @enderror -
-
- - - @error('shipping_city') -
- {{ $message }} -
- @enderror -
-
- - - @error('shipping_state') -
- {{ $message }} -
- @enderror -
-
- - - @error('shipping_postal_code') -
- {{ $message }} -
- @enderror -
-
- - - @error('country') -
- {{ $message }} -
- @enderror -
-
-
-
diff --git a/resources/views/portal/ninja2020/auth/includes/register/website.blade.php b/resources/views/portal/ninja2020/auth/includes/register/website.blade.php deleted file mode 100644 index 90341a61fa5a..000000000000 --- a/resources/views/portal/ninja2020/auth/includes/register/website.blade.php +++ /dev/null @@ -1,32 +0,0 @@ - -

{{ ctrans('texts.website') }}

- -

- {{ ctrans('texts.make_sure_use_full_link') }} -

- -
-
-
-
- - - @error('name') -
- {{ $message }} -
- @enderror -
- -
- - - @error('website') -
- {{ $message }} -
- @enderror -
-
-
-
From 83a1f5c54b2cad44816845ab60d6b08b61072bdf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Benjamin=20Beganovi=C4=87?= Date: Mon, 4 Oct 2021 12:48:41 +0200 Subject: [PATCH 4/4] Only show required fields --- .../portal/ninja2020/auth/register.blade.php | 132 +++++++++--------- 1 file changed, 67 insertions(+), 65 deletions(-) diff --git a/resources/views/portal/ninja2020/auth/register.blade.php b/resources/views/portal/ninja2020/auth/register.blade.php index 806dec49996e..7512c555a8fa 100644 --- a/resources/views/portal/ninja2020/auth/register.blade.php +++ b/resources/views/portal/ninja2020/auth/register.blade.php @@ -15,69 +15,13 @@
@foreach($company->client_registration_fields as $field) -
-
- - - @if($field['required']) -
*
- @endif -
- - @if($field['key'] === 'email') - - @elseif($field['key'] === 'password') - - @elseif($field['key'] === 'country_id') - - @else - - @endif - - @error($field['key']) -
- {{ $message }} -
- @enderror -
- - @if($field['key'] === 'password') + @if($field['required'])
@if($field['required']) @@ -85,13 +29,71 @@ @endif
- + @if($field['key'] === 'email') + + @elseif($field['key'] === 'password') + + @elseif($field['key'] === 'country_id') + + @else + + @endif + + @error($field['key']) +
+ {{ $message }} +
+ @enderror
+ + @if($field['key'] === 'password') +
+
+ + + @if($field['required']) +
*
+ @endif +
+ + +
+ @endif @endif @endforeach