As últimas 15 horas foram um pesadelo para mim: ler plugins existentes e código-fonte apenas para obter funcionalidades extremamente básicas e escrever meu primeiro plugin. Preciso de ajuda.
Especificamente, preciso de ajuda apenas para adicionar um novo botão no painel administrativo para cada post (o botão no canto inferior esquerdo). O máximo que consegui fazer foi colocar o botão no mesmo elemento que o widget…
Mas note o ponto de bullet. Isso ocorre porque o que criei não está sendo inserido na ul como deveria. Não tenho a menor ideia de como corrigir isso.

(o div é a minha opção).
Fiz isso com o seguinte código:
import { withPluginApi } from 'discourse/lib/plugin-api';
import showModal from "discourse/lib/show-modal";
export default {
name: 'tl-post-lock',
initialize() {
withPluginApi('0.8.24', function(api) {
const user = api.getCurrentUser()
if(user.trust_level >= api.container.lookup('site-settings:main').tl_lock_minimum) {
// O usuário tem permissão para ver o botão
api.decorateWidget('topic-admin-menu:after', (decorator) => {
// Adiciona o botão ao menu administrativo
return decorator.attach('admin-menu-button', {
icon: 'ban',
fullLabel: 'tl_post_lock.button_label',
action: 'actionTlLock'
})
})
}
})
}
}
Depois disso, não há como fazer com que ele realmente funcione ao clicar. Após o bloco decorateWidget, se eu escrever qualquer forma disso:
![]()
Recebo o seguinte erro completamente inútil, com uma linha e um caractere que nem EXISTEM.
![]()
Junto com um monte de outros erros aleatórios.
Estou perdendo a sanidade. Como faço apenas para adicionar um botão ao painel administrativo no canto inferior esquerdo, para que eu possa executar código quando clicar nele?
