Retort - a reaction-style plugin for Discourse

Yeah fair.

Useful feedback, thanks.

Something that I would like to see, especially if you’re using the Like system as the model for much of the functionality being added, is a notification feature.

I would see this operating in the same way as notifications currently work for Likes. i.e. it would be a good idea to implement the logic that stops you being notified about every Like unless time has passed between Likes.

If my post attracts a retort I should receive a message telling me who reacted and with which emoji. I wouldn’t expect a notification for different retorts from the same user - unless significant time had passed between each different retort.

1 Like

Badges based on retorts would also be neat :slight_smile:


I’ve found that lots of folks can be a troll once in a while… Maybe they’re just having a rough day. Discourse has tons of tools (flags, re-categorization, move to new topic, editing, hiding, convert to PM) to manage posts and replies… Interesting that folks using all of these tools would feel easily editing retorts is unnecessary.

1 Like

That’d be great. That way we can remove the “bugged/translated” reactions that some people add as a result of translating the page using builtin translation tools in the browser (as mentioned in a previous report).


After recent Discourse upgrade, I’m seeing only undefined in text instead of emoji in all retort reactions, both new and historic.

We’ve adjusted color and position CSS for retorts but no other customizing that would relate to this glitch. I’m guessing something just broke with the upgrade to Discourse and needs to be fixed.

Hmm the demo site is running the latest Discourse / Retort and doesn’t seem to be having issues; could you share your customizations, and link me to the site in question?

I just got the same error after updating to v2.2.0.beta8 +63 and the latest retort version (b65cac1).

Here’s an example post showing UNDEFINED instead of the emoji: Possibilities Considering Symbiosis - Future Game - Thrive Community Forum

I think the test site you linked uses a different version as on my site clicking the UNDEFINED button opens a list of people who added reactions (when you are logged in) and on that test side the list of people who reacted is shown on mouse hover.

Edit: I looked through my theme and tried commenting out a few retort related rules but that did nothing.

Same problem for us on a different instance!

yup. :point_up:

@8BIT Can you link me to that post on your instance please? It looks like you have the new ‘retort_standard_count’ setting enabled; is that the case?

1 Like

For now, I’ve reverted a recent change which I believe caused this, and will investigate further. Rebuilding should fix this for now; thanks for the reports everyone. :slight_smile:

1 Like

Can I use this for android?

that’s right, i turned it on just for shits… but, it didn’t do anything.

a bunch of examples in this large thread.

Updating to the latest commit of retort seems to have fixed it.

I’ve got a couple of issues to report - I’ll keep them in separate posts.

Firstly, there seems to be an issue between the Retort plugin and the panel that is displayed by the Insert Date widget.

When the date panel is displayed it will appear to go ‘behind’ posts beneath it.

Before clicking on the date widget

After clicking on the date widget

in case it is not clear from the screen-grab, the orange rectangle is the panel containing the list of timezones for that local time. It clearly goes ‘beneath’ the post below.

To Reproduce

I’m able to reproduce this on our live site under the latest v2.3.0.beta1 +8 with the Retort plugin enabled.

Simply insert a date into a post, then post a reply to the topic so there is at least one post below the post with the date widget on it.


It looks like the issue is down to the Retort plugin setting the z-index of the div.topic-body to 3 in retort.scss.

If I use dev tools so that the style is not applied to .topic-post .topic-body, then the date panel behaves as I’d expect.

Disabling Retorts was not enough as the CSS remains active, so I had to rebuild without the Retorts plugin in my app.yml.

Having rebuilt without the Retorts plugin the date panel is displayed as I would expect.


Any chance at a fix for when you react, it updates position randomly? I’d like to have them act just like Discord reactions; it seems kind of strange they change order constantly.

Can provide screencast if this is confusing.

With this plugin installed my threads won’t load properly. Only the thread titles load when you enter them. I see this in my browser’s console when attempting to enter a thread as well:

