-
Notifications
You must be signed in to change notification settings - Fork 11.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[NEW] Heavy weight threading (now called Discussions)- with minor model impact #11803
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
@@ -7,12 +7,12 @@ import { RocketChat } from 'meteor/rocketchat:lib'; | |||
* to race conditions: If multiple updates occur, the current state will be updated | |||
* only if the new state of the thread room is really newer. | |||
*/ | |||
Object.assign(RocketChat.models.Messages, { | |||
Object.assign(Messages, { | |||
refreshThreadMetadata(linkMessageId) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@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:
c
orp
) => 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