The discussion revolves around Several settings not matching docs and UI bugs in Discourse. ReenigneArcher initially reported several issues:
Missing settings: Voting, Discord webhook, and CSP options
UI bugs: Plugins menu not appearing, Discord chat integration issues, and a category creation button failing
Falco helped resolve some issues, suggesting that AdBlocker was causing problems with the plugins menu and Discord webhook option. Falco also explained that some settings are hidden in certain hosting tiers.
ReenigneArcher expressed interest in adding a WidgetBot crate (Discord integration) to the page but faced difficulties due to Content Security Policy (CSP) restrictions. Falco recommended creating a theme component to securely integrate the third-party JavaScript.
Despite efforts to extend the functionality via a theme component, ReenigneArcher encountered issues. ReenigneArcher also discovered that the Discourse Voting plugin was not included, which was clarified by Moin as not all official plugins are included in all hosting plans.
I am just getting started with Discourse, so perhaps I am missing something obvious although I don’t think so. I am using the hosted instance for open source projects, so don’t know if I have limited options or what is going on.
Discord chat integration “Discord” button has no action, and have odd scrollbar below. No action taken or errors in developer mode when clicking button.
Appears that helped with the plugins menu. Thanks!
The webhooks thing is on the Discord UI, not on Discourse. Maybe they changed how it works?
I know how to obtain the webhook from Discord (it hasn’t changed)… but I need to add the webhook address somewhere in Discourse so it can send to Discord.
Pretty simple bit of code. Adding their source javascript manually doesn’t work.
I’m guessing there’s no alternative way to enable those options?
Perhaps there could be a request process to see if the source is safe and it could be added to hosted instances? Or just allow it since the javascript runs on the client and not the host anyway?
The correct way forward is creating a Customization > Theme component that does what you want there. A component like that can ship the third-party JS as a first-party asset, which is more secure and will be CSP compatible.
<script>
// paste all of https://cdn.jsdelivr.net/npm/@widgetbot/crate@3" contents here
</script>
<script>
new Crate({
server: '299881420891881473',
channel: '355719584830980096',
})
</script>
So, now that my plugins menu is working… it seems that the Discourse Voting is not included. Is this intentional? I imagined that official plugins would all be included by default.