Estou trabalhando em um plugin que atribuirá uma tag padrão a novos tópicos criados em uma categoria.
O código abaixo “funciona” se eu inserir nomes de tags separados por “|”, então “tag1|tag2” funciona. (Mal posso acreditar! Mas estou divagando.)
<h3>{{i18n 'topic_default_tag.title'}}</h3>
<section class='field default-tag'>
<div class="default-tag">
<label>
{{input type="list" value=category.custom_fields.default_tag }}
{{popup-input-tip validation=tagValidation}}
{{i18n 'topic_default_tag.default_tag'}}
</label>
</div>
</section>
O que eu gostaria agora é ter um seletor de tags adequado, em vez de uma string não validada. Parece que o código abaixo deveria funcionar:
<h3>{{i18n 'topic_default_tag.title'}}</h3>
<section class='field default-tag'>
<div class="default-tag">
<label>
{{tag-chooser tags=category.custom_fields.default_tag tabindex="4" categoryId=category.id}}
{{popup-input-tip validation=tagValidation}}
{{i18n 'topic_default_tag.default_tag'}}
</label>
</div>
</section>
Mas não funciona. A base do meu problema é que tenho quase nenhuma ideia de como a mágica do Handlebars funciona. Tipo, eu acho que a primeira seção funciona porque está magicamente pegando o nome do campo de default-tag em <section class='field default-tag'>, mas isso foi sorte. ![]()
Quando uso o tag-chooser, as tags são passadas para o Rails como um array, que ele descarta antes que eu possa convertê-las em uma string delimitada por | para inserir no CategoryCustomField. Com o {{input type=list...}}, posso inserir a string delimitada por | manualmente e funciona perfeitamente. Preciso de alguma mágica do Ember para converter o array em uma string no lado do Ember?
Talvez eu precise fazer algo como What's the best approach to access category specific settings??
EDIT: Para adicionar tags antes que o webhook seja chamado, use after_create em vez de DiscourseEvent.on(:post_created). O Rails faz sentido para mim agora, mas Ember, Javascript e CSS, não tanto.