Page MenuHomePhabricator

Conpherence - introduce ConpherenceThreadManager
ClosedPublic

Authored by btrahan on Mar 9 2015, 8:35 PM.
Tags
None
Referenced Files
Unknown Object (File)
Thu, Dec 12, 7:36 AM
Unknown Object (File)
Tue, Nov 26, 6:19 AM
Unknown Object (File)
Nov 19 2024, 12:39 AM
Unknown Object (File)
Nov 18 2024, 9:45 PM
Unknown Object (File)
Nov 18 2024, 5:19 PM
Unknown Object (File)
Nov 15 2024, 11:44 AM
Unknown Object (File)
Nov 11 2024, 9:40 AM
Unknown Object (File)
Nov 7 2024, 1:45 PM
Subscribers

Details

Summary

Ref T7014. Fixes T7473. This adds a class to handle thread state about what thread is loaded and what transaction we've seen last. It is deployed 100% in the durable column and only partially deployed in the regular view. Future diff(s) should clean up regular view. Note ConpherenceThreadManager API might change a bit at that time.

Also includes a bonus bug fix so logged out users can't toggle this column

Test Plan

tried to use durable column while logged out and nothing happened. sent messages, aphlict-received messages, added people, and changed title from both views

Diff Detail

Repository
rP Phabricator
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

btrahan retitled this revision from to Conpherence - introduce ConpherenceThreadManager.
btrahan updated this object.
btrahan edited the test plan for this revision. (Show Details)
btrahan added a reviewer: epriestley.
src/view/page/PhabricatorStandardPageView.php
85–90

we need this because the JX.ConpherenceThreadManager is a singleton, so we don't want to init it twice.

webroot/rsrc/js/application/conpherence/behavior-durable-column.js
73–76

I can't seem to scroll the area in JS?

epriestley edited edge metadata.

At some point, it might be worth separating this out so it works like this:

  • ConpherenceUIManager (or whatever) handles overall UI state -- this part might vary between Conpherence and the Column.
  • ConpherneceThreadManager handles just one thread and doesn't interact with the DOM much.
  • ConpherenceUIManager has a bunch of ConpherenceThreadManager objects to track loaded threads.

In particular, I can imagine possibly wanting to do things like:

  • If you receive a message for a thread you aren't currently looking at, we still load it so if you click over to that thread it's immediately available without needing an ajax call.

That seems easier if each thread's state is held in some object for the thread.

This revision is now accepted and ready to land.Mar 9 2015, 8:48 PM
webroot/rsrc/js/application/conpherence/behavior-durable-column.js
73–76

We need to put a scrollTo() method on JX.Scrollbar, then you need to save the object and call scrollbar.scrollTo(...) to scroll it. The scrollable node may or may not be the toplevel frame node.

This revision was automatically updated to reflect the committed changes.