separate forms and add validations

This commit is contained in:
Ricard_VE 2024-09-12 16:10:48 +02:00
parent f93742287b
commit 8ef65ce002
7 changed files with 165 additions and 139 deletions

View file

@ -0,0 +1,38 @@
<?php
namespace App\Livewire;
use Livewire\Component;
use App\Models\Habitatge;
use Livewire\Attributes\Validate;
class ConsultaDireccio extends Component
{
public $direccio = null;
protected $messages = [
'direccio.required' => 'El camp és obligatori.',
'direccio.min' => 'El camp ha de tenir al menys 3 caràcters.'
];
public $habitatges;
public $init = 0;
public function render()
{
return view('livewire.consulta-direccio');
}
public function consultaCarrer()
{
$this->validate([
'direccio' => 'required|min:3'
]);
$this->init = 1;
$this->habitatges = Habitatge::where('direccio', 'like', '%'.$this->direccio.'%')->get();
}
public function esborraDireccions()
{
$this->habitatges = null;
$this->init = 0;
}
}

View file

@ -0,0 +1,37 @@
<?php
namespace App\Livewire;
use Livewire\Component;
use App\Models\Habitatge;
use Livewire\Attributes\Validate;
class ConsultaSignatura extends Component
{
public $signatura = null;
protected $messages = [
'signatura.required' => 'El camp és obligatori.',
'signatura.min' => 'El camp ha de tenir al menys 5 caràcters.',
'signatura.regex' => 'El camp ha de contenir /'
];
public $habitatge;
public $init = 0;
public function render()
{
return view('livewire.consulta-signatura');
}
public function consulta()
{
$this->validate([
'signatura' => 'required|min:6|regex:/\//'
]);
$this->init = 1;
$this->habitatge = Habitatge::where('signatura', preg_replace('/\s+/', '', $this->signatura))->first();
}
public function esborraDades()
{
$this->habitatge = null;
$this->init = 0;
}
}

View file

@ -1,46 +0,0 @@
<?php
namespace App\Livewire;
use Livewire\Component;
use App\Models\Habitatge;
use Livewire\Attributes\Validate;
class Consultes extends Component
{
#[Validate('required', message: 'El camp es obligatori')]
#[Validate('min:5', message: 'La signatura a de tenir al menys 5 caracters')]
public $signatura = null;
#[Validate('required', message: 'El camp es obligatori')]
public $direccio = null;
public $habitatge;
public $habitatges;
public $init = 0;
public $initCarrer = 0;
public function render()
{
return view('livewire.consultes');
}
public function consulta()
{
$this->init = 1;
$this->habitatge = Habitatge::where('signatura', $this->signatura)->first();
}
public function consultaCarrer()
{
$this->initCarrer = 1;
$this->habitatges = Habitatge::where('direccio', 'like', '%'.$this->direccio.'%')->get();
}
public function esborraDades()
{
$this->habitatge = null;
$this->init = 0;
}
public function esborraDireccions()
{
$this->habitatges = null;
$this->initCarrer = 0;
}
}

View file

@ -0,0 +1,39 @@
<div class="seccio">
<h3 class="bold">Cerca per direcció:</h3>
<div class="text-explicacio">
Podeu fer la cerca per municipi, còdi postal o carrer (amb o sense número)<br>
Exemples: <span class="semibold">Palma</span> / <span class="semibold">07008</span> /
<span class="semibold">Safareig</span> / <span class="semibold">Safareig, 1</span></span>
</div>
<form wire:submit="consultaCarrer">
<input type="text" placeholder="Mar i Estany, 36" wire:model="direccio">
<button type="submit" class="submit medium">comprova</button>
<div>@error('direccio') {{ $message }} @enderror</div>
</form>
@if ($habitatges && $init == 1)
<button wire:click="esborraDireccions">esborra dades</button>
@endif
@if ($habitatges && $habitatges->isNotEmpty() && $init == 1)
<h4>DADES DEL REGISTRE:</h4>
@foreach ($habitatges as $hab)
<div class="resultats">
<span class="semibold">Signatura:</span> {{$hab->signatura}}<br>
<span class="semibold">Municipi:</span> {{$hab->municipi}}<br>
<span class="semibold">Localitat:</span> {{$hab->localitat}}<br>
@if ($hab->tipus_de_vivenda_turistica)
<span class="semibold">Tipus:</span> {{$hab->tipus_de_vivenda_turistica}}<br>
@elseif($hab->tipus_de_vivenda_turistica_2)
<span class="semibold">Tipus:</span> {{$hab->tipus_de_vivenda_turistica_2}}<br>
@elseif($hab->tipus_de_vivenda_turistica_3)
<span class="semibold">Tipus:</span> {{$hab->tipus_de_vivenda_turistica_3}}<br>
@endif
<span class="semibold">Direcció:</span> {{$hab->direccio}}<br>
<span class="semibold">Explotador:</span> {{$hab->explotador}}
</div>
@endforeach
@else
@if ($init != 0 && $habitatges->isEmpty())
<p class="semibold">No hem trobat el que estàs buscant</p>
@endif
@endif
</div>

