{"action":"created","issue":{"url":"https://api.github.com/repos/RocketChat/Rocket.Chat/issues/11803","repository_url":"https://api.github.com/repos/RocketChat/Rocket.Chat","labels_url":"https://api.github.com/repos/RocketChat/Rocket.Chat/issues/11803/labels{/name}","comments_url":"https://api.github.com/repos/RocketChat/Rocket.Chat/issues/11803/comments","events_url":"https://api.github.com/repos/RocketChat/Rocket.Chat/issues/11803/events","html_url":"https://github.com/RocketChat/Rocket.Chat/pull/11803","id":351298924,"node_id":"MDExOlB1bGxSZXF1ZXN0MjA4OTMwNTc1","number":11803,"title":"[NEW] Heavy weight threading - with minor model impact","user":{"login":"mrsimpson","id":17176678,"node_id":"MDQ6VXNlcjE3MTc2Njc4","avatar_url":"https://avatars3.githubusercontent.com/u/17176678?v=4","gravatar_id":"","url":"https://api.github.com/users/mrsimpson","html_url":"https://github.com/mrsimpson","followers_url":"https://api.github.com/users/mrsimpson/followers","following_url":"https://api.github.com/users/mrsimpson/following{/other_user}","gists_url":"https://api.github.com/users/mrsimpson/gists{/gist_id}","starred_url":"https://api.github.com/users/mrsimpson/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mrsimpson/subscriptions","organizations_url":"https://api.github.com/users/mrsimpson/orgs","repos_url":"https://api.github.com/users/mrsimpson/repos","events_url":"https://api.github.com/users/mrsimpson/events{/privacy}","received_events_url":"https://api.github.com/users/mrsimpson/received_events","type":"User","site_admin":false},"labels":[{"id":253860229,"node_id":"MDU6TGFiZWwyNTM4NjAyMjk=","url":"https://api.github.com/repos/RocketChat/Rocket.Chat/labels/subj:%20ui/ux","name":"subj: ui/ux","color":"5319e7","default":false}],"state":"open","locked":false,"assignee":{"login":"mrsimpson","id":17176678,"node_id":"MDQ6VXNlcjE3MTc2Njc4","avatar_url":"https://avatars3.githubusercontent.com/u/17176678?v=4","gravatar_id":"","url":"https://api.github.com/users/mrsimpson","html_url":"https://github.com/mrsimpson","followers_url":"https://api.github.com/users/mrsimpson/followers","following_url":"https://api.github.com/users/mrsimpson/following{/other_user}","gists_url":"https://api.github.com/users/mrsimpson/gists{/gist_id}","starred_url":"https://api.github.com/users/mrsimpson/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mrsimpson/subscriptions","organizations_url":"https://api.github.com/users/mrsimpson/orgs","repos_url":"https://api.github.com/users/mrsimpson/repos","events_url":"https://api.github.com/users/mrsimpson/events{/privacy}","received_events_url":"https://api.github.com/users/mrsimpson/received_events","type":"User","site_admin":false},"assignees":[{"login":"mrsimpson","id":17176678,"node_id":"MDQ6VXNlcjE3MTc2Njc4","avatar_url":"https://avatars3.githubusercontent.com/u/17176678?v=4","gravatar_id":"","url":"https://api.github.com/users/mrsimpson","html_url":"https://github.com/mrsimpson","followers_url":"https://api.github.com/users/mrsimpson/followers","following_url":"https://api.github.com/users/mrsimpson/following{/other_user}","gists_url":"https://api.github.com/users/mrsimpson/gists{/gist_id}","starred_url":"https://api.github.com/users/mrsimpson/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mrsimpson/subscriptions","organizations_url":"https://api.github.com/users/mrsimpson/orgs","repos_url":"https://api.github.com/users/mrsimpson/repos","events_url":"https://api.github.com/users/mrsimpson/events{/privacy}","received_events_url":"https://api.github.com/users/mrsimpson/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/RocketChat/Rocket.Chat/milestones/135","html_url":"https://github.com/RocketChat/Rocket.Chat/milestone/135","labels_url":"https://api.github.com/repos/RocketChat/Rocket.Chat/milestones/135/labels","id":3749422,"node_id":"MDk6TWlsZXN0b25lMzc0OTQyMg==","number":135,"title":"0.74.0","description":"","creator":{"login":"theorenck","id":2522158,"node_id":"MDQ6VXNlcjI1MjIxNTg=","avatar_url":"https://avatars3.githubusercontent.com/u/2522158?v=4","gravatar_id":"","url":"https://api.github.com/users/theorenck","html_url":"https://github.com/theorenck","followers_url":"https://api.github.com/users/theorenck/followers","following_url":"https://api.github.com/users/theorenck/following{/other_user}","gists_url":"https://api.github.com/users/theorenck/gists{/gist_id}","starred_url":"https://api.github.com/users/theorenck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/theorenck/subscriptions","organizations_url":"https://api.github.com/users/theorenck/orgs","repos_url":"https://api.github.com/users/theorenck/repos","events_url":"https://api.github.com/users/theorenck/events{/privacy}","received_events_url":"https://api.github.com/users/theorenck/received_events","type":"User","site_admin":false},"open_issues":20,"closed_issues":1,"state":"open","created_at":"2018-10-18T13:37:31Z","updated_at":"2019-01-03T00:10:44Z","due_on":"2019-01-27T08:00:00Z","closed_at":null},"comments":33,"created_at":"2018-08-16T17:28:32Z","updated_at":"2019-01-03T13:04:12Z","closed_at":null,"author_association":"CONTRIBUTOR","pull_request":{"url":"https://api.github.com/repos/RocketChat/Rocket.Chat/pulls/11803","html_url":"https://github.com/RocketChat/Rocket.Chat/pull/11803","diff_url":"https://github.com/RocketChat/Rocket.Chat/pull/11803.diff","patch_url":"https://github.com/RocketChat/Rocket.Chat/pull/11803.patch"},"body":"<!-- INSTRUCTION: Inform the issue number that this PR closes, or remove the line below -->\r\nAddresses #1112 and others\r\n\r\n# What it does\r\n\r\nThis PR adds a simple form of threading to Rocket.Chat.\r\n\r\n![threads-plain-rocketchat mp4](https://user-images.githubusercontent.com/17176678/44223688-99a2af00-a188-11e8-9c1b-66b0f3208310.gif)\r\n\r\n# How it's done\r\n\r\nSince 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:\r\n\r\n- Minimal changes to the core of RC, to its files as well as the models, publications, subscriptions\r\n- Configurable in such a way that users not liking it can disable it\r\n- Compatible with the mobile apps\r\n- Open to further enhancements\r\n\r\nLooking at these non-functional requirements, I came up with the following:\r\n\r\n- Each thread is a room of an existing room type (`c` or `p`) => this allows to lifecycle the rooms as usual, e. g. change their privacy, add/remove users and so on\r\n- The rooms are linked only using the `parentRoomId`. No other change is applied to the models than adding this property to rooms and subscriptions (for performance)\r\n- There is no inline-display of the thread in the parent room. Although this was possible with a good performance with this model, this involves significant modifications of the messages list - and it raises the question how to handle notifications.\r\n- There is no harmonization of the create-room-modal and the thread-creation. This has the downside of bringing in an unwanted button in the sidebar but is less modification prone.\r\n\r\nI 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.\r\n\r\nI'm looking forward to your feedback - and contributions, if you want (that is directed to you, @vynmera  ;) )\r\n\r\nOliver"},"comment":{"url":"https://api.github.com/repos/RocketChat/Rocket.Chat/issues/comments/451137100","html_url":"https://github.com/RocketChat/Rocket.Chat/pull/11803#issuecomment-451137100","issue_url":"https://api.github.com/repos/RocketChat/Rocket.Chat/issues/11803","id":451137100,"node_id":"MDEyOklzc3VlQ29tbWVudDQ1MTEzNzEwMA==","user":{"login":"sampaiodiego","id":8591547,"node_id":"MDQ6VXNlcjg1OTE1NDc=","avatar_url":"https://avatars2.githubusercontent.com/u/8591547?v=4","gravatar_id":"","url":"https://api.github.com/users/sampaiodiego","html_url":"https://github.com/sampaiodiego","followers_url":"https://api.github.com/users/sampaiodiego/followers","following_url":"https://api.github.com/users/sampaiodiego/following{/other_user}","gists_url":"https://api.github.com/users/sampaiodiego/gists{/gist_id}","starred_url":"https://api.github.com/users/sampaiodiego/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sampaiodiego/subscriptions","organizations_url":"https://api.github.com/users/sampaiodiego/orgs","repos_url":"https://api.github.com/users/sampaiodiego/repos","events_url":"https://api.github.com/users/sampaiodiego/events{/privacy}","received_events_url":"https://api.github.com/users/sampaiodiego/received_events","type":"User","site_admin":false},"created_at":"2019-01-03T13:04:12Z","updated_at":"2019-01-03T13:04:12Z","author_association":"MEMBER","body":"thanks @rtarantelli for you interest =) as you can see I just fixed the conflicts. The idea is to give this a try and keep things going."}}
{"actor":{"display_login":"sampaiodiego"}}