Segnaposto

Molti campi di immissione di testo possono utilizzare i letterali template di ES2015 per sostituire dinamicamente parti del testo con determinati valori. All’interno di tali letterali template è possibile utilizzare segnaposto predefiniti.

Ad esempio: Hello ${params.world}

Per utilizzare un segnaposto all'interno di un URL (ad es. l'attributo href di un link nel widget di testo), utilizzare $$ per codificare il valore in formato URL (ad es. $${property.customer_name}).

L'escape tramite $$ non è necessario nei campi di testo che di solito contengono un URL (ad es. HREF nella colonna del widget tabella). In quel caso l'escape viene eseguito automaticamente.

Globali

Sono disponibili i seguenti segnaposto globali:

  • ${sessionId}

  • ${params.<urlParam>}
    Questo segnaposto legge l’URL nella barra degli indirizzi del browser e cerca i parametri dell’URL, ad es. #/dashboards/details?closeOnBackgroundClick=true

  • ${now}
    Visualizza la data e l’ora correnti secondo il formato personalizzato della lingua
    impostata nel browser, come specificato su http://momentjs.com/docs/#/displaying/
    , ad esempio ${now.format('DD.MM.YYYY HH:mm')}

  • ${today}
    Stampa il giorno corrente secondo il formato personalizzato della lingua
    impostata nel browser, come specificato su http://momentjs.com/docs/#/displaying/
    , ad esempio: ${today.format('DD.MM.YYYY')}

  • ${filterMatrix.<column>} /${filterMatrix.<propertyId>}
    Visualizza un elenco separato da virgole dei valori selezionati dalla matrice di filtro.
    Ad es.
    ${filterMatrix.department}-> Sviluppo, Gestione
    ${filterMatrix[76]}-> Ginevra, Zurigo

    Con spazio dopo la virgola:
    ${filterMatrix.department.replaceAll(',', ', ')}-> Sviluppo, Gestione

  • ${params.widget12345filter}
    Stampa il valore di filtro corrente della tabella con id 12345.

  • ${language}, ${locale},${languages}
    Lingua attualmente in uso, impostazioni locali o lingue disponibili.

Oggetto / riga corrente

Se è disponibile un oggetto SKOOR (ad es. in una riga della tabella), è possibile utilizzare i seguenti segnaposto:

  • ${object.id}

  • ${object.deviceId}

  • ${object.name}

  • ${object.type}

  • ${object.subType}

  • ${object.state} / ${object.state.lightbulb(<size>)} /${object.state.format()}
    dimensione in px

  • ${object.properties[<propertyId>]} /${object.properties.<propertyKey>}
    È possibile stampare l'indice dell'enumerazione della proprietà al posto del valore utilizzando enumIndex (ad es. ${object.properties.foo.enumIndex})

  • ${object.parameters.<parameterKey>}

  • ${object.values.<valueKey>}
    le chiavi dei valori sono disponibili qui

È inoltre possibile accedere alle colonne di una fonte dati esterna:

  • ${columns[index]}
    indice a partire da 0

  • ${columns.<columnName>} / ${columns ['<columnName>']} 

Parametro Interval

I parametri di intervallo possono essere formattati utilizzando i formati di MomentJS (http://momentjs.com/docs/#/displaying/).

  • ${interval(params.<name>).begin.format(<format>)}

  • ${interval(params.<name>).end.format(<format>)}

Esempi:

  • #/dashboards/123?interval=2018-11

    • ${interval(params.interval) → 01.11.2018 - 30.11.2018 (l'output dipende dalle impostazioni locali correnti)

    • ${interval(params.interval).begin} -> 01.11.2018 (il risultato dipende dalle impostazioni locali correnti)

    • ${interval(params.interval).end} -> 30.11.2018 (il risultato dipende dalle impostazioni locali correnti)

    • ${interval(params.interval).begin.format('DD.MM.YYYY')} -> 01.11.2018

    • ${interval(params.interval).end.format('DD.MM.YYYY')} -> 30.11.2018

    • ${interval(params.interval).begin.format('YYYY')} -> 2018

  • #/dashboards/123?interval=2018-W5

    • ${interval(params.interval).begin.format('DD.MM.YYYY')} -> 29.01.2018

    • ${interval(params.interval).end.format('DD.MM.YYYY')} -> 04/02/2018

Ulteriori informazioni sugli intervalli

  • ${interval(params.interval).begin.weekday(0).format('')} -> Ottiene il primo giorno feriale dell'inizio dell'intervallo

  • ${interval(params.interval).begin.subtract(12, 'm').format('')} -> Sottrai 12 mesi dall'inizio dell'intervallo

Valori predefiniti

Se un valore segnaposto non è definito (ad es. manca un parametro URL obbligatorio), è possibile impostare un valore predefinito utilizzando l'operatore logico OR ||.

Esempi:

  • ${param.name || 'no name given'} -> Nessun nome specificato

  • ${interval(params.interval || '2019-01')} -> 01.11.2018 - 30.11.2018 (l'output dipende dalle impostazioni locali correnti)

  • ${params.interval || 'BETWEEN(2021,2025)'} → 2021 - 2025 (se nel selettore di date sono consentiti intervalli)

  • $(time(params.time || moment())} -> 22.01.2020 13:31

Espressioni

Nei widget grafico e tabella, i valori possono essere calcolati utilizzando delle espressioni.

Esempi:

  • Table widget: Subtract 25 from a SKOOR object value as ${utils.formatNumber(object.values.Temperature - 25)}

  • Chart widget: Divide two values using their column names as ${utils.formatNumber(columns["Incidents"] / columns["Transactions"], 3)}
    -> arrotonda il risultato a 3 cifre dopo la virgola

Stile delle celle della tabella in base al contenuto

È possibile utilizzare i segnaposto per impostare l'attributo "class" in base al valore della cella.

In questo modo il nome della classe CSS viene impostato su "negative" o "positive" a seconda del valore della cella. Ciò può quindi essere utilizzato nel modulo Dashboard per formattare il valore di conseguenza: