Hola. Utilizando el código que @angus ha proporcionado aquí y siguiendo el repositorio de GitHub, he logrado que el campo personalizado de tema funcione correctamente, excepto para habilitar su edición en el área de “encabezado” del compositor (donde normalmente puedes editar, por ejemplo, la categoría; es decir, en el conector edit-topic).
He seguido el código para esto en el repositorio, incluido el código en plugin.rb y otros lugares. Por ejemplo, he añadido la entrada en el archivo connectors/edit-topic/edit-topic-custom-field-container.hbs (como aquí):
{{#if isString}}
{{input
type="text"
value=(readonly fieldValue)
class="topic-custom-field-input large"
input=(action "onChangeField" value="target.value")
placeholder=(i18n 'topic_custom_field.placeholder' field=fieldName)
}}
{{/if}}
Y también el código en topic-custom-field-initializer, de esta manera:
api.registerConnectorClass('edit-topic', 'edit-topic-custom-field-container', {
setupComponent(attrs, component) {
const model = attrs.model;
let props = {
fieldName: fieldName,
fieldValue: model.get(fieldName)
}
component.setProperties(Object.assign(props, fieldInputTypes(fieldType)));
},
actions: {
onChangeField(fieldValue) {
this.set(`buffered.${fieldName}`, fieldValue);
}
}
});
...
api.serializeOnCreate(fieldName);
api.serializeToDraft(fieldName);
api.serializeToTopic(fieldName, `topic.${fieldName}`);
Sin embargo: aunque el resto del código del repositorio funciona para mí (como agregar el valor del campo personalizado en el valor del compositor) y no obtengo errores, no puedo guardar el valor que ingreso en la entrada del conector edit-topic. Si ingreso un valor allí, este desaparece después de guardar la edición.
¿Es posible que se requiera algo más para guardar el valor en el conector edit-topic?