Un esempio pratico: integrare più calendari in un servizio di prenotazione sale
In questo capitolo viene presentato il caso di un servizio di prenotazione sale in cui il cittadino seleziona una delle sale messe a disposizione dal Comune
Inserisci e configura un componente Select
All'interno del modulo, inserisci un componente Select.

Una volta inserito, accedi alla sezione "Data" (1) del componente e seleziona la voce "Custom" come "Data source type" (2).

Successivamente, seleziona la voce "Autotype" come "Storage type" (1) e indica l'id come "ID Path" (3)


Configura i luoghi selezionabili
All'interno dei "Custom values" della sezione "Data", inserisci il codice JSON contenente l'identificativo dei calendari da associare al servizio ("id") e il nome delle sale selezionabili nella select ("title")
Devi obbligatoriamente inserire gli id di calendari già presenti in Stanza del Cittadino.
Se non li hai ancora, provvedi a crearli nella sezione dedicata.

{
"id": "b95b5409-2b3d-44d1-b534-12bb99206b1b",
"title": "Castello di Bugliano",
"place_link": "https://www.comune.bugliano.pi.it/Vivere-il-comune/Luoghi/Castello-di-Bugliano",
"cost": 150.00,
},
{
"id": "d35879fc-2047-47ed-8dd1-e317dc6c5cd0",
"title": "Lago di Bugliano",
"place_link": "https://www.comune.bugliano.pi.it/Vivere-il-comune/Luoghi/Lago-di-Bugliano",
"cost": 55.00,
},
{
"id": "f1146129-21b8-4b95-bd55-335f51fc98b8",
"title": "Palazzo Colline della Corte",
"place_link": "https://www.comune.bugliano.pi.it/Vivere-il-comune/Luoghi/Palazzo-Colline-della-Corte",
"cost": 150.00,
},
{
"id": "937634a3-b3cc-40d1-ad52-acf8eab7d5f5",
"title": "Sala dei Quadri",
"place_link": "https://www.comune.bugliano.pi.it/Vivere-il-comune/Luoghi/Sala-dei-Quadri",
"cost": 110.00,
},
{
"id": "44dd69ef-4716-408b-bb15-65283e52f669",
"title": "Villa Girasoli",
"place_link": "https://www.comune.bugliano.pi.it/Vivere-il-comune/Luoghi/Villa-Girasoli",
"cost": 150.00,
}
Inserisci e configura il componente Calendar
Trascina nel modulo un componente di tipo "Calendar".

Una volta inserito, accedi alla sezione "Data" del componente (1) e seleziona la label del componente Select che hai inserito in precedenza alla voce "Redraw On" (2).

Configura la visualizzazione degli slot
Successivamente, alla voce "JavaScript" della sezione "Data" inserisci il codice di verifica dei calendari associati.

if (
data.select_calendar?.id && data.select_calendar?.id !== "" &&
(!component.calendarId || (component.calendarId && component.calendarId[0] !== data.select_calendar.id))
) {
component.calendarId = [data.select_calendar.id]
instance.redraw()
}
console.log(value)
Bonus track: impostare un pagamento
Se il servizio prevede il pagamento di un importo in base alla sala o il luogo selezionato nella Select, inserisci un componente Hidden all'interno del modulo, intitolato "payment_amount"

Una volta inserito, accedi alla sezione "Data" (1) del componente e inserisci nel "Calculated value" il codice JavaScript per recuperare gli importi configurati nella Select (2).
value = data.select_calendar.cost


Last updated
Was this helpful?