Confirmar exclusão de publicação – Adicionar caixa de diálogo de confirmação antes de excluir publicações

:information_source: Resumo Um componente de tema leve que solicita confirmação antes de excluir uma postagem
:hammer_and_wrench: Repositório GitHub - scavin/discourse-confirm-delete · GitHub
:question: Guia de Instalação Como instalar um tema ou componente de tema
:open_book: Novo em Temas do Discourse? Guia para iniciantes sobre o uso de Temas do Discourse

Instalar este componente de tema

Estou compartilhando um pequeno componente de tema que adiciona uma etapa de confirmação antes que uma postagem seja excluída.

Por padrão, clicar no botão de exclusão executa imediatamente a ação de exclusão padrão do Discourse. Este componente exibe primeiro o diálogo de confirmação de perigo nativo do Discourse, ajudando a prevenir exclusões acidentais.

O que ele faz?

Quando um usuário clica no botão Excluir em uma postagem, o componente exibe um diálogo de confirmação:

Excluir postagem
Tem certeza de que deseja excluir esta postagem?

As ações disponíveis são:

  • Cancelar — fecha o diálogo sem fazer nada
  • Excluir — continua com a ação de exclusão original do Discourse

Principais Recursos

:white_check_mark: Usa a interface de diálogo nativa do Discourse
:white_check_mark: Usa um botão Excluir vermelho no estilo de perigo
:white_check_mark: Preserva o comportamento de exclusão original do Discourse
:white_check_mark: Não altera verificações de permissão
:white_check_mark: Não modifica o Discourse Core
:white_check_mark: Nenhum plugin necessário
:white_check_mark: Sem jQuery ou window.confirm()
:white_check_mark: Sem simulação de clique no DOM
:white_check_mark: Funciona em desktop e mobile
:white_check_mark: Traduções para inglês e chinês simplificado
:white_check_mark: Outros idiomas recaem para o inglês
:white_check_mark: Administradores podem substituir o texto por meio de traduções de tema

Como funciona

O componente usa as APIs de frontend oficiais do Discourse:

  • apiInitializer
  • o transformador de valor post-menu-buttons
  • o serviço integrado dialog.deleteConfirm()

Ele substitui o componente do botão Excluir do menu da postagem por um pequeno wrapper. Após a confirmação, o wrapper chama a ação original deletePost.

Isso significa que o componente não reimplementa a exclusão, não faz sua própria solicitação de API nem contorna a lógica de autorização existente do Discourse.

Após a instalação:

  1. Abra o componente em Admin → Personalizar → Temas
  2. Adicione-o aos temas onde deve ser habilitado
  3. Atualize a página do tópico
  4. Clique no botão Excluir em uma postagem para testar o diálogo de confirmação

Traduções

O componente atualmente inclui:

  • Inglês (en)
  • Chinês simplificado (zh_CN)

O título do diálogo, a mensagem, o botão Cancelar e o botão Excluir usam todas chaves de tradução de tema. Traduções adicionais são bem-vindas.

Compatibilidade

Projetado para versões atuais do Discourse que usam o menu de postagem Glimmer moderno e a Plugin API.

Espero que este pequeno componente ajude a prevenir exclusões acidentais de postagens. Feedback, relatórios de bugs, traduções e sugestões são bem-vindos! :slight_smile:

6 curtidas