Profile section: Name, website, logo

This commit is contained in:
Benjamin Beganović 2020-09-24 13:44:56 +02:00
parent a9e40aab37
commit e5183dee56
3 changed files with 95 additions and 52 deletions

View File

@ -0,0 +1,46 @@
<?php
namespace App\Http\Livewire\Profile\Settings;
use Livewire\Component;
class NameWebsiteLogo extends Component
{
public $profile;
public $name;
public $website;
public $saved;
public $rules = [
'name' => ['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()]);
}
}

View File

@ -9,59 +9,9 @@
@section('body')
<!-- Basic information: first & last name, e-mail address etc. -->
@livewire('profile.settings.general')
<!-- Name, website & logo -->
<div class="mt-10 sm:mt-6">
<div class="md:grid md:grid-cols-3 md:gap-6">
<div class="md:col-span-1">
<div class="sm:px-0">
<h3 class="text-lg font-medium leading-6 text-gray-900">{{ ctrans('texts.name_website_logo') }}</h3>
<p class="mt-1 text-sm leading-5 text-gray-500">
{{ ctrans('texts.make_sure_use_full_link') }}
</p>
</div>
</div>
<div class="mt-5 md:mt-0 md:col-span-2">
<form action="{{ route('client.profile.edit_client', auth()->user()->hashed_id) }}" method="POST"
id="update_contact">
@csrf
@method('PUT')
<div class="shadow overflow-hidden rounded">
<div class="px-4 py-5 bg-white sm:p-6">
<div class="grid grid-cols-6 gap-6">
<div class="col-span-6 sm:col-span-3">
<label for="street" class="input-label">@lang('texts.name')</label>
<input id="name" class="input w-full" name="name"
value="{{ auth()->user()->client->present()->name }}"/>
@error('name')
<div class="validation validation-fail">
{{ $message }}
</div>
@enderror
</div>
<div class="col-span-6 sm:col-span-3">
<label for="website" class="input-label">@lang('texts.website')</label>
<input id="website" class="input w-full" name="last_name"
value="{{ auth()->user()->client->website }}"/>
@error('website')
<div class="validation validation-fail">
{{ $message }}
</div>
@enderror
</div>
</div>
</div>
<div class="px-4 py-3 bg-gray-50 text-right sm:px-6">
<button class="button button-primary">
@lang('texts.save')
</button>
</div>
</div>
</form>
</div>
</div>
</div>
@livewire('profile.settings.name-website-logo')
<!-- Client personal address -->
<div class="mt-10 sm:mt-6">

View File

@ -0,0 +1,47 @@
<div class="mt-10 sm:mt-6">
<div class="md:grid md:grid-cols-3 md:gap-6">
<div class="md:col-span-1">
<div class="sm:px-0">
<h3 class="text-lg font-medium leading-6 text-gray-900">{{ ctrans('texts.name_website_logo') }}</h3>
<p class="mt-1 text-sm leading-5 text-gray-500">
{{ ctrans('texts.make_sure_use_full_link') }}
</p>
</div>
</div> <!-- End of left side -->
<div class="mt-5 md:mt-0 md:col-span-2">
<form wire:submit.prevent="submit" method="POST" id="update_contact">
@csrf
@method('PUT')
<div class="shadow overflow-hidden rounded">
<div class="px-4 py-5 bg-white sm:p-6">
<div class="grid grid-cols-6 gap-6">
<div class="col-span-6 sm:col-span-3">
<label for="street" class="input-label">{{ ctrans('texts.name') }}</label>
<input id="name" class="input w-full" name="name" wire:model.defer="name" />
@error('name')
<div class="validation validation-fail">
{{ $message }}
</div>
@enderror
</div>
<div class="col-span-6 sm:col-span-3">
<label for="website" class="input-label">{{ ctrans('texts.website') }}</label>
<input id="website" class="input w-full" name="website" wire:model.defer="website" />
@error('website')
<div class="validation validation-fail">
{{ $message }}
</div>
@enderror
</div>
</div>
</div>
<div class="px-4 py-3 bg-gray-50 text-right sm:px-6">
<button class="button button-primary">{{ $saved }}</button>
</div>
</div>
</form>
</div> <!-- End of right side -->
</div>
</div>