I profili

Modulo di esempio: hellotypes, proprietà editabledata.

hasprofile:true su una proprietà è il meccanismo più vantaggioso del framework: un solo booleano, e la proprietà guadagna il salvataggio/caricamento di configurazione con nome in database, senza scrivere una sola riga di codice.

"editabledata": {
  "permission": 2,
  "hasprofile": true,
  "e": { "..." }
}

Ciò che questo flag attiva, interamente automatico

  • Salvataggio/caricamento: un client invia PS/PL con un nome di profilo; il server costruisce un’istantanea limitata alle proprietà hasprofile:true e la scrive in database (o la rilegge). Già gestito genericamente dal framework — nulla da scrivere nel modulo.
  • Lato interfaccia: la finestra “Impostazioni” di un modulo elenca solo le proprietà hasprofile:true; la barra di caricamento/salvataggio di profilo appare solo se ne esiste almeno una.
  • Due liste di valori, anch’esse automatiche: ogni modulo ha la propria lista di profili salvati (vuota all’inizio, alimentata a ogni salvataggio), e il controller mantiene inoltre una lista aggregata per tipo di modulo, usata dal selettore di profilo dell’interfaccia.
Quasi tutti i moduli reali lo usano

È il meccanismo standard per qualsiasi configurazione che l’utente deve poter nominare, ritrovare e ricaricare — impostazioni di camera, parametri di sequenza, profilo di autofocus… Un modulo che espone impostazioni personalizzate dovrebbe quasi sempre avere almeno una proprietà hasprofile:true.