View file

@ -0,0 +1,34 @@
<div class="seccio">
<h3 class="bold">Cerca per llicència:</h3>
<div class="text-explicacio">La signatura ha de contenir el tipus d'habitatge (ETVPL, ETV o ETV60), més un número, separat per /<br>
Per exemple: <span class="semibold">ETV/25</span></div>
<form wire:submit="consulta">
<input type="text" placeholder="ETV/25" wire:model="signatura">
<button type="submit" class="submit medium">comprova</button>
<div>@error('signatura') {{ $message }} @enderror</div>
</form>
@if ($habitatge && $init == 1)
<button wire:click="esborraDades">esborra dades</button>
@endif
@if ($habitatge && $init == 1)
<h4>DADES DEL REGISTRE:</h4>
<div class="resultats">
<span class="semibold">Signatura:</span> {{$habitatge->signatura}}<br>
<span class="semibold">Municipi: </span>{{$habitatge->municipi}}<br>
<span class="semibold">Localitat:</span> {{$habitatge->localitat}}<br>
@if ($habitatge->tipus_de_vivenda_turistica)
<span class="semibold">Tipus: </span>{{$habitatge->tipus_de_vivenda_turistica}}<br>
@elseif($habitatge->tipus_de_vivenda_turistica_2)
<span class="semibold">Tipus: </span>{{$habitatge->tipus_de_vivenda_turistica_2}}<br>
@elseif($habitatge->tipus_de_vivenda_turistica_3)
<span class="semibold">Tipus: </span>{{$habitatge->tipus_de_vivenda_turistica_3}}<br>
@endif
<span class="semibold">Direcció: </span>{{$habitatge->direccio}}<br>
<span class="semibold">Explotador: </span>{{$habitatge->explotador}}
</div>
@else
@if ($init != 0)
<p class="semibold">No hem trobat el que estàs buscant</p>
@endif
@endif
</div>

View file

