Open edigiacomo opened 1 year ago
@brancomat ti ho messo tra gli assignees perché questo potrebbe essere visto alla luce di una questione più ampia, come l'uso di una applicazione di backend che permetta la configurazione e autenticazione/autorizzazione, che può avere funzionalità più o meno complesse. Al momento, rimarrei nel campo dello statico (o quantomeno della configurazione a tempo di deploy) ma tenendo in mente eventuali sviluppi futuri.
Al momento, la configurazione globale per tutte le interfacce è definita in https://github.com/ARPA-SIMC/meteotiles/blob/ef204399507dbf50acb8da5ffb4aaaa2bbe97f40/src/settings.js e in parte nello script principale di ogni applicazione.
Quando si vuole testare l'applicazione, può essere necessario modificare il file
settings.js
. Stessa cosa può essere necessaria se, ad esempio, si vuole modificare l'URL del tile server (TILE_SERVER_URL
).Per migliorare il deploy e il riuso, si potrebbe pensare ad un sistema di sovrascrittura dei parametri di configurazione (e lasciare in
settings.js
i default) e/o passare i parametri all'interfaccia.Il passaggio dei parametri può essere fatto
reftime
,configURL
econfigString
dell'interfaccia "fixed")<script>
(come parametri di una funzione/costruttore)data-*
in un tag predefinito.conf.json
) che, se presente, sovrascrive i default.La soluzione (1) delega al client la definizione dei parametri (con tutti i pro e contro) ma si può anche fissare nel backend e.g. attraverso
mod_rewrite
.Le soluzioni (2) e (3) prevedono comunque la modifica dell'HTML - oppure si deve esternalizzare l'HTML da meteotiles e rendere quest'ultimo una libreria: l'utente crea il suo file HTML e importa la libreria.
La soluzione (4) sarebbe quella meno onerosa ma è la meno flessibile.
Tutte le soluzioni sono compatibili con una gestione lato backend della configurazione: il caso (1) è già stato descritto, nel caso (2) e (3) l'HTML può essere generato server side a partire dalla configurazione della propria applicazione e nel caso (4) il file di configurazione può essere generato a runtime.