Topic list tabs for user-customizeable saved filters

On some forums with a large variety of content, users will be most interested in topics that fall into a subset of the categories or tags available. When this becomes the rule, rather than the exception, forum admins can configure the home page to be the category listing rather than the /latest page. But then users must choose which door to go down - and they may be interested in seeing a listing from multiple categories at once.

A few topics have been posted about this in the past:

The basic idea is to add a few features that can help admins and intermediate-to-advanced users of a site like this create custom topic list views to so they can easily browse the content they are interested in at any given time.

Two alternative approaches are described below:

  1. Create Custom Filter modal to add new Topic List Tab(s)
  2. Add Favorites List to the Categories section in User Preferences

Approach #1

Create Custom Filter modal to add new Topic List Tab(s)

Summary of Changes

  1. Add custom filter... option to the Categories drop down.
  2. Click to open a Create Custom Filter modal
  3. Custom Filter Modal allows multiple categories to be selected and saved as a new tab.
  4. When the tab is selected, a gear icon button is visible to allow re-opening the modal to update the filter or delete it.

Mockups

Custom Filter…

Add custom filter... option to the bottom of the drop down.

Click to open a Create Custom Filter modal

Create Filter Modal

Select multiple categories to be included in topic list.

Name the tab and save it.

Tab Shown on Topic List Page

Tab is on topic list page (unselected)

Select Tab on Topic List Page

When the tab is selected, topics meeting the criteria of the filter are shown.

A gear icon button is visible in the upper right to allow re-opening the modal to update the filter or delete it.

Update or Delete Tab

After clicking the gear icon, filter name and criteria can be updated, or the tab can be removed completely.

Other possible enhancements

  1. Allow admins to share a custom filter tab with everyone
  2. Include tags in custom filter
  3. Create custom filters from a search query

Approach #2

Add Favorites List to the Categories section in User Preferences

Here’s an alternate proposal based on @kegurler’s comment below.

  1. Add a Favorites list to the the Categories section on the User Preferences page.
  2. If any categories are added to this list, a Favorites tab is visible on the topic list page.
    If the list is blank, the tab is not shown.

Using the existing Muted categories list instead to solve this problem is not great because I likely do not want to fully mute categories. Also, on forums with a large number of categories, it’s nicer to choose a small list to call Favorites rather than Mute a large list.

This approach does not allow for adding multiple tabs with different filters, and would not be as open to further enhancements like filtering based on query strings.

But it’s worth considering starting with this approach as it is simpler than the first one and may satisfy a large proportion of the use cases.

Mockups

Add Favorites list to Categories section to User Preferences page

When list is not empty a Favorites tab is visible on the Topic List page

21 إعجابًا

Thanks for raising attention to this issue again :slight_smile:

Your work seem good however I have another idea. Maybe, it is not necessary to have one more tab in homepage (favorites). Users can go to their profile settings and choose which categories they want to see in homepage. Therefore, current category tab will be specialized as user wish.

إعجابَين (2)

Great idea.

Seems like it could be much simpler. And even if there is interest to do more it could be a better way to start building this feature.

I’ve updated the original post with an alternative approach based on @kegurler’s comment.

إعجاب واحد (1)

Has there been any progress on this?

Is there any update on this feature? I think this would be great. My community has been asking me for this feature ever since we’ve moved to Discourse from vB.

I also think it better to use the second approach as the proposed feature will be more consistent with current features - watched, tracked and muted categories.

If any categories are added to this list, a Favorites tab is visible on the topic list page. If the list is blank, the tab is not shown.

I have a different idea for the second step above. I see it as a feature of core Discourse (enabled/disabled by admin) and therefore I think Favorites tab should always be visible and if the list is blank, I suggest to inform/link user to user preferences where it is possible to add favorite categories. The rationale is that it will be more intuitive for users because user preferences might be too hidden for somebody. By this approach we can combine intuitiveness of first approach with consistency to current features of second approach.

I’d prefer to get some input from the team about this feature before diving too deep into any more of the details.

أتفق مع هذا، لكنني أقلق بشأن ما يحدث عند تفضيل 20 فئة. أيضًا، سيكون من الصعب إلى حد ما شرح الفرق بين التفضيل والمشاهدة.

أعتقد أن هذا قد يكون مجالًا لاستكشاف #customization:plugin، وغير متأكد مما إذا كان يجب أن يكون جزءًا من النواة أم لا.

إعجابَين (2)

I like the second approach, but question the need for a favourites field at all. Couldn’t the “Favourites” list just be populated with topics from categories which are watched or tracked?

Similarly on the categories page, and in the various menus which contain lists of categories, “my categories” (those which I’ve expressed interest in, i.e. tracked and watched categories), could be given a greater precedence, like in a separate section at the top.

