From f2f556004d6cb9dd36965b1e893b3793cbfdbbfd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Benjamin=20Beganovi=C4=87?= Date: Thu, 24 Sep 2020 13:29:20 +0200 Subject: [PATCH 1/7] Auto-publish assets from Livewire --- composer.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/composer.json b/composer.json index 4df67077406e..2b584ceebb40 100644 --- a/composer.json +++ b/composer.json @@ -103,7 +103,8 @@ ], "post-autoload-dump": [ "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump", - "@php artisan package:discover --ansi" + "@php artisan package:discover --ansi", + "@php artisan vendor:publish --force --tag=livewire:assets --ansi" ] }, "config": { From a9e40aab37e94743ad5764094600af9211f37833 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Benjamin=20Beganovi=C4=87?= Date: Thu, 24 Sep 2020 13:29:41 +0200 Subject: [PATCH 2/7] Profile section: General informatioon --- .../Livewire/Profile/Settings/General.php | 77 +++++++++++++++ resources/lang/en/texts.php | 2 + .../portal/ninja2020/profile/index.blade.php | 95 +------------------ .../profile/settings/general.blade.php | 87 +++++++++++++++++ 4 files changed, 167 insertions(+), 94 deletions(-) create mode 100644 app/Http/Livewire/Profile/Settings/General.php create mode 100644 resources/views/portal/ninja2020/profile/settings/general.blade.php diff --git a/app/Http/Livewire/Profile/Settings/General.php b/app/Http/Livewire/Profile/Settings/General.php new file mode 100644 index 000000000000..ad875c910ec8 --- /dev/null +++ b/app/Http/Livewire/Profile/Settings/General.php @@ -0,0 +1,77 @@ + ['required'], + 'last_name' => ['required'], + 'email' => ['required', 'email'], + ]; + + public function mount() + { + $profile = auth()->user('contact'); + + $this->fill([ + 'profile' => $profile, + 'first_name' => $profile->first_name, + 'last_name' => $profile->last_name, + 'email' => $profile->email, + 'phone' => $profile->phone, + 'saved' => ctrans('texts.save'), + ]); + } + + public function render() + { + return render('profile.settings.general'); + } + + public function submit() + { + if ($this->profile->email != $this->email) { + $this->rules['email'][] = 'unique:client_contacts,email'; + } + + if (!empty($this->password)) { + $this->rules['password'] = ['sometimes', 'nullable', 'required', 'min:6', 'confirmed']; + } + + $data = $this->validate($this->rules); + + if (!empty($this->password)) { + $this->profile->password = encrypt($this->password); + } + + $this->profile + ->fill($data) + ->save(); + + $this->saved = ctrans('texts.saved_at', ['time' => now()->toTimeString()]); + } +} diff --git a/resources/lang/en/texts.php b/resources/lang/en/texts.php index ea2eec4f6e60..4d5e8e7e77eb 100644 --- a/resources/lang/en/texts.php +++ b/resources/lang/en/texts.php @@ -3279,4 +3279,6 @@ return [ 'over_payments_disabled' => 'Company doesn\'t support over payments.', 'paused' => 'Paused', + + 'saved_at' => 'Saved at :time', ]; diff --git a/resources/views/portal/ninja2020/profile/index.blade.php b/resources/views/portal/ninja2020/profile/index.blade.php index 3a7ce9549df8..0914c3a5d36a 100644 --- a/resources/views/portal/ninja2020/profile/index.blade.php +++ b/resources/views/portal/ninja2020/profile/index.blade.php @@ -7,100 +7,8 @@ @endsection @section('body') - -
-
-
-
-

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

-

- @lang('texts.client_information_text') -

-
-
-
-
- @csrf - @method('PUT') -
-
-
-
- - - @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 -
-
-
-
- -
-
-
-
-
-
+ @livewire('profile.settings.general')
@@ -357,5 +265,4 @@
- @endsection diff --git a/resources/views/portal/ninja2020/profile/settings/general.blade.php b/resources/views/portal/ninja2020/profile/settings/general.blade.php new file mode 100644 index 000000000000..9d7c3b5f2a7b --- /dev/null +++ b/resources/views/portal/ninja2020/profile/settings/general.blade.php @@ -0,0 +1,87 @@ +
+
+
+
+

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