jQuery.Deferred exception: _.contains is not a function TypeError: _.contains is not a function
    at i.disabledFor (https://my.domain/assets/plugin-third-party-1d55784558cdcd6124db8591d65834deef8c0a9b8c91a3b36d1b974f222a6c4e.js:1:17654)
    at https://my.domain/assets/plugin-third-party-1d55784558cdcd6124db8591d65834deef8c0a9b8c91a3b36d1b974f222a6c4e.js:1:18638
    at https://my.domain/assets/application-1abdf3d6a5342abca6f161d4a9029f4ef1297449c34b2814446a56ceb8cf85cb.js:73:1207
    at (<anonymous>)
    at c (https://my.domain/assets/application-1abdf3d6a5342abca6f161d4a9029f4ef1297449c34b2814446a56ceb8cf85cb.js:73:1184)
    at t.html (https://my.domain/assets/application-1abdf3d6a5342abca6f161d4a9029f4ef1297449c34b2814446a56ceb8cf85cb.js:71:15014)
    at t.m [as draw] (https://my.domain/assets/application-1abdf3d6a5342abca6f161d4a9029f4ef1297449c34b2814446a56ceb8cf85cb.js:73:2257)
    at t.value (https://my.domain/assets/application-1abdf3d6a5342abca6f161d4a9029f4ef1297449c34b2814446a56ceb8cf85cb.js:73:5322)
    at i (https://my.domain/assets/vendor-0be2caae262101ee53b4a9b626a820c715f41bdbc380301c6827609341ccdb43.js:5:16633)
    at r (https://my.domain/assets/vendor-0be2caae262101ee53b4a9b626a820c715f41bdbc380301c6827609341ccdb43.js:5:16563) undefined
Te.Deferred.exceptionHook @ _ember_jquery-0ae86c6a7527a99c2b9b8a11521273bd9cb4f7d41bc546df081b7ee94f26d9c3.js:3855
f @ _ember_jquery-0ae86c6a7527a99c2b9b8a11521273bd9cb4f7d41bc546df081b7ee94f26d9c3.js:3643
setTimeout (async)
(anonymous) @ _ember_jquery-0ae86c6a7527a99c2b9b8a11521273bd9cb4f7d41bc546df081b7ee94f26d9c3.js:3677
c @ _ember_jquery-0ae86c6a7527a99c2b9b8a11521273bd9cb4f7d41bc546df081b7ee94f26d9c3.js:3305
fireWith @ _ember_jquery-0ae86c6a7527a99c2b9b8a11521273bd9cb4f7d41bc546df081b7ee94f26d9c3.js:3435
fire @ _ember_jquery-0ae86c6a7527a99c2b9b8a11521273bd9cb4f7d41bc546df081b7ee94f26d9c3.js:3443
c @ _ember_jquery-0ae86c6a7527a99c2b9b8a11521273bd9cb4f7d41bc546df081b7ee94f26d9c3.js:3305
fireWith @ _ember_jquery-0ae86c6a7527a99c2b9b8a11521273bd9cb4f7d41bc546df081b7ee94f26d9c3.js:3435
ready @ _ember_jquery-0ae86c6a7527a99c2b9b8a11521273bd9cb4f7d41bc546df081b7ee94f26d9c3.js:3915
f @ _ember_jquery-0ae86c6a7527a99c2b9b8a11521273bd9cb4f7d41bc546df081b7ee94f26d9c3.js:3925
_ember_jquery-0ae86c6a7527a99c2b9b8a11521273bd9cb4f7d41bc546df081b7ee94f26d9c3.js:3864 Uncaught TypeError: _.contains is not a function
    at i.disabledFor (_plugin-third-party-1d55784558cdcd6124db8591d65834deef8c0a9b8c91a3b36d1b974f222a6c4e.js:501)
    at _plugin-third-party-1d55784558cdcd6124db8591d65834deef8c0a9b8c91a3b36d1b974f222a6c4e.js:544
    at _application-1abdf3d6a5342abca6f161d4a9029f4ef1297449c34b2814446a56ceb8cf85cb.js:72229
    at (<anonymous>)
    at c (_application-1abdf3d6a5342abca6f161d4a9029f4ef1297449c34b2814446a56ceb8cf85cb.js:72228)
    at t.html (_application-1abdf3d6a5342abca6f161d4a9029f4ef1297449c34b2814446a56ceb8cf85cb.js:69218)
    at t.m [as draw] (_application-1abdf3d6a5342abca6f161d4a9029f4ef1297449c34b2814446a56ceb8cf85cb.js:72310)
    at t.value (_application-1abdf3d6a5342abca6f161d4a9029f4ef1297449c34b2814446a56ceb8cf85cb.js:72487)
    at i (_vendor-0be2caae262101ee53b4a9b626a820c715f41bdbc380301c6827609341ccdb43.js:18156)
    at r (_vendor-0be2caae262101ee53b4a9b626a820c715f41bdbc380301c6827609341ccdb43.js:18143)

This error first appeared after I installed this plugin:

However, it persisted after I removed it. By process of elimination, I figured out that I will continue to have this error until Retort is removed from my plugin list specifically. Not sure if this is because of a code change related to Retort or because Topic List Previews makes some kind of permanent change that Retort doesn’t like.

1 Like

I also experienced the same. In safe mode it was enough to disable unofficial plugins, but I cannot disable retort from the plugin list.

Is this related to the lodash update @gdpelican?

1 Like