++ dopo un'operazione si torna alla pagina di partenza, con i suoi filtri
- Gli elenchi tengono ricerca, filtri e ordinamento nell'indirizzo (#[Url]); la pagina c'era già. - I link verso schede e operazioni (data-ritorno) portano ?da= con la pagina di partenza, o il da già ricevuto: si risale all'origine (elenco -> scheda -> Rientra -> elenco filtrato). - Ritorno::valida accetta solo percorsi interni: niente rimandi esterni. - Trait RicordaRitorno: redirect dopo il salvataggio, Annulla e "Torna indietro" usano la pagina di partenza. Senza da, tutto come prima. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -2,6 +2,7 @@
|
||||
|
||||
namespace App\Livewire\Territori;
|
||||
|
||||
use App\Livewire\Concerns\RicordaRitorno;
|
||||
use Livewire\Component;
|
||||
use Livewire\WithFileUploads;
|
||||
use App\Models\Territorio;
|
||||
@@ -11,6 +12,8 @@ use App\Services\TerritorioThumbnailService;
|
||||
|
||||
class TerritorioCreate extends Component
|
||||
{
|
||||
use RicordaRitorno;
|
||||
|
||||
use WithFileUploads;
|
||||
|
||||
public string $numero = '';
|
||||
@@ -64,7 +67,7 @@ class TerritorioCreate extends Component
|
||||
->log('created');
|
||||
|
||||
session()->flash('success', "Territorio {$territorio->numero} creato.");
|
||||
return redirect()->route('territori.index');
|
||||
return redirect()->to($this->destinazione(route('territori.index')));
|
||||
}
|
||||
|
||||
public function render()
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
namespace App\Livewire\Territori;
|
||||
|
||||
use App\Livewire\Concerns\RicordaRitorno;
|
||||
use Livewire\Component;
|
||||
use Livewire\WithFileUploads;
|
||||
use App\Models\Territorio;
|
||||
@@ -12,6 +13,8 @@ use Illuminate\Support\Facades\Storage;
|
||||
|
||||
class TerritorioEdit extends Component
|
||||
{
|
||||
use RicordaRitorno;
|
||||
|
||||
use WithFileUploads;
|
||||
|
||||
public Territorio $territorio;
|
||||
@@ -82,7 +85,7 @@ class TerritorioEdit extends Component
|
||||
$this->territorio->update($data);
|
||||
|
||||
session()->flash('success', "Territorio {$this->territorio->numero} aggiornato.");
|
||||
return redirect()->route('territori.show', $this->territorio);
|
||||
return redirect()->to($this->destinazione(route('territori.show', $this->territorio)));
|
||||
}
|
||||
|
||||
public function removePdf()
|
||||
|
||||
@@ -4,6 +4,7 @@ namespace App\Livewire\Territori;
|
||||
|
||||
use App\Livewire\Concerns\Avvisa;
|
||||
use Illuminate\Pagination\LengthAwarePaginator;
|
||||
use Livewire\Attributes\Url;
|
||||
use Livewire\Component;
|
||||
use Livewire\WithPagination;
|
||||
use App\Models\Territorio;
|
||||
@@ -15,14 +16,25 @@ class TerritorioIndex extends Component
|
||||
use Avvisa;
|
||||
use WithPagination;
|
||||
|
||||
// Ricerca, filtri e ordinamento stanno nell'indirizzo (#[Url]): tornando
|
||||
// da una scheda o da un'operazione l'elenco si ritrova com'era.
|
||||
#[Url(except: '')]
|
||||
public string $search = '';
|
||||
#[Url(except: '')]
|
||||
public string $filterZona = '';
|
||||
#[Url(except: '')]
|
||||
public string $filterTipologia = '';
|
||||
#[Url(except: '')]
|
||||
public string $filterStato = '';
|
||||
#[Url(except: '')]
|
||||
public string $filterPriorita = '';
|
||||
#[Url(except: '')]
|
||||
public string $filterPdf = '';
|
||||
#[Url(except: '')]
|
||||
public string $filterContenuti = '';
|
||||
#[Url(except: 'numero')]
|
||||
public string $sortField = 'numero';
|
||||
#[Url(except: 'asc')]
|
||||
public string $sortDirection = 'asc';
|
||||
|
||||
protected $queryString = [
|
||||
|
||||
@@ -2,12 +2,15 @@
|
||||
|
||||
namespace App\Livewire\Territori;
|
||||
|
||||
use App\Livewire\Concerns\RicordaRitorno;
|
||||
use Livewire\Component;
|
||||
use App\Models\Territorio;
|
||||
use App\Models\Assegnazione;
|
||||
|
||||
class TerritorioShow extends Component
|
||||
{
|
||||
use RicordaRitorno;
|
||||
|
||||
public Territorio $territorio;
|
||||
|
||||
public function mount(Territorio $territorio)
|
||||
|
||||
Reference in New Issue
Block a user