I think you can make a strong case for having Watched or Tracked be automatically added to this list.

But I would also like to be able to add categories I care more about without adding any more noise.

I don’t want to see every topic in these categories show up with little bubbles in my unread list and I don’t want to get notifications about them. I just want to be able to have a view like Latest that hides things I don’t care as much about.

So why not just Mute the other categories? Well, I’d still like to have access so something like Latest that does show all categories.

That makes complete sense.

3 إعجابات

Thanks for RFC, it’s exactly a feature I’m lacking in Discourse when I start thinking about massive usage.

Approach #2 (as something that visible and editable in user settings) looks consistent with current approach at first but I guess it’s another feature. In User Settings we have several sets of categories to manage user’s track status. But here we’re talking about visibility of topics on home page. I think it’s ok to have a hidden category for home page but have it in “Tracked first post” set.
So I’d not mix these conceptions (I also at first came up with the idea to have additional settings for hiding category in user settings).

I like the idea to manage category visibility on the main page (Approach #1). But setting explicitly visible categories could be pretty limiting. Because it’s automatically leads to the fact that users will be missing all new categories (topics from them). So I’d suggest to exclude categories instead of to include.
Ideally it could be two modes in the dialog: choose what to exclude and choose what to include.

In anyway let me emphasis that from my point of view it’s a very important feature. Not particular implementation but conception of filter topics on main page. Because it’s the most often reasoning against Discourse I heard (“there’re a lot of unrelated stuff on main page!”) from (non-tech) people.

4 إعجابات

Another observation here to consider when refining the proposed solution here:

I think this is problematic.

It would be preferable IMHO if the design encouraged those users could just “star” or “favorite” that one category, instead of having mute all the others.

إعجاب واحد (1)

أقترح بتواضع نهجًا يجمع بين النهج #2 وبعض الأفكار التي أعربت عنها سابقًا، وهذه التعليقات:

النهج #2½

  • إضافة قائمة مفضلة إلى قسم الفئات في صفحة تفضيلات المستخدم
  • إضافة خيار “فئاتي” إلى القائمة المنسدلة للفئات في جميع صفحات قوائم المواضيع
  • هذا يعمل مثل خيار “جميع الفئات”، ولكن يحتوي فقط على مواضيع من الفئات (وفئات، في علامة التبويب الخاصة بالفئات) التي يتم تتبعها أو مراقبتها أو إضافتها إلى المفضلة

أعتقد أن الميزة التي يتمتع بها هذا النهج مقارنة بالنهج #2 هي أنه يحافظ على العلاقة الحالية بين القائمة المنسدلة للفئات والتبويبات الموجودة على اليمين:

في الوقت الحالي، تقوم القائمة المنسدلة للفئات بالتصفية على مستوى الفئة (بين الكل، أو فئة واحدة محددة)، وتقوم التبويبات بتصفية إضافية على مستوى الموضوع (بين حالات المواضيع المختلفة والترتيب).

يقترح النهج #2 إضافة فلتر فئة إلى منطقة تحتوي حاليًا فقط على فلاتر مواضيع، يضع هذا النهج نفس فلتر الفئة في المنطقة التي تحتوي حاليًا على فلاتر الفئات. ربما يمكن تسميتها “المفضلة” بدلاً من “فئاتي” - على الرغم من أنني أعتقد أن “فئاتي” تعبر بشكل أفضل عن أنها تحتوي على فئات تم مراقبتها/تتبعها أيضًا.

ميزة أخرى لهذا النهج هي أنه يسمح لك بالتصفية حسب فئاتك المفضلة في تبويبات أخرى غير “الأحدث”. يقترح النهج #2 بشكل أساسي تبويب “أحدث المفضلة”. يقترح هذا النهج بشكل أساسي نفس تبويب “أحدث المفضلة”، بالإضافة إلى تبويب “جديد المفضلة”، و"غير مقروء المفضلة"، و"فئات المفضلة" و"أعلى المفضلة" - بحيث يمكن للمستخدمين استهلاك فئاتهم المفضلة بأي طريقة يريدون.

نماذج أولية

بافتراض أن المستخدم يقوم بشيء مثل مراقبة #contribute:feature، وتتبع #howto:admins وإضافة Customization > Plugin و Contribute > UX إلى المفضلة

my/latest

my/new

my/unread

my/categories

7 إعجابات

Yep, looks good to me! I think this is an improvement over the original proposal #2.

إعجاب واحد (1)

A few more related topics (original post is too old for me to edit):

Has anyone explored the idea of having a persistent sidebar on the left for category navigation?

More and more, I’m finding myself wishing for something for navigation and filtering the topic list by category that follows the pattern used by Gmail (for labels) or Slack (for channels).

The “Category + Latest” style for the category page is a step in that direction, but once I choose the category, then I lose the sidebar navigation. I also think the style could be super simple, basically just a vertical list (a la Gmail labels or Slack channels):

All categories

Foo
Foo/Red
Foo/Blue
Bar
Bar/Green
Bar/Pink
Baz

All tags

ping
pong
pang

Selecting one category or tag would filter the list accordingly on the right. Selecting “All Categories” would show everything.


In addition, Gmail lets you determine which labels to show by default with the options (Show, Show if Unread or Hide). Similarly, Slack gives you the option to Star a channel, which makes it show up in a shorter, curated list.

I think something similar here would still help too:

Favorites

Categories
Foo
Bar/Pink

Tags
Ping

In addition to having easy navigation to any individual favorited category or tag, it’d be cool if selecting “Favorites” would filter the list to everything that matches any “favorited” category or tag.

If I understand correctly after translation, I did something similar. But I want to say, this plugin is not universal. It may not work. It was created only for one specific site. In the source code of the plugin, hard-coded a specific way, with the website address… But you can look at its code. To do something similar. Remove all unnecessary.

You can try to use another: discourse-sidebar-blocks
And just to write a widget for categories.

$.ajax({
          url: "/categories.json",
          dataType: 'json',
          async: false,
          success: function(data) {....
إعجاب واحد (1)

Yes, but only in mock ups:

3 إعجابات

نرعى تطوير مبرمج للعمل على هذه الميزة كإضافة. يبدو أن النهج الثاني هو المسار الأمثل لنموذج المنتج الأولي (MVP). سأُرفق المواصفات النهائية أدناه استنادًا إلى التصاميم الأولية التي قدمها @mcwumbly و @LeoMcA.

بعض التعديلات:

  • يجب أن يكون مكان التفاعل الرئيسي هو صفحة /categories، حيث يمكن النقر على نجمة لتفضيل فئة معينة. (انظر التصميم المرفق أدناه).
  • لا أعتقد أنه ينبغي إضافتها إلى صفحة الإشعارات. لن يكون للتفضيلات أي تأثير مطلقًا على الإشعارات. لذا اخترت صفحة الواجهة (Interface) بدلاً من ذلك.

المواصفات: تفضيل الفئات

1. إظهار زر نجمة في صفحة /categories

النجوم في صفحة /categories مخفية افتراضيًا، مع إمكانية إظهارها عبر زر تبديل، تمامًا كما نفعل مع المواضيع: 29

الفئات

(يمكن أيضًا استعراض كيف تبدو النجوم محاذاة لليسار في الفئات الأبوية)

الفئات الفرعية

2. إضافة قائمة “المفضلة” إلى صفحة تفضيلات المستخدم : الواجهة.

3. إظهار “المفضلة” في القائمة المنسدلة للفئات

إذا تمت إضافة أي فئات إلى المفضلة، سيظهر تبويب “المفضلة” في صفحة قائمة المواضيع.
إذا كانت القائمة فارغة، فلن يظهر خيار “مفضلاتي”.

بافتراض أن المستخدم يقوم بما يلي: متابعة #contribute:feature، وتتبع #howto:admins، وتفضيل Customization > Plugin و #contribute:ux، فسيظهر له ما يلي (يظهر هنا باسم “فئاتي”):

my/latest

my/new

my/unread

my/categories

(النجوم القابلة للنقر غير موجودة في التصميم المرفق. كما أن هذه الشاشة قد لا تكون قابلة للتنفيذ.)

أهداف إضافية (Stretch goals):

  • يجب سرد الفئات المفضلة في أعلى صفحة /categories وفي القائمة المنسدلة للفئات.
  • يمكن للمستخدم تعيين “فئاتي” كصفحة فهرس افتراضية له.
  • يمكن للمسؤولين تعريف إعداد مسبق لـ “فئاتي”، بحيث يكون المستخدمون المسجلون جاهزين مسبقًا ببعض التفضيلات الافتراضية.
12 إعجابًا

So glad to hear this, @erlend_sh

I have a few thoughts, which may deserve mock ups, but I’m on my phone right now.

  1. We’ve hidden the category drop-down. Would really like a way to have a simple top menu tab for the favorites topic list rather than bringing back the whole drop-down.
  2. Perhaps, rather than a separate categories page for my/categories, the “starred/favorites” categories could be shown together as a separate group at the top of the existing categories page?
  3. Seems like it’d make sense and be consistent to be able to star/unstar a category from the category topic list page (next to the drop-down where I can watch/mute it, etc).
5 إعجابات