fix(templates+uploads): botones del catálogo global + subida de KML/KMZ/SHP
1) global-template-manager.blade.php: los botones "Nuevo" e "Importar CSV/Excel" estaban dentro de <x-slot name="header">, que Blade renderiza FUERA del componente Livewire (lo pinta el layout), por lo que sus wire:click no se ataban. Movidos al cuerpo del componente; el slot solo lleva el título. 2) config/livewire.php: creado para sobrescribir temporary_file_upload.rules. Por defecto Livewire aplica "file|mimes:png,jpeg,...|max:12288" al fichero temporal, lo que hace que .kml/.kmz/.shp/.dwg/.zip rebote con "The uploadFile failed to upload". Ahora el paso temporal solo exige file y max 50 MB; los componentes ya validan mime/tamaño reales antes de guardar. Nota: en el servidor hay que `php artisan config:clear && php artisan config:cache` para que el nuevo config/livewire.php se aplique. Suite 91 passing. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,20 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Config parcial de Livewire — solo sobrescribimos la subida temporal.
|
||||||
|
* Por defecto Livewire aplica reglas restrictivas ("file|mimes:png,jpeg,...|max:12288")
|
||||||
|
* que rechazan .kml/.kmz/.shp/.dwg/.zip con "The uploadFile failed to upload".
|
||||||
|
* Aquí subimos el límite a 50 MB y quitamos el filtro de mime en el paso temporal
|
||||||
|
* (los componentes ya validan mime/tamaño reales antes de guardar).
|
||||||
|
*/
|
||||||
|
return [
|
||||||
|
'temporary_file_upload' => [
|
||||||
|
'disk' => null,
|
||||||
|
'rules' => ['required', 'file', 'max:51200'],
|
||||||
|
'directory' => null,
|
||||||
|
'middleware' => null,
|
||||||
|
'preview_mimes' => ['png', 'gif', 'bmp', 'svg', 'wav', 'mp4', 'mov', 'avi', 'wmv', 'mp3', 'm4a', 'jpg', 'jpeg', 'mpga', 'webp', 'wma'],
|
||||||
|
'max_upload_time' => 5,
|
||||||
|
'cleanup' => true,
|
||||||
|
],
|
||||||
|
];
|
||||||
@@ -1,26 +1,28 @@
|
|||||||
<div>
|
<div>
|
||||||
|
{{-- Cabecera de la página, en el layout --}}
|
||||||
<x-slot name="header">
|
<x-slot name="header">
|
||||||
{{-- ── Cabecera ─────────────────────────────────────────────────────────── --}}
|
<h2 class="font-semibold text-xl text-gray-800 leading-tight">
|
||||||
<div class="flex justify-between items-center mb-4">
|
📋 {{ __('Inspection templates') }}
|
||||||
<div>
|
</h2>
|
||||||
<h1 class="text-xl font-bold">📋 {{ __('Inspection templates') }}</h1>
|
|
||||||
<p class="text-sm text-base-content/60">{{ __('Global catalogue, reusable across all projects.') }}</p>
|
|
||||||
</div>
|
|
||||||
<div class="flex items-center gap-4">
|
|
||||||
<button wire:click="openImportFileModal" class="btn btn-outline btn-sm gap-1" title="{{ __('Import from CSV/Excel') }}">
|
|
||||||
<x-heroicon-o-document-arrow-up class="w-4 h-4" />
|
|
||||||
{{ __('Import CSV/Excel') }}
|
|
||||||
</button>
|
|
||||||
<button wire:click="newTemplate" class="btn btn-primary btn-sm">
|
|
||||||
{{ __('New template') }}
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</x-slot>
|
</x-slot>
|
||||||
|
|
||||||
<div class="py-12">
|
<div class="py-12">
|
||||||
<div class="max-w-7xl mx-auto sm:px-6 lg:px-8">
|
<div class="max-w-7xl mx-auto sm:px-6 lg:px-8">
|
||||||
<div class="bg-white rounded-lg shadow p-6">
|
<div class="bg-white rounded-lg shadow p-6">
|
||||||
|
{{-- Botones DENTRO del componente Livewire (para que wire:click funcione) --}}
|
||||||
|
<div class="flex justify-between items-center mb-4">
|
||||||
|
<p class="text-sm text-base-content/60">{{ __('Global catalogue, reusable across all projects.') }}</p>
|
||||||
|
<div class="flex items-center gap-2">
|
||||||
|
<button type="button" wire:click="openImportFileModal" class="btn btn-outline btn-sm gap-1" title="{{ __('Import from CSV/Excel') }}">
|
||||||
|
<x-heroicon-o-document-arrow-up class="w-4 h-4" />
|
||||||
|
{{ __('Import CSV/Excel') }}
|
||||||
|
</button>
|
||||||
|
<button type="button" wire:click="newTemplate" class="btn btn-primary btn-sm">
|
||||||
|
{{ __('New template') }}
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
@if($showForm)
|
@if($showForm)
|
||||||
<form wire:submit.prevent="saveTemplate" class="border p-4 rounded mb-6 bg-base-200">
|
<form wire:submit.prevent="saveTemplate" class="border p-4 rounded mb-6 bg-base-200">
|
||||||
<table class="w-full mb-8">
|
<table class="w-full mb-8">
|
||||||
|
|||||||
Reference in New Issue
Block a user