Приветствую. Используя код, который @angus представил здесь, и следуя инструкциям из репозитория GitHub, мне удалось настроить пользовательские поля для тем, которые работают корректно — за исключением возможности редактирования их в области «заголовка» композера (где обычно можно, например, редактировать категорию; то есть в коннекторе edit-topic).
Я следовал коду из репозитория, включая код в файле plugin.rb и другим файлам. Например, я добавил поле ввода в файл connectors/edit-topic/edit-topic-custom-field-container.hbs (как здесь):
{{#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}}
А также код в topic-custom-field-initializer, вот так:
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}`);
Однако: хотя остальной код из репозитория работает у меня (например, добавление значения пользовательского поля в композер), и ошибок нет, я не могу сохранить значение, которое ввожу в поле ввода коннектора edit-topic. Если я ввожу значение там, оно исчезает после сохранения изменений.
Возможно, для сохранения значения в коннекторе edit-topic требуется что-то ещё?