nioc / xmpp-web

Lightweight web chat client for XMPP server
GNU Affero General Public License v3.0
143 stars 20 forks source link

Pinned MUCs in channel-list? #87

Closed poVoq closed 1 year ago

poVoq commented 1 year ago

Intended behavior

It can be a bit confusing for non-techy users to find the right place on joining first and seeing the unsorted list on channels to join. This is mainly for the guess access.

Solution

There could be an option to pin 1-2 specific MUCs to the top of the list that are highlighted for new users to join.

Thanks!

Alternatives

No response

Priority

Should-have

Users scope

guests

Affected features

rooms list

Pull request

no

nioc commented 1 year ago

Do you think there is a way to flag some rooms server side (through XMPP service discovery or other stuff)?

Alternatively, we can display rooms order by name in guest/rooms page (actually, there is no sorting rules). So XMPP admin can name them smartly for ordering 😉

Ppjet6 commented 1 year ago

So it seems many clients actually do pinning. I've opened https://codeberg.org/joinjabber/support/issues/5 to keep track of progress in the community. There is certainly something to be done in the standard.

If we're only talking about JoinJabber, doing XEP-0469, only usable with bookmarks2, and add default bookmarks for anonymous users, I guess it would work. As XMPP Web seems to be handling bookmarks even for guests.

nioc commented 1 year ago

I'm confused about set default bookmark. Maybe, is should be easier to add a local.js attribute with pinned rooms list?

poVoq commented 1 year ago

Yeah, that is what I actually thought first. Simply add a comma separated list of pinned room JIDs to the xmpp-web config file and do the filtering and sorting client side in JS. Ideally this could include an option to hide all non-pinned/featured rooms unless someone uses the search to find additional chats.

Pinned default bookmarks sounds like a good idea, but AFAIK the room list is a discovery query on the default muc-component and thus has nothing to do with bookmarks directly, right?

Ppjet6 commented 1 year ago

the room list is a discovery query on the default muc-component and thus has nothing to do with bookmarks directly, right?

Currently yeah that's how it's handled in XMPP Web, disco#items, but it also queries for bookmarks anyway.

I'm confused about set default bookmark.

It's possible for the XMPP server to pre-configure a list of bookmarks for accounts. In Prosody for example there is mod_default_bookmarks. It doesn't seem to handle pinned bookmarks but "it shouldn't be too hard".

nioc commented 1 year ago

Ok, I handle a local.js rooms list to pinned in this issue. I will also add a room name order (I feel more comfortable with it than the "first received from server, first displayed"). If you want to explore the bookmark way, I let you open another issue (I think both approaches are interesting).