Estou escrevendo um plugin para estender a funcionalidade de distintivos. Quando o botão “salvar” é pressionado na página de distintivos do administrador, quero executar algum código adicional.
Javascript do Discourse:
Hbs do Discourse:
Meu código discourse/plugins/discourse-badge-extension/assets/javascripts/discourse/initializers/modify-admin-badges-show-controller.js:
import { withPluginApi } from 'discourse/lib/plugin-api';
export default {
name: 'modify-admin-badges-show',
initialize() {
withPluginApi('0.8', api => {
api.modifyClass('controller:admin-badges/show', {
pluginId: 'discourse-badge-extension',
actions: {
save() {
console.log("Custom pre-save logic triggered");
alert("Pre-save logic");
this._super(...arguments); // Call the original save method
console.log("Post-save logic triggered");
alert("Post-save logic");
},
}
});
alert("Hello! I am an alert box!!");
});
}
};
É um inicializador.
- A caixa de alerta
"Hello! I am an alert box!!"é acionada, indicando que o código está sendo executado ao recarregar. - Nem as linhas
console.lognem os alertas são executados ao salvar, indicando que a substituição não está funcionando? - o nome do controller não gera erro
controller:admin-badges/show(mas adicionar intencionalmente um erro de digitação o faz, sugerindo que estou visando um controller real)
Deve ser fácil de reproduzir, já que é apenas um inicializador. O que estou fazendo de errado???