Configurazione
Questa pagina descrive in dettaglio tutte le opzioni appConfig di BookingJs: referenziazione, visualizzazione, comportamento, identificazione del cliente e callback.
Panoramica
Le opzioni appConfig controllano direttamente il comportamento di timum e Le consentono di reagire a diversi eventi.
I tre argomenti di init()
init() accetta fino a tre argomenti in quest'ordine:
| Argomento | Descrizione |
|---|---|
appConfig | Oggetto con tutte le opzioni di comportamento: riferimenti, callback, localizzazione, campi del modulo, ecc. (questa pagina) |
muiTheme | Oggetto tema MUI per l'aspetto (PRO, vedi Styling) |
fcConfig | Opzioni FullCalendar – rilevanti solo se calendarFrontend è impostato su fullCalendar (vedi sotto) |
Opzioni di referenziazione
| Opzione | Tipo | Descrizione |
|---|---|---|
ref | string | string[] | Riferimento della/delle risorsa/e. Campo obbligatorio (o tslRefs) |
tslRefs | string | string[] | Riferimenti di appuntamenti specifici |
prdRefs | string | string[] | Riferimenti di prodotti specifici, per il filtraggio |
channelKey | string | Tipo di canale (RESOURCE_PUBLIC, RESOURCE_EXCLUSIVE, ecc.) |
platform | string | Parte piattaforma del riferimento (hardcoded) |
prvUuid | string | Parte UUID del provider del riferimento (hardcoded) |
Opzioni di visualizzazione
| Opzione | Tipo | Descrizione |
|---|---|---|
height | string | Altezza del widget (predefinito: 500px) |
calendarFrontend | string | Modalità di visualizzazione (vedi sotto) |
culture | string | Lingua (de, en, fr, es, it) |
allResourcesOption | boolean | Opzione "Tutte le risorse" per multi-risorsa |
Valori di calendarFrontend
fullCalendar- Vista FullCalendardetailsFullCalendar- FullCalendar con dettagli delle risorsepureListView- Vista elenco puradetailsListView- Vista elenco con dettaglicondensedView- Vista compattadetailsCondensedView- Vista compatta con dettagli
Varianti «details»:
Opzioni di comportamento
| Opzione | Tipo | Descrizione |
|---|---|---|
host | string | URL del server (https://www.timum.de o https://staging.timum.de) |
allowCloseOnBooking | boolean | Vista di conferma chiudibile dopo una prenotazione riuscita |
allowCloseOnCancel | boolean | Vista di annullamento chiudibile |
constrainDialogsToContainer | boolean | Limitare le finestre di dialogo al contenitore (invece che a schermo intero) |
hideTimumFooter | boolean | Nascondere "Powered by timum" (PRO) |
hiddenForAnonymous | boolean | Nascondere il widget in assenza di ID cliente |
sendCustomValuesInMessage | boolean | Inviare i campi personalizzati come messaggio |
Identificazione del cliente
| Opzione | Tipo | Descrizione |
|---|---|---|
pData | object | Identificazione del cliente (platform, personId) |
Opzioni avanzate
| Opzione | Tipo | Descrizione |
|---|---|---|
callbacks | object | Callback di eventi (vedi la pagina Callbacks) |
postMessageTarget | string | URL per gli eventi postMessage (scenario iframe) |
fields | object | Configurazione dei campi del modulo (PRO) |
localization | object | Personalizzazioni del testo (PRO) |
fcConfig: opzioni FullCalendar
Se utilizza fullCalendar o detailsFullCalendar come calendarFrontend, configuri FullCalendar tramite il terzo argomento di init(). Oltre alle opzioni ufficiali di FullCalendar, sono disponibili le seguenti opzioni specifiche di BookingJs:
| Opzione | Tipo | Descrizione |
|---|---|---|
largeView | string | Vista per larghezze schermo superiori a 601px |
smallView | string | Vista per larghezze schermo inferiori a 601px |
useCustomTimumCss | boolean | Impostare su false per disattivare gli override CSS FullCalendar di timum |
timum.init(
{
ref: 'ihre-ressourcen-referenz',
calendarFrontend: 'fullCalendar',
},
undefined,
// Terzo argomento: opzioni FullCalendar
{
largeView: 'dayGridMonth',
smallView: 'listWeek',
}
);
Nota:
Configurazione globale: window.timumBookingConfig
Oltre agli oggetti passati direttamente a init(), BookingJs legge una configurazione globale opzionale dalla pagina host: window.timumBookingConfig. Questo Le consente di personalizzare BookingJs senza modificare il codice di incorporamento stesso – ideale quando lo snippet viene generato da un plugin CMS o da un backend, ma Lei controlla l'HTML circostante.
Ordine di risoluzione
Le configurazioni vengono risolte in quest'ordine – le fonti successive sovrascrivono quelle precedenti, tramite un merge profondo a livello di chiave:
- Valori predefiniti di BookingJs
- appConfig / muiTheme / fcConfig, passati direttamente a init()
- window.timumBookingConfig.appConfig / .muiTheme / .fcConfig – si applica a tutte le istanze nella pagina
- window.timumBookingConfig[rootElId] – si applica solo all'istanza con l'appConfig.rootElId corrispondente
- Parametri URL (priorità massima)
window.timumBookingConfig = {
// Si applica a ogni istanza di BookingJs nella pagina
appConfig: { culture: 'de' },
muiTheme: { palette: { primary: { main: '#337ab7' } } },
// Solo per l'istanza con questo rootElId (ad es. uno snippet di provider channel)
'bookingjs-dd8d32cc-b53b-4ab4-af52-41325000592b': {
appConfig: { height: 700 },
muiTheme: { palette: { primary: { main: '#ff5722' } } },
},
};
Configurare in modo mirato gli snippet di provider channel
Ogni snippet generato nell'interfaccia timum rappresenta un provider channel e contiene già rootElId: "bookingjs-<provider-channel-uuid>" nella sua chiamata init(). Utilizzi esattamente questa chiave in window.timumBookingConfig per configurare un singolo snippet senza modificare il codice generato.
Tempistica:
Componente React:
Esempio completo
timum.init({
// Referenziazione
ref: 'ihre-ressourcen-referenz',
prdRefs: ['besichtigung', 'beratung'],
channelKey: 'RESOURCE_PUBLIC',
// Visualizzazione
height: '600px',
calendarFrontend: 'detailsListView',
culture: 'de',
// Comportamento
allowCloseOnBooking: true,
constrainDialogsToContainer: true,
hideTimumFooter: true,
// Identificazione del cliente
pData: {
platform: 'onoffice',
personId: '12345'
},
// Callbacks
callbacks: {
createBookingSuccessful: ({ timeslot, data }) => {
console.log('Buchung erfolgreich:', timeslot);
// Analytics, redirect, ecc.
},
fetchingBookablesSucceeded: ({ bookables }) => {
console.log('Termine geladen:', bookables);
}
}
});
