%# Editor de blocos de UM evento em UM canal. O estado vive num array JS; o HTML dos cards é desenhado a partir dele e serializado num hidden ao salvar. Desenhar a partir do estado (em vez de ler o DOM) é o que faz arrastar, remover e reordenar não perderem conteúdo. %> <% outro_canal = @canal == 'email' ? 'whatsapp' : 'email' %>
<%= pluralize(@template.errors.count, 'erro', 'erros') %> encontrado<%= @template.errors.count > 1 ? 's' : '' %>:
Blocos
Arraste para a mensagem — ou clique.
Emojis
Variáveis
Clique num campo da mensagem e depois numa variável para inseri-la ali.
<%# Agrupadas por ORIGEM e sem esconder o que não se aplica: a variável de outro gatilho aparece apagada, com o aviso de que sai em branco. Antes, a tela só listava as 6 do contexto — qualquer outro dado exigia deploy. %> <% @variaveis.each do |origem, itens| %> <% next if itens.empty? %><%= Notificacao::CatalogoVariaveis::ORIGENS[origem] %>
As apagadas (·) não existem neste gatilho e sairiam em branco. <%= link_to 'Criar variável própria', admin_variaveis_path, class: 'text-orange-500 hover:underline' %>.
Mensagem
Arraste um bloco para cá. Sem blocos, o evento continua usando o texto padrão do sistema.
Preview
Com valores de exemplo, renderizado pelo mesmo código do envio.
<%# iframe sandbox: o HTML do e-mail é montado pelo nosso renderizador (que escapa tudo), mas exibir dentro de um sandbox sem scripts evita que os estilos do e-mail vazem para o admin — e vice-versa. %>