@ -1,91 +0,0 @@
<div class="consulta">
<div class="seccio">
<h3 class="bold">Cerca per llicència:</h3>
<div class="text-explicacio">La signatura ha de contenir el tipus d'habitatge (ETVPL, ETV o ETV60), més un número, separat per /<br>
Per exemple: ETV/25</div>
<form wire:submit="consulta">
<input type="text" placeholder="ETV/25" wire:model="signatura">
<button type="submit" class="submit medium">comprova</button>
<div>@error('signatura') {{ $message }} @enderror</div>
</form>
@if ($habitatge && $init == 1)
<button wire:click="esborraDades">esborra dades</button>
@endif
@if ($habitatge && $init == 1)
<h4>DADES DEL REGISTRE:</h4>
<div class="resultats">
<span class="semibold">Signatura:</span> {{$habitatge->signatura}}<br>
<span class="semibold">Municipi: </span>{{$habitatge->municipi}}<br>
<span class="semibold">Localitat:</span> {{$habitatge->localitat}}<br>
@if ($habitatge->tipus_de_vivenda_turistica)
<span class="semibold">Tipus: </span>{{$habitatge->tipus_de_vivenda_turistica}}<br>
@elseif($habitatge->tipus_de_vivenda_turistica_2)
<span class="semibold">Tipus: </span>{{$habitatge->tipus_de_vivenda_turistica_2}}<br>
@elseif($habitatge->tipus_de_vivenda_turistica_3)
<span class="semibold">Tipus: </span>{{$habitatge->tipus_de_vivenda_turistica_3}}<br>
@endif
<span class="semibold">Direcció: </span>{{$habitatge->direccio}}<br>
<span class="semibold">Explotador: </span>{{$habitatge->explotador}}
</div>
@else
@if ($init != 0)
<p class="semibold">No hem trobat el que estàs buscant</p>
@endif
@endif
</div>
<div class="seccio">
<h3 class="bold">Cerca per direcció:</h3>
<div class="text-explicacio">
Podeu fer la cerca per municipi, còdi postal o carrer (amb o sense número)<br>
Exemples: <span class="semibold">Palma / 07008 / Safareig / Safareig, 1</span>
</div>
<!-- <div class="text-explicacio-detall">
* troba tots els registres al municipi de Palma<br>
** troba tots els registres amb CP 07008<br>
*** troba tots els registres al carrer Safareig<br>
**** troba el registre concret al carrer Safareig 1<br>
</div> -->
<form wire:submit="consultaCarrer">
<input type="text" placeholder="Mar i Estany, 36" wire:model="direccio">
<button type="submit" class="submit medium">comprova</button>
<div>@error('carrer') {{ $message }} @enderror</div>
</form>
@if ($habitatges && $initCarrer == 1)
<button wire:click="esborraDireccions">esborra dades</button>
@endif
@if ($habitatges && $initCarrer == 1)
<h4>DADES DEL REGISTRE:</h4>
@foreach ($habitatges as $hab)
<div class="resultats">
<span class="semibold">Signatura:</span> {{$hab->signatura}}<br>
<span class="semibold">Municipi:</span> {{$hab->municipi}}<br>
<span class="semibold">Localitat:</span> {{$hab->localitat}}<br>
@if ($hab->tipus_de_vivenda_turistica)
<span class="semibold">Tipus:</span> {{$hab->tipus_de_vivenda_turistica}}<br>
@elseif($hab->tipus_de_vivenda_turistica_2)
<span class="semibold">Tipus:</span> {{$hab->tipus_de_vivenda_turistica_2}}<br>
@elseif($hab->tipus_de_vivenda_turistica_3)
<span class="semibold">Tipus:</span> {{$hab->tipus_de_vivenda_turistica_3}}<br>
@endif
<span class="semibold">Direcció:</span> {{$hab->direccio}}<br>
<span class="semibold">Explotador:</span> {{$hab->explotador}}
</div>
@endforeach
@else
@if ($initCarrer != 0)
<p class="semibold">No hem trobat el que estàs buscant</p>
@endif
@endif
</div>
<div class="seccio llegenda">
<p>
El Consell habilitat el correu <a href="mailto:inspeccioturisme@conselldemallorca.net" class="semibold">inspeccioturisme@conselldemallorca.net</a>
per fer-hi arribar possibles casos de frau; recomanam fer-ne ús, encara que sigui per molestar.
</p>
<p>
Així mateix, volem recordar que el lloguer vacacional està totalment prohibit en vivendes plurifamiliars (blocs de
pisos) a tot el municipi de Palma, tot i que és sabut que loferta il·legal està descontrolada.
</p>
</div>
</div>

View file

@ -15,8 +15,23 @@
ciutadania la informació sobre les llicències d'allotjaments turístics
actualment en vigor a l'illa de Mallorca.
</div>
<livewire:consultes/>
<div class="consulta">
<livewire:consulta-signatura/>
<livewire:consulta-direccio/>
<div class="seccio llegenda">
<p>
El Consell habilitat el correu <a href="mailto:inspeccioturisme@conselldemallorca.net" class="semibold">inspeccioturisme@conselldemallorca.net</a>
per fer-hi arribar possibles casos de frau; recomanam fer-ne ús, encara que sigui per molestar.
</p>
<p>
Així mateix, volem recordar que el lloguer vacacional està totalment prohibit en vivendes plurifamiliars (blocs de
pisos) a tot el municipi de Palma, tot i que és sabut que loferta il·legal està descontrolada.
</p>
</div>
</div>
<livewire:grafics/>