Come gestire al meglio i campi personalizzati, le impostazioni predefinite e i log delle impostazioni di categoria

Sì, questo è complicato. Suppongo che la maggior parte dei plugin non incontri questo problema perché il loro ‘default’ per l’impostazione della categoria è un valore nullo.

Avevi un’idea per una modifica dell’API principale che potrebbe aiutare a migliorare la situazione?

Totalmente non testato, ma penso che potremmo riuscire a fare qualcosa in questo momento utilizzando un campo di input HTML grezzo (nota la input minuscola invece del componente \u003cInput a doppio binding di Ember).

<input
  value={{or category.custom_fields.my_field "valore predefinito"}}
  {{on "change" this.updateMyFieldValue}}
/>

Con questa strategia, abbiamo il controllo su come i valori vengono letti/scritti nell’istanza del modello. Quindi, se un valore viene impostato sul valore predefinito nell’interfaccia utente, possiamo scriverlo come ‘null’ nei campi personalizzati:

@action
updateMyFieldValue(event){
  let newValue = event.target.value;
  if(newValue === "valore predefinito"){
    newValue = null;
  }

  this.category.set("custom_fields.my_field", newValue);
}

(e quindi rimuoveresti la configurazione del valore predefinito che hai descritto in (1) dell’OP)