How should I make this email icon nonclickable?
How should I disable this Incoming Email model?
And how to disable this
How should I make this email icon nonclickable?
How should I disable this Incoming Email model?
And how to disable this
Today I Learned that that icon is clickable.
Haha yea, it is, annoying
Btw Happy Birthday
I suspect it’s staff only, just checked on a forum where I don’t have staff, and I cannot click on the icon. (on my phone at least)
Thanks! (though that’s partially timezones, it’s not my birthday here yet )
I have to see this, thanks for telling me about it.
Here It shows a cake icon next to your name haha anyway happy birthday in advance I guess I am the first one to say this
Aa it is only visible to admins so no issues with it.
Anyways, if anyone else like me wants to disable this but can’t find a way here what I did with GPT and it worked great
<script type="text/discourse-plugin" version="0.8">
api.onPageChange((url, title) => {
// Wait for the page to fully load
Ember.run.scheduleOnce('afterRender', function() {
// Find and remove all details elements with class "elided"
var elidedDetailsList = document.querySelectorAll('details.elided');
elidedDetailsList.forEach(function(elidedDetails) {
elidedDetails.remove();
});
});
});
</script>
Hi kynic,
onPageChange
might be a little too broad for usage (and unreliable if you load/update posts).
You can use decorateCookedElement
instead. It’s called for every post-cooked element.
Additionally, here is a way to disable the email indicator. It’s just some hack to not include the HTML. If you are curious, you can see the original code here.
<script type="text/discourse-plugin" version="0.8">
api.reopenWidget("post-meta-data", {
html(attrs) {
if (!attrs.via_email) {
return this._super(attrs);
}
// Do not generate "post-email-indicator" widget.
attrs.via_email = false;
const html = this._super(attrs);
attrs.via_email = true;
return html;
}
})
api.decorateCookedElement((element, helper) => {
if (helper?.getModel().via_email) {
element.querySelector('details.elided').remove();
}
}, { onlyStream: true });
</script>
You could also use CSS only to hide them.
.post-info.via-email,
.cooked details.elided {
display: none;
}
Thanks
I removed the post metadata part as I want this email icon to be shown.
This is what I am using now to remove the content and hide it via CSS just in case.
<script type="text/discourse-plugin" version="0.8">
api.decorateCookedElement((element, helper) => {
if (helper?.getModel().via_email) {
element.querySelector('details.elided').remove();
}
}, { onlyStream: true });
</script>
.cooked details.elided {
display: none;
}
Thank you for this code
You’re welcome
Also, you’re right; only staff can click on the icon! My bad.
Nice work
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.