How to filter topics appearing in the embed?

Hello @eviltrout, I noticed that the topic list includes unlisted, closed, archived topics. I guess these should not be taken into account in the list. Given:

 <d-topics-list discourse-url="https://discourse.example" per-page="5" category="11"></d-topics-list>

Or is there a filter to only keep open topics?

2 Likes

You should be able to use status="open" for that restriction.

12 Likes

Is there any documentation showing what arguments are available for each of the linked filter options?

For example,

implies that I should also be able to use status="noreplies" or status="solved" as they are options exposed from the UI.

But I think they are being ignored as invalid options, as the results are identical with/without the argument (likewise when filtering to status=unsolved vs status=solved, which should be opposites).

Alternatively, if there’s a different way to pass in custom search terms I would be OK with that - I tried https://discourse.getdbt.com/embed/topics?template=complete&top_period=all&search="status%3Anoreplies" (with the colon encoded and unencoded) but got no results using that approach.

Note that I’m embedding the iframe directly instead of using the <d-topics-list> placeholder element because we ran into this problem:

I don’t think this is the cause of the issue though, given that the imported JS is just building the iframe URL.

2 Likes

This feature has a different parameter list than what search uses. Take a look at the controller code to check the existing parameters.

2 Likes

OK I had a poke around in embed_controller.rb and it looks like when the topic query is built, it only takes into account the allowed parameters in the original post (template, per-page, category, allow-create, tags and top_period):

Which I think makes

a red herring. I will go and open a feature request to allow additional params in this embed. Thanks for the help @Falco :pray:

3 Likes

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.