+

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

+
+
+ +
+
+ @csrf + @method('PUT') +
+
+
+
+ + + @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 +
+
+
+
+ +
+
+
+
+
+
From e5183dee56b6928ce488c609bdb2c3bc9ed55d91 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Benjamin=20Beganovi=C4=87?= Date: Thu, 24 Sep 2020 13:44:56 +0200 Subject: [PATCH 3/7] Profile section: Name, website, logo --- .../Profile/Settings/NameWebsiteLogo.php | 46 ++++++++++++++++ .../portal/ninja2020/profile/index.blade.php | 54 +------------------ .../settings/name-website-logo.blade.php | 47 ++++++++++++++++ 3 files changed, 95 insertions(+), 52 deletions(-) create mode 100644 app/Http/Livewire/Profile/Settings/NameWebsiteLogo.php create mode 100644 resources/views/portal/ninja2020/profile/settings/name-website-logo.blade.php diff --git a/app/Http/Livewire/Profile/Settings/NameWebsiteLogo.php b/app/Http/Livewire/Profile/Settings/NameWebsiteLogo.php new file mode 100644 index 000000000000..ea363872a9f0 --- /dev/null +++ b/app/Http/Livewire/Profile/Settings/NameWebsiteLogo.php @@ -0,0 +1,46 @@ + ['required', 'min:3'], + 'website' => ['required', 'url'], + ]; + + public function mount() + { + $this->fill([ + 'profile' => auth()->user('contact')->client, + 'name' => auth()->user('contact')->client->present()->name, + 'website' => auth()->user('contact')->client->present()->website, + 'saved' => ctrans('texts.save'), + ]); + } + + public function render() + { + return render('profile.settings.name-website-logo'); + } + + public function submit() + { + $data = $this->validate($this->rules); + + $this->profile + ->fill($data) + ->save(); + + $this->saved = ctrans('texts.saved_at', ['time' => now()->toTimeString()]); + } +} diff --git a/resources/views/portal/ninja2020/profile/index.blade.php b/resources/views/portal/ninja2020/profile/index.blade.php index 0914c3a5d36a..6cb2d546aeb9 100644 --- a/resources/views/portal/ninja2020/profile/index.blade.php +++ b/resources/views/portal/ninja2020/profile/index.blade.php @@ -9,59 +9,9 @@ @section('body') @livewire('profile.settings.general') - + -
-
-
-
-

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

-

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

-
-
-
-
- @csrf - @method('PUT') -
-
-
-
- - - @error('name') -
- {{ $message }} -
- @enderror -
-
- - - @error('website') -
- {{ $message }} -
- @enderror -
- -
-
-
- -
-
-
-
-
-
+ @livewire('profile.settings.name-website-logo')
diff --git a/resources/views/portal/ninja2020/profile/settings/name-website-logo.blade.php b/resources/views/portal/ninja2020/profile/settings/name-website-logo.blade.php new file mode 100644 index 000000000000..4e731dc9f841 --- /dev/null +++ b/resources/views/portal/ninja2020/profile/settings/name-website-logo.blade.php @@ -0,0 +1,47 @@ +
+
+
+
+

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

+

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

