Files
kreios/docs/URL_PARAMS.md
T

82 lines
3.0 KiB
Markdown

# Parametri URL del configuratore
Il configuratore legge la sua configurazione iniziale esclusivamente dalla query string dell'URL con cui viene caricato `index.html` (tipicamente dentro un `<iframe>`). La logica di parsing/validazione è in [`src/js/communication/UrlParamsParser.js`](../src/js/communication/UrlParamsParser.js), usata da [`Application.start()`](../src/js/Application.js).
Esempio:
```
https://.../index.html?sistema=pvc&type=finestra_2_ante
```
## Parametri obbligatori
| Parametro | Descrizione | Valori ammessi |
|---|---|---|
| `sistema` | Materiale/serramento | `pvc`, `alluminio`, `legno`, `acciaio` |
| `type` | Tipologia di infisso (id modello) | vedi tabella sotto, dipende da `sistema` |
Se uno dei due manca, o `sistema` non è tra i valori ammessi, l'app lancia un errore in fase di avvio (`Application.start()` intercetta l'eccezione, emette `EVENTS.APP_ERROR` e — se l'app gira in iframe — notifica il parent con `configuratore_error` via `postMessage`).
Non ci sono altri parametri opzionali gestiti dall'app: tutto il resto della configurazione (dimensioni, finiture, maniglia, vetro, ecc.) viene impostato dall'utente nell'interfaccia dopo il caricamento.
## Valori validi di `type` per ciascun `sistema`
Ricavati da `src/assets/data/sistemi/<sistema>/modelli.json` (l'elenco effettivo è quel file — questa tabella va aggiornata se i JSON cambiano).
### `sistema=pvc`
- `finestra_anta_fissa`
- `finestra_vasistas`
- `finestra_1_anta`
- `finestra_2_ante`
- `finestra_3_ante`
- `portafinestra_1_anta`
- `portafinestra_2_ante`
- `portafinestra_3_ante`
- `scorrevole_multislide`
- `alzante_scorrevole_hst`
- `portoncino`
- `cassonetto` (variante semplificata, vedi sotto)
### `sistema=alluminio`
- `finestra_anta_fissa`
- `finestra_vasistas`
- `finestra_1_anta`
- `finestra_2_ante`
- `finestra_3_ante`
- `portafinestra_1_anta`
- `portafinestra_2_ante`
- `portafinestra_3_ante`
- `alzante_scorrevole`
- `scorrevole`
- `portoncino`
### `sistema=legno`
- `finestra_anta_fissa`
- `finestra_vasistas`
- `finestra_1_anta`
- `finestra_2_ante`
- `finestra_3_ante`
- `portafinestra_1_anta`
- `portafinestra_2_ante`
- `portafinestra_3_ante`
- `alzante_scorrevole_hst`
- `portoncino`
### `sistema=acciaio`
- `finestra_anta_fissa`
- `finestra_vasistas`
- `finestra_1_anta`
- `finestra_2_ante`
- `finestra_3_ante`
- `portafinestra_1_anta`
- `portafinestra_2_ante`
- `portafinestra_3_ante`
## Caso speciale: `type=cassonetto`
Quando `type=cassonetto`, l'app salta l'inizializzazione di maniglia/finitura interna (non applicabili a un cassonetto) e usa il template menu dedicato `assets/_menu-cassonetto.html` invece di `assets/_menu.html`.
## Comunicazione col parent (non URL, ma correlata)
Se il configuratore è in iframe, oltre ai parametri URL può ricevere messaggi `postMessage` dal parent (gestiti da [`IframeBridge`](../src/js/communication/IframeBridge.js)), es. `{ fn: 'load_configuration', payload }` per precaricare una configurazione salvata. L'origine del parent deve essere in whitelist (`https://www.kreiosinfissi.it`, `https://kreiosinfissi.test`).