Dashboard con stats, LayerUpload funcional, PhaseProgress eager-loading, README actualizado

This commit is contained in:
2026-05-09 21:17:36 +02:00
parent 7461bd9124
commit 2a300241f9
6 changed files with 335 additions and 64 deletions
@@ -2,17 +2,55 @@
@if(session()->has('message'))
<div class="alert alert-success mb-2">{{ session('message') }}</div>
@endif
@if(session()->has('error'))
<div class="alert alert-error mb-2">{{ session('error') }}</div>
@endif
<div class="card bg-base-100 shadow-xl">
<div class="card-body">
<h2 class="card-title">Subir capa a proyecto</h2>
<form wire:submit.prevent="upload">
<h2 class="card-title">Subir capa</h2>
<form wire:submit.prevent="upload" class="space-y-4">
<div class="form-control">
<label class="label">Archivo GeoJSON / KML</label>
<input type="file" wire:model="file" class="file-input file-input-bordered" accept=".geojson,.kml,.kmz,.zip" />
@error('file') <span class="text-error">{{ $message }}</span> @enderror
<label class="label">Proyecto</label>
<select wire:model.live="projectId" class="select select-bordered" required>
<option value="">Seleccionar proyecto...</option>
@foreach($projects as $p)
<option value="{{ $p->id }}">{{ $p->name }}</option>
@endforeach
</select>
</div>
<button type="submit" class="btn btn-primary mt-4">Subir</button>
<div class="form-control">
<label class="label">Fase</label>
<select wire:model.live="phaseId" class="select select-bordered" required @if(!$projectId) disabled @endif>
<option value="">Seleccionar fase...</option>
@foreach($phases as $ph)
<option value="{{ $ph->id }}">{{ $ph->name }}</option>
@endforeach
</select>
</div>
<div class="form-control">
<label class="label">Nombre de la capa</label>
<input type="text" wire:model="layerName" class="input input-bordered" placeholder="Ej: Cimentación" required />
@error('layerName') <span class="text-error text-sm">{{ $message }}</span> @enderror
</div>
<div class="form-control">
<label class="label">Color</label>
<input type="color" wire:model="layerColor" class="input input-bordered w-20" />
</div>
<div class="form-control">
<label class="label">Archivo (GeoJSON, KML, KMZ, Shapefile .zip, DWG)</label>
<input type="file" wire:model="uploadFile" class="file-input file-input-bordered" accept=".geojson,.kml,.kmz,.zip,.shp,.dwg" />
@error('uploadFile') <span class="text-error text-sm">{{ $message }}</span> @enderror
</div>
<button type="submit" class="btn btn-primary w-full">
Subir capa
</button>
</form>
</div>
</div>