element-hq / element-web

A glossy Matrix collaboration client for the web.
https://element.io
GNU Affero General Public License v3.0
11.23k stars 2k forks source link

Hierarchies of rooms (aka nested rooms) #3843

Closed ara4n closed 3 years ago

ara4n commented 7 years ago

The ability to nest rooms within one another could be useful for Communities (https://github.com/vector-im/riot-web/issues/2454). Unsure precisely how these would behave (beyond being a tree-like hierarchy in the Left Panel), but perhaps:

I'm sort of thinking you could have:

#techteam:wherever.com
`- #devs:wherever.com
  `- #frontend-team:wherever.com
  `- #backend-team:wherever.com
`- #qa:wherever.com
`- #ops:wherever.com

or something - and the hierarchy would be shown in both the Directory and the LeftPanel (although unclear how you'd handle ordering in the LeftPanel in terms of bubbling active rooms to the top of the list).

This is a separate concern to Communities though, as you could have these even without Communities.

turt2live commented 7 years ago

Personal opinion: If auto-join is chosen, the option to selectively leave a subset of rooms would be preferred. Consider the following case:

#matrix:matrix.org
`- #matrix-dev:matrix.org
`- #matrix-spam:matrix.org
`- #matrix-python-sdk:matrix.org
`- #dendrite:matrix.org
   `- #dendrite-dev:matrix.org
   `- #dendrite-spam:matrix.org

Assuming all of those rooms exist, that's a lot of rooms that a non-developer wouldn't care about. And even then, autojoining *-spam rooms might be undesirable. Possibly some mechanic for autojoining some, but not others under a parent?

Mikaela commented 7 years ago

I think this should be somehow doable with the room name, because there are IRC networks such as:

There are also cases such as Pirate Party Finland where I have named mostly all rooms to begin with PIR - so I can find them from the room list (https://github.com/vector-im/riot-meta/issues/91). Currently I have some PPFI rooms under favourites (33) and those that don't concern me so directly under rooms (128).

This is less of a problem at IRC as PirateIRC mainly has only channels related to different Pirate Parties and probably most of the IRC clients sort everything under servers, but I have seven IRC networks at Matrix.

PPFI has at least 22 Matrix rooms which names I have changed and that are relayed to Slack. Slack again does make it easy to see what are PPFI channels as they have their own teams, but that again requires separate login and if someone happens to upload something at Slack, IRC users won't be able to see it without logging into Slack and Slack doesn't go very well with our principles of transparency.

Another issue we have is that those 22 rooms include national room, national Pirate Youth room, national Rainbow Pirates room and four regional groups and I think curious user coming to the national main room might not be interested in force-joining to rooms of election regions that are far from them and entirely unrelated for them.

In case that arranging rooms under hierarchies won't be done with room names, I hope that you will make it possible to do with PL50 which is given by matrix-appservice-irc ops syncing or people running IRC bridges will have more work as people start requesting PL100 for it.

It seems that I talked mostly about PPFI, I hope that you were at least a little interested in it or this comment gave other value to you. In addition to PPFI, I am also seeing rooms from project/groups:

yangm97 commented 7 years ago

@Mikaela I think you could add the idea of an organisation to the namespace thing. For instance, members of dendrite:matrix.org have shared permissions across all #dendrite-*:matrix.org rooms. Also, only admins from this org should be able to use this namespace (for obvious reasons).

heyakyra commented 7 years ago

Seems related to #5259

colttt commented 4 years ago

any updates or plans for this nice feature?

KyleFN commented 3 years ago

Looks like this is the WIP https://github.com/matrix-org/matrix-doc/pull/1772

t3chguy commented 3 years ago

This is fixed by Spaces landing in Beta in next Release