+
+
+ +
+
+ @csrf + @method('PUT') +
+
+
+
+ + + @error('name') +
+ {{ $message }} +
+ @enderror +
+
+ + + @error('website') +
+ {{ $message }} +
+ @enderror +
+ +
+
+
+ +
+
+
+
+
+
From 554e5952111350307324bcc83f88f71add2771a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Benjamin=20Beganovi=C4=87?= Date: Thu, 24 Sep 2020 14:23:05 +0200 Subject: [PATCH 4/7] Profile settings: Shipping address --- .../Profile/Settings/PersonalAddress.php | 62 ++++++++++++ .../portal/ninja2020/profile/index.blade.php | 98 +------------------ .../settings/name-website-logo.blade.php | 1 - .../settings/personal-address.blade.php | 84 ++++++++++++++++ 4 files changed, 147 insertions(+), 98 deletions(-) create mode 100644 app/Http/Livewire/Profile/Settings/PersonalAddress.php create mode 100644 resources/views/portal/ninja2020/profile/settings/personal-address.blade.php diff --git a/app/Http/Livewire/Profile/Settings/PersonalAddress.php b/app/Http/Livewire/Profile/Settings/PersonalAddress.php new file mode 100644 index 000000000000..6a1488a249a0 --- /dev/null +++ b/app/Http/Livewire/Profile/Settings/PersonalAddress.php @@ -0,0 +1,62 @@ + ['required'], + 'address2' => ['required'], + 'city' => ['required'], + 'state' => ['required'], + 'postal_code' => ['required'], + 'country_id' => ['required'], + ]; + + public function mount($countries) + { + $this->fill([ + 'profile' => auth()->user('contact')->client, + 'address1' => auth()->user('contact')->client->address1, + 'address2' => auth()->user('contact')->client->address2, + 'city' => auth()->user('contact')->client->city, + 'state' => auth()->user('contact')->client->state, + 'postal_code' => auth()->user('contact')->client->postal_code, + 'country_id' => optional(auth()->user('contact')->client->country)->id, + + 'countries' => $countries, + 'saved' => ctrans('texts.save'), + ]); + } + + public function render() + { + return render('profile.settings.personal-address'); + } + + public function submit() + { + $data = $this->validate($this->rules); + + $this->profile + ->fill($data) + ->save(); + + $this->saved = ctrans('texts.saved_at', ['time' => now()->toTimeString()]); + } +} diff --git a/resources/views/portal/ninja2020/profile/index.blade.php b/resources/views/portal/ninja2020/profile/index.blade.php index 6cb2d546aeb9..4197ac83f771 100644 --- a/resources/views/portal/ninja2020/profile/index.blade.php +++ b/resources/views/portal/ninja2020/profile/index.blade.php @@ -14,103 +14,7 @@ @livewire('profile.settings.name-website-logo') -
-
-
-
-

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

-

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

-
-
-
-
- @csrf - @method('PUT') -
-
-
-
- - - @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 -
-
-
-
- -
-
-
-
-
-
+ @livewire('profile.settings.personal-address', ['countries' => $countries])
diff --git a/resources/views/portal/ninja2020/profile/settings/name-website-logo.blade.php b/resources/views/portal/ninja2020/profile/settings/name-website-logo.blade.php index 4e731dc9f841..177319bafe87 100644 --- a/resources/views/portal/ninja2020/profile/settings/name-website-logo.blade.php +++ b/resources/views/portal/ninja2020/profile/settings/name-website-logo.blade.php @@ -12,7 +12,6 @@
@csrf - @method('PUT')
diff --git a/resources/views/portal/ninja2020/profile/settings/personal-address.blade.php b/resources/views/portal/ninja2020/profile/settings/personal-address.blade.php new file mode 100644 index 000000000000..e65126677740 --- /dev/null +++ b/resources/views/portal/ninja2020/profile/settings/personal-address.blade.php @@ -0,0 +1,84 @@ +
+
+
+
+

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

+

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

+
+
+
+ + @csrf +
+
+
+ + + @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 +
+
+
+
+ +
+
+ +
+
From 2f089707f4094d18b262aac6019d40895255b578 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Benjamin=20Beganovi=C4=87?= Date: Thu, 24 Sep 2020 14:40:06 +0200 Subject: [PATCH 5/7] Use Hash:: to encrypt passwords --- app/Http/Livewire/Profile/Settings/General.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/Http/Livewire/Profile/Settings/General.php b/app/Http/Livewire/Profile/Settings/General.php index ad875c910ec8..249c832458aa 100644 --- a/app/Http/Livewire/Profile/Settings/General.php +++ b/app/Http/Livewire/Profile/Settings/General.php @@ -12,6 +12,7 @@ namespace App\Http\Livewire\Profile\Settings; +use Illuminate\Support\Facades\Hash; use Livewire\Component; class General extends Component @@ -65,7 +66,7 @@ class General extends Component $data = $this->validate($this->rules); if (!empty($this->password)) { - $this->profile->password = encrypt($this->password); + $this->profile->password = Hash::make($this->password); } $this->profile From b06c9c18fc9a91bc988d676e4e902749714d9300 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Benjamin=20Beganovi=C4=87?= Date: Thu, 24 Sep 2020 14:40:20 +0200 Subject: [PATCH 6/7] Update country_id for personal country id --- app/Http/Livewire/Profile/Settings/PersonalAddress.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Http/Livewire/Profile/Settings/PersonalAddress.php b/app/Http/Livewire/Profile/Settings/PersonalAddress.php index 6a1488a249a0..7cd0030fcd81 100644 --- a/app/Http/Livewire/Profile/Settings/PersonalAddress.php +++ b/app/Http/Livewire/Profile/Settings/PersonalAddress.php @@ -37,7 +37,7 @@ class PersonalAddress extends Component 'city' => auth()->user('contact')->client->city, 'state' => auth()->user('contact')->client->state, 'postal_code' => auth()->user('contact')->client->postal_code, - 'country_id' => optional(auth()->user('contact')->client->country)->id, + 'country_id' => auth()->user('contact')->client->country_id, 'countries' => $countries, 'saved' => ctrans('texts.save'), From 35ed39632396006e7580465e089a8bba582d2cb9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Benjamin=20Beganovi=C4=87?= Date: Thu, 24 Sep 2020 14:40:27 +0200 Subject: [PATCH 7/7] Profile settings: Shipping address --- .../Profile/Settings/ShippingAddress.php | 62 +++++++++++ .../portal/ninja2020/profile/index.blade.php | 103 +----------------- .../settings/shipping-address.blade.php | 88 +++++++++++++++ 3 files changed, 151 insertions(+), 102 deletions(-) create mode 100644 app/Http/Livewire/Profile/Settings/ShippingAddress.php create mode 100644 resources/views/portal/ninja2020/profile/settings/shipping-address.blade.php diff --git a/app/Http/Livewire/Profile/Settings/ShippingAddress.php b/app/Http/Livewire/Profile/Settings/ShippingAddress.php new file mode 100644 index 000000000000..39ce3aec426e --- /dev/null +++ b/app/Http/Livewire/Profile/Settings/ShippingAddress.php @@ -0,0 +1,62 @@ + ['required'], + 'shipping_address2' => ['required'], + 'shipping_city' => ['required'], + 'shipping_state' => ['required'], + 'shipping_postal_code' => ['required'], + 'shipping_country_id' => ['required'], + ]; + + public function mount($countries) + { + $this->fill([ + 'profile' => auth()->user('contact')->client, + 'shipping_address1' => auth()->user('contact')->client->shipping_address1, + 'shipping_address2' => auth()->user('contact')->client->shipping_address2, + 'shipping_city' => auth()->user('contact')->client->shipping_city, + 'shipping_state' => auth()->user('contact')->client->shipping_state, + 'shipping_postal_code' => auth()->user('contact')->client->shipping_postal_code, + 'shipping_country_id' => auth()->user('contact')->client->shipping_country_id, + + 'countries' => $countries, + 'saved' => ctrans('texts.save'), + ]); + } + + public function render() + { + return render('profile.settings.shipping-address'); + } + + public function submit() + { + $data = $this->validate($this->rules); + + $this->profile + ->fill($data) + ->save(); + + $this->saved = ctrans('texts.saved_at', ['time' => now()->toTimeString()]); + } +} diff --git a/resources/views/portal/ninja2020/profile/index.blade.php b/resources/views/portal/ninja2020/profile/index.blade.php index 4197ac83f771..e2a715303c84 100644 --- a/resources/views/portal/ninja2020/profile/index.blade.php +++ b/resources/views/portal/ninja2020/profile/index.blade.php @@ -17,106 +17,5 @@ @livewire('profile.settings.personal-address', ['countries' => $countries]) -
-
-
-
-

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

-

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

-
-
-
-
- @csrf - @method('PUT') -
-
-
-
- - - @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 -
-
-
-
- -
-
-
-
-
-
+ @livewire('profile.settings.shipping-address', ['countries' => $countries]) @endsection diff --git a/resources/views/portal/ninja2020/profile/settings/shipping-address.blade.php b/resources/views/portal/ninja2020/profile/settings/shipping-address.blade.php new file mode 100644 index 000000000000..40fe14053507 --- /dev/null +++ b/resources/views/portal/ninja2020/profile/settings/shipping-address.blade.php @@ -0,0 +1,88 @@ +
+
+
+
+

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

+

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

+
+
+
+
+ @csrf +
+
+
+
+ + + @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 +
+
+
+
+ +
+
+
+
+
+