Correção falha na migration da ultima atualização
This commit is contained in:
@@ -23,7 +23,7 @@
|
||||
<%= icone :email, espaco: false %> Notificações e E-mail
|
||||
</h1>
|
||||
<p class="text-gray-400 text-sm mt-0.5">
|
||||
Servidor de e-mail (SMTP) e WhatsApp (Twilio) usados pelo sistema
|
||||
Servidor de e-mail (SMTP) e WhatsApp usados pelo sistema
|
||||
</p>
|
||||
</div>
|
||||
<%= link_to 'Voltar', admin_configuracoes_path,
|
||||
@@ -55,6 +55,7 @@
|
||||
<% ilegiveis = [] %>
|
||||
<% ilegiveis << 'senha do SMTP' if @config.smtp_password_cifrado.present? && @config.smtp_password.blank? %>
|
||||
<% ilegiveis << 'token do Twilio' if @config.twilio_auth_token_cifrado.present? && @config.twilio_auth_token.blank? %>
|
||||
<% ilegiveis << 'token da ponte do WhatsApp' if @config.baileys_token_cifrado.present? && @config.baileys_token.blank? %>
|
||||
<% if ilegiveis.any? %>
|
||||
<div class="p-4 bg-yellow-900/30 border border-yellow-500/40 rounded-xl text-yellow-300 text-sm">
|
||||
Não foi possível ler <%= ilegiveis.to_sentence %> que estava gravada no banco
|
||||
@@ -163,15 +164,15 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<%# ────────────────────────── WHATSAPP / TWILIO ───────────────────────── %>
|
||||
<%# ────────────────────────────── WHATSAPP ───────────────────────────── %>
|
||||
<div class="<%= card %>">
|
||||
<div class="flex items-center justify-between">
|
||||
<div class="flex-1">
|
||||
<h2 class="text-lg font-semibold text-white flex items-center gap-2">
|
||||
<%= icone :telefone, espaco: false %> WhatsApp (Twilio)
|
||||
<%= icone :telefone, espaco: false %> WhatsApp
|
||||
</h2>
|
||||
<p class="text-gray-500 text-xs mt-0.5">
|
||||
Credenciais em Twilio Console → Account Info
|
||||
Escolha quem entrega as mensagens
|
||||
</p>
|
||||
</div>
|
||||
<label class="relative inline-flex items-center cursor-pointer ml-4">
|
||||
@@ -180,6 +181,58 @@
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<%# Provedor: sem este seletor as colunas do Baileys existiam no banco mas
|
||||
não havia como sair do Twilio pela tela — o pareamento por QR ficava
|
||||
inalcançável. %>
|
||||
<div class="grid grid-cols-1 sm:grid-cols-2 gap-6">
|
||||
<div>
|
||||
<%= f.label :whatsapp_provedor, 'Provedor', class: rotulo %>
|
||||
<%= f.select :whatsapp_provedor,
|
||||
[['QR code (grátis, não oficial)', 'baileys'], ['Twilio (oficial, pago)', 'twilio']],
|
||||
{}, class: input %>
|
||||
<p class="<%= ajuda %>">
|
||||
No modo QR o pareamento é feito em
|
||||
<%= link_to 'Notificações → WhatsApp', admin_whatsapp_sessao_path,
|
||||
data: { turbo: false }, class: 'text-[#f97316] underline' %>.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<%= f.label :whatsapp_intervalo_segundos, 'Intervalo entre mensagens (segundos)', class: rotulo %>
|
||||
<%= f.number_field :whatsapp_intervalo_segundos, min: 0, max: 300, class: input %>
|
||||
<p class="<%= ajuda %>">
|
||||
Disparo em rajada é o que mais causa banimento no modo QR. Abaixo de 5s, só com poucos contatos.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<%# ── Modo QR (Baileys) ───────────────────────────────── %>
|
||||
<div class="p-4 bg-[#0a0a0a] border border-white/5 rounded-xl space-y-4">
|
||||
<p class="text-gray-300 text-sm font-semibold">Modo QR code</p>
|
||||
<p class="text-gray-400 text-xs leading-relaxed">
|
||||
⚠️ Canal <strong class="text-amber-300">não oficial</strong> — a Meta pode banir o número.
|
||||
Use um chip dedicado. Em branco, os dois campos abaixo usam
|
||||
<code class="font-mono text-[#f97316]">BAILEYS_URL</code> e
|
||||
<code class="font-mono text-[#f97316]">WHATSAPP_TOKEN</code> do <code class="font-mono">.env</code>.
|
||||
</p>
|
||||
<div class="grid grid-cols-1 sm:grid-cols-2 gap-6">
|
||||
<div>
|
||||
<%= f.label :baileys_url, 'Endereço da ponte', class: rotulo %>
|
||||
<%= f.text_field :baileys_url, class: "#{input} font-mono text-sm",
|
||||
placeholder: ConfiguracaoNotificacao::BAILEYS_URL_PADRAO %>
|
||||
</div>
|
||||
<div>
|
||||
<%= f.label :baileys_token, 'Token da ponte', class: rotulo %>
|
||||
<%= f.password_field :baileys_token, value: nil, autocomplete: 'new-password',
|
||||
class: "#{input} font-mono text-sm",
|
||||
placeholder: @config.baileys_token? ? '•••••••• (em branco mantém o atual)' : 'mesmo valor de WHATSAPP_TOKEN' %>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p class="text-gray-300 text-sm font-semibold pt-2">Modo Twilio</p>
|
||||
<p class="text-gray-500 text-xs -mt-2">Credenciais em Twilio Console → Account Info</p>
|
||||
|
||||
<div class="grid grid-cols-1 sm:grid-cols-2 gap-6">
|
||||
<div>
|
||||
<%= f.label :twilio_account_sid, 'Account SID', class: rotulo %>
|
||||
|
||||
Reference in New Issue
Block a user