|
|
<div>
|
|
|
<div class="sm:mx-auto sm:w-full sm:max-w-md">
|
|
|
<a href="{{ route('home') }}">
|
|
|
<x-logo class="w-32 h-auto mx-auto text-green-600" />
|
|
|
</a>
|
|
|
|
|
|
<h2 class="mt-6 text-3xl font-extrabold text-center text-gray-900 leading-9">
|
|
|
{{ __('user_categories.individual') }}
|
|
|
</h2>
|
|
|
|
|
|
<p class="mt-2 text-sm text-center text-gray-600 leading-5 max-w">
|
|
|
Ou
|
|
|
<a href="{{ route('login') }}" class="font-medium text-green-600 hover:text-green-500 lowercase focus:outline-none focus:underline transition ease-in-out duration-150">
|
|
|
{{ __('auth.login') }}
|
|
|
</a>
|
|
|
</p>
|
|
|
</div>
|
|
|
|
|
|
<form wire:submit.prevent="register" class="max-w-7xl mx-auto">
|
|
|
|
|
|
<div class="flex flex-wrap pt-8 border-t border-gray-200 mt-8">
|
|
|
|
|
|
<div class="lg:pr-6 w-full lg:w-1/3">
|
|
|
|
|
|
<h2 class="text-2xl font-medium">
|
|
|
Informações pessoais
|
|
|
</h2>
|
|
|
|
|
|
<p class="text-gray-400 mt-2">
|
|
|
Conte-nos um pouco sobre você.
|
|
|
</p>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="lg:pl-6 w-full lg:w-2/3">
|
|
|
<div class="px-4 py-8 bg-white shadow sm:rounded-lg sm:px-10 space-y-6">
|
|
|
|
|
|
<x-input.group label="{{ __('associates.attributes.name') }}" for="name" :error="$errors->first('name')">
|
|
|
<x-input.text wire:model.lazy="name" id="name" :state="$errors->has('name') ? false : null" required autofocus />
|
|
|
</x-input.group>
|
|
|
|
|
|
<x-input.group label="{{ __('associates.attributes.birthday') }}" for="birthday" :error="$errors->first('birthday')">
|
|
|
<x-input.text wire:model.lazy="birthday" id="birthday" mask="date" placeholder="dd/mm/yyyy" :state="$errors->has('birthday') ? false : null" required />
|
|
|
</x-input.group>
|
|
|
|
|
|
<x-input.radio-group label="{{ __('associates.attributes.profile.gender') }}" :inline="true" :error="$errors->first('profile.gender')">
|
|
|
<x-input.radio wire:model.lazy="profile.gender" name="profile-gender" label="Homem" value="male" :state="$errors->has('profile.gender') ? false : null" required />
|
|
|
<x-input.radio wire:model.lazy="profile.gender" name="profile-gender" label="Mulher" value="female" :state="$errors->has('profile.gender') ? false : null" required />
|
|
|
<x-input.radio wire:model.lazy="profile.gender" name="profile-gender" label="Outro" value="other" :state="$errors->has('profile.gender') ? false : null" required />
|
|
|
</x-input-radio-group>
|
|
|
|
|
|
<div class="flex flex-wrap -mx-2">
|
|
|
|
|
|
<x-input.group class="px-2 w-full lg:w-1/2 mt-6 lg:mt-0" label="{{ __('associates.attributes.document.type') }}" for="document-type" :error="$errors->first('document.type')">
|
|
|
<x-input.select wire:model.lazy="document.type" id="document-type">
|
|
|
<option value="cpf">CPF</option>
|
|
|
<option value="identity">Carteira de Identidade</option>
|
|
|
<option value="passport">Passaporte</option>
|
|
|
</x-input.select>
|
|
|
</x-input.group>
|
|
|
|
|
|
<x-input.group class="px-2 w-full lg:w-1/2 mt-6 lg:mt-0" label="{{ __('associates.attributes.document.number') }}" for="document-number" :error="$errors->first('document.number')">
|
|
|
<x-input.text wire:model.lazy="document.number" id="document-number" :state="$errors->has('document.number') ? false : null" required />
|
|
|
</x-input.group>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<x-input.group label="{{ __('associates.attributes.profile.occupation') }}" for="profile-occupation" :error="$errors->first('profile.occupation')">
|
|
|
<x-input.text wire:model.lazy="profile.occupation" id="profile-occupation" placeholder="Profissão ou ocupação principal" :state="$errors->has('profile.occupation') ? false : null" required />
|
|
|
</x-input.group>
|
|
|
|
|
|
<x-input.radio-group label="{{ __('associates.attributes.profile.scholarity') }}" :error="$errors->first('profile.scholarity')">
|
|
|
<x-input.radio wire:model.lazy="profile.scholarity" name="profile-scholarity" label="Ensino fundamental" value="primary-school" :state="$errors->has('profile.scholarity') ? false : null" required />
|
|
|
<x-input.radio wire:model.lazy="profile.scholarity" name="profile-scholarity" label="Ensino médio" value="high-school" :state="$errors->has('profile.scholarity') ? false : null" required />
|
|
|
<x-input.radio wire:model.lazy="profile.scholarity" name="profile-scholarity" label="Graduação" value="bachelor" :state="$errors->has('profile.scholarity') ? false : null" required />
|
|
|
<x-input.radio wire:model.lazy="profile.scholarity" name="profile-scholarity" label="Mestrado" value="master" :state="$errors->has('profile.scholarity') ? false : null" required />
|
|
|
<x-input.radio wire:model.lazy="profile.scholarity" name="profile-scholarity" label="Doutorado" value="phd" :state="$errors->has('profile.scholarity') ? false : null" required />
|
|
|
</x-input.radio-group>
|
|
|
|
|
|
</div>
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="flex flex-wrap pt-8 border-t border-gray-200 mt-8">
|
|
|
|
|
|
<div class="lg:pr-6 w-full lg:w-1/3">
|
|
|
|
|
|
<h2 class="text-2xl font-medium">
|
|
|
Dados de contato
|
|
|
</h2>
|
|
|
|
|
|
<p class="text-gray-400 mt-2">
|
|
|
Endereço e meios de comunicação digitais.
|
|
|
</p>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="lg:pl-6 w-full lg:w-2/3">
|
|
|
<div class="px-4 py-8 bg-white shadow sm:rounded-lg sm:px-10 space-y-6">
|
|
|
|
|
|
<div x-data="{}" class="flex flex-wrap -mx-2">
|
|
|
|
|
|
<x-input.group class="px-2 w-full lg:w-1/2" label="{{ __('associates.attributes.address.country') }}" for="address-country" :error="$errors->first('address.country')">
|
|
|
<x-input.select wire:model="address.country" @input="document.getElementById('address-postcode').dispatchEvent(new Event('refreshMask', {detail: {mask: null}}))" id="address-country" :state="$errors->has('address.country') ? false : null" required>
|
|
|
@foreach (\App\Country::all() as $country)
|
|
|
<option value="{{ $country->code }}">{{ __('countries.' . $country->code) }}</option>
|
|
|
@endforeach
|
|
|
</x-input.select>
|
|
|
</x-input.group>
|
|
|
|
|
|
@if ($address['country'] === 'BR')
|
|
|
<x-input.group class="px-2 w-full lg:w-1/2" label="{{ __('associates.attributes.address.postcode') }}" for="address-postcode-masked" :error="$errors->first('address.postcode')">
|
|
|
<x-input.text wire:model.lazy="address.postcode" id="address-postcode-masked" mask="postcode" :state="$errors->has('address.postcode') ? false : null" required />
|
|
|
</x-input.group>
|
|
|
@else
|
|
|
<x-input.group class="px-2 w-full lg:w-1/2" label="{{ __('associates.attributes.address.postcode') }}" for="address-postcode" :error="$errors->first('address.postcode')">
|
|
|
<x-input.text wire:model.lazy="address.postcode" id="address-postcode" :state="$errors->has('address.postcode') ? false : null" required />
|
|
|
</x-input.group>
|
|
|
@endif
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<x-input.group label="{{ __('associates.attributes.address.street') }}" for="address-street" :error="$errors->first('address.street')">
|
|
|
<x-input.text wire:model.lazy="address.street" wire:target="address.postcode" wire:loading.attr="disabled" id="address-street" :state="$errors->has('address.street') ? false : null" required />
|
|
|
</x-input.group>
|
|
|
|
|
|
<div class="flex flex-wrap -mx-2">
|
|
|
|
|
|
<x-input.group x-data="{}" class="px-2 w-full lg:w-1/4 mt-6 lg:mt-0" label="{{ __('associates.attributes.address.number') }}" for="address-number" :error="$errors->first('address.number')">
|
|
|
<x-input.text wire:model.lazy="address.number" @address-autofilled.window="$refs.addressNumber.focus()" x-ref="addressNumber" id="address-number" :state="$errors->has('address.number') ? false : null" required />
|
|
|
</x-input.group>
|
|
|
|
|
|
<x-input.group class="px-2 w-full lg:w-1/4" label="{{ __('associates.attributes.address.complement') }}" for="address-complement" :error="$errors->first('address.complement')">
|
|
|
<x-input.text wire:model.lazy="address.complement" id="address-complement" :state="$errors->has('address.complement') ? false : null" />
|
|
|
</x-input.group>
|
|
|
|
|
|
<x-input.group class="px-2 w-full lg:w-1/2 mt-6 lg:mt-0" label="{{ __('associates.attributes.address.neighbourhood') }}" for="address-neighbourhood" :error="$errors->first('address.neighbourhood')">
|
|
|
<x-input.text wire:model.lazy="address.neighbourhood" wire:target="address.postcode" wire:loading.attr="disabled" id="address-neighbourhood" :state="$errors->has('address.neighbourhood') ? false : null" required />
|
|
|
</x-input.group>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="flex flex-wrap -mx-2">
|
|
|
|
|
|
<x-input.group class="px-2 w-full lg:w-1/2" label="{{ __('associates.attributes.address.city') }}" for="address-city" :error="$errors->first('address.city')">
|
|
|
<x-input.text wire:model.lazy="address.city" wire:target="address.postcode" wire:loading.attr="disabled" id="address-city" :state="$errors->has('address.city') ? false : null" required />
|
|
|
</x-input.group>
|
|
|
|
|
|
<x-input.group class="px-2 w-full lg:w-1/2 mt-6 lg:mt-0" label="{{ __('associates.attributes.address.state') }}" for="address-state" :error="$errors->first('address.state')">
|
|
|
<x-input.text wire:model.lazy="address.state" wire:target="address.postcode" wire:loading.attr="disabled" id="address-state" :state="$errors->has('address.state') ? false : null" required />
|
|
|
</x-input.group>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<x-input.group label="{{ __('associates.attributes.profile.phone') }}" for="profile-phone" :error="$errors->first('profile.phone')">
|
|
|
<x-input.text wire:model.lazy="profile.phone" id="profile-phone" mask="phone" :state="$errors->has('profile.phone') ? false : null" required />
|
|
|
</x-input.group>
|
|
|
|
|
|
<x-input.group label="{{ __('associates.attributes.email') }}" for="email" :error="$errors->first('email')">
|
|
|
<x-input.email wire:model.lazy="email" id="email" :state="$errors->has('email') ? false : null" required />
|
|
|
</x-input.group>
|
|
|
|
|
|
<x-input.group label="{{ __('associates.attributes.profile.secondary_emails') }}" for="profile-secondary_emails" :error="$errors->first('profile.secondary_emails')">
|
|
|
<x-input.textarea wire:model.lazy="profile.secondary_emails" id="profile-secondary_emails" :state="$errors->has('profile.secondary_emails') ? false : null" />
|
|
|
</x-input.group>
|
|
|
|
|
|
<x-input.group label="{{ __('associates.attributes.profile.website') }}" for="profile-website" :error="$errors->first('profile.website')">
|
|
|
<x-input.text wire:model.lazy="profile.website" id="profile-website" :state="$errors->has('profile.website') ? false : null" />
|
|
|
</x-input.group>
|
|
|
|
|
|
<x-input.group label="{{ __('associates.attributes.profile.social') }}" for="profile-social" :error="$errors->first('profile.social')">
|
|
|
<x-input.text wire:model.lazy="profile.social" id="profile-social" :state="$errors->has('profile.social') ? false : null" />
|
|
|
</x-input.group>
|
|
|
|
|
|
</div>
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="flex flex-wrap pt-8 border-t border-gray-200 mt-8">
|
|
|
|
|
|
<div class="lg:pr-6 w-full lg:w-1/3">
|
|
|
|
|
|
<h2 class="text-2xl font-medium">
|
|
|
Dados de contato
|
|
|
</h2>
|
|
|
|
|
|
<p class="text-gray-400 mt-2">
|
|
|
Endereço e meios de comunicação digitais.
|
|
|
</p>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="lg:pl-6 w-full lg:w-2/3">
|
|
|
<div class="px-4 py-8 bg-white shadow sm:rounded-lg sm:px-10 space-y-6">
|
|
|
|
|
|
<x-input.radio-group label="{{ __('associates.attributes.discussion') }}" :error="$errors->first('discussion')">
|
|
|
<x-input.radio wire:model.lazy="discussion" name="discussion" label="Participar da discussão (todos os e-mails)" value="all" :state="$errors->has('discussion') ? false : null" required />
|
|
|
<x-input.radio wire:model.lazy="discussion" name="discussion" label="Compilação da discussão (1 e-mail por dia)" value="daily" :state="$errors->has('discussion') ? false : null" required />
|
|
|
<x-input.radio wire:model.lazy="discussion" name="discussion" label="Notificações ocasionais da diretoria" value="occasional" :state="$errors->has('discussion') ? false : null" required />
|
|
|
</x-input.radio-group>
|
|
|
|
|
|
<x-input.group label="{{ __('associates.attributes.profile.expectation') }}" for="profile-expectation" :error="$errors->first('profile.expectation')">
|
|
|
<x-input.textarea wire:model.lazy="profile.expectation" id="profile-expectation" placeholder="O que você espera que UCB consiga ou faça: atuação, conquistas, pautas (descreva brevemente)?" :state="$errors->has('profile.expectation') ? false : null" />
|
|
|
</x-input.group>
|
|
|
|
|
|
<x-input.group label="{{ __('associates.attributes.profile.bike_use') }}" for="profile-bike_use" :error="$errors->first('profile.bike_use')">
|
|
|
<x-input.textarea wire:model.lazy="profile.bike_use" id="profile-bike_use" placeholder="Por quê e para quê usa a bicicleta? Descreva brevemente" :state="$errors->has('profile.bike_use') ? false : null" />
|
|
|
</x-input.group>
|
|
|
|
|
|
<x-input.group label="{{ __('associates.attributes.profile.org_participation') }}" for="profile-org_participation" :error="$errors->first('profile.org_participation')">
|
|
|
<x-input.textarea wire:model.lazy="profile.bike_use" id="profile-bike_use" placeholder="Você participa em associações ou coletivos de ciclistas que promovem a bicicleta? Quais? " :state="$errors->has('profile.bike_use') ? false : null" />
|
|
|
</x-input.group>
|
|
|
|
|
|
<x-input.group label="{{ __('associates.attributes.profile.bike_activities') }}" for="profile-bike_activities" :error="$errors->first('profile.bike_activities')">
|
|
|
<x-input.textarea wire:model.lazy="profile.bike_use" id="profile-bike_use" placeholder="Realiza atividades ou participa para promover a bicicleta (descreva brevemente)?" :state="$errors->has('profile.bike_use') ? false : null" />
|
|
|
</x-input.group>
|
|
|
|
|
|
<x-input.radio-group
|
|
|
x-data="{ custom_contribution: false }"
|
|
|
@click="custom_contribution = false"
|
|
|
label="{{ __('associates.attributes.contribution') }}"
|
|
|
for="contribution"
|
|
|
:error="$errors->first('contribution')"
|
|
|
>
|
|
|
|
|
|
<x-input.radio wire:model.lazy="contribution" name="contribution" label="Não desejo contribuir" value="0" :state="$errors->has('contribution') ? false : null" required />
|
|
|
<x-input.radio wire:model.lazy="contribution" name="contribution" label="R$ 15,00" value="15" :state="$errors->has('contribution') ? false : null" required />
|
|
|
<x-input.radio wire:model.lazy="contribution" name="contribution" label="R$ 30,00" value="30" :state="$errors->has('contribution') ? false : null" required />
|
|
|
<x-input.radio wire:model.lazy="contribution" name="contribution" label="R$ 60,00" value="60" :state="$errors->has('contribution') ? false : null" required />
|
|
|
<x-input.radio wire:model.lazy="contribution" name="contribution" label="R$ 120,00" value="120" :state="$errors->has('contribution') ? false : null" required />
|
|
|
|
|
|
<x-input.radio
|
|
|
name="contribution"
|
|
|
@click="
|
|
|
$event.stopPropagation();
|
|
|
custom_contribution = true;
|
|
|
$nextTick(() => { $refs.customContributionInput.focus() });
|
|
|
"
|
|
|
:state="$errors->has('contribution') ? false : null"
|
|
|
required
|
|
|
>
|
|
|
|
|
|
<span class="text-sm">Outro</span>
|
|
|
|
|
|
<x-input.text
|
|
|
wire:model.lazy="contribution"
|
|
|
x-ref="customContributionInput"
|
|
|
@click="$event.stopPropagation();"
|
|
|
x-show="custom_contribution"
|
|
|
id="contribution-other"
|
|
|
mask="currency"
|
|
|
:state="$errors->has('contribution') ? false : null"
|
|
|
/>
|
|
|
|
|
|
</x-input.radio>
|
|
|
|
|
|
</x-input.radio-group>
|
|
|
|
|
|
</div>
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="flex flex-wrap pt-8 border-t border-gray-200 mt-8">
|
|
|
|
|
|
<div class="lg:pr-6 w-full lg:w-1/3">
|
|
|
|
|
|
<h2 class="text-2xl font-medium">
|
|
|
Declaração de consentimento
|
|
|
</h2>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="lg:pl-6 w-full lg:w-2/3">
|
|
|
|
|
|
<p>
|
|
|
Declaro que:
|
|
|
</p>
|
|
|
|
|
|
<ol class="list-decimal list-outside leading-relaxed pl-4 mt-3 space-y-2">
|
|
|
<li>Apoio e concordo com as Finalidades, Princípios, Objetivos e demais termos do Estatuto da UCB (http://www.uniaodeciclistas.org.br/sobre-a-ucb/estatuto/);</li>
|
|
|
<li>Confirmarei e/ou atualizará estes dados cadastrais uma vez por ano;</li>
|
|
|
<li>Caso solicitado, prestarei informações adicionais e/ou enviará documentos para a Diretoria da UCB.</li>
|
|
|
</ol>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="flex justify-center pt-12">
|
|
|
<span class="block w-full lg:w-auto rounded-md shadow-sm">
|
|
|
<button type="submit" class="flex justify-center w-full px-16 py-2 text-sm font-medium text-white bg-green-600 border border-transparent rounded-md hover:bg-green-500 focus:outline-none focus:border-green-700 focus:shadow-outline-green active:bg-green-700 transition duration-150 ease-in-out">
|
|
|
{{ __('auth.sign-up') }}
|
|
|
</button>
|
|
|
</span>
|
|
|
</div>
|
|
|
|
|
|
</form>
|
|
|
|
|
|
</div>
|