[NEW] Heavy weight threading (now called Discussions)- with minor model impact#11803
[NEW] Heavy weight threading (now called Discussions)- with minor model impact#11803mrsimpson wants to merge 108 commits intoRocketChat:developfrom
Conversation
for renaming-safe linking if necessary
…tify/Rocket.Chat into 418-requestless-threading
…tify/Rocket.Chat into #418-requestless-threading
…tify/Rocket.Chat into #418-requestless-threading
|
@thiagosanchz appreciate every reaction to how things shall proceed!
We had this on our fork - and user feedback was one click too much. Therefore, we removed the dialog again. However, with defaulting the users to be invited, this can provide meaningful additional value and / or explanation: Once you start a thread from a private group, all members of the parent have to be defaulted, since else they won't have access to the thread (given the current authorization concept).
We introduced the button in the side panel, since else nobody noticed the new feature. It can be configured to be hidden, since for "experienced" teams, it might look a bit ugly. With respect to the button inside the channel: It's already implemented, isn't it? btw: I also added a slash command, but the version deployed on
This is not only a problem related to threads: If users created semantical channels without threads in the past, the problem was also there for normal channels.
I like that. Where will the channel description of a thread go? Will is simply be concatenated with the parent channel? Other than that: All my questions asked about a month ago are still all unanswered. Is there any though about that as well? Further more: Please let me know what you as maintainers want to implement and what you'd like me to contribute. I'm in general happy to, but I hate working |
|
Reporting a bug found in the demo site at https://threads-qa.rocket.chat. I started a thread from an existing message, then decided it would be better to reply to it. It appears the Reply option isn't available to messages that are part of a thread, so I got into the thread-channel I'd created, and deleted it. In #general, the original message is still displayed as being part of a thread, but you can't enter it because it's not there anymore. |
|
https://threads-qa.rocket.chat is now updated to commit: |
|
I have created a forked branch with working threading https://github.com/cooderzinc/rocket.chat.reply.threading |
@khaledalyawad as far as I've understood from the screenshot, you visualize the thread in the tab bar, including the possibility to reply there. I hope that I'm right guessing that you did not change anything with respect to the backend. @khaledalyawad How did you manage reactivity? P.s.: I don't know what you did to your fork, but I can't get git compare the histories, which would make it possible for myself an others to understand what you changed. |
|
I just added a new property in the message Model called customFields, you can compare this (because I forked from here) abe1f41 to this https://github.com/cooderzinc/rocket.chat.reply.threading |
Ah, then this is a completely alternative implementation of threading which actually has got nothing to do with this PR, right? (I'm not disregarding this, just want to know!) |
|
yes, I agree, I was sharing it here just to let you know that I have tackled the same problem with a different approach |
|
Milestone specified in this issue 0.74.0 is no longer applicable. :-( |
….git; branch 'develop' of github.com:RocketChat/Rocket.Chat into pr/11803-mrsimpson-core/threading
…1803-mrsimpson-core/threading
| */ | ||
| Object.assign(RocketChat.models.Messages, { | ||
| Object.assign(Messages, { | ||
| refreshThreadMetadata(linkMessageId) { |
There was a problem hiding this comment.
@ggazzo can we move these functions to inside models package?
| import s from 'underscore.string'; | ||
|
|
||
| Object.assign(RocketChat.models.Rooms, { | ||
| Object.assign(Rooms, { |
There was a problem hiding this comment.
@ggazzo can we move these functions to inside models package?
|
Alright! It has landed! Big huge kudos to @mrsimpson for initial work! |
|


Addresses #1112 and others
What it does
This PR adds a simple form of threading to Rocket.Chat.
How it's done
Since there has been a lot of discussion about how threads should be implemented in RocketChat, I decided to take a first stab at it which has got the following properties:
Looking at these non-functional requirements, I came up with the following:
corp) => this allows to lifecycle the rooms as usual, e. g. change their privacy, add/remove users and so onparentRoomId. No other change is applied to the models than adding this property to rooms and subscriptions (for performance)I believe, that with only low effort, we can really provide a configurable way of threading (per server and per user) which will satisfy most divergent demands.
I'm looking forward to your feedback - and contributions, if you want (that is directed to you, @vynmera ;) )
Oliver