diff --git a/app/Http/Controllers/ClientPortal/ProfileController.php b/app/Http/Controllers/ClientPortal/ProfileController.php index 82625f08879d..d16ba037662f 100644 --- a/app/Http/Controllers/ClientPortal/ProfileController.php +++ b/app/Http/Controllers/ClientPortal/ProfileController.php @@ -13,7 +13,7 @@ namespace App\Http\Controllers\ClientPortal; use App\Http\Controllers\Controller; use App\Http\Requests\ClientPortal\UpdateContactRequest; -use App\Http\Requests\ClientPortal\UpdateSettingsRequest; +use App\Http\Requests\ClientPortal\UpdateClientRequest; use App\Jobs\Util\UploadAvatar; use App\Models\ClientContact; use Illuminate\Http\Request; @@ -90,9 +90,14 @@ class ProfileController extends Controller return back(); } - public function updateClient(UpdateSettingsRequest $request, ClientContact $client_contact) + public function updateClient(UpdateClientRequest $request, ClientContact $client_contact) { -dd("hi"); + + $client = $client_contact->client; + + $client->fill($request->all()); + $client->save(); + return back(); } } diff --git a/app/Http/Requests/ClientPortal/UpdateSettingsRequest.php b/app/Http/Requests/ClientPortal/UpdateClientRequest.php similarity index 90% rename from app/Http/Requests/ClientPortal/UpdateSettingsRequest.php rename to app/Http/Requests/ClientPortal/UpdateClientRequest.php index 5f2f156aad9d..dc785889fc64 100644 --- a/app/Http/Requests/ClientPortal/UpdateSettingsRequest.php +++ b/app/Http/Requests/ClientPortal/UpdateClientRequest.php @@ -14,7 +14,7 @@ namespace App\Http\Requests\ClientPortal; use App\Http\Requests\Request; use App\Utils\Traits\MakesHash; -class UpdateSettingsRequest extends Request +class UpdateClientRequest extends Request { use MakesHash; @@ -33,6 +33,7 @@ class UpdateSettingsRequest extends Request { return [ + 'name' => 'required' ]; } diff --git a/app/Http/Requests/ClientPortal/UpdateContactRequest.php b/app/Http/Requests/ClientPortal/UpdateContactRequest.php index 686a665aeffe..1fbc67cb66c8 100644 --- a/app/Http/Requests/ClientPortal/UpdateContactRequest.php +++ b/app/Http/Requests/ClientPortal/UpdateContactRequest.php @@ -36,7 +36,6 @@ class UpdateContactRequest extends Request return [ 'first_name' => 'required', 'last_name' => 'required', - //'email' => 'required|email', 'email' => 'required|email|unique:client_contacts,email,' . auth()->user()->id, 'password' => 'sometimes|nullable|min:6|confirmed', 'file' => 'sometimes|nullable|max:100000|mimes:png,svg,jpeg,gif,jpg,bmp' diff --git a/app/Models/ClientContact.php b/app/Models/ClientContact.php index c35d2fb846ae..85f9cc223f89 100644 --- a/app/Models/ClientContact.php +++ b/app/Models/ClientContact.php @@ -35,23 +35,23 @@ class ClientContact extends Authenticatable /* Used to authenticate a contact */ protected $guard = 'contact'; - /* Deprecated TODO remove*/ - protected $presenter = 'App\Models\Presenters\ClientContactPresenter'; - - protected $dates = ['deleted_at']; - /* Allow microtime timestamps */ protected $dateFormat = 'Y-m-d H:i:s.u'; + protected $presenter = 'App\Models\Presenters\ClientContactPresenter'; + + protected $dates = [ + 'deleted_at' + ]; + protected $appends = [ 'hashed_id' ]; - public function getHashedIdAttribute() - { - return $this->encodePrimaryKey($this->id); - } - + protected $with = [ + 'client' + ]; + protected $hidden = [ 'password', 'remember_token', @@ -65,7 +65,6 @@ class ClientContact extends Authenticatable 'token', ]; - protected $fillable = [ 'first_name', 'last_name', @@ -77,6 +76,11 @@ class ClientContact extends Authenticatable 'email', ]; + public function getHashedIdAttribute() + { + return $this->encodePrimaryKey($this->id); + } + /**/ public function getRouteKeyName() { diff --git a/resources/views/portal/default/header.blade.php b/resources/views/portal/default/header.blade.php index 5fa6ce425d48..3080a0b03a9e 100644 --- a/resources/views/portal/default/header.blade.php +++ b/resources/views/portal/default/header.blade.php @@ -51,8 +51,6 @@ @lang('texts.profile') - - @lang('texts.settings') diff --git a/resources/views/portal/default/profile/client_information.blade.php b/resources/views/portal/default/profile/client_information.blade.php index 9ab393098c27..9b1d99368350 100644 --- a/resources/views/portal/default/profile/client_information.blade.php +++ b/resources/views/portal/default/profile/client_information.blade.php @@ -6,25 +6,111 @@ {!! Former::horizontal_open() ->id('update_settings') - ->route('client.profile.update_settings', auth()->user()->hashed_id) + ->route('client.profile.edit_client', auth()->user()->hashed_id) ->method('PUT'); !!} + {!! Former::populate(auth()->user()->client) !!} + @csrf
- {{ ctrans('texts.client_information') }} + {{ ctrans('texts.client_information') }}
- + +
+
+ {!! Former::text('name')->label( ctrans('texts.name')) !!} + {!! Former::text('website')->label( ctrans('texts.website')) !!} +
+
+ +
+ +
+
+
+ {{ ctrans('texts.address') }} +
+
+ + {!! Former::text('address1')->label( ctrans('texts.address1')) !!} + {!! Former::text('address2')->label( ctrans('texts.address2')) !!} + {!! Former::text('city')->label( ctrans('texts.city')) !!} + {!! Former::text('state')->label( ctrans('texts.state')) !!} + {!! Former::text('postal_code')->label( ctrans('texts.postal_code')) !!} + + {!! Former::select('country_id') + ->addOption('','') + ->autocomplete('off') + ->label(ctrans('texts.country')) + ->fromQuery($countries, 'name', 'id') !!} + +
+
+
+ + +
+
+
+ {{ ctrans('texts.shipping_address') }} +
+
+ + {!! Former::text('shipping_address1')->label( ctrans('texts.shipping_address1')) !!} + {!! Former::text('shipping_address2')->label( ctrans('texts.shipping_address2')) !!} + {!! Former::text('shipping_city')->label(ctrans('texts.shipping_city')) !!} + {!! Former::text('shipping_state')->label(ctrans('texts.shipping_state')) !!} + {!! Former::text('shipping_postal_code')->label(ctrans('texts.shipping_postal_code')) !!} + + {!! Former::select('shipping_country_id') + ->addOption('','') + ->autocomplete('off') + ->label(ctrans('texts.shipping_country')) + ->fromQuery($countries, 'name', 'id') !!} +
+
+
+ +
+ +
{!! Former::close() !!}
+@push('scripts') + + +@endpush \ No newline at end of file diff --git a/resources/views/portal/default/profile/client_localization.blade.php b/resources/views/portal/default/profile/client_localization.blade.php new file mode 100644 index 000000000000..d094a1599c42 --- /dev/null +++ b/resources/views/portal/default/profile/client_localization.blade.php @@ -0,0 +1,35 @@ +
+ +
+ + {!! Former::framework('TwitterBootstrap4'); !!} + + {!! Former::horizontal_open() + ->id('update_settings') + ->route('client.profile.edit_localization', auth()->user()->hashed_id) + ->method('PUT'); !!} + + {!! Former::populate(auth()->user()->client->settings) !!} + + @csrf + +
+ +
+ {{ ctrans('texts.localization') }} +
+ +
+ + {!! Former::text('timezone_id')->label( ctrans('texts.timezone_id')) !!} + {!! Former::text('language_id')->label( ctrans('texts.language')) !!} + {!! Former::text('date_format')->label( ctrans('texts.date_format')) !!} + {!! Former::text('datetime_format')->label( ctrans('texts.datetime_format')) !!} + + + +
+ + {!! Former::close() !!} + +
diff --git a/resources/views/portal/default/profile/index.blade.php b/resources/views/portal/default/profile/index.blade.php index 7addb21fcf10..9b6cb72b03ed 100644 --- a/resources/views/portal/default/profile/index.blade.php +++ b/resources/views/portal/default/profile/index.blade.php @@ -1,12 +1,12 @@ @extends('portal.default.layouts.master') @push('css') - - - + + + @endpush @section('body')
@@ -31,8 +31,8 @@
-
-
+
+
@if(auth()->user()->avatar) @else @@ -77,8 +77,9 @@ {!! Former::close() !!} @include('portal.default.profile.client_information') -
+@endsection +@section('footer') @endsection \ No newline at end of file diff --git a/routes/client.php b/routes/client.php index fd6d24ece20f..a1419bac8593 100644 --- a/routes/client.php +++ b/routes/client.php @@ -19,6 +19,7 @@ Route::group(['middleware' => ['auth:contact'], 'prefix' => 'client', 'as' => 'c Route::get('profile/{client_contact}/edit', 'ClientPortal\ProfileController@edit')->name('profile.edit'); Route::put('profile/{client_contact}/edit', 'ClientPortal\ProfileController@update')->name('profile.update'); Route::put('profile/{client_contact}/edit_client', 'ClientPortal\ProfileController@updateClient')->name('profile.edit_client'); + Route::put('profile/{client_contact}/localization', 'ClientPortal\ProfileController@updateClientLocalization')->name('profile.edit_localization'); Route::post('document', 'ClientPortal\DocumentController@store')->name('document.store'); Route::delete('document', 'ClientPortal\DocumentController@destroy')->name('document